From e44f61af440316f4050f69df024fe964ffcd9346 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Fri, 5 Jul 2024 11:00:51 +0200 Subject: [PATCH 001/252] Introduce basic slot-based collator (#4097) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of #3168 On top of #3568 ### Changes Overview - Introduces a new collator variant in `cumulus/client/consensus/aura/src/collators/slot_based/mod.rs` - Two tasks are part of that module, one for block building and one for collation building and submission. - Introduces a new variant of `cumulus-test-runtime` which has 2s slot duration, used for zombienet testing - Zombienet tests for the new collator **Note:** This collator is considered experimental and should only be used for testing and exploration for now. ### Comparison with `lookahead` collator - The new variant is slot based, meaning it waits for the next slot of the parachain, then starts authoring - The search for potential parents remains mostly unchanged from lookahead - As anchor, we use the current best relay parent - In general, the new collator tends to be anchored to one relay parent earlier. `lookahead` generally waits for a new relay block to arrive before it attempts to build a block. This means the actual timing of parachain blocks depends on when the relay block has been authored and imported. With the slot-triggered approach we are authoring directly on the slot boundary, were a new relay chain block has probably not yet arrived. ### Limitations - Overall, the current implementation focuses on the "happy path" - We assume that we want to collate close to the tip of the relay chain. It would be useful however to have some kind of configurable drift, so that we could lag behind a bit. https://github.com/paritytech/polkadot-sdk/issues/3965 - The collation task is pretty dumb currently. It checks if we have cores scheduled and if yes, submits all the messages we have received from the block builder until we have something submitted for every core. Ideally we should do some extra checks, i.e. we do not need to submit if the built block is already too old (build on a out of range relay parent) or was authored with a relay parent that is not an ancestor of the relay block we are submitting at. https://github.com/paritytech/polkadot-sdk/issues/3966 - There is no throttling, we assume that we can submit _velocity_ blocks every relay chain block. There should be communication between the collator task and block-builder task. - The parent search and ConsensusHook are not yet properly adjusted. The parent search makes assumptions about the pending candidate which no longer hold. https://github.com/paritytech/polkadot-sdk/issues/3967 - Custom triggers for block building not implemented. --------- Co-authored-by: Davide Galassi Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com> Co-authored-by: Bastian Köcher Co-authored-by: Javier Viola <363911+pepoviola@users.noreply.github.com> Co-authored-by: command-bot <> --- .gitlab/pipeline/zombienet/cumulus.yml | 24 + Cargo.lock | 12 +- cumulus/client/consensus/aura/Cargo.toml | 2 + cumulus/client/consensus/aura/src/collator.rs | 64 ++- .../consensus/aura/src/collators/basic.rs | 10 +- .../consensus/aura/src/collators/lookahead.rs | 220 +------- .../consensus/aura/src/collators/mod.rs | 182 ++++++- .../slot_based/block_builder_task.rs | 491 ++++++++++++++++++ .../collators/slot_based/collation_task.rs | 140 +++++ .../aura/src/collators/slot_based/mod.rs | 178 +++++++ cumulus/client/consensus/common/src/lib.rs | 202 +------ .../common/src/parachain_consensus.rs | 105 ++-- .../consensus/common/src/parent_search.rs | 418 +++++++++++++++ cumulus/client/consensus/common/src/tests.rs | 373 ++++++++++++- cumulus/client/network/src/tests.rs | 14 +- cumulus/client/parachain-inherent/Cargo.toml | 1 - cumulus/client/pov-recovery/src/tests.rs | 11 +- .../src/lib.rs | 13 +- .../client/relay-chain-interface/src/lib.rs | 19 +- .../relay-chain-minimal-node/Cargo.toml | 7 - .../relay-chain-rpc-interface/src/lib.rs | 9 +- .../pallets/aura-ext/src/consensus_hook.rs | 21 +- cumulus/pallets/aura-ext/src/lib.rs | 2 +- cumulus/polkadot-parachain/Cargo.toml | 2 +- cumulus/polkadot-parachain/src/cli.rs | 6 + cumulus/polkadot-parachain/src/command.rs | 38 +- cumulus/polkadot-parachain/src/service.rs | 137 ++++- cumulus/test/client/src/lib.rs | 1 + cumulus/test/runtime/Cargo.toml | 1 + cumulus/test/runtime/build.rs | 7 + cumulus/test/runtime/src/lib.rs | 26 +- cumulus/test/service/Cargo.toml | 3 - cumulus/test/service/src/chain_spec.rs | 19 +- cumulus/test/service/src/cli.rs | 18 +- cumulus/test/service/src/lib.rs | 117 +++-- cumulus/test/service/src/main.rs | 2 + .../tests/0003-full_node_catching_up.zndsl | 3 + .../0006-rpc_collator_builds_blocks.zndsl | 4 + .../tests/0008-elastic_authoring.toml | 50 ++ .../tests/0008-elastic_authoring.zndsl | 19 + .../tests/0009-elastic_pov_recovery.toml | 48 ++ .../tests/0009-elastic_pov_recovery.zndsl | 19 + cumulus/zombienet/tests/assign-core.js | 46 ++ .../0001-basic-3cores-6s-blocks.toml | 4 +- prdoc/pr_4097.prdoc | 45 ++ .../basic-authorship/src/basic_authorship.rs | 6 +- .../client/consensus/aura/src/standalone.rs | 6 +- substrate/client/consensus/slots/src/lib.rs | 2 +- templates/parachain/node/src/service.rs | 12 +- 49 files changed, 2554 insertions(+), 605 deletions(-) create mode 100644 cumulus/client/consensus/aura/src/collators/slot_based/block_builder_task.rs create mode 100644 cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs create mode 100644 cumulus/client/consensus/aura/src/collators/slot_based/mod.rs create mode 100644 cumulus/client/consensus/common/src/parent_search.rs create mode 100644 cumulus/zombienet/tests/0008-elastic_authoring.toml create mode 100644 cumulus/zombienet/tests/0008-elastic_authoring.zndsl create mode 100644 cumulus/zombienet/tests/0009-elastic_pov_recovery.toml create mode 100644 cumulus/zombienet/tests/0009-elastic_pov_recovery.zndsl create mode 100644 cumulus/zombienet/tests/assign-core.js create mode 100644 prdoc/pr_4097.prdoc diff --git a/.gitlab/pipeline/zombienet/cumulus.yml b/.gitlab/pipeline/zombienet/cumulus.yml index a7f321505ba..6e2b53fae61 100644 --- a/.gitlab/pipeline/zombienet/cumulus.yml +++ b/.gitlab/pipeline/zombienet/cumulus.yml @@ -149,3 +149,27 @@ zombienet-cumulus-0007-full_node_warp_sync: --local-dir="${LOCAL_DIR}" --concurrency=1 --test="0007-full_node_warp_sync.zndsl" + +zombienet-cumulus-0008-elastic_authoring: + extends: + - .zombienet-cumulus-common + - .zombienet-refs + - .zombienet-before-script + - .zombienet-after-script + script: + - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh + --local-dir="${LOCAL_DIR}" + --concurrency=1 + --test="0008-elastic_authoring.zndsl" + +zombienet-cumulus-0009-elastic_pov_recovery: + extends: + - .zombienet-cumulus-common + - .zombienet-refs + - .zombienet-before-script + - .zombienet-after-script + script: + - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh + --local-dir="${LOCAL_DIR}" + --concurrency=1 + --test="0009-elastic_pov_recovery.zndsl" diff --git a/Cargo.lock b/Cargo.lock index 7b08e96f4bb..f3808b7eaa5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3772,6 +3772,7 @@ dependencies = [ "sc-consensus-babe", "sc-consensus-slots", "sc-telemetry", + "sc-utils", "schnellru", "sp-api", "sp-application-crypto", @@ -3786,6 +3787,7 @@ dependencies = [ "sp-state-machine", "sp-timestamp", "substrate-prometheus-endpoint", + "tokio", "tracing", ] @@ -3906,7 +3908,6 @@ dependencies = [ "cumulus-test-relay-sproof-builder", "parity-scale-codec", "sc-client-api", - "scale-info", "sp-api", "sp-crypto-hashing", "sp-inherents", @@ -4333,15 +4334,8 @@ dependencies = [ "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", - "parking_lot 0.12.3", - "polkadot-availability-recovery", - "polkadot-collator-protocol", "polkadot-core-primitives", "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-chain-api", - "polkadot-node-core-prospective-parachains", - "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-subsystem-util", "polkadot-overseer", @@ -4535,7 +4529,6 @@ dependencies = [ "polkadot-test-service", "portpicker", "rand", - "rococo-parachain-runtime", "sc-basic-authorship", "sc-block-builder", "sc-chain-spec", @@ -4560,7 +4553,6 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-aura", - "sp-consensus-grandpa", "sp-core", "sp-io", "sp-keyring", diff --git a/cumulus/client/consensus/aura/Cargo.toml b/cumulus/client/consensus/aura/Cargo.toml index 5ab3e6f2512..01e07cb395a 100644 --- a/cumulus/client/consensus/aura/Cargo.toml +++ b/cumulus/client/consensus/aura/Cargo.toml @@ -16,6 +16,7 @@ futures = { workspace = true } parking_lot = { workspace = true } tracing = { workspace = true, default-features = true } schnellru = { workspace = true } +tokio = { workspace = true, features = ["macros"] } # Substrate sc-client-api = { workspace = true, default-features = true } @@ -23,6 +24,7 @@ sc-consensus = { workspace = true, default-features = true } sc-consensus-aura = { workspace = true, default-features = true } sc-consensus-babe = { workspace = true, default-features = true } sc-consensus-slots = { workspace = true, default-features = true } +sc-utils = { workspace = true, default-features = true } sc-telemetry = { workspace = true, default-features = true } sp-api = { workspace = true, default-features = true } sp-application-crypto = { workspace = true, default-features = true } diff --git a/cumulus/client/consensus/aura/src/collator.rs b/cumulus/client/consensus/aura/src/collator.rs index 776052215d9..dc830e463a4 100644 --- a/cumulus/client/consensus/aura/src/collator.rs +++ b/cumulus/client/consensus/aura/src/collator.rs @@ -156,15 +156,8 @@ where Ok((paras_inherent_data, other_inherent_data)) } - /// Propose, seal, and import a block, packaging it into a collation. - /// - /// Provide the slot to build at as well as any other necessary pre-digest logs, - /// the inherent data, and the proposal duration and PoV size limits. - /// - /// The Aura pre-digest should not be explicitly provided and is set internally. - /// - /// This does not announce the collation to the parachain network or the relay chain. - pub async fn collate( + /// Build and import a parachain block on the given parent header, using the given slot claim. + pub async fn build_block_and_import( &mut self, parent_header: &Block::Header, slot_claim: &SlotClaim, @@ -172,10 +165,7 @@ where inherent_data: (ParachainInherentData, InherentData), proposal_duration: Duration, max_pov_size: usize, - ) -> Result< - Option<(Collation, ParachainBlockData, Block::Hash)>, - Box, - > { + ) -> Result>, Box> { let mut digest = additional_pre_digest.into().unwrap_or_default(); digest.push(slot_claim.pre_digest.clone()); @@ -205,7 +195,6 @@ where ) .map_err(|e| e as Box)?; - let post_hash = sealed_importable.post_hash(); let block = Block::new( sealed_importable.post_header(), sealed_importable @@ -220,11 +209,46 @@ where .map_err(|e| Box::new(e) as Box) .await?; - if let Some((collation, block_data)) = self.collator_service.build_collation( - parent_header, - post_hash, - ParachainCandidate { block, proof: proposal.proof }, - ) { + Ok(Some(ParachainCandidate { block, proof: proposal.proof })) + } + + /// Propose, seal, import a block and packaging it into a collation. + /// + /// Provide the slot to build at as well as any other necessary pre-digest logs, + /// the inherent data, and the proposal duration and PoV size limits. + /// + /// The Aura pre-digest should not be explicitly provided and is set internally. + /// + /// This does not announce the collation to the parachain network or the relay chain. + pub async fn collate( + &mut self, + parent_header: &Block::Header, + slot_claim: &SlotClaim, + additional_pre_digest: impl Into>>, + inherent_data: (ParachainInherentData, InherentData), + proposal_duration: Duration, + max_pov_size: usize, + ) -> Result< + Option<(Collation, ParachainBlockData, Block::Hash)>, + Box, + > { + let maybe_candidate = self + .build_block_and_import( + parent_header, + slot_claim, + additional_pre_digest, + inherent_data, + proposal_duration, + max_pov_size, + ) + .await?; + + let Some(candidate) = maybe_candidate else { return Ok(None) }; + + let hash = candidate.block.header().hash(); + if let Some((collation, block_data)) = + self.collator_service.build_collation(parent_header, hash, candidate) + { tracing::info!( target: crate::LOG_TARGET, "PoV size {{ header: {}kb, extrinsics: {}kb, storage_proof: {}kb }}", @@ -241,7 +265,7 @@ where ); } - Ok(Some((collation, block_data, post_hash))) + Ok(Some((collation, block_data, hash))) } else { Err(Box::::from("Unable to produce collation") as Box) diff --git a/cumulus/client/consensus/aura/src/collators/basic.rs b/cumulus/client/consensus/aura/src/collators/basic.rs index 1047c6219ad..4efd50a04ec 100644 --- a/cumulus/client/consensus/aura/src/collators/basic.rs +++ b/cumulus/client/consensus/aura/src/collators/basic.rs @@ -41,7 +41,6 @@ use sc_consensus::BlockImport; use sp_api::{CallApiAt, ProvideRuntimeApi}; use sp_application_crypto::AppPublic; use sp_blockchain::HeaderBackend; -use sp_consensus::SyncOracle; use sp_consensus_aura::AuraApi; use sp_core::crypto::Pair; use sp_inherents::CreateInherentDataProviders; @@ -53,7 +52,7 @@ use std::{sync::Arc, time::Duration}; use crate::collator as collator_util; /// Parameters for [`run`]. -pub struct Params { +pub struct Params { /// Inherent data providers. Only non-consensus inherent data should be provided, i.e. /// the timestamp, slot, and paras inherents should be omitted, as they are set by this /// collator. @@ -64,8 +63,6 @@ pub struct Params { pub para_client: Arc, /// A handle to the relay-chain client. pub relay_client: RClient, - /// A chain synchronization oracle. - pub sync_oracle: SO, /// The underlying keystore, which should contain Aura consensus keys. pub keystore: KeystorePtr, /// The collator key used to sign collations before submitting to validators. @@ -89,8 +86,8 @@ pub struct Params { } /// Run bare Aura consensus as a relay-chain-driven collator. -pub fn run( - params: Params, +pub fn run( + params: Params, ) -> impl Future + Send + 'static where Block: BlockT + Send, @@ -108,7 +105,6 @@ where CIDP: CreateInherentDataProviders + Send + 'static, CIDP::InherentDataProviders: Send, BI: BlockImport + ParachainBlockImportMarker + Send + Sync + 'static, - SO: SyncOracle + Send + Sync + Clone + 'static, Proposer: ProposerInterface + Send + Sync + 'static, CS: CollatorServiceInterface + Send + Sync + 'static, P: Pair, diff --git a/cumulus/client/consensus/aura/src/collators/lookahead.rs b/cumulus/client/consensus/aura/src/collators/lookahead.rs index b6f7b07f55d..749b1311239 100644 --- a/cumulus/client/consensus/aura/src/collators/lookahead.rs +++ b/cumulus/client/consensus/aura/src/collators/lookahead.rs @@ -33,46 +33,34 @@ use codec::{Codec, Encode}; use cumulus_client_collator::service::ServiceInterface as CollatorServiceInterface; -use cumulus_client_consensus_common::{ - self as consensus_common, load_abridged_host_configuration, ParachainBlockImportMarker, - ParentSearchParams, -}; +use cumulus_client_consensus_common::{self as consensus_common, ParachainBlockImportMarker}; use cumulus_client_consensus_proposer::ProposerInterface; use cumulus_primitives_aura::AuraUnincludedSegmentApi; -use cumulus_primitives_core::{ - relay_chain::Hash as PHash, CollectCollationInfo, PersistedValidationData, -}; +use cumulus_primitives_core::{CollectCollationInfo, PersistedValidationData}; use cumulus_relay_chain_interface::RelayChainInterface; use polkadot_node_primitives::SubmitCollationParams; -use polkadot_node_subsystem::messages::{ - CollationGenerationMessage, RuntimeApiMessage, RuntimeApiRequest, -}; +use polkadot_node_subsystem::messages::CollationGenerationMessage; use polkadot_overseer::Handle as OverseerHandle; -use polkadot_primitives::{ - AsyncBackingParams, CollatorPair, CoreIndex, CoreState, Id as ParaId, OccupiedCoreAssumption, -}; +use polkadot_primitives::{CollatorPair, Id as ParaId, OccupiedCoreAssumption}; -use futures::{channel::oneshot, prelude::*}; +use futures::prelude::*; use sc_client_api::{backend::AuxStore, BlockBackend, BlockOf}; use sc_consensus::BlockImport; -use sc_consensus_aura::standalone as aura_internal; use sp_api::ProvideRuntimeApi; use sp_application_crypto::AppPublic; use sp_blockchain::HeaderBackend; -use sp_consensus::SyncOracle; use sp_consensus_aura::{AuraApi, Slot}; use sp_core::crypto::Pair; use sp_inherents::CreateInherentDataProviders; use sp_keystore::KeystorePtr; use sp_runtime::traits::{Block as BlockT, Header as HeaderT, Member}; -use sp_timestamp::Timestamp; use std::{sync::Arc, time::Duration}; -use crate::collator::{self as collator_util, SlotClaim}; +use crate::collator::{self as collator_util}; /// Parameters for [`run`]. -pub struct Params { +pub struct Params { /// Inherent data providers. Only non-consensus inherent data should be provided, i.e. /// the timestamp, slot, and paras inherents should be omitted, as they are set by this /// collator. @@ -87,8 +75,6 @@ pub struct Params { pub relay_client: RClient, /// A validation code hash provider, used to get the current validation code hash. pub code_hash_provider: CHP, - /// A chain synchronization oracle. - pub sync_oracle: SO, /// The underlying keystore, which should contain Aura consensus keys. pub keystore: KeystorePtr, /// The collator key used to sign collations before submitting to validators. @@ -110,8 +96,8 @@ pub struct Params { } /// Run async-backing-friendly Aura. -pub fn run( - mut params: Params, +pub fn run( + mut params: Params, ) -> impl Future + Send + 'static where Block: BlockT, @@ -130,7 +116,6 @@ where CIDP: CreateInherentDataProviders + 'static, CIDP::InherentDataProviders: Send, BI: BlockImport + ParachainBlockImportMarker + Send + Sync + 'static, - SO: SyncOracle + Send + Sync + Clone + 'static, Proposer: ProposerInterface + Send + Sync + 'static, CS: CollatorServiceInterface + Send + Sync + 'static, CHP: consensus_common::ValidationCodeHashProvider + Send + 'static, @@ -138,14 +123,6 @@ where P::Public: AppPublic + Member + Codec, P::Signature: TryFrom> + Member + Codec, { - // This is an arbitrary value which is likely guaranteed to exceed any reasonable - // limit, as it would correspond to 10 non-included blocks. - // - // Since we only search for parent blocks which have already been imported, - // we can guarantee that all imported blocks respect the unincluded segment - // rules specified by the parachain's runtime and thus will never be too deep. - const PARENT_SEARCH_DEPTH: usize = 10; - async move { cumulus_client_collator::initialize_collator_subsystems( &mut params.overseer_handle, @@ -186,12 +163,9 @@ where while let Some(relay_parent_header) = import_notifications.next().await { let relay_parent = relay_parent_header.hash(); - // TODO: Currently we use just the first core here, but for elastic scaling - // we iterate and build on all of the cores returned. - let core_index = if let Some(core_index) = cores_scheduled_for_para( + let core_index = if let Some(core_index) = super::cores_scheduled_for_para( relay_parent, params.para_id, - &mut params.overseer_handle, &mut params.relay_client, ) .await @@ -226,42 +200,16 @@ where }, }; - let parent_search_params = ParentSearchParams { + let (included_block, initial_parent) = match crate::collators::find_parent( relay_parent, - para_id: params.para_id, - ancestry_lookback: async_backing_params(relay_parent, ¶ms.relay_client) - .await - .map(|c| c.allowed_ancestry_len as usize) - .unwrap_or(0), - max_depth: PARENT_SEARCH_DEPTH, - ignore_alternative_branches: true, - }; - - let potential_parents = - cumulus_client_consensus_common::find_potential_parents::( - parent_search_params, - &*params.para_backend, - ¶ms.relay_client, - ) - .await; - - let mut potential_parents = match potential_parents { - Err(e) => { - tracing::error!( - target: crate::LOG_TARGET, - ?relay_parent, - err = ?e, - "Could not fetch potential parents to build upon" - ); - - continue - }, - Ok(x) => x, - }; - - let included_block = match potential_parents.iter().find(|x| x.depth == 0) { - None => continue, // also serves as an `is_empty` check. - Some(b) => b.hash, + params.para_id, + &*params.para_backend, + ¶ms.relay_client, + ) + .await + { + Some(value) => value, + None => continue, }; let para_client = &*params.para_client; @@ -292,7 +240,7 @@ where relay_chain_slot_duration = ?params.relay_chain_slot_duration, "Adjusted relay-chain slot to parachain slot" ); - Some(can_build_upon::<_, _, P>( + Some(super::can_build_upon::<_, _, P>( slot_now, timestamp, block_hash, @@ -302,13 +250,6 @@ where )) }; - // Sort by depth, ascending, to choose the longest chain. - // - // If the longest chain has space, build upon that. Otherwise, don't - // build at all. - potential_parents.sort_by_key(|a| a.depth); - let Some(initial_parent) = potential_parents.pop() else { continue }; - // Build in a loop until not allowed. Note that the authorities can change // at any block, so we need to re-claim our slot every time. let mut parent_hash = initial_parent.hash; @@ -435,124 +376,3 @@ where } } } - -// Checks if we own the slot at the given block and whether there -// is space in the unincluded segment. -async fn can_build_upon( - slot: Slot, - timestamp: Timestamp, - parent_hash: Block::Hash, - included_block: Block::Hash, - client: &Client, - keystore: &KeystorePtr, -) -> Option> -where - Client: ProvideRuntimeApi, - Client::Api: AuraApi + AuraUnincludedSegmentApi, - P: Pair, - P::Public: Codec, - P::Signature: Codec, -{ - let runtime_api = client.runtime_api(); - let authorities = runtime_api.authorities(parent_hash).ok()?; - let author_pub = aura_internal::claim_slot::

(slot, &authorities, keystore).await?; - - // Here we lean on the property that building on an empty unincluded segment must always - // be legal. Skipping the runtime API query here allows us to seamlessly run this - // collator against chains which have not yet upgraded their runtime. - if parent_hash != included_block { - if !runtime_api.can_build_upon(parent_hash, included_block, slot).ok()? { - return None - } - } - - Some(SlotClaim::unchecked::

(author_pub, slot, timestamp)) -} - -/// Reads async backing parameters from the relay chain storage at the given relay parent. -async fn async_backing_params( - relay_parent: PHash, - relay_client: &impl RelayChainInterface, -) -> Option { - match load_abridged_host_configuration(relay_parent, relay_client).await { - Ok(Some(config)) => Some(config.async_backing_params), - Ok(None) => { - tracing::error!( - target: crate::LOG_TARGET, - "Active config is missing in relay chain storage", - ); - None - }, - Err(err) => { - tracing::error!( - target: crate::LOG_TARGET, - ?err, - ?relay_parent, - "Failed to read active config from relay chain client", - ); - None - }, - } -} - -// Return all the cores assigned to the para at the provided relay parent. -async fn cores_scheduled_for_para( - relay_parent: PHash, - para_id: ParaId, - overseer_handle: &mut OverseerHandle, - relay_client: &impl RelayChainInterface, -) -> Vec { - // Get `AvailabilityCores` from runtime - let (tx, rx) = oneshot::channel(); - let request = RuntimeApiRequest::AvailabilityCores(tx); - overseer_handle - .send_msg(RuntimeApiMessage::Request(relay_parent, request), "LookaheadCollator") - .await; - - let cores = match rx.await { - Ok(Ok(cores)) => cores, - Ok(Err(error)) => { - tracing::error!( - target: crate::LOG_TARGET, - ?error, - ?relay_parent, - "Failed to query availability cores runtime API", - ); - return Vec::new() - }, - Err(oneshot::Canceled) => { - tracing::error!( - target: crate::LOG_TARGET, - ?relay_parent, - "Sender for availability cores runtime request dropped", - ); - return Vec::new() - }, - }; - - let max_candidate_depth = async_backing_params(relay_parent, relay_client) - .await - .map(|c| c.max_candidate_depth) - .unwrap_or(0); - - cores - .iter() - .enumerate() - .filter_map(|(index, core)| { - let core_para_id = match core { - CoreState::Scheduled(scheduled_core) => Some(scheduled_core.para_id), - CoreState::Occupied(occupied_core) if max_candidate_depth >= 1 => occupied_core - .next_up_on_available - .as_ref() - .map(|scheduled_core| scheduled_core.para_id), - CoreState::Free | CoreState::Occupied(_) => None, - }; - - if core_para_id == Some(para_id) { - Some(CoreIndex(index as u32)) - } else { - None - } - }) - .collect() -} diff --git a/cumulus/client/consensus/aura/src/collators/mod.rs b/cumulus/client/consensus/aura/src/collators/mod.rs index 0abc034c1ed..7d430ecdc72 100644 --- a/cumulus/client/consensus/aura/src/collators/mod.rs +++ b/cumulus/client/consensus/aura/src/collators/mod.rs @@ -20,13 +20,35 @@ //! included parachain block, as well as the [`lookahead`] collator, which prospectively //! builds on parachain blocks which have not yet been included in the relay chain. +use crate::collator::SlotClaim; +use codec::Codec; +use cumulus_client_consensus_common::{ + self as consensus_common, load_abridged_host_configuration, ParentSearchParams, +}; +use cumulus_primitives_aura::{AuraUnincludedSegmentApi, Slot}; +use cumulus_primitives_core::{relay_chain::Hash as ParaHash, BlockT}; use cumulus_relay_chain_interface::RelayChainInterface; use polkadot_primitives::{ - Hash as RHash, Id as ParaId, OccupiedCoreAssumption, ValidationCodeHash, + AsyncBackingParams, CoreIndex, CoreState, Hash as RelayHash, Id as ParaId, + OccupiedCoreAssumption, ValidationCodeHash, }; +use sc_consensus_aura::{standalone as aura_internal, AuraApi}; +use sp_api::ProvideRuntimeApi; +use sp_core::Pair; +use sp_keystore::KeystorePtr; +use sp_timestamp::Timestamp; pub mod basic; pub mod lookahead; +pub mod slot_based; + +// This is an arbitrary value which is likely guaranteed to exceed any reasonable +// limit, as it would correspond to 10 non-included blocks. +// +// Since we only search for parent blocks which have already been imported, +// we can guarantee that all imported blocks respect the unincluded segment +// rules specified by the parachain's runtime and thus will never be too deep. +const PARENT_SEARCH_DEPTH: usize = 10; /// Check the `local_validation_code_hash` against the validation code hash in the relay chain /// state. @@ -36,7 +58,7 @@ async fn check_validation_code_or_log( local_validation_code_hash: &ValidationCodeHash, para_id: ParaId, relay_client: &impl RelayChainInterface, - relay_parent: RHash, + relay_parent: RelayHash, ) { let state_validation_code_hash = match relay_client .validation_code_hash(relay_parent, para_id, OccupiedCoreAssumption::Included) @@ -77,3 +99,159 @@ async fn check_validation_code_or_log( }, } } + +/// Reads async backing parameters from the relay chain storage at the given relay parent. +async fn async_backing_params( + relay_parent: RelayHash, + relay_client: &impl RelayChainInterface, +) -> Option { + match load_abridged_host_configuration(relay_parent, relay_client).await { + Ok(Some(config)) => Some(config.async_backing_params), + Ok(None) => { + tracing::error!( + target: crate::LOG_TARGET, + "Active config is missing in relay chain storage", + ); + None + }, + Err(err) => { + tracing::error!( + target: crate::LOG_TARGET, + ?err, + ?relay_parent, + "Failed to read active config from relay chain client", + ); + None + }, + } +} + +// Return all the cores assigned to the para at the provided relay parent. +async fn cores_scheduled_for_para( + relay_parent: RelayHash, + para_id: ParaId, + relay_client: &impl RelayChainInterface, +) -> Vec { + // Get `AvailabilityCores` from runtime + let cores = match relay_client.availability_cores(relay_parent).await { + Ok(cores) => cores, + Err(error) => { + tracing::error!( + target: crate::LOG_TARGET, + ?error, + ?relay_parent, + "Failed to query availability cores runtime API", + ); + return Vec::new() + }, + }; + + let max_candidate_depth = async_backing_params(relay_parent, relay_client) + .await + .map(|c| c.max_candidate_depth) + .unwrap_or(0); + + cores + .iter() + .enumerate() + .filter_map(|(index, core)| { + let core_para_id = match core { + CoreState::Scheduled(scheduled_core) => Some(scheduled_core.para_id), + CoreState::Occupied(occupied_core) if max_candidate_depth > 0 => occupied_core + .next_up_on_available + .as_ref() + .map(|scheduled_core| scheduled_core.para_id), + CoreState::Free | CoreState::Occupied(_) => None, + }; + + if core_para_id == Some(para_id) { + Some(CoreIndex(index as u32)) + } else { + None + } + }) + .collect() +} + +// Checks if we own the slot at the given block and whether there +// is space in the unincluded segment. +async fn can_build_upon( + slot: Slot, + timestamp: Timestamp, + parent_hash: Block::Hash, + included_block: Block::Hash, + client: &Client, + keystore: &KeystorePtr, +) -> Option> +where + Client: ProvideRuntimeApi, + Client::Api: AuraApi + AuraUnincludedSegmentApi, + P: Pair, + P::Public: Codec, + P::Signature: Codec, +{ + let runtime_api = client.runtime_api(); + let authorities = runtime_api.authorities(parent_hash).ok()?; + let author_pub = aura_internal::claim_slot::

(slot, &authorities, keystore).await?; + + // Here we lean on the property that building on an empty unincluded segment must always + // be legal. Skipping the runtime API query here allows us to seamlessly run this + // collator against chains which have not yet upgraded their runtime. + if parent_hash != included_block && + !runtime_api.can_build_upon(parent_hash, included_block, slot).ok()? + { + return None + } + + Some(SlotClaim::unchecked::

(author_pub, slot, timestamp)) +} + +/// Use [`cumulus_client_consensus_common::find_potential_parents`] to find parachain blocks that +/// we can build on. Once a list of potential parents is retrieved, return the last one of the +/// longest chain. +async fn find_parent( + relay_parent: ParaHash, + para_id: ParaId, + para_backend: &impl sc_client_api::Backend, + relay_client: &impl RelayChainInterface, +) -> Option<(::Hash, consensus_common::PotentialParent)> +where + Block: BlockT, +{ + let parent_search_params = ParentSearchParams { + relay_parent, + para_id, + ancestry_lookback: crate::collators::async_backing_params(relay_parent, relay_client) + .await + .map_or(0, |params| params.allowed_ancestry_len as usize), + max_depth: PARENT_SEARCH_DEPTH, + ignore_alternative_branches: true, + }; + + let potential_parents = cumulus_client_consensus_common::find_potential_parents::( + parent_search_params, + para_backend, + relay_client, + ) + .await; + + let potential_parents = match potential_parents { + Err(e) => { + tracing::error!( + target: crate::LOG_TARGET, + ?relay_parent, + err = ?e, + "Could not fetch potential parents to build upon" + ); + + return None + }, + Ok(x) => x, + }; + + let included_block = potential_parents.iter().find(|x| x.depth == 0)?.hash; + potential_parents + .into_iter() + .max_by_key(|a| a.depth) + .map(|parent| (included_block, parent)) +} diff --git a/cumulus/client/consensus/aura/src/collators/slot_based/block_builder_task.rs b/cumulus/client/consensus/aura/src/collators/slot_based/block_builder_task.rs new file mode 100644 index 00000000000..1fbc0689da8 --- /dev/null +++ b/cumulus/client/consensus/aura/src/collators/slot_based/block_builder_task.rs @@ -0,0 +1,491 @@ +// Copyright (C) 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 . + +use codec::{Codec, Encode}; + +use cumulus_client_collator::service::ServiceInterface as CollatorServiceInterface; +use cumulus_client_consensus_common::{self as consensus_common, ParachainBlockImportMarker}; +use cumulus_client_consensus_proposer::ProposerInterface; +use cumulus_primitives_aura::AuraUnincludedSegmentApi; +use cumulus_primitives_core::{CollectCollationInfo, PersistedValidationData}; +use cumulus_relay_chain_interface::RelayChainInterface; + +use polkadot_primitives::{ + BlockId, CoreIndex, Hash as RelayHash, Header as RelayHeader, Id as ParaId, + OccupiedCoreAssumption, +}; + +use futures::prelude::*; +use sc_client_api::{backend::AuxStore, BlockBackend, BlockOf, UsageProvider}; +use sc_consensus::BlockImport; +use sp_api::ProvideRuntimeApi; +use sp_application_crypto::AppPublic; +use sp_blockchain::HeaderBackend; +use sp_consensus_aura::{AuraApi, Slot, SlotDuration}; +use sp_core::crypto::Pair; +use sp_inherents::CreateInherentDataProviders; +use sp_keystore::KeystorePtr; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT, Member}; +use sp_timestamp::Timestamp; +use std::{sync::Arc, time::Duration}; + +use super::CollatorMessage; +use crate::{ + collator::{self as collator_util}, + collators::{check_validation_code_or_log, cores_scheduled_for_para}, + LOG_TARGET, +}; + +/// Parameters for [`run_block_builder`]. +pub struct BuilderTaskParams< + Block: BlockT, + BI, + CIDP, + Client, + Backend, + RelayClient, + CHP, + Proposer, + CS, +> { + /// Inherent data providers. Only non-consensus inherent data should be provided, i.e. + /// the timestamp, slot, and paras inherents should be omitted, as they are set by this + /// collator. + pub create_inherent_data_providers: CIDP, + /// Used to actually import blocks. + pub block_import: BI, + /// The underlying para client. + pub para_client: Arc, + /// The para client's backend, used to access the database. + pub para_backend: Arc, + /// A handle to the relay-chain client. + pub relay_client: RelayClient, + /// A validation code hash provider, used to get the current validation code hash. + pub code_hash_provider: CHP, + /// The underlying keystore, which should contain Aura consensus keys. + pub keystore: KeystorePtr, + /// The para's ID. + pub para_id: ParaId, + /// The underlying block proposer this should call into. + pub proposer: Proposer, + /// The generic collator service used to plug into this consensus engine. + pub collator_service: CS, + /// The amount of time to spend authoring each block. + pub authoring_duration: Duration, + /// Channel to send built blocks to the collation task. + pub collator_sender: sc_utils::mpsc::TracingUnboundedSender>, + /// Slot duration of the relay chain + pub relay_chain_slot_duration: Duration, + /// Drift every slot by this duration. + /// This is a time quantity that is subtracted from the actual timestamp when computing + /// the time left to enter a new slot. In practice, this *left-shifts* the clock time with the + /// intent to keep our "clock" slightly behind the relay chain one and thus reducing the + /// likelihood of encountering unfavorable notification arrival timings (i.e. we don't want to + /// wait for relay chain notifications because we woke up too early). + pub slot_drift: Duration, +} + +#[derive(Debug)] +struct SlotInfo { + pub timestamp: Timestamp, + pub slot: Slot, + pub slot_duration: SlotDuration, +} + +#[derive(Debug)] +struct SlotTimer { + client: Arc, + drift: Duration, + _marker: std::marker::PhantomData<(Block, Box)>, +} + +/// Returns current duration since Unix epoch. +fn duration_now() -> Duration { + use std::time::SystemTime; + let now = SystemTime::now(); + now.duration_since(SystemTime::UNIX_EPOCH).unwrap_or_else(|e| { + panic!("Current time {:?} is before Unix epoch. Something is wrong: {:?}", now, e) + }) +} + +/// Returns the duration until the next slot from now. +fn time_until_next_slot(slot_duration: Duration, drift: Duration) -> Duration { + let now = duration_now().as_millis() - drift.as_millis(); + + let next_slot = (now + slot_duration.as_millis()) / slot_duration.as_millis(); + let remaining_millis = next_slot * slot_duration.as_millis() - now; + Duration::from_millis(remaining_millis as u64) +} + +impl SlotTimer +where + Block: BlockT, + Client: ProvideRuntimeApi + Send + Sync + 'static + UsageProvider, + Client::Api: AuraApi, + P: Pair, + P::Public: AppPublic + Member + Codec, + P::Signature: TryFrom> + Member + Codec, +{ + pub fn new_with_drift(client: Arc, drift: Duration) -> Self { + Self { client, drift, _marker: Default::default() } + } + + /// Returns a future that resolves when the next slot arrives. + pub async fn wait_until_next_slot(&self) -> Result { + let Ok(slot_duration) = crate::slot_duration(&*self.client) else { + tracing::error!(target: crate::LOG_TARGET, "Failed to fetch slot duration from runtime."); + return Err(()) + }; + + let time_until_next_slot = time_until_next_slot(slot_duration.as_duration(), self.drift); + tokio::time::sleep(time_until_next_slot).await; + let timestamp = sp_timestamp::Timestamp::current(); + Ok(SlotInfo { + slot: Slot::from_timestamp(timestamp, slot_duration), + timestamp, + slot_duration, + }) + } +} + +/// Run block-builder. +pub fn run_block_builder( + params: BuilderTaskParams, +) -> impl Future + Send + 'static +where + Block: BlockT, + Client: ProvideRuntimeApi + + UsageProvider + + BlockOf + + AuxStore + + HeaderBackend + + BlockBackend + + Send + + Sync + + 'static, + Client::Api: + AuraApi + CollectCollationInfo + AuraUnincludedSegmentApi, + Backend: sc_client_api::Backend + 'static, + RelayClient: RelayChainInterface + Clone + 'static, + CIDP: CreateInherentDataProviders + 'static, + CIDP::InherentDataProviders: Send, + BI: BlockImport + ParachainBlockImportMarker + Send + Sync + 'static, + Proposer: ProposerInterface + Send + Sync + 'static, + CS: CollatorServiceInterface + Send + Sync + 'static, + CHP: consensus_common::ValidationCodeHashProvider + Send + 'static, + P: Pair, + P::Public: AppPublic + Member + Codec, + P::Signature: TryFrom> + Member + Codec, +{ + async move { + tracing::info!(target: LOG_TARGET, "Starting slot-based block-builder task."); + let BuilderTaskParams { + relay_client, + create_inherent_data_providers, + para_client, + keystore, + block_import, + para_id, + proposer, + collator_service, + collator_sender, + code_hash_provider, + authoring_duration, + para_backend, + relay_chain_slot_duration, + slot_drift, + } = params; + + let slot_timer = SlotTimer::<_, _, P>::new_with_drift(para_client.clone(), slot_drift); + + let mut collator = { + let params = collator_util::Params { + create_inherent_data_providers, + block_import, + relay_client: relay_client.clone(), + keystore: keystore.clone(), + para_id, + proposer, + collator_service, + }; + + collator_util::Collator::::new(params) + }; + + let mut relay_chain_fetcher = RelayChainCachingFetcher::new(relay_client.clone(), para_id); + + loop { + // We wait here until the next slot arrives. + let Ok(para_slot) = slot_timer.wait_until_next_slot().await else { + return; + }; + + let Some(expected_cores) = + expected_core_count(relay_chain_slot_duration, para_slot.slot_duration) + else { + return + }; + + let Ok(RelayChainData { + relay_parent_header, + max_pov_size, + relay_parent_hash: relay_parent, + scheduled_cores, + }) = relay_chain_fetcher.get_relay_chain_data().await + else { + continue; + }; + + if scheduled_cores.is_empty() { + tracing::debug!(target: LOG_TARGET, "Parachain not scheduled, skipping slot."); + continue; + } + + let core_index_in_scheduled: u64 = *para_slot.slot % expected_cores; + let Some(core_index) = scheduled_cores.get(core_index_in_scheduled as usize) else { + tracing::debug!(target: LOG_TARGET, core_index_in_scheduled, core_len = scheduled_cores.len(), "Para is scheduled, but not enough cores available."); + continue; + }; + + let Some((included_block, parent)) = + crate::collators::find_parent(relay_parent, para_id, &*para_backend, &relay_client) + .await + else { + continue + }; + + let parent_header = parent.header; + let parent_hash = parent.hash; + + // We mainly call this to inform users at genesis if there is a mismatch with the + // on-chain data. + collator.collator_service().check_block_status(parent_hash, &parent_header); + + let slot_claim = match crate::collators::can_build_upon::<_, _, P>( + para_slot.slot, + para_slot.timestamp, + parent_hash, + included_block, + &*para_client, + &keystore, + ) + .await + { + Some(slot) => slot, + None => { + tracing::debug!( + target: crate::LOG_TARGET, + ?core_index, + slot_info = ?para_slot, + unincluded_segment_len = parent.depth, + relay_parent = %relay_parent, + included = %included_block, + parent = %parent_hash, + "Not building block." + ); + continue + }, + }; + + tracing::debug!( + target: crate::LOG_TARGET, + ?core_index, + slot_info = ?para_slot, + unincluded_segment_len = parent.depth, + relay_parent = %relay_parent, + included = %included_block, + parent = %parent_hash, + "Building block." + ); + + let validation_data = PersistedValidationData { + parent_head: parent_header.encode().into(), + relay_parent_number: *relay_parent_header.number(), + relay_parent_storage_root: *relay_parent_header.state_root(), + max_pov_size, + }; + + let (parachain_inherent_data, other_inherent_data) = match collator + .create_inherent_data( + relay_parent, + &validation_data, + parent_hash, + slot_claim.timestamp(), + ) + .await + { + Err(err) => { + tracing::error!(target: crate::LOG_TARGET, ?err); + break + }, + Ok(x) => x, + }; + + let validation_code_hash = match code_hash_provider.code_hash_at(parent_hash) { + None => { + tracing::error!(target: crate::LOG_TARGET, ?parent_hash, "Could not fetch validation code hash"); + break + }, + Some(v) => v, + }; + + check_validation_code_or_log( + &validation_code_hash, + para_id, + &relay_client, + relay_parent, + ) + .await; + + let Ok(Some(candidate)) = collator + .build_block_and_import( + &parent_header, + &slot_claim, + None, + (parachain_inherent_data, other_inherent_data), + authoring_duration, + // Set the block limit to 50% of the maximum PoV size. + // + // TODO: If we got benchmarking that includes the proof size, + // we should be able to use the maximum pov size. + (validation_data.max_pov_size / 2) as usize, + ) + .await + else { + tracing::error!(target: crate::LOG_TARGET, "Unable to build block at slot."); + continue; + }; + + let new_block_hash = candidate.block.header().hash(); + + // Announce the newly built block to our peers. + collator.collator_service().announce_block(new_block_hash, None); + + if let Err(err) = collator_sender.unbounded_send(CollatorMessage { + relay_parent, + parent_header, + parachain_candidate: candidate, + validation_code_hash, + core_index: *core_index, + }) { + tracing::error!(target: crate::LOG_TARGET, ?err, "Unable to send block to collation task."); + return + } + } + } +} + +/// Calculate the expected core count based on the slot duration of the relay and parachain. +/// +/// If `slot_duration` is smaller than `relay_chain_slot_duration` that means that we produce more +/// than one parachain block per relay chain block. In order to get these backed, we need multiple +/// cores. This method calculates how many cores we should expect to have scheduled under the +/// assumption that we have a fixed number of cores assigned to our parachain. +fn expected_core_count( + relay_chain_slot_duration: Duration, + slot_duration: SlotDuration, +) -> Option { + let slot_duration_millis = slot_duration.as_millis(); + u64::try_from(relay_chain_slot_duration.as_millis()) + .map_err(|e| tracing::error!("Unable to calculate expected parachain core count: {e}")) + .map(|relay_slot_duration| (relay_slot_duration / slot_duration_millis).max(1)) + .ok() +} + +/// Contains relay chain data necessary for parachain block building. +#[derive(Clone)] +struct RelayChainData { + /// Current relay chain parent header. + pub relay_parent_header: RelayHeader, + /// The cores this para is scheduled on in the context of the relay parent. + pub scheduled_cores: Vec, + /// Maximum configured PoV size on the relay chain. + pub max_pov_size: u32, + /// Current relay chain parent header. + pub relay_parent_hash: RelayHash, +} + +/// Simple helper to fetch relay chain data and cache it based on the current relay chain best block +/// hash. +struct RelayChainCachingFetcher { + relay_client: RI, + para_id: ParaId, + last_data: Option<(RelayHash, RelayChainData)>, +} + +impl RelayChainCachingFetcher +where + RI: RelayChainInterface + Clone + 'static, +{ + pub fn new(relay_client: RI, para_id: ParaId) -> Self { + Self { relay_client, para_id, last_data: None } + } + + /// Fetch required [`RelayChainData`] from the relay chain. + /// If this data has been fetched in the past for the incoming hash, it will reuse + /// cached data. + pub async fn get_relay_chain_data(&mut self) -> Result { + let Ok(relay_parent) = self.relay_client.best_block_hash().await else { + tracing::warn!(target: crate::LOG_TARGET, "Unable to fetch latest relay chain block hash."); + return Err(()) + }; + + match &self.last_data { + Some((last_seen_hash, data)) if *last_seen_hash == relay_parent => { + tracing::trace!(target: crate::LOG_TARGET, %relay_parent, "Using cached data for relay parent."); + Ok(data.clone()) + }, + _ => { + tracing::trace!(target: crate::LOG_TARGET, %relay_parent, "Relay chain best block changed, fetching new data from relay chain."); + let data = self.update_for_relay_parent(relay_parent).await?; + self.last_data = Some((relay_parent, data.clone())); + Ok(data) + }, + } + } + + /// Fetch fresh data from the relay chain for the given relay parent hash. + async fn update_for_relay_parent(&self, relay_parent: RelayHash) -> Result { + let scheduled_cores = + cores_scheduled_for_para(relay_parent, self.para_id, &self.relay_client).await; + let Ok(Some(relay_parent_header)) = + self.relay_client.header(BlockId::Hash(relay_parent)).await + else { + tracing::warn!(target: crate::LOG_TARGET, "Unable to fetch latest relay chain block header."); + return Err(()) + }; + + let max_pov_size = match self + .relay_client + .persisted_validation_data(relay_parent, self.para_id, OccupiedCoreAssumption::Included) + .await + { + Ok(None) => return Err(()), + Ok(Some(pvd)) => pvd.max_pov_size, + Err(err) => { + tracing::error!(target: crate::LOG_TARGET, ?err, "Failed to gather information from relay-client"); + return Err(()) + }, + }; + + Ok(RelayChainData { + relay_parent_hash: relay_parent, + relay_parent_header, + scheduled_cores, + max_pov_size, + }) + } +} diff --git a/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs b/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs new file mode 100644 index 00000000000..5b8151f6302 --- /dev/null +++ b/cumulus/client/consensus/aura/src/collators/slot_based/collation_task.rs @@ -0,0 +1,140 @@ +// Copyright (C) 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 . + +use codec::Encode; + +use cumulus_client_collator::service::ServiceInterface as CollatorServiceInterface; +use cumulus_relay_chain_interface::RelayChainInterface; + +use polkadot_node_primitives::{MaybeCompressedPoV, SubmitCollationParams}; +use polkadot_node_subsystem::messages::CollationGenerationMessage; +use polkadot_overseer::Handle as OverseerHandle; +use polkadot_primitives::{CollatorPair, Id as ParaId}; + +use futures::prelude::*; + +use sc_utils::mpsc::TracingUnboundedReceiver; +use sp_runtime::traits::{Block as BlockT, Header}; + +use super::CollatorMessage; + +const LOG_TARGET: &str = "aura::cumulus::collation_task"; + +/// Parameters for the collation task. +pub struct Params { + /// A handle to the relay-chain client. + pub relay_client: RClient, + /// The collator key used to sign collations before submitting to validators. + pub collator_key: CollatorPair, + /// The para's ID. + pub para_id: ParaId, + /// Whether we should reinitialize the collator config (i.e. we are transitioning to aura). + pub reinitialize: bool, + /// Collator service interface + pub collator_service: CS, + /// Receiver channel for communication with the block builder task. + pub collator_receiver: TracingUnboundedReceiver>, +} + +/// Asynchronously executes the collation task for a parachain. +/// +/// This function initializes the collator subsystems necessary for producing and submitting +/// collations to the relay chain. It listens for new best relay chain block notifications and +/// handles collator messages. If our parachain is scheduled on a core and we have a candidate, +/// the task will build a collation and send it to the relay chain. +pub async fn run_collation_task(mut params: Params) +where + Block: BlockT, + CS: CollatorServiceInterface + Send + Sync + 'static, + RClient: RelayChainInterface + Clone + 'static, +{ + let Ok(mut overseer_handle) = params.relay_client.overseer_handle() else { + tracing::error!(target: LOG_TARGET, "Failed to get overseer handle."); + return + }; + + cumulus_client_collator::initialize_collator_subsystems( + &mut overseer_handle, + params.collator_key, + params.para_id, + params.reinitialize, + ) + .await; + + let collator_service = params.collator_service; + while let Some(collator_message) = params.collator_receiver.next().await { + handle_collation_message(collator_message, &collator_service, &mut overseer_handle).await; + } +} + +/// Handle an incoming collation message from the block builder task. +/// This builds the collation from the [`CollatorMessage`] and submits it to +/// the collation-generation subsystem of the relay chain. +async fn handle_collation_message( + message: CollatorMessage, + collator_service: &impl CollatorServiceInterface, + overseer_handle: &mut OverseerHandle, +) { + let CollatorMessage { + parent_header, + parachain_candidate, + validation_code_hash, + relay_parent, + core_index, + } = message; + + let hash = parachain_candidate.block.header().hash(); + let number = *parachain_candidate.block.header().number(); + let (collation, block_data) = + match collator_service.build_collation(&parent_header, hash, parachain_candidate) { + Some(collation) => collation, + None => { + tracing::warn!(target: LOG_TARGET, %hash, ?number, ?core_index, "Unable to build collation."); + return; + }, + }; + + tracing::info!( + target: LOG_TARGET, + "PoV size {{ header: {:.2}kB, extrinsics: {:.2}kB, storage_proof: {:.2}kB }}", + block_data.header().encoded_size() as f64 / 1024f64, + block_data.extrinsics().encoded_size() as f64 / 1024f64, + block_data.storage_proof().encoded_size() as f64 / 1024f64, + ); + + if let MaybeCompressedPoV::Compressed(ref pov) = collation.proof_of_validity { + tracing::info!( + target: LOG_TARGET, + "Compressed PoV size: {}kb", + pov.block_data.0.len() as f64 / 1024f64, + ); + } + + tracing::debug!(target: LOG_TARGET, ?core_index, %hash, %number, "Submitting collation for core."); + overseer_handle + .send_msg( + CollationGenerationMessage::SubmitCollation(SubmitCollationParams { + relay_parent, + collation, + parent_head: parent_header.encode().into(), + validation_code_hash, + core_index, + result_sender: None, + }), + "SubmitCollation", + ) + .await; +} diff --git a/cumulus/client/consensus/aura/src/collators/slot_based/mod.rs b/cumulus/client/consensus/aura/src/collators/slot_based/mod.rs new file mode 100644 index 00000000000..0fe49d58d25 --- /dev/null +++ b/cumulus/client/consensus/aura/src/collators/slot_based/mod.rs @@ -0,0 +1,178 @@ +// Copyright (C) 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 . + +//! A collator for Aura that looks ahead of the most recently included parachain block +//! when determining what to build upon. +//! +//! The block building mechanism consists of two parts: +//! 1. A block-builder task that builds parachain blocks at each of our slots. +//! 2. A collator task that transforms the blocks into a collation and submits them to the relay +//! chain. +//! +//! Blocks are built on every parachain slot if there is a core scheduled on the relay chain. At the +//! beginning of each block building loop, we determine how many blocks we expect to build per relay +//! chain block. The collator implementation then expects that we have that many cores scheduled +//! during the relay chain block. After the block is built, the block builder task sends it to +//! the collation task which compresses it and submits it to the collation-generation subsystem. + +use codec::Codec; +use consensus_common::ParachainCandidate; +use cumulus_client_collator::service::ServiceInterface as CollatorServiceInterface; +use cumulus_client_consensus_common::{self as consensus_common, ParachainBlockImportMarker}; +use cumulus_client_consensus_proposer::ProposerInterface; +use cumulus_primitives_aura::AuraUnincludedSegmentApi; +use cumulus_primitives_core::CollectCollationInfo; +use cumulus_relay_chain_interface::RelayChainInterface; +use polkadot_primitives::{ + CollatorPair, CoreIndex, Hash as RelayHash, Id as ParaId, ValidationCodeHash, +}; + +use sc_client_api::{backend::AuxStore, BlockBackend, BlockOf, UsageProvider}; +use sc_consensus::BlockImport; +use sc_utils::mpsc::tracing_unbounded; + +use sp_api::ProvideRuntimeApi; +use sp_application_crypto::AppPublic; +use sp_blockchain::HeaderBackend; +use sp_consensus_aura::AuraApi; +use sp_core::crypto::Pair; +use sp_inherents::CreateInherentDataProviders; +use sp_keystore::KeystorePtr; +use sp_runtime::traits::{Block as BlockT, Member}; + +use std::{sync::Arc, time::Duration}; + +use self::{block_builder_task::run_block_builder, collation_task::run_collation_task}; + +mod block_builder_task; +mod collation_task; + +/// Parameters for [`run`]. +pub struct Params { + /// Inherent data providers. Only non-consensus inherent data should be provided, i.e. + /// the timestamp, slot, and paras inherents should be omitted, as they are set by this + /// collator. + pub create_inherent_data_providers: CIDP, + /// Used to actually import blocks. + pub block_import: BI, + /// The underlying para client. + pub para_client: Arc, + /// The para client's backend, used to access the database. + pub para_backend: Arc, + /// A handle to the relay-chain client. + pub relay_client: RClient, + /// A validation code hash provider, used to get the current validation code hash. + pub code_hash_provider: CHP, + /// The underlying keystore, which should contain Aura consensus keys. + pub keystore: KeystorePtr, + /// The collator key used to sign collations before submitting to validators. + pub collator_key: CollatorPair, + /// The para's ID. + pub para_id: ParaId, + /// The length of slots in the relay chain. + pub relay_chain_slot_duration: Duration, + /// The underlying block proposer this should call into. + pub proposer: Proposer, + /// The generic collator service used to plug into this consensus engine. + pub collator_service: CS, + /// The amount of time to spend authoring each block. + pub authoring_duration: Duration, + /// Whether we should reinitialize the collator config (i.e. we are transitioning to aura). + pub reinitialize: bool, + /// Drift slots by a fixed duration. This can be used to create more preferrable authoring + /// timings. + pub slot_drift: Duration, +} + +/// Run aura-based block building and collation task. +pub fn run( + params: Params, +) -> (impl futures::Future, impl futures::Future) +where + Block: BlockT, + Client: ProvideRuntimeApi + + BlockOf + + AuxStore + + HeaderBackend + + BlockBackend + + UsageProvider + + Send + + Sync + + 'static, + Client::Api: + AuraApi + CollectCollationInfo + AuraUnincludedSegmentApi, + Backend: sc_client_api::Backend + 'static, + RClient: RelayChainInterface + Clone + 'static, + CIDP: CreateInherentDataProviders + 'static, + CIDP::InherentDataProviders: Send, + BI: BlockImport + ParachainBlockImportMarker + Send + Sync + 'static, + Proposer: ProposerInterface + Send + Sync + 'static, + CS: CollatorServiceInterface + Send + Sync + Clone + 'static, + CHP: consensus_common::ValidationCodeHashProvider + Send + 'static, + P: Pair + 'static, + P::Public: AppPublic + Member + Codec, + P::Signature: TryFrom> + Member + Codec, +{ + let (tx, rx) = tracing_unbounded("mpsc_builder_to_collator", 100); + let collator_task_params = collation_task::Params { + relay_client: params.relay_client.clone(), + collator_key: params.collator_key, + para_id: params.para_id, + reinitialize: params.reinitialize, + collator_service: params.collator_service.clone(), + collator_receiver: rx, + }; + + let collation_task_fut = run_collation_task::(collator_task_params); + + let block_builder_params = block_builder_task::BuilderTaskParams { + create_inherent_data_providers: params.create_inherent_data_providers, + block_import: params.block_import, + para_client: params.para_client, + para_backend: params.para_backend, + relay_client: params.relay_client, + code_hash_provider: params.code_hash_provider, + keystore: params.keystore, + para_id: params.para_id, + proposer: params.proposer, + collator_service: params.collator_service, + authoring_duration: params.authoring_duration, + collator_sender: tx, + relay_chain_slot_duration: params.relay_chain_slot_duration, + slot_drift: params.slot_drift, + }; + + let block_builder_fut = + run_block_builder::(block_builder_params); + + (collation_task_fut, block_builder_fut) +} + +/// Message to be sent from the block builder to the collation task. +/// +/// Contains all data necessary to submit a collation to the relay chain. +struct CollatorMessage { + /// The hash of the relay chain block that provides the context for the parachain block. + pub relay_parent: RelayHash, + /// The header of the parent block. + pub parent_header: Block::Header, + /// The parachain block candidate. + pub parachain_candidate: ParachainCandidate, + /// The validation code hash at the parent block. + pub validation_code_hash: ValidationCodeHash, + /// Core index that this block should be submitted on + pub core_index: CoreIndex, +} diff --git a/cumulus/client/consensus/common/src/lib.rs b/cumulus/client/consensus/common/src/lib.rs index 2b0d8290182..e12750dcc55 100644 --- a/cumulus/client/consensus/common/src/lib.rs +++ b/cumulus/client/consensus/common/src/lib.rs @@ -19,16 +19,13 @@ use polkadot_primitives::{ Block as PBlock, Hash as PHash, Header as PHeader, PersistedValidationData, ValidationCodeHash, }; -use cumulus_primitives_core::{ - relay_chain::{self, BlockId as RBlockId, OccupiedCoreAssumption}, - AbridgedHostConfiguration, ParaId, -}; +use cumulus_primitives_core::{relay_chain, AbridgedHostConfiguration}; use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface}; -use sc_client_api::{Backend, HeaderBackend}; +use sc_client_api::Backend; use sc_consensus::{shared_data::SharedData, BlockImport, ImportResult}; -use sp_blockchain::Backend as BlockchainBackend; use sp_consensus_slots::Slot; + use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; use sp_timestamp::Timestamp; @@ -36,9 +33,12 @@ use std::{sync::Arc, time::Duration}; mod level_monitor; mod parachain_consensus; +mod parent_search; #[cfg(test)] mod tests; +pub use parent_search::*; + pub use parachain_consensus::run_parachain_consensus; use level_monitor::LevelMonitor; @@ -229,196 +229,6 @@ pub trait ParachainBlockImportMarker {} impl ParachainBlockImportMarker for ParachainBlockImport {} -/// Parameters when searching for suitable parents to build on top of. -#[derive(Debug)] -pub struct ParentSearchParams { - /// The relay-parent that is intended to be used. - pub relay_parent: PHash, - /// The ID of the parachain. - pub para_id: ParaId, - /// A limitation on the age of relay parents for parachain blocks that are being - /// considered. This is relative to the `relay_parent` number. - pub ancestry_lookback: usize, - /// How "deep" parents can be relative to the included parachain block at the relay-parent. - /// The included block has depth 0. - pub max_depth: usize, - /// Whether to only ignore "alternative" branches, i.e. branches of the chain - /// which do not contain the block pending availability. - pub ignore_alternative_branches: bool, -} - -/// A potential parent block returned from [`find_potential_parents`] -#[derive(Debug, PartialEq)] -pub struct PotentialParent { - /// The hash of the block. - pub hash: B::Hash, - /// The header of the block. - pub header: B::Header, - /// The depth of the block. - pub depth: usize, - /// Whether the block is the included block, is itself pending on-chain, or descends - /// from the block pending availability. - pub aligned_with_pending: bool, -} - -/// Perform a recursive search through blocks to find potential -/// parent blocks for a new block. -/// -/// This accepts a relay-chain block to be used as an anchor and a maximum search depth, -/// along with some arguments for filtering parachain blocks and performs a recursive search -/// for parachain blocks. The search begins at the last included parachain block and returns -/// a set of [`PotentialParent`]s which could be potential parents of a new block with this -/// relay-parent according to the search parameters. -/// -/// A parachain block is a potential parent if it is either the last included parachain block, the -/// pending parachain block (when `max_depth` >= 1), or all of the following hold: -/// * its parent is a potential parent -/// * its relay-parent is within `ancestry_lookback` of the targeted relay-parent. -/// * its relay-parent is within the same session as the targeted relay-parent. -/// * the block number is within `max_depth` blocks of the included block -pub async fn find_potential_parents( - params: ParentSearchParams, - client: &impl Backend, - relay_client: &impl RelayChainInterface, -) -> Result>, RelayChainError> { - // 1. Build up the ancestry record of the relay chain to compare against. - let rp_ancestry = { - let mut ancestry = Vec::with_capacity(params.ancestry_lookback + 1); - let mut current_rp = params.relay_parent; - let mut required_session = None; - - while ancestry.len() <= params.ancestry_lookback { - let header = match relay_client.header(RBlockId::hash(current_rp)).await? { - None => break, - Some(h) => h, - }; - - let session = relay_client.session_index_for_child(current_rp).await?; - if let Some(required_session) = required_session { - // Respect the relay-chain rule not to cross session boundaries. - if session != required_session { - break - } - } else { - required_session = Some(session); - } - - ancestry.push((current_rp, *header.state_root())); - current_rp = *header.parent_hash(); - - // don't iterate back into the genesis block. - if header.number == 1 { - break - } - } - - ancestry - }; - - let is_hash_in_ancestry = |hash| rp_ancestry.iter().any(|x| x.0 == hash); - let is_root_in_ancestry = |root| rp_ancestry.iter().any(|x| x.1 == root); - - // 2. Get the included and pending availability blocks. - let included_header = relay_client - .persisted_validation_data( - params.relay_parent, - params.para_id, - OccupiedCoreAssumption::TimedOut, - ) - .await?; - - let included_header = match included_header { - Some(pvd) => pvd.parent_head, - None => return Ok(Vec::new()), // this implies the para doesn't exist. - }; - - let pending_header = relay_client - .persisted_validation_data( - params.relay_parent, - params.para_id, - OccupiedCoreAssumption::Included, - ) - .await? - .and_then(|x| if x.parent_head != included_header { Some(x.parent_head) } else { None }); - - let included_header = match B::Header::decode(&mut &included_header.0[..]).ok() { - None => return Ok(Vec::new()), - Some(x) => x, - }; - // Silently swallow if pending block can't decode. - let pending_header = pending_header.and_then(|p| B::Header::decode(&mut &p.0[..]).ok()); - let included_hash = included_header.hash(); - let pending_hash = pending_header.as_ref().map(|hdr| hdr.hash()); - - let mut frontier = vec![PotentialParent:: { - hash: included_hash, - header: included_header, - depth: 0, - aligned_with_pending: true, - }]; - - // Recursive search through descendants of the included block which have acceptable - // relay parents. - let mut potential_parents = Vec::new(); - while let Some(entry) = frontier.pop() { - let is_pending = - entry.depth == 1 && pending_hash.as_ref().map_or(false, |h| &entry.hash == h); - let is_included = entry.depth == 0; - - // note: even if the pending block or included block have a relay parent - // outside of the expected part of the relay chain, they are always allowed - // because they have already been posted on chain. - let is_potential = is_pending || is_included || { - let digest = entry.header.digest(); - cumulus_primitives_core::extract_relay_parent(digest).map_or(false, is_hash_in_ancestry) || - cumulus_primitives_core::rpsr_digest::extract_relay_parent_storage_root(digest) - .map(|(r, _n)| r) - .map_or(false, is_root_in_ancestry) - }; - - let parent_aligned_with_pending = entry.aligned_with_pending; - let child_depth = entry.depth + 1; - let hash = entry.hash; - - if is_potential { - potential_parents.push(entry); - } - - if !is_potential || child_depth > params.max_depth { - continue - } - - // push children onto search frontier. - for child in client.blockchain().children(hash).ok().into_iter().flatten() { - let aligned_with_pending = parent_aligned_with_pending && - if child_depth == 1 { - pending_hash.as_ref().map_or(true, |h| &child == h) - } else { - true - }; - - if params.ignore_alternative_branches && !aligned_with_pending { - continue - } - - let header = match client.blockchain().header(child) { - Ok(Some(h)) => h, - Ok(None) => continue, - Err(_) => continue, - }; - - frontier.push(PotentialParent { - hash: child, - header, - depth: child_depth, - aligned_with_pending, - }); - } - } - - Ok(potential_parents) -} - /// Get the relay-parent slot and timestamp from a header. pub fn relay_slot_and_timestamp( relay_parent_header: &PHeader, diff --git a/cumulus/client/consensus/common/src/parachain_consensus.rs b/cumulus/client/consensus/common/src/parachain_consensus.rs index b4b315bb32b..944917673b1 100644 --- a/cumulus/client/consensus/common/src/parachain_consensus.rs +++ b/cumulus/client/consensus/common/src/parachain_consensus.rs @@ -375,60 +375,61 @@ async fn handle_new_best_parachain_head( target: LOG_TARGET, block_hash = ?hash, "Skipping set new best block, because block is already the best.", - ) - } else { - // Make sure the block is already known or otherwise we skip setting new best. - match parachain.block_status(hash) { - Ok(BlockStatus::InChainWithState) => { - unset_best_header.take(); - tracing::debug!( - target: LOG_TARGET, - ?hash, - "Importing block as new best for parachain.", - ); - import_block_as_new_best(hash, parachain_head, parachain).await; - }, - Ok(BlockStatus::InChainPruned) => { - tracing::error!( - target: LOG_TARGET, - block_hash = ?hash, - "Trying to set pruned block as new best!", - ); - }, - Ok(BlockStatus::Unknown) => { - *unset_best_header = Some(parachain_head); + ); + return; + } - tracing::debug!( - target: LOG_TARGET, - block_hash = ?hash, - "Parachain block not yet imported, waiting for import to enact as best block.", - ); - - if let Some(ref mut recovery_chan_tx) = recovery_chan_tx { - // Best effort channel to actively encourage block recovery. - // An error here is not fatal; the relay chain continuously re-announces - // the best block, thus we will have other opportunities to retry. - let req = RecoveryRequest { hash, kind: RecoveryKind::Full }; - if let Err(err) = recovery_chan_tx.try_send(req) { - tracing::warn!( - target: LOG_TARGET, - block_hash = ?hash, - error = ?err, - "Unable to notify block recovery subsystem" - ) - } + // Make sure the block is already known or otherwise we skip setting new best. + match parachain.block_status(hash) { + Ok(BlockStatus::InChainWithState) => { + unset_best_header.take(); + tracing::debug!( + target: LOG_TARGET, + included = ?hash, + "Importing block as new best for parachain.", + ); + import_block_as_new_best(hash, parachain_head, parachain).await; + }, + Ok(BlockStatus::InChainPruned) => { + tracing::error!( + target: LOG_TARGET, + block_hash = ?hash, + "Trying to set pruned block as new best!", + ); + }, + Ok(BlockStatus::Unknown) => { + *unset_best_header = Some(parachain_head); + + tracing::debug!( + target: LOG_TARGET, + block_hash = ?hash, + "Parachain block not yet imported, waiting for import to enact as best block.", + ); + + if let Some(ref mut recovery_chan_tx) = recovery_chan_tx { + // Best effort channel to actively encourage block recovery. + // An error here is not fatal; the relay chain continuously re-announces + // the best block, thus we will have other opportunities to retry. + let req = RecoveryRequest { hash, kind: RecoveryKind::Full }; + if let Err(err) = recovery_chan_tx.try_send(req) { + tracing::warn!( + target: LOG_TARGET, + block_hash = ?hash, + error = ?err, + "Unable to notify block recovery subsystem" + ) } - }, - Err(e) => { - tracing::error!( - target: LOG_TARGET, - block_hash = ?hash, - error = ?e, - "Failed to get block status of block.", - ); - }, - _ => {}, - } + } + }, + Err(e) => { + tracing::error!( + target: LOG_TARGET, + block_hash = ?hash, + error = ?e, + "Failed to get block status of block.", + ); + }, + _ => {}, } } diff --git a/cumulus/client/consensus/common/src/parent_search.rs b/cumulus/client/consensus/common/src/parent_search.rs new file mode 100644 index 00000000000..c371ec62f84 --- /dev/null +++ b/cumulus/client/consensus/common/src/parent_search.rs @@ -0,0 +1,418 @@ +// Copyright (C) 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 . + +use codec::Decode; +use polkadot_primitives::Hash as RelayHash; + +use cumulus_primitives_core::{ + relay_chain::{BlockId as RBlockId, OccupiedCoreAssumption}, + ParaId, +}; +use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface}; + +use sc_client_api::{Backend, HeaderBackend}; + +use sp_blockchain::{Backend as BlockchainBackend, TreeRoute}; + +use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; + +const PARENT_SEARCH_LOG_TARGET: &str = "consensus::common::find_potential_parents"; + +/// Parameters when searching for suitable parents to build on top of. +#[derive(Debug)] +pub struct ParentSearchParams { + /// The relay-parent that is intended to be used. + pub relay_parent: RelayHash, + /// The ID of the parachain. + pub para_id: ParaId, + /// A limitation on the age of relay parents for parachain blocks that are being + /// considered. This is relative to the `relay_parent` number. + pub ancestry_lookback: usize, + /// How "deep" parents can be relative to the included parachain block at the relay-parent. + /// The included block has depth 0. + pub max_depth: usize, + /// Whether to only ignore "alternative" branches, i.e. branches of the chain + /// which do not contain the block pending availability. + pub ignore_alternative_branches: bool, +} + +/// A potential parent block returned from [`find_potential_parents`] +#[derive(PartialEq)] +pub struct PotentialParent { + /// The hash of the block. + pub hash: B::Hash, + /// The header of the block. + pub header: B::Header, + /// The depth of the block with respect to the included block. + pub depth: usize, + /// Whether the block is the included block, is itself pending on-chain, or descends + /// from the block pending availability. + pub aligned_with_pending: bool, +} + +impl std::fmt::Debug for PotentialParent { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("PotentialParent") + .field("hash", &self.hash) + .field("depth", &self.depth) + .field("aligned_with_pending", &self.aligned_with_pending) + .field("number", &self.header.number()) + .finish() + } +} + +/// Perform a recursive search through blocks to find potential +/// parent blocks for a new block. +/// +/// This accepts a relay-chain block to be used as an anchor and a maximum search depth, +/// along with some arguments for filtering parachain blocks and performs a recursive search +/// for parachain blocks. The search begins at the last included parachain block and returns +/// a set of [`PotentialParent`]s which could be potential parents of a new block with this +/// relay-parent according to the search parameters. +/// +/// A parachain block is a potential parent if it is either the last included parachain block, the +/// pending parachain block (when `max_depth` >= 1), or all of the following hold: +/// * its parent is a potential parent +/// * its relay-parent is within `ancestry_lookback` of the targeted relay-parent. +/// * its relay-parent is within the same session as the targeted relay-parent. +/// * the block number is within `max_depth` blocks of the included block +pub async fn find_potential_parents( + params: ParentSearchParams, + backend: &impl Backend, + relay_client: &impl RelayChainInterface, +) -> Result>, RelayChainError> { + tracing::trace!("Parent search parameters: {params:?}"); + // Get the included block. + let Some((included_header, included_hash)) = + fetch_included_from_relay_chain(relay_client, backend, params.para_id, params.relay_parent) + .await? + else { + return Ok(Default::default()) + }; + + let only_included = vec![PotentialParent { + hash: included_hash, + header: included_header.clone(), + depth: 0, + aligned_with_pending: true, + }]; + + if params.max_depth == 0 { + return Ok(only_included) + }; + + // Pending header and hash. + let maybe_pending = { + // Fetch the most recent pending header from the relay chain. We use + // `OccupiedCoreAssumption::Included` so the candidate pending availability gets enacted + // before being returned to us. + let pending_header = relay_client + .persisted_validation_data( + params.relay_parent, + params.para_id, + OccupiedCoreAssumption::Included, + ) + .await? + .and_then(|p| B::Header::decode(&mut &p.parent_head.0[..]).ok()) + .filter(|x| x.hash() != included_hash); + + // If the pending block is not locally known, we can't do anything. + if let Some(header) = pending_header { + let pending_hash = header.hash(); + match backend.blockchain().header(pending_hash) { + // We are supposed to ignore branches that don't contain the pending block, but we + // do not know the pending block locally. + Ok(None) | Err(_) if params.ignore_alternative_branches => { + tracing::warn!( + target: PARENT_SEARCH_LOG_TARGET, + %pending_hash, + "Failed to get header for pending block.", + ); + return Ok(Default::default()) + }, + Ok(Some(_)) => Some((header, pending_hash)), + _ => None, + } + } else { + None + } + }; + + let maybe_route_to_last_pending = maybe_pending + .as_ref() + .map(|(_, pending)| { + sp_blockchain::tree_route(backend.blockchain(), included_hash, *pending) + }) + .transpose()?; + + // If we want to ignore alternative branches there is no reason to start + // the parent search at the included block. We can add the included block and + // the path to the pending block to the potential parents directly (limited by max_depth). + let (frontier, potential_parents) = match ( + &maybe_pending, + params.ignore_alternative_branches, + &maybe_route_to_last_pending, + ) { + (Some((pending_header, pending_hash)), true, Some(ref route_to_pending)) => { + let mut potential_parents = only_included; + + // This is a defensive check, should never happen. + if !route_to_pending.retracted().is_empty() { + tracing::warn!(target: PARENT_SEARCH_LOG_TARGET, "Included block not an ancestor of pending block. This should not happen."); + return Ok(Default::default()) + } + + // Add all items on the path included -> pending - 1 to the potential parents, but + // not more than `max_depth`. + let num_parents_on_path = + route_to_pending.enacted().len().saturating_sub(1).min(params.max_depth); + for (num, block) in + route_to_pending.enacted().iter().take(num_parents_on_path).enumerate() + { + let Ok(Some(header)) = backend.blockchain().header(block.hash) else { continue }; + + potential_parents.push(PotentialParent { + hash: block.hash, + header, + depth: 1 + num, + aligned_with_pending: true, + }); + } + + // The search for additional potential parents should now start at the children of + // the pending block. + ( + vec![PotentialParent { + hash: *pending_hash, + header: pending_header.clone(), + depth: route_to_pending.enacted().len(), + aligned_with_pending: true, + }], + potential_parents, + ) + }, + _ => (only_included, Default::default()), + }; + + if potential_parents.len() > params.max_depth { + return Ok(potential_parents); + } + + // Build up the ancestry record of the relay chain to compare against. + let rp_ancestry = + build_relay_parent_ancestry(params.ancestry_lookback, params.relay_parent, relay_client) + .await?; + + Ok(search_child_branches_for_parents( + frontier, + maybe_route_to_last_pending, + included_header, + maybe_pending.map(|(_, hash)| hash), + backend, + params.max_depth, + params.ignore_alternative_branches, + rp_ancestry, + potential_parents, + )) +} + +/// Fetch the included block from the relay chain. +async fn fetch_included_from_relay_chain( + relay_client: &impl RelayChainInterface, + backend: &impl Backend, + para_id: ParaId, + relay_parent: RelayHash, +) -> Result, RelayChainError> { + // Fetch the pending header from the relay chain. We use `OccupiedCoreAssumption::TimedOut` + // so that even if there is a pending candidate, we assume it is timed out and we get the + // included head. + let included_header = relay_client + .persisted_validation_data(relay_parent, para_id, OccupiedCoreAssumption::TimedOut) + .await?; + let included_header = match included_header { + Some(pvd) => pvd.parent_head, + None => return Ok(None), // this implies the para doesn't exist. + }; + + let included_header = match B::Header::decode(&mut &included_header.0[..]).ok() { + None => return Ok(None), + Some(x) => x, + }; + + let included_hash = included_header.hash(); + // If the included block is not locally known, we can't do anything. + match backend.blockchain().header(included_hash) { + Ok(None) => { + tracing::warn!( + target: PARENT_SEARCH_LOG_TARGET, + %included_hash, + "Failed to get header for included block.", + ); + return Ok(None) + }, + Err(e) => { + tracing::warn!( + target: PARENT_SEARCH_LOG_TARGET, + %included_hash, + %e, + "Failed to get header for included block.", + ); + return Ok(None) + }, + _ => {}, + }; + + Ok(Some((included_header, included_hash))) +} + +/// Build an ancestry of relay parents that are acceptable. +/// +/// An acceptable relay parent is one that is no more than `ancestry_lookback` + 1 blocks below the +/// relay parent we want to build on. Parachain blocks anchored on relay parents older than that can +/// not be considered potential parents for block building. They have no chance of still getting +/// included, so our newly build parachain block would also not get included. +/// +/// On success, returns a vector of `(header_hash, state_root)` of the relevant relay chain +/// ancestry blocks. +async fn build_relay_parent_ancestry( + ancestry_lookback: usize, + relay_parent: RelayHash, + relay_client: &impl RelayChainInterface, +) -> Result, RelayChainError> { + let mut ancestry = Vec::with_capacity(ancestry_lookback + 1); + let mut current_rp = relay_parent; + let mut required_session = None; + while ancestry.len() <= ancestry_lookback { + let Some(header) = relay_client.header(RBlockId::hash(current_rp)).await? else { break }; + + let session = relay_client.session_index_for_child(current_rp).await?; + if required_session.get_or_insert(session) != &session { + // Respect the relay-chain rule not to cross session boundaries. + break; + } + + ancestry.push((current_rp, *header.state_root())); + current_rp = *header.parent_hash(); + + // don't iterate back into the genesis block. + if header.number == 1 { + break + } + } + Ok(ancestry) +} + +/// Start search for child blocks that can be used as parents. +pub fn search_child_branches_for_parents( + mut frontier: Vec>, + maybe_route_to_last_pending: Option>, + included_header: Block::Header, + pending_hash: Option, + backend: &impl Backend, + max_depth: usize, + ignore_alternative_branches: bool, + rp_ancestry: Vec<(RelayHash, RelayHash)>, + mut potential_parents: Vec>, +) -> Vec> { + let included_hash = included_header.hash(); + let is_hash_in_ancestry = |hash| rp_ancestry.iter().any(|x| x.0 == hash); + let is_root_in_ancestry = |root| rp_ancestry.iter().any(|x| x.1 == root); + + // The distance between pending and included block. Is later used to check if a child + // is aligned with pending when it is between pending and included block. + let pending_distance = maybe_route_to_last_pending.as_ref().map(|route| route.enacted().len()); + + // If a block is on the path included -> pending, we consider it `aligned_with_pending`. + let is_child_pending = |hash| { + maybe_route_to_last_pending + .as_ref() + .map_or(true, |route| route.enacted().iter().any(|x| x.hash == hash)) + }; + + tracing::trace!( + target: PARENT_SEARCH_LOG_TARGET, + ?included_hash, + included_num = ?included_header.number(), + ?pending_hash , + ?rp_ancestry, + "Searching relay chain ancestry." + ); + while let Some(entry) = frontier.pop() { + let is_pending = pending_hash.as_ref().map_or(false, |h| &entry.hash == h); + let is_included = included_hash == entry.hash; + + // note: even if the pending block or included block have a relay parent + // outside of the expected part of the relay chain, they are always allowed + // because they have already been posted on chain. + let is_potential = is_pending || is_included || { + let digest = entry.header.digest(); + let is_hash_in_ancestry_check = cumulus_primitives_core::extract_relay_parent(digest) + .map_or(false, is_hash_in_ancestry); + let is_root_in_ancestry_check = + cumulus_primitives_core::rpsr_digest::extract_relay_parent_storage_root(digest) + .map(|(r, _n)| r) + .map_or(false, is_root_in_ancestry); + + is_hash_in_ancestry_check || is_root_in_ancestry_check + }; + + let parent_aligned_with_pending = entry.aligned_with_pending; + let child_depth = entry.depth + 1; + let hash = entry.hash; + + tracing::trace!( + target: PARENT_SEARCH_LOG_TARGET, + ?hash, + is_potential, + is_pending, + is_included, + "Checking potential parent." + ); + + if is_potential { + potential_parents.push(entry); + } + + if !is_potential || child_depth > max_depth { + continue + } + + // push children onto search frontier. + for child in backend.blockchain().children(hash).ok().into_iter().flatten() { + tracing::trace!(target: PARENT_SEARCH_LOG_TARGET, ?child, child_depth, ?pending_distance, "Looking at child."); + + let aligned_with_pending = parent_aligned_with_pending && + (pending_distance.map_or(true, |dist| child_depth > dist) || + is_child_pending(child)); + + if ignore_alternative_branches && !aligned_with_pending { + tracing::trace!(target: PARENT_SEARCH_LOG_TARGET, ?child, "Child is not aligned with pending block."); + continue + } + + let Ok(Some(header)) = backend.blockchain().header(child) else { continue }; + + frontier.push(PotentialParent { + hash: child, + header, + depth: child_depth, + aligned_with_pending, + }); + } + } + + potential_parents +} diff --git a/cumulus/client/consensus/common/src/tests.rs b/cumulus/client/consensus/common/src/tests.rs index 2a944bc7f9f..284fa39ed1e 100644 --- a/cumulus/client/consensus/common/src/tests.rs +++ b/cumulus/client/consensus/common/src/tests.rs @@ -20,7 +20,7 @@ use async_trait::async_trait; use codec::Encode; use cumulus_client_pov_recovery::RecoveryKind; use cumulus_primitives_core::{ - relay_chain::{self, BlockId}, + relay_chain::{BlockId, BlockNumber, CoreState}, CumulusDigestItem, InboundDownwardMessage, InboundHrmpMessage, }; use cumulus_relay_chain_interface::{ @@ -37,6 +37,7 @@ use futures_timer::Delay; use polkadot_primitives::HeadData; use sc_client_api::{Backend as _, UsageProvider}; use sc_consensus::{BlockImport, BlockImportParams, ForkChoiceStrategy}; +use sp_blockchain::Backend as BlockchainBackend; use sp_consensus::{BlockOrigin, BlockStatus}; use sp_version::RuntimeVersion; use std::{ @@ -46,11 +47,11 @@ use std::{ time::Duration, }; -fn relay_block_num_from_hash(hash: &PHash) -> relay_chain::BlockNumber { +fn relay_block_num_from_hash(hash: &PHash) -> BlockNumber { hash.to_low_u64_be() as u32 } -fn relay_hash_from_block_num(block_number: relay_chain::BlockNumber) -> PHash { +fn relay_hash_from_block_num(block_number: BlockNumber) -> PHash { PHash::from_low_u64_be(block_number as u64) } @@ -257,6 +258,13 @@ impl RelayChainInterface for Relaychain { })) } + async fn availability_cores( + &self, + _relay_parent: PHash, + ) -> RelayChainResult>> { + unimplemented!("Not needed for test"); + } + async fn version(&self, _: PHash) -> RelayChainResult { unimplemented!("Not needed for test") } @@ -1138,6 +1146,357 @@ fn find_potential_parents_with_max_depth() { } } +#[test] +fn find_potential_parents_unknown_included() { + sp_tracing::try_init_simple(); + + const NON_INCLUDED_CHAIN_LEN: usize = 5; + + let backend = Arc::new(Backend::new_test(1000, 1)); + let client = Arc::new(TestClientBuilder::with_backend(backend.clone()).build()); + let relay_parent = relay_hash_from_block_num(10); + // Choose different relay parent for alternative chain to get new hashes. + let search_relay_parent = relay_hash_from_block_num(11); + + let sproof = sproof_with_best_parent(&client); + let included_but_unknown = build_block(&*client, sproof, None, None, Some(relay_parent)); + + let relay_chain = Relaychain::new(); + { + let relay_inner = &mut relay_chain.inner.lock().unwrap(); + relay_inner + .relay_chain_hash_to_header + .insert(search_relay_parent, included_but_unknown.header().clone()); + } + + // Ignore alternative branch: + let potential_parents = block_on(find_potential_parents( + ParentSearchParams { + relay_parent: search_relay_parent, + para_id: ParaId::from(100), + ancestry_lookback: 1, // aligned chain is in ancestry. + max_depth: NON_INCLUDED_CHAIN_LEN, + ignore_alternative_branches: true, + }, + &*backend, + &relay_chain, + )) + .unwrap(); + + assert_eq!(potential_parents.len(), 0); +} + +#[test] +fn find_potential_parents_unknown_pending() { + sp_tracing::try_init_simple(); + + const NON_INCLUDED_CHAIN_LEN: usize = 5; + + let backend = Arc::new(Backend::new_test(1000, 1)); + let client = Arc::new(TestClientBuilder::with_backend(backend.clone()).build()); + let mut para_import = + ParachainBlockImport::new_with_delayed_best_block(client.clone(), backend.clone()); + + let relay_parent = relay_hash_from_block_num(10); + // Choose different relay parent for alternative chain to get new hashes. + let search_relay_parent = relay_hash_from_block_num(11); + let included_block = build_and_import_block_ext( + &client, + BlockOrigin::NetworkInitialSync, + true, + &mut para_import, + None, + None, + Some(relay_parent), + ); + + let sproof = sproof_with_parent_by_hash(&client, included_block.header().hash()); + let pending_but_unknown = build_block( + &*client, + sproof, + Some(included_block.header().hash()), + None, + Some(relay_parent), + ); + + let relay_chain = Relaychain::new(); + { + let relay_inner = &mut relay_chain.inner.lock().unwrap(); + relay_inner + .relay_chain_hash_to_header + .insert(search_relay_parent, included_block.header().clone()); + relay_inner + .relay_chain_hash_to_header_pending + .insert(search_relay_parent, pending_but_unknown.header().clone()); + } + + // Ignore alternative branch: + let potential_parents = block_on(find_potential_parents( + ParentSearchParams { + relay_parent: search_relay_parent, + para_id: ParaId::from(100), + ancestry_lookback: 1, // aligned chain is in ancestry. + max_depth: NON_INCLUDED_CHAIN_LEN, + ignore_alternative_branches: true, + }, + &*backend, + &relay_chain, + )) + .unwrap(); + + assert!(potential_parents.is_empty()); +} + +#[test] +fn find_potential_parents_unknown_pending_include_alternative_branches() { + sp_tracing::try_init_simple(); + + const NON_INCLUDED_CHAIN_LEN: usize = 5; + + let backend = Arc::new(Backend::new_test(1000, 1)); + let client = Arc::new(TestClientBuilder::with_backend(backend.clone()).build()); + let mut para_import = + ParachainBlockImport::new_with_delayed_best_block(client.clone(), backend.clone()); + + let relay_parent = relay_hash_from_block_num(10); + + // Choose different relay parent for alternative chain to get new hashes. + let search_relay_parent = relay_hash_from_block_num(11); + + let included_block = build_and_import_block_ext( + &client, + BlockOrigin::NetworkInitialSync, + true, + &mut para_import, + None, + None, + Some(relay_parent), + ); + + let alt_block = build_and_import_block_ext( + &client, + BlockOrigin::NetworkInitialSync, + true, + &mut para_import, + Some(included_block.header().hash()), + None, + Some(search_relay_parent), + ); + + tracing::info!(hash = %alt_block.header().hash(), "Alt block."); + let sproof = sproof_with_parent_by_hash(&client, included_block.header().hash()); + let pending_but_unknown = build_block( + &*client, + sproof, + Some(included_block.header().hash()), + None, + Some(relay_parent), + ); + + let relay_chain = Relaychain::new(); + { + let relay_inner = &mut relay_chain.inner.lock().unwrap(); + relay_inner + .relay_chain_hash_to_header + .insert(search_relay_parent, included_block.header().clone()); + relay_inner + .relay_chain_hash_to_header_pending + .insert(search_relay_parent, pending_but_unknown.header().clone()); + } + + // Ignore alternative branch: + let potential_parents = block_on(find_potential_parents( + ParentSearchParams { + relay_parent: search_relay_parent, + para_id: ParaId::from(100), + ancestry_lookback: 1, // aligned chain is in ancestry. + max_depth: NON_INCLUDED_CHAIN_LEN, + ignore_alternative_branches: false, + }, + &*backend, + &relay_chain, + )) + .unwrap(); + + let expected_parents: Vec<_> = vec![&included_block, &alt_block]; + assert_eq!(potential_parents.len(), 2); + assert_eq!(expected_parents[0].hash(), potential_parents[0].hash); + assert_eq!(expected_parents[1].hash(), potential_parents[1].hash); +} + +/// Test where there are multiple pending blocks. +#[test] +fn find_potential_parents_aligned_with_late_pending() { + sp_tracing::try_init_simple(); + + const NON_INCLUDED_CHAIN_LEN: usize = 5; + + let backend = Arc::new(Backend::new_test(1000, 1)); + let client = Arc::new(TestClientBuilder::with_backend(backend.clone()).build()); + let mut para_import = + ParachainBlockImport::new_with_delayed_best_block(client.clone(), backend.clone()); + + let relay_parent = relay_hash_from_block_num(10); + // Choose different relay parent for alternative chain to get new hashes. + let search_relay_parent = relay_hash_from_block_num(11); + let included_block = build_and_import_block_ext( + &client, + BlockOrigin::NetworkInitialSync, + true, + &mut para_import, + None, + None, + Some(relay_parent), + ); + + let in_between_block = build_and_import_block_ext( + &client, + BlockOrigin::NetworkInitialSync, + true, + &mut para_import, + Some(included_block.header().hash()), + None, + Some(relay_parent), + ); + + let pending_block = build_and_import_block_ext( + &client, + BlockOrigin::Own, + true, + &mut para_import, + Some(in_between_block.header().hash()), + None, + Some(relay_parent), + ); + + let relay_chain = Relaychain::new(); + { + let relay_inner = &mut relay_chain.inner.lock().unwrap(); + relay_inner + .relay_chain_hash_to_header + .insert(search_relay_parent, included_block.header().clone()); + relay_inner + .relay_chain_hash_to_header_pending + .insert(search_relay_parent, in_between_block.header().clone()); + relay_inner + .relay_chain_hash_to_header_pending + .insert(search_relay_parent, pending_block.header().clone()); + } + + // Build some blocks on the pending block and on the included block. + // We end up with two sibling chains, one is aligned with the pending block, + // the other is not. + let mut aligned_blocks = Vec::new(); + let mut parent = pending_block.header().hash(); + for _ in 2..NON_INCLUDED_CHAIN_LEN { + let block = build_and_import_block_ext( + &client, + BlockOrigin::Own, + true, + &mut para_import, + Some(parent), + None, + Some(relay_parent), + ); + parent = block.header().hash(); + aligned_blocks.push(block); + } + + let mut alt_blocks = Vec::new(); + let mut parent = included_block.header().hash(); + for _ in 0..NON_INCLUDED_CHAIN_LEN { + let block = build_and_import_block_ext( + &client, + BlockOrigin::NetworkInitialSync, + true, + &mut para_import, + Some(parent), + None, + Some(search_relay_parent), + ); + parent = block.header().hash(); + alt_blocks.push(block); + } + + // Ignore alternative branch: + for max_depth in 0..=NON_INCLUDED_CHAIN_LEN { + let potential_parents = block_on(find_potential_parents( + ParentSearchParams { + relay_parent: search_relay_parent, + para_id: ParaId::from(100), + ancestry_lookback: 1, // aligned chain is in ancestry. + max_depth, + ignore_alternative_branches: true, + }, + &*backend, + &relay_chain, + )) + .unwrap(); + + assert_eq!(potential_parents.len(), max_depth + 1); + let expected_parents: Vec<_> = [&included_block, &in_between_block, &pending_block] + .into_iter() + .chain(aligned_blocks.iter()) + .take(max_depth + 1) + .collect(); + + for i in 0..(max_depth + 1) { + let parent = &potential_parents[i]; + let expected = &expected_parents[i]; + + assert_eq!(parent.hash, expected.hash()); + assert_eq!(&parent.header, expected.header()); + assert_eq!(parent.depth, i); + assert!(parent.aligned_with_pending); + } + } + + // Do not ignore: + for max_depth in 0..=NON_INCLUDED_CHAIN_LEN { + let potential_parents = block_on(find_potential_parents( + ParentSearchParams { + relay_parent: search_relay_parent, + para_id: ParaId::from(100), + ancestry_lookback: 1, // aligned chain is in ancestry. + max_depth, + ignore_alternative_branches: false, + }, + &*backend, + &relay_chain, + )) + .unwrap(); + + let expected_len = 2 * max_depth + 1; + assert_eq!(potential_parents.len(), expected_len); + let expected_aligned: Vec<_> = [&included_block, &in_between_block, &pending_block] + .into_iter() + .chain(aligned_blocks.iter()) + .take(max_depth + 1) + .collect(); + let expected_alt = alt_blocks.iter().take(max_depth); + + let expected_parents: Vec<_> = + expected_aligned.clone().into_iter().chain(expected_alt).collect(); + // Check correctness. + assert_eq!(expected_parents.len(), expected_len); + + for i in 0..expected_len { + let parent = &potential_parents[i]; + let expected = expected_parents + .iter() + .find(|block| block.header().hash() == parent.hash) + .expect("missing parent"); + + let is_aligned = expected_aligned.contains(&expected); + + assert_eq!(parent.hash, expected.hash()); + assert_eq!(&parent.header, expected.header()); + + assert_eq!(parent.aligned_with_pending, is_aligned); + } + } +} + #[test] fn find_potential_parents_aligned_with_pending() { sp_tracing::try_init_simple(); @@ -1249,6 +1608,7 @@ fn find_potential_parents_aligned_with_pending() { // Do not ignore: for max_depth in 0..=NON_INCLUDED_CHAIN_LEN { + log::info!("Ran with max_depth = {max_depth}"); let potential_parents = block_on(find_potential_parents( ParentSearchParams { relay_parent: search_relay_parent, @@ -1276,6 +1636,7 @@ fn find_potential_parents_aligned_with_pending() { // Check correctness. assert_eq!(expected_parents.len(), expected_len); + potential_parents.iter().for_each(|p| log::info!("result: {:?}", p)); for i in 0..expected_len { let parent = &potential_parents[i]; let expected = expected_parents @@ -1288,6 +1649,12 @@ fn find_potential_parents_aligned_with_pending() { assert_eq!(parent.hash, expected.hash()); assert_eq!(&parent.header, expected.header()); + log::info!( + "Check hash: {:?} expected: {} is: {}", + parent.hash, + is_aligned, + parent.aligned_with_pending, + ); assert_eq!(parent.aligned_with_pending, is_aligned); } } diff --git a/cumulus/client/network/src/tests.rs b/cumulus/client/network/src/tests.rs index eb0d7f0e01b..18d121c41d1 100644 --- a/cumulus/client/network/src/tests.rs +++ b/cumulus/client/network/src/tests.rs @@ -26,9 +26,10 @@ use futures::{executor::block_on, poll, task::Poll, FutureExt, Stream, StreamExt use parking_lot::Mutex; use polkadot_node_primitives::{SignedFullStatement, Statement}; use polkadot_primitives::{ - CandidateCommitments, CandidateDescriptor, CollatorPair, CommittedCandidateReceipt, - Hash as PHash, HeadData, InboundDownwardMessage, InboundHrmpMessage, OccupiedCoreAssumption, - PersistedValidationData, SessionIndex, SigningContext, ValidationCodeHash, ValidatorId, + BlockNumber, CandidateCommitments, CandidateDescriptor, CollatorPair, + CommittedCandidateReceipt, CoreState, Hash as PHash, HeadData, InboundDownwardMessage, + InboundHrmpMessage, OccupiedCoreAssumption, PersistedValidationData, SessionIndex, + SigningContext, ValidationCodeHash, ValidatorId, }; use polkadot_test_client::{ Client as PClient, ClientBlockImportExt, DefaultTestClientBuilderExt, FullBackend as PBackend, @@ -297,6 +298,13 @@ impl RelayChainInterface for DummyRelayChainInterface { Ok(header) } + async fn availability_cores( + &self, + _relay_parent: PHash, + ) -> RelayChainResult>> { + unimplemented!("Not needed for test"); + } + async fn version(&self, _: PHash) -> RelayChainResult { let version = self.data.lock().runtime_version; diff --git a/cumulus/client/parachain-inherent/Cargo.toml b/cumulus/client/parachain-inherent/Cargo.toml index 9d346ce17f5..d81f727b41b 100644 --- a/cumulus/client/parachain-inherent/Cargo.toml +++ b/cumulus/client/parachain-inherent/Cargo.toml @@ -9,7 +9,6 @@ license = "Apache-2.0" [dependencies] async-trait = { workspace = true } codec = { features = ["derive"], workspace = true, default-features = true } -scale-info = { features = ["derive"], workspace = true, default-features = true } tracing = { workspace = true, default-features = true } # Substrate diff --git a/cumulus/client/pov-recovery/src/tests.rs b/cumulus/client/pov-recovery/src/tests.rs index 75bf308ef27..6f274ed18b6 100644 --- a/cumulus/client/pov-recovery/src/tests.rs +++ b/cumulus/client/pov-recovery/src/tests.rs @@ -17,7 +17,9 @@ use super::*; use assert_matches::assert_matches; use codec::{Decode, Encode}; -use cumulus_primitives_core::relay_chain::{BlockId, CandidateCommitments, CandidateDescriptor}; +use cumulus_primitives_core::relay_chain::{ + BlockId, CandidateCommitments, CandidateDescriptor, CoreState, +}; use cumulus_relay_chain_interface::{ InboundDownwardMessage, InboundHrmpMessage, OccupiedCoreAssumption, PHash, PHeader, PersistedValidationData, StorageValue, ValidationCodeHash, ValidatorId, @@ -478,6 +480,13 @@ impl RelayChainInterface for Relaychain { async fn header(&self, _: BlockId) -> RelayChainResult> { unimplemented!("Not needed for test"); } + + async fn availability_cores( + &self, + _: PHash, + ) -> RelayChainResult>>> { + unimplemented!("Not needed for test"); + } } fn make_candidate_chain(candidate_number_range: Range) -> Vec { diff --git a/cumulus/client/relay-chain-inprocess-interface/src/lib.rs b/cumulus/client/relay-chain-inprocess-interface/src/lib.rs index 7871623e844..8f8d666bd14 100644 --- a/cumulus/client/relay-chain-inprocess-interface/src/lib.rs +++ b/cumulus/client/relay-chain-inprocess-interface/src/lib.rs @@ -19,9 +19,9 @@ use std::{pin::Pin, sync::Arc, time::Duration}; use async_trait::async_trait; use cumulus_primitives_core::{ relay_chain::{ - runtime_api::ParachainHost, Block as PBlock, BlockId, CommittedCandidateReceipt, - Hash as PHash, Header as PHeader, InboundHrmpMessage, OccupiedCoreAssumption, SessionIndex, - ValidationCodeHash, ValidatorId, + runtime_api::ParachainHost, Block as PBlock, BlockId, BlockNumber, + CommittedCandidateReceipt, CoreState, Hash as PHash, Header as PHeader, InboundHrmpMessage, + OccupiedCoreAssumption, SessionIndex, ValidationCodeHash, ValidatorId, }, InboundDownwardMessage, ParaId, PersistedValidationData, }; @@ -256,6 +256,13 @@ impl RelayChainInterface for RelayChainInProcessInterface { Ok(Box::pin(notifications_stream)) } + async fn availability_cores( + &self, + relay_parent: PHash, + ) -> RelayChainResult>> { + Ok(self.full_client.runtime_api().availability_cores(relay_parent)?) + } + async fn candidates_pending_availability( &self, hash: PHash, diff --git a/cumulus/client/relay-chain-interface/src/lib.rs b/cumulus/client/relay-chain-interface/src/lib.rs index 46e19b40f01..d02035e84e9 100644 --- a/cumulus/client/relay-chain-interface/src/lib.rs +++ b/cumulus/client/relay-chain-interface/src/lib.rs @@ -29,8 +29,8 @@ use sp_api::ApiError; use cumulus_primitives_core::relay_chain::BlockId; pub use cumulus_primitives_core::{ relay_chain::{ - CommittedCandidateReceipt, Hash as PHash, Header as PHeader, InboundHrmpMessage, - OccupiedCoreAssumption, SessionIndex, ValidationCodeHash, ValidatorId, + BlockNumber, CommittedCandidateReceipt, CoreState, Hash as PHash, Header as PHeader, + InboundHrmpMessage, OccupiedCoreAssumption, SessionIndex, ValidationCodeHash, ValidatorId, }, InboundDownwardMessage, ParaId, PersistedValidationData, }; @@ -217,6 +217,14 @@ pub trait RelayChainInterface: Send + Sync { /// Get the runtime version of the relay chain. async fn version(&self, relay_parent: PHash) -> RelayChainResult; + + /// Yields information on all availability cores as relevant to the child block. + /// + /// Cores are either free, scheduled or occupied. Free cores can have paras assigned to them. + async fn availability_cores( + &self, + relay_parent: PHash, + ) -> RelayChainResult>>; } #[async_trait] @@ -337,6 +345,13 @@ where .await } + async fn availability_cores( + &self, + relay_parent: PHash, + ) -> RelayChainResult>> { + (**self).availability_cores(relay_parent).await + } + async fn candidates_pending_availability( &self, block_id: PHash, diff --git a/cumulus/client/relay-chain-minimal-node/Cargo.toml b/cumulus/client/relay-chain-minimal-node/Cargo.toml index 1d89316d400..95ecadc8bd0 100644 --- a/cumulus/client/relay-chain-minimal-node/Cargo.toml +++ b/cumulus/client/relay-chain-minimal-node/Cargo.toml @@ -17,13 +17,7 @@ polkadot-overseer = { workspace = true, default-features = true } polkadot-node-subsystem-util = { workspace = true, default-features = true } polkadot-node-network-protocol = { workspace = true, default-features = true } -polkadot-availability-recovery = { workspace = true, default-features = true } -polkadot-collator-protocol = { workspace = true, default-features = true } polkadot-network-bridge = { workspace = true, default-features = true } -polkadot-node-collation-generation = { workspace = true, default-features = true } -polkadot-node-core-runtime-api = { workspace = true, default-features = true } -polkadot-node-core-chain-api = { workspace = true, default-features = true } -polkadot-node-core-prospective-parachains = { workspace = true, default-features = true } polkadot-service = { workspace = true, default-features = true } # substrate deps @@ -51,4 +45,3 @@ array-bytes = { workspace = true, default-features = true } tracing = { workspace = true, default-features = true } async-trait = { workspace = true } futures = { workspace = true } -parking_lot = { workspace = true, default-features = true } diff --git a/cumulus/client/relay-chain-rpc-interface/src/lib.rs b/cumulus/client/relay-chain-rpc-interface/src/lib.rs index bb7bfa5dc32..692a1fb537a 100644 --- a/cumulus/client/relay-chain-rpc-interface/src/lib.rs +++ b/cumulus/client/relay-chain-rpc-interface/src/lib.rs @@ -24,7 +24,7 @@ use cumulus_primitives_core::{ InboundDownwardMessage, ParaId, PersistedValidationData, }; use cumulus_relay_chain_interface::{ - PHeader, RelayChainError, RelayChainInterface, RelayChainResult, + BlockNumber, CoreState, PHeader, RelayChainError, RelayChainInterface, RelayChainResult, }; use futures::{FutureExt, Stream, StreamExt}; use polkadot_overseer::Handle; @@ -252,4 +252,11 @@ impl RelayChainInterface for RelayChainRpcInterface { async fn version(&self, relay_parent: RelayHash) -> RelayChainResult { self.rpc_client.runtime_version(relay_parent).await } + + async fn availability_cores( + &self, + relay_parent: RelayHash, + ) -> RelayChainResult>> { + self.rpc_client.parachain_host_availability_cores(relay_parent).await + } } diff --git a/cumulus/pallets/aura-ext/src/consensus_hook.rs b/cumulus/pallets/aura-ext/src/consensus_hook.rs index 59202980339..560d477b2a8 100644 --- a/cumulus/pallets/aura-ext/src/consensus_hook.rs +++ b/cumulus/pallets/aura-ext/src/consensus_hook.rs @@ -65,9 +65,19 @@ where let para_slot_from_relay = Slot::from_timestamp(relay_chain_timestamp.into(), para_slot_duration); - // Perform checks. - assert_eq!(slot, para_slot_from_relay, "slot number mismatch"); - if authored > velocity + 1 { + // Check that we are not too far in the future. Since we expect `V` parachain blocks + // during the relay chain slot, we can allow for `V` parachain slots into the future. + if *slot > *para_slot_from_relay + u64::from(velocity) { + panic!( + "Parachain slot is too far in the future: parachain_slot: {:?}, derived_from_relay_slot: {:?} velocity: {:?}", + slot, + para_slot_from_relay, + velocity + ); + } + + // We need to allow authoring multiple blocks in the same slot. + if slot != para_slot_from_relay && authored > velocity { panic!("authored blocks limit is reached for the slot") } let weight = T::DbWeight::get().reads(1); @@ -113,6 +123,11 @@ impl< return false } + // TODO: This logic needs to be adjusted. + // It checks that we have not authored more than `V + 1` blocks in the slot. + // As a slot however, we take the parachain slot here. Velocity should + // be measured in relation to the relay chain slot. + // https://github.com/paritytech/polkadot-sdk/issues/3967 if last_slot == new_slot { authored_so_far < velocity + 1 } else { diff --git a/cumulus/pallets/aura-ext/src/lib.rs b/cumulus/pallets/aura-ext/src/lib.rs index 7ca84dff7c5..4605dd325be 100644 --- a/cumulus/pallets/aura-ext/src/lib.rs +++ b/cumulus/pallets/aura-ext/src/lib.rs @@ -83,7 +83,7 @@ pub mod pallet { SlotInfo::::put((new_slot, authored)); - T::DbWeight::get().reads_writes(2, 1) + T::DbWeight::get().reads_writes(4, 2) } } diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index ae5abdcfab6..7085211dad2 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -120,7 +120,7 @@ substrate-build-script-utils = { workspace = true, default-features = true } assert_cmd = { workspace = true } nix = { features = ["signal"], workspace = true } tempfile = { workspace = true } -tokio = { features = ["macros", "parking_lot", "time"], workspace = true, default-features = true } +tokio = { version = "1.32.0", features = ["macros", "parking_lot", "time"] } wait-timeout = { workspace = true } [features] diff --git a/cumulus/polkadot-parachain/src/cli.rs b/cumulus/polkadot-parachain/src/cli.rs index 3f8a2ec0d11..7c01e34f9a0 100644 --- a/cumulus/polkadot-parachain/src/cli.rs +++ b/cumulus/polkadot-parachain/src/cli.rs @@ -73,6 +73,12 @@ pub struct Cli { #[command(flatten)] pub run: cumulus_client_cli::RunCmd, + /// EXPERIMENTAL: Use slot-based collator which can handle elastic scaling. + /// + /// Use with care, this flag is unstable and subject to change. + #[arg(long)] + pub experimental_use_slot_based: bool, + /// Disable automatic hardware benchmarks. /// /// By default these benchmarks are automatically ran at startup and measure diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 2a1f20d5c17..323216f300d 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -690,6 +690,7 @@ pub fn run() -> Result<()> { polkadot_config, collator_options, id, + cli.experimental_use_slot_based, hwbench, ) .await, @@ -699,6 +700,7 @@ pub fn run() -> Result<()> { polkadot_config, collator_options, id, + cli.experimental_use_slot_based, hwbench, ) .await, @@ -713,24 +715,27 @@ async fn start_node>( polkadot_config: sc_service::Configuration, collator_options: cumulus_client_cli::CollatorOptions, id: ParaId, + use_experimental_slot_based: bool, hwbench: Option, ) -> Result { match config.chain_spec.runtime()? { - Runtime::AssetHubPolkadot => crate::service::start_asset_hub_lookahead_node::< - AssetHubPolkadotRuntimeApi, - AssetHubPolkadotAuraId, - Network, - >(config, polkadot_config, collator_options, id, hwbench) - .await - .map(|r| r.0) - .map_err(Into::into), + Runtime::AssetHubPolkadot => + crate::service::start_asset_hub_async_backing_node::< + AssetHubPolkadotRuntimeApi, + AssetHubPolkadotAuraId, + Network, + >(config, polkadot_config, collator_options, id, use_experimental_slot_based, hwbench) + .await + .map(|r| r.0) + .map_err(Into::into), Runtime::AssetHub | Runtime::Collectives => - crate::service::start_generic_aura_lookahead_node::( + crate::service::start_generic_aura_async_backing_node::( config, polkadot_config, collator_options, id, + use_experimental_slot_based, hwbench, ) .await @@ -753,6 +758,7 @@ async fn start_node>( polkadot_config, collator_options, id, + use_experimental_slot_based, hwbench, ) .await @@ -770,11 +776,12 @@ async fn start_node>( chain_spec::bridge_hubs::BridgeHubRuntimeType::Rococo | chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoLocal | chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoDevelopment => - crate::service::start_generic_aura_lookahead_node::( + crate::service::start_generic_aura_async_backing_node::( config, polkadot_config, collator_options, id, + use_experimental_slot_based, hwbench, ) .await @@ -793,11 +800,12 @@ async fn start_node>( chain_spec::coretime::CoretimeRuntimeType::Westend | chain_spec::coretime::CoretimeRuntimeType::WestendLocal | chain_spec::coretime::CoretimeRuntimeType::WestendDevelopment => - crate::service::start_generic_aura_lookahead_node::( + crate::service::start_generic_aura_async_backing_node::( config, polkadot_config, collator_options, id, + use_experimental_slot_based, hwbench, ) .await @@ -810,17 +818,19 @@ async fn start_node>( polkadot_config, collator_options, id, + use_experimental_slot_based, hwbench, ) .await .map(|r| r.0) .map_err(Into::into), - Runtime::Glutton => crate::service::start_basic_lookahead_node::( + Runtime::Glutton => crate::service::start_basic_async_backing_node::( config, polkadot_config, collator_options, id, + use_experimental_slot_based, hwbench, ) .await @@ -838,11 +848,12 @@ async fn start_node>( chain_spec::people::PeopleRuntimeType::Westend | chain_spec::people::PeopleRuntimeType::WestendLocal | chain_spec::people::PeopleRuntimeType::WestendDevelopment => - crate::service::start_generic_aura_lookahead_node::( + crate::service::start_generic_aura_async_backing_node::( config, polkadot_config, collator_options, id, + use_experimental_slot_based, hwbench, ) .await @@ -857,6 +868,7 @@ async fn start_node>( polkadot_config, collator_options, id, + use_experimental_slot_based, hwbench, ) .await diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index 42efe8098b2..0f2aed8ee4d 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -16,7 +16,10 @@ use cumulus_client_cli::CollatorOptions; use cumulus_client_collator::service::CollatorService; -use cumulus_client_consensus_aura::collators::lookahead::{self as aura, Params as AuraParams}; +use cumulus_client_consensus_aura::collators::{ + lookahead::{self as aura, Params as AuraParams}, + slot_based::{self as slot_based, Params as SlotBasedParams}, +}; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; use cumulus_client_consensus_proposer::Proposer; #[allow(deprecated)] @@ -51,7 +54,6 @@ use sc_consensus::{ }; use sc_executor::{HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; use sc_network::{config::FullNetworkConfiguration, service::traits::NetworkBackend, NetworkBlock}; -use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sp_api::{ApiExt, ConstructRuntimeApi, ProvideRuntimeApi}; @@ -214,7 +216,6 @@ where &TaskManager, Arc, Arc>>, - Arc>, KeystorePtr, Duration, ParaId, @@ -348,7 +349,6 @@ where &task_manager, relay_chain_interface.clone(), transaction_pool, - sync_service.clone(), params.keystore_container.keystore(), relay_chain_slot_duration, para_id, @@ -408,8 +408,14 @@ pub async fn start_rococo_parachain_node>( polkadot_config: Configuration, collator_options: CollatorOptions, para_id: ParaId, + use_experimental_slot_based: bool, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc>)> { + let consensus_starter = if use_experimental_slot_based { + start_slot_based_aura_consensus::<_, AuraId> + } else { + start_lookahead_aura_consensus::<_, AuraId> + }; start_node_impl::( parachain_config, polkadot_config, @@ -418,7 +424,7 @@ pub async fn start_rococo_parachain_node>( para_id, build_parachain_rpc_extensions::, build_aura_import_queue, - start_lookahead_aura_consensus::<_, AuraId>, + consensus_starter, hwbench, ) .await @@ -580,13 +586,19 @@ where /// Uses the lookahead collator to support async backing. /// /// Start an aura powered parachain node. Some system chains use this. -pub async fn start_generic_aura_lookahead_node>( +pub async fn start_generic_aura_async_backing_node>( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, para_id: ParaId, + use_experimental_slot_based: bool, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc>)> { + let consensus_starter = if use_experimental_slot_based { + start_slot_based_aura_consensus::<_, AuraId> + } else { + start_lookahead_aura_consensus::<_, AuraId> + }; start_node_impl::( parachain_config, polkadot_config, @@ -595,7 +607,7 @@ pub async fn start_generic_aura_lookahead_node> para_id, build_parachain_rpc_extensions::, build_relay_to_aura_import_queue::<_, AuraId>, - start_lookahead_aura_consensus::<_, AuraId>, + consensus_starter, hwbench, ) .await @@ -607,11 +619,12 @@ pub async fn start_generic_aura_lookahead_node> /// /// Uses the lookahead collator to support async backing. #[sc_tracing::logging::prefix_logs_with("Parachain")] -pub async fn start_asset_hub_lookahead_node( +pub async fn start_asset_hub_async_backing_node( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, para_id: ParaId, + use_experimental_slot_based: bool, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc>)> where @@ -622,15 +635,21 @@ where AuraId: AuraIdT + Sync, Net: NetworkBackend, { + let consensus_starter = if use_experimental_slot_based { + start_slot_based_aura_consensus::<_, AuraId> + } else { + start_lookahead_aura_consensus::<_, AuraId> + }; + start_node_impl::( parachain_config, polkadot_config, collator_options, CollatorSybilResistance::Resistant, // Aura para_id, - build_parachain_rpc_extensions::, + build_parachain_rpc_extensions, build_relay_to_aura_import_queue::<_, AuraId>, - start_lookahead_aura_consensus::, + consensus_starter, hwbench, ) .await @@ -676,7 +695,6 @@ fn start_relay_chain_consensus( task_manager: &TaskManager, relay_chain_interface: Arc, transaction_pool: Arc>>, - _sync_oracle: Arc>, _keystore: KeystorePtr, _relay_chain_slot_duration: Duration, para_id: ParaId, @@ -747,7 +765,6 @@ fn start_lookahead_aura_consensus( task_manager: &TaskManager, relay_chain_interface: Arc, transaction_pool: Arc>>, - sync_oracle: Arc>, keystore: KeystorePtr, relay_chain_slot_duration: Duration, para_id: ParaId, @@ -788,7 +805,6 @@ where client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) } }, - sync_oracle, keystore, collator_key, para_id, @@ -802,23 +818,104 @@ where let fut = async move { wait_for_aura(client).await; - aura::run::::Pair, _, _, _, _, _, _, _, _, _>(params).await; + aura::run::::Pair, _, _, _, _, _, _, _, _>(params).await; }; task_manager.spawn_essential_handle().spawn("aura", None, fut); Ok(()) } +/// Start consensus using the lookahead aura collator. +fn start_slot_based_aura_consensus( + client: Arc>, + block_import: ParachainBlockImport, + prometheus_registry: Option<&Registry>, + telemetry: Option, + task_manager: &TaskManager, + relay_chain_interface: Arc, + transaction_pool: Arc>>, + keystore: KeystorePtr, + relay_chain_slot_duration: Duration, + para_id: ParaId, + collator_key: CollatorPair, + _overseer_handle: OverseerHandle, + announce_block: Arc>) + Send + Sync>, + backend: Arc, +) -> Result<(), sc_service::Error> +where + RuntimeApi: ConstructNodeRuntimeApi>, + RuntimeApi::RuntimeApi: AuraRuntimeApi, + AuraId: AuraIdT + Sync, +{ + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( + task_manager.spawn_handle(), + client.clone(), + transaction_pool, + prometheus_registry, + telemetry.clone(), + ); + + let proposer = Proposer::new(proposer_factory); + let collator_service = CollatorService::new( + client.clone(), + Arc::new(task_manager.spawn_handle()), + announce_block, + client.clone(), + ); + + let client_for_aura = client.clone(); + let params = SlotBasedParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import, + para_client: client.clone(), + para_backend: backend.clone(), + relay_client: relay_chain_interface, + code_hash_provider: move |block_hash| { + client_for_aura.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) + }, + keystore, + collator_key, + para_id, + relay_chain_slot_duration, + proposer, + collator_service, + authoring_duration: Duration::from_millis(2000), + reinitialize: false, + slot_drift: Duration::from_secs(1), + }; + + let (collation_future, block_builder_future) = + slot_based::run::::Pair, _, _, _, _, _, _, _, _>(params); + + task_manager.spawn_essential_handle().spawn( + "collation-task", + Some("parachain-block-authoring"), + collation_future, + ); + task_manager.spawn_essential_handle().spawn( + "block-builder-task", + Some("parachain-block-authoring"), + block_builder_future, + ); + Ok(()) +} + /// Start an aura powered parachain node which uses the lookahead collator to support async backing. /// This node is basic in the sense that its runtime api doesn't include common contents such as /// transaction payment. Used for aura glutton. -pub async fn start_basic_lookahead_node>( +pub async fn start_basic_async_backing_node>( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, para_id: ParaId, + use_experimental_slot_based: bool, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc>)> { + let consensus_starter = if use_experimental_slot_based { + start_slot_based_aura_consensus::<_, AuraId> + } else { + start_lookahead_aura_consensus::<_, AuraId> + }; start_node_impl::( parachain_config, polkadot_config, @@ -827,7 +924,7 @@ pub async fn start_basic_lookahead_node>( para_id, |_, _, _, _| Ok(RpcModule::new(())), build_relay_to_aura_import_queue::<_, AuraId>, - start_lookahead_aura_consensus::<_, AuraId>, + consensus_starter, hwbench, ) .await @@ -839,8 +936,14 @@ pub async fn start_contracts_rococo_node>( polkadot_config: Configuration, collator_options: CollatorOptions, para_id: ParaId, + use_experimental_slot_based: bool, hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc>)> { + let consensus_starter = if use_experimental_slot_based { + start_slot_based_aura_consensus::<_, AuraId> + } else { + start_lookahead_aura_consensus::<_, AuraId> + }; start_node_impl::( parachain_config, polkadot_config, @@ -849,7 +952,7 @@ pub async fn start_contracts_rococo_node>( para_id, build_contracts_rpc_extensions, build_aura_import_queue, - start_lookahead_aura_consensus::<_, AuraId>, + consensus_starter, hwbench, ) .await diff --git a/cumulus/test/client/src/lib.rs b/cumulus/test/client/src/lib.rs index d233ad26917..f26413e441e 100644 --- a/cumulus/test/client/src/lib.rs +++ b/cumulus/test/client/src/lib.rs @@ -79,6 +79,7 @@ impl substrate_test_client::GenesisInit for GenesisParameters { cumulus_test_service::chain_spec::get_chain_spec_with_extra_endowed( None, self.endowed_accounts.clone(), + cumulus_test_runtime::WASM_BINARY.expect("WASM binary not compiled!"), ) .build_storage() .expect("Builds test runtime genesis storage") diff --git a/cumulus/test/runtime/Cargo.toml b/cumulus/test/runtime/Cargo.toml index fc0eb3ce742..d5582f2d2a2 100644 --- a/cumulus/test/runtime/Cargo.toml +++ b/cumulus/test/runtime/Cargo.toml @@ -93,3 +93,4 @@ std = [ "substrate-wasm-builder", ] increment-spec-version = [] +elastic-scaling = [] diff --git a/cumulus/test/runtime/build.rs b/cumulus/test/runtime/build.rs index ebd5c178cba..bf579f4121e 100644 --- a/cumulus/test/runtime/build.rs +++ b/cumulus/test/runtime/build.rs @@ -24,6 +24,13 @@ fn main() { .enable_feature("increment-spec-version") .set_file_name("wasm_binary_spec_version_incremented.rs") .build(); + + WasmBuilder::new() + .with_current_project() + .enable_feature("elastic-scaling") + .import_memory() + .set_file_name("wasm_binary_elastic_scaling.rs") + .build(); } #[cfg(not(feature = "std"))] diff --git a/cumulus/test/runtime/src/lib.rs b/cumulus/test/runtime/src/lib.rs index 26c6635e1ad..97cb02ab779 100644 --- a/cumulus/test/runtime/src/lib.rs +++ b/cumulus/test/runtime/src/lib.rs @@ -27,6 +27,11 @@ pub mod wasm_spec_version_incremented { include!(concat!(env!("OUT_DIR"), "/wasm_binary_spec_version_incremented.rs")); } +pub mod elastic_scaling { + #[cfg(feature = "std")] + include!(concat!(env!("OUT_DIR"), "/wasm_binary_elastic_scaling.rs")); +} + mod test_pallet; use frame_support::{derive_impl, traits::OnRuntimeUpgrade, PalletId}; use sp_api::{decl_runtime_apis, impl_runtime_apis}; @@ -83,8 +88,23 @@ impl_opaque_keys! { /// The para-id used in this runtime. pub const PARACHAIN_ID: u32 = 100; -const UNINCLUDED_SEGMENT_CAPACITY: u32 = 3; +#[cfg(not(feature = "elastic-scaling"))] +const UNINCLUDED_SEGMENT_CAPACITY: u32 = 4; +#[cfg(not(feature = "elastic-scaling"))] const BLOCK_PROCESSING_VELOCITY: u32 = 1; + +#[cfg(feature = "elastic-scaling")] +const UNINCLUDED_SEGMENT_CAPACITY: u32 = 7; +#[cfg(feature = "elastic-scaling")] +const BLOCK_PROCESSING_VELOCITY: u32 = 4; + +#[cfg(not(feature = "elastic-scaling"))] +pub const MILLISECS_PER_BLOCK: u64 = 6000; +#[cfg(feature = "elastic-scaling")] +pub const MILLISECS_PER_BLOCK: u64 = 2000; + +pub const SLOT_DURATION: u64 = MILLISECS_PER_BLOCK; + const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; // The only difference between the two declarations below is the `spec_version`. With the @@ -126,10 +146,6 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { state_version: 1, }; -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. diff --git a/cumulus/test/service/Cargo.toml b/cumulus/test/service/Cargo.toml index c40863b90b5..f766d123632 100644 --- a/cumulus/test/service/Cargo.toml +++ b/cumulus/test/service/Cargo.toml @@ -92,8 +92,6 @@ pallet-timestamp = { workspace = true, default-features = true } [dev-dependencies] futures = { workspace = true } portpicker = { workspace = true } -rococo-parachain-runtime = { workspace = true } -sp-consensus-grandpa = { workspace = true, default-features = true } sp-authority-discovery = { workspace = true, default-features = true } cumulus-test-client = { workspace = true } @@ -116,7 +114,6 @@ runtime-benchmarks = [ "polkadot-primitives/runtime-benchmarks", "polkadot-service/runtime-benchmarks", "polkadot-test-service/runtime-benchmarks", - "rococo-parachain-runtime/runtime-benchmarks", "sc-service/runtime-benchmarks", "sp-runtime/runtime-benchmarks", ] diff --git a/cumulus/test/service/src/chain_spec.rs b/cumulus/test/service/src/chain_spec.rs index 174d478f257..ae71028ad48 100644 --- a/cumulus/test/service/src/chain_spec.rs +++ b/cumulus/test/service/src/chain_spec.rs @@ -66,9 +66,10 @@ where pub fn get_chain_spec_with_extra_endowed( id: Option, extra_endowed_accounts: Vec, + code: &[u8], ) -> ChainSpec { ChainSpec::builder( - cumulus_test_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), + code, Extensions { para_id: id.unwrap_or(cumulus_test_runtime::PARACHAIN_ID.into()).into() }, ) .with_name("Local Testnet") @@ -83,7 +84,21 @@ pub fn get_chain_spec_with_extra_endowed( /// Get the chain spec for a specific parachain ID. pub fn get_chain_spec(id: Option) -> ChainSpec { - get_chain_spec_with_extra_endowed(id, Default::default()) + get_chain_spec_with_extra_endowed( + id, + Default::default(), + cumulus_test_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), + ) +} + +/// Get the chain spec for a specific parachain ID. +pub fn get_elastic_scaling_chain_spec(id: Option) -> ChainSpec { + get_chain_spec_with_extra_endowed( + id, + Default::default(), + cumulus_test_runtime::elastic_scaling::WASM_BINARY + .expect("WASM binary was not built, please build it!"), + ) } /// Local testnet genesis for testing. diff --git a/cumulus/test/service/src/cli.rs b/cumulus/test/service/src/cli.rs index 87d1d4af8a9..37ca27542cb 100644 --- a/cumulus/test/service/src/cli.rs +++ b/cumulus/test/service/src/cli.rs @@ -50,6 +50,12 @@ pub struct TestCollatorCli { #[arg(long)] pub fail_pov_recovery: bool, + + /// EXPERIMENTAL: Use slot-based collator which can handle elastic scaling. + /// + /// Use with care, this flag is unstable and subject to change. + #[arg(long)] + pub experimental_use_slot_based: bool, } #[derive(Debug, clap::Subcommand)] @@ -253,8 +259,16 @@ impl SubstrateCli for TestCollatorCli { fn load_spec(&self, id: &str) -> std::result::Result, String> { Ok(match id { - "" => - Box::new(cumulus_test_service::get_chain_spec(Some(ParaId::from(2000)))) as Box<_>, + "" => { + tracing::info!("Using default test service chain spec."); + Box::new(cumulus_test_service::get_chain_spec(Some(ParaId::from(2000)))) as Box<_> + }, + "elastic-scaling" => { + tracing::info!("Using elastic-scaling chain spec."); + Box::new(cumulus_test_service::get_elastic_scaling_chain_spec(Some(ParaId::from( + 2100, + )))) as Box<_> + }, path => { let chain_spec = cumulus_test_service::chain_spec::ChainSpec::from_json_file(path.into())?; diff --git a/cumulus/test/service/src/lib.rs b/cumulus/test/service/src/lib.rs index 6f8b9d19bb2..51cdebbaf54 100644 --- a/cumulus/test/service/src/lib.rs +++ b/cumulus/test/service/src/lib.rs @@ -25,7 +25,10 @@ pub mod chain_spec; use cumulus_client_collator::service::CollatorService; use cumulus_client_consensus_aura::{ - collators::lookahead::{self as aura, Params as AuraParams}, + collators::{ + lookahead::{self as aura, Params as AuraParams}, + slot_based::{self as slot_based, Params as SlotBasedParams}, + }, ImportQueueParams, }; use cumulus_client_consensus_proposer::Proposer; @@ -45,7 +48,7 @@ use cumulus_client_cli::{CollatorOptions, RelayChainMode}; use cumulus_client_consensus_common::{ ParachainBlockImport as TParachainBlockImport, ParachainCandidate, ParachainConsensus, }; -use cumulus_client_pov_recovery::RecoveryHandle; +use cumulus_client_pov_recovery::{RecoveryDelayRange, RecoveryHandle}; #[allow(deprecated)] use cumulus_client_service::old_consensus; use cumulus_client_service::{ @@ -304,7 +307,7 @@ async fn build_relay_chain_interface( /// 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_tracing::logging::prefix_logs_with(parachain_config.network.node_name.as_str())] +#[sc_tracing::logging::prefix_logs_with("Parachain")] pub async fn start_node_impl>( parachain_config: Configuration, collator_key: Option, @@ -316,6 +319,7 @@ pub async fn start_node_impl>( consensus: Consensus, collator_options: CollatorOptions, proof_recording_during_import: bool, + use_slot_based_collator: bool, ) -> sc_service::error::Result<( TaskManager, Arc, @@ -409,7 +413,6 @@ where } else { Box::new(overseer_handle.clone()) }; - let is_collator = collator_key.is_some(); let relay_chain_slot_duration = Duration::from_secs(6); start_relay_chain_tasks(StartRelayChainTasksParams { @@ -418,11 +421,11 @@ where para_id, relay_chain_interface: relay_chain_interface.clone(), task_manager: &mut task_manager, - da_recovery_profile: if is_collator { - DARecoveryProfile::Collator - } else { - DARecoveryProfile::FullNode - }, + // Increase speed of recovery for testing purposes. + da_recovery_profile: DARecoveryProfile::Other(RecoveryDelayRange { + min: Duration::from_secs(1), + max: Duration::from_secs(5), + }), import_queue: import_queue_service, relay_chain_slot_duration, recovery_handle, @@ -461,29 +464,72 @@ where ); let client_for_aura = client.clone(); - let params = AuraParams { - create_inherent_data_providers: move |_, ()| async move { Ok(()) }, - block_import, - para_client: client.clone(), - para_backend: backend.clone(), - relay_client: relay_chain_interface, - code_hash_provider: move |block_hash| { - client_for_aura.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) - }, - sync_oracle: sync_service, - keystore, - collator_key, - para_id, - overseer_handle, - relay_chain_slot_duration, - proposer, - collator_service, - authoring_duration: Duration::from_millis(2000), - reinitialize: false, - }; - let fut = aura::run::(params); - task_manager.spawn_essential_handle().spawn("aura", None, fut); + if use_slot_based_collator { + tracing::info!(target: LOG_TARGET, "Starting block authoring with slot based authoring."); + let params = SlotBasedParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import, + para_client: client.clone(), + para_backend: backend.clone(), + relay_client: relay_chain_interface, + code_hash_provider: move |block_hash| { + client_for_aura + .code_at(block_hash) + .ok() + .map(|c| ValidationCode::from(c).hash()) + }, + keystore, + collator_key, + para_id, + relay_chain_slot_duration, + proposer, + collator_service, + authoring_duration: Duration::from_millis(2000), + reinitialize: false, + slot_drift: Duration::from_secs(1), + }; + + let (collation_future, block_builer_future) = + slot_based::run::(params); + task_manager.spawn_essential_handle().spawn( + "collation-task", + None, + collation_future, + ); + task_manager.spawn_essential_handle().spawn( + "block-builder-task", + None, + block_builer_future, + ); + } else { + tracing::info!(target: LOG_TARGET, "Starting block authoring with lookahead collator."); + let params = AuraParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import, + para_client: client.clone(), + para_backend: backend.clone(), + relay_client: relay_chain_interface, + code_hash_provider: move |block_hash| { + client_for_aura + .code_at(block_hash) + .ok() + .map(|c| ValidationCode::from(c).hash()) + }, + keystore, + collator_key, + para_id, + overseer_handle, + relay_chain_slot_duration, + proposer, + collator_service, + authoring_duration: Duration::from_millis(2000), + reinitialize: false, + }; + + let fut = aura::run::(params); + task_manager.spawn_essential_handle().spawn("aura", None, fut); + } } } @@ -720,6 +766,7 @@ impl TestNodeBuilder { self.consensus, collator_options, self.record_proof_during_import, + false, ) .await .expect("could not create Cumulus test service"), @@ -735,6 +782,7 @@ impl TestNodeBuilder { self.consensus, collator_options, self.record_proof_during_import, + false, ) .await .expect("could not create Cumulus test service"), @@ -766,8 +814,11 @@ pub fn node_config( let root = base_path.path().join(format!("cumulus_test_service_{}", key)); let role = if is_collator { Role::Authority } else { Role::Full }; let key_seed = key.to_seed(); - let mut spec = - Box::new(chain_spec::get_chain_spec_with_extra_endowed(Some(para_id), endowed_accounts)); + let mut spec = Box::new(chain_spec::get_chain_spec_with_extra_endowed( + Some(para_id), + endowed_accounts, + cumulus_test_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), + )); let mut storage = spec.as_storage_builder().build_storage().expect("could not build storage"); diff --git a/cumulus/test/service/src/main.rs b/cumulus/test/service/src/main.rs index 90d37173dd5..9357978b769 100644 --- a/cumulus/test/service/src/main.rs +++ b/cumulus/test/service/src/main.rs @@ -118,6 +118,7 @@ fn main() -> Result<(), sc_cli::Error> { consensus, collator_options, true, + cli.experimental_use_slot_based, ) .await, sc_network::config::NetworkBackendType::Litep2p => @@ -135,6 +136,7 @@ fn main() -> Result<(), sc_cli::Error> { consensus, collator_options, true, + cli.experimental_use_slot_based, ) .await, } diff --git a/cumulus/zombienet/tests/0003-full_node_catching_up.zndsl b/cumulus/zombienet/tests/0003-full_node_catching_up.zndsl index 49b6d9e94fd..e1e8442f305 100644 --- a/cumulus/zombienet/tests/0003-full_node_catching_up.zndsl +++ b/cumulus/zombienet/tests/0003-full_node_catching_up.zndsl @@ -6,3 +6,6 @@ alice: parachain 2000 is registered within 225 seconds dave: reports block height is at least 7 within 250 seconds eve: reports block height is at least 7 within 250 seconds ferdie: reports block height is at least 7 within 250 seconds + +# We want to make sure that none of the consensus hook checks fail, even if the chain makes progress +charlie: count of log lines containing "set_validation_data inherent needs to be present in every block" is 0 within 10 seconds diff --git a/cumulus/zombienet/tests/0006-rpc_collator_builds_blocks.zndsl b/cumulus/zombienet/tests/0006-rpc_collator_builds_blocks.zndsl index 7da8416d016..b14c15ed5e5 100644 --- a/cumulus/zombienet/tests/0006-rpc_collator_builds_blocks.zndsl +++ b/cumulus/zombienet/tests/0006-rpc_collator_builds_blocks.zndsl @@ -13,3 +13,7 @@ two: restart after 1 seconds three: restart after 20 seconds dave: is up dave: reports block height is at least 30 within 200 seconds + +# We want to make sure that none of the consensus hook checks fail, even if the chain makes progress +dave: count of log lines containing "set_validation_data inherent needs to be present in every block" is 0 within 10 seconds +eve: count of log lines containing "set_validation_data inherent needs to be present in every block" is 0 within 10 seconds diff --git a/cumulus/zombienet/tests/0008-elastic_authoring.toml b/cumulus/zombienet/tests/0008-elastic_authoring.toml new file mode 100644 index 00000000000..f2e2010a9e4 --- /dev/null +++ b/cumulus/zombienet/tests/0008-elastic_authoring.toml @@ -0,0 +1,50 @@ +[settings] +timeout = 1000 + +[relaychain.genesis.runtimeGenesis.patch.configuration.config.async_backing_params] + max_candidate_depth = 6 + allowed_ancestry_len = 3 + +[relaychain.genesis.runtimeGenesis.patch.configuration.config.scheduler_params] + max_validators_per_core = 1 + num_cores = 4 + +[relaychain.genesis.runtimeGenesis.patch.configuration.config.approval_voting_params] + max_approval_coalesce_count = 5 + +[relaychain] +default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}" +chain = "rococo-local" +command = "polkadot" + + [[relaychain.nodes]] + name = "alice" + args = ["" ] + + [[relaychain.node_groups]] + name = "validator" + args = ["-lruntime=debug,parachain=trace" ] + count = 8 + +# Slot based authoring with 3 cores and 2s slot duration +[[parachains]] +id = 2100 +chain = "elastic-scaling" +add_to_genesis = true + + [[parachains.collators]] + name = "collator-elastic" + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-laura=trace,runtime=info,cumulus-consensus=trace,consensus::common=trace,parachain::collation-generation=trace,parachain::collator-protocol=trace,parachain=debug", "--force-authoring", "--experimental-use-slot-based"] + +# Slot based authoring with 1 core and 6s slot duration +[[parachains]] +id = 2000 +add_to_genesis = true + + [[parachains.collators]] + name = "collator-single-core" + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-laura=trace,runtime=info,cumulus-consensus=trace,consensus::common=trace,parachain::collation-generation=trace,parachain::collator-protocol=trace,parachain=debug", "--force-authoring", "--experimental-use-slot-based"] diff --git a/cumulus/zombienet/tests/0008-elastic_authoring.zndsl b/cumulus/zombienet/tests/0008-elastic_authoring.zndsl new file mode 100644 index 00000000000..a06ffd24fef --- /dev/null +++ b/cumulus/zombienet/tests/0008-elastic_authoring.zndsl @@ -0,0 +1,19 @@ +Description: Slot based authoring for elastic scaling +Network: ./0008-elastic_authoring.toml +Creds: config + +alice: is up +collator-elastic: is up +collator-single-core: is up + + +# configure relay chain +alice: js-script ./assign-core.js with "2100,0" return is 0 within 600 seconds +alice: js-script ./assign-core.js with "2100,1" return is 0 within 600 seconds + +collator-single-core: reports block height is at least 20 within 225 seconds +collator-elastic: reports block height is at least 40 within 225 seconds + +# We want to make sure that none of the consensus hook checks fail, even if the chain makes progress +collator-elastic: count of log lines containing "set_validation_data inherent needs to be present in every block" is 0 within 10 seconds +collator-single-core: count of log lines containing "set_validation_data inherent needs to be present in every block" is 0 within 10 seconds diff --git a/cumulus/zombienet/tests/0009-elastic_pov_recovery.toml b/cumulus/zombienet/tests/0009-elastic_pov_recovery.toml new file mode 100644 index 00000000000..9b296e8a8b3 --- /dev/null +++ b/cumulus/zombienet/tests/0009-elastic_pov_recovery.toml @@ -0,0 +1,48 @@ +[settings] +timeout = 1000 + +[relaychain.genesis.runtimeGenesis.patch.configuration.config.async_backing_params] + max_candidate_depth = 6 + allowed_ancestry_len = 3 + +[relaychain.genesis.runtimeGenesis.patch.configuration.config.scheduler_params] + max_validators_per_core = 1 + num_cores = 4 + +[relaychain.genesis.runtimeGenesis.patch.configuration.config.approval_voting_params] + max_approval_coalesce_count = 5 + +[relaychain] +default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}" +chain = "rococo-local" +command = "polkadot" + + [[relaychain.nodes]] + name = "alice" + args = ["" ] + + [[relaychain.node_groups]] + name = "validator" + args = ["-lruntime=debug,parachain=trace", "--reserved-only", "--reserved-nodes {{'alice'|zombie('multiAddress')}}"] + count = 8 + +# Slot based authoring with 3 cores and 2s slot duration +[[parachains]] +id = 2100 +chain = "elastic-scaling" +add_to_genesis = true + + # Slot based authoring with 3 cores and 2s slot duration + [[parachains.collators]] + name = "collator-elastic" + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["--disable-block-announcements", "-laura=trace,runtime=info,cumulus-consensus=trace,consensus::common=trace,parachain::collation-generation=trace,parachain::collator-protocol=trace,parachain=debug", "--force-authoring", "--experimental-use-slot-based"] + + # run 'recovery-target' as a parachain full node + [[parachains.collators]] + name = "recovery-target" + validator = false # full node + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--disable-block-announcements", "--bootnodes {{'collator-elastic'|zombie('multiAddress')}}", "--in-peers 0", "--out-peers 0", "--", "--reserved-only", "--reserved-nodes {{'alice'|zombie('multiAddress')}}"] diff --git a/cumulus/zombienet/tests/0009-elastic_pov_recovery.zndsl b/cumulus/zombienet/tests/0009-elastic_pov_recovery.zndsl new file mode 100644 index 00000000000..3a805078112 --- /dev/null +++ b/cumulus/zombienet/tests/0009-elastic_pov_recovery.zndsl @@ -0,0 +1,19 @@ +Description: Elastic scaling PoV recovery test +Network: ./0009-elastic_pov_recovery.toml +Creds: config + +alice: is up +collator-elastic: is up + +# wait 20 blocks and register parachain +alice: reports block height is at least 20 within 250 seconds + +# configure relay chain +alice: js-script ./assign-core.js with "2100,0" return is 0 within 600 seconds +alice: js-script ./assign-core.js with "2100,1" return is 0 within 600 seconds + +# check block production +collator-elastic: reports block height is at least 40 within 225 seconds +collator-elastic: count of log lines containing "set_validation_data inherent needs to be present in every block" is 0 within 10 seconds + +recovery-target: count of log lines containing "Importing block retrieved using pov_recovery" is greater than 35 within 10 seconds diff --git a/cumulus/zombienet/tests/assign-core.js b/cumulus/zombienet/tests/assign-core.js new file mode 100644 index 00000000000..4179b68b2e3 --- /dev/null +++ b/cumulus/zombienet/tests/assign-core.js @@ -0,0 +1,46 @@ +// Assign a parachain to a core. +// +// First argument should be the parachain id. +// Second argument should be the core. +async function run(nodeName, networkInfo, args) { + const { wsUri, userDefinedTypes } = networkInfo.nodesByName[nodeName]; + const api = await zombie.connect(wsUri, userDefinedTypes); + + let para = Number(args[0]); + let core = Number(args[1]); + console.log(`Assigning para ${para} to core ${core}`); + + await zombie.util.cryptoWaitReady(); + + // Submit transaction with Alice accoung + const keyring = new zombie.Keyring({ type: "sr25519" }); + const alice = keyring.addFromUri("//Alice"); + + // Wait for this transaction to be finalized in a block. + await new Promise(async (resolve, reject) => { + const unsub = await api.tx.sudo + .sudo(api.tx.coretime.assignCore(core, 0, [[{ task: para }, 57600]], null)) + .signAndSend(alice, ({ status, isError }) => { + if (status.isInBlock) { + console.log( + `Transaction included at blockhash ${status.asInBlock}`, + ); + } else if (status.isFinalized) { + console.log( + `Transaction finalized at blockHash ${status.asFinalized}`, + ); + unsub(); + return resolve(); + } else if (isError) { + console.log(`Transaction error`); + reject(`Transaction error`); + } + }); + }); + + + + return 0; +} + +module.exports = { run }; diff --git a/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml index 83f5434eddd..611978a33a5 100644 --- a/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml +++ b/polkadot/zombienet_tests/elastic_scaling/0001-basic-3cores-6s-blocks.toml @@ -7,11 +7,9 @@ timeout = 1000 [relaychain.genesis.runtimeGenesis.patch.configuration.config.scheduler_params] max_validators_per_core = 1 - scheduling_lookahead = 2 num_cores = 3 [relaychain.genesis.runtimeGenesis.patch.configuration.config.approval_voting_params] - needed_approvals = 3 max_approval_coalesce_count = 5 [relaychain] @@ -48,4 +46,4 @@ addToGenesis = true [types.Header] number = "u64" parent_hash = "Hash" -post_state = "Hash" \ No newline at end of file +post_state = "Hash" diff --git a/prdoc/pr_4097.prdoc b/prdoc/pr_4097.prdoc new file mode 100644 index 00000000000..2804a9571c7 --- /dev/null +++ b/prdoc/pr_4097.prdoc @@ -0,0 +1,45 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Introduce experimental slot-based collator + +doc: + - audience: Node Operator + description: | + Introduces an experimental collator that is fit fot elastic-scaling. + It can be activated on `test-parachain` and `polkadot-parachain` binaries via + `--experimental-use-slot-based` flag. The current implementation is MVP status and purely + for testing. Behaviour can change any time and should not be relied upon in environments with + any stability requirements. + +crates: + - name: cumulus-client-consensus-aura + bump: major + - name: cumulus-client-consensus-common + bump: minor + - name: cumulus-client-pov-recovery + bump: none + validate: false + - name: cumulus-pallet-aura-ext + bump: patch + - name: cumulus-relay-chain-interface + bump: major + validate: false + - name: sc-consensus-slots + bump: minor + - name: sc-basic-authorship + bump: patch + - name: cumulus-client-network + bump: none + validate: false + - name: cumulus-relay-chain-inprocess-interface + bump: minor + - name: sc-consensus-aura + bump: patch + - name: cumulus-relay-chain-rpc-interface + bump: minor + - name: polkadot-parachain-bin + bump: patch + - name: polkadot + bump: none + validate: false diff --git a/substrate/client/basic-authorship/src/basic_authorship.rs b/substrate/client/basic-authorship/src/basic_authorship.rs index 1519c76c42c..74805488792 100644 --- a/substrate/client/basic-authorship/src/basic_authorship.rs +++ b/substrate/client/basic-authorship/src/basic_authorship.rs @@ -205,7 +205,11 @@ where ) -> Proposer { let parent_hash = parent_header.hash(); - info!("🙌 Starting consensus session on top of parent {:?}", parent_hash); + info!( + "🙌 Starting consensus session on top of parent {:?} (#{})", + parent_hash, + parent_header.number() + ); let proposer = Proposer::<_, _, _, PR> { spawn_handle: self.spawn_handle.clone(), diff --git a/substrate/client/consensus/aura/src/standalone.rs b/substrate/client/consensus/aura/src/standalone.rs index 0f9b8668d44..c1536d9ef73 100644 --- a/substrate/client/consensus/aura/src/standalone.rs +++ b/substrate/client/consensus/aura/src/standalone.rs @@ -24,7 +24,7 @@ use log::trace; use codec::Codec; -use sc_client_api::{backend::AuxStore, UsageProvider}; +use sc_client_api::UsageProvider; use sp_api::{Core, ProvideRuntimeApi}; use sp_application_crypto::{AppCrypto, AppPublic}; use sp_blockchain::Result as CResult; @@ -48,7 +48,7 @@ pub fn slot_duration(client: &C) -> CResult where A: Codec, B: BlockT, - C: AuxStore + ProvideRuntimeApi + UsageProvider, + C: ProvideRuntimeApi + UsageProvider, C::Api: AuraApi, { slot_duration_at(client, client.usage_info().chain.best_hash) @@ -59,7 +59,7 @@ pub fn slot_duration_at(client: &C, block_hash: B::Hash) -> CResult, + C: ProvideRuntimeApi, C::Api: AuraApi, { client.runtime_api().slot_duration(block_hash).map_err(|err| err.into()) diff --git a/substrate/client/consensus/slots/src/lib.rs b/substrate/client/consensus/slots/src/lib.rs index d9d79200531..7cdf90877df 100644 --- a/substrate/client/consensus/slots/src/lib.rs +++ b/substrate/client/consensus/slots/src/lib.rs @@ -29,8 +29,8 @@ mod aux_schema; mod slots; pub use aux_schema::{check_equivocation, MAX_SLOT_CAPACITY, PRUNING_BOUND}; -pub use slots::SlotInfo; use slots::Slots; +pub use slots::{time_until_next_slot, SlotInfo}; use futures::{future::Either, Future, TryFutureExt}; use futures_timer::Delay; diff --git a/templates/parachain/node/src/service.rs b/templates/parachain/node/src/service.rs index bf44207acc9..3e7d4de1055 100644 --- a/templates/parachain/node/src/service.rs +++ b/templates/parachain/node/src/service.rs @@ -35,7 +35,6 @@ use sc_client_api::Backend; use sc_consensus::ImportQueue; use sc_executor::{HeapAllocStrategy, 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 sc_transaction_pool_api::OffchainTransactionPoolFactory; @@ -172,7 +171,6 @@ fn start_consensus( task_manager: &TaskManager, relay_chain_interface: Arc, transaction_pool: Arc>, - sync_oracle: Arc>, keystore: KeystorePtr, relay_chain_slot_duration: Duration, para_id: ParaId, @@ -206,7 +204,6 @@ fn start_consensus( code_hash_provider: move |block_hash| { client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) }, - sync_oracle, keystore, collator_key, para_id, @@ -217,11 +214,9 @@ fn start_consensus( authoring_duration: Duration::from_millis(2000), reinitialize: false, }; - - let fut = - aura::run::( - params, - ); + let fut = aura::run::( + params, + ); task_manager.spawn_essential_handle().spawn("aura", None, fut); Ok(()) @@ -398,7 +393,6 @@ pub async fn start_parachain_node( &task_manager, relay_chain_interface, transaction_pool, - sync_service, params.keystore_container.keystore(), relay_chain_slot_duration, para_id, -- GitLab From 299aacb56f4f11127b194d12692b00066e91ac92 Mon Sep 17 00:00:00 2001 From: Alexander Samusev <41779041+alvicsam@users.noreply.github.com> Date: Fri, 5 Jul 2024 13:13:23 +0200 Subject: [PATCH 002/252] [ci] Increase timeout for ci jobs (#4950) Related to recent discussion. PR makes timeout less strict. cc https://github.com/paritytech/ci_cd/issues/996 --- .github/workflows/checks-quick.yml | 18 +++++++++--------- .github/workflows/command-bench-all.yml | 7 +++---- .github/workflows/command-bench-overhead.yml | 6 +++--- .github/workflows/command-bench.yml | 7 +++---- .github/workflows/command-fmt.yml | 7 ++++--- .github/workflows/command-update-ui.yml | 7 ++++--- .github/workflows/tests-linux-stable.yml | 4 ++-- .github/workflows/tests.yml | 6 +++--- 8 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index 954ac764efa..1fcec5c80fd 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -20,7 +20,7 @@ jobs: # However, env variables don't work for forks: https://github.com/orgs/community/discussions/44322 # This workaround sets the container image for each job using 'set-image' job output. runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 outputs: IMAGE: ${{ steps.set_image.outputs.IMAGE }} steps: @@ -30,7 +30,7 @@ jobs: run: cat .github/env >> $GITHUB_OUTPUT fmt: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 needs: [set-image] container: image: ${{ needs.set-image.outputs.IMAGE }} @@ -40,7 +40,7 @@ jobs: run: cargo +nightly fmt --all -- --check check-dependency-rules: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: check dependency rules @@ -49,7 +49,7 @@ jobs: ../.gitlab/ensure-deps.sh check-rust-feature-propagation: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 needs: [set-image] container: image: ${{ needs.set-image.outputs.IMAGE }} @@ -65,7 +65,7 @@ jobs: time zepter run check test-rust-features: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 needs: [set-image] container: image: ${{ needs.set-image.outputs.IMAGE }} @@ -75,7 +75,7 @@ jobs: run: bash .gitlab/rust-features.sh . check-toml-format: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 needs: [set-image] container: image: ${{ needs.set-image.outputs.IMAGE }} @@ -87,7 +87,7 @@ jobs: echo "Please run `taplo format --config .config/taplo.toml` to fix any toml formatting issues" check-workspace: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023) - name: install python deps @@ -104,7 +104,7 @@ jobs: run: python3 .github/scripts/deny-git-deps.py . check-markdown: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 steps: - name: Checkout sources uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 @@ -127,7 +127,7 @@ jobs: markdownlint --config "$CONFIG" --ignore target . check-umbrella: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 20 needs: [set-image] container: image: ${{ needs.set-image.outputs.IMAGE }} diff --git a/.github/workflows/command-bench-all.yml b/.github/workflows/command-bench-all.yml index b3fa0868c48..f1d1589bea2 100644 --- a/.github/workflows/command-bench-all.yml +++ b/.github/workflows/command-bench-all.yml @@ -1,7 +1,7 @@ name: Command Bench All -on: - workflow_dispatch: +on: + workflow_dispatch: inputs: pr: description: Number of the Pull Request @@ -51,9 +51,8 @@ on: - people-rococo - people-westend - jobs: - set-image: + set-image: runs-on: ubuntu-latest outputs: IMAGE: ${{ steps.set_image.outputs.IMAGE }} diff --git a/.github/workflows/command-bench-overhead.yml b/.github/workflows/command-bench-overhead.yml index 735b4010210..16cbcefcf26 100644 --- a/.github/workflows/command-bench-overhead.yml +++ b/.github/workflows/command-bench-overhead.yml @@ -1,7 +1,7 @@ name: Command Bench Overhead -on: - workflow_dispatch: +on: + workflow_dispatch: inputs: pr: description: Number of the Pull Request @@ -31,7 +31,7 @@ on: - cumulus jobs: - set-image: + set-image: runs-on: ubuntu-latest outputs: IMAGE: ${{ steps.set_image.outputs.IMAGE }} diff --git a/.github/workflows/command-bench.yml b/.github/workflows/command-bench.yml index 0ff166be48c..b23b06d1b3c 100644 --- a/.github/workflows/command-bench.yml +++ b/.github/workflows/command-bench.yml @@ -1,7 +1,7 @@ name: Command Bench -on: - workflow_dispatch: +on: + workflow_dispatch: inputs: pr: description: Number of the Pull Request @@ -76,9 +76,8 @@ on: - starters - testing - jobs: - set-image: + set-image: runs-on: ubuntu-latest outputs: IMAGE: ${{ steps.set_image.outputs.IMAGE }} diff --git a/.github/workflows/command-fmt.yml b/.github/workflows/command-fmt.yml index d415007d938..c949d0768d7 100644 --- a/.github/workflows/command-fmt.yml +++ b/.github/workflows/command-fmt.yml @@ -1,14 +1,14 @@ name: Command FMT -on: - workflow_dispatch: +on: + workflow_dispatch: inputs: pr: description: Number of the Pull Request required: true jobs: - set-image: + set-image: runs-on: ubuntu-latest outputs: IMAGE: ${{ steps.set_image.outputs.IMAGE }} @@ -20,6 +20,7 @@ jobs: cmd-fmt: needs: [set-image] runs-on: ubuntu-latest + timeout-minutes: 20 container: image: ${{ needs.set-image.outputs.IMAGE }} steps: diff --git a/.github/workflows/command-update-ui.yml b/.github/workflows/command-update-ui.yml index 9b9c45c5c0b..b6b0420e786 100644 --- a/.github/workflows/command-update-ui.yml +++ b/.github/workflows/command-update-ui.yml @@ -1,7 +1,7 @@ name: Command Update UI -on: - workflow_dispatch: +on: + workflow_dispatch: inputs: pr: description: Number of the Pull Request @@ -11,7 +11,7 @@ on: required: false jobs: - set-image: + set-image: runs-on: ubuntu-latest outputs: IMAGE: ${{ steps.set_image.outputs.IMAGE }} @@ -23,6 +23,7 @@ jobs: cmd-update-ui: needs: [set-image] runs-on: arc-runners-polkadot-sdk-beefy + timeout-minutes: 90 container: image: ${{ needs.set-image.outputs.IMAGE }} steps: diff --git a/.github/workflows/tests-linux-stable.yml b/.github/workflows/tests-linux-stable.yml index 6f2ac87c3ef..55addf11de0 100644 --- a/.github/workflows/tests-linux-stable.yml +++ b/.github/workflows/tests-linux-stable.yml @@ -37,7 +37,7 @@ jobs: needs: [set-image, changes] if: ${{ needs.changes.outputs.rust }} runs-on: arc-runners-polkadot-sdk-beefy - timeout-minutes: 30 + timeout-minutes: 60 container: image: ${{ needs.set-image.outputs.IMAGE }} env: @@ -58,7 +58,7 @@ jobs: needs: [set-image, changes] if: ${{ needs.changes.outputs.rust }} runs-on: arc-runners-polkadot-sdk-beefy - timeout-minutes: 30 + timeout-minutes: 60 container: image: ${{ needs.set-image.outputs.IMAGE }} env: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0c1447cba33..a413d330615 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -34,7 +34,7 @@ jobs: needs: [set-image, changes] if: ${{ needs.changes.outputs.rust }} runs-on: arc-runners-polkadot-sdk-beefy - timeout-minutes: 30 + timeout-minutes: 60 container: image: ${{ needs.set-image.outputs.IMAGE }} env: @@ -53,7 +53,7 @@ jobs: needs: [set-image, changes] if: ${{ needs.changes.outputs.rust }} runs-on: arc-runners-polkadot-sdk-beefy - timeout-minutes: 30 + timeout-minutes: 60 container: image: ${{ needs.set-image.outputs.IMAGE }} continue-on-error: true # this rarely triggers in practice @@ -78,7 +78,7 @@ jobs: needs: [set-image, changes] if: ${{ needs.changes.outputs.rust }} runs-on: arc-runners-polkadot-sdk-beefy - timeout-minutes: 30 + timeout-minutes: 60 container: image: ${{ needs.set-image.outputs.IMAGE }} env: -- GitLab From 95c7e4f033895afff223b9dfaaed6d04033b0d61 Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Fri, 5 Jul 2024 20:08:15 +0200 Subject: [PATCH 003/252] Stabilize elastic-scaling pov-recovery test (#4958) Timing issues in container startup have made this test flaky. We now wait for 20 and then register the parachain. This makes sure that the parachain node has the ability to see all relay chain notifications it needs. --- cumulus/zombienet/tests/0002-pov_recovery.zndsl | 4 +++- .../zombienet/tests/0009-elastic_pov_recovery.toml | 2 +- .../zombienet/tests/0009-elastic_pov_recovery.zndsl | 13 +++++++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cumulus/zombienet/tests/0002-pov_recovery.zndsl b/cumulus/zombienet/tests/0002-pov_recovery.zndsl index b05285c87bf..dc7095ced25 100644 --- a/cumulus/zombienet/tests/0002-pov_recovery.zndsl +++ b/cumulus/zombienet/tests/0002-pov_recovery.zndsl @@ -2,7 +2,9 @@ Description: PoV recovery test Network: ./0002-pov_recovery.toml Creds: config -# wait 20 blocks and register parachain +# Wait 20 blocks and register parachain. This part is important for pov-recovery. +# We need to make sure that the recovering node is able to see all relay-chain +# notifications containing the candidates to recover. validator-3: reports block height is at least 20 within 250 seconds validator-0: js-script ./register-para.js with "2000" within 240 seconds validator-0: parachain 2000 is registered within 300 seconds diff --git a/cumulus/zombienet/tests/0009-elastic_pov_recovery.toml b/cumulus/zombienet/tests/0009-elastic_pov_recovery.toml index 9b296e8a8b3..b695f8aa937 100644 --- a/cumulus/zombienet/tests/0009-elastic_pov_recovery.toml +++ b/cumulus/zombienet/tests/0009-elastic_pov_recovery.toml @@ -30,7 +30,7 @@ command = "polkadot" [[parachains]] id = 2100 chain = "elastic-scaling" -add_to_genesis = true +add_to_genesis = false # Slot based authoring with 3 cores and 2s slot duration [[parachains.collators]] diff --git a/cumulus/zombienet/tests/0009-elastic_pov_recovery.zndsl b/cumulus/zombienet/tests/0009-elastic_pov_recovery.zndsl index 3a805078112..5cca6120ff3 100644 --- a/cumulus/zombienet/tests/0009-elastic_pov_recovery.zndsl +++ b/cumulus/zombienet/tests/0009-elastic_pov_recovery.zndsl @@ -5,12 +5,17 @@ Creds: config alice: is up collator-elastic: is up -# wait 20 blocks and register parachain +# configure relay chain +alice: js-script ./assign-core.js with "2100,0" return is 0 within 200 seconds +alice: js-script ./assign-core.js with "2100,1" return is 0 within 200 seconds + +# Wait 20 blocks and register parachain. This part is important for pov-recovery. +# We need to make sure that the recovering node is able to see all relay-chain +# notifications containing the candidates to recover. alice: reports block height is at least 20 within 250 seconds +alice: js-script ./register-para.js with "2100" within 240 seconds +alice: parachain 2100 is registered within 300 seconds -# configure relay chain -alice: js-script ./assign-core.js with "2100,0" return is 0 within 600 seconds -alice: js-script ./assign-core.js with "2100,1" return is 0 within 600 seconds # check block production collator-elastic: reports block height is at least 40 within 225 seconds -- GitLab From 2b17cb8f145f602cdfb8b92f77f68285718d069a Mon Sep 17 00:00:00 2001 From: Deepak Chaudhary <54492415+Aideepakchaudhary@users.noreply.github.com> Date: Sat, 6 Jul 2024 02:22:02 +0800 Subject: [PATCH 004/252] remove getter from vesting pallet (#4902) ### ISSUE Link to the issue: https://github.com/paritytech/polkadot-sdk/issues/3326 cc @muraca Deliverables - [Deprecation] remove pallet::getter usage from all pallet-vesting ### Test Outcomes ___ Successful tests by running `cargo test -p pallet-vesting --features runtime-benchmarks` running 45 tests test benchmarking::bench_force_vested_transfer ... ok test benchmarking::bench_vest_other_locked ... ok test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok test benchmarking::bench_not_unlocking_merge_schedules ... ok test benchmarking::bench_unlocking_merge_schedules ... ok test mock::test_genesis_config_builds ... ok test tests::build_genesis_has_storage_version_v1 ... ok test tests::check_vesting_status ... ok test benchmarking::bench_force_remove_vesting_schedule ... ok test tests::check_vesting_status_for_multi_schedule_account ... ok test benchmarking::bench_vest_locked ... ok test tests::extra_balance_should_transfer ... ok test tests::generates_multiple_schedules_from_genesis_config ... ok test tests::force_vested_transfer_allows_max_schedules ... ok test tests::force_vested_transfer_correctly_fails ... ok test tests::force_vested_transfer_works ... ok test tests::liquid_funds_should_transfer_with_delayed_vesting ... ok test tests::merge_finished_and_ongoing_schedules ... ok test benchmarking::bench_vest_unlocked ... ok test tests::merge_finished_and_yet_to_be_started_schedules ... ok test tests::merge_finishing_schedules_does_not_create_a_new_one ... ok test tests::merge_ongoing_and_yet_to_be_started_schedules ... ok test benchmarking::bench_vest_other_unlocked ... ok test tests::merge_ongoing_schedules ... ok test tests::merge_schedules_that_have_not_started ... ok test tests::merge_vesting_handles_per_block_0 ... ok test tests::per_block_works ... ok test tests::merge_schedules_throws_proper_errors ... ok test tests::multiple_schedules_from_genesis_config_errors - should panic ... ok test tests::merging_shifts_other_schedules_index ... ok test tests::non_vested_cannot_vest_other ... ok test tests::unvested_balance_should_not_transfer ... ok test tests::non_vested_cannot_vest ... ok test tests::vested_balance_should_transfer ... ok test tests::remove_vesting_schedule ... ok test tests::vested_transfer_correctly_fails ... ok test tests::vested_balance_should_transfer_with_multi_sched ... ok test tests::vested_balance_should_transfer_using_vest_other ... ok test tests::vested_transfer_less_than_existential_deposit_fails ... ok test tests::vesting_info_ending_block_as_balance_works ... ok test tests::vesting_info_validate_works ... ok test tests::vested_balance_should_transfer_using_vest_other_with_multi_sched ... ok test tests::vested_transfer_works ... ok test tests::vested_transfer_allows_max_schedules ... ok test benchmarking::bench_vested_transfer ... ok test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s --- Polkadot Address: 16htXkeVhfroBhL6nuqiwknfXKcT6WadJPZqEi2jRf9z4XPY --- prdoc/pr_4902.prdoc | 14 ++++ substrate/frame/vesting/src/benchmarking.rs | 18 ++--- substrate/frame/vesting/src/lib.rs | 19 +++-- substrate/frame/vesting/src/tests.rs | 90 ++++++++++----------- 4 files changed, 81 insertions(+), 60 deletions(-) create mode 100644 prdoc/pr_4902.prdoc diff --git a/prdoc/pr_4902.prdoc b/prdoc/pr_4902.prdoc new file mode 100644 index 00000000000..19fe168a74a --- /dev/null +++ b/prdoc/pr_4902.prdoc @@ -0,0 +1,14 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Removed `pallet::getter` usage from the pallet-vesting + +doc: + - audience: Runtime Dev + description: | + This PR removed `pallet::getter`s from `pallet-vesting`s storage items. + When accessed inside the pallet, use the syntax `StorageItem::::get()`. + +crates: + - name: pallet-vesting + bump: minor diff --git a/substrate/frame/vesting/src/benchmarking.rs b/substrate/frame/vesting/src/benchmarking.rs index 311590873d9..68214c4f47c 100644 --- a/substrate/frame/vesting/src/benchmarking.rs +++ b/substrate/frame/vesting/src/benchmarking.rs @@ -24,7 +24,7 @@ use frame_support::assert_ok; use frame_system::{pallet_prelude::BlockNumberFor, Pallet as System, RawOrigin}; use sp_runtime::traits::{Bounded, CheckedDiv, CheckedMul}; -use super::*; +use super::{Vesting as VestingStorage, *}; use crate::Pallet as Vesting; const SEED: u32 = 0; @@ -291,7 +291,7 @@ benchmarks! { "Vesting balance should equal sum locked of all schedules", ); assert_eq!( - Vesting::::vesting(&caller).unwrap().len(), + VestingStorage::::get(&caller).unwrap().len(), s as usize, "There should be exactly max vesting schedules" ); @@ -304,7 +304,7 @@ benchmarks! { ); let expected_index = (s - 2) as usize; assert_eq!( - Vesting::::vesting(&caller).unwrap()[expected_index], + VestingStorage::::get(&caller).unwrap()[expected_index], expected_schedule ); assert_eq!( @@ -313,7 +313,7 @@ benchmarks! { "Vesting balance should equal total locked of all schedules", ); assert_eq!( - Vesting::::vesting(&caller).unwrap().len(), + VestingStorage::::get(&caller).unwrap().len(), (s - 1) as usize, "Schedule count should reduce by 1" ); @@ -344,7 +344,7 @@ benchmarks! { "Vesting balance should reflect that we are half way through all schedules duration", ); assert_eq!( - Vesting::::vesting(&caller).unwrap().len(), + VestingStorage::::get(&caller).unwrap().len(), s as usize, "There should be exactly max vesting schedules" ); @@ -359,12 +359,12 @@ benchmarks! { ); let expected_index = (s - 2) as usize; assert_eq!( - Vesting::::vesting(&caller).unwrap()[expected_index], + VestingStorage::::get(&caller).unwrap()[expected_index], expected_schedule, "New schedule is properly created and placed" ); assert_eq!( - Vesting::::vesting(&caller).unwrap()[expected_index], + VestingStorage::::get(&caller).unwrap()[expected_index], expected_schedule ); assert_eq!( @@ -373,7 +373,7 @@ benchmarks! { "Vesting balance should equal half total locked of all schedules", ); assert_eq!( - Vesting::::vesting(&caller).unwrap().len(), + VestingStorage::::get(&caller).unwrap().len(), (s - 1) as usize, "Schedule count should reduce by 1" ); @@ -404,7 +404,7 @@ force_remove_vesting_schedule { }: _(RawOrigin::Root, target_lookup, schedule_index) verify { assert_eq!( - Vesting::::vesting(&target).unwrap().len(), + VestingStorage::::get(&target).unwrap().len(), schedule_index as usize, "Schedule count should reduce by 1" ); diff --git a/substrate/frame/vesting/src/lib.rs b/substrate/frame/vesting/src/lib.rs index 4101caded41..3868f1a8592 100644 --- a/substrate/frame/vesting/src/lib.rs +++ b/substrate/frame/vesting/src/lib.rs @@ -200,7 +200,6 @@ pub mod pallet { /// Information regarding the vesting of a given account. #[pallet::storage] - #[pallet::getter(fn vesting)] pub type Vesting = StorageMap< _, Blake2_128Concat, @@ -419,7 +418,7 @@ pub mod pallet { let schedule1_index = schedule1_index as usize; let schedule2_index = schedule2_index as usize; - let schedules = Self::vesting(&who).ok_or(Error::::NotVesting)?; + let schedules = Vesting::::get(&who).ok_or(Error::::NotVesting)?; let merge_action = VestingAction::Merge { index1: schedule1_index, index2: schedule2_index }; @@ -464,6 +463,14 @@ pub mod pallet { } impl Pallet { + // Public function for accessing vesting storage + pub fn vesting( + account: T::AccountId, + ) -> Option, BlockNumberFor>, MaxVestingSchedulesGet>> + { + Vesting::::get(account) + } + // Create a new `VestingInfo`, based off of two other `VestingInfo`s. // NOTE: We assume both schedules have had funds unlocked up through the current block. fn merge_vesting_info( @@ -622,7 +629,7 @@ impl Pallet { /// Unlock any vested funds of `who`. fn do_vest(who: T::AccountId) -> DispatchResult { - let schedules = Self::vesting(&who).ok_or(Error::::NotVesting)?; + let schedules = Vesting::::get(&who).ok_or(Error::::NotVesting)?; let (schedules, locked_now) = Self::exec_action(schedules.to_vec(), VestingAction::Passive)?; @@ -687,7 +694,7 @@ where /// Get the amount that is currently being vested and cannot be transferred out of this account. fn vesting_balance(who: &T::AccountId) -> Option> { - if let Some(v) = Self::vesting(who) { + if let Some(v) = Vesting::::get(who) { let now = T::BlockNumberProvider::current_block_number(); let total_locked_now = v.iter().fold(Zero::zero(), |total, schedule| { schedule.locked_at::(now).saturating_add(total) @@ -726,7 +733,7 @@ where return Err(Error::::InvalidScheduleParams.into()) }; - let mut schedules = Self::vesting(who).unwrap_or_default(); + let mut schedules = Vesting::::get(who).unwrap_or_default(); // NOTE: we must push the new schedule so that `exec_action` // will give the correct new locked amount. @@ -764,7 +771,7 @@ where /// Remove a vesting schedule for a given account. fn remove_vesting_schedule(who: &T::AccountId, schedule_index: u32) -> DispatchResult { - let schedules = Self::vesting(who).ok_or(Error::::NotVesting)?; + let schedules = Vesting::::get(who).ok_or(Error::::NotVesting)?; let remove_action = VestingAction::Remove { index: schedule_index as usize }; let (schedules, locked_now) = Self::exec_action(schedules.to_vec(), remove_action)?; diff --git a/substrate/frame/vesting/src/tests.rs b/substrate/frame/vesting/src/tests.rs index 2e1e41fc957..004da0dfbfa 100644 --- a/substrate/frame/vesting/src/tests.rs +++ b/substrate/frame/vesting/src/tests.rs @@ -65,9 +65,9 @@ fn check_vesting_status() { 64, // Vesting over 20 blocks 10, ); - assert_eq!(Vesting::vesting(&1).unwrap(), vec![user1_vesting_schedule]); // Account 1 has a vesting schedule - assert_eq!(Vesting::vesting(&2).unwrap(), vec![user2_vesting_schedule]); // Account 2 has a vesting schedule - assert_eq!(Vesting::vesting(&12).unwrap(), vec![user12_vesting_schedule]); // Account 12 has a vesting schedule + assert_eq!(VestingStorage::::get(&1).unwrap(), vec![user1_vesting_schedule]); // Account 1 has a vesting schedule + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![user2_vesting_schedule]); // Account 2 has a vesting schedule + assert_eq!(VestingStorage::::get(&12).unwrap(), vec![user12_vesting_schedule]); // Account 12 has a vesting schedule // Account 1 has only 128 units vested from their illiquid ED * 5 units at block 1 assert_eq!(Vesting::vesting_balance(&1), Some(128 * 9)); @@ -110,7 +110,7 @@ fn check_vesting_status_for_multi_schedule_account() { 10, ); // Account 2 already has a vesting schedule. - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0]); // Account 2's free balance is from sched0. let free_balance = Balances::free_balance(&2); @@ -128,7 +128,7 @@ fn check_vesting_status_for_multi_schedule_account() { let free_balance = Balances::free_balance(&2); assert_eq!(free_balance, ED * (10 + 20)); // The most recently added schedule exists. - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched1]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched1]); // sched1 has free funds at block #1, but nothing else. assert_eq!(Vesting::vesting_balance(&2), Some(free_balance - sched1.per_block())); @@ -171,7 +171,7 @@ fn check_vesting_status_for_multi_schedule_account() { assert_eq!(Vesting::vesting_balance(&2), Some(0)); // Since we have not called any extrinsics that would unlock funds the schedules // are still in storage, - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched1, sched2]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched1, sched2]); // but once we unlock the funds, they are removed from storage. vest_and_assert_no_vesting::(2); }); @@ -207,7 +207,7 @@ fn vested_balance_should_transfer_with_multi_sched() { let sched0 = VestingInfo::new(5 * ED, 128, 0); assert_ok!(Vesting::vested_transfer(Some(13).into(), 1, sched0)); // Total 10*ED locked for all the schedules. - assert_eq!(Vesting::vesting(&1).unwrap(), vec![sched0, sched0]); + assert_eq!(VestingStorage::::get(&1).unwrap(), vec![sched0, sched0]); let user1_free_balance = Balances::free_balance(&1); assert_eq!(user1_free_balance, 3840); // Account 1 has free balance @@ -245,7 +245,7 @@ fn vested_balance_should_transfer_using_vest_other_with_multi_sched() { let sched0 = VestingInfo::new(5 * ED, 128, 0); assert_ok!(Vesting::vested_transfer(Some(13).into(), 1, sched0)); // Total of 10*ED of locked for all the schedules. - assert_eq!(Vesting::vesting(&1).unwrap(), vec![sched0, sched0]); + assert_eq!(VestingStorage::::get(&1).unwrap(), vec![sched0, sched0]); let user1_free_balance = Balances::free_balance(&1); assert_eq!(user1_free_balance, 3840); // Account 1 has free balance @@ -305,7 +305,7 @@ fn liquid_funds_should_transfer_with_delayed_vesting() { 64, // Vesting over 20 blocks 10, ); - assert_eq!(Vesting::vesting(&12).unwrap(), vec![user12_vesting_schedule]); + assert_eq!(VestingStorage::::get(&12).unwrap(), vec![user12_vesting_schedule]); // Account 12 can still send liquid funds assert_ok!(Balances::transfer_allow_death(Some(12).into(), 3, 256 * 5)); @@ -320,7 +320,7 @@ fn vested_transfer_works() { assert_eq!(user3_free_balance, 256 * 30); assert_eq!(user4_free_balance, 256 * 40); // Account 4 should not have any vesting yet. - assert_eq!(Vesting::vesting(&4), None); + assert_eq!(VestingStorage::::get(&4), None); // Make the schedule for the new transfer. let new_vesting_schedule = VestingInfo::new( 256 * 5, @@ -329,7 +329,7 @@ fn vested_transfer_works() { ); assert_ok!(Vesting::vested_transfer(Some(3).into(), 4, new_vesting_schedule)); // Now account 4 should have vesting. - assert_eq!(Vesting::vesting(&4).unwrap(), vec![new_vesting_schedule]); + assert_eq!(VestingStorage::::get(&4).unwrap(), vec![new_vesting_schedule]); // Ensure the transfer happened correctly. let user3_free_balance_updated = Balances::free_balance(&3); assert_eq!(user3_free_balance_updated, 256 * 25); @@ -368,7 +368,7 @@ fn vested_transfer_correctly_fails() { ED, // Vesting over 20 blocks 10, ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![user2_vesting_schedule]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![user2_vesting_schedule]); // Fails due to too low transfer amount. let new_vesting_schedule_too_low = @@ -450,7 +450,7 @@ fn force_vested_transfer_works() { assert_eq!(user3_free_balance, ED * 30); assert_eq!(user4_free_balance, ED * 40); // Account 4 should not have any vesting yet. - assert_eq!(Vesting::vesting(&4), None); + assert_eq!(VestingStorage::::get(&4), None); // Make the schedule for the new transfer. let new_vesting_schedule = VestingInfo::new( ED * 5, @@ -469,8 +469,8 @@ fn force_vested_transfer_works() { new_vesting_schedule )); // Now account 4 should have vesting. - assert_eq!(Vesting::vesting(&4).unwrap()[0], new_vesting_schedule); - assert_eq!(Vesting::vesting(&4).unwrap().len(), 1); + assert_eq!(VestingStorage::::get(&4).unwrap()[0], new_vesting_schedule); + assert_eq!(VestingStorage::::get(&4).unwrap().len(), 1); // Ensure the transfer happened correctly. let user3_free_balance_updated = Balances::free_balance(&3); assert_eq!(user3_free_balance_updated, ED * 25); @@ -508,7 +508,7 @@ fn force_vested_transfer_correctly_fails() { ED, // Vesting over 20 blocks 10, ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![user2_vesting_schedule]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![user2_vesting_schedule]); // Too low transfer amount. let new_vesting_schedule_too_low = @@ -594,12 +594,12 @@ fn merge_schedules_that_have_not_started() { ED, // Vest over 20 blocks. 10, ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0]); assert_eq!(Balances::usable_balance(&2), 0); // Add a schedule that is identical to the one that already exists. assert_ok!(Vesting::vested_transfer(Some(3).into(), 2, sched0)); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched0]); assert_eq!(Balances::usable_balance(&2), 0); assert_ok!(Vesting::merge_schedules(Some(2).into(), 0, 1)); @@ -610,7 +610,7 @@ fn merge_schedules_that_have_not_started() { sched0.per_block() * 2, 10, // Starts at the block the schedules are merged/ ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched1]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched1]); assert_eq!(Balances::usable_balance(&2), 0); }); @@ -626,7 +626,7 @@ fn merge_ongoing_schedules() { ED, // Vest over 20 blocks. 10, ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0]); let sched1 = VestingInfo::new( ED * 10, @@ -634,7 +634,7 @@ fn merge_ongoing_schedules() { sched0.starting_block() + 5, // Start at block 15. ); assert_ok!(Vesting::vested_transfer(Some(4).into(), 2, sched1)); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched1]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched1]); // Got to half way through the second schedule where both schedules are actively vesting. let cur_block = 20; @@ -666,7 +666,7 @@ fn merge_ongoing_schedules() { let sched2_per_block = sched2_locked / sched2_duration; let sched2 = VestingInfo::new(sched2_locked, sched2_per_block, cur_block); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched2]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched2]); // And just to double check, we assert the new merged schedule we be cleaned up as expected. System::set_block_number(30); @@ -696,7 +696,7 @@ fn merging_shifts_other_schedules_index() { ); // Account 3 starts out with no schedules, - assert_eq!(Vesting::vesting(&3), None); + assert_eq!(VestingStorage::::get(&3), None); // and some usable balance. let usable_balance = Balances::usable_balance(&3); assert_eq!(usable_balance, 30 * ED); @@ -710,7 +710,7 @@ fn merging_shifts_other_schedules_index() { assert_ok!(Vesting::vested_transfer(Some(4).into(), 3, sched2)); // With no schedules vested or merged they are in the order they are created - assert_eq!(Vesting::vesting(&3).unwrap(), vec![sched0, sched1, sched2]); + assert_eq!(VestingStorage::::get(&3).unwrap(), vec![sched0, sched1, sched2]); // and the usable balance has not changed. assert_eq!(usable_balance, Balances::usable_balance(&3)); @@ -731,7 +731,7 @@ fn merging_shifts_other_schedules_index() { let sched3 = VestingInfo::new(sched3_locked, sched3_per_block, sched3_start); // The not touched schedule moves left and the new merged schedule is appended. - assert_eq!(Vesting::vesting(&3).unwrap(), vec![sched1, sched3]); + assert_eq!(VestingStorage::::get(&3).unwrap(), vec![sched1, sched3]); // The usable balance hasn't changed since none of the schedules have started. assert_eq!(Balances::usable_balance(&3), usable_balance); }); @@ -748,7 +748,7 @@ fn merge_ongoing_and_yet_to_be_started_schedules() { ED, // Vesting over 20 blocks 10, ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0]); // Fast forward to half way through the life of sched1. let mut cur_block = @@ -800,7 +800,7 @@ fn merge_ongoing_and_yet_to_be_started_schedules() { let sched2_per_block = sched2_locked / sched2_duration; let sched2 = VestingInfo::new(sched2_locked, sched2_per_block, sched2_start); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched2]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched2]); }); } @@ -815,7 +815,7 @@ fn merge_finished_and_ongoing_schedules() { ED, // Vesting over 20 blocks. 10, ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0]); let sched1 = VestingInfo::new( ED * 40, @@ -834,7 +834,7 @@ fn merge_finished_and_ongoing_schedules() { assert_ok!(Vesting::vested_transfer(Some(3).into(), 2, sched2)); // The schedules are in expected order prior to merging. - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched1, sched2]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched1, sched2]); // Fast forward to sched0's end block. let cur_block = sched0.ending_block_as_balance::(); @@ -849,7 +849,7 @@ fn merge_finished_and_ongoing_schedules() { // sched2 is now the first, since sched0 & sched1 get filtered out while "merging". // sched1 gets treated like the new merged schedule by getting pushed onto back // of the vesting schedules vec. Note: sched0 finished at the current block. - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched2, sched1]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched2, sched1]); // sched0 has finished, so its funds are fully unlocked. let sched0_unlocked_now = sched0.locked(); @@ -877,7 +877,7 @@ fn merge_finishing_schedules_does_not_create_a_new_one() { ED, // 20 block duration. 10, ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0]); // Create sched1 and transfer it to account 2. let sched1 = VestingInfo::new( @@ -886,7 +886,7 @@ fn merge_finishing_schedules_does_not_create_a_new_one() { 10, ); assert_ok!(Vesting::vested_transfer(Some(3).into(), 2, sched1)); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched1]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched1]); let all_scheds_end = sched0 .ending_block_as_balance::() @@ -919,7 +919,7 @@ fn merge_finished_and_yet_to_be_started_schedules() { ED, // 20 block duration. 10, // Ends at block 30 ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0]); let sched1 = VestingInfo::new( ED * 30, @@ -927,7 +927,7 @@ fn merge_finished_and_yet_to_be_started_schedules() { 35, ); assert_ok!(Vesting::vested_transfer(Some(13).into(), 2, sched1)); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched1]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched1]); let sched2 = VestingInfo::new( ED * 40, @@ -936,7 +936,7 @@ fn merge_finished_and_yet_to_be_started_schedules() { ); // Add a 3rd schedule to demonstrate how sched1 shifts. assert_ok!(Vesting::vested_transfer(Some(13).into(), 2, sched2)); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched1, sched2]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched1, sched2]); System::set_block_number(30); @@ -951,7 +951,7 @@ fn merge_finished_and_yet_to_be_started_schedules() { // sched0 is removed since it finished, and sched1 is removed and then pushed on the back // because it is treated as the merged schedule - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched2, sched1]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched2, sched1]); // The usable balance is updated because merging fully unlocked sched0. assert_eq!(Balances::usable_balance(&2), sched0.locked()); @@ -967,7 +967,7 @@ fn merge_schedules_throws_proper_errors() { ED, // 20 block duration. 10, ); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0]); // Account 2 only has 1 vesting schedule. assert_noop!( @@ -976,12 +976,12 @@ fn merge_schedules_throws_proper_errors() { ); // Account 4 has 0 vesting schedules. - assert_eq!(Vesting::vesting(&4), None); + assert_eq!(VestingStorage::::get(&4), None); assert_noop!(Vesting::merge_schedules(Some(4).into(), 0, 1), Error::::NotVesting); // There are enough schedules to merge but an index is non-existent. Vesting::vested_transfer(Some(3).into(), 2, sched0).unwrap(); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![sched0, sched0]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![sched0, sched0]); assert_noop!( Vesting::merge_schedules(Some(2).into(), 0, 2), Error::::ScheduleIndexOutOfBounds @@ -1014,17 +1014,17 @@ fn generates_multiple_schedules_from_genesis_config() { .build() .execute_with(|| { let user1_sched1 = VestingInfo::new(5 * ED, 128, 0u64); - assert_eq!(Vesting::vesting(&1).unwrap(), vec![user1_sched1]); + assert_eq!(VestingStorage::::get(&1).unwrap(), vec![user1_sched1]); let user2_sched1 = VestingInfo::new(1 * ED, 12, 10u64); let user2_sched2 = VestingInfo::new(2 * ED, 25, 10u64); - assert_eq!(Vesting::vesting(&2).unwrap(), vec![user2_sched1, user2_sched2]); + assert_eq!(VestingStorage::::get(&2).unwrap(), vec![user2_sched1, user2_sched2]); let user12_sched1 = VestingInfo::new(1 * ED, 12, 10u64); let user12_sched2 = VestingInfo::new(2 * ED, 25, 10u64); let user12_sched3 = VestingInfo::new(3 * ED, 38, 10u64); assert_eq!( - Vesting::vesting(&12).unwrap(), + VestingStorage::::get(&12).unwrap(), vec![user12_sched1, user12_sched2, user12_sched3] ); }); @@ -1162,7 +1162,7 @@ fn remove_vesting_schedule() { assert_eq!(Balances::free_balance(&3), 256 * 30); assert_eq!(Balances::free_balance(&4), 256 * 40); // Account 4 should not have any vesting yet. - assert_eq!(Vesting::vesting(&4), None); + assert_eq!(VestingStorage::::get(&4), None); // Make the schedule for the new transfer. let new_vesting_schedule = VestingInfo::new( ED * 5, @@ -1171,7 +1171,7 @@ fn remove_vesting_schedule() { ); assert_ok!(Vesting::vested_transfer(Some(3).into(), 4, new_vesting_schedule)); // Now account 4 should have vesting. - assert_eq!(Vesting::vesting(&4).unwrap(), vec![new_vesting_schedule]); + assert_eq!(VestingStorage::::get(&4).unwrap(), vec![new_vesting_schedule]); // Account 4 has 5 * 256 locked. assert_eq!(Vesting::vesting_balance(&4), Some(256 * 5)); // Verify only root can call. @@ -1183,7 +1183,7 @@ fn remove_vesting_schedule() { // Appropriate storage is cleaned up. assert!(!>::contains_key(4)); // Check the vesting balance is zero. - assert_eq!(Vesting::vesting(&4), None); + assert_eq!(VestingStorage::::get(&4), None); // Verifies that trying to remove a schedule when it doesnt exist throws error. assert_noop!( Vesting::force_remove_vesting_schedule(RawOrigin::Root.into(), 4, 0), -- GitLab From 221eddc90cd1efc4fc3c822ce5ccf289272fb41d Mon Sep 17 00:00:00 2001 From: Nazar Mokrynskyi Date: Fri, 5 Jul 2024 22:02:18 +0300 Subject: [PATCH 005/252] Optimize finalization performance (#4922) This PR largely fixes https://github.com/paritytech/polkadot-sdk/issues/4903 by addressing it from a few different directions. The high-level observation is that complexity of finalization was unfortunately roughly `O(n^3)`. Not only `displaced_leaves_after_finalizing` was extremely inefficient on its own, especially when large ranges of blocks were involved, it was called once upfront and then on every single block that was finalized over and over again. The first commit refactores code adjacent to `displaced_leaves_after_finalizing` to optimize memory allocations. For example things like `BTreeMap<_, Vec<_>>` were very bad in terms of number of allocations and after analyzing code paths was completely unnecessary and replaced with `Vec<(_, _)>`. In other places allocations of known size were not done upfront and some APIs required unnecessary cloning of vectors. I checked invariants and didn't find anything that was violated after refactoring. Second commit completely replaces `displaced_leaves_after_finalizing` implementation with a much more efficient one. In my case with ~82k blocks and ~13k leaves it takes ~5.4s to finish `client.apply_finality()` now. The idea is to avoid querying the same blocks over and over again as well as introducing temporary local cache for blocks related to leaves above block that is being finalized as well as local cache of the finalized branch of the chain. I left some comments in the code and wrote tests that I belive should check all code invariants for correctness. `lowest_common_ancestor_multiblock` was removed as unnecessary and not great in terms of performance API, domain-specific code should be written instead like done in `displaced_leaves_after_finalizing`. After these changes I noticed finalization is still horribly slow, turned out that even though `displaced_leaves_after_finalizing` was way faster that before (probably order of magnitude), it was called for every single of those 82k blocks :facepalm: The quick hack I came up with in the third commit to handle this edge case was to not call it when finalizing multiple blocks at once until the very last moment. It works and allows to finish the whole finalization in just 14 seconds (5.4+5.4 of which are two calls to `displaced_leaves_after_finalizing`). I'm really not happy with the fact that `displaced_leaves_after_finalizing` is called twice, but much heavier refactoring would be necessary to get rid of second call. --- Next steps: * assuming the changes are acceptable I'll write prdoc * https://github.com/paritytech/polkadot-sdk/pull/4920 or something similar in spirit should be implemented to unleash efficient parallelsm with rayon in `displaced_leaves_after_finalizing`, which will allow to further (and significant!) scale its performance rather that being CPU-bound on a single core, also reading database sequentially should ideally be avoided * someone should look into removal of the second `displaced_leaves_after_finalizing` call * further cleanups are possible if `undo_finalization` can be removed --- Polkadot Address: 1vSxzbyz2cJREAuVWjhXUT1ds8vBzoxn2w4asNpusQKwjJd --------- Co-authored-by: Sebastian Kunert --- Cargo.lock | 1 + prdoc/pr_4922.prdoc | 15 + substrate/client/api/src/backend.rs | 3 +- substrate/client/api/src/leaves.rs | 81 +++-- substrate/client/db/src/lib.rs | 279 +++++++++--------- substrate/primitives/blockchain/Cargo.toml | 1 + .../primitives/blockchain/src/backend.rs | 174 +++++++---- .../blockchain/src/header_metadata.rs | 42 +-- 8 files changed, 328 insertions(+), 268 deletions(-) create mode 100644 prdoc/pr_4922.prdoc diff --git a/Cargo.lock b/Cargo.lock index f3808b7eaa5..ff6e3c06313 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20018,6 +20018,7 @@ dependencies = [ "schnellru", "sp-api", "sp-consensus", + "sp-core", "sp-database", "sp-runtime", "sp-state-machine", diff --git a/prdoc/pr_4922.prdoc b/prdoc/pr_4922.prdoc new file mode 100644 index 00000000000..2e2dd26947c --- /dev/null +++ b/prdoc/pr_4922.prdoc @@ -0,0 +1,15 @@ +title: Optimize finalization performance + +doc: + - audience: Node Dev + description: | + Finalization algorithm was replaced with a more efficient version, data structures refactored to be faster and do + fewer memory allocations. As the result some APIs have changed in a minor, but incompatible way. + +crates: +- name: sc-client-api + bump: major +- name: sc-client-db + bump: major +- name: sp-blockchain + bump: major diff --git a/substrate/client/api/src/backend.rs b/substrate/client/api/src/backend.rs index 31b100433c7..0b2a3495240 100644 --- a/substrate/client/api/src/backend.rs +++ b/substrate/client/api/src/backend.rs @@ -217,7 +217,8 @@ pub trait BlockImportOperation { where I: IntoIterator, Option>)>; - /// Mark a block as finalized. + /// Mark a block as finalized, if multiple blocks are finalized in the same operation then they + /// must be marked in ascending order. fn mark_finalized( &mut self, hash: Block::Hash, diff --git a/substrate/client/api/src/leaves.rs b/substrate/client/api/src/leaves.rs index e129de8bf3f..70efe8b19c6 100644 --- a/substrate/client/api/src/leaves.rs +++ b/substrate/client/api/src/leaves.rs @@ -45,33 +45,20 @@ pub struct RemoveOutcome { } /// Removed leaves after a finalization action. -pub struct FinalizationOutcome { - removed: BTreeMap, Vec>, +pub struct FinalizationOutcome +where + I: Iterator, +{ + removed: I, } -impl FinalizationOutcome { - /// Merge with another. This should only be used for displaced items that - /// are produced within one transaction of each other. - pub fn merge(&mut self, mut other: Self) { - // this will ignore keys that are in duplicate, however - // if these are actually produced correctly via the leaf-set within - // one transaction, then there will be no overlap in the keys. - self.removed.append(&mut other.removed); - } - - /// Iterate over all displaced leaves. - pub fn leaves(&self) -> impl Iterator { - self.removed.values().flatten() - } - +impl FinalizationOutcome +where + I: Iterator, +{ /// Constructor - pub fn new(new_displaced: impl Iterator) -> Self { - let mut removed = BTreeMap::, Vec>::new(); - for (hash, number) in new_displaced { - removed.entry(Reverse(number)).or_default().push(hash); - } - - FinalizationOutcome { removed } + pub fn new(new_displaced: I) -> Self { + FinalizationOutcome { removed: new_displaced } } } @@ -86,7 +73,7 @@ pub struct LeafSet { impl LeafSet where H: Clone + PartialEq + Decode + Encode, - N: std::fmt::Debug + Clone + AtLeast32Bit + Decode + Encode, + N: std::fmt::Debug + Copy + AtLeast32Bit + Decode + Encode, { /// Construct a new, blank leaf set. pub fn new() -> Self { @@ -117,13 +104,13 @@ where let number = Reverse(number); let removed = if number.0 != N::zero() { - let parent_number = Reverse(number.0.clone() - N::one()); + let parent_number = Reverse(number.0 - N::one()); self.remove_leaf(&parent_number, &parent_hash).then(|| parent_hash) } else { None }; - self.insert_leaf(number.clone(), hash.clone()); + self.insert_leaf(number, hash.clone()); ImportOutcome { inserted: LeafSetItem { hash, number }, removed } } @@ -150,7 +137,7 @@ where let inserted = parent_hash.and_then(|parent_hash| { if number.0 != N::zero() { - let parent_number = Reverse(number.0.clone() - N::one()); + let parent_number = Reverse(number.0 - N::one()); self.insert_leaf(parent_number, parent_hash.clone()); Some(parent_hash) } else { @@ -162,11 +149,12 @@ where } /// Remove all leaves displaced by the last block finalization. - pub fn remove_displaced_leaves(&mut self, displaced_leaves: &FinalizationOutcome) { - for (number, hashes) in &displaced_leaves.removed { - for hash in hashes.iter() { - self.remove_leaf(number, hash); - } + pub fn remove_displaced_leaves(&mut self, displaced_leaves: FinalizationOutcome) + where + I: Iterator, + { + for (number, hash) in displaced_leaves.removed { + self.remove_leaf(&Reverse(number), &hash); } } @@ -186,13 +174,13 @@ where let items = self .storage .iter() - .flat_map(|(number, hashes)| hashes.iter().map(move |h| (h.clone(), number.clone()))) + .flat_map(|(number, hashes)| hashes.iter().map(move |h| (h.clone(), *number))) .collect::>(); - for (hash, number) in &items { + for (hash, number) in items { if number.0 > best_number { assert!( - self.remove_leaf(number, hash), + self.remove_leaf(&number, &hash), "item comes from an iterator over storage; qed", ); } @@ -207,7 +195,7 @@ where // we need to make sure that the best block exists in the leaf set as // this is an invariant of regular block import. if !leaves_contains_best { - self.insert_leaf(best_number.clone(), best_hash.clone()); + self.insert_leaf(best_number, best_hash.clone()); } } @@ -229,7 +217,7 @@ where column: u32, prefix: &[u8], ) { - let leaves: Vec<_> = self.storage.iter().map(|(n, h)| (n.0.clone(), h.clone())).collect(); + let leaves: Vec<_> = self.storage.iter().map(|(n, h)| (n.0, h.clone())).collect(); tx.set_from_vec(column, prefix, leaves.encode()); } @@ -274,7 +262,7 @@ where /// Returns the highest leaf and all hashes associated to it. pub fn highest_leaf(&self) -> Option<(N, &[H])> { - self.storage.iter().next().map(|(k, v)| (k.0.clone(), &v[..])) + self.storage.iter().next().map(|(k, v)| (k.0, &v[..])) } } @@ -286,13 +274,13 @@ pub struct Undo<'a, H: 'a, N: 'a> { impl<'a, H: 'a, N: 'a> Undo<'a, H, N> where H: Clone + PartialEq + Decode + Encode, - N: std::fmt::Debug + Clone + AtLeast32Bit + Decode + Encode, + N: std::fmt::Debug + Copy + AtLeast32Bit + Decode + Encode, { /// Undo an imported block by providing the import operation outcome. /// No additional operations should be performed between import and undo. pub fn undo_import(&mut self, outcome: ImportOutcome) { if let Some(removed_hash) = outcome.removed { - let removed_number = Reverse(outcome.inserted.number.0.clone() - N::one()); + let removed_number = Reverse(outcome.inserted.number.0 - N::one()); self.inner.insert_leaf(removed_number, removed_hash); } self.inner.remove_leaf(&outcome.inserted.number, &outcome.inserted.hash); @@ -302,7 +290,7 @@ where /// No additional operations should be performed between remove and undo. pub fn undo_remove(&mut self, outcome: RemoveOutcome) { if let Some(inserted_hash) = outcome.inserted { - let inserted_number = Reverse(outcome.removed.number.0.clone() - N::one()); + let inserted_number = Reverse(outcome.removed.number.0 - N::one()); self.inner.remove_leaf(&inserted_number, &inserted_hash); } self.inner.insert_leaf(outcome.removed.number, outcome.removed.hash); @@ -310,8 +298,13 @@ where /// Undo a finalization operation by providing the displaced leaves. /// No additional operations should be performed between finalization and undo. - pub fn undo_finalization(&mut self, mut outcome: FinalizationOutcome) { - self.inner.storage.append(&mut outcome.removed); + pub fn undo_finalization(&mut self, outcome: FinalizationOutcome) + where + I: Iterator, + { + for (number, hash) in outcome.removed { + self.inner.storage.entry(Reverse(number)).or_default().push(hash); + } } } diff --git a/substrate/client/db/src/lib.rs b/substrate/client/db/src/lib.rs index 8d8b7a2aff8..e95cd9e4ad5 100644 --- a/substrate/client/db/src/lib.rs +++ b/substrate/client/db/src/lib.rs @@ -1357,6 +1357,8 @@ impl Backend { Ok(()) } + /// `remove_displaced` can be set to `false` if this is not the last of many subsequent calls + /// for performance reasons. fn finalize_block_with_transaction( &self, transaction: &mut Transaction, @@ -1365,6 +1367,7 @@ impl Backend { last_finalized: Option, justification: Option, current_transaction_justifications: &mut HashMap, + remove_displaced: bool, ) -> ClientResult> { // TODO: ensure best chain contains this block. let number = *header.number(); @@ -1377,6 +1380,7 @@ impl Backend { hash, with_state, current_transaction_justifications, + remove_displaced, )?; if let Some(justification) = justification { @@ -1454,7 +1458,8 @@ impl Backend { let mut current_transaction_justifications: HashMap = HashMap::new(); - for (block_hash, justification) in operation.finalized_blocks { + let mut finalized_blocks = operation.finalized_blocks.into_iter().peekable(); + while let Some((block_hash, justification)) = finalized_blocks.next() { let block_header = self.blockchain.expect_header(block_hash)?; meta_updates.push(self.finalize_block_with_transaction( &mut transaction, @@ -1463,6 +1468,7 @@ impl Backend { Some(last_finalized_hash), justification, &mut current_transaction_justifications, + finalized_blocks.peek().is_none(), )?); last_finalized_hash = block_hash; last_finalized_num = *block_header.number(); @@ -1642,6 +1648,7 @@ impl Backend { hash, operation.commit_state, &mut current_transaction_justifications, + true, )?; } else { // canonicalize blocks which are old enough, regardless of finality. @@ -1766,9 +1773,10 @@ impl Backend { Ok(()) } - // write stuff to a transaction after a new block is finalized. - // this canonicalizes finalized blocks. Fails if called with a block which - // was not a child of the last finalized block. + // Write stuff to a transaction after a new block is finalized. This canonicalizes finalized + // blocks. Fails if called with a block which was not a child of the last finalized block. + /// `remove_displaced` can be set to `false` if this is not the last of many subsequent calls + /// for performance reasons. fn note_finalized( &self, transaction: &mut Transaction, @@ -1776,6 +1784,7 @@ impl Backend { f_hash: Block::Hash, with_state: bool, current_transaction_justifications: &mut HashMap, + remove_displaced: bool, ) -> ClientResult<()> { let f_num = *f_header.number(); @@ -1800,13 +1809,19 @@ impl Backend { apply_state_commit(transaction, commit); } - let new_displaced = self.blockchain.displaced_leaves_after_finalizing(f_hash, f_num)?; - let finalization_outcome = - FinalizationOutcome::new(new_displaced.displaced_leaves.clone().into_iter()); + if remove_displaced { + let new_displaced = self.blockchain.displaced_leaves_after_finalizing(f_hash, f_num)?; - self.blockchain.leaves.write().remove_displaced_leaves(&finalization_outcome); + self.blockchain.leaves.write().remove_displaced_leaves(FinalizationOutcome::new( + new_displaced.displaced_leaves.iter().copied(), + )); - self.prune_blocks(transaction, f_num, &new_displaced, current_transaction_justifications)?; + if !matches!(self.blocks_pruning, BlocksPruning::KeepAll) { + self.prune_displaced_branches(transaction, &new_displaced)?; + } + } + + self.prune_blocks(transaction, f_num, current_transaction_justifications)?; Ok(()) } @@ -1815,39 +1830,29 @@ impl Backend { &self, transaction: &mut Transaction, finalized_number: NumberFor, - displaced: &DisplacedLeavesAfterFinalization, current_transaction_justifications: &mut HashMap, ) -> ClientResult<()> { - match self.blocks_pruning { - BlocksPruning::KeepAll => {}, - BlocksPruning::Some(blocks_pruning) => { - // Always keep the last finalized block - let keep = std::cmp::max(blocks_pruning, 1); - if finalized_number >= keep.into() { - let number = finalized_number.saturating_sub(keep.into()); - - // Before we prune a block, check if it is pinned - if let Some(hash) = self.blockchain.hash(number)? { - self.blockchain.insert_persisted_body_if_pinned(hash)?; - - // If the block was finalized in this transaction, it will not be in the db - // yet. - if let Some(justification) = - current_transaction_justifications.remove(&hash) - { - self.blockchain.insert_justifications_if_pinned(hash, justification); - } else { - self.blockchain.insert_persisted_justifications_if_pinned(hash)?; - } - }; + if let BlocksPruning::Some(blocks_pruning) = self.blocks_pruning { + // Always keep the last finalized block + let keep = std::cmp::max(blocks_pruning, 1); + if finalized_number >= keep.into() { + let number = finalized_number.saturating_sub(keep.into()); + + // Before we prune a block, check if it is pinned + if let Some(hash) = self.blockchain.hash(number)? { + self.blockchain.insert_persisted_body_if_pinned(hash)?; + + // If the block was finalized in this transaction, it will not be in the db + // yet. + if let Some(justification) = current_transaction_justifications.remove(&hash) { + self.blockchain.insert_justifications_if_pinned(hash, justification); + } else { + self.blockchain.insert_persisted_justifications_if_pinned(hash)?; + } + }; - self.prune_block(transaction, BlockId::::number(number))?; - } - self.prune_displaced_branches(transaction, displaced)?; - }, - BlocksPruning::KeepFinalized => { - self.prune_displaced_branches(transaction, displaced)?; - }, + self.prune_block(transaction, BlockId::::number(number))?; + } } Ok(()) } @@ -1858,11 +1863,9 @@ impl Backend { displaced: &DisplacedLeavesAfterFinalization, ) -> ClientResult<()> { // Discard all blocks from displaced branches - for (_, tree_route) in displaced.tree_routes.iter() { - for r in tree_route.retracted() { - self.blockchain.insert_persisted_body_if_pinned(r.hash)?; - self.prune_block(transaction, BlockId::::hash(r.hash))?; - } + for &hash in displaced.displaced_blocks.iter() { + self.blockchain.insert_persisted_body_if_pinned(hash)?; + self.prune_block(transaction, BlockId::::hash(hash))?; } Ok(()) } @@ -2110,6 +2113,7 @@ impl sc_client_api::backend::Backend for Backend { None, justification, &mut current_transaction_justifications, + true, )?; self.storage.db.commit(transaction)?; @@ -2547,7 +2551,7 @@ pub(crate) mod tests { backend::{Backend as BTrait, BlockImportOperation as Op}, blockchain::Backend as BLBTrait, }; - use sp_blockchain::{lowest_common_ancestor, lowest_common_ancestor_multiblock, tree_route}; + use sp_blockchain::{lowest_common_ancestor, tree_route}; use sp_core::H256; use sp_runtime::{ testing::{Block as RawBlock, ExtrinsicWrapper, Header}, @@ -3109,121 +3113,118 @@ pub(crate) mod tests { } #[test] - fn lowest_common_ancestors_multiblock_works() { + fn displaced_leaves_after_finalizing_works() { let backend = Backend::::new_test(1000, 100); let blockchain = backend.blockchain(); - let block0 = insert_header(&backend, 0, Default::default(), None, Default::default()); + let genesis_number = 0; + let genesis_hash = + insert_header(&backend, genesis_number, Default::default(), None, Default::default()); // fork from genesis: 3 prong. // block 0 -> a1 -> a2 -> a3 - // | - // -> b1 -> b2 -> c1 -> c2 - // | - // -> d1 -> d2 - let a1 = insert_header(&backend, 1, block0, None, Default::default()); - let a2 = insert_header(&backend, 2, a1, None, Default::default()); - let a3 = insert_header(&backend, 3, a2, None, Default::default()); - - // fork from genesis: 2 prong. - let b1 = insert_header(&backend, 1, block0, None, H256::from([1; 32])); - let b2 = insert_header(&backend, 2, b1, None, Default::default()); - - // fork from b2. - let c1 = insert_header(&backend, 3, b2, None, H256::from([2; 32])); - let c2 = insert_header(&backend, 4, c1, None, Default::default()); - - // fork from b1. - let d1 = insert_header(&backend, 2, b1, None, H256::from([3; 32])); - let d2 = insert_header(&backend, 3, d1, None, Default::default()); - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a3, b2]).unwrap().unwrap(); - - assert_eq!(lca.hash, block0); - assert_eq!(lca.number, 0); - } - - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a1, a3]).unwrap().unwrap(); - - assert_eq!(lca.hash, a1); - assert_eq!(lca.number, 1); - } - - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a3, a1]).unwrap().unwrap(); - - assert_eq!(lca.hash, a1); - assert_eq!(lca.number, 1); - } - - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a2, a3]).unwrap().unwrap(); - - assert_eq!(lca.hash, a2); - assert_eq!(lca.number, 2); - } + // \ + // -> b1 -> b2 -> c1 -> c2 + // \ + // -> d1 -> d2 + let a1_number = 1; + let a1_hash = insert_header(&backend, a1_number, genesis_hash, None, Default::default()); + let a2_number = 2; + let a2_hash = insert_header(&backend, a2_number, a1_hash, None, Default::default()); + let a3_number = 3; + let a3_hash = insert_header(&backend, a3_number, a2_hash, None, Default::default()); { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a2, a1]).unwrap().unwrap(); - - assert_eq!(lca.hash, a1); - assert_eq!(lca.number, 1); + let displaced = blockchain + .displaced_leaves_after_finalizing(genesis_hash, genesis_number) + .unwrap(); + assert_eq!(displaced.displaced_leaves, vec![]); + assert_eq!(displaced.displaced_blocks, vec![]); } - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a2, a2]).unwrap().unwrap(); - - assert_eq!(lca.hash, a2); - assert_eq!(lca.number, 2); + let displaced_a1 = + blockchain.displaced_leaves_after_finalizing(a1_hash, a1_number).unwrap(); + assert_eq!(displaced_a1.displaced_leaves, vec![]); + assert_eq!(displaced_a1.displaced_blocks, vec![]); + + let displaced_a2 = + blockchain.displaced_leaves_after_finalizing(a2_hash, a3_number).unwrap(); + assert_eq!(displaced_a2.displaced_leaves, vec![]); + assert_eq!(displaced_a2.displaced_blocks, vec![]); + + let displaced_a3 = + blockchain.displaced_leaves_after_finalizing(a3_hash, a3_number).unwrap(); + assert_eq!(displaced_a3.displaced_leaves, vec![]); + assert_eq!(displaced_a3.displaced_blocks, vec![]); } - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a3, d2, c2]) - .unwrap() - .unwrap(); - - assert_eq!(lca.hash, block0); - assert_eq!(lca.number, 0); - } + // fork from genesis: 2 prong. + let b1_number = 1; + let b1_hash = insert_header(&backend, b1_number, genesis_hash, None, H256::from([1; 32])); + let b2_number = 2; + let b2_hash = insert_header(&backend, b2_number, b1_hash, None, Default::default()); - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![c2, d2, b2]) - .unwrap() - .unwrap(); + // fork from b2. + let c1_number = 3; + let c1_hash = insert_header(&backend, c1_number, b2_hash, None, H256::from([2; 32])); + let c2_number = 4; + let c2_hash = insert_header(&backend, c2_number, c1_hash, None, Default::default()); - assert_eq!(lca.hash, b1); - assert_eq!(lca.number, 1); - } + // fork from b1. + let d1_number = 2; + let d1_hash = insert_header(&backend, d1_number, b1_hash, None, H256::from([3; 32])); + let d2_number = 3; + let d2_hash = insert_header(&backend, d2_number, d1_hash, None, Default::default()); { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a1, a2, a3]) - .unwrap() - .unwrap(); - - assert_eq!(lca.hash, a1); - assert_eq!(lca.number, 1); + let displaced_a1 = + blockchain.displaced_leaves_after_finalizing(a1_hash, a1_number).unwrap(); + assert_eq!( + displaced_a1.displaced_leaves, + vec![(c2_number, c2_hash), (d2_number, d2_hash)] + ); + let mut displaced_blocks = vec![b1_hash, b2_hash, c1_hash, c2_hash, d1_hash, d2_hash]; + displaced_blocks.sort(); + assert_eq!(displaced_a1.displaced_blocks, displaced_blocks); + + let displaced_a2 = + blockchain.displaced_leaves_after_finalizing(a2_hash, a2_number).unwrap(); + assert_eq!(displaced_a1.displaced_leaves, displaced_a2.displaced_leaves); + assert_eq!(displaced_a1.displaced_blocks, displaced_a2.displaced_blocks); + + let displaced_a3 = + blockchain.displaced_leaves_after_finalizing(a3_hash, a3_number).unwrap(); + assert_eq!(displaced_a1.displaced_leaves, displaced_a3.displaced_leaves); + assert_eq!(displaced_a1.displaced_blocks, displaced_a3.displaced_blocks); } - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![b1, b2, d1]) - .unwrap() - .unwrap(); - - assert_eq!(lca.hash, b1); - assert_eq!(lca.number, 1); + let displaced = + blockchain.displaced_leaves_after_finalizing(b1_hash, b1_number).unwrap(); + assert_eq!(displaced.displaced_leaves, vec![(a3_number, a3_hash)]); + let mut displaced_blocks = vec![a1_hash, a2_hash, a3_hash]; + displaced_blocks.sort(); + assert_eq!(displaced.displaced_blocks, displaced_blocks); } - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![]); - - assert_eq!(true, matches!(lca, Ok(None))); + let displaced = + blockchain.displaced_leaves_after_finalizing(b2_hash, b2_number).unwrap(); + assert_eq!( + displaced.displaced_leaves, + vec![(a3_number, a3_hash), (d2_number, d2_hash)] + ); + let mut displaced_blocks = vec![a1_hash, a2_hash, a3_hash, d1_hash, d2_hash]; + displaced_blocks.sort(); + assert_eq!(displaced.displaced_blocks, displaced_blocks); } - { - let lca = lowest_common_ancestor_multiblock(blockchain, vec![a1]).unwrap().unwrap(); - - assert_eq!(lca.hash, a1); - assert_eq!(lca.number, 1); + let displaced = + blockchain.displaced_leaves_after_finalizing(c2_hash, c2_number).unwrap(); + assert_eq!( + displaced.displaced_leaves, + vec![(a3_number, a3_hash), (d2_number, d2_hash)] + ); + let mut displaced_blocks = vec![a1_hash, a2_hash, a3_hash, d1_hash, d2_hash]; + displaced_blocks.sort(); + assert_eq!(displaced.displaced_blocks, displaced_blocks); } } diff --git a/substrate/primitives/blockchain/Cargo.toml b/substrate/primitives/blockchain/Cargo.toml index 67126d4d19e..aedd720612c 100644 --- a/substrate/primitives/blockchain/Cargo.toml +++ b/substrate/primitives/blockchain/Cargo.toml @@ -24,6 +24,7 @@ parking_lot = { workspace = true, default-features = true } schnellru = { workspace = true } thiserror = { workspace = true } sp-api = { workspace = true, default-features = true } +sp-core = { workspace = true, default-features = true } sp-consensus = { workspace = true, default-features = true } sp-database = { workspace = true, default-features = true } sp-runtime = { workspace = true, default-features = true } diff --git a/substrate/primitives/blockchain/src/backend.rs b/substrate/primitives/blockchain/src/backend.rs index 76393420da7..a928217d588 100644 --- a/substrate/primitives/blockchain/src/backend.rs +++ b/substrate/primitives/blockchain/src/backend.rs @@ -21,15 +21,15 @@ use log::warn; use parking_lot::RwLock; use sp_runtime::{ generic::BlockId, - traits::{Block as BlockT, CheckedSub, Header as HeaderT, NumberFor, Zero}, + traits::{Block as BlockT, Header as HeaderT, NumberFor, Zero}, Justifications, }; -use std::collections::{btree_map::BTreeMap, btree_set::BTreeSet}; +use std::collections::{btree_set::BTreeSet, HashMap, VecDeque}; use crate::{ error::{Error, Result}, - header_metadata::{self, HeaderMetadata}, - lowest_common_ancestor_multiblock, tree_route, TreeRoute, + header_metadata::HeaderMetadata, + tree_route, CachedHeaderMetadata, }; /// Blockchain database header backend. Does not perform any validation. @@ -128,6 +128,32 @@ where { } +struct MinimalBlockMetadata { + number: NumberFor, + hash: Block::Hash, + parent: Block::Hash, +} + +impl Clone for MinimalBlockMetadata +where + Block: BlockT, +{ + fn clone(&self) -> Self { + Self { number: self.number, hash: self.hash, parent: self.parent } + } +} + +impl Copy for MinimalBlockMetadata where Block: BlockT {} + +impl From<&CachedHeaderMetadata> for MinimalBlockMetadata +where + Block: BlockT, +{ + fn from(value: &CachedHeaderMetadata) -> Self { + Self { number: value.number, hash: value.hash, parent: value.parent } + } +} + /// Blockchain database backend. Does not perform any validation. pub trait Backend: HeaderBackend + HeaderMetadata @@ -226,88 +252,128 @@ pub trait Backend: finalized_block_hash: Block::Hash, finalized_block_number: NumberFor, ) -> std::result::Result, Error> { - let mut result = DisplacedLeavesAfterFinalization::default(); - let leaves = self.leaves()?; // If we have only one leaf there are no forks, and we can return early. if finalized_block_number == Zero::zero() || leaves.len() == 1 { - return Ok(result) + return Ok(DisplacedLeavesAfterFinalization::default()) } - let first_leaf = leaves.first().ok_or(Error::Backend( - "Unable to find any leaves. This should not happen.".to_string(), - ))?; - let leaf_block_header = self.expect_header(*first_leaf)?; - - // If the distance between the leafs and the finalized block is large, calculating - // tree routes can be very expensive. In that case, we will try to find the - // lowest common ancestor between all the leaves. The assumption here is that the forks are - // close to the tip and not long. So the LCA can be computed from the header cache. If the - // LCA is above the finalized block, we know that there are no displaced leaves by the - // finalization. - if leaf_block_header - .number() - .checked_sub(&finalized_block_number) - .unwrap_or(0u32.into()) > - header_metadata::LRU_CACHE_SIZE.into() - { - if let Some(lca) = lowest_common_ancestor_multiblock(self, leaves.clone())? { - if lca.number > finalized_block_number { - return Ok(result) - } else { - log::warn!("The distance between leafs and finalized block is large. Finalization can take a long time."); - } - }; - } + // Store hashes of finalized blocks for quick checking later, the last block if the + // finalized one + let mut finalized_chain = VecDeque::new(); + finalized_chain + .push_front(MinimalBlockMetadata::from(&self.header_metadata(finalized_block_hash)?)); + + // Local cache is a performance optimization in case of finalized block deep below the + // tip of the chain with a lot of leaves above finalized block + let mut local_cache = HashMap::>::new(); + + let mut result = DisplacedLeavesAfterFinalization { + displaced_leaves: Vec::with_capacity(leaves.len()), + displaced_blocks: Vec::with_capacity(leaves.len()), + }; + let mut displaced_blocks_candidates = Vec::new(); - // For each leaf determine whether it belongs to a non-canonical branch. for leaf_hash in leaves { - let leaf_block_header = self.expect_header(leaf_hash)?; - let leaf_number = *leaf_block_header.number(); + let mut current_header_metadata = + MinimalBlockMetadata::from(&self.header_metadata(leaf_hash)?); + let leaf_number = current_header_metadata.number; + + // Collect all block hashes until the height of the finalized block + displaced_blocks_candidates.clear(); + while current_header_metadata.number > finalized_block_number { + displaced_blocks_candidates.push(current_header_metadata.hash); + + let parent_hash = current_header_metadata.parent; + match local_cache.get(&parent_hash) { + Some(metadata_header) => { + current_header_metadata = *metadata_header; + }, + None => { + current_header_metadata = + MinimalBlockMetadata::from(&self.header_metadata(parent_hash)?); + // Cache locally in case more branches above finalized block reference + // the same block hash + local_cache.insert(parent_hash, current_header_metadata); + }, + } + } + + // If points back to the finalized header then nothing left to do, this leaf will be + // checked again later + if current_header_metadata.hash == finalized_block_hash { + continue; + } - let leaf_tree_route = match tree_route(self, leaf_hash, finalized_block_hash) { - Ok(tree_route) => tree_route, - Err(Error::UnknownBlock(_)) => { - // Sometimes routes can't be calculated. E.g. after warp sync. + // Otherwise the whole leaf branch needs to be pruned, track it all the way to the + // point of branching from the finalized chain + result.displaced_leaves.push((leaf_number, leaf_hash)); + result.displaced_blocks.extend(displaced_blocks_candidates.drain(..)); + result.displaced_blocks.push(current_header_metadata.hash); + // Collect the rest of the displaced blocks of leaf branch + for distance_from_finalized in 1_u32.. { + // Find block at `distance_from_finalized` from finalized block + let (finalized_chain_block_number, finalized_chain_block_hash) = + match finalized_chain.iter().rev().nth(distance_from_finalized as usize) { + Some(header) => (header.number, header.hash), + None => { + let metadata = MinimalBlockMetadata::from(&self.header_metadata( + finalized_chain.front().expect("Not empty; qed").parent, + )?); + let result = (metadata.number, metadata.hash); + finalized_chain.push_front(metadata); + result + }, + }; + + if current_header_metadata.number <= finalized_chain_block_number { + // Skip more blocks until we get all blocks on finalized chain until the height + // of the parent block continue; - }, - Err(e) => Err(e)?, - }; + } - // Is it a stale fork? - let needs_pruning = leaf_tree_route.common_block().hash != finalized_block_hash; + let parent_hash = current_header_metadata.parent; + if finalized_chain_block_hash == parent_hash { + // Reached finalized chain, nothing left to do + break; + } - if needs_pruning { - result.displaced_leaves.insert(leaf_hash, leaf_number); - result.tree_routes.insert(leaf_hash, leaf_tree_route); + // Store displaced block and look deeper for block on finalized chain + result.displaced_blocks.push(parent_hash); + current_header_metadata = + MinimalBlockMetadata::from(&self.header_metadata(parent_hash)?); } } - Ok(result) + // There could be duplicates shared by multiple branches, clean them up + result.displaced_blocks.sort_unstable(); + result.displaced_blocks.dedup(); + + return Ok(result); } } /// Result of [`Backend::displaced_leaves_after_finalizing`]. #[derive(Clone, Debug)] pub struct DisplacedLeavesAfterFinalization { - /// A collection of hashes and block numbers for displaced leaves. - pub displaced_leaves: BTreeMap>, + /// A list of hashes and block numbers of displaced leaves. + pub displaced_leaves: Vec<(NumberFor, Block::Hash)>, - /// A collection of tree routes from the leaves to finalized block. - pub tree_routes: BTreeMap>, + /// A list of hashes displaced blocks from all displaced leaves. + pub displaced_blocks: Vec, } impl Default for DisplacedLeavesAfterFinalization { fn default() -> Self { - Self { displaced_leaves: Default::default(), tree_routes: Default::default() } + Self { displaced_leaves: Vec::new(), displaced_blocks: Vec::new() } } } impl DisplacedLeavesAfterFinalization { /// Returns a collection of hashes for the displaced leaves. pub fn hashes(&self) -> impl Iterator + '_ { - self.displaced_leaves.keys().cloned() + self.displaced_leaves.iter().map(|(_, hash)| *hash) } } diff --git a/substrate/primitives/blockchain/src/header_metadata.rs b/substrate/primitives/blockchain/src/header_metadata.rs index c2054445b06..30024765add 100644 --- a/substrate/primitives/blockchain/src/header_metadata.rs +++ b/substrate/primitives/blockchain/src/header_metadata.rs @@ -20,12 +20,16 @@ use parking_lot::RwLock; use schnellru::{ByLength, LruMap}; -use sp_runtime::traits::{Block as BlockT, Header, NumberFor, One}; +use sp_core::U256; +use sp_runtime::{ + traits::{Block as BlockT, Header, NumberFor, One}, + Saturating, +}; /// Set to the expected max difference between `best` and `finalized` blocks at sync. pub(crate) const LRU_CACHE_SIZE: u32 = 5_000; -/// Get lowest common ancestor between two blocks in the tree. +/// Get the lowest common ancestor between two blocks in the tree. /// /// This implementation is efficient because our trees have very few and /// small branches, and because of our current query pattern: @@ -96,30 +100,6 @@ pub fn lowest_common_ancestor + ?Sized>( Ok(HashAndNumber { hash: header_one.hash, number: header_one.number }) } -/// Get lowest common ancestor between multiple blocks. -pub fn lowest_common_ancestor_multiblock + ?Sized>( - backend: &T, - hashes: Vec, -) -> Result>, T::Error> { - // Ensure the list of hashes is not empty - let mut hashes_iter = hashes.into_iter(); - - let first_hash = match hashes_iter.next() { - Some(hash) => hash, - None => return Ok(None), - }; - - // Start with the first hash as the initial LCA - let first_cached = backend.header_metadata(first_hash)?; - let mut lca = HashAndNumber { number: first_cached.number, hash: first_cached.hash }; - for hash in hashes_iter { - // Calculate the LCA of the current LCA and the next hash - lca = lowest_common_ancestor(backend, lca.hash, hash)?; - } - - Ok(Some(lca)) -} - /// Compute a tree-route between two blocks. See tree-route docs for more details. pub fn tree_route + ?Sized>( backend: &T, @@ -129,15 +109,16 @@ pub fn tree_route + ?Sized>( let mut from = backend.header_metadata(from)?; let mut to = backend.header_metadata(to)?; - let mut from_branch = Vec::new(); - let mut to_branch = Vec::new(); - + let mut to_branch = + Vec::with_capacity(Into::::into(to.number.saturating_sub(from.number)).as_usize()); while to.number > from.number { to_branch.push(HashAndNumber { number: to.number, hash: to.hash }); to = backend.header_metadata(to.parent)?; } + let mut from_branch = + Vec::with_capacity(Into::::into(to.number.saturating_sub(from.number)).as_usize()); while from.number > to.number { from_branch.push(HashAndNumber { number: from.number, hash: from.hash }); from = backend.header_metadata(from.parent)?; @@ -156,6 +137,7 @@ pub fn tree_route + ?Sized>( // add the pivot block. and append the reversed to-branch // (note that it's reverse order originals) let pivot = from_branch.len(); + from_branch.reserve_exact(to_branch.len() + 1); from_branch.push(HashAndNumber { number: to.number, hash: to.hash }); from_branch.extend(to_branch.into_iter().rev()); @@ -173,7 +155,7 @@ pub struct HashAndNumber { /// A tree-route from one block to another in the chain. /// -/// All blocks prior to the pivot in the deque is the reverse-order unique ancestry +/// All blocks prior to the pivot in the vector is the reverse-order unique ancestry /// of the first block, the block at the pivot index is the common ancestor, /// and all blocks after the pivot is the ancestry of the second block, in /// order. -- GitLab From 706d2f3e90178c91d8d2e7f7531374da9a8034e5 Mon Sep 17 00:00:00 2001 From: Sam Johnson Date: Sat, 6 Jul 2024 15:53:20 -0400 Subject: [PATCH 006/252] upgrade to macro_magic 0.5.1 (#4945) Release notes here: https://github.com/sam0x17/macro_magic/releases/tag/v0.5.1 Some performance improvements + upgrades to `derive-syn-parse` 2.0 which means polkadot-sdk now fully upgrades this crate within the workspace --- Cargo.lock | 33 +++++++++++---------------------- Cargo.toml | 2 +- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ff6e3c06313..046f9a15bbd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4786,17 +4786,6 @@ dependencies = [ "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 1.0.82", - "quote 1.0.35", - "syn 1.0.109", -] - [[package]] name = "derive-syn-parse" version = "0.2.0" @@ -4980,7 +4969,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" dependencies = [ "common-path", - "derive-syn-parse 0.2.0", + "derive-syn-parse", "once_cell", "proc-macro2 1.0.82", "quote 1.0.35", @@ -6005,7 +5994,7 @@ version = "23.0.0" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse 0.2.0", + "derive-syn-parse", "expander", "frame-support-procedural-tools", "itertools 0.11.0", @@ -8431,9 +8420,9 @@ dependencies = [ [[package]] name = "macro_magic" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e03844fc635e92f3a0067e25fa4bf3e3dbf3f2927bf3aa01bb7bc8f1c428949d" +checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" dependencies = [ "macro_magic_core", "macro_magic_macros", @@ -8443,12 +8432,12 @@ dependencies = [ [[package]] name = "macro_magic_core" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" +checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" dependencies = [ "const-random", - "derive-syn-parse 0.1.5", + "derive-syn-parse", "macro_magic_core_macros", "proc-macro2 1.0.82", "quote 1.0.35", @@ -8457,9 +8446,9 @@ dependencies = [ [[package]] name = "macro_magic_core_macros" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" +checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2 1.0.82", "quote 1.0.35", @@ -8468,9 +8457,9 @@ dependencies = [ [[package]] name = "macro_magic_macros" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" +checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote 1.0.35", diff --git a/Cargo.toml b/Cargo.toml index db9a2bd7227..5c2677fffeb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -819,7 +819,7 @@ linregress = { version = "0.5.1" } lite-json = { version = "0.2.0", default-features = false } litep2p = { version = "0.6.2" } log = { version = "0.4.21", default-features = false } -macro_magic = { version = "0.5.0" } +macro_magic = { version = "0.5.1" } maplit = { version = "1.0.2" } memmap2 = { version = "0.9.3" } memory-db = { version = "0.32.0", default-features = false } -- GitLab From 515a9f7ad90e664c80214931d85da3d53c807573 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Senovilla=20Polo?= <117524919+tsenovilla@users.noreply.github.com> Date: Sat, 6 Jul 2024 22:27:14 +0200 Subject: [PATCH 007/252] Fix small typo in fungible token freeze docs (#4943) Hi! In the course of a talk with @shawntabrizi in Singapore, we realized the documentation related to freeze balances' a little bit confusing. It stated that a frozen amount is released at some specified block number, which isn't true in general. This PR fixes that typo and further specifies that the frozen balance may exceed the available balance, according to what we learned at the PBA. This feature was not specified in the documentation AFAIK. This is the first time I submit something to the polkadot SDK repo, so please feel free to rephrase the docs I added in case I messed up! --------- Co-authored-by: Shawn Tabrizi Co-authored-by: command-bot <> --- prdoc/pr_4943.prdoc | 13 +++++++++++++ .../frame/support/src/traits/tokens/fungible/mod.rs | 9 +++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 prdoc/pr_4943.prdoc diff --git a/prdoc/pr_4943.prdoc b/prdoc/pr_4943.prdoc new file mode 100644 index 00000000000..70532512606 --- /dev/null +++ b/prdoc/pr_4943.prdoc @@ -0,0 +1,13 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Update definition of frozen balance (docs PR) + +doc: + - audience: Runtime Dev + description: | + This PR fixes a bug in the docs located in the definition of frozen balances. In addition, it extends that definition for completeness. + +crates: +- name: frame-support + bump: patch \ No newline at end of file diff --git a/substrate/frame/support/src/traits/tokens/fungible/mod.rs b/substrate/frame/support/src/traits/tokens/fungible/mod.rs index b8e98564898..a113cb01c98 100644 --- a/substrate/frame/support/src/traits/tokens/fungible/mod.rs +++ b/substrate/frame/support/src/traits/tokens/fungible/mod.rs @@ -58,13 +58,18 @@ //! 3 holds for 100 units, the account can spend its funds for any reason down to 300 units, at //! which point the holds will start to come into play. //! -//! - **Frozen Balance**: A freeze on a specified amount of an account's free balance until a -//! specified block number. +//! - **Frozen Balance**: A freeze on a specified amount of an account's balance. Tokens that are +//! frozen cannot be transferred. //! //! Multiple freezes always operate over the same funds, so they "overlay" rather than //! "stack". This means that if an account has 3 freezes for 100 units, the account can spend its //! funds for any reason down to 100 units, at which point the freezes will start to come into //! play. +//! +//! It's important to note that the frozen balance can exceed the total balance of the account. +//! This is useful, eg, in cases where you want to prevent a user from transferring any fund. In +//! such a case, setting the frozen balance to `Balance::MAX` would serve that purpose +//! effectively. //! //! - **Minimum Balance (a.k.a. Existential Deposit, a.k.a. ED)**: The minimum balance required to //! create or keep an account open. This is to prevent "dust accounts" from filling storage. When -- GitLab From d3a679d312173d3f2eabd0b259f22b68d2c83238 Mon Sep 17 00:00:00 2001 From: Deepak Chaudhary <54492415+Aideepakchaudhary@users.noreply.github.com> Date: Sun, 7 Jul 2024 04:32:05 +0800 Subject: [PATCH 008/252] remove getter from transaction storage pallet (#4885) ### ISSUE Link to the issue: https://github.com/paritytech/polkadot-sdk/issues/3326 cc @muraca Deliverables - [Deprecation] remove pallet::getter usage from pallet-transaction-storage ### Test Outcomes ___ cargo test -p pallet-transaction-storage --features runtime-benchmarks running 9 tests test mock::test_genesis_config_builds ... ok test tests::burns_fee ... ok test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok test tests::discards_data ... ok test tests::renews_data ... ok test benchmarking::bench_renew ... ok test benchmarking::bench_store ... ok test tests::checks_proof ... ok test benchmarking::bench_check_proof_max has been running for over 60 seconds test benchmarking::bench_check_proof_max ... ok test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 72.57s Doc-tests pallet-transaction-storage running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s --- Polkadot Address: 16htXkeVhfroBhL6nuqiwknfXKcT6WadJPZqEi2jRf9z4XPY --- prdoc/pr_4885.prdoc | 14 ++++ .../frame/transaction-storage/src/lib.rs | 78 +++++++++++-------- .../frame/transaction-storage/src/tests.rs | 12 +-- 3 files changed, 65 insertions(+), 39 deletions(-) create mode 100644 prdoc/pr_4885.prdoc diff --git a/prdoc/pr_4885.prdoc b/prdoc/pr_4885.prdoc new file mode 100644 index 00000000000..50dc31bc1b8 --- /dev/null +++ b/prdoc/pr_4885.prdoc @@ -0,0 +1,14 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Removed `pallet::getter` usage from the pallet-transaction-storage + +doc: + - audience: Runtime Dev + description: | + This PR removed `pallet::getter`s from `pallet-transaction-storage`s storage items. + When accessed inside the pallet, use the syntax `StorageItem::::get()`. + +crates: + - name: pallet-transaction-storage + bump: minor diff --git a/substrate/frame/transaction-storage/src/lib.rs b/substrate/frame/transaction-storage/src/lib.rs index 398cb350c50..6e58ee3e585 100644 --- a/substrate/frame/transaction-storage/src/lib.rs +++ b/substrate/frame/transaction-storage/src/lib.rs @@ -159,11 +159,11 @@ pub mod pallet { fn on_initialize(n: BlockNumberFor) -> Weight { // Drop obsolete roots. The proof for `obsolete` will be checked later // in this block, so we drop `obsolete` - 1. - let period = >::get(); + let period = StoragePeriod::::get(); let obsolete = n.saturating_sub(period.saturating_add(One::one())); if obsolete > Zero::zero() { - >::remove(obsolete); - >::remove(obsolete); + Transactions::::remove(obsolete); + ChunkCount::::remove(obsolete); } // 2 writes in `on_initialize` and 2 writes + 2 reads in `on_finalize` T::DbWeight::get().reads_writes(2, 4) @@ -171,21 +171,21 @@ pub mod pallet { fn on_finalize(n: BlockNumberFor) { assert!( - >::take() || { + ProofChecked::::take() || { // Proof is not required for early or empty blocks. - let number = >::block_number(); - let period = >::get(); + let number = frame_system::Pallet::::block_number(); + let period = StoragePeriod::::get(); let target_number = number.saturating_sub(period); - target_number.is_zero() || >::get(target_number) == 0 + target_number.is_zero() || ChunkCount::::get(target_number) == 0 }, "Storage proof must be checked once in the block" ); // Insert new transactions - let transactions = >::take(); + let transactions = BlockTransactions::::take(); let total_chunks = transactions.last().map_or(0, |t| t.block_chunks); if total_chunks != 0 { - >::insert(n, total_chunks); - >::insert(n, transactions); + ChunkCount::::insert(n, total_chunks); + Transactions::::insert(n, transactions); } } } @@ -215,11 +215,11 @@ pub mod pallet { let content_hash = sp_io::hashing::blake2_256(&data); let extrinsic_index = - >::extrinsic_index().ok_or(Error::::BadContext)?; + frame_system::Pallet::::extrinsic_index().ok_or(Error::::BadContext)?; sp_io::transaction_index::index(extrinsic_index, data.len() as u32, content_hash); let mut index = 0; - >::mutate(|transactions| { + BlockTransactions::::mutate(|transactions| { if transactions.len() + 1 > T::MaxBlockTransactions::get() as usize { return Err(Error::::TooManyTransactions) } @@ -253,17 +253,17 @@ pub mod pallet { index: u32, ) -> DispatchResultWithPostInfo { let sender = ensure_signed(origin)?; - let transactions = >::get(block).ok_or(Error::::RenewedNotFound)?; + let transactions = Transactions::::get(block).ok_or(Error::::RenewedNotFound)?; let info = transactions.get(index as usize).ok_or(Error::::RenewedNotFound)?; let extrinsic_index = - >::extrinsic_index().ok_or(Error::::BadContext)?; + frame_system::Pallet::::extrinsic_index().ok_or(Error::::BadContext)?; Self::apply_fee(sender, info.size)?; sp_io::transaction_index::renew(extrinsic_index, info.content_hash.into()); let mut index = 0; - >::mutate(|transactions| { + BlockTransactions::::mutate(|transactions| { if transactions.len() + 1 > T::MaxBlockTransactions::get() as usize { return Err(Error::::TooManyTransactions) } @@ -297,15 +297,15 @@ pub mod pallet { ) -> DispatchResultWithPostInfo { ensure_none(origin)?; ensure!(!ProofChecked::::get(), Error::::DoubleCheck); - let number = >::block_number(); - let period = >::get(); + let number = frame_system::Pallet::::block_number(); + let period = StoragePeriod::::get(); let target_number = number.saturating_sub(period); ensure!(!target_number.is_zero(), Error::::UnexpectedProof); - let total_chunks = >::get(target_number); + let total_chunks = ChunkCount::::get(target_number); ensure!(total_chunks != 0, Error::::UnexpectedProof); - let parent_hash = >::parent_hash(); + let parent_hash = frame_system::Pallet::::parent_hash(); let selected_chunk_index = random_chunk(parent_hash.as_ref(), total_chunks); - let (info, chunk_index) = match >::get(target_number) { + let (info, chunk_index) = match Transactions::::get(target_number) { Some(infos) => { let index = match infos .binary_search_by_key(&selected_chunk_index, |info| info.block_chunks) @@ -349,8 +349,7 @@ pub mod pallet { /// Collection of transaction metadata by block number. #[pallet::storage] - #[pallet::getter(fn transaction_roots)] - pub(super) type Transactions = StorageMap< + pub type Transactions = StorageMap< _, Blake2_128Concat, BlockNumberFor, @@ -360,32 +359,30 @@ pub mod pallet { /// Count indexed chunks for each block. #[pallet::storage] - pub(super) type ChunkCount = + pub type ChunkCount = StorageMap<_, Blake2_128Concat, BlockNumberFor, u32, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn byte_fee)] /// Storage fee per byte. - pub(super) type ByteFee = StorageValue<_, BalanceOf>; + pub type ByteFee = StorageValue<_, BalanceOf>; #[pallet::storage] - #[pallet::getter(fn entry_fee)] /// Storage fee per transaction. - pub(super) type EntryFee = StorageValue<_, BalanceOf>; + pub type EntryFee = StorageValue<_, BalanceOf>; /// Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD` /// for block authoring. #[pallet::storage] - pub(super) type StoragePeriod = StorageValue<_, BlockNumberFor, ValueQuery>; + pub type StoragePeriod = StorageValue<_, BlockNumberFor, ValueQuery>; // Intermediates #[pallet::storage] - pub(super) type BlockTransactions = + pub type BlockTransactions = StorageValue<_, BoundedVec, ValueQuery>; /// Was the proof checked in this block? #[pallet::storage] - pub(super) type ProofChecked = StorageValue<_, bool, ValueQuery>; + pub type ProofChecked = StorageValue<_, bool, ValueQuery>; #[pallet::genesis_config] pub struct GenesisConfig { @@ -407,9 +404,9 @@ pub mod pallet { #[pallet::genesis_build] impl BuildGenesisConfig for GenesisConfig { fn build(&self) { - >::put(&self.byte_fee); - >::put(&self.entry_fee); - >::put(&self.storage_period); + ByteFee::::put(&self.byte_fee); + EntryFee::::put(&self.entry_fee); + StoragePeriod::::put(&self.storage_period); } } @@ -439,6 +436,21 @@ pub mod pallet { } impl Pallet { + /// Get transaction storage information from outside of this pallet. + pub fn transaction_roots( + block: BlockNumberFor, + ) -> Option> { + Transactions::::get(block) + } + /// Get ByteFee storage information from outside of this pallet. + pub fn byte_fee() -> Option> { + ByteFee::::get() + } + /// Get EntryFee storage information from outside of this pallet. + pub fn entry_fee() -> Option> { + EntryFee::::get() + } + fn apply_fee(sender: T::AccountId, size: u32) -> DispatchResult { let byte_fee = ByteFee::::get().ok_or(Error::::NotConfigured)?; let entry_fee = EntryFee::::get().ok_or(Error::::NotConfigured)?; diff --git a/substrate/frame/transaction-storage/src/tests.rs b/substrate/frame/transaction-storage/src/tests.rs index 621f74804ec..b725990e6e1 100644 --- a/substrate/frame/transaction-storage/src/tests.rs +++ b/substrate/frame/transaction-storage/src/tests.rs @@ -40,9 +40,9 @@ fn discards_data() { vec![0u8; 2000 as usize] )); let proof_provider = || { - let block_num = >::block_number(); + let block_num = frame_system::Pallet::::block_number(); if block_num == 11 { - let parent_hash = >::parent_hash(); + let parent_hash = frame_system::Pallet::::parent_hash(); Some( build_proof(parent_hash.as_ref(), vec![vec![0u8; 2000], vec![0u8; 2000]]) .unwrap(), @@ -92,7 +92,7 @@ fn checks_proof() { vec![0u8; MAX_DATA_SIZE as usize] )); run_to_block(10, || None); - let parent_hash = >::parent_hash(); + let parent_hash = frame_system::Pallet::::parent_hash(); let proof = build_proof(parent_hash.as_ref(), vec![vec![0u8; MAX_DATA_SIZE as usize]]).unwrap(); assert_noop!( @@ -100,7 +100,7 @@ fn checks_proof() { Error::::UnexpectedProof, ); run_to_block(11, || None); - let parent_hash = >::parent_hash(); + let parent_hash = frame_system::Pallet::::parent_hash(); let invalid_proof = build_proof(parent_hash.as_ref(), vec![vec![0u8; 1000]]).unwrap(); assert_noop!( @@ -132,9 +132,9 @@ fn renews_data() { )); assert_eq!(Balances::free_balance(1), 1_000_000_000 - 4000 * 2 - 200 * 2); let proof_provider = || { - let block_num = >::block_number(); + let block_num = frame_system::Pallet::::block_number(); if block_num == 11 || block_num == 16 { - let parent_hash = >::parent_hash(); + let parent_hash = frame_system::Pallet::::parent_hash(); Some(build_proof(parent_hash.as_ref(), vec![vec![0u8; 2000]]).unwrap()) } else { None -- GitLab From d3cdfc4469ca9884403d52c94f2cb14bc62e6697 Mon Sep 17 00:00:00 2001 From: Deepak Chaudhary <54492415+Aideepakchaudhary@users.noreply.github.com> Date: Sun, 7 Jul 2024 05:29:19 +0800 Subject: [PATCH 009/252] remove getter from babe pallet (#4912) ### ISSUE Link to the issue: https://github.com/paritytech/polkadot-sdk/issues/3326 cc @muraca Deliverables - [Deprecation] remove pallet::getter usage from all pallet-babe ### Test Outcomes ___ Successful tests by running `cargo test -p pallet-babe --features runtime-benchmarks` running 32 tests test mock::__pallet_staking_reward_curve_test_module::reward_curve_piece_count ... ok test mock::__construct_runtime_integrity_test::runtime_integrity_tests ... ok test mock::test_genesis_config_builds ... ok 2024-06-28T17:02:11.158812Z ERROR runtime::storage: Corrupted state at `0x1cb6f36e027abb2091cfb5110ab5087f9aab0a5b63b359512deee557c9f4cf63`: Error { cause: Some(Error { cause: None, desc: "Could not decode `NextConfigDescriptor`, variant doesn't exist" }), desc: "Could not decode `Option::Some(T)`" } 2024-06-28T17:02:11.159752Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::add_epoch_configurations_migration_works ... ok test tests::author_vrf_output_for_secondary_vrf ... ok test benchmarking::bench_check_equivocation_proof ... ok 2024-06-28T17:02:11.160537Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::can_estimate_current_epoch_progress ... ok test tests::author_vrf_output_for_primary ... ok test tests::authority_index ... ok 2024-06-28T17:02:11.162327Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::empty_randomness_is_correct ... ok test tests::check_module ... ok 2024-06-28T17:02:11.163492Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::current_slot_is_processed_on_initialization ... ok test tests::can_enact_next_config ... ok 2024-06-28T17:02:11.164987Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.165007Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::can_predict_next_epoch_change ... ok test tests::first_block_epoch_zero_start ... ok test tests::initial_values ... ok 2024-06-28T17:02:11.168430Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.168685Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.170982Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.171220Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::only_root_can_enact_config_change ... ok test tests::no_author_vrf_output_for_secondary_plain ... ok test tests::can_fetch_current_and_next_epoch_data ... ok 2024-06-28T17:02:11.172960Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::report_equivocation_has_valid_weight ... ok 2024-06-28T17:02:11.173873Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.177084Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::report_equivocation_after_skipped_epochs_works ... 2024-06-28T17:02:11.177694Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.177703Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.177925Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.177927Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 ok 2024-06-28T17:02:11.179678Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.181446Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.183665Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.183874Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.185732Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.185951Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.189332Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.189559Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.189587Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::generate_equivocation_report_blob ... ok test tests::disabled_validators_cannot_author_blocks - should panic ... ok 2024-06-28T17:02:11.190552Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.192279Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.194735Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.196136Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.197240Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::skipping_over_epochs_works ... ok 2024-06-28T17:02:11.202783Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.202846Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.203029Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.205242Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::tracks_block_numbers_when_current_and_previous_epoch_started ... ok 2024-06-28T17:02:11.208965Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::report_equivocation_current_session_works ... ok test tests::report_equivocation_invalid_key_owner_proof ... ok 2024-06-28T17:02:11.216431Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 2024-06-28T17:02:11.216855Z ERROR runtime::timestamp: `pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0 test tests::report_equivocation_validate_unsigned_prevents_duplicates ... ok test tests::report_equivocation_invalid_equivocation_proof ... ok test tests::valid_equivocation_reports_dont_pay_fees ... ok test tests::report_equivocation_old_session_works ... ok test mock::__pallet_staking_reward_curve_test_module::reward_curve_precision ... ok test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s Doc-tests pallet-babe running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s --- Polkadot Address: 16htXkeVhfroBhL6nuqiwknfXKcT6WadJPZqEi2jRf9z4XPY --- prdoc/pr_4912.prdoc | 15 +++++ substrate/frame/babe/src/lib.rs | 99 ++++++++++++++++++++----------- substrate/frame/babe/src/mock.rs | 5 +- substrate/frame/babe/src/tests.rs | 72 +++++++++++----------- 4 files changed, 119 insertions(+), 72 deletions(-) create mode 100644 prdoc/pr_4912.prdoc diff --git a/prdoc/pr_4912.prdoc b/prdoc/pr_4912.prdoc new file mode 100644 index 00000000000..dd96054b81f --- /dev/null +++ b/prdoc/pr_4912.prdoc @@ -0,0 +1,15 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Removed `pallet::getter` usage from the pallet-babe + +doc: + - audience: Runtime Dev + description: | + This PR removed `pallet::getter`s from `pallet-babe`s storage items. + When accessed inside the pallet, use the syntax `StorageItem::::get()`. + When accessed outside the pallet, use the public functions of storage. + +crates: + - name: pallet-babe + bump: minor diff --git a/substrate/frame/babe/src/lib.rs b/substrate/frame/babe/src/lib.rs index 686ba6ec2d6..9e16f1d0951 100644 --- a/substrate/frame/babe/src/lib.rs +++ b/substrate/frame/babe/src/lib.rs @@ -96,11 +96,11 @@ pub struct SameAuthoritiesForever; impl EpochChangeTrigger for SameAuthoritiesForever { fn trigger(now: BlockNumberFor) { - if >::should_epoch_change(now) { - let authorities = >::authorities(); + if Pallet::::should_epoch_change(now) { + let authorities = Authorities::::get(); let next_authorities = authorities.clone(); - >::enact_epoch_change(authorities, next_authorities, None); + Pallet::::enact_epoch_change(authorities, next_authorities, None); } } } @@ -185,12 +185,10 @@ pub mod pallet { /// Current epoch index. #[pallet::storage] - #[pallet::getter(fn epoch_index)] pub type EpochIndex = StorageValue<_, u64, ValueQuery>; /// Current epoch authorities. #[pallet::storage] - #[pallet::getter(fn authorities)] pub type Authorities = StorageValue< _, WeakBoundedVec<(AuthorityId, BabeAuthorityWeight), T::MaxAuthorities>, @@ -200,12 +198,10 @@ pub mod pallet { /// The slot at which the first epoch actually started. This is 0 /// until the first block of the chain. #[pallet::storage] - #[pallet::getter(fn genesis_slot)] pub type GenesisSlot = StorageValue<_, Slot, ValueQuery>; /// Current slot number. #[pallet::storage] - #[pallet::getter(fn current_slot)] pub type CurrentSlot = StorageValue<_, Slot, ValueQuery>; /// The epoch randomness for the *current* epoch. @@ -222,20 +218,19 @@ pub mod pallet { // array size because the metadata API currently doesn't resolve the // variable to its underlying value. #[pallet::storage] - #[pallet::getter(fn randomness)] pub type Randomness = StorageValue<_, BabeRandomness, ValueQuery>; /// Pending epoch configuration change that will be applied when the next epoch is enacted. #[pallet::storage] - pub(super) type PendingEpochConfigChange = StorageValue<_, NextConfigDescriptor>; + pub type PendingEpochConfigChange = StorageValue<_, NextConfigDescriptor>; /// Next epoch randomness. #[pallet::storage] - pub(super) type NextRandomness = StorageValue<_, BabeRandomness, ValueQuery>; + pub type NextRandomness = StorageValue<_, BabeRandomness, ValueQuery>; /// Next epoch authorities. #[pallet::storage] - pub(super) type NextAuthorities = StorageValue< + pub type NextAuthorities = StorageValue< _, WeakBoundedVec<(AuthorityId, BabeAuthorityWeight), T::MaxAuthorities>, ValueQuery, @@ -251,11 +246,11 @@ pub mod pallet { /// We reset all segments and return to `0` at the beginning of every /// epoch. #[pallet::storage] - pub(super) type SegmentIndex = StorageValue<_, u32, ValueQuery>; + pub type SegmentIndex = StorageValue<_, u32, ValueQuery>; /// TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay. #[pallet::storage] - pub(super) type UnderConstruction = StorageMap< + pub type UnderConstruction = StorageMap< _, Twox64Concat, u32, @@ -266,16 +261,14 @@ pub mod pallet { /// Temporary value (cleared at block finalization) which is `Some` /// if per-block initialization has already been called for current block. #[pallet::storage] - #[pallet::getter(fn initialized)] - pub(super) type Initialized = StorageValue<_, Option>; + pub type Initialized = StorageValue<_, Option>; /// This field should always be populated during block processing unless /// secondary plain slots are enabled (which don't contain a VRF output). /// /// It is set in `on_finalize`, before it will contain the value from the last block. #[pallet::storage] - #[pallet::getter(fn author_vrf_randomness)] - pub(super) type AuthorVrfRandomness = StorageValue<_, Option, ValueQuery>; + pub type AuthorVrfRandomness = StorageValue<_, Option, ValueQuery>; /// The block numbers when the last and current epoch have started, respectively `N-1` and /// `N`. @@ -292,19 +285,17 @@ pub mod pallet { /// on block finalization. Querying this storage entry outside of block /// execution context should always yield zero. #[pallet::storage] - #[pallet::getter(fn lateness)] - pub(super) type Lateness = StorageValue<_, BlockNumberFor, ValueQuery>; + pub type Lateness = StorageValue<_, BlockNumberFor, ValueQuery>; /// The configuration for the current epoch. Should never be `None` as it is initialized in /// genesis. #[pallet::storage] - #[pallet::getter(fn epoch_config)] - pub(super) type EpochConfig = StorageValue<_, BabeEpochConfiguration>; + pub type EpochConfig = StorageValue<_, BabeEpochConfiguration>; /// The configuration for the next epoch, `None` if the config will not change /// (you can fallback to `EpochConfig` instead in that case). #[pallet::storage] - pub(super) type NextEpochConfig = StorageValue<_, BabeEpochConfiguration>; + pub type NextEpochConfig = StorageValue<_, BabeEpochConfiguration>; /// A list of the last 100 skipped epochs and the corresponding session index /// when the epoch was skipped. @@ -315,8 +306,7 @@ pub mod pallet { /// a validator was the owner of a given key on a given session, and what the /// active epoch index was during that session. #[pallet::storage] - #[pallet::getter(fn skipped_epochs)] - pub(super) type SkippedEpochs = + pub type SkippedEpochs = StorageValue<_, BoundedVec<(u64, SessionIndex), ConstU32<100>>, ValueQuery>; #[derive(frame_support::DefaultNoBound)] @@ -368,7 +358,7 @@ pub mod pallet { .and_then(|(authority, _)| { let public = authority.as_inner_ref(); let transcript = sp_consensus_babe::make_vrf_transcript( - &Self::randomness(), + &Randomness::::get(), CurrentSlot::::get(), EpochIndex::::get(), ); @@ -510,7 +500,7 @@ impl FindAuthor for Pallet { impl IsMember for Pallet { fn is_member(authority_id: &AuthorityId) -> bool { - >::authorities().iter().any(|id| &id.0 == authority_id) + Authorities::::get().iter().any(|id| &id.0 == authority_id) } } @@ -526,6 +516,47 @@ impl pallet_session::ShouldEndSession> for Pallet Pallet { + /// Public function to access epoch_index storage. + pub fn epoch_index() -> u64 { + EpochIndex::::get() + } + /// Public function to access authorities storage. + pub fn authorities() -> WeakBoundedVec<(AuthorityId, BabeAuthorityWeight), T::MaxAuthorities> { + Authorities::::get() + } + /// Public function to access genesis_slot storage. + pub fn genesis_slot() -> Slot { + GenesisSlot::::get() + } + /// Public function to access current_slot storage. + pub fn current_slot() -> Slot { + CurrentSlot::::get() + } + /// Public function to access randomness storage. + pub fn randomness() -> BabeRandomness { + Randomness::::get() + } + /// Public function to access initialized storage. + pub fn initialized() -> Option> { + Initialized::::get() + } + /// Public function to access author_vrf_randomness storage. + pub fn author_vrf_randomness() -> Option { + AuthorVrfRandomness::::get() + } + /// Public function to access lateness storage. + pub fn lateness() -> BlockNumberFor { + Lateness::::get() + } + /// Public function to access epoch_config storage. + pub fn epoch_config() -> Option { + EpochConfig::::get() + } + /// Public function to access skipped_epochs storage. + pub fn skipped_epochs() -> BoundedVec<(u64, SessionIndex), ConstU32<100>> { + SkippedEpochs::::get() + } + /// Determine the BABE slot duration based on the Timestamp module configuration. pub fn slot_duration() -> T::Moment { // we double the minimum block-period so each author can always propose within @@ -588,7 +619,7 @@ impl Pallet { ) { // PRECONDITION: caller has done initialization and is guaranteed // by the session module to be called before this. - debug_assert!(Self::initialized().is_some()); + debug_assert!(Initialized::::get().is_some()); if authorities.is_empty() { log::warn!(target: LOG_TARGET, "Ignoring empty epoch change."); @@ -655,7 +686,7 @@ impl Pallet { NextAuthorities::::put(&next_authorities); // Update the start blocks of the previous and new current epoch. - >::mutate(|(previous_epoch_start_block, current_epoch_start_block)| { + EpochStart::::mutate(|(previous_epoch_start_block, current_epoch_start_block)| { *previous_epoch_start_block = sp_std::mem::take(current_epoch_start_block); *current_epoch_start_block = >::block_number(); }); @@ -701,8 +732,8 @@ impl Pallet { epoch_index: EpochIndex::::get(), start_slot: Self::current_epoch_start(), duration: T::EpochDuration::get(), - authorities: Self::authorities().into_inner(), - randomness: Self::randomness(), + authorities: Authorities::::get().into_inner(), + randomness: Randomness::::get(), config: EpochConfig::::get() .expect("EpochConfig is initialized in genesis; we never `take` or `kill` it; qed"), } @@ -779,8 +810,8 @@ impl Pallet { // we use the same values as genesis because we haven't collected any // randomness yet. let next = NextEpochDescriptor { - authorities: Self::authorities().into_inner(), - randomness: Self::randomness(), + authorities: Authorities::::get().into_inner(), + randomness: Randomness::::get(), }; Self::deposit_consensus(ConsensusLog::NextEpochData(next)); @@ -789,7 +820,7 @@ impl Pallet { fn initialize(now: BlockNumberFor) { // since `initialize` can be called twice (e.g. if session module is present) // let's ensure that we only do the initialization once per block - let initialized = Self::initialized().is_some(); + let initialized = Initialized::::get().is_some(); if initialized { return } @@ -940,7 +971,7 @@ impl frame_support::traits::EstimateNextSessionRotation frame_support::traits::Lateness> for Pallet { fn lateness(&self) -> BlockNumberFor { - Self::lateness() + Lateness::::get() } } diff --git a/substrate/frame/babe/src/mock.rs b/substrate/frame/babe/src/mock.rs index be38e3e7e5d..e193a2e3b64 100644 --- a/substrate/frame/babe/src/mock.rs +++ b/substrate/frame/babe/src/mock.rs @@ -213,7 +213,7 @@ pub fn go_to_block(n: u64, s: u64) { /// Slots will grow accordingly to blocks pub fn progress_to_block(n: u64) { - let mut slot = u64::from(Babe::current_slot()) + 1; + let mut slot = u64::from(CurrentSlot::::get()) + 1; for i in System::block_number() + 1..=n { go_to_block(i, slot); slot += 1; @@ -272,7 +272,8 @@ pub fn make_vrf_signature_and_randomness( slot: Slot, pair: &sp_consensus_babe::AuthorityPair, ) -> (VrfSignature, Randomness) { - let transcript = sp_consensus_babe::make_vrf_transcript(&Babe::randomness(), slot, 0); + let transcript = + sp_consensus_babe::make_vrf_transcript(&pallet_babe::Randomness::::get(), slot, 0); let randomness = pair.as_ref().make_bytes(sp_consensus_babe::RANDOMNESS_VRF_CONTEXT, &transcript); diff --git a/substrate/frame/babe/src/tests.rs b/substrate/frame/babe/src/tests.rs index e65f1844f88..b9a214ca105 100644 --- a/substrate/frame/babe/src/tests.rs +++ b/substrate/frame/babe/src/tests.rs @@ -43,7 +43,7 @@ fn empty_randomness_is_correct() { #[test] fn initial_values() { - new_test_ext(4).execute_with(|| assert_eq!(Babe::authorities().len(), 4)) + new_test_ext(4).execute_with(|| assert_eq!(Authorities::::get().len(), 4)) } #[test] @@ -68,25 +68,25 @@ fn first_block_epoch_zero_start() { let pre_digest = make_primary_pre_digest(0, genesis_slot, vrf_signature); - assert_eq!(Babe::genesis_slot(), Slot::from(0)); + assert_eq!(GenesisSlot::::get(), Slot::from(0)); System::reset_events(); System::initialize(&1, &Default::default(), &pre_digest); // see implementation of the function for details why: we issue an // epoch-change digest but don't do it via the normal session mechanism. assert!(!Babe::should_end_session(1)); - assert_eq!(Babe::genesis_slot(), genesis_slot); - assert_eq!(Babe::current_slot(), genesis_slot); - assert_eq!(Babe::epoch_index(), 0); + assert_eq!(GenesisSlot::::get(), genesis_slot); + assert_eq!(CurrentSlot::::get(), genesis_slot); + assert_eq!(EpochIndex::::get(), 0); Babe::on_finalize(1); let header = System::finalize(); - assert_eq!(Babe::author_vrf_randomness(), Some(vrf_randomness)); + assert_eq!(AuthorVrfRandomness::::get(), Some(vrf_randomness)); assert_eq!(SegmentIndex::::get(), 0); assert_eq!(UnderConstruction::::get(0), vec![vrf_randomness]); - assert_eq!(Babe::randomness(), [0; 32]); - assert_eq!(Babe::author_vrf_randomness(), Some(vrf_randomness)); + assert_eq!(Randomness::::get(), [0; 32]); + assert_eq!(AuthorVrfRandomness::::get(), Some(vrf_randomness)); assert_eq!(NextRandomness::::get(), [0; 32]); assert_eq!(header.digest.logs.len(), 2); @@ -95,8 +95,8 @@ fn first_block_epoch_zero_start() { let consensus_log = sp_consensus_babe::ConsensusLog::NextEpochData( sp_consensus_babe::digests::NextEpochDescriptor { - authorities: Babe::authorities().into_inner(), - randomness: Babe::randomness(), + authorities: Authorities::::get().into_inner(), + randomness: Randomness::::get(), }, ); let consensus_digest = DigestItem::Consensus(BABE_ENGINE_ID, consensus_log.encode()); @@ -118,19 +118,19 @@ fn current_slot_is_processed_on_initialization() { System::reset_events(); System::initialize(&1, &Default::default(), &pre_digest); - assert_eq!(Babe::current_slot(), Slot::from(0)); - assert!(Babe::initialized().is_none()); + assert_eq!(CurrentSlot::::get(), Slot::from(0)); + assert!(Initialized::::get().is_none()); // current slot is updated on initialization Babe::initialize(1); - assert_eq!(Babe::current_slot(), genesis_slot); - assert!(Babe::initialized().is_some()); + assert_eq!(CurrentSlot::::get(), genesis_slot); + assert!(Initialized::::get().is_some()); // but author vrf randomness isn't - assert_eq!(Babe::author_vrf_randomness(), None); + assert_eq!(AuthorVrfRandomness::::get(), None); // instead it is updated on block finalization Babe::on_finalize(1); - assert_eq!(Babe::author_vrf_randomness(), Some(vrf_randomness)); + assert_eq!(AuthorVrfRandomness::::get(), Some(vrf_randomness)); }) } @@ -151,16 +151,16 @@ where // author vrf randomness is not updated on initialization Babe::initialize(1); - assert_eq!(Babe::author_vrf_randomness(), None); + assert_eq!(AuthorVrfRandomness::::get(), None); // instead it is updated on block finalization to account for any // epoch changes that might happen during the block Babe::on_finalize(1); - assert_eq!(Babe::author_vrf_randomness(), Some(vrf_randomness)); + assert_eq!(AuthorVrfRandomness::::get(), Some(vrf_randomness)); // and it is kept after finalizing the block System::finalize(); - assert_eq!(Babe::author_vrf_randomness(), Some(vrf_randomness)); + assert_eq!(AuthorVrfRandomness::::get(), Some(vrf_randomness)); }) } @@ -182,14 +182,14 @@ fn no_author_vrf_output_for_secondary_plain() { System::reset_events(); System::initialize(&1, &Default::default(), &secondary_plain_pre_digest); - assert_eq!(Babe::author_vrf_randomness(), None); + assert_eq!(AuthorVrfRandomness::::get(), None); Babe::initialize(1); - assert_eq!(Babe::author_vrf_randomness(), None); + assert_eq!(AuthorVrfRandomness::::get(), None); Babe::on_finalize(1); System::finalize(); - assert_eq!(Babe::author_vrf_randomness(), None); + assert_eq!(AuthorVrfRandomness::::get(), None); }) } @@ -210,14 +210,14 @@ fn can_predict_next_epoch_change() { assert_eq!(::EpochDuration::get(), 3); // this sets the genesis slot to 6; go_to_block(1, 6); - assert_eq!(*Babe::genesis_slot(), 6); - assert_eq!(*Babe::current_slot(), 6); - assert_eq!(Babe::epoch_index(), 0); + assert_eq!(*GenesisSlot::::get(), 6); + assert_eq!(*CurrentSlot::::get(), 6); + assert_eq!(EpochIndex::::get(), 0); progress_to_block(5); - assert_eq!(Babe::epoch_index(), 5 / 3); - assert_eq!(*Babe::current_slot(), 10); + assert_eq!(EpochIndex::::get(), 5 / 3); + assert_eq!(*CurrentSlot::::get(), 10); // next epoch change will be at assert_eq!(*Babe::current_epoch_start(), 9); // next change will be 12, 2 slots from now @@ -266,9 +266,9 @@ fn can_enact_next_config() { assert_eq!(::EpochDuration::get(), 3); // this sets the genesis slot to 6; go_to_block(1, 6); - assert_eq!(*Babe::genesis_slot(), 6); - assert_eq!(*Babe::current_slot(), 6); - assert_eq!(Babe::epoch_index(), 0); + assert_eq!(*GenesisSlot::::get(), 6); + assert_eq!(*CurrentSlot::::get(), 6); + assert_eq!(EpochIndex::::get(), 0); go_to_block(2, 7); let current_config = BabeEpochConfiguration { @@ -431,7 +431,7 @@ fn report_equivocation_current_session_works() { ext.execute_with(|| { start_era(1); - let authorities = Babe::authorities(); + let authorities = Authorities::::get(); let validators = Session::validators(); // make sure that all authorities have the same balance @@ -508,7 +508,7 @@ fn report_equivocation_old_session_works() { ext.execute_with(|| { start_era(1); - let authorities = Babe::authorities(); + let authorities = Authorities::::get(); // we will use the validator at index 0 as the offending authority let offending_validator_index = 1; @@ -566,7 +566,7 @@ fn report_equivocation_invalid_key_owner_proof() { ext.execute_with(|| { start_era(1); - let authorities = Babe::authorities(); + let authorities = Authorities::::get(); // we will use the validator at index 0 as the offending authority let offending_validator_index = 0; @@ -629,7 +629,7 @@ fn report_equivocation_invalid_equivocation_proof() { ext.execute_with(|| { start_era(1); - let authorities = Babe::authorities(); + let authorities = Authorities::::get(); // we will use the validator at index 0 as the offending authority let offending_validator_index = 0; @@ -734,7 +734,7 @@ fn report_equivocation_validate_unsigned_prevents_duplicates() { ext.execute_with(|| { start_era(1); - let authorities = Babe::authorities(); + let authorities = Authorities::::get(); // generate and report an equivocation for the validator at index 0 let offending_validator_index = 0; @@ -848,7 +848,7 @@ fn report_equivocation_after_skipped_epochs_works() { assert_eq!(SkippedEpochs::::get(), vec![(10, 1)]); // generate an equivocation proof for validator at index 1 - let authorities = Babe::authorities(); + let authorities = Authorities::::get(); let offending_validator_index = 1; let offending_authority_pair = pairs .into_iter() -- GitLab From f7dd85d053dc44ee0a6851e7e507083f31b01bd3 Mon Sep 17 00:00:00 2001 From: Muharem Date: Sun, 7 Jul 2024 13:45:16 +0200 Subject: [PATCH 010/252] Assets: can_decrease/increase for destroying asset is not successful (#3286) Functions `can_decrease` and `can_increase` do not return successful consequence results for assets undergoing destruction; instead, they return the `UnknownAsset` consequence variant. This update aligns their behavior with similar functions, such as `reducible_balance`, `increase_balance`, `decrease_balance`, and `burn`, which return an `AssetNotLive` error for assets in the process of being destroyed. --- prdoc/pr_3286.prdoc | 16 +++++++++++ substrate/frame/assets/src/functions.rs | 6 +++++ substrate/frame/assets/src/tests.rs | 35 ++++++++++++++++++++++++- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 prdoc/pr_3286.prdoc diff --git a/prdoc/pr_3286.prdoc b/prdoc/pr_3286.prdoc new file mode 100644 index 00000000000..6ec3f6552a4 --- /dev/null +++ b/prdoc/pr_3286.prdoc @@ -0,0 +1,16 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "Assets: can_decrease/increase for destroying asset is not successful" + +doc: + - audience: Runtime Dev + description: | + Functions `can_decrease` and `can_increase` do not return successful consequence results + for assets undergoing destruction; instead, they return the `UnknownAsset` consequence variant. + This update aligns their behavior with similar functions, such as `reducible_balance`, + `increase_balance`, `decrease_balance`, and `burn`, which return an `AssetNotLive` error + for assets in the process of being destroyed. + +crates: + - name: pallet-assets diff --git a/substrate/frame/assets/src/functions.rs b/substrate/frame/assets/src/functions.rs index 2fb8aee1a97..1e4a9522759 100644 --- a/substrate/frame/assets/src/functions.rs +++ b/substrate/frame/assets/src/functions.rs @@ -132,6 +132,9 @@ impl, I: 'static> Pallet { Some(details) => details, None => return DepositConsequence::UnknownAsset, }; + if details.status == AssetStatus::Destroying { + return DepositConsequence::UnknownAsset + } if increase_supply && details.supply.checked_add(&amount).is_none() { return DepositConsequence::Overflow } @@ -175,6 +178,9 @@ impl, I: 'static> Pallet { if details.status == AssetStatus::Frozen { return Frozen } + if details.status == AssetStatus::Destroying { + return UnknownAsset + } if amount.is_zero() { return Success } diff --git a/substrate/frame/assets/src/tests.rs b/substrate/frame/assets/src/tests.rs index 62106d47a15..c751fbdcaf1 100644 --- a/substrate/frame/assets/src/tests.rs +++ b/substrate/frame/assets/src/tests.rs @@ -22,7 +22,11 @@ use crate::{mock::*, Error}; use frame_support::{ assert_noop, assert_ok, dispatch::GetDispatchInfo, - traits::{fungibles::InspectEnumerable, tokens::Preservation::Protect, Currency}, + traits::{ + fungibles::InspectEnumerable, + tokens::{Preservation::Protect, Provenance}, + Currency, + }, }; use pallet_balances::Error as BalancesError; use sp_io::storage; @@ -1778,6 +1782,35 @@ fn asset_destroy_refund_existence_deposit() { }); } +#[test] +fn increasing_or_decreasing_destroying_asset_should_not_work() { + new_test_ext().execute_with(|| { + use frame_support::traits::fungibles::Inspect; + + let admin = 1; + let admin_origin = RuntimeOrigin::signed(admin); + + assert_ok!(Assets::force_create(RuntimeOrigin::root(), 0, admin, true, 1)); + assert_ok!(Assets::mint(RuntimeOrigin::signed(1), 0, 1, 100)); + assert_eq!(Assets::balance(0, 1), 100); + + assert_eq!(Assets::can_deposit(0, &1, 10, Provenance::Extant), DepositConsequence::Success); + assert_eq!(Assets::can_withdraw(0, &1, 10), WithdrawConsequence::<_>::Success); + assert_eq!(Assets::can_increase(0, &1, 10, false), DepositConsequence::Success); + assert_eq!(Assets::can_decrease(0, &1, 10, false), WithdrawConsequence::<_>::Success); + + assert_ok!(Assets::start_destroy(admin_origin, 0)); + + assert_eq!( + Assets::can_deposit(0, &1, 10, Provenance::Extant), + DepositConsequence::UnknownAsset + ); + assert_eq!(Assets::can_withdraw(0, &1, 10), WithdrawConsequence::<_>::UnknownAsset); + assert_eq!(Assets::can_increase(0, &1, 10, false), DepositConsequence::UnknownAsset); + assert_eq!(Assets::can_decrease(0, &1, 10, false), WithdrawConsequence::<_>::UnknownAsset); + }); +} + #[test] fn asset_id_cannot_be_reused() { new_test_ext().execute_with(|| { -- GitLab From e1460b5ee5f4490b428035aa4a72c1c99a262459 Mon Sep 17 00:00:00 2001 From: Egor_P Date: Mon, 8 Jul 2024 09:40:58 +0200 Subject: [PATCH 011/252] [Backport] Version bumps and prdocs reordering from 1.14.0 (#4955) This PR backports regular version bumps and prdocs reordering from the 1.14.0 release branch to master --- cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs | 2 +- cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs | 2 +- .../runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs | 2 +- .../runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs | 2 +- .../runtimes/collectives/collectives-westend/src/lib.rs | 2 +- .../parachains/runtimes/contracts/contracts-rococo/src/lib.rs | 2 +- cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs | 2 +- .../parachains/runtimes/coretime/coretime-westend/src/lib.rs | 2 +- cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs | 2 +- cumulus/parachains/runtimes/people/people-rococo/src/lib.rs | 2 +- cumulus/parachains/runtimes/people/people-westend/src/lib.rs | 2 +- cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs | 2 +- polkadot/node/primitives/src/lib.rs | 2 +- polkadot/runtime/rococo/src/lib.rs | 2 +- polkadot/runtime/westend/src/lib.rs | 2 +- prdoc/{ => 1.14.0}/pr_1631.prdoc | 0 prdoc/{ => 1.14.0}/pr_3374.prdoc | 0 prdoc/{ => 1.14.0}/pr_3679.prdoc | 0 prdoc/{ => 1.14.0}/pr_3820.prdoc | 0 prdoc/{ => 1.14.0}/pr_3828.prdoc | 0 prdoc/{ => 1.14.0}/pr_3843.prdoc | 0 prdoc/{ => 1.14.0}/pr_3940.prdoc | 0 prdoc/{ => 1.14.0}/pr_3951.prdoc | 0 prdoc/{ => 1.14.0}/pr_4513.prdoc | 0 prdoc/{ => 1.14.0}/pr_4596.prdoc | 0 prdoc/{ => 1.14.0}/pr_4618.prdoc | 0 prdoc/{ => 1.14.0}/pr_4662.prdoc | 0 prdoc/{ => 1.14.0}/pr_4684.prdoc | 0 prdoc/{ => 1.14.0}/pr_4685.prdoc | 0 prdoc/{ => 1.14.0}/pr_4691.prdoc | 0 prdoc/{ => 1.14.0}/pr_4710.prdoc | 0 prdoc/{ => 1.14.0}/pr_4724.prdoc | 0 prdoc/{ => 1.14.0}/pr_4728.prdoc | 0 prdoc/{ => 1.14.0}/pr_4730.prdoc | 0 prdoc/{ => 1.14.0}/pr_4733.prdoc | 0 prdoc/{ => 1.14.0}/pr_4756.prdoc | 0 prdoc/{ => 1.14.0}/pr_4757.prdoc | 0 prdoc/{ => 1.14.0}/pr_4765.prdoc | 0 prdoc/{ => 1.14.0}/pr_4769.prdoc | 0 prdoc/{ => 1.14.0}/pr_4799.prdoc | 0 prdoc/{ => 1.14.0}/pr_4802.prdoc | 0 prdoc/{ => 1.14.0}/pr_4807.prdoc | 0 prdoc/{ => 1.14.0}/pr_4823.prdoc | 0 prdoc/{ => 1.14.0}/pr_4831.prdoc | 0 prdoc/{ => 1.14.0}/pr_4833.prdoc | 0 prdoc/{ => 1.14.0}/pr_4844.prdoc | 0 prdoc/{ => 1.14.0}/pr_4857.prdoc | 0 prdoc/{ => 1.14.0}/pr_4865.prdoc | 0 prdoc/{ => 1.14.0}/pr_4877.prdoc | 0 49 files changed, 15 insertions(+), 15 deletions(-) rename prdoc/{ => 1.14.0}/pr_1631.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_3374.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_3679.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_3820.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_3828.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_3843.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_3940.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_3951.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4513.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4596.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4618.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4662.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4684.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4685.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4691.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4710.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4724.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4728.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4730.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4733.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4756.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4757.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4765.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4769.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4799.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4802.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4807.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4823.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4831.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4833.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4844.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4857.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4865.prdoc (100%) rename prdoc/{ => 1.14.0}/pr_4877.prdoc (100%) diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs index 836939f1af4..e8772c0b483 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs @@ -118,7 +118,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("statemine"), impl_name: create_runtime_str!("statemine"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 16, diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs index 14cae3b5396..55c8a9f0b26 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -117,7 +117,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("westmint"), impl_name: create_runtime_str!("westmint"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 16, diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs index 9aa1eeb1a4b..57ed5ec258d 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs @@ -214,7 +214,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("bridge-hub-rococo"), impl_name: create_runtime_str!("bridge-hub-rococo"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 5, diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs index 5d4e41bd706..05d6cdfd691 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs @@ -189,7 +189,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("bridge-hub-westend"), impl_name: create_runtime_str!("bridge-hub-westend"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 5, diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index 909d5dc6094..f37af88c284 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -122,7 +122,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("collectives-westend"), impl_name: create_runtime_str!("collectives-westend"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 6, diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs index ab779b31c72..d2fe0689f51 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs @@ -142,7 +142,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("contracts-rococo"), impl_name: create_runtime_str!("contracts-rococo"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 7, diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs index 17030da51ec..6e36539c7bf 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs @@ -144,7 +144,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("coretime-rococo"), impl_name: create_runtime_str!("coretime-rococo"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 2, diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs index 1bd7e143c1b..74fdd971f5c 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs @@ -143,7 +143,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("coretime-westend"), impl_name: create_runtime_str!("coretime-westend"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 2, diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index b8a328c3db6..a204bb7276c 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -100,7 +100,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("glutton-westend"), impl_name: create_runtime_str!("glutton-westend"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs index 63dd863a861..ff31aba8a27 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs @@ -132,7 +132,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("people-rococo"), impl_name: create_runtime_str!("people-rococo"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs index 84655972b0c..6adaa4b4e50 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs @@ -132,7 +132,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("people-westend"), impl_name: create_runtime_str!("people-westend"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs index bf45b437f8b..40f2b78ffd6 100644 --- a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs @@ -107,7 +107,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("test-parachain"), impl_name: create_runtime_str!("test-parachain"), authoring_version: 1, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 6, diff --git a/polkadot/node/primitives/src/lib.rs b/polkadot/node/primitives/src/lib.rs index ecf79eac288..660b504e97f 100644 --- a/polkadot/node/primitives/src/lib.rs +++ b/polkadot/node/primitives/src/lib.rs @@ -59,7 +59,7 @@ pub use disputes::{ /// relatively rare. /// /// The associated worker binaries should use the same version as the node that spawns them. -pub const NODE_VERSION: &'static str = "1.13.0"; +pub const NODE_VERSION: &'static str = "1.14.0"; // For a 16-ary Merkle Prefix Trie, we can expect at most 16 32-byte hashes per node // plus some overhead: diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs index 015e433382c..ef629c7dad1 100644 --- a/polkadot/runtime/rococo/src/lib.rs +++ b/polkadot/runtime/rococo/src/lib.rs @@ -163,7 +163,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("rococo"), impl_name: create_runtime_str!("parity-rococo-v2.0"), authoring_version: 0, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 26, diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index ca58a639010..0d7a8a6a4ac 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -159,7 +159,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("westend"), impl_name: create_runtime_str!("parity-westend"), authoring_version: 2, - spec_version: 1_013_000, + spec_version: 1_014_000, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 26, diff --git a/prdoc/pr_1631.prdoc b/prdoc/1.14.0/pr_1631.prdoc similarity index 100% rename from prdoc/pr_1631.prdoc rename to prdoc/1.14.0/pr_1631.prdoc diff --git a/prdoc/pr_3374.prdoc b/prdoc/1.14.0/pr_3374.prdoc similarity index 100% rename from prdoc/pr_3374.prdoc rename to prdoc/1.14.0/pr_3374.prdoc diff --git a/prdoc/pr_3679.prdoc b/prdoc/1.14.0/pr_3679.prdoc similarity index 100% rename from prdoc/pr_3679.prdoc rename to prdoc/1.14.0/pr_3679.prdoc diff --git a/prdoc/pr_3820.prdoc b/prdoc/1.14.0/pr_3820.prdoc similarity index 100% rename from prdoc/pr_3820.prdoc rename to prdoc/1.14.0/pr_3820.prdoc diff --git a/prdoc/pr_3828.prdoc b/prdoc/1.14.0/pr_3828.prdoc similarity index 100% rename from prdoc/pr_3828.prdoc rename to prdoc/1.14.0/pr_3828.prdoc diff --git a/prdoc/pr_3843.prdoc b/prdoc/1.14.0/pr_3843.prdoc similarity index 100% rename from prdoc/pr_3843.prdoc rename to prdoc/1.14.0/pr_3843.prdoc diff --git a/prdoc/pr_3940.prdoc b/prdoc/1.14.0/pr_3940.prdoc similarity index 100% rename from prdoc/pr_3940.prdoc rename to prdoc/1.14.0/pr_3940.prdoc diff --git a/prdoc/pr_3951.prdoc b/prdoc/1.14.0/pr_3951.prdoc similarity index 100% rename from prdoc/pr_3951.prdoc rename to prdoc/1.14.0/pr_3951.prdoc diff --git a/prdoc/pr_4513.prdoc b/prdoc/1.14.0/pr_4513.prdoc similarity index 100% rename from prdoc/pr_4513.prdoc rename to prdoc/1.14.0/pr_4513.prdoc diff --git a/prdoc/pr_4596.prdoc b/prdoc/1.14.0/pr_4596.prdoc similarity index 100% rename from prdoc/pr_4596.prdoc rename to prdoc/1.14.0/pr_4596.prdoc diff --git a/prdoc/pr_4618.prdoc b/prdoc/1.14.0/pr_4618.prdoc similarity index 100% rename from prdoc/pr_4618.prdoc rename to prdoc/1.14.0/pr_4618.prdoc diff --git a/prdoc/pr_4662.prdoc b/prdoc/1.14.0/pr_4662.prdoc similarity index 100% rename from prdoc/pr_4662.prdoc rename to prdoc/1.14.0/pr_4662.prdoc diff --git a/prdoc/pr_4684.prdoc b/prdoc/1.14.0/pr_4684.prdoc similarity index 100% rename from prdoc/pr_4684.prdoc rename to prdoc/1.14.0/pr_4684.prdoc diff --git a/prdoc/pr_4685.prdoc b/prdoc/1.14.0/pr_4685.prdoc similarity index 100% rename from prdoc/pr_4685.prdoc rename to prdoc/1.14.0/pr_4685.prdoc diff --git a/prdoc/pr_4691.prdoc b/prdoc/1.14.0/pr_4691.prdoc similarity index 100% rename from prdoc/pr_4691.prdoc rename to prdoc/1.14.0/pr_4691.prdoc diff --git a/prdoc/pr_4710.prdoc b/prdoc/1.14.0/pr_4710.prdoc similarity index 100% rename from prdoc/pr_4710.prdoc rename to prdoc/1.14.0/pr_4710.prdoc diff --git a/prdoc/pr_4724.prdoc b/prdoc/1.14.0/pr_4724.prdoc similarity index 100% rename from prdoc/pr_4724.prdoc rename to prdoc/1.14.0/pr_4724.prdoc diff --git a/prdoc/pr_4728.prdoc b/prdoc/1.14.0/pr_4728.prdoc similarity index 100% rename from prdoc/pr_4728.prdoc rename to prdoc/1.14.0/pr_4728.prdoc diff --git a/prdoc/pr_4730.prdoc b/prdoc/1.14.0/pr_4730.prdoc similarity index 100% rename from prdoc/pr_4730.prdoc rename to prdoc/1.14.0/pr_4730.prdoc diff --git a/prdoc/pr_4733.prdoc b/prdoc/1.14.0/pr_4733.prdoc similarity index 100% rename from prdoc/pr_4733.prdoc rename to prdoc/1.14.0/pr_4733.prdoc diff --git a/prdoc/pr_4756.prdoc b/prdoc/1.14.0/pr_4756.prdoc similarity index 100% rename from prdoc/pr_4756.prdoc rename to prdoc/1.14.0/pr_4756.prdoc diff --git a/prdoc/pr_4757.prdoc b/prdoc/1.14.0/pr_4757.prdoc similarity index 100% rename from prdoc/pr_4757.prdoc rename to prdoc/1.14.0/pr_4757.prdoc diff --git a/prdoc/pr_4765.prdoc b/prdoc/1.14.0/pr_4765.prdoc similarity index 100% rename from prdoc/pr_4765.prdoc rename to prdoc/1.14.0/pr_4765.prdoc diff --git a/prdoc/pr_4769.prdoc b/prdoc/1.14.0/pr_4769.prdoc similarity index 100% rename from prdoc/pr_4769.prdoc rename to prdoc/1.14.0/pr_4769.prdoc diff --git a/prdoc/pr_4799.prdoc b/prdoc/1.14.0/pr_4799.prdoc similarity index 100% rename from prdoc/pr_4799.prdoc rename to prdoc/1.14.0/pr_4799.prdoc diff --git a/prdoc/pr_4802.prdoc b/prdoc/1.14.0/pr_4802.prdoc similarity index 100% rename from prdoc/pr_4802.prdoc rename to prdoc/1.14.0/pr_4802.prdoc diff --git a/prdoc/pr_4807.prdoc b/prdoc/1.14.0/pr_4807.prdoc similarity index 100% rename from prdoc/pr_4807.prdoc rename to prdoc/1.14.0/pr_4807.prdoc diff --git a/prdoc/pr_4823.prdoc b/prdoc/1.14.0/pr_4823.prdoc similarity index 100% rename from prdoc/pr_4823.prdoc rename to prdoc/1.14.0/pr_4823.prdoc diff --git a/prdoc/pr_4831.prdoc b/prdoc/1.14.0/pr_4831.prdoc similarity index 100% rename from prdoc/pr_4831.prdoc rename to prdoc/1.14.0/pr_4831.prdoc diff --git a/prdoc/pr_4833.prdoc b/prdoc/1.14.0/pr_4833.prdoc similarity index 100% rename from prdoc/pr_4833.prdoc rename to prdoc/1.14.0/pr_4833.prdoc diff --git a/prdoc/pr_4844.prdoc b/prdoc/1.14.0/pr_4844.prdoc similarity index 100% rename from prdoc/pr_4844.prdoc rename to prdoc/1.14.0/pr_4844.prdoc diff --git a/prdoc/pr_4857.prdoc b/prdoc/1.14.0/pr_4857.prdoc similarity index 100% rename from prdoc/pr_4857.prdoc rename to prdoc/1.14.0/pr_4857.prdoc diff --git a/prdoc/pr_4865.prdoc b/prdoc/1.14.0/pr_4865.prdoc similarity index 100% rename from prdoc/pr_4865.prdoc rename to prdoc/1.14.0/pr_4865.prdoc diff --git a/prdoc/pr_4877.prdoc b/prdoc/1.14.0/pr_4877.prdoc similarity index 100% rename from prdoc/pr_4877.prdoc rename to prdoc/1.14.0/pr_4877.prdoc -- GitLab From 8af45d24ce10af123f59e66c0c235c698ac67d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Mon, 8 Jul 2024 16:02:48 +0200 Subject: [PATCH 012/252] sp-core: Improve docs generated by `generate_feature_enabled_macro` (#4968) Now: ![image](https://github.com/paritytech/polkadot-sdk/assets/5718007/01545872-e21b-48b9-9913-4b940ff3f361) Before: ![image](https://github.com/paritytech/polkadot-sdk/assets/5718007/09ae9fa4-eca8-43f7-a083-a4555e392610) We sadly can not remove the `_macro_name`, but this way we at least show the correct macro plus docs. --- substrate/primitives/core/src/lib.rs | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/substrate/primitives/core/src/lib.rs b/substrate/primitives/core/src/lib.rs index 098bd135bfe..78ec92e4be9 100644 --- a/substrate/primitives/core/src/lib.rs +++ b/substrate/primitives/core/src/lib.rs @@ -430,16 +430,7 @@ pub const MAX_POSSIBLE_ALLOCATION: u32 = 33554432; // 2^25 bytes, 32 MiB macro_rules! generate_feature_enabled_macro { ( $macro_name:ident, $feature_name:meta, $d:tt ) => { $crate::paste::paste!{ - /// Enable/disable the given code depending on - #[doc = concat!("`", stringify!($feature_name), "`")] - /// being enabled for the crate or not. - /// - /// # Example /// - /// ```nocompile - /// // Will add the code depending on the feature being enabled or not. - #[doc = concat!(stringify!($macro_name), "!( println!(\"Hello\") )")] - /// ``` #[cfg($feature_name)] #[macro_export] macro_rules! [<_ $macro_name>] { @@ -448,6 +439,13 @@ macro_rules! generate_feature_enabled_macro { } } + /// + #[cfg(not($feature_name))] + #[macro_export] + macro_rules! [<_ $macro_name>] { + ( $d ( $d input:tt )* ) => {}; + } + /// Enable/disable the given code depending on #[doc = concat!("`", stringify!($feature_name), "`")] /// being enabled for the crate or not. @@ -458,15 +456,8 @@ macro_rules! generate_feature_enabled_macro { /// // Will add the code depending on the feature being enabled or not. #[doc = concat!(stringify!($macro_name), "!( println!(\"Hello\") )")] /// ``` - #[cfg(not($feature_name))] - #[macro_export] - macro_rules! [<_ $macro_name>] { - ( $d ( $d input:tt )* ) => {}; - } - - // Work around for: - #[doc(hidden)] - pub use [<_ $macro_name>] as $macro_name; + // https://github.com/rust-lang/rust/pull/52234 + pub use [<_ $macro_name>] as $macro_name; } }; } -- GitLab From 7290042ad4975e9d42633f228e331f286397025e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Mon, 8 Jul 2024 16:19:25 +0200 Subject: [PATCH 013/252] Make `tracing::log` work in the runtime (#4863) Co-authored-by: command-bot <> --- Cargo.lock | 3 ++- prdoc/pr_4863.prdoc | 10 ++++++++++ substrate/primitives/runtime/Cargo.toml | 2 ++ substrate/primitives/runtime/src/runtime_logger.rs | 11 ++++++----- substrate/test-utils/runtime/Cargo.toml | 3 ++- substrate/test-utils/runtime/src/lib.rs | 6 +++++- 6 files changed, 27 insertions(+), 8 deletions(-) create mode 100644 prdoc/pr_4863.prdoc diff --git a/Cargo.lock b/Cargo.lock index 046f9a15bbd..df96a2140ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20511,6 +20511,7 @@ dependencies = [ "sp-tracing 16.0.0", "sp-weights", "substrate-test-runtime-client", + "tracing", "zstd 0.12.4", ] @@ -21487,7 +21488,6 @@ dependencies = [ "frame-system", "frame-system-rpc-runtime-api", "futures", - "hex-literal", "log", "pallet-babe", "pallet-balances", @@ -21525,6 +21525,7 @@ dependencies = [ "sp-version", "substrate-test-runtime-client", "substrate-wasm-builder", + "tracing", "trie-db", ] diff --git a/prdoc/pr_4863.prdoc b/prdoc/pr_4863.prdoc new file mode 100644 index 00000000000..eb43b67a45c --- /dev/null +++ b/prdoc/pr_4863.prdoc @@ -0,0 +1,10 @@ +title: "Make `tracing::log` work in the runtime" + +doc: + - audience: Runtime Dev + description: | + Make `tracing::log` work in the runtime as `log` works in the runtime. + +crates: + - name: sp-runtime + bump: patch diff --git a/substrate/primitives/runtime/Cargo.toml b/substrate/primitives/runtime/Cargo.toml index 4fafe45ff28..83b9422ca1d 100644 --- a/substrate/primitives/runtime/Cargo.toml +++ b/substrate/primitives/runtime/Cargo.toml @@ -34,6 +34,7 @@ sp-io = { workspace = true } sp-std = { workspace = true } sp-weights = { workspace = true } docify = { workspace = true } +tracing = { workspace = true, features = ["log"], default-features = false } simple-mermaid = { version = "0.1.1", optional = true } @@ -69,6 +70,7 @@ std = [ "sp-std/std", "sp-tracing/std", "sp-weights/std", + "tracing/std", ] # Serde support without relying on std features. diff --git a/substrate/primitives/runtime/src/runtime_logger.rs b/substrate/primitives/runtime/src/runtime_logger.rs index b7374b8b6f6..6f1e738eb0e 100644 --- a/substrate/primitives/runtime/src/runtime_logger.rs +++ b/substrate/primitives/runtime/src/runtime_logger.rs @@ -66,16 +66,15 @@ impl log::Log for RuntimeLogger { #[cfg(test)] mod tests { use sp_api::ProvideRuntimeApi; - use std::{env, str::FromStr}; + use std::env; use substrate_test_runtime_client::{ runtime::TestAPI, DefaultTestClientBuilderExt, TestClientBuilder, TestClientBuilderExt, }; #[test] - fn ensure_runtime_logger_respects_host_max_log_level() { + fn ensure_runtime_logger_works() { if env::var("RUN_TEST").is_ok() { sp_tracing::try_init_simple(); - log::set_max_level(log::LevelFilter::from_str(&env::var("RUST_LOG").unwrap()).unwrap()); let client = TestClientBuilder::new().build(); let runtime_api = client.runtime_api(); @@ -83,17 +82,19 @@ mod tests { .do_trace_log(client.chain_info().genesis_hash) .expect("Logging should not fail"); } else { - for (level, should_print) in &[("trace", true), ("info", false)] { + for (level, should_print) in &[("test=trace", true), ("info", false)] { let executable = std::env::current_exe().unwrap(); let output = std::process::Command::new(executable) .env("RUN_TEST", "1") .env("RUST_LOG", level) - .args(&["--nocapture", "ensure_runtime_logger_respects_host_max_log_level"]) + .args(&["--nocapture", "ensure_runtime_logger_works"]) .output() .unwrap(); let output = String::from_utf8(output.stderr).unwrap(); assert!(output.contains("Hey I'm runtime") == *should_print); + assert!(output.contains("THIS IS TRACING") == *should_print); + assert!(output.contains("Hey, I'm tracing") == *should_print); } } } diff --git a/substrate/test-utils/runtime/Cargo.toml b/substrate/test-utils/runtime/Cargo.toml index e3282f8e598..5c8f49a6db8 100644 --- a/substrate/test-utils/runtime/Cargo.toml +++ b/substrate/test-utils/runtime/Cargo.toml @@ -53,7 +53,7 @@ sp-externalities = { workspace = true } array-bytes = { optional = true, workspace = true, default-features = true } serde_json = { workspace = true, features = ["alloc"] } log = { workspace = true } -hex-literal = { workspace = true, default-features = true } +tracing = { workspace = true, default-features = false } [dev-dependencies] futures = { workspace = true } @@ -112,6 +112,7 @@ std = [ "sp-trie/std", "sp-version/std", "substrate-wasm-builder", + "tracing/std", "trie-db/std", ] diff --git a/substrate/test-utils/runtime/src/lib.rs b/substrate/test-utils/runtime/src/lib.rs index a5769b56dd5..a13441302e4 100644 --- a/substrate/test-utils/runtime/src/lib.rs +++ b/substrate/test-utils/runtime/src/lib.rs @@ -596,7 +596,11 @@ impl_runtime_apis! { } fn do_trace_log() { - log::trace!("Hey I'm runtime"); + log::trace!(target: "test", "Hey I'm runtime"); + + let data = "THIS IS TRACING"; + + tracing::trace!(target: "test", %data, "Hey, I'm tracing"); } fn verify_ed25519(sig: ed25519::Signature, public: ed25519::Public, message: Vec) -> bool { -- GitLab From d4657f86208a13d8fcc7933018d4558c3a96f634 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:40:07 +0300 Subject: [PATCH 014/252] litep2p/peerstore: Fix bump last updated time (#4971) This PR bumps the last time of a reputation update of a peer. Doing so ensures the peer remains in the peerstore for longer than 1 hour. Libp2p updates the `last_updated` field as well. Small summary for the peerstore: - A: when peers are reported the `last_updated` time is set to current time (not done before this PR) - B: peers that were not updated for 1 hour are removed from the peerstore - the reputation of the peers is decaying to zero over time - peers are reported with a reputation change (positive or negative depending on the behavior) Because, (A) was not updating the `last_updated` time, we might lose the reputation of peers that are constantly updated after 1hour because of (B). cc @paritytech/networking Signed-off-by: Alexandru Vasile --- substrate/client/network/src/litep2p/peerstore.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/substrate/client/network/src/litep2p/peerstore.rs b/substrate/client/network/src/litep2p/peerstore.rs index 3f7155edbc9..347aa0b90ee 100644 --- a/substrate/client/network/src/litep2p/peerstore.rs +++ b/substrate/client/network/src/litep2p/peerstore.rs @@ -85,6 +85,11 @@ impl PeerInfo { self.reputation < BANNED_THRESHOLD } + fn add_reputation(&mut self, increment: i32) { + self.reputation = self.reputation.saturating_add(increment); + self.bump_last_updated(); + } + fn decay_reputation(&mut self, seconds_passed: u64) { // Note that decaying the reputation value happens "on its own", // so we don't do `bump_last_updated()`. @@ -103,6 +108,10 @@ impl PeerInfo { } } } + + fn bump_last_updated(&mut self) { + self.last_updated = Instant::now(); + } } #[derive(Debug, Default)] @@ -169,7 +178,7 @@ impl PeerStoreProvider for PeerstoreHandle { match lock.peers.get_mut(&peer) { Some(info) => { - info.reputation = info.reputation.saturating_add(reputation_change.value); + info.add_reputation(reputation_change.value); }, None => { lock.peers.insert( -- GitLab From 72dab6d897d9519881b619d466ef5be3c7df9a34 Mon Sep 17 00:00:00 2001 From: Or Grinberg Date: Tue, 9 Jul 2024 04:40:39 +0100 Subject: [PATCH 015/252] allow clear_origin in safe xcm builder (#4777) Fixes #3770 Added `clear_origin` as an allowed command after commands that load the holdings register, in the safe xcm builder. Checklist - [x] My PR includes a detailed description as outlined in the "Description" section above - [x] My PR follows the [labeling requirements](https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process) of this project (at minimum one label for T required) - [x] I have made corresponding changes to the documentation (if applicable) - [x] I have added tests that prove my fix is effective or that my feature works (if applicable) --------- Co-authored-by: Francisco Aguirre Co-authored-by: gupnik --- .../xcm/procedural/src/builder_pattern.rs | 27 +++++++++++++++++++ .../xcm/procedural/tests/builder_pattern.rs | 21 +++++++++++++++ prdoc/pr_4777.prdoc | 27 +++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 prdoc/pr_4777.prdoc diff --git a/polkadot/xcm/procedural/src/builder_pattern.rs b/polkadot/xcm/procedural/src/builder_pattern.rs index 0a33d52580f..09ead1389d1 100644 --- a/polkadot/xcm/procedural/src/builder_pattern.rs +++ b/polkadot/xcm/procedural/src/builder_pattern.rs @@ -233,6 +233,32 @@ fn generate_builder_impl(name: &Ident, data_enum: &DataEnum) -> Result = data_enum + .variants + .iter() + .filter(|variant| variant.ident == "ClearOrigin") + .map(|variant| { + let variant_name = &variant.ident; + let method_name_string = &variant_name.to_string().to_snake_case(); + let method_name = syn::Ident::new(method_name_string, variant_name.span()); + let docs = get_doc_comments(variant); + let method = match &variant.fields { + Fields::Unit => { + quote! { + #(#docs)* + pub fn #method_name(mut self) -> XcmBuilder { + self.instructions.push(#name::::#variant_name); + self + } + } + }, + _ => return Err(Error::new_spanned(variant, "ClearOrigin should have no fields")), + }; + Ok(method) + }) + .collect::, _>>()?; + // Then we require fees to be paid let buy_execution_method = data_enum .variants @@ -276,6 +302,7 @@ fn generate_builder_impl(name: &Ident, data_enum: &DataEnum) -> Result XcmBuilder { + #(#allowed_after_load_holding_methods)* #buy_execution_method } }; diff --git a/polkadot/xcm/procedural/tests/builder_pattern.rs b/polkadot/xcm/procedural/tests/builder_pattern.rs index 96b16fb7e45..4202309bf3f 100644 --- a/polkadot/xcm/procedural/tests/builder_pattern.rs +++ b/polkadot/xcm/procedural/tests/builder_pattern.rs @@ -79,3 +79,24 @@ fn default_builder_requires_buy_execution() { ]) ); } + +#[test] +fn default_builder_allows_clear_origin_before_buy_execution() { + let asset: Asset = (Here, 100u128).into(); + let beneficiary: Location = [0u8; 32].into(); + let message: Xcm<()> = Xcm::builder() + .receive_teleported_asset(asset.clone()) + .clear_origin() + .buy_execution(asset.clone(), Unlimited) + .deposit_asset(asset.clone(), beneficiary.clone()) + .build(); + assert_eq!( + message, + Xcm(vec![ + ReceiveTeleportedAsset(asset.clone().into()), + ClearOrigin, + BuyExecution { fees: asset.clone(), weight_limit: Unlimited }, + DepositAsset { assets: asset.into(), beneficiary }, + ]) + ); +} diff --git a/prdoc/pr_4777.prdoc b/prdoc/pr_4777.prdoc new file mode 100644 index 00000000000..07fa8decebe --- /dev/null +++ b/prdoc/pr_4777.prdoc @@ -0,0 +1,27 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: XCM builder pattern allows clear_origin before buy_execution. + +doc: + - audience: Runtime Dev + description: | + Added clear_origin as an allowed command after commands that load the holdings register, in the safe xcm builder. + Previously, although it's logically allowed, an XCM could not be built like this: + ```rust + let xcm = Xcm::builder() + .withdraw_asset((Parent, 100u128)) + .clear_origin() + .buy_execution((Parent, 1u128)) + .deposit_asset(All, [0u8; 32]) + .build(); + ``` + You had to use the unsafe_builder. + Now, it's allowed using the default builder. + +crates: +- name: "xcm-procedural" + bump: minor +- name: "staging-xcm" + bump: minor + -- GitLab From 1e1fd74541de6ab97b1f33c9a0204a2bedfbb38c Mon Sep 17 00:00:00 2001 From: Radha <86818441+DrW3RK@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:11:37 +0200 Subject: [PATCH 016/252] Update Templates README docs (#4980) Some of the commands needed update for seamless "newbie" Polkadot SDK templates experience --- templates/minimal/README.md | 6 +++--- templates/parachain/README.md | 6 +++--- templates/parachain/node/README.md | 2 +- templates/solochain/README.md | 16 ++++++++-------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/templates/minimal/README.md b/templates/minimal/README.md index 9d27bcc9944..eaa21a05ee8 100644 --- a/templates/minimal/README.md +++ b/templates/minimal/README.md @@ -14,7 +14,7 @@ * 🤏 This template is a minimal (in terms of complexity and the number of components) template for building a blockchain node. -* 🔧 Its runtime is configured of a single custom pallet as a starting point, and a handful of ready-made pallets +* 🔧 Its runtime is configured with a single custom pallet as a starting point, and a handful of ready-made pallets such as a [Balances pallet](https://paritytech.github.io/polkadot-sdk/master/pallet_balances/index.html). * 👤 The template has no consensus configured - it is best for experimenting with a single node network. @@ -57,7 +57,7 @@ and don't forget to also customize the corresponding comments. 🔨 Use the following command to build the node without launching it: ```sh -cargo build --release +cargo build --package minimal-template-node --release ``` 🐳 Alternatively, build the docker image: @@ -80,7 +80,7 @@ docker run --rm polkadot-sdk-minimal-template --dev Development chains: * 🧹 Do not persist the state. -* 💰 Are preconfigured with a genesis state that includes several prefunded development accounts. +* 💰 Are preconfigured with a genesis state that includes several pre-funded development accounts. * 🧑‍⚖️ Development accounts are used as `sudo` accounts. ### Connect with the Polkadot-JS Apps Front-End diff --git a/templates/parachain/README.md b/templates/parachain/README.md index a6ac91799b7..802d8586b39 100644 --- a/templates/parachain/README.md +++ b/templates/parachain/README.md @@ -16,7 +16,7 @@ * ☁️ It is based on the [Cumulus](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/polkadot_sdk/cumulus/index.html) framework. -* 🔧 Its runtime is configured of a single custom pallet as a starting point, and a handful of ready-made pallets +* 🔧 Its runtime is configured with a single custom pallet as a starting point, and a handful of ready-made pallets such as a [Balances pallet](https://paritytech.github.io/polkadot-sdk/master/pallet_balances/index.html). * 👉 Learn more about parachains [here](https://wiki.polkadot.network/docs/learn-parachains) @@ -44,7 +44,7 @@ packages required to compile this template - please take note of the Rust compil 🔨 Use the following command to build the node without launching it: ```sh -cargo build --release +cargo build --package parachain-template-node --release ``` 🐳 Alternatively, build the docker image: @@ -70,7 +70,7 @@ and `zombienet` - into `PATH` like so: export PATH="./target/release/:$PATH" ``` -This way, we can conveniently use them un the following steps. +This way, we can conveniently use them in the following steps. 👥 The following command starts a local development chain, with a single relay chain node and a single parachain collator: diff --git a/templates/parachain/node/README.md b/templates/parachain/node/README.md index 350272c7b6e..ad309d4015a 100644 --- a/templates/parachain/node/README.md +++ b/templates/parachain/node/README.md @@ -7,7 +7,7 @@ ⚙️ It acts as a remote procedure call (RPC) server, allowing interaction with the blockchain. -👉 Learn more about the architecture, and a difference between a node and a runtime +👉 Learn more about the architecture, and the difference between a node and a runtime [here](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/reference_docs/wasm_meta_protocol/index.html). 👇 Here are the most important files in this node template: diff --git a/templates/solochain/README.md b/templates/solochain/README.md index 2e3b1146a8f..c5dc5db7f3b 100644 --- a/templates/solochain/README.md +++ b/templates/solochain/README.md @@ -28,7 +28,7 @@ installation](#alternatives-installations) options. Use the following command to build the node without launching it: ```sh -cargo build --release +cargo build --package solochain-template-node --release ``` ### Embedded Docs @@ -37,7 +37,7 @@ After you build the project, you can use the following command to explore its parameters and subcommands: ```sh -./target/release/node-template -h +./target/release/solochain-template-node -h ``` You can generate and view the [Rust @@ -54,19 +54,19 @@ The following command starts a single-node development chain that doesn't persist state: ```sh -./target/release/node-template --dev +./target/release/solochain-template-node --dev ``` To purge the development chain's state, run the following command: ```sh -./target/release/node-template purge-chain --dev +./target/release/solochain-template-node purge-chain --dev ``` To start the development chain with detailed logging, run the following command: ```sh -RUST_BACKTRACE=1 ./target/release/node-template -ldebug --dev +RUST_BACKTRACE=1 ./target/release/solochain-template-node -ldebug --dev ``` Development chains: @@ -75,7 +75,7 @@ Development chains: - Use the **Alice** and **Bob** accounts as default validator authorities. - Use the **Alice** account as the default `sudo` account. - Are preconfigured with a genesis state (`/node/src/chain_spec.rs`) that - includes several prefunded development accounts. + includes several pre-funded development accounts. To persist chain state between runs, specify a base path by running a command @@ -86,7 +86,7 @@ similar to the following: $ mkdir my-chain-state // Use of that folder to store the chain state -$ ./target/release/node-template --dev --base-path ./my-chain-state/ +$ ./target/release/solochain-template-node --dev --base-path ./my-chain-state/ // Check the folder structure created inside the base path after running the chain $ ls ./my-chain-state @@ -142,7 +142,7 @@ following: 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,. These functions are + `development_config` and `testnet_genesis` functions. These functions are used to define the genesis state for the local development chain configuration. These functions identify some [well-known accounts](https://docs.substrate.io/reference/command-line-tools/subkey/) and -- GitLab From 01e0fc23d8844461adcd4501815dac64f3a4986f Mon Sep 17 00:00:00 2001 From: Serban Iorga Date: Tue, 9 Jul 2024 11:30:48 +0300 Subject: [PATCH 017/252] `polkadot-parachain` simplifications and deduplications (#4916) `polkadot-parachain` simplifications and deduplications Details in the commit messages. Just copy-pasting the last commit description since it introduces the biggest changes: ``` Implement a more structured way to define a node spec - use traits instead of bounds for `rpc_ext_builder()`, `build_import_queue()`, `start_consensus()` - add a `NodeSpec` trait for defining the specifications of a node - deduplicate the code related to building a node's components / starting a node ``` The other changes are much smaller, most of them trivial and are isolated in separate commits. --- cumulus/polkadot-parachain/src/cli.rs | 7 + cumulus/polkadot-parachain/src/command.rs | 488 ++---- cumulus/polkadot-parachain/src/common/mod.rs | 5 + cumulus/polkadot-parachain/src/rpc.rs | 139 +- cumulus/polkadot-parachain/src/service.rs | 1550 +++++++++--------- polkadot/cli/src/command.rs | 2 +- substrate/client/cli/src/lib.rs | 25 +- substrate/client/service/src/lib.rs | 2 +- 8 files changed, 978 insertions(+), 1240 deletions(-) diff --git a/cumulus/polkadot-parachain/src/cli.rs b/cumulus/polkadot-parachain/src/cli.rs index 7c01e34f9a0..d06354dda22 100644 --- a/cumulus/polkadot-parachain/src/cli.rs +++ b/cumulus/polkadot-parachain/src/cli.rs @@ -14,6 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . +use crate::common::NodeExtraArgs; use clap::{Command, CommandFactory, FromArgMatches}; use sc_cli::SubstrateCli; use std::path::PathBuf; @@ -94,6 +95,12 @@ pub struct Cli { pub relay_chain_args: Vec, } +impl Cli { + pub(crate) fn node_extra_args(&self) -> NodeExtraArgs { + NodeExtraArgs { use_slot_based_consensus: self.experimental_use_slot_based } + } +} + #[derive(Debug)] pub struct RelayChainCli { /// The actual relay chain cli object. diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index 323216f300d..fcf6c06f422 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -14,15 +14,20 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . +#[cfg(feature = "runtime-benchmarks")] +use crate::service::Block; use crate::{ chain_spec, chain_spec::GenericChainSpec, cli::{Cli, RelayChainCli, Subcommand}, + common::NodeExtraArgs, fake_runtime_api::{ - asset_hub_polkadot_aura::RuntimeApi as AssetHubPolkadotRuntimeApi, aura::RuntimeApi, + asset_hub_polkadot_aura::RuntimeApi as AssetHubPolkadotRuntimeApi, + aura::RuntimeApi as AuraRuntimeApi, }, - service::{new_partial, Block, Hash}, + service::{new_aura_node_spec, DynNodeSpec, ShellNode}, }; +#[cfg(feature = "runtime-benchmarks")] use cumulus_client_service::storage_proof_size::HostFunctions as ReclaimHostFunctions; use cumulus_primitives_core::ParaId; use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; @@ -34,6 +39,8 @@ use sc_cli::{ }; use sc_service::config::{BasePath, PrometheusConfig}; use sp_runtime::traits::AccountIdConversion; +#[cfg(feature = "runtime-benchmarks")] +use sp_runtime::traits::HashingFor; use std::{net::SocketAddr, path::PathBuf}; /// The choice of consensus for the parachain omni-node. @@ -110,6 +117,7 @@ fn runtime(id: &str) -> Runtime { } else if id.starts_with("asset-hub-kusama") | id.starts_with("statemine") | id.starts_with("asset-hub-rococo") | + id.starts_with("rockmine") | id.starts_with("asset-hub-westend") | id.starts_with("westmint") { @@ -378,146 +386,27 @@ impl SubstrateCli for RelayChainCli { } } -/// Creates partial components for the runtimes that are supported by the benchmarks. -macro_rules! construct_partials { - ($config:expr, |$partials:ident| $code:expr) => { - match $config.chain_spec.runtime()? { - Runtime::AssetHubPolkadot => { - let $partials = new_partial::( - &$config, - crate::service::build_relay_to_aura_import_queue::<_, AssetHubPolkadotAuraId>, - )?; - $code - }, - Runtime::AssetHub | - Runtime::BridgeHub(_) | - Runtime::Collectives | - Runtime::Coretime(_) | - Runtime::People(_) => { - let $partials = new_partial::( - &$config, - crate::service::build_relay_to_aura_import_queue::<_, AuraId>, - )?; - $code - }, - Runtime::Glutton | Runtime::Shell | Runtime::Seedling => { - let $partials = new_partial::( - &$config, - crate::service::build_shell_import_queue, - )?; - $code - }, - Runtime::ContractsRococo | Runtime::Penpal(_) => { - let $partials = new_partial::( - &$config, - crate::service::build_aura_import_queue, - )?; - $code - }, - Runtime::Omni(consensus) => match consensus { - Consensus::Aura => { - let $partials = new_partial::( - &$config, - crate::service::build_aura_import_queue, - )?; - $code - }, - Consensus::Relay => { - let $partials = new_partial::( - &$config, - crate::service::build_shell_import_queue, - )?; - $code - }, - }, - } - }; -} - -macro_rules! construct_async_run { - (|$components:ident, $cli:ident, $cmd:ident, $config:ident| $( $code:tt )* ) => {{ - let runner = $cli.create_runner($cmd)?; - match runner.config().chain_spec.runtime()? { - Runtime::AssetHubPolkadot => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::build_relay_to_aura_import_queue::<_, AssetHubPolkadotAuraId>, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - Runtime::AssetHub | - Runtime::BridgeHub(_) | - Runtime::Collectives | - Runtime::Coretime(_) | - Runtime::People(_) => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::build_relay_to_aura_import_queue::<_, AuraId>, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - Runtime::Shell | - Runtime::Seedling | - Runtime::Glutton => { - runner.async_run(|$config| { - let $components = new_partial::( - &$config, - crate::service::build_shell_import_queue, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - } - Runtime::ContractsRococo | Runtime::Penpal(_) => { - runner.async_run(|$config| { - let $components = new_partial::< - RuntimeApi, - _, - >( - &$config, - crate::service::build_aura_import_queue, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - Runtime::Omni(consensus) => match consensus { - Consensus::Aura => { - runner.async_run(|$config| { - let $components = new_partial::< - RuntimeApi, - _, - >( - &$config, - crate::service::build_aura_import_queue, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - Consensus::Relay - => { - runner.async_run(|$config| { - let $components = new_partial::< - RuntimeApi, - _, - >( - &$config, - crate::service::build_shell_import_queue, - )?; - let task_manager = $components.task_manager; - { $( $code )* }.map(|v| (v, task_manager)) - }) - }, - } - } - }} +fn new_node_spec( + config: &sc_service::Configuration, + extra_args: NodeExtraArgs, +) -> std::result::Result, sc_cli::Error> { + Ok(match config.chain_spec.runtime()? { + Runtime::AssetHubPolkadot => + new_aura_node_spec::(extra_args), + Runtime::AssetHub | + Runtime::BridgeHub(_) | + Runtime::Collectives | + Runtime::Coretime(_) | + Runtime::People(_) | + Runtime::ContractsRococo | + Runtime::Glutton | + Runtime::Penpal(_) => new_aura_node_spec::(extra_args), + Runtime::Shell | Runtime::Seedling => Box::new(ShellNode), + Runtime::Omni(consensus) => match consensus { + Consensus::Aura => new_aura_node_spec::(extra_args), + Consensus::Relay => Box::new(ShellNode), + }, + }) } /// Parse command line arguments into service configuration. @@ -530,28 +419,40 @@ 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| { - Ok(cmd.run(components.client, components.import_queue)) + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let node = new_node_spec(&config, cli.node_extra_args())?; + node.prepare_check_block_cmd(config, cmd) }) }, Some(Subcommand::ExportBlocks(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { - Ok(cmd.run(components.client, config.database)) + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let node = new_node_spec(&config, cli.node_extra_args())?; + node.prepare_export_blocks_cmd(config, cmd) }) }, Some(Subcommand::ExportState(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { - Ok(cmd.run(components.client, config.chain_spec)) + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let node = new_node_spec(&config, cli.node_extra_args())?; + node.prepare_export_state_cmd(config, cmd) }) }, Some(Subcommand::ImportBlocks(cmd)) => { - construct_async_run!(|components, cli, cmd, config| { - Ok(cmd.run(components.client, components.import_queue)) + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let node = new_node_spec(&config, cli.node_extra_args())?; + node.prepare_import_blocks_cmd(config, cmd) + }) + }, + Some(Subcommand::Revert(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.async_run(|config| { + let node = new_node_spec(&config, cli.node_extra_args())?; + node.prepare_revert_cmd(config, cmd) }) }, - 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)?; let polkadot_cli = RelayChainCli::new(runner.config(), cli.relay_chain_args.iter()); @@ -569,8 +470,10 @@ pub fn run() -> Result<()> { }, Some(Subcommand::ExportGenesisHead(cmd)) => { let runner = cli.create_runner(cmd)?; - runner - .sync_run(|config| construct_partials!(config, |partials| cmd.run(partials.client))) + runner.sync_run(|config| { + let node = new_node_spec(&config, cli.node_extra_args())?; + node.run_export_genesis_head_cmd(config, cmd) + }) }, Some(Subcommand::ExportGenesisWasm(cmd)) => { let runner = cli.create_runner(cmd)?; @@ -584,40 +487,28 @@ pub fn run() -> Result<()> { // Switch on the concrete benchmark sub-command- match cmd { - BenchmarkCmd::Pallet(cmd) => - if cfg!(feature = "runtime-benchmarks") { - runner.sync_run(|config| cmd.run_with_spec::, ReclaimHostFunctions>(Some(config.chain_spec))) - } else { - Err("Benchmarking wasn't enabled when building the node. \ - You can enable it with `--features runtime-benchmarks`." - .into()) - }, + #[cfg(feature = "runtime-benchmarks")] + BenchmarkCmd::Pallet(cmd) => runner.sync_run(|config| { + cmd.run_with_spec::, ReclaimHostFunctions>(Some( + config.chain_spec, + )) + }), BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { - construct_partials!(config, |partials| cmd.run(partials.client)) + let node = new_node_spec(&config, cli.node_extra_args())?; + node.run_benchmark_block_cmd(config, cmd) }), - #[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| { - construct_partials!(config, |partials| { - let db = partials.backend.expose_db(); - let storage = partials.backend.expose_storage(); - - cmd.run(config, partials.client.clone(), db, storage) - }) + let node = new_node_spec(&config, cli.node_extra_args())?; + node.run_benchmark_storage_cmd(config, cmd) }), 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()), + _ => Err("Benchmarking sub-command unsupported or compilation feature missing. \ + Make sure to compile with --features=runtime-benchmarks \ + to enable all supported benchmarks." + .into()), } }, Some(Subcommand::Key(cmd)) => Ok(cmd.run(&cli)?), @@ -645,25 +536,33 @@ pub fn run() -> Result<()> { if old_path.exists() && new_path.exists() { return Err(format!( - "Found legacy {} path {} and new asset-hub path {}. Delete one path such that only one exists.", - old_name, old_path.display(), new_path.display() - ).into()) + "Found legacy {} path {} and new Asset Hub path {}. \ + Delete one path such that only one exists.", + old_name, + old_path.display(), + new_path.display() + ) + .into()) } if old_path.exists() { std::fs::rename(old_path.clone(), new_path.clone())?; info!( - "Statemint renamed to Asset Hub. The filepath with associated data on disk has been renamed from {} to {}.", - old_path.display(), new_path.display() + "{} was renamed to Asset Hub. The filepath with associated data on disk \ + has been renamed from {} to {}.", + old_name, + old_path.display(), + new_path.display() ); } } - let hwbench = (!cli.no_hardware_benchmarks).then_some( - config.database.path().map(|database_path| { + 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)) - })).flatten(); + })) + .flatten(); let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) @@ -672,7 +571,9 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); + AccountIdConversion::::into_account_truncating( + &id, + ); let tokio_handle = config.tokio_handle.clone(); let polkadot_config = @@ -683,209 +584,34 @@ pub fn run() -> Result<()> { info!("🧾 Parachain Account: {}", parachain_account); info!("✍️ Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - match config.network.network_backend { - sc_network::config::NetworkBackendType::Libp2p => - start_node::>( - config, - polkadot_config, - collator_options, - id, - cli.experimental_use_slot_based, - hwbench, - ) - .await, - sc_network::config::NetworkBackendType::Litep2p => - start_node::( - config, - polkadot_config, - collator_options, - id, - cli.experimental_use_slot_based, - hwbench, - ) - .await, - } + start_node( + config, + polkadot_config, + collator_options, + id, + cli.node_extra_args(), + hwbench, + ) + .await }) }, } } -async fn start_node>( +#[sc_tracing::logging::prefix_logs_with("Parachain")] +async fn start_node( config: sc_service::Configuration, polkadot_config: sc_service::Configuration, collator_options: cumulus_client_cli::CollatorOptions, id: ParaId, - use_experimental_slot_based: bool, + extra_args: NodeExtraArgs, hwbench: Option, ) -> Result { - match config.chain_spec.runtime()? { - Runtime::AssetHubPolkadot => - crate::service::start_asset_hub_async_backing_node::< - AssetHubPolkadotRuntimeApi, - AssetHubPolkadotAuraId, - Network, - >(config, polkadot_config, collator_options, id, use_experimental_slot_based, hwbench) - .await - .map(|r| r.0) - .map_err(Into::into), - - Runtime::AssetHub | Runtime::Collectives => - crate::service::start_generic_aura_async_backing_node::( - config, - polkadot_config, - collator_options, - id, - use_experimental_slot_based, - hwbench, - ) - .await - .map(|r| r.0) - .map_err(Into::into), - - Runtime::Seedling | Runtime::Shell => crate::service::start_shell_node::( - config, - polkadot_config, - collator_options, - id, - hwbench, - ) + let node_spec = new_node_spec(&config, extra_args)?; + node_spec + .start_node(config, polkadot_config, collator_options, id, hwbench) .await - .map(|r| r.0) - .map_err(Into::into), - - Runtime::ContractsRococo => crate::service::start_contracts_rococo_node::( - config, - polkadot_config, - collator_options, - id, - use_experimental_slot_based, - hwbench, - ) - .await - .map(|r| r.0) - .map_err(Into::into), - - Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { - chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | - chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend | - chain_spec::bridge_hubs::BridgeHubRuntimeType::WestendLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::WestendDevelopment | - chain_spec::bridge_hubs::BridgeHubRuntimeType::Rococo | - chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoDevelopment => - crate::service::start_generic_aura_async_backing_node::( - config, - polkadot_config, - collator_options, - id, - use_experimental_slot_based, - hwbench, - ) - .await - .map(|r| r.0), - } - .map_err(Into::into), - - Runtime::Coretime(coretime_runtime_type) => match coretime_runtime_type { - chain_spec::coretime::CoretimeRuntimeType::Kusama | - chain_spec::coretime::CoretimeRuntimeType::KusamaLocal | - chain_spec::coretime::CoretimeRuntimeType::Polkadot | - chain_spec::coretime::CoretimeRuntimeType::PolkadotLocal | - chain_spec::coretime::CoretimeRuntimeType::Rococo | - chain_spec::coretime::CoretimeRuntimeType::RococoLocal | - chain_spec::coretime::CoretimeRuntimeType::RococoDevelopment | - chain_spec::coretime::CoretimeRuntimeType::Westend | - chain_spec::coretime::CoretimeRuntimeType::WestendLocal | - chain_spec::coretime::CoretimeRuntimeType::WestendDevelopment => - crate::service::start_generic_aura_async_backing_node::( - config, - polkadot_config, - collator_options, - id, - use_experimental_slot_based, - hwbench, - ) - .await - .map(|r| r.0), - } - .map_err(Into::into), - - Runtime::Penpal(_) => crate::service::start_rococo_parachain_node::( - config, - polkadot_config, - collator_options, - id, - use_experimental_slot_based, - hwbench, - ) - .await - .map(|r| r.0) - .map_err(Into::into), - - Runtime::Glutton => crate::service::start_basic_async_backing_node::( - config, - polkadot_config, - collator_options, - id, - use_experimental_slot_based, - hwbench, - ) - .await - .map(|r| r.0) - .map_err(Into::into), - - Runtime::People(people_runtime_type) => match people_runtime_type { - chain_spec::people::PeopleRuntimeType::Kusama | - chain_spec::people::PeopleRuntimeType::KusamaLocal | - chain_spec::people::PeopleRuntimeType::Polkadot | - chain_spec::people::PeopleRuntimeType::PolkadotLocal | - chain_spec::people::PeopleRuntimeType::Rococo | - chain_spec::people::PeopleRuntimeType::RococoLocal | - chain_spec::people::PeopleRuntimeType::RococoDevelopment | - chain_spec::people::PeopleRuntimeType::Westend | - chain_spec::people::PeopleRuntimeType::WestendLocal | - chain_spec::people::PeopleRuntimeType::WestendDevelopment => - crate::service::start_generic_aura_async_backing_node::( - config, - polkadot_config, - collator_options, - id, - use_experimental_slot_based, - hwbench, - ) - .await - .map(|r| r.0), - } - .map_err(Into::into), - Runtime::Omni(consensus) => match consensus { - // rococo actually uses aura import and consensus, unlike most system chains that use - // relay to aura. - Consensus::Aura => crate::service::start_rococo_parachain_node::( - config, - polkadot_config, - collator_options, - id, - use_experimental_slot_based, - hwbench, - ) - .await - .map(|r| r.0) - .map_err(Into::into), - Consensus::Relay => crate::service::start_shell_node::( - config, - polkadot_config, - collator_options, - id, - hwbench, - ) - .await - .map(|r| r.0) - .map_err(Into::into), - }, - } + .map_err(Into::into) } impl DefaultConfigurationValues for RelayChainCli { diff --git a/cumulus/polkadot-parachain/src/common/mod.rs b/cumulus/polkadot-parachain/src/common/mod.rs index 5adbb4137cd..9f5febafe30 100644 --- a/cumulus/polkadot-parachain/src/common/mod.rs +++ b/cumulus/polkadot-parachain/src/common/mod.rs @@ -65,3 +65,8 @@ where { type BoundedRuntimeApi = T::RuntimeApi; } + +/// Extra args that are passed when creating a new node spec. +pub struct NodeExtraArgs { + pub use_slot_based_consensus: bool, +} diff --git a/cumulus/polkadot-parachain/src/rpc.rs b/cumulus/polkadot-parachain/src/rpc.rs index 7437bb1f4b9..283a73d931d 100644 --- a/cumulus/polkadot-parachain/src/rpc.rs +++ b/cumulus/polkadot-parachain/src/rpc.rs @@ -18,91 +18,82 @@ #![warn(missing_docs)] -use std::sync::Arc; - +use crate::{ + common::ConstructNodeRuntimeApi, + service::{ParachainBackend, ParachainClient}, +}; +use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; use parachains_common::{AccountId, Balance, Block, Nonce}; -use sc_client_api::AuxStore; -pub use sc_rpc::DenyUnsafe; -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_rpc::{ + dev::{Dev, DevApiServer}, + DenyUnsafe, +}; +use std::{marker::PhantomData, sync::Arc}; +use substrate_frame_rpc_system::{System, SystemApiServer}; +use substrate_state_trie_migration_rpc::{StateMigration, StateMigrationApiServer}; /// A type representing all RPC extensions. pub type RpcExtension = jsonrpsee::RpcModule<()>; -/// 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, +pub(crate) trait BuildRpcExtensions { + fn build_rpc_extensions( + deny_unsafe: DenyUnsafe, + client: Arc, + backend: Arc, + pool: Arc, + ) -> sc_service::error::Result; } -/// Instantiate all RPC extensions. -pub fn create_full( - deps: FullDeps, - backend: Arc, -) -> Result> +pub(crate) struct BuildEmptyRpcExtensions(PhantomData); + +impl + BuildRpcExtensions< + ParachainClient, + ParachainBackend, + sc_transaction_pool::FullPool>, + > for BuildEmptyRpcExtensions where - C: ProvideRuntimeApi - + HeaderBackend - + AuxStore - + HeaderMetadata - + Send - + Sync - + 'static, - C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, - C::Api: BlockBuilder, - P: TransactionPool + Sync + Send + 'static, - B: sc_client_api::Backend + Send + Sync + 'static, - B::State: sc_client_api::backend::StateBackend>, + RuntimeApi: ConstructNodeRuntimeApi> + Send + Sync + 'static, { - use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; - use substrate_frame_rpc_system::{System, SystemApiServer}; - use substrate_state_trie_migration_rpc::{StateMigration, StateMigrationApiServer}; - - let mut module = RpcExtension::new(()); - let FullDeps { client, pool, deny_unsafe } = deps; - - module.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; - module.merge(TransactionPayment::new(client.clone()).into_rpc())?; - module.merge(StateMigration::new(client, backend, deny_unsafe).into_rpc())?; - - Ok(module) + fn build_rpc_extensions( + _deny_unsafe: DenyUnsafe, + _client: Arc>, + _backend: Arc, + _pool: Arc>>, + ) -> sc_service::error::Result { + Ok(RpcExtension::new(())) + } } -/// Instantiate all RPCs we want at the contracts-rococo chain. -pub fn create_contracts_rococo( - deps: FullDeps, -) -> Result> +pub(crate) struct BuildParachainRpcExtensions(PhantomData); + +impl + BuildRpcExtensions< + ParachainClient, + ParachainBackend, + sc_transaction_pool::FullPool>, + > for BuildParachainRpcExtensions where - C: ProvideRuntimeApi - + sc_client_api::BlockBackend - + HeaderBackend - + AuxStore - + HeaderMetadata - + Send - + Sync - + 'static, - C::Api: substrate_frame_rpc_system::AccountNonceApi, - C::Api: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi, - C::Api: BlockBuilder, - P: TransactionPool + Sync + Send + 'static, + RuntimeApi: ConstructNodeRuntimeApi> + Send + Sync + 'static, + RuntimeApi::RuntimeApi: pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi + + substrate_frame_rpc_system::AccountNonceApi, { - use pallet_transaction_payment_rpc::{TransactionPayment, TransactionPaymentApiServer}; - use sc_rpc::dev::{Dev, DevApiServer}; - use substrate_frame_rpc_system::{System, SystemApiServer}; - - let mut module = RpcExtension::new(()); - let FullDeps { client, pool, deny_unsafe } = deps; - - module.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; - module.merge(TransactionPayment::new(client.clone()).into_rpc())?; - module.merge(Dev::new(client, deny_unsafe).into_rpc())?; - - Ok(module) + fn build_rpc_extensions( + deny_unsafe: DenyUnsafe, + client: Arc>, + backend: Arc, + pool: Arc>>, + ) -> sc_service::error::Result { + let build = || -> Result> { + let mut module = RpcExtension::new(()); + + module.merge(System::new(client.clone(), pool, deny_unsafe).into_rpc())?; + module.merge(TransactionPayment::new(client.clone()).into_rpc())?; + module.merge(StateMigration::new(client.clone(), backend, deny_unsafe).into_rpc())?; + module.merge(Dev::new(client, deny_unsafe).into_rpc())?; + + Ok(module) + }; + build().map_err(Into::into) + } } diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index 0f2aed8ee4d..f5f6189d1f0 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use cumulus_client_cli::CollatorOptions; +use cumulus_client_cli::{CollatorOptions, ExportGenesisHeadCommand}; use cumulus_client_collator::service::CollatorService; use cumulus_client_consensus_aura::collators::{ lookahead::{self as aura, Params as AuraParams}, @@ -22,6 +22,7 @@ use cumulus_client_consensus_aura::collators::{ }; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; use cumulus_client_consensus_proposer::Proposer; +use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; #[allow(deprecated)] use cumulus_client_service::old_consensus; use cumulus_client_service::{ @@ -30,39 +31,40 @@ use cumulus_client_service::{ }; use cumulus_primitives_core::{relay_chain::ValidationCode, ParaId}; use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; -use sc_rpc::DenyUnsafe; - -use jsonrpsee::RpcModule; use crate::{ common::{ aura::{AuraIdT, AuraRuntimeApi}, - ConstructNodeRuntimeApi, + ConstructNodeRuntimeApi, NodeExtraArgs, }, fake_runtime_api::aura::RuntimeApi as FakeRuntimeApi, - rpc, + rpc::BuildRpcExtensions, }; -pub use parachains_common::{AccountId, AuraId, Balance, Block, Hash, Nonce}; +pub use parachains_common::{AccountId, Balance, Block, Hash, Nonce}; -use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; +use crate::rpc::{BuildEmptyRpcExtensions, BuildParachainRpcExtensions}; +use frame_benchmarking_cli::BlockCmd; +#[cfg(any(feature = "runtime-benchmarks"))] +use frame_benchmarking_cli::StorageCmd; use futures::prelude::*; +use polkadot_primitives::CollatorPair; use prometheus_endpoint::Registry; +use sc_cli::{CheckBlockCmd, ExportBlocksCmd, ExportStateCmd, ImportBlocksCmd, RevertCmd}; use sc_client_api::BlockchainEvents; use sc_consensus::{ import_queue::{BasicQueue, Verifier as VerifierT}, - BlockImportParams, ImportQueue, + BlockImportParams, DefaultImportQueue, ImportQueue, }; use sc_executor::{HeapAllocStrategy, WasmExecutor, DEFAULT_HEAP_ALLOC_STRATEGY}; use sc_network::{config::FullNetworkConfiguration, service::traits::NetworkBackend, NetworkBlock}; -use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; +use sc_service::{Configuration, Error, PartialComponents, TFullBackend, TFullClient, TaskManager}; +use sc_sysinfo::HwBench; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; -use sp_api::{ApiExt, ConstructRuntimeApi, ProvideRuntimeApi}; -use sp_consensus_aura::AuraApi; +use sc_transaction_pool::FullPool; +use sp_api::ProvideRuntimeApi; use sp_keystore::KeystorePtr; use sp_runtime::{app_crypto::AppCrypto, traits::Header as HeaderT}; -use std::{marker::PhantomData, sync::Arc, time::Duration}; - -use polkadot_primitives::CollatorPair; +use std::{marker::PhantomData, pin::Pin, sync::Arc, time::Duration}; #[cfg(not(feature = "runtime-benchmarks"))] type HostFunctions = cumulus_client_service::ParachainHostFunctions; @@ -73,9 +75,9 @@ type HostFunctions = ( frame_benchmarking::benchmarking::HostFunctions, ); -type ParachainClient = TFullClient>; +pub type ParachainClient = TFullClient>; -type ParachainBackend = TFullBackend; +pub type ParachainBackend = TFullBackend; type ParachainBlockImport = TParachainBlockImport>, ParachainBackend>; @@ -90,413 +92,312 @@ pub type Service = PartialComponents< (ParachainBlockImport, Option, Option), >; -/// 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: &Configuration, - build_import_queue: BIQ, -) -> Result, sc_service::Error> -where - RuntimeApi: ConstructNodeRuntimeApi>, - BIQ: FnOnce( - Arc>, - ParachainBlockImport, - &Configuration, - Option, - &TaskManager, - ) -> Result, sc_service::Error>, -{ - 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 heap_pages = config - .default_heap_pages - .map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| HeapAllocStrategy::Static { extra_pages: h as _ }); - - let executor = sc_executor::WasmExecutor::::builder() - .with_execution_method(config.wasm_method) - .with_max_runtime_instances(config.max_runtime_instances) - .with_runtime_cache_size(config.runtime_cache_size) - .with_onchain_heap_alloc_strategy(heap_pages) - .with_offchain_heap_alloc_strategy(heap_pages) - .build(); - - let (client, backend, keystore_container, task_manager) = - sc_service::new_full_parts_record_import::( - config, - telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), - executor, - true, - )?; - 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", None, worker.run()); - telemetry - }); - - let transaction_pool = sc_transaction_pool::BasicPool::new_full( - config.transaction_pool.clone(), - config.role.is_authority().into(), - config.prometheus_registry(), - task_manager.spawn_essential_handle(), - 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, - )?; - - Ok(PartialComponents { - backend, - client, - import_queue, - keystore_container, - task_manager, - transaction_pool, - select_chain: (), - other: (block_import, telemetry, telemetry_worker_handle), - }) +pub(crate) trait BuildImportQueue { + fn build_import_queue( + client: Arc>, + block_import: ParachainBlockImport, + config: &Configuration, + telemetry_handle: Option, + task_manager: &TaskManager, + ) -> sc_service::error::Result>; } -/// 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_tracing::logging::prefix_logs_with("Parachain")] -async fn start_node_impl( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, - sybil_resistance_level: CollatorSybilResistance, - para_id: ParaId, - rpc_ext_builder: RB, - build_import_queue: BIQ, - start_consensus: SC, - hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> +pub(crate) trait StartConsensus where RuntimeApi: ConstructNodeRuntimeApi>, - RB: Fn( - DenyUnsafe, - Arc>, - Arc, - Arc>>, - ) -> Result, sc_service::Error> - + 'static, - BIQ: FnOnce( - Arc>, - ParachainBlockImport, - &Configuration, - Option, - &TaskManager, - ) -> Result, sc_service::Error>, - SC: FnOnce( - Arc>, - ParachainBlockImport, - Option<&Registry>, - Option, - &TaskManager, - Arc, - Arc>>, - KeystorePtr, - Duration, - ParaId, - CollatorPair, - OverseerHandle, - Arc>) + Send + Sync>, - Arc, - ) -> Result<(), sc_service::Error>, - Net: NetworkBackend, { - let parachain_config = prepare_node_config(parachain_config); - - let params = new_partial::(¶chain_config, build_import_queue)?; - let (block_import, mut telemetry, telemetry_worker_handle) = params.other; - - 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, - ¶chain_config, - telemetry_worker_handle, - &mut task_manager, - collator_options.clone(), - hwbench.clone(), - ) - .await - .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; - - 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_service = params.import_queue.service(); - let net_config = FullNetworkConfiguration::<_, _, Net>::new(¶chain_config.network); - - 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, - spawn_handle: task_manager.spawn_handle(), - relay_chain_interface: relay_chain_interface.clone(), - import_queue: params.import_queue, - sybil_resistance_level, - }) - .await?; - - let rpc_builder = { - let client = client.clone(); - let transaction_pool = transaction_pool.clone(); - let backend_for_rpc = backend.clone(); - - Box::new(move |deny_unsafe, _| { - rpc_ext_builder( - deny_unsafe, - client.clone(), - backend_for_rpc.clone(), - transaction_pool.clone(), - ) - }) - }; - - 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.clone(), - network: network.clone(), - sync_service: sync_service.clone(), - system_rpc_tx, - tx_handler_controller, - telemetry: telemetry.as_mut(), - })?; - - if let Some(hwbench) = hwbench { - sc_sysinfo::print_hwbench(&hwbench); - if validator { - warn_if_slow_hardware(&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 sync_service = sync_service.clone(); - Arc::new(move |hash, data| sync_service.announce_block(hash, data)) - }; + fn start_consensus( + client: Arc>, + block_import: ParachainBlockImport, + prometheus_registry: Option<&Registry>, + telemetry: Option, + task_manager: &TaskManager, + relay_chain_interface: Arc, + transaction_pool: Arc>>, + keystore: KeystorePtr, + relay_chain_slot_duration: Duration, + para_id: ParaId, + collator_key: CollatorPair, + overseer_handle: OverseerHandle, + announce_block: Arc>) + Send + Sync>, + backend: Arc, + ) -> Result<(), sc_service::Error>; +} - let relay_chain_slot_duration = Duration::from_secs(6); +pub(crate) trait NodeSpec { + type RuntimeApi: ConstructNodeRuntimeApi>; + + type BuildImportQueue: BuildImportQueue + 'static; + + type BuildRpcExtensions: BuildRpcExtensions< + ParachainClient, + ParachainBackend, + sc_transaction_pool::FullPool>, + > + 'static; + + type StartConsensus: StartConsensus + 'static; + + const SYBIL_RESISTANCE: CollatorSybilResistance; + + /// 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. + fn new_partial(config: &Configuration) -> sc_service::error::Result> { + 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 heap_pages = config.default_heap_pages.map_or(DEFAULT_HEAP_ALLOC_STRATEGY, |h| { + HeapAllocStrategy::Static { extra_pages: h as _ } + }); + + let executor = sc_executor::WasmExecutor::::builder() + .with_execution_method(config.wasm_method) + .with_max_runtime_instances(config.max_runtime_instances) + .with_runtime_cache_size(config.runtime_cache_size) + .with_onchain_heap_alloc_strategy(heap_pages) + .with_offchain_heap_alloc_strategy(heap_pages) + .build(); + + let (client, backend, keystore_container, task_manager) = + sc_service::new_full_parts_record_import::( + config, + telemetry.as_ref().map(|(_, telemetry)| telemetry.handle()), + executor, + true, + )?; + 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", None, worker.run()); + telemetry + }); + + let transaction_pool = sc_transaction_pool::BasicPool::new_full( + config.transaction_pool.clone(), + config.role.is_authority().into(), + config.prometheus_registry(), + task_manager.spawn_essential_handle(), + client.clone(), + ); - let overseer_handle = relay_chain_interface - .overseer_handle() - .map_err(|e| sc_service::Error::Application(Box::new(e)))?; + let block_import = ParachainBlockImport::new(client.clone(), backend.clone()); - start_relay_chain_tasks(StartRelayChainTasksParams { - client: client.clone(), - announce_block: announce_block.clone(), - para_id, - relay_chain_interface: relay_chain_interface.clone(), - task_manager: &mut task_manager, - da_recovery_profile: if validator { - DARecoveryProfile::Collator - } else { - DARecoveryProfile::FullNode - }, - import_queue: import_queue_service, - relay_chain_slot_duration, - recovery_handle: Box::new(overseer_handle.clone()), - sync_service: sync_service.clone(), - })?; - - if validator { - start_consensus( + let import_queue = Self::BuildImportQueue::build_import_queue( client.clone(), - block_import, - prometheus_registry.as_ref(), - telemetry.as_ref().map(|t| t.handle()), + block_import.clone(), + config, + telemetry.as_ref().map(|telemetry| telemetry.handle()), &task_manager, - relay_chain_interface.clone(), - transaction_pool, - params.keystore_container.keystore(), - relay_chain_slot_duration, - para_id, - collator_key.expect("Command line arguments do not allow this. qed"), - overseer_handle, - announce_block, - backend.clone(), )?; + + Ok(PartialComponents { + backend, + client, + import_queue, + keystore_container, + task_manager, + transaction_pool, + select_chain: (), + other: (block_import, telemetry, telemetry_worker_handle), + }) } - start_network.start_network(); + /// Start a node with the given parachain spec. + /// + /// This is the actual implementation that is abstract over the executor and the runtime api. + fn start_node( + parachain_config: Configuration, + polkadot_config: Configuration, + collator_options: CollatorOptions, + para_id: ParaId, + hwbench: Option, + ) -> Pin>>> + where + Net: NetworkBackend, + { + Box::pin(async move { + let parachain_config = prepare_node_config(parachain_config); + + let params = Self::new_partial(¶chain_config)?; + let (block_import, mut telemetry, telemetry_worker_handle) = params.other; + + 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, + ¶chain_config, + telemetry_worker_handle, + &mut task_manager, + collator_options.clone(), + hwbench.clone(), + ) + .await + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; + + 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_service = params.import_queue.service(); + let net_config = FullNetworkConfiguration::<_, _, Net>::new(¶chain_config.network); + + 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, + spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), + import_queue: params.import_queue, + sybil_resistance_level: Self::SYBIL_RESISTANCE, + }) + .await?; + + let rpc_builder = { + let client = client.clone(); + let transaction_pool = transaction_pool.clone(); + let backend_for_rpc = backend.clone(); + + Box::new(move |deny_unsafe, _| { + Self::BuildRpcExtensions::build_rpc_extensions( + deny_unsafe, + client.clone(), + backend_for_rpc.clone(), + transaction_pool.clone(), + ) + }) + }; + + 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.clone(), + network: network.clone(), + sync_service: sync_service.clone(), + system_rpc_tx, + tx_handler_controller, + telemetry: telemetry.as_mut(), + })?; + + if let Some(hwbench) = hwbench { + sc_sysinfo::print_hwbench(&hwbench); + if validator { + warn_if_slow_hardware(&hwbench); + } - Ok((task_manager, client)) -} + 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), + ); + } + } -/// Build the import queue for Aura-based runtimes. -pub fn build_aura_import_queue( - client: Arc>, - block_import: ParachainBlockImport, - config: &Configuration, - telemetry: Option, - task_manager: &TaskManager, -) -> Result, 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, - 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)) - }, - registry: config.prometheus_registry(), - spawner: &task_manager.spawn_essential_handle(), - telemetry, - }) - .map_err(Into::into) -} + let announce_block = { + 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)))?; + + start_relay_chain_tasks(StartRelayChainTasksParams { + client: client.clone(), + announce_block: announce_block.clone(), + para_id, + relay_chain_interface: relay_chain_interface.clone(), + task_manager: &mut task_manager, + da_recovery_profile: if validator { + DARecoveryProfile::Collator + } else { + DARecoveryProfile::FullNode + }, + import_queue: import_queue_service, + relay_chain_slot_duration, + recovery_handle: Box::new(overseer_handle.clone()), + sync_service, + })?; + + if validator { + Self::StartConsensus::start_consensus( + client.clone(), + block_import, + prometheus_registry.as_ref(), + telemetry.as_ref().map(|t| t.handle()), + &task_manager, + relay_chain_interface.clone(), + transaction_pool, + params.keystore_container.keystore(), + relay_chain_slot_duration, + para_id, + collator_key.expect("Command line arguments do not allow this. qed"), + overseer_handle, + announce_block, + backend.clone(), + )?; + } -/// Start a rococo parachain node. -pub async fn start_rococo_parachain_node>( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, - para_id: ParaId, - use_experimental_slot_based: bool, - hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> { - let consensus_starter = if use_experimental_slot_based { - start_slot_based_aura_consensus::<_, AuraId> - } else { - start_lookahead_aura_consensus::<_, AuraId> - }; - start_node_impl::( - parachain_config, - polkadot_config, - collator_options, - CollatorSybilResistance::Resistant, // Aura - para_id, - build_parachain_rpc_extensions::, - build_aura_import_queue, - consensus_starter, - hwbench, - ) - .await -} + start_network.start_network(); -/// Build the import queue for the shell runtime. -pub fn build_shell_import_queue( - client: Arc>, - block_import: ParachainBlockImport, - config: &Configuration, - _: Option, - task_manager: &TaskManager, -) -> Result, sc_service::Error> { - cumulus_client_consensus_relay_chain::import_queue( - client, - block_import, - |_, _| async { Ok(()) }, - &task_manager.spawn_essential_handle(), - config.prometheus_registry(), - ) - .map_err(Into::into) + Ok(task_manager) + }) + } } -fn build_parachain_rpc_extensions( - deny_unsafe: sc_rpc::DenyUnsafe, - client: Arc>, - backend: Arc, - pool: Arc>>, -) -> Result, sc_service::Error> -where - RuntimeApi: ConstructRuntimeApi> + Send + Sync + 'static, - RuntimeApi::RuntimeApi: sp_transaction_pool::runtime_api::TaggedTransactionQueue - + sp_block_builder::BlockBuilder - + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi - + substrate_frame_rpc_system::AccountNonceApi, -{ - let deps = rpc::FullDeps { client, pool, deny_unsafe }; - - rpc::create_full(deps, backend).map_err(Into::into) +/// Build the import queue for the shell runtime. +pub(crate) struct BuildShellImportQueue(PhantomData); + +impl BuildImportQueue for BuildShellImportQueue { + fn build_import_queue( + client: Arc>, + block_import: ParachainBlockImport, + config: &Configuration, + _telemetry_handle: Option, + task_manager: &TaskManager, + ) -> sc_service::error::Result> { + cumulus_client_consensus_relay_chain::import_queue( + client, + block_import, + |_, _| async { Ok(()) }, + &task_manager.spawn_essential_handle(), + config.prometheus_registry(), + ) + .map_err(Into::into) + } } -fn build_contracts_rpc_extensions( - deny_unsafe: sc_rpc::DenyUnsafe, - client: Arc>, - _backend: Arc, - pool: Arc>>, -) -> Result, sc_service::Error> { - let deps = crate::rpc::FullDeps { client: client.clone(), pool: pool.clone(), deny_unsafe }; +pub(crate) struct ShellNode; - crate::rpc::create_contracts_rococo(deps).map_err(Into::into) -} +impl NodeSpec for ShellNode { + type RuntimeApi = FakeRuntimeApi; + type BuildImportQueue = BuildShellImportQueue; + type BuildRpcExtensions = BuildEmptyRpcExtensions; + type StartConsensus = StartRelayChainConsensus; -/// Start a polkadot-shell parachain node. -pub async fn start_shell_node>( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, - para_id: ParaId, - hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> { - start_node_impl::( - parachain_config, - polkadot_config, - collator_options, - CollatorSybilResistance::Unresistant, // free-for-all consensus - para_id, - |_, _, _, _| Ok(RpcModule::new(())), - build_shell_import_queue, - start_relay_chain_consensus, - hwbench, - ) - .await + const SYBIL_RESISTANCE: CollatorSybilResistance = CollatorSybilResistance::Unresistant; } struct Verifier { @@ -527,435 +428,374 @@ where /// Build the import queue for parachain runtimes that started with relay chain consensus and /// switched to aura. -pub fn build_relay_to_aura_import_queue( - client: Arc>, - block_import: ParachainBlockImport, - config: &Configuration, - telemetry_handle: Option, - task_manager: &TaskManager, -) -> Result, sc_service::Error> +pub(crate) struct BuildRelayToAuraImportQueue( + PhantomData<(RuntimeApi, AuraId)>, +); + +impl BuildImportQueue + for BuildRelayToAuraImportQueue where RuntimeApi: ConstructNodeRuntimeApi>, RuntimeApi::RuntimeApi: AuraRuntimeApi, AuraId: AuraIdT + Sync, { - let verifier_client = client.clone(); - - let aura_verifier = cumulus_client_consensus_aura::build_verifier::< - ::Pair, - _, - _, - _, - >(cumulus_client_consensus_aura::BuildVerifierParams { - client: verifier_client.clone(), - create_inherent_data_providers: move |parent_hash, _| { - let cidp_client = verifier_client.clone(); - async move { - let slot_duration = - cumulus_client_consensus_aura::slot_duration_at(&*cidp_client, parent_hash)?; - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = - sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); + fn build_import_queue( + client: Arc>, + block_import: ParachainBlockImport, + config: &Configuration, + telemetry_handle: Option, + task_manager: &TaskManager, + ) -> sc_service::error::Result> { + let verifier_client = client.clone(); + + let aura_verifier = + cumulus_client_consensus_aura::build_verifier::<::Pair, _, _, _>( + cumulus_client_consensus_aura::BuildVerifierParams { + client: verifier_client.clone(), + create_inherent_data_providers: move |parent_hash, _| { + let cidp_client = verifier_client.clone(); + async move { + let slot_duration = cumulus_client_consensus_aura::slot_duration_at( + &*cidp_client, + parent_hash, + )?; + 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)) + } + }, + telemetry: telemetry_handle, + }, + ); - Ok((slot, timestamp)) - } - }, - telemetry: telemetry_handle, - }); - - let relay_chain_verifier = - Box::new(RelayChainVerifier::new(client.clone(), |_, _| async { Ok(()) })) as Box<_>; - - let verifier = Verifier { - client, - relay_chain_verifier, - aura_verifier: Box::new(aura_verifier), - _phantom: PhantomData, - }; + let relay_chain_verifier = + Box::new(RelayChainVerifier::new(client.clone(), |_, _| async { Ok(()) })); + + let verifier = Verifier { + client, + relay_chain_verifier, + aura_verifier: Box::new(aura_verifier), + _phantom: PhantomData, + }; - let registry = config.prometheus_registry(); - let spawner = task_manager.spawn_essential_handle(); + let registry = config.prometheus_registry(); + let spawner = task_manager.spawn_essential_handle(); - Ok(BasicQueue::new(verifier, Box::new(block_import), None, &spawner, registry)) + Ok(BasicQueue::new(verifier, Box::new(block_import), None, &spawner, registry)) + } } /// Uses the lookahead collator to support async backing. /// /// Start an aura powered parachain node. Some system chains use this. -pub async fn start_generic_aura_async_backing_node>( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, - para_id: ParaId, - use_experimental_slot_based: bool, - hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> { - let consensus_starter = if use_experimental_slot_based { - start_slot_based_aura_consensus::<_, AuraId> - } else { - start_lookahead_aura_consensus::<_, AuraId> - }; - start_node_impl::( - parachain_config, - polkadot_config, - collator_options, - CollatorSybilResistance::Resistant, // Aura - para_id, - build_parachain_rpc_extensions::, - build_relay_to_aura_import_queue::<_, AuraId>, - consensus_starter, - hwbench, - ) - .await +pub(crate) struct AuraNode( + pub PhantomData<(RuntimeApi, AuraId, StartConsensus)>, +); + +impl Default for AuraNode { + fn default() -> Self { + Self(Default::default()) + } } -/// Start a shell node which should later transition into an Aura powered parachain node. Asset Hub -/// uses this because at genesis, Asset Hub was on the `shell` runtime which didn't have Aura and -/// needs to sync and upgrade before it can run `AuraApi` functions. -/// -/// Uses the lookahead collator to support async backing. -#[sc_tracing::logging::prefix_logs_with("Parachain")] -pub async fn start_asset_hub_async_backing_node( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, - para_id: ParaId, - use_experimental_slot_based: bool, - hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> +impl NodeSpec for AuraNode where RuntimeApi: ConstructNodeRuntimeApi>, RuntimeApi::RuntimeApi: AuraRuntimeApi + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi + substrate_frame_rpc_system::AccountNonceApi, AuraId: AuraIdT + Sync, - Net: NetworkBackend, + StartConsensus: self::StartConsensus + 'static, { - let consensus_starter = if use_experimental_slot_based { - start_slot_based_aura_consensus::<_, AuraId> - } else { - start_lookahead_aura_consensus::<_, AuraId> - }; - - start_node_impl::( - parachain_config, - polkadot_config, - collator_options, - CollatorSybilResistance::Resistant, // Aura - para_id, - build_parachain_rpc_extensions, - build_relay_to_aura_import_queue::<_, AuraId>, - consensus_starter, - hwbench, - ) - .await + type RuntimeApi = RuntimeApi; + type BuildImportQueue = BuildRelayToAuraImportQueue; + type BuildRpcExtensions = BuildParachainRpcExtensions; + type StartConsensus = StartConsensus; + const SYBIL_RESISTANCE: CollatorSybilResistance = CollatorSybilResistance::Resistant; } -/// Wait for the Aura runtime API to appear on chain. -/// This is useful for chains that started out without Aura. Components that -/// are depending on Aura functionality will wait until Aura appears in the runtime. -async fn wait_for_aura(client: Arc>) +pub fn new_aura_node_spec(extra_args: NodeExtraArgs) -> Box where RuntimeApi: ConstructNodeRuntimeApi>, - RuntimeApi::RuntimeApi: AuraRuntimeApi, + RuntimeApi::RuntimeApi: AuraRuntimeApi + + pallet_transaction_payment_rpc::TransactionPaymentRuntimeApi + + substrate_frame_rpc_system::AccountNonceApi, AuraId: AuraIdT + Sync, { - let finalized_hash = client.chain_info().finalized_hash; - if client - .runtime_api() - .has_api::>(finalized_hash) - .unwrap_or(false) - { - return; - }; - - let mut stream = client.finality_notification_stream(); - while let Some(notification) = stream.next().await { - let has_aura_api = client - .runtime_api() - .has_api::>(notification.hash) - .unwrap_or(false); - if has_aura_api { - return; - } + if extra_args.use_slot_based_consensus { + Box::new(AuraNode::< + RuntimeApi, + AuraId, + StartSlotBasedAuraConsensus, + >::default()) + } else { + Box::new(AuraNode::< + RuntimeApi, + AuraId, + StartLookaheadAuraConsensus, + >::default()) } } /// Start relay-chain consensus that is free for all. Everyone can submit a block, the relay-chain /// decides what is backed and included. -fn start_relay_chain_consensus( - client: Arc>, - block_import: ParachainBlockImport, - prometheus_registry: Option<&Registry>, - telemetry: Option, - task_manager: &TaskManager, - relay_chain_interface: Arc, - transaction_pool: Arc>>, - _keystore: KeystorePtr, - _relay_chain_slot_duration: Duration, - para_id: ParaId, - collator_key: CollatorPair, - overseer_handle: OverseerHandle, - announce_block: Arc>) + Send + Sync>, - _backend: Arc, -) -> Result<(), sc_service::Error> { - let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( - task_manager.spawn_handle(), - client.clone(), - transaction_pool, - prometheus_registry, - telemetry, - ); - - let free_for_all = cumulus_client_consensus_relay_chain::build_relay_chain_consensus( - cumulus_client_consensus_relay_chain::BuildRelayChainConsensusParams { - para_id, - proposer_factory, - block_import, - relay_chain_interface: relay_chain_interface.clone(), - create_inherent_data_providers: move |_, (relay_parent, validation_data)| { - let relay_chain_interface = relay_chain_interface.clone(); - async move { - let parachain_inherent = +pub(crate) struct StartRelayChainConsensus; + +impl StartConsensus for StartRelayChainConsensus { + fn start_consensus( + client: Arc>, + block_import: ParachainBlockImport, + prometheus_registry: Option<&Registry>, + telemetry: Option, + task_manager: &TaskManager, + relay_chain_interface: Arc, + transaction_pool: Arc>>, + _keystore: KeystorePtr, + _relay_chain_slot_duration: Duration, + para_id: ParaId, + collator_key: CollatorPair, + overseer_handle: OverseerHandle, + announce_block: Arc>) + Send + Sync>, + _backend: Arc, + ) -> Result<(), Error> { + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( + task_manager.spawn_handle(), + client.clone(), + transaction_pool, + prometheus_registry, + telemetry, + ); + + let free_for_all = cumulus_client_consensus_relay_chain::build_relay_chain_consensus( + cumulus_client_consensus_relay_chain::BuildRelayChainConsensusParams { + para_id, + proposer_factory, + block_import, + relay_chain_interface: relay_chain_interface.clone(), + create_inherent_data_providers: move |_, (relay_parent, validation_data)| { + let relay_chain_interface = relay_chain_interface.clone(); + async move { + let parachain_inherent = cumulus_client_parachain_inherent::ParachainInherentDataProvider::create_at( relay_parent, &relay_chain_interface, &validation_data, para_id, ).await; - let parachain_inherent = parachain_inherent.ok_or_else(|| { - Box::::from( - "Failed to create parachain inherent", - ) - })?; - Ok(parachain_inherent) - } + let parachain_inherent = parachain_inherent.ok_or_else(|| { + Box::::from( + "Failed to create parachain inherent", + ) + })?; + Ok(parachain_inherent) + } + }, }, - }, - ); - - let spawner = task_manager.spawn_handle(); - - // Required for free-for-all consensus - #[allow(deprecated)] - old_consensus::start_collator_sync(old_consensus::StartCollatorParams { - para_id, - block_status: client.clone(), - announce_block, - overseer_handle, - spawner, - key: collator_key, - parachain_consensus: free_for_all, - runtime_api: client.clone(), - }); - - Ok(()) + ); + + let spawner = task_manager.spawn_handle(); + + // Required for free-for-all consensus + #[allow(deprecated)] + old_consensus::start_collator_sync(old_consensus::StartCollatorParams { + para_id, + block_status: client.clone(), + announce_block, + overseer_handle, + spawner, + key: collator_key, + parachain_consensus: free_for_all, + runtime_api: client.clone(), + }); + + Ok(()) + } } /// Start consensus using the lookahead aura collator. -fn start_lookahead_aura_consensus( - client: Arc>, - block_import: ParachainBlockImport, - prometheus_registry: Option<&Registry>, - telemetry: Option, - task_manager: &TaskManager, - relay_chain_interface: Arc, - transaction_pool: Arc>>, - keystore: KeystorePtr, - relay_chain_slot_duration: Duration, - para_id: ParaId, - collator_key: CollatorPair, - overseer_handle: OverseerHandle, - announce_block: Arc>) + Send + Sync>, - backend: Arc, -) -> Result<(), sc_service::Error> +pub(crate) struct StartSlotBasedAuraConsensus( + PhantomData<(RuntimeApi, AuraId)>, +); + +impl StartConsensus + for StartSlotBasedAuraConsensus where RuntimeApi: ConstructNodeRuntimeApi>, RuntimeApi::RuntimeApi: AuraRuntimeApi, AuraId: AuraIdT + Sync, { - let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( - task_manager.spawn_handle(), - client.clone(), - transaction_pool, - prometheus_registry, - telemetry.clone(), - ); - - let collator_service = CollatorService::new( - client.clone(), - Arc::new(task_manager.spawn_handle()), - announce_block, - client.clone(), - ); - - let params = AuraParams { - create_inherent_data_providers: move |_, ()| async move { Ok(()) }, - block_import, - para_client: client.clone(), - para_backend: backend, - relay_client: relay_chain_interface, - code_hash_provider: { - let client = client.clone(); - move |block_hash| { - client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) - } - }, - keystore, - collator_key, - para_id, - overseer_handle, - relay_chain_slot_duration, - proposer: Proposer::new(proposer_factory), - collator_service, - authoring_duration: Duration::from_millis(1500), - reinitialize: false, - }; + fn start_consensus( + client: Arc>, + block_import: ParachainBlockImport, + prometheus_registry: Option<&Registry>, + telemetry: Option, + task_manager: &TaskManager, + relay_chain_interface: Arc, + transaction_pool: Arc>>, + keystore: KeystorePtr, + relay_chain_slot_duration: Duration, + para_id: ParaId, + collator_key: CollatorPair, + _overseer_handle: OverseerHandle, + announce_block: Arc>) + Send + Sync>, + backend: Arc, + ) -> Result<(), Error> { + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( + task_manager.spawn_handle(), + client.clone(), + transaction_pool, + prometheus_registry, + telemetry.clone(), + ); - let fut = async move { - wait_for_aura(client).await; - aura::run::::Pair, _, _, _, _, _, _, _, _>(params).await; - }; - task_manager.spawn_essential_handle().spawn("aura", None, fut); + let proposer = Proposer::new(proposer_factory); + let collator_service = CollatorService::new( + client.clone(), + Arc::new(task_manager.spawn_handle()), + announce_block, + client.clone(), + ); - Ok(()) + let client_for_aura = client.clone(); + let params = SlotBasedParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import, + para_client: client.clone(), + para_backend: backend.clone(), + relay_client: relay_chain_interface, + code_hash_provider: move |block_hash| { + client_for_aura.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) + }, + keystore, + collator_key, + para_id, + relay_chain_slot_duration, + proposer, + collator_service, + authoring_duration: Duration::from_millis(2000), + reinitialize: false, + slot_drift: Duration::from_secs(1), + }; + + let (collation_future, block_builder_future) = + slot_based::run::::Pair, _, _, _, _, _, _, _, _>(params); + + task_manager.spawn_essential_handle().spawn( + "collation-task", + Some("parachain-block-authoring"), + collation_future, + ); + task_manager.spawn_essential_handle().spawn( + "block-builder-task", + Some("parachain-block-authoring"), + block_builder_future, + ); + Ok(()) + } } -/// Start consensus using the lookahead aura collator. -fn start_slot_based_aura_consensus( - client: Arc>, - block_import: ParachainBlockImport, - prometheus_registry: Option<&Registry>, - telemetry: Option, - task_manager: &TaskManager, - relay_chain_interface: Arc, - transaction_pool: Arc>>, - keystore: KeystorePtr, - relay_chain_slot_duration: Duration, - para_id: ParaId, - collator_key: CollatorPair, - _overseer_handle: OverseerHandle, - announce_block: Arc>) + Send + Sync>, - backend: Arc, -) -> Result<(), sc_service::Error> +/// Wait for the Aura runtime API to appear on chain. +/// This is useful for chains that started out without Aura. Components that +/// are depending on Aura functionality will wait until Aura appears in the runtime. +async fn wait_for_aura(client: Arc>) where RuntimeApi: ConstructNodeRuntimeApi>, RuntimeApi::RuntimeApi: AuraRuntimeApi, AuraId: AuraIdT + Sync, { - let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( - task_manager.spawn_handle(), - client.clone(), - transaction_pool, - prometheus_registry, - telemetry.clone(), - ); - - let proposer = Proposer::new(proposer_factory); - let collator_service = CollatorService::new( - client.clone(), - Arc::new(task_manager.spawn_handle()), - announce_block, - client.clone(), - ); - - let client_for_aura = client.clone(); - let params = SlotBasedParams { - create_inherent_data_providers: move |_, ()| async move { Ok(()) }, - block_import, - para_client: client.clone(), - para_backend: backend.clone(), - relay_client: relay_chain_interface, - code_hash_provider: move |block_hash| { - client_for_aura.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) - }, - keystore, - collator_key, - para_id, - relay_chain_slot_duration, - proposer, - collator_service, - authoring_duration: Duration::from_millis(2000), - reinitialize: false, - slot_drift: Duration::from_secs(1), + let finalized_hash = client.chain_info().finalized_hash; + if client.runtime_api().has_aura_api(finalized_hash) { + return; }; - let (collation_future, block_builder_future) = - slot_based::run::::Pair, _, _, _, _, _, _, _, _>(params); - - task_manager.spawn_essential_handle().spawn( - "collation-task", - Some("parachain-block-authoring"), - collation_future, - ); - task_manager.spawn_essential_handle().spawn( - "block-builder-task", - Some("parachain-block-authoring"), - block_builder_future, - ); - Ok(()) + let mut stream = client.finality_notification_stream(); + while let Some(notification) = stream.next().await { + if client.runtime_api().has_aura_api(notification.hash) { + return; + } + } } -/// Start an aura powered parachain node which uses the lookahead collator to support async backing. -/// This node is basic in the sense that its runtime api doesn't include common contents such as -/// transaction payment. Used for aura glutton. -pub async fn start_basic_async_backing_node>( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, - para_id: ParaId, - use_experimental_slot_based: bool, - hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> { - let consensus_starter = if use_experimental_slot_based { - start_slot_based_aura_consensus::<_, AuraId> - } else { - start_lookahead_aura_consensus::<_, AuraId> - }; - start_node_impl::( - parachain_config, - polkadot_config, - collator_options, - CollatorSybilResistance::Resistant, // Aura - para_id, - |_, _, _, _| Ok(RpcModule::new(())), - build_relay_to_aura_import_queue::<_, AuraId>, - consensus_starter, - hwbench, - ) - .await -} +/// Start consensus using the lookahead aura collator. +pub(crate) struct StartLookaheadAuraConsensus( + PhantomData<(RuntimeApi, AuraId)>, +); -/// Start a parachain node for Rococo Contracts. -pub async fn start_contracts_rococo_node>( - parachain_config: Configuration, - polkadot_config: Configuration, - collator_options: CollatorOptions, - para_id: ParaId, - use_experimental_slot_based: bool, - hwbench: Option, -) -> sc_service::error::Result<(TaskManager, Arc>)> { - let consensus_starter = if use_experimental_slot_based { - start_slot_based_aura_consensus::<_, AuraId> - } else { - start_lookahead_aura_consensus::<_, AuraId> - }; - start_node_impl::( - parachain_config, - polkadot_config, - collator_options, - CollatorSybilResistance::Resistant, // Aura - para_id, - build_contracts_rpc_extensions, - build_aura_import_queue, - consensus_starter, - hwbench, - ) - .await +impl StartConsensus + for StartLookaheadAuraConsensus +where + RuntimeApi: ConstructNodeRuntimeApi>, + RuntimeApi::RuntimeApi: AuraRuntimeApi, + AuraId: AuraIdT + Sync, +{ + fn start_consensus( + client: Arc>, + block_import: ParachainBlockImport, + prometheus_registry: Option<&Registry>, + telemetry: Option, + task_manager: &TaskManager, + relay_chain_interface: Arc, + transaction_pool: Arc>>, + keystore: KeystorePtr, + relay_chain_slot_duration: Duration, + para_id: ParaId, + collator_key: CollatorPair, + overseer_handle: OverseerHandle, + announce_block: Arc>) + Send + Sync>, + backend: Arc, + ) -> Result<(), Error> { + let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( + task_manager.spawn_handle(), + client.clone(), + transaction_pool, + prometheus_registry, + telemetry.clone(), + ); + + let collator_service = CollatorService::new( + client.clone(), + Arc::new(task_manager.spawn_handle()), + announce_block, + client.clone(), + ); + + let params = AuraParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import, + para_client: client.clone(), + para_backend: backend, + relay_client: relay_chain_interface, + code_hash_provider: { + let client = client.clone(); + move |block_hash| { + client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) + } + }, + keystore, + collator_key, + para_id, + overseer_handle, + relay_chain_slot_duration, + proposer: Proposer::new(proposer_factory), + collator_service, + authoring_duration: Duration::from_millis(1500), + reinitialize: false, + }; + + let fut = async move { + wait_for_aura(client).await; + aura::run::::Pair, _, _, _, _, _, _, _, _>(params).await; + }; + task_manager.spawn_essential_handle().spawn("aura", None, fut); + + Ok(()) + } } /// Checks that the hardware meets the requirements and print a warning otherwise. @@ -970,3 +810,177 @@ fn warn_if_slow_hardware(hwbench: &sc_sysinfo::HwBench) { ); } } + +type SyncCmdResult = sc_cli::Result<()>; + +type AsyncCmdResult<'a> = + sc_cli::Result<(Pin + 'a>>, TaskManager)>; + +pub(crate) trait DynNodeSpec { + fn prepare_check_block_cmd( + self: Box, + config: Configuration, + cmd: &CheckBlockCmd, + ) -> AsyncCmdResult<'_>; + + fn prepare_export_blocks_cmd( + self: Box, + config: Configuration, + cmd: &ExportBlocksCmd, + ) -> AsyncCmdResult<'_>; + + fn prepare_export_state_cmd( + self: Box, + config: Configuration, + cmd: &ExportStateCmd, + ) -> AsyncCmdResult<'_>; + + fn prepare_import_blocks_cmd( + self: Box, + config: Configuration, + cmd: &ImportBlocksCmd, + ) -> AsyncCmdResult<'_>; + + fn prepare_revert_cmd( + self: Box, + config: Configuration, + cmd: &RevertCmd, + ) -> AsyncCmdResult<'_>; + + fn run_export_genesis_head_cmd( + self: Box, + config: Configuration, + cmd: &ExportGenesisHeadCommand, + ) -> SyncCmdResult; + + fn run_benchmark_block_cmd( + self: Box, + config: Configuration, + cmd: &BlockCmd, + ) -> SyncCmdResult; + + #[cfg(any(feature = "runtime-benchmarks"))] + fn run_benchmark_storage_cmd( + self: Box, + config: Configuration, + cmd: &StorageCmd, + ) -> SyncCmdResult; + + fn start_node( + self: Box, + parachain_config: Configuration, + polkadot_config: Configuration, + collator_options: CollatorOptions, + para_id: ParaId, + hwbench: Option, + ) -> Pin>>>; +} + +impl DynNodeSpec for T +where + T: NodeSpec, +{ + fn prepare_check_block_cmd( + self: Box, + config: Configuration, + cmd: &CheckBlockCmd, + ) -> AsyncCmdResult<'_> { + let partial = Self::new_partial(&config).map_err(sc_cli::Error::Service)?; + Ok((Box::pin(cmd.run(partial.client, partial.import_queue)), partial.task_manager)) + } + + fn prepare_export_blocks_cmd( + self: Box, + config: Configuration, + cmd: &ExportBlocksCmd, + ) -> AsyncCmdResult<'_> { + let partial = Self::new_partial(&config).map_err(sc_cli::Error::Service)?; + Ok((Box::pin(cmd.run(partial.client, config.database)), partial.task_manager)) + } + + fn prepare_export_state_cmd( + self: Box, + config: Configuration, + cmd: &ExportStateCmd, + ) -> AsyncCmdResult<'_> { + let partial = Self::new_partial(&config).map_err(sc_cli::Error::Service)?; + Ok((Box::pin(cmd.run(partial.client, config.chain_spec)), partial.task_manager)) + } + + fn prepare_import_blocks_cmd( + self: Box, + config: Configuration, + cmd: &ImportBlocksCmd, + ) -> AsyncCmdResult<'_> { + let partial = Self::new_partial(&config).map_err(sc_cli::Error::Service)?; + Ok((Box::pin(cmd.run(partial.client, partial.import_queue)), partial.task_manager)) + } + + fn prepare_revert_cmd( + self: Box, + config: Configuration, + cmd: &RevertCmd, + ) -> AsyncCmdResult<'_> { + let partial = Self::new_partial(&config).map_err(sc_cli::Error::Service)?; + Ok((Box::pin(cmd.run(partial.client, partial.backend, None)), partial.task_manager)) + } + + fn run_export_genesis_head_cmd( + self: Box, + config: Configuration, + cmd: &ExportGenesisHeadCommand, + ) -> SyncCmdResult { + let partial = Self::new_partial(&config).map_err(sc_cli::Error::Service)?; + cmd.run(partial.client) + } + + fn run_benchmark_block_cmd( + self: Box, + config: Configuration, + cmd: &BlockCmd, + ) -> SyncCmdResult { + let partial = Self::new_partial(&config).map_err(sc_cli::Error::Service)?; + cmd.run(partial.client) + } + + #[cfg(any(feature = "runtime-benchmarks"))] + fn run_benchmark_storage_cmd( + self: Box, + config: Configuration, + cmd: &StorageCmd, + ) -> SyncCmdResult { + let partial = Self::new_partial(&config).map_err(sc_cli::Error::Service)?; + let db = partial.backend.expose_db(); + let storage = partial.backend.expose_storage(); + + cmd.run(config, partial.client, db, storage) + } + + fn start_node( + self: Box, + parachain_config: Configuration, + polkadot_config: Configuration, + collator_options: CollatorOptions, + para_id: ParaId, + hwbench: Option, + ) -> Pin>>> { + match parachain_config.network.network_backend { + sc_network::config::NetworkBackendType::Libp2p => + ::start_node::>( + parachain_config, + polkadot_config, + collator_options, + para_id, + hwbench, + ), + sc_network::config::NetworkBackendType::Litep2p => + ::start_node::( + parachain_config, + polkadot_config, + collator_options, + para_id, + hwbench, + ), + } + } +} diff --git a/polkadot/cli/src/command.rs b/polkadot/cli/src/command.rs index b89054b4dc3..62d99122c30 100644 --- a/polkadot/cli/src/command.rs +++ b/polkadot/cli/src/command.rs @@ -192,7 +192,7 @@ where F: FnOnce(&mut sc_cli::LoggerBuilder, &sc_service::Configuration), { let runner = cli - .create_runner_with_logger_hook::(&cli.run.base, logger_hook) + .create_runner_with_logger_hook::<_, _, F>(&cli.run.base, logger_hook) .map_err(Error::from)?; let chain_spec = &runner.config().chain_spec; diff --git a/substrate/client/cli/src/lib.rs b/substrate/client/cli/src/lib.rs index 104e8ec8b79..1bb9fec0e27 100644 --- a/substrate/client/cli/src/lib.rs +++ b/substrate/client/cli/src/lib.rs @@ -58,11 +58,11 @@ pub trait SubstrateCli: Sized { /// Implementation version. /// - /// By default this will look like this: + /// By default, it will look like this: /// /// `2.0.0-b950f731c` /// - /// Where the hash is the short commit hash of the commit of in the Git repository. + /// Where the hash is the short hash of the commit in the Git repository. fn impl_version() -> String; /// Executable file name. @@ -199,17 +199,8 @@ pub trait SubstrateCli: Sized { fn create_runner, DVC: DefaultConfigurationValues>( &self, command: &T, - ) -> error::Result> { - let tokio_runtime = build_runtime()?; - - // `capture` needs to be called in a tokio context. - // Also capture them as early as possible. - let signals = tokio_runtime.block_on(async { Signals::capture() })?; - - let config = command.create_configuration(self, tokio_runtime.handle().clone())?; - - command.init(&Self::support_url(), &Self::impl_version(), |_, _| {}, &config)?; - Runner::new(config, tokio_runtime, signals) + ) -> Result> { + self.create_runner_with_logger_hook(command, |_, _| {}) } /// Create a runner for the command provided in argument. The `logger_hook` can be used to setup @@ -231,11 +222,15 @@ pub trait SubstrateCli: Sized { /// } /// } /// ``` - fn create_runner_with_logger_hook( + fn create_runner_with_logger_hook< + T: CliConfiguration, + DVC: DefaultConfigurationValues, + F, + >( &self, command: &T, logger_hook: F, - ) -> error::Result> + ) -> Result> where F: FnOnce(&mut LoggerBuilder, &Configuration), { diff --git a/substrate/client/service/src/lib.rs b/substrate/client/service/src/lib.rs index a51bb4012d5..63be296d1b2 100644 --- a/substrate/client/service/src/lib.rs +++ b/substrate/client/service/src/lib.rs @@ -137,7 +137,7 @@ pub struct PartialComponents, /// The chain task manager. pub task_manager: TaskManager, - /// A keystore container instance.. + /// A keystore container instance. pub keystore_container: KeystoreContainer, /// A chain selection algorithm instance. pub select_chain: SelectChain, -- GitLab From 2f0e5a61b7739ff0f41ba124653b45ce269dee7e Mon Sep 17 00:00:00 2001 From: Alin Dima Date: Tue, 9 Jul 2024 14:36:07 +0300 Subject: [PATCH 018/252] add notices to the implementer's guide docs that changed for elastic scaling (#4983) The update is tracked by: https://github.com/paritytech/polkadot-sdk/issues/3699 However, this is not worth doing at this point since it will change in the future for phase 2 of the implementation. Still, it's useful to let people know that the information is not the most up to date. --- .../implementers-guide/src/node/backing/candidate-backing.md | 4 ++++ .../src/node/backing/prospective-parachains.md | 4 ++++ .../src/node/collators/collator-protocol.md | 4 ++++ .../implementers-guide/src/node/utility/provisioner.md | 4 ++++ polkadot/roadmap/implementers-guide/src/runtime/inclusion.md | 4 ++++ .../roadmap/implementers-guide/src/runtime/parainherent.md | 4 ++++ 6 files changed, 24 insertions(+) diff --git a/polkadot/roadmap/implementers-guide/src/node/backing/candidate-backing.md b/polkadot/roadmap/implementers-guide/src/node/backing/candidate-backing.md index 31f8423fe27..0e483f02ec3 100644 --- a/polkadot/roadmap/implementers-guide/src/node/backing/candidate-backing.md +++ b/polkadot/roadmap/implementers-guide/src/node/backing/candidate-backing.md @@ -1,5 +1,9 @@ # Candidate Backing +> NOTE: This module has suffered changes for the elastic scaling implementation. As a result, parts of this document may +be out of date and will be updated at a later time. Issue tracking the update: +https://github.com/paritytech/polkadot-sdk/issues/3699 + The Candidate Backing subsystem ensures every parablock considered for relay block inclusion has been seconded by at least one validator, and approved by a quorum. Parablocks for which not enough validators will assert correctness are discarded. If the block later proves invalid, the initial backers are slashable; this gives Polkadot a rational threat diff --git a/polkadot/roadmap/implementers-guide/src/node/backing/prospective-parachains.md b/polkadot/roadmap/implementers-guide/src/node/backing/prospective-parachains.md index 701f6c87caf..61278621cf5 100644 --- a/polkadot/roadmap/implementers-guide/src/node/backing/prospective-parachains.md +++ b/polkadot/roadmap/implementers-guide/src/node/backing/prospective-parachains.md @@ -1,5 +1,9 @@ # Prospective Parachains +> NOTE: This module has suffered changes for the elastic scaling implementation. As a result, parts of this document may +be out of date and will be updated at a later time. Issue tracking the update: +https://github.com/paritytech/polkadot-sdk/issues/3699 + ## Overview **Purpose:** Tracks and handles prospective parachain fragments and informs diff --git a/polkadot/roadmap/implementers-guide/src/node/collators/collator-protocol.md b/polkadot/roadmap/implementers-guide/src/node/collators/collator-protocol.md index 1fed671170c..432d9ab69ba 100644 --- a/polkadot/roadmap/implementers-guide/src/node/collators/collator-protocol.md +++ b/polkadot/roadmap/implementers-guide/src/node/collators/collator-protocol.md @@ -1,5 +1,9 @@ # Collator Protocol +> NOTE: This module has suffered changes for the elastic scaling implementation. As a result, parts of this document may +be out of date and will be updated at a later time. Issue tracking the update: +https://github.com/paritytech/polkadot-sdk/issues/3699 + The Collator Protocol implements the network protocol by which collators and validators communicate. It is used by collators to distribute collations to validators and used by validators to accept collations by collators. diff --git a/polkadot/roadmap/implementers-guide/src/node/utility/provisioner.md b/polkadot/roadmap/implementers-guide/src/node/utility/provisioner.md index b017259da8c..64727d39fab 100644 --- a/polkadot/roadmap/implementers-guide/src/node/utility/provisioner.md +++ b/polkadot/roadmap/implementers-guide/src/node/utility/provisioner.md @@ -1,5 +1,9 @@ # Provisioner +> NOTE: This module has suffered changes for the elastic scaling implementation. As a result, parts of this document may +be out of date and will be updated at a later time. Issue tracking the update: +https://github.com/paritytech/polkadot-sdk/issues/3699 + Relay chain block authorship authority is governed by BABE and is beyond the scope of the Overseer and the rest of the subsystems. That said, ultimately the block author needs to select a set of backable parachain candidates and other consensus data, and assemble a block from them. This subsystem is responsible for providing the necessary data to all diff --git a/polkadot/roadmap/implementers-guide/src/runtime/inclusion.md b/polkadot/roadmap/implementers-guide/src/runtime/inclusion.md index 0700a781d42..5031433cf5a 100644 --- a/polkadot/roadmap/implementers-guide/src/runtime/inclusion.md +++ b/polkadot/roadmap/implementers-guide/src/runtime/inclusion.md @@ -1,5 +1,9 @@ # Inclusion Pallet +> NOTE: This module has suffered changes for the elastic scaling implementation. As a result, parts of this document may +be out of date and will be updated at a later time. Issue tracking the update: +https://github.com/paritytech/polkadot-sdk/issues/3699 + The inclusion module is responsible for inclusion and availability of scheduled parachains. It also manages the UMP dispatch queue of each parachain. diff --git a/polkadot/roadmap/implementers-guide/src/runtime/parainherent.md b/polkadot/roadmap/implementers-guide/src/runtime/parainherent.md index 7972c706b9e..f21e1a59c1a 100644 --- a/polkadot/roadmap/implementers-guide/src/runtime/parainherent.md +++ b/polkadot/roadmap/implementers-guide/src/runtime/parainherent.md @@ -1,5 +1,9 @@ # `ParaInherent` +> NOTE: This module has suffered changes for the elastic scaling implementation. As a result, parts of this document may +be out of date and will be updated at a later time. Issue tracking the update: +https://github.com/paritytech/polkadot-sdk/issues/3699 + This module is responsible for providing all data given to the runtime by the block author to the various parachains modules. The entry-point is mandatory, in that it must be invoked exactly once within every block, and it is also "inherent", in that it is provided with no origin by the block author. The data within it carries its own -- GitLab From 9403a5d40214b0d223c87c8d7b13139672edfe95 Mon Sep 17 00:00:00 2001 From: Francisco Aguirre Date: Tue, 9 Jul 2024 15:49:01 +0200 Subject: [PATCH 019/252] Add `MAX_INSTRUCTIONS_TO_DECODE` to XCMv2 (#4978) It was added to v4 and v3 but was missing from v2 --- polkadot/xcm/src/v2/mod.rs | 67 ++++++++++++++++++++++++++++++++++++-- prdoc/pr_4978.prdoc | 18 ++++++++++ 2 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 prdoc/pr_4978.prdoc diff --git a/polkadot/xcm/src/v2/mod.rs b/polkadot/xcm/src/v2/mod.rs index fe7f05dd887..1afc120f500 100644 --- a/polkadot/xcm/src/v2/mod.rs +++ b/polkadot/xcm/src/v2/mod.rs @@ -62,7 +62,10 @@ use super::{ }; use alloc::{vec, vec::Vec}; use bounded_collections::{ConstU32, WeakBoundedVec}; -use codec::{self, Decode, Encode, MaxEncodedLen}; +use codec::{ + self, decode_vec_with_len, Compact, Decode, Encode, Error as CodecError, Input as CodecInput, + MaxEncodedLen, +}; use core::{fmt::Debug, result}; use derivative::Derivative; use scale_info::TypeInfo; @@ -278,7 +281,7 @@ pub const VERSION: super::Version = 2; pub type QueryId = u64; /// DEPRECATED. Please use XCMv3 or XCMv4 instead. -#[derive(Derivative, Default, Encode, Decode, TypeInfo)] +#[derive(Derivative, Default, Encode, TypeInfo)] #[derivative(Clone(bound = ""), Eq(bound = ""), PartialEq(bound = ""), Debug(bound = ""))] #[codec(encode_bound())] #[codec(decode_bound())] @@ -286,6 +289,31 @@ pub type QueryId = u64; #[scale_info(replace_segment("staging_xcm", "xcm"))] pub struct Xcm(pub Vec>); +environmental::environmental!(instructions_count: u8); + +impl Decode for Xcm { + fn decode(input: &mut I) -> core::result::Result { + instructions_count::using_once(&mut 0, || { + let number_of_instructions: u32 = >::decode(input)?.into(); + instructions_count::with(|count| { + *count = count.saturating_add(number_of_instructions as u8); + if *count > MAX_INSTRUCTIONS_TO_DECODE { + return Err(CodecError::from("Max instructions exceeded")) + } + Ok(()) + }) + .unwrap_or(Ok(()))?; + let decoded_instructions = decode_vec_with_len(input, number_of_instructions as usize)?; + Ok(Self(decoded_instructions)) + }) + } +} + +/// The maximal number of instructions in an XCM before decoding fails. +/// +/// This is a deliberate limit - not a technical one. +pub const MAX_INSTRUCTIONS_TO_DECODE: u8 = 100; + impl Xcm { /// Create an empty instance. pub fn new() -> Self { @@ -1157,3 +1185,38 @@ impl TryFrom> for Instruction(vec![ClearOrigin; MAX_INSTRUCTIONS_TO_DECODE as usize]); + let encoded = max_xcm.encode(); + assert!(Xcm::<()>::decode(&mut &encoded[..]).is_ok()); + + let big_xcm = Xcm::<()>(vec![ClearOrigin; MAX_INSTRUCTIONS_TO_DECODE as usize + 1]); + let encoded = big_xcm.encode(); + assert!(Xcm::<()>::decode(&mut &encoded[..]).is_err()); + + let nested_xcm = Xcm::<()>(vec![ + DepositReserveAsset { + assets: All.into(), + dest: Here.into(), + xcm: max_xcm, + max_assets: 1, + }; + (MAX_INSTRUCTIONS_TO_DECODE / 2) as usize + ]); + let encoded = nested_xcm.encode(); + assert!(Xcm::<()>::decode(&mut &encoded[..]).is_err()); + + let even_more_nested_xcm = Xcm::<()>(vec![SetAppendix(nested_xcm); 64]); + let encoded = even_more_nested_xcm.encode(); + assert_eq!(encoded.len(), 345730); + // This should not decode since the limit is 100 + assert_eq!(MAX_INSTRUCTIONS_TO_DECODE, 100, "precondition"); + assert!(Xcm::<()>::decode(&mut &encoded[..]).is_err()); + } +} diff --git a/prdoc/pr_4978.prdoc b/prdoc/pr_4978.prdoc new file mode 100644 index 00000000000..1f86d512f2c --- /dev/null +++ b/prdoc/pr_4978.prdoc @@ -0,0 +1,18 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Add MAX_INSTRUCTIONS_TO_DECODE to XCMv2 + +doc: + - audience: Runtime User + description: | + Added a max number of instructions to XCMv2. If using XCMv2, you'll have to take this limit into account. + It was set to 100. + - audience: Runtime Dev + description: | + Added a max number of instructions to XCMv2. If using XCMv2, you'll have to take this limit into account. + It was set to 100. + +crates: + - name: staging-xcm + bump: minor -- GitLab From 9fd7b432fc201f05cb7a14d58771b2aa7f65bde1 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Wed, 10 Jul 2024 17:42:07 +0100 Subject: [PATCH 020/252] Expose metadata-hash feature from polkadot crate (#4886) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enabling this feature when building the `polkadot ` crate will lead it to being enabled for the builtin westend and rococo runtimes. The result of that is that a merkleized metadata hash will be computed (at some time cost) in those runtimes, which will allow transactions which include a hash via the `CheckMetadataHash` extension to work. The idea is that this is useful for being able to test/experiment with the `CheckMetadataHash` extension against local nodes. --------- Co-authored-by: command-bot <> Co-authored-by: Bastian Köcher --- Cargo.lock | 4 ++-- polkadot/Cargo.toml | 5 +++++ polkadot/cli/Cargo.toml | 1 + polkadot/node/service/Cargo.toml | 7 +++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index df96a2140ab..ab38930b1b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18528,9 +18528,9 @@ dependencies = [ [[package]] name = "scale-decode" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b12ebca36cec2a3f983c46295b282b35e5f8496346fb859a8776dad5389e5389" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ "derive_more", "parity-scale-codec", diff --git a/polkadot/Cargo.toml b/polkadot/Cargo.toml index 512783de948..3a939464868 100644 --- a/polkadot/Cargo.toml +++ b/polkadot/Cargo.toml @@ -68,6 +68,11 @@ jemalloc-allocator = [ "polkadot-overseer/jemalloc-allocator", ] +# Generate the metadata hash needed for CheckMetadataHash +# in the builtin test runtimes (westend and rococo). +metadata-hash = [ + "polkadot-cli/metadata-hash", +] # Enables timeout-based tests supposed to be run only in CI environment as they may be flaky # when run locally depending on system load diff --git a/polkadot/cli/Cargo.toml b/polkadot/cli/Cargo.toml index 9dcdb44ab64..da37f6062c5 100644 --- a/polkadot/cli/Cargo.toml +++ b/polkadot/cli/Cargo.toml @@ -49,6 +49,7 @@ substrate-build-script-utils = { workspace = true, default-features = true } [features] default = ["cli", "db", "full-node"] db = ["polkadot-service/db"] +metadata-hash = ["polkadot-service/metadata-hash"] service = ["dep:polkadot-service"] cli = [ "clap", diff --git a/polkadot/node/service/Cargo.toml b/polkadot/node/service/Cargo.toml index 23cd51d8a04..c0ddbf7dcfc 100644 --- a/polkadot/node/service/Cargo.toml +++ b/polkadot/node/service/Cargo.toml @@ -201,6 +201,13 @@ rococo-native = [ "rococo-runtime-constants", ] +# Generate the metadata hash needed for CheckMetadataHash +# in the test runtimes. +metadata-hash = [ + "rococo-runtime?/metadata-hash", + "westend-runtime?/metadata-hash", +] + runtime-benchmarks = [ "frame-benchmarking-cli/runtime-benchmarks", "frame-benchmarking/runtime-benchmarks", -- GitLab From 02e50adf7ba6cc65a9ef5c332b3e2974c8d23f48 Mon Sep 17 00:00:00 2001 From: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Date: Wed, 10 Jul 2024 17:46:08 +0100 Subject: [PATCH 021/252] Explain usage of `` in FRAME storage + Update parachain pallet template (#4941) Explains one of the annoying parts of FRAME storage that we have seen multiple times in PBA everyone gets stuck on. I have not updated the other two templates for now, and only reflected it in the parachain template. That can happen in a follow-up. - [x] Update possible answers in SE about the same topic. --------- Co-authored-by: Serban Iorga Co-authored-by: command-bot <> --- Cargo.lock | 1 + docs/sdk/src/polkadot_sdk/frame_runtime.rs | 4 +- .../reference_docs/frame_storage_derives.rs | 199 ++++++++++++++++++ docs/sdk/src/reference_docs/mod.rs | 4 + substrate/frame/bags-list/src/list/tests.rs | 3 +- substrate/frame/nis/src/lib.rs | 8 +- substrate/frame/nomination-pools/src/lib.rs | 1 - substrate/frame/src/lib.rs | 42 +++- .../frame/state-trie-migration/src/lib.rs | 2 - substrate/frame/support/src/lib.rs | 12 ++ templates/minimal/README.md | 19 +- templates/minimal/pallets/template/src/lib.rs | 3 + .../parachain/pallets/template/Cargo.toml | 12 +- .../pallets/template/src/benchmarking.rs | 17 +- .../parachain/pallets/template/src/lib.rs | 91 +++++++- .../parachain/pallets/template/src/tests.rs | 2 +- 16 files changed, 365 insertions(+), 55 deletions(-) create mode 100644 docs/sdk/src/reference_docs/frame_storage_derives.rs diff --git a/Cargo.lock b/Cargo.lock index ab38930b1b0..3b46a2680e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11270,6 +11270,7 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", + "sp-std 14.0.0", ] [[package]] diff --git a/docs/sdk/src/polkadot_sdk/frame_runtime.rs b/docs/sdk/src/polkadot_sdk/frame_runtime.rs index f9b8a381365..39255c8f51a 100644 --- a/docs/sdk/src/polkadot_sdk/frame_runtime.rs +++ b/docs/sdk/src/polkadot_sdk/frame_runtime.rs @@ -87,8 +87,6 @@ //! * writing a runtime in pure Rust, as done in [this template](https://github.com/JoshOrndorff/frameless-node-template). //! * writing a runtime in AssemblyScript,as explored in [this project](https://github.com/LimeChain/subsembly). -use frame::prelude::*; - /// A FRAME based pallet. This `mod` is the entry point for everything else. All /// `#[pallet::xxx]` macros must be defined in this `mod`. Although, frame also provides an /// experimental feature to break these parts into different `mod`s. See [`pallet_examples`] for @@ -96,7 +94,7 @@ use frame::prelude::*; #[docify::export] #[frame::pallet(dev_mode)] pub mod pallet { - use super::*; + use frame::prelude::*; /// The configuration trait of a pallet. Mandatory. Allows a pallet to receive types at a /// later point from the runtime that wishes to contain it. It allows the pallet to be diff --git a/docs/sdk/src/reference_docs/frame_storage_derives.rs b/docs/sdk/src/reference_docs/frame_storage_derives.rs new file mode 100644 index 00000000000..3d9edef398a --- /dev/null +++ b/docs/sdk/src/reference_docs/frame_storage_derives.rs @@ -0,0 +1,199 @@ +//!

+//! In all examples, a few lines of boilerplate have been hidden from each snippet for conciseness. +//!
+//! +//! Let's begin by starting to store a `NewType` in a storage item: +//! +//! ```compile_fail +//! #[frame::pallet] +//! pub mod pallet { +//! # use frame::prelude::*; +//! # #[pallet::config] +//! # pub trait Config: frame_system::Config {} +//! # #[pallet::pallet] +//! # pub struct Pallet(_); +//! pub struct NewType(u32); +// +//! #[pallet::storage] +//! pub type Something = StorageValue<_, NewType>; +//! } +//! ``` +//! +//! This raises a number of compiler errors, like: +//! ```text +//! the trait `MaxEncodedLen` is not implemented for `NewType`, which is required by +//! `frame::prelude::StorageValue<_GeneratedPrefixForStorageSomething, NewType>: +//! StorageInfoTrait` +//! ``` +//! +//! This implies the following set of traits that need to be derived for a type to be stored in +//! `frame` storage: +//! ```rust +//! #[frame::pallet] +//! pub mod pallet { +//! # use frame::prelude::*; +//! # #[pallet::config] +//! # pub trait Config: frame_system::Config {} +//! # #[pallet::pallet] +//! # pub struct Pallet(_); +//! #[derive(codec::Encode, codec::Decode, codec::MaxEncodedLen, scale_info::TypeInfo)] +//! pub struct NewType(u32); +//! +//! #[pallet::storage] +//! pub type Something = StorageValue<_, NewType>; +//! } +//! ``` +//! +//! Next, let's look at how this will differ if we are to store a type that is derived from `T` in +//! storage, such as [`frame::prelude::BlockNumberFor`]: +//! ```compile_fail +//! #[frame::pallet] +//! pub mod pallet { +//! # use frame::prelude::*; +//! # #[pallet::config] +//! # pub trait Config: frame_system::Config {} +//! # #[pallet::pallet] +//! # pub struct Pallet(_); +//! #[derive(codec::Encode, codec::Decode, codec::MaxEncodedLen, scale_info::TypeInfo)] +//! pub struct NewType(BlockNumberFor); +//! +//! #[pallet::storage] +//! pub type Something = StorageValue<_, NewType>; +//! } +//! ``` +//! +//! Surprisingly, this will also raise a number of errors, like: +//! ```text +//! the trait `TypeInfo` is not implemented for `T`, which is required +//! by`frame_support::pallet_prelude::StorageValue, +//! pallet_2::NewType>:StorageEntryMetadataBuilder +//! ``` +//! +//! Why is that? The underlying reason is that the `TypeInfo` `derive` macro will only work for +//! `NewType` if all of `NewType`'s generics also implement `TypeInfo`. This is not the case for `T` +//! in the example above. +//! +//! If you expand an instance of the derive, you will find something along the lines of: +//! `impl TypeInfo for NewType where T: TypeInfo { ... }`. This is the reason why the +//! `TypeInfo` trait is required for `T`. +//! +//! To fix this, we need to add a `#[scale_info(skip_type_params(T))]` +//! attribute to `NewType`. This additional macro will instruct the `derive` to skip the bound on +//! `T`. +//! ```rust +//! #[frame::pallet] +//! pub mod pallet { +//! # use frame::prelude::*; +//! # #[pallet::config] +//! # pub trait Config: frame_system::Config {} +//! # #[pallet::pallet] +//! # pub struct Pallet(_); +//! #[derive(codec::Encode, codec::Decode, codec::MaxEncodedLen, scale_info::TypeInfo)] +//! #[scale_info(skip_type_params(T))] +//! pub struct NewType(BlockNumberFor); +//! +//! #[pallet::storage] +//! pub type Something = StorageValue<_, NewType>; +//! } +//! ``` +//! +//! Next, let's say we wish to store `NewType` as [`frame::prelude::ValueQuery`], which means it +//! must also implement `Default`. This should be as simple as adding `derive(Default)` to it, +//! right? +//! ```compile_fail +//! #[frame::pallet] +//! pub mod pallet { +//! # use frame::prelude::*; +//! # #[pallet::config] +//! # pub trait Config: frame_system::Config {} +//! # #[pallet::pallet] +//! # pub struct Pallet(_); +//! #[derive(codec::Encode, codec::Decode, codec::MaxEncodedLen, scale_info::TypeInfo, Default)] +//! #[scale_info(skip_type_params(T))] +//! pub struct NewType(BlockNumberFor); +//! +//! #[pallet::storage] +//! pub type Something = StorageValue<_, NewType, ValueQuery>; +//! } +//! ``` +//! +//! Under the hood, the expansion of the `derive(Default)` will suffer from the same restriction as +//! before: it will only work if `T: Default`, and `T` is not `Default`. Note that this is an +//! expected issue: `T` is merely a wrapper of many other types, such as `BlockNumberFor`. +//! `BlockNumberFor` should indeed implement `Default`, but `T` implementing `Default` is rather +//! meaningless. +//! +//! To fix this, frame provides a set of macros that are analogous to normal rust derive macros, but +//! work nicely on top of structs that are generic over `T: Config`. These macros are: +//! +//! - [`frame::prelude::DefaultNoBound`] +//! - [`frame::prelude::DebugNoBound`] +//! - [`frame::prelude::PartialEqNoBound`] +//! - [`frame::prelude::EqNoBound`] +//! - [`frame::prelude::CloneNoBound`] +//! - [`frame::prelude::PartialOrdNoBound`] +//! - [`frame::prelude::OrdNoBound`] +//! +//! The above traits are almost certainly needed for your tests: To print your type, assert equality +//! or clone it. +//! +//! We can fix the following example by using [`frame::prelude::DefaultNoBound`]. +//! ```rust +//! #[frame::pallet] +//! pub mod pallet { +//! # use frame::prelude::*; +//! # #[pallet::config] +//! # pub trait Config: frame_system::Config {} +//! # #[pallet::pallet] +//! # pub struct Pallet(_); +//! #[derive( +//! codec::Encode, +//! codec::Decode, +//! codec::MaxEncodedLen, +//! scale_info::TypeInfo, +//! DefaultNoBound +//! )] +//! #[scale_info(skip_type_params(T))] +//! pub struct NewType(BlockNumberFor); +//! +//! #[pallet::storage] +//! pub type Something = StorageValue<_, NewType, ValueQuery>; +//! } +//! ``` +//! +//! Finally, if a custom type that is provided through `Config` is to be stored in the storage, it +//! is subject to the same trait requirements. The following does not work: +//! ```compile_fail +//! #[frame::pallet] +//! pub mod pallet { +//! use frame::prelude::*; +//! #[pallet::config] +//! pub trait Config: frame_system::Config { +//! type CustomType; +//! } +//! #[pallet::pallet] +//! pub struct Pallet(_); +//! #[pallet::storage] +//! pub type Something = StorageValue<_, T::CustomType>; +//! } +//! ``` +//! +//! But adding the right trait bounds will fix it. +//! ```rust +//! #[frame::pallet] +//! pub mod pallet { +//! use frame::prelude::*; +//! #[pallet::config] +//! pub trait Config: frame_system::Config { +//! type CustomType: codec::FullCodec +//! + codec::MaxEncodedLen +//! + scale_info::TypeInfo +//! + Debug +//! + Default; +//! } +//! #[pallet::pallet] +//! pub struct Pallet(_); +//! #[pallet::storage] +//! pub type Something = StorageValue<_, T::CustomType>; +//! } +//! ``` diff --git a/docs/sdk/src/reference_docs/mod.rs b/docs/sdk/src/reference_docs/mod.rs index 688339b7e38..c69c7936542 100644 --- a/docs/sdk/src/reference_docs/mod.rs +++ b/docs/sdk/src/reference_docs/mod.rs @@ -45,6 +45,10 @@ pub mod signed_extensions; /// Learn about *Origins*, a topic in FRAME that enables complex account abstractions to be built. pub mod frame_origin; +/// Learn about the details of what derives are needed for a type to be store-able in `frame` +/// storage. +pub mod frame_storage_derives; + /// Learn about how to write safe and defensive code in your FRAME runtime. pub mod defensive_programming; diff --git a/substrate/frame/bags-list/src/list/tests.rs b/substrate/frame/bags-list/src/list/tests.rs index cd39b083172..e5fff76d75c 100644 --- a/substrate/frame/bags-list/src/list/tests.rs +++ b/substrate/frame/bags-list/src/list/tests.rs @@ -777,7 +777,8 @@ mod bags { assert_eq!(bag_1000.tail, Some(4)); assert_eq!(bag_1000.iter().count(), 3); bag_1000.insert_node_unchecked(node(4, None, None, bag_1000.bag_upper)); // panics in debug - assert_eq!(bag_1000.iter().count(), 3); // in release we expect it to silently ignore the request. + assert_eq!(bag_1000.iter().count(), 3); // in release we expect it to silently ignore the + // request. }); } diff --git a/substrate/frame/nis/src/lib.rs b/substrate/frame/nis/src/lib.rs index f38755836fb..d815ea6ac11 100644 --- a/substrate/frame/nis/src/lib.rs +++ b/substrate/frame/nis/src/lib.rs @@ -755,7 +755,13 @@ pub mod pallet { // We ignore this error as it just means the amount we're trying to deposit is // dust and the beneficiary account doesn't exist. .or_else( - |e| if e == TokenError::CannotCreate.into() { Ok(()) } else { Err(e) }, + |e| { + if e == TokenError::CannotCreate.into() { + Ok(()) + } else { + Err(e) + } + }, )?; summary.receipts_on_hold.saturating_reduce(on_hold); } diff --git a/substrate/frame/nomination-pools/src/lib.rs b/substrate/frame/nomination-pools/src/lib.rs index 2aaea044636..2b5fe8b6041 100644 --- a/substrate/frame/nomination-pools/src/lib.rs +++ b/substrate/frame/nomination-pools/src/lib.rs @@ -494,7 +494,6 @@ impl ClaimPermission { frame_support::PartialEqNoBound, )] #[cfg_attr(feature = "std", derive(DefaultNoBound))] -#[codec(mel_bound(T: Config))] #[scale_info(skip_type_params(T))] pub struct PoolMember { /// The identifier of the pool to which `who` belongs. diff --git a/substrate/frame/src/lib.rs b/substrate/frame/src/lib.rs index e41f7f1c0ef..e09d8fc4fa1 100644 --- a/substrate/frame/src/lib.rs +++ b/substrate/frame/src/lib.rs @@ -30,13 +30,43 @@ //! > **F**ramework for **R**untime **A**ggregation of **M**odularized **E**ntities: Substrate's //! > State Transition Function (Runtime) Framework. //! -//! ## Documentation +//! //! ## Usage //! -//! See [`polkadot_sdk::frame`](../polkadot_sdk_docs/polkadot_sdk/frame_runtime/index.html). +//! The main intended use of this crate is for it to be imported with its preludes: //! -//! ## WARNING: Experimental +//! ``` +//! # use polkadot_sdk_frame as frame; +//! #[frame::pallet] +//! pub mod pallet { +//! # use polkadot_sdk_frame as frame; +//! use frame::prelude::*; +//! // ^^ using the prelude! //! -//! **This crate and all of its content is experimental, and should not yet be used in production.** +//! #[pallet::config] +//! pub trait Config: frame_system::Config {} +//! +//! #[pallet::pallet] +//! pub struct Pallet(_); +//! } +//! +//! pub mod tests { +//! # use polkadot_sdk_frame as frame; +//! use frame::testing_prelude::*; +//! } +//! +//! pub mod runtime { +//! # use polkadot_sdk_frame as frame; +//! use frame::runtime::prelude::*; +//! } +//! ``` +//! +//! See: [`prelude`], [`testing_prelude`] and [`runtime::prelude`]. +//! +//! Please note that this crate can only be imported as `polkadot-sdk-frame` or `frame`. +//! +//! ## Documentation +//! +//! See [`polkadot_sdk::frame`](../polkadot_sdk_docs/polkadot_sdk/frame_runtime/index.html). //! //! ## Underlying dependencies //! @@ -46,9 +76,9 @@ //! In short, this crate only re-exports types and traits from multiple sources. All of these //! sources are listed (and re-exported again) in [`deps`]. //! -//! ## Usage +//! ## WARNING: Experimental //! -//! Please note that this crate can only be imported as `polkadot-sdk-frame` or `frame`. +//! **This crate and all of its content is experimental, and should not yet be used in production.** #![cfg_attr(not(feature = "std"), no_std)] #![cfg(feature = "experimental")] diff --git a/substrate/frame/state-trie-migration/src/lib.rs b/substrate/frame/state-trie-migration/src/lib.rs index 4ec649f9080..22ad640d3bd 100644 --- a/substrate/frame/state-trie-migration/src/lib.rs +++ b/substrate/frame/state-trie-migration/src/lib.rs @@ -109,7 +109,6 @@ pub mod pallet { MaxEncodedLen, )] #[scale_info(skip_type_params(MaxKeyLen))] - #[codec(mel_bound())] pub enum Progress> { /// Yet to begin. ToStart, @@ -126,7 +125,6 @@ pub mod pallet { /// /// It tracks the last top and child keys read. #[derive(Clone, Encode, Decode, scale_info::TypeInfo, PartialEq, Eq, MaxEncodedLen)] - #[codec(mel_bound(T: Config))] #[scale_info(skip_type_params(T))] pub struct MigrationTask { /// The current top trie migration progress. diff --git a/substrate/frame/support/src/lib.rs b/substrate/frame/support/src/lib.rs index 138091689a5..94f4b9dd4bd 100644 --- a/substrate/frame/support/src/lib.rs +++ b/substrate/frame/support/src/lib.rs @@ -2297,6 +2297,18 @@ pub mod pallet_macros { /// } /// ``` /// + /// ### Value Trait Bounds + /// + /// To use a type as the value of a storage type, be it `StorageValue`, `StorageMap` or + /// anything else, you need to meet a number of trait bound constraints. + /// + /// See: . + /// + /// Notably, all value types need to implement `Encode`, `Decode`, `MaxEncodedLen` and + /// `TypeInfo`, and possibly `Default`, if + /// [`ValueQuery`](frame_support::storage::types::ValueQuery) is used, explained in the + /// next section. + /// /// ### QueryKind /// /// Every storage type mentioned above has a generic type called diff --git a/templates/minimal/README.md b/templates/minimal/README.md index eaa21a05ee8..b556a453608 100644 --- a/templates/minimal/README.md +++ b/templates/minimal/README.md @@ -37,21 +37,6 @@ A Polkadot SDK based project such as this one consists of: * 🛠️ Depending on your operating system and Rust version, there might be additional packages required to compile this template - please take note of the Rust compiler output. -## Customization - -In case you would like to change the pallet's name from `pallet-minimal-template` to `pallet-test`, -you would need to implement the following changes: -* Change the pallet folder name from `template` to `test` for consistency -* Also for consistency, in `/runtime/src/lib.rs`, change from `pub type Template` to `pub type Test`, -and don't forget to also customize the corresponding comments. -* Change `pallet-minimal-template` to `pallet-test` in the following files: - * `/runtime/Cargo.toml` - * `/runtime/src/lib.rs` - * `/pallets/test/Cargo.toml` - * `/src/lib.rs` -* Change `pallet_minimal_template` to `pallet_test` in the following files: - * `/runtime/src/lib.rs` - ### Build 🔨 Use the following command to build the node without launching it: @@ -80,8 +65,8 @@ docker run --rm polkadot-sdk-minimal-template --dev Development chains: * 🧹 Do not persist the state. -* 💰 Are preconfigured with a genesis state that includes several pre-funded development accounts. -* 🧑‍⚖️ Development accounts are used as `sudo` accounts. +* 💰 Are pre-configured with a genesis state that includes several pre-funded development accounts. +* 🧑‍⚖️ One development account (`ALICE`) is used as `sudo` accounts. ### Connect with the Polkadot-JS Apps Front-End diff --git a/templates/minimal/pallets/template/src/lib.rs b/templates/minimal/pallets/template/src/lib.rs index 713f014bbe6..92b90ad4412 100644 --- a/templates/minimal/pallets/template/src/lib.rs +++ b/templates/minimal/pallets/template/src/lib.rs @@ -1,4 +1,7 @@ //! A shell pallet built with [`frame`]. +//! +//! To get started with this pallet, try implementing the guide in +//! #![cfg_attr(not(feature = "std"), no_std)] diff --git a/templates/parachain/pallets/template/Cargo.toml b/templates/parachain/pallets/template/Cargo.toml index 250895843e4..3b651ce427f 100644 --- a/templates/parachain/pallets/template/Cargo.toml +++ b/templates/parachain/pallets/template/Cargo.toml @@ -25,10 +25,13 @@ frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } +# primitive deps +sp-runtime = { workspace = true } +sp-std = { workspace = true } + [dev-dependencies] sp-core = { workspace = true, default-features = true } sp-io = { workspace = true, default-features = true } -sp-runtime = { workspace = true, default-features = true } [features] default = ["std"] @@ -40,13 +43,14 @@ runtime-benchmarks = [ ] std = [ "codec/std", + "scale-info/std", + "frame-benchmarking?/std", "frame-support/std", "frame-system/std", - "scale-info/std", - "sp-core/std", - "sp-io/std", + "sp-runtime/std", + "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/templates/parachain/pallets/template/src/benchmarking.rs b/templates/parachain/pallets/template/src/benchmarking.rs index d1a9554aed6..5acad6e60de 100644 --- a/templates/parachain/pallets/template/src/benchmarking.rs +++ b/templates/parachain/pallets/template/src/benchmarking.rs @@ -1,34 +1,33 @@ //! Benchmarking setup for pallet-template #![cfg(feature = "runtime-benchmarks")] -use super::*; -#[allow(unused)] -use crate::Pallet as Template; +use super::*; use frame_benchmarking::v2::*; -use frame_system::RawOrigin; #[benchmarks] mod benchmarks { use super::*; + #[cfg(test)] + use crate::pallet::Pallet as Template; + use frame_system::RawOrigin; #[benchmark] fn do_something() { - let value = 100u32; let caller: T::AccountId = whitelisted_caller(); #[extrinsic_call] - do_something(RawOrigin::Signed(caller), value); + do_something(RawOrigin::Signed(caller), 100); - assert_eq!(Something::::get(), Some(value)); + assert_eq!(Something::::get().map(|v| v.block_number), Some(100u32.into())); } #[benchmark] fn cause_error() { - Something::::put(100u32); + Something::::put(CompositeStruct { block_number: 100u32.into() }); let caller: T::AccountId = whitelisted_caller(); #[extrinsic_call] cause_error(RawOrigin::Signed(caller)); - assert_eq!(Something::::get(), Some(101u32)); + assert_eq!(Something::::get().map(|v| v.block_number), Some(101u32.into())); } impl_benchmark_test_suite!(Template, crate::mock::new_test_ext(), crate::mock::Test); diff --git a/templates/parachain/pallets/template/src/lib.rs b/templates/parachain/pallets/template/src/lib.rs index 0420e2b9082..6bfb98972ae 100644 --- a/templates/parachain/pallets/template/src/lib.rs +++ b/templates/parachain/pallets/template/src/lib.rs @@ -1,3 +1,50 @@ +//! # Template Pallet +//! +//! A pallet with minimal functionality to help developers understand the essential components of +//! writing a FRAME pallet. It is typically used in beginner tutorials or in Polkadot SDK template +//! as a starting point for creating a new pallet and **not meant to be used in production**. +//! +//! ## Overview +//! +//! This template pallet contains basic examples of: +//! - declaring a storage item that stores a single block-number +//! - declaring and using events +//! - declaring and using errors +//! - a dispatchable function that allows a user to set a new value to storage and emits an event +//! upon success +//! - another dispatchable function that causes a custom error to be thrown +//! +//! Each pallet section is annotated with an attribute using the `#[pallet::...]` procedural macro. +//! This macro generates the necessary code for a pallet to be aggregated into a FRAME runtime. +//! +//! To get started with pallet development, consider using this tutorial: +//! +//! +//! +//! And reading the main documentation of the `frame` crate: +//! +//! +//! +//! And looking at the frame [`kitchen-sink`](https://paritytech.github.io/polkadot-sdk/master/pallet_example_kitchensink/index.html) +//! pallet, a showcase of all pallet macros. +//! +//! ### Pallet Sections +//! +//! The pallet sections in this template are: +//! +//! - A **configuration trait** that defines the types and parameters which the pallet depends on +//! (denoted by the `#[pallet::config]` attribute). See: [`Config`]. +//! - A **means to store pallet-specific data** (denoted by the `#[pallet::storage]` attribute). +//! See: [`storage_types`]. +//! - A **declaration of the events** this pallet emits (denoted by the `#[pallet::event]` +//! attribute). See: [`Event`]. +//! - A **declaration of the errors** that this pallet can throw (denoted by the `#[pallet::error]` +//! attribute). See: [`Error`]. +//! - A **set of dispatchable functions** that define the pallet's functionality (denoted by the +//! `#[pallet::call]` attribute). See: [`dispatchables`]. +//! +//! Run `cargo doc --package pallet-template --open` to view this pallet's documentation. + #![cfg_attr(not(feature = "std"), no_std)] pub use pallet::*; @@ -21,8 +68,9 @@ mod benchmarking; // #[frame_support::pallet] pub mod pallet { - use frame_support::{dispatch::DispatchResultWithPostInfo, pallet_prelude::*}; + use frame_support::{dispatch::DispatchResultWithPostInfo, pallet_prelude::*, DefaultNoBound}; use frame_system::pallet_prelude::*; + use sp_runtime::traits::{CheckedAdd, One}; /// Configure the pallet by specifying the parameters and types on which it depends. #[pallet::config] @@ -38,11 +86,22 @@ pub mod pallet { #[pallet::pallet] pub struct Pallet(_); + /// A struct to store a single block-number. Has all the right derives to store it in storage. + /// + #[derive( + Encode, Decode, MaxEncodedLen, TypeInfo, CloneNoBound, PartialEqNoBound, DefaultNoBound, + )] + #[scale_info(skip_type_params(T))] + pub struct CompositeStruct { + /// A block number. + pub(crate) block_number: BlockNumberFor, + } + /// The pallet's storage items. /// /// #[pallet::storage] - pub type Something = StorageValue<_, u32>; + pub type Something = StorageValue<_, CompositeStruct>; /// Pallets use events to inform users when important changes are made. /// @@ -50,7 +109,7 @@ pub mod pallet { #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event { /// We usually use passive tense for events. - SomethingStored { something: u32, who: T::AccountId }, + SomethingStored { block_number: BlockNumberFor, who: T::AccountId }, } /// Errors inform users that something went wrong. @@ -76,19 +135,23 @@ pub mod pallet { /// 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 { + pub fn do_something(origin: OriginFor, bn: u32) -> DispatchResultWithPostInfo { // Check that the extrinsic was signed and get the signer. // This function will return an error if the extrinsic is not signed. // let who = ensure_signed(origin)?; + // Convert the u32 into a block number. This is possible because the set of trait bounds + // defined in [`frame_system::Config::BlockNumber`]. + let block_number: BlockNumberFor = bn.into(); + // Update storage. - >::put(something); + >::put(CompositeStruct { block_number }); // Emit an event. - Self::deposit_event(Event::SomethingStored { something, who }); + Self::deposit_event(Event::SomethingStored { block_number, who }); - // Return a successful DispatchResultWithPostInfo + // Return a successful [`DispatchResultWithPostInfo`] or [`DispatchResult`]. Ok(().into()) } @@ -102,11 +165,19 @@ pub mod pallet { match >::get() { // Return an error if the value has not been set. None => Err(Error::::NoneValue)?, - Some(old) => { + Some(mut old) => { // Increment the value read from storage; will error in the event of overflow. - let new = old.checked_add(1).ok_or(Error::::StorageOverflow)?; + old.block_number = old + .block_number + .checked_add(&One::one()) + // ^^ equivalent is to: + // .checked_add(&1u32.into()) + // both of which build a `One` instance for the type `BlockNumber`. + .ok_or(Error::::StorageOverflow)?; // Update the value in storage with the incremented result. - >::put(new); + >::put(old); + // Explore how you can rewrite this using + // [`frame_support::storage::StorageValue::mutate`]. Ok(().into()) }, } diff --git a/templates/parachain/pallets/template/src/tests.rs b/templates/parachain/pallets/template/src/tests.rs index 9ad3076be2c..a4a41af63c2 100644 --- a/templates/parachain/pallets/template/src/tests.rs +++ b/templates/parachain/pallets/template/src/tests.rs @@ -7,7 +7,7 @@ fn it_works_for_default_value() { // Dispatch a signed extrinsic. assert_ok!(TemplateModule::do_something(RuntimeOrigin::signed(1), 42)); // Read pallet storage and assert an expected result. - assert_eq!(Something::::get(), Some(42)); + assert_eq!(Something::::get().map(|v| v.block_number), Some(42)); }); } -- GitLab From 6dd777ffe62cff936e04a76134ccf07de9dee429 Mon Sep 17 00:00:00 2001 From: Javier Bullrich Date: Thu, 11 Jul 2024 15:02:14 +0200 Subject: [PATCH 022/252] fixed cmd bot commenting not working (#5000) Fixed the mentioned issue: https://github.com/paritytech/command-bot/issues/113#issuecomment-2222277552 Now it will properly comment when the old bot gets triggered. --- .github/workflows/command-inform.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/command-inform.yml b/.github/workflows/command-inform.yml index 1c7323c998d..2825f4a6046 100644 --- a/.github/workflows/command-inform.yml +++ b/.github/workflows/command-inform.yml @@ -7,9 +7,15 @@ on: jobs: comment: runs-on: ubuntu-latest + if: github.event.issue.pull_request && startsWith(github.event.comment.body, 'bot ') steps: - name: Inform that the new command exist - if: ${{ github.event.issue.pull_request && startsWith(github.event.comment.body, 'bot ') }} - run: gh pr comment ${{ github.event.issue.number }} --body 'We are migrating this bot to be a GitHub Action

Please, see the documentation on how to use it' - env: - GH_TOKEN: ${{ github.token }} + uses: actions/github-script@v7 + with: + script: | + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: 'We are migrating the command bot to be a GitHub Action

Please, see the documentation on how to use it' + }) -- GitLab From 53598b8ef5c17d4328dab47f1540bfa80649b1a0 Mon Sep 17 00:00:00 2001 From: Jun Jiang Date: Fri, 12 Jul 2024 07:35:46 +0800 Subject: [PATCH 023/252] Remove usage of `sp-std` on templates (#5001) Following PR for https://github.com/paritytech/polkadot-sdk/pull/4941 that removes usage of `sp-std` on templates `sp-std` crate was proposed to deprecate on https://github.com/paritytech/polkadot-sdk/issues/2101 @kianenigma --------- Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> --- Cargo.lock | 3 --- templates/parachain/pallets/template/Cargo.toml | 2 -- templates/parachain/runtime/Cargo.toml | 2 -- templates/parachain/runtime/src/apis.rs | 6 +++--- templates/parachain/runtime/src/lib.rs | 3 ++- templates/solochain/runtime/Cargo.toml | 2 -- templates/solochain/runtime/src/lib.rs | 5 +++-- 7 files changed, 8 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b46a2680e8..33475d9b619 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11270,7 +11270,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -12152,7 +12151,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -19840,7 +19838,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", diff --git a/templates/parachain/pallets/template/Cargo.toml b/templates/parachain/pallets/template/Cargo.toml index 3b651ce427f..dde86310137 100644 --- a/templates/parachain/pallets/template/Cargo.toml +++ b/templates/parachain/pallets/template/Cargo.toml @@ -27,7 +27,6 @@ frame-system = { workspace = true } # primitive deps sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true, default-features = true } @@ -50,7 +49,6 @@ std = [ "frame-system/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/templates/parachain/runtime/Cargo.toml b/templates/parachain/runtime/Cargo.toml index de0ecad9b06..939fa245d2a 100644 --- a/templates/parachain/runtime/Cargo.toml +++ b/templates/parachain/runtime/Cargo.toml @@ -62,7 +62,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -136,7 +135,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", diff --git a/templates/parachain/runtime/src/apis.rs b/templates/parachain/runtime/src/apis.rs index bc3c3808fb7..f5d5d3e6302 100644 --- a/templates/parachain/runtime/src/apis.rs +++ b/templates/parachain/runtime/src/apis.rs @@ -24,6 +24,7 @@ // For more information, please refer to // External crates imports +use alloc::vec::Vec; use frame_support::{ genesis_builder_helper::{build_state, get_preset}, weights::Weight, @@ -37,7 +38,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; -use sp_std::prelude::Vec; use sp_version::RuntimeVersion; // Local module imports @@ -106,7 +106,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } @@ -264,7 +264,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } diff --git a/templates/parachain/runtime/src/lib.rs b/templates/parachain/runtime/src/lib.rs index 3a9fee38f24..012ad1d097b 100644 --- a/templates/parachain/runtime/src/lib.rs +++ b/templates/parachain/runtime/src/lib.rs @@ -12,6 +12,8 @@ mod benchmarks; mod configs; mod weights; +extern crate alloc; +use alloc::{boxed::Box, vec::Vec}; use smallvec::smallvec; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, @@ -19,7 +21,6 @@ use sp_runtime::{ MultiSignature, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; diff --git a/templates/solochain/runtime/Cargo.toml b/templates/solochain/runtime/Cargo.toml index af1cd466ea0..f06c80b9a03 100644 --- a/templates/solochain/runtime/Cargo.toml +++ b/templates/solochain/runtime/Cargo.toml @@ -53,7 +53,6 @@ sp-runtime = { features = [ "serde", ], workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { features = [ @@ -109,7 +108,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/templates/solochain/runtime/src/lib.rs b/templates/solochain/runtime/src/lib.rs index c147845fe2f..936ecd1bd38 100644 --- a/templates/solochain/runtime/src/lib.rs +++ b/templates/solochain/runtime/src/lib.rs @@ -3,6 +3,8 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; +use alloc::{boxed::Box, vec, vec::Vec}; use pallet_grandpa::AuthorityId as GrandpaId; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; @@ -13,7 +15,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, MultiSignature, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -370,7 +371,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } -- GitLab From 2a555c333f6f4aabe685e401652d86f230759b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Fri, 12 Jul 2024 10:18:00 +0200 Subject: [PATCH 024/252] xcm-executor: Improve logging (#4996) This improves logging in the xcm-executor to have better debugability when executing a XCM message. --- Cargo.lock | 2 +- polkadot/xcm/xcm-executor/Cargo.toml | 4 +- polkadot/xcm/xcm-executor/src/lib.rs | 148 +++++++++++------- .../xcm/xcm-executor/src/traits/conversion.rs | 40 ++++- .../xcm-executor/src/traits/should_execute.rs | 38 +++-- .../xcm-executor/src/traits/token_matching.rs | 8 +- .../xcm-executor/src/traits/transact_asset.rs | 52 +++--- .../xcm/xcm-executor/src/traits/weight.rs | 30 +++- .../frame/support/src/traits/messages.rs | 2 +- 9 files changed, 208 insertions(+), 116 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 33475d9b619..43601b85ca2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21097,7 +21097,6 @@ dependencies = [ "frame-benchmarking", "frame-support", "impl-trait-for-tuples", - "log", "parity-scale-codec", "scale-info", "sp-arithmetic", @@ -21107,6 +21106,7 @@ dependencies = [ "sp-std 14.0.0", "sp-weights", "staging-xcm", + "tracing", ] [[package]] diff --git a/polkadot/xcm/xcm-executor/Cargo.toml b/polkadot/xcm/xcm-executor/Cargo.toml index 8f7b94612b5..7d1fc48692f 100644 --- a/polkadot/xcm/xcm-executor/Cargo.toml +++ b/polkadot/xcm/xcm-executor/Cargo.toml @@ -22,7 +22,7 @@ sp-core = { workspace = true } sp-runtime = { workspace = true } sp-weights = { workspace = true } frame-support = { workspace = true } -log = { workspace = true } +tracing = { workspace = true } frame-benchmarking = { optional = true, workspace = true } [features] @@ -37,7 +37,6 @@ std = [ "environmental/std", "frame-benchmarking/std", "frame-support/std", - "log/std", "scale-info/std", "sp-arithmetic/std", "sp-core/std", @@ -45,5 +44,6 @@ std = [ "sp-runtime/std", "sp-std/std", "sp-weights/std", + "tracing/std", "xcm/std", ] diff --git a/polkadot/xcm/xcm-executor/src/lib.rs b/polkadot/xcm/xcm-executor/src/lib.rs index da9de93ca0f..aeeb24dcf81 100644 --- a/polkadot/xcm/xcm-executor/src/lib.rs +++ b/polkadot/xcm/xcm-executor/src/lib.rs @@ -208,9 +208,12 @@ impl ExecuteXcm for XcmExecutor Outcome { let origin = origin.into(); - log::trace!( + tracing::trace!( target: "xcm::execute", - "origin: {origin:?}, message: {message:?}, weight_credit: {weight_credit:?}", + ?origin, + ?message, + ?weight_credit, + "Executing message", ); let mut properties = Properties { weight_credit, message_id: None }; @@ -226,10 +229,13 @@ impl ExecuteXcm for XcmExecutor ExecuteXcm for XcmExecutor for frame_benchmarking::BenchmarkError { fn from(error: ExecutorError) -> Self { - log::error!( - "XCM ERROR >> Index: {:?}, Error: {:?}, Weight: {:?}", - error.index, - error.xcm_error, - error.weight + tracing::error!( + index = ?error.index, + xcm_error = ?error.xcm_error, + weight = ?error.weight, + "XCM ERROR", ); Self::Stop("xcm executor error: see error logs") } @@ -326,10 +332,12 @@ impl XcmExecutor { let mut weight_used = xcm_weight.saturating_sub(self.total_surplus); if !self.holding.is_empty() { - log::trace!( + tracing::trace!( target: "xcm::post_process", - "Trapping assets in holding register: {:?}, context: {:?} (original_origin: {:?})", - self.holding, self.context, self.original_origin, + holding_register = ?self.holding, + context = ?self.context, + original_origin = ?self.original_origin, + "Trapping assets in holding register", ); let effective_origin = self.context.origin.as_ref().unwrap_or(&self.original_origin); let trap_weight = @@ -342,7 +350,13 @@ impl XcmExecutor { // TODO: #2841 #REALWEIGHT We should deduct the cost of any instructions following // the error which didn't end up being executed. Some((_i, e)) => { - log::trace!(target: "xcm::post_process", "Execution errored at {:?}: {:?} (original_origin: {:?})", _i, e, self.original_origin); + tracing::trace!( + target: "xcm::post_process", + instruction = ?_i, + error = ?e, + original_origin = ?self.original_origin, + "Execution failed", + ); Outcome::Incomplete { used: weight_used, error: e } }, } @@ -363,8 +377,12 @@ impl XcmExecutor { msg: Xcm<()>, reason: FeeReason, ) -> Result { - log::trace!( - target: "xcm::send", "Sending msg: {msg:?}, to destination: {dest:?}, (reason: {reason:?})" + tracing::trace!( + target: "xcm::send", + ?msg, + destination = ?dest, + reason = ?reason, + "Sending msg", ); let (ticket, fee) = validate_send::(dest, msg)?; self.take_fee(fee, reason)?; @@ -400,7 +418,12 @@ impl XcmExecutor { // `holding_limit` items (which has a best case outcome of holding.len() == holding_limit), // then the operation is guaranteed to succeed. let worst_case_holding_len = self.holding.len() + assets_length; - log::trace!(target: "xcm::ensure_can_subsume_assets", "worst_case_holding_len: {:?}, holding_limit: {:?}", worst_case_holding_len, self.holding_limit); + tracing::trace!( + target: "xcm::ensure_can_subsume_assets", + ?worst_case_holding_len, + holding_limit = ?self.holding_limit, + "Ensuring subsume assets work", + ); ensure!(worst_case_holding_len <= self.holding_limit * 2, XcmError::HoldingWouldOverflow); Ok(()) } @@ -408,12 +431,12 @@ impl XcmExecutor { /// Refund any unused weight. fn refund_surplus(&mut self) -> Result<(), XcmError> { let current_surplus = self.total_surplus.saturating_sub(self.total_refunded); - log::trace!( + tracing::trace!( target: "xcm::refund_surplus", - "total_surplus: {:?}, total_refunded: {:?}, current_surplus: {:?}", - self.total_surplus, - self.total_refunded, - current_surplus, + total_surplus = ?self.total_surplus, + total_refunded = ?self.total_refunded, + ?current_surplus, + "Refunding surplus", ); if current_surplus.any_gt(Weight::zero()) { if let Some(w) = self.trader.refund_weight(current_surplus, &self.context) { @@ -426,7 +449,7 @@ impl XcmExecutor { .defensive_proof( "refund_weight returned an asset capable of buying weight; qed", ); - log::error!( + tracing::error!( target: "xcm::refund_surplus", "error: HoldingWouldOverflow", ); @@ -436,10 +459,9 @@ impl XcmExecutor { self.holding.subsume_assets(w.into()); } } - log::trace!( + tracing::trace!( target: "xcm::refund_surplus", - "total_refunded: {:?}", - self.total_refunded, + total_refunded = ?self.total_refunded, ); Ok(()) } @@ -448,13 +470,13 @@ impl XcmExecutor { if Config::FeeManager::is_waived(self.origin_ref(), reason.clone()) { return Ok(()) } - log::trace!( + tracing::trace!( target: "xcm::fees", - "taking fee: {:?} from origin_ref: {:?} in fees_mode: {:?} for a reason: {:?}", - fee, - self.origin_ref(), - self.fees_mode, - reason, + ?fee, + origin_ref = ?self.origin_ref(), + fees_mode = ?self.fees_mode, + ?reason, + "Taking fees", ); let paid = if self.fees_mode.jit_withdraw { let origin = self.origin_ref().ok_or(XcmError::BadOrigin)?; @@ -507,7 +529,7 @@ impl XcmExecutor { let reanchor_context = Config::UniversalLocation::get(); let reanchored = reanchorable.reanchored(&destination, &reanchor_context).map_err(|error| { - log::error!(target: "xcm::reanchor", "Failed reanchoring with error {error:?}"); + tracing::error!(target: "xcm::reanchor", ?error, "Failed reanchoring with error"); XcmError::ReanchorFailed })?; Ok((reanchored, reanchor_context)) @@ -530,13 +552,12 @@ impl XcmExecutor { } fn process(&mut self, xcm: Xcm) -> Result<(), ExecutorError> { - log::trace!( + tracing::trace!( target: "xcm::process", - "origin: {:?}, total_surplus/refunded: {:?}/{:?}, error_handler_weight: {:?}", - self.origin_ref(), - self.total_surplus, - self.total_refunded, - self.error_handler_weight, + origin = ?self.origin_ref(), + total_surplus = ?self.total_surplus, + total_refunded = ?self.total_refunded, + error_handler_weight = ?self.error_handler_weight, ); let mut result = Ok(()); for (i, instr) in xcm.0.into_iter().enumerate() { @@ -566,7 +587,7 @@ impl XcmExecutor { self.process_instruction(instr) }); if let Err(e) = inst_res { - log::trace!(target: "xcm::execute", "!!! ERROR: {:?}", e); + tracing::trace!(target: "xcm::execute", "!!! ERROR: {:?}", e); *r = Err(ExecutorError { index: i as u32, xcm_error: e, @@ -588,11 +609,12 @@ impl XcmExecutor { &mut self, instr: Instruction, ) -> Result<(), XcmError> { - log::trace!( + tracing::trace!( target: "xcm::process_instruction", - "=== {:?}", - instr + instruction = ?instr, + "Processing instruction", ); + match instr { WithdrawAsset(assets) => { let origin = self.origin_ref().ok_or(XcmError::BadOrigin)?; @@ -694,7 +716,7 @@ impl XcmExecutor { Transact { origin_kind, require_weight_at_most, mut call } => { // We assume that the Relay-chain is allowed to use transact on this parachain. let origin = self.cloned_origin().ok_or_else(|| { - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", "No origin provided", ); @@ -704,7 +726,7 @@ impl XcmExecutor { // TODO: #2841 #TRANSACTFILTER allow the trait to issue filters for the relay-chain let message_call = call.take_decoded().map_err(|_| { - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", "Failed to decode call", ); @@ -712,13 +734,14 @@ impl XcmExecutor { XcmError::FailedToDecode })?; - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", - "Processing call: {message_call:?}", + ?call, + "Processing call", ); if !Config::SafeCallFilter::contains(&message_call) { - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", "Call filtered by `SafeCallFilter`", ); @@ -729,26 +752,31 @@ impl XcmExecutor { let dispatch_origin = Config::OriginConverter::convert_origin(origin.clone(), origin_kind).map_err( |_| { - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", - "Failed to convert origin {origin:?} and origin kind {origin_kind:?} to a local origin." + ?origin, + ?origin_kind, + "Failed to convert origin to a local origin." ); XcmError::BadOrigin }, )?; - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", - "Dispatching with origin: {dispatch_origin:?}", + origin = ?dispatch_origin, + "Dispatching with origin", ); let weight = message_call.get_dispatch_info().weight; if !weight.all_lte(require_weight_at_most) { - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", - "Max {weight} bigger than require at most {require_weight_at_most}", + %weight, + %require_weight_at_most, + "Max weight bigger than require at most", ); return Err(XcmError::MaxWeightInvalid) @@ -757,17 +785,19 @@ impl XcmExecutor { let maybe_actual_weight = match Config::CallDispatcher::dispatch(message_call, dispatch_origin) { Ok(post_info) => { - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", - "Dispatch successful: {post_info:?}" + ?post_info, + "Dispatch successful" ); self.transact_status = MaybeErrorCode::Success; post_info.actual_weight }, Err(error_and_info) => { - log::trace!( + tracing::trace!( target: "xcm::process_instruction::transact", - "Dispatch failed {error_and_info:?}" + ?error_and_info, + "Dispatch failed" ); self.transact_status = error_and_info.error.encode().into(); diff --git a/polkadot/xcm/xcm-executor/src/traits/conversion.rs b/polkadot/xcm/xcm-executor/src/traits/conversion.rs index 9e2f4c83997..1efe138b8c2 100644 --- a/polkadot/xcm/xcm-executor/src/traits/conversion.rs +++ b/polkadot/xcm/xcm-executor/src/traits/conversion.rs @@ -88,19 +88,45 @@ pub trait ConvertOrigin { #[impl_trait_for_tuples::impl_for_tuples(30)] impl ConvertOrigin for Tuple { fn convert_origin(origin: impl Into, kind: OriginKind) -> Result { + let origin = origin.into(); + + tracing::trace!( + target: "xcm::convert_origin", + ?origin, + ?kind, + "Converting origin", + ); + for_tuples!( #( + let convert_origin = core::any::type_name::(); + let origin = match Tuple::convert_origin(origin, kind) { - Err(o) => o, - r => return r + Err(o) => { + tracing::trace!( + target: "xcm::convert_origin", + %convert_origin, + "Convert origin step failed", + ); + + o + }, + Ok(o) => { + tracing::trace!( + target: "xcm::convert_origin", + %convert_origin, + "Convert origin step succeeded", + ); + + return Ok(o) + } }; )* ); - let origin = origin.into(); - log::trace!( + + tracing::trace!( target: "xcm::convert_origin", - "could not convert: origin: {:?}, kind: {:?}", - origin, - kind, + "Converting origin failed", ); + Err(origin) } } diff --git a/polkadot/xcm/xcm-executor/src/traits/should_execute.rs b/polkadot/xcm/xcm-executor/src/traits/should_execute.rs index e76d56bfe61..2e3acf5960e 100644 --- a/polkadot/xcm/xcm-executor/src/traits/should_execute.rs +++ b/polkadot/xcm/xcm-executor/src/traits/should_execute.rs @@ -59,19 +59,35 @@ impl ShouldExecute for Tuple { properties: &mut Properties, ) -> Result<(), ProcessMessageError> { for_tuples!( #( - match Tuple::should_execute(origin, instructions, max_weight, properties) { - Ok(()) => return Ok(()), - _ => (), + let barrier = core::any::type_name::(); + match Tuple::should_execute(origin, instructions, max_weight, properties) { + Ok(()) => { + tracing::trace!( + target: "xcm::should_execute", + ?origin, + ?instructions, + ?max_weight, + ?properties, + %barrier, + "pass barrier", + ); + return Ok(()) + }, + Err(error) => { + tracing::trace!( + target: "xcm::should_execute", + ?origin, + ?instructions, + ?max_weight, + ?properties, + ?error, + %barrier, + "did not pass barrier", + ); + }, } )* ); - log::trace!( - target: "xcm::should_execute", - "did not pass barrier: origin: {:?}, instructions: {:?}, max_weight: {:?}, properties: {:?}", - origin, - instructions, - max_weight, - properties, - ); + Err(ProcessMessageError::Unsupported) } } diff --git a/polkadot/xcm/xcm-executor/src/traits/token_matching.rs b/polkadot/xcm/xcm-executor/src/traits/token_matching.rs index e9a7e3ad845..45f3dc062a6 100644 --- a/polkadot/xcm/xcm-executor/src/traits/token_matching.rs +++ b/polkadot/xcm/xcm-executor/src/traits/token_matching.rs @@ -27,7 +27,7 @@ impl MatchesFungible for Tuple { for_tuples!( #( match Tuple::matches_fungible(a) { o @ Some(_) => return o, _ => () } )* ); - log::trace!(target: "xcm::matches_fungible", "did not match fungible asset: {:?}", &a); + tracing::trace!(target: "xcm::matches_fungible", asset = ?a, "did not match fungible asset"); None } } @@ -42,7 +42,7 @@ impl MatchesNonFungible for Tuple { for_tuples!( #( match Tuple::matches_nonfungible(a) { o @ Some(_) => return o, _ => () } )* ); - log::trace!(target: "xcm::matches_non_fungible", "did not match non-fungible asset: {:?}", &a); + tracing::trace!(target: "xcm::matches_non_fungible", asset = ?a, "did not match non-fungible asset"); None } } @@ -86,7 +86,7 @@ impl MatchesFungibles for Tuple { for_tuples!( #( match Tuple::matches_fungibles(a) { o @ Ok(_) => return o, _ => () } )* ); - log::trace!(target: "xcm::matches_fungibles", "did not match fungibles asset: {:?}", &a); + tracing::trace!(target: "xcm::matches_fungibles", asset = ?a, "did not match fungibles asset"); Err(Error::AssetNotHandled) } } @@ -101,7 +101,7 @@ impl MatchesNonFungibles for Tuple { for_tuples!( #( match Tuple::matches_nonfungibles(a) { o @ Ok(_) => return o, _ => () } )* ); - log::trace!(target: "xcm::matches_non_fungibles", "did not match fungibles asset: {:?}", &a); + tracing::trace!(target: "xcm::matches_non_fungibles", asset = ?a, "did not match fungibles asset"); Err(Error::AssetNotHandled) } } diff --git a/polkadot/xcm/xcm-executor/src/traits/transact_asset.rs b/polkadot/xcm/xcm-executor/src/traits/transact_asset.rs index e8a52d82568..eb85af0b80f 100644 --- a/polkadot/xcm/xcm-executor/src/traits/transact_asset.rs +++ b/polkadot/xcm/xcm-executor/src/traits/transact_asset.rs @@ -148,12 +148,12 @@ impl TransactAsset for Tuple { r => return r, } )* ); - log::trace!( + tracing::trace!( target: "xcm::TransactAsset::can_check_in", - "asset not found: what: {:?}, origin: {:?}, context: {:?}", - what, - origin, - context, + ?what, + ?origin, + ?context, + "asset not found", ); Err(XcmError::AssetNotFound) } @@ -171,12 +171,12 @@ impl TransactAsset for Tuple { r => return r, } )* ); - log::trace!( + tracing::trace!( target: "xcm::TransactAsset::can_check_out", - "asset not found: what: {:?}, dest: {:?}, context: {:?}", - what, - dest, - context, + ?what, + ?dest, + ?context, + "asset not found", ); Err(XcmError::AssetNotFound) } @@ -194,12 +194,12 @@ impl TransactAsset for Tuple { r => return r, } )* ); - log::trace!( + tracing::trace!( target: "xcm::TransactAsset::deposit_asset", - "did not deposit asset: what: {:?}, who: {:?}, context: {:?}", - what, - who, - context, + ?what, + ?who, + ?context, + "did not deposit asset", ); Err(XcmError::AssetNotFound) } @@ -215,12 +215,12 @@ impl TransactAsset for Tuple { r => return r, } )* ); - log::trace!( + tracing::trace!( target: "xcm::TransactAsset::withdraw_asset", - "did not withdraw asset: what: {:?}, who: {:?}, maybe_context: {:?}", - what, - who, - maybe_context, + ?what, + ?who, + ?maybe_context, + "did not withdraw asset", ); Err(XcmError::AssetNotFound) } @@ -237,13 +237,13 @@ impl TransactAsset for Tuple { r => return r, } )* ); - log::trace!( + tracing::trace!( target: "xcm::TransactAsset::internal_transfer_asset", - "did not transfer asset: what: {:?}, from: {:?}, to: {:?}, context: {:?}", - what, - from, - to, - context, + ?what, + ?from, + ?to, + ?context, + "did not transfer asset", ); Err(XcmError::AssetNotFound) } diff --git a/polkadot/xcm/xcm-executor/src/traits/weight.rs b/polkadot/xcm/xcm-executor/src/traits/weight.rs index efb9a2dfb6e..985dfcd0cf2 100644 --- a/polkadot/xcm/xcm-executor/src/traits/weight.rs +++ b/polkadot/xcm/xcm-executor/src/traits/weight.rs @@ -80,18 +80,38 @@ impl WeightTrader for Tuple { let mut too_expensive_error_found = false; let mut last_error = None; for_tuples!( #( + let weight_trader = core::any::type_name::(); + match Tuple.buy_weight(weight, payment.clone(), context) { - Ok(assets) => return Ok(assets), - Err(e) => { - if let XcmError::TooExpensive = e { + Ok(assets) => { + tracing::trace!( + target: "xcm::buy_weight", + %weight_trader, + "Buy weight succeeded", + ); + + return Ok(assets) + }, + Err(error) => { + if let XcmError::TooExpensive = error { too_expensive_error_found = true; } - last_error = Some(e) + last_error = Some(error); + + tracing::trace!( + target: "xcm::buy_weight", + ?error, + %weight_trader, + "Weight trader failed", + ); } } )* ); - log::trace!(target: "xcm::buy_weight", "last_error: {:?}, too_expensive_error_found: {}", last_error, too_expensive_error_found); + tracing::trace!( + target: "xcm::buy_weight", + "Buy weight failed", + ); // if we have multiple traders, and first one returns `TooExpensive` and others fail e.g. // `AssetNotFound` then it is more accurate to return `TooExpensive` then `AssetNotFound` diff --git a/substrate/frame/support/src/traits/messages.rs b/substrate/frame/support/src/traits/messages.rs index 2eec606b6d1..3f8d80f5c6b 100644 --- a/substrate/frame/support/src/traits/messages.rs +++ b/substrate/frame/support/src/traits/messages.rs @@ -27,7 +27,7 @@ use sp_weights::{Weight, WeightMeter}; /// Errors that can happen when attempting to process a message with /// [`ProcessMessage::process_message()`]. -#[derive(Copy, Clone, Eq, PartialEq, Encode, Decode, TypeInfo, RuntimeDebug)] +#[derive(Copy, Clone, Eq, PartialEq, Encode, Decode, TypeInfo, Debug)] pub enum ProcessMessageError { /// The message data format is unknown (e.g. unrecognised header) BadFormat, -- GitLab From 1f8e44831d0a743b116dfb5948ea9f4756955962 Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Fri, 12 Jul 2024 10:20:56 +0200 Subject: [PATCH 025/252] Bridges V2 refactoring backport and `pallet_bridge_messages` simplifications (#4935) ## Summary This PR contains migrated code from the Bridges V2 [branch](https://github.com/paritytech/polkadot-sdk/pull/4427) from the old `parity-bridges-common` [repo](https://github.com/paritytech/parity-bridges-common/tree/bridges-v2). Even though the PR looks large, it does not (or should not) contain any significant changes (also not relevant for audit). This PR is a requirement for permissionless lanes, as they were implemented on top of these changes. ## TODO - [x] generate fresh weights for BridgeHubs - [x] run `polkadot-fellows` bridges zombienet tests with actual runtime 1.2.5. or 1.2.6 to check compatibility - :ballot_box_with_check: working, checked with 1.2.8 fellows BridgeHubs - [x] run `polkadot-sdk` bridges zombienet tests - :ballot_box_with_check: with old relayer in CI (1.6.5) - [x] run `polkadot-sdk` bridges zombienet tests (locally) - with the relayer based on this branch - https://github.com/paritytech/parity-bridges-common/pull/3022 - [x] check/fix relayer companion in bridges repo - https://github.com/paritytech/parity-bridges-common/pull/3022 - [x] extract pruning stuff to separate PR https://github.com/paritytech/polkadot-sdk/pull/4944 Relates to: https://github.com/paritytech/parity-bridges-common/issues/2976 Relates to: https://github.com/paritytech/parity-bridges-common/issues/2451 --------- Signed-off-by: Branislav Kontur Co-authored-by: Serban Iorga Co-authored-by: Svyatoslav Nikolsky Co-authored-by: command-bot <> --- Cargo.lock | 19 +- bridges/bin/runtime-common/Cargo.toml | 24 +- .../src/extensions/priority_calculator.rs | 3 +- .../extensions/refund_relayer_extension.rs | 77 +- bridges/bin/runtime-common/src/integrity.rs | 165 +- bridges/bin/runtime-common/src/lib.rs | 3 +- bridges/bin/runtime-common/src/messages.rs | 704 --------- .../src/messages_benchmarking.rs | 141 +- .../runtime-common/src/messages_call_ext.rs | 68 +- bridges/bin/runtime-common/src/mock.rs | 135 +- .../src/parachains_benchmarking.rs | 13 +- .../chains/chain-bridge-hub-kusama/src/lib.rs | 4 +- .../chain-bridge-hub-polkadot/src/lib.rs | 4 +- .../chains/chain-bridge-hub-rococo/src/lib.rs | 12 +- .../chain-bridge-hub-westend/src/lib.rs | 4 +- bridges/chains/chain-kusama/src/lib.rs | 4 +- .../chains/chain-polkadot-bulletin/src/lib.rs | 6 +- bridges/chains/chain-polkadot/src/lib.rs | 4 +- bridges/chains/chain-rococo/src/lib.rs | 4 +- bridges/chains/chain-westend/src/lib.rs | 4 +- bridges/modules/beefy/src/mock.rs | 3 + bridges/modules/grandpa/Cargo.toml | 5 +- bridges/modules/grandpa/src/lib.rs | 13 +- bridges/modules/grandpa/src/mock.rs | 5 +- bridges/modules/messages/Cargo.toml | 29 +- bridges/modules/messages/README.md | 105 +- bridges/modules/messages/src/benchmarking.rs | 426 ++--- bridges/modules/messages/src/inbound_lane.rs | 35 +- bridges/modules/messages/src/lib.rs | 1383 +---------------- bridges/modules/messages/src/outbound_lane.rs | 71 +- bridges/modules/messages/src/proofs.rs | 562 +++++++ .../src/tests}/messages_generation.rs | 95 +- .../modules/messages/src/{ => tests}/mock.rs | 322 ++-- bridges/modules/messages/src/tests/mod.rs | 26 + .../messages/src/tests/pallet_tests.rs | 1100 +++++++++++++ bridges/modules/messages/src/weights.rs | 311 ++-- bridges/modules/messages/src/weights_ext.rs | 64 +- bridges/modules/parachains/Cargo.toml | 2 - .../modules/parachains/src/benchmarking.rs | 10 +- bridges/modules/parachains/src/call_ext.rs | 4 +- bridges/modules/parachains/src/lib.rs | 39 +- bridges/modules/parachains/src/mock.rs | 47 +- bridges/modules/parachains/src/proofs.rs | 81 + bridges/modules/parachains/src/weights.rs | 60 +- .../modules/relayers/src/payment_adapter.rs | 3 +- bridges/modules/xcm-bridge-hub/src/mock.rs | 108 +- bridges/primitives/header-chain/src/lib.rs | 11 +- bridges/primitives/messages/src/lib.rs | 79 +- .../primitives/messages/src/source_chain.rs | 88 +- .../primitives/messages/src/target_chain.rs | 95 +- .../polkadot-core/src/parachains.rs | 10 +- bridges/primitives/runtime/Cargo.toml | 1 + bridges/primitives/runtime/src/chain.rs | 8 +- bridges/primitives/runtime/src/lib.rs | 45 +- .../primitives/runtime/src/storage_proof.rs | 276 +++- bridges/primitives/test-utils/Cargo.toml | 2 +- bridges/primitives/test-utils/src/lib.rs | 4 +- bridges/relays/client-substrate/Cargo.toml | 3 - .../client-substrate/src/client/caching.rs | 6 +- .../relays/client-substrate/src/client/rpc.rs | 32 +- .../client-substrate/src/client/traits.rs | 8 +- bridges/relays/client-substrate/src/error.rs | 3 - .../relays/client-substrate/src/test_chain.rs | 6 +- bridges/relays/finality/src/base.rs | 4 - bridges/relays/lib-substrate-relay/Cargo.toml | 6 +- .../lib-substrate-relay/src/cli/bridge.rs | 2 +- .../src/cli/relay_headers_and_messages/mod.rs | 10 +- .../src/cli/relay_messages.rs | 8 +- bridges/relays/lib-substrate-relay/src/lib.rs | 19 +- .../metrics.rs} | 0 .../src/{messages_lane.rs => messages/mod.rs} | 421 ++++- .../source.rs} | 26 +- .../target.rs} | 32 +- .../src/on_demand/parachains.rs | 4 +- .../src/parachains/source.rs | 22 +- bridges/relays/messages/Cargo.toml | 1 - .../relays/parachains/src/parachains_loop.rs | 4 +- .../weights/pallet_xcm_bridge_hub_router.rs | 50 +- .../weights/pallet_xcm_bridge_hub_router.rs | 60 +- .../bridge-hubs/bridge-hub-rococo/Cargo.toml | 2 +- .../src/bridge_common_config.rs | 19 +- .../src/bridge_to_bulletin_config.rs | 67 +- .../src/bridge_to_westend_config.rs | 100 +- .../bridge-hubs/bridge-hub-rococo/src/lib.rs | 12 +- .../src/weights/pallet_bridge_grandpa.rs | 20 +- ...idge_messages_rococo_to_rococo_bulletin.rs | 78 +- ...allet_bridge_messages_rococo_to_westend.rs | 80 +- .../src/weights/pallet_bridge_parachains.rs | 18 +- .../src/weights/pallet_bridge_relayers.rs | 22 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 128 +- .../bridge-hub-rococo/tests/tests.rs | 49 +- .../bridge-hubs/bridge-hub-westend/Cargo.toml | 2 +- .../src/bridge_to_rococo_config.rs | 107 +- .../bridge-hubs/bridge-hub-westend/src/lib.rs | 8 +- .../src/weights/pallet_bridge_grandpa.rs | 20 +- .../src/weights/pallet_bridge_messages.rs | 76 +- .../src/weights/pallet_bridge_parachains.rs | 18 +- .../src/weights/pallet_bridge_relayers.rs | 22 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 128 +- .../bridge-hub-westend/tests/tests.rs | 5 +- .../bridge-hubs/test-utils/Cargo.toml | 2 +- .../src/test_cases/from_grandpa_chain.rs | 128 +- .../src/test_cases/from_parachain.rs | 135 +- .../test-utils/src/test_cases/helpers.rs | 9 +- .../src/test_data/from_grandpa_chain.rs | 182 +-- .../src/test_data/from_parachain.rs | 180 ++- ...ridges_zombienet_tests_injected.Dockerfile | 2 +- prdoc/pr_4935.prdoc | 75 + 108 files changed, 4708 insertions(+), 4639 deletions(-) delete mode 100644 bridges/bin/runtime-common/src/messages.rs create mode 100644 bridges/modules/messages/src/proofs.rs rename bridges/{bin/runtime-common/src => modules/messages/src/tests}/messages_generation.rs (62%) rename bridges/modules/messages/src/{ => tests}/mock.rs (62%) create mode 100644 bridges/modules/messages/src/tests/mod.rs create mode 100644 bridges/modules/messages/src/tests/pallet_tests.rs create mode 100644 bridges/modules/parachains/src/proofs.rs rename bridges/relays/lib-substrate-relay/src/{messages_metrics.rs => messages/metrics.rs} (100%) rename bridges/relays/lib-substrate-relay/src/{messages_lane.rs => messages/mod.rs} (63%) rename bridges/relays/lib-substrate-relay/src/{messages_source.rs => messages/source.rs} (97%) rename bridges/relays/lib-substrate-relay/src/{messages_target.rs => messages/target.rs} (94%) create mode 100644 prdoc/pr_4935.prdoc diff --git a/Cargo.lock b/Cargo.lock index 43601b85ca2..4a7d47eb0f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2359,7 +2359,6 @@ dependencies = [ "bp-xcm-bridge-hub-router", "frame-support", "frame-system", - "hash-db", "log", "pallet-balances", "pallet-bridge-grandpa", @@ -2370,8 +2369,6 @@ dependencies = [ "pallet-utility", "parity-scale-codec", "scale-info", - "sp-api", - "sp-core", "sp-io", "sp-runtime", "sp-std 14.0.0", @@ -8605,7 +8602,6 @@ dependencies = [ "async-std", "async-trait", "bp-messages", - "env_logger 0.11.3", "finality-relay", "futures", "hex", @@ -10069,7 +10065,6 @@ dependencies = [ "bp-header-chain", "bp-runtime", "bp-test-utils", - "finality-grandpa", "frame-benchmarking", "frame-support", "frame-system", @@ -10081,13 +10076,13 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std 14.0.0", - "sp-trie", ] [[package]] name = "pallet-bridge-messages" version = "0.7.0" dependencies = [ + "bp-header-chain", "bp-messages", "bp-runtime", "bp-test-utils", @@ -10095,13 +10090,15 @@ dependencies = [ "frame-support", "frame-system", "log", - "num-traits", "pallet-balances", + "pallet-bridge-grandpa", "parity-scale-codec", "scale-info", + "sp-core", "sp-io", "sp-runtime", "sp-std 14.0.0", + "sp-trie", ] [[package]] @@ -10124,7 +10121,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std 14.0.0", - "sp-trie", ] [[package]] @@ -16205,13 +16201,10 @@ dependencies = [ "bp-runtime", "finality-relay", "frame-support", - "frame-system", "futures", "jsonrpsee", "log", "num-traits", - "pallet-balances", - "pallet-bridge-messages", "pallet-transaction-payment", "pallet-transaction-payment-rpc-runtime-api", "pallet-utility", @@ -21388,9 +21381,7 @@ dependencies = [ "bp-polkadot-core", "bp-relayers", "bp-runtime", - "bridge-runtime-common", "equivocation-detector", - "finality-grandpa", "finality-relay", "frame-support", "frame-system", @@ -21410,9 +21401,11 @@ dependencies = [ "rbtag", "relay-substrate-client", "relay-utils", + "scale-info", "sp-consensus-grandpa", "sp-core", "sp-runtime", + "sp-trie", "structopt", "strum 0.26.2", "thiserror", diff --git a/bridges/bin/runtime-common/Cargo.toml b/bridges/bin/runtime-common/Cargo.toml index d69a064aab8..36f27b6aa03 100644 --- a/bridges/bin/runtime-common/Cargo.toml +++ b/bridges/bin/runtime-common/Cargo.toml @@ -12,14 +12,12 @@ workspace = true [dependencies] codec = { features = ["derive"], workspace = true } -hash-db = { workspace = true } log = { workspace = true } scale-info = { features = ["derive"], workspace = true } static_assertions = { optional = true, workspace = true, default-features = true } tuplex = { workspace = true } # Bridge dependencies - bp-header-chain = { workspace = true } bp-messages = { workspace = true } bp-parachains = { workspace = true } @@ -34,25 +32,23 @@ pallet-bridge-parachains = { workspace = true } pallet-bridge-relayers = { workspace = true } # Substrate dependencies - frame-support = { workspace = true } frame-system = { workspace = true } pallet-transaction-payment = { workspace = true } pallet-utility = { workspace = true } -sp-api = { workspace = true } -sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } sp-std = { workspace = true } -sp-trie = { workspace = true } +sp-trie = { optional = true, workspace = true } # Polkadot dependencies xcm = { workspace = true } xcm-builder = { workspace = true } [dev-dependencies] -bp-test-utils = { workspace = true, default-features = true } -pallet-balances = { workspace = true, default-features = true } +bp-test-utils = { workspace = true } +pallet-balances = { workspace = true } +pallet-bridge-messages = { features = ["std", "test-helpers"], workspace = true } [features] default = ["std"] @@ -63,13 +59,14 @@ std = [ "bp-polkadot-core/std", "bp-relayers/std", "bp-runtime/std", + "bp-test-utils/std", "bp-xcm-bridge-hub-router/std", "bp-xcm-bridge-hub/std", "codec/std", "frame-support/std", "frame-system/std", - "hash-db/std", "log/std", + "pallet-balances/std", "pallet-bridge-grandpa/std", "pallet-bridge-messages/std", "pallet-bridge-parachains/std", @@ -77,8 +74,6 @@ std = [ "pallet-transaction-payment/std", "pallet-utility/std", "scale-info/std", - "sp-api/std", - "sp-core/std", "sp-io/std", "sp-runtime/std", "sp-std/std", @@ -88,15 +83,22 @@ std = [ "xcm/std", ] runtime-benchmarks = [ + "bp-runtime/test-helpers", "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-bridge-grandpa/runtime-benchmarks", "pallet-bridge-messages/runtime-benchmarks", + "pallet-bridge-messages/test-helpers", "pallet-bridge-parachains/runtime-benchmarks", "pallet-bridge-relayers/runtime-benchmarks", "pallet-utility/runtime-benchmarks", "sp-runtime/runtime-benchmarks", + "sp-trie", "xcm-builder/runtime-benchmarks", ] integrity-test = ["static_assertions"] +test-helpers = [ + "bp-runtime/test-helpers", + "sp-trie", +] diff --git a/bridges/bin/runtime-common/src/extensions/priority_calculator.rs b/bridges/bin/runtime-common/src/extensions/priority_calculator.rs index 92810290f95..9f559dc13b6 100644 --- a/bridges/bin/runtime-common/src/extensions/priority_calculator.rs +++ b/bridges/bin/runtime-common/src/extensions/priority_calculator.rs @@ -319,6 +319,7 @@ mod integrity_tests { pub mod per_message { use super::*; + use bp_messages::ChainWithMessages; use pallet_bridge_messages::WeightInfoExt; /// Ensures that the value of `PriorityBoostPerMessage` matches the value of @@ -339,7 +340,7 @@ mod integrity_tests { BalanceOf: Send + Sync + FixedPointOperand, { let maximal_messages_in_delivery_transaction = - Runtime::MaxUnconfirmedMessagesAtInboundLane::get(); + Runtime::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; super::ensure_priority_boost_is_sane::>( "PriorityBoostPerMessage", maximal_messages_in_delivery_transaction, diff --git a/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs b/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs index 5aa7f1c095d..6ba3506377d 100644 --- a/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs +++ b/bridges/bin/runtime-common/src/extensions/refund_relayer_extension.rs @@ -22,9 +22,9 @@ use crate::messages_call_ext::{ CallHelper as MessagesCallHelper, CallInfo as MessagesCallInfo, MessagesCallSubType, }; -use bp_messages::{LaneId, MessageNonce}; +use bp_messages::{ChainWithMessages, LaneId, MessageNonce}; use bp_relayers::{ExplicitOrAccountParams, RewardsAccountOwner, RewardsAccountParams}; -use bp_runtime::{Parachain, RangeInclusiveExt, StaticStrProvider}; +use bp_runtime::{Chain, Parachain, RangeInclusiveExt, StaticStrProvider}; use codec::{Codec, Decode, Encode}; use frame_support::{ dispatch::{CallableCallFor, DispatchInfo, PostDispatchInfo}, @@ -293,7 +293,7 @@ pub trait RefundSignedExtension: ::Id::get(), ::Instance, - >>::BridgedChainId::get(), + >>::BridgedChain::ID, if call_info.is_receive_messages_proof_call() { RewardsAccountOwner::ThisChain } else { @@ -406,8 +406,7 @@ pub trait RefundSignedExtension: // a quick check to avoid invalid high-priority transactions let max_unconfirmed_messages_in_confirmation_tx = ::Instance, - >>::MaxUnconfirmedMessagesAtInboundLane::get( - ); + >>::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; if bundled_messages > max_unconfirmed_messages_in_confirmation_tx { return None } @@ -935,9 +934,6 @@ where pub(crate) mod tests { use super::*; use crate::{ - messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, - }, messages_call_ext::{ BaseMessagesProofInfo, ReceiveMessagesDeliveryProofInfo, ReceiveMessagesProofInfo, UnrewardedRelayerOccupation, @@ -946,8 +942,10 @@ pub(crate) mod tests { }; use bp_header_chain::StoredHeaderDataBuilder; use bp_messages::{ - DeliveredMessages, InboundLaneData, MessageNonce, MessagesOperatingMode, OutboundLaneData, - UnrewardedRelayer, UnrewardedRelayersState, + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, DeliveredMessages, InboundLaneData, + MessageNonce, MessagesOperatingMode, OutboundLaneData, UnrewardedRelayer, + UnrewardedRelayersState, }; use bp_parachains::{BestParaHeadHash, ParaInfo}; use bp_polkadot_core::parachains::{ParaHeadsProof, ParaId}; @@ -1123,7 +1121,7 @@ pub(crate) mod tests { ParaId(BridgedUnderlyingParachain::PARACHAIN_ID), [parachain_head_at_relay_header_number as u8; 32].into(), )], - parachain_heads_proof: ParaHeadsProof { storage_proof: vec![] }, + parachain_heads_proof: ParaHeadsProof { storage_proof: Default::default() }, }) } @@ -1136,7 +1134,7 @@ pub(crate) mod tests { ParaId(BridgedUnderlyingParachain::PARACHAIN_ID), [parachain_head_at_relay_header_number as u8; 32].into(), )], - parachain_heads_proof: ParaHeadsProof { storage_proof: vec![] }, + parachain_heads_proof: ParaHeadsProof { storage_proof: Default::default() }, is_free_execution_expected: false, }) } @@ -1144,9 +1142,9 @@ pub(crate) mod tests { fn message_delivery_call(best_message: MessageNonce) -> RuntimeCall { RuntimeCall::BridgeMessages(MessagesCall::receive_messages_proof { relayer_id_at_bridged_chain: relayer_account_at_bridged_chain(), - proof: FromBridgedChainMessagesProof { + proof: Box::new(FromBridgedChainMessagesProof { bridged_header_hash: Default::default(), - storage_proof: vec![], + storage_proof: Default::default(), lane: TestLaneId::get(), nonces_start: pallet_bridge_messages::InboundLanes::::get( TEST_LANE_ID, @@ -1154,7 +1152,7 @@ pub(crate) mod tests { .last_delivered_nonce() + 1, nonces_end: best_message, - }, + }), messages_count: 1, dispatch_weight: Weight::zero(), }) @@ -1164,7 +1162,7 @@ pub(crate) mod tests { RuntimeCall::BridgeMessages(MessagesCall::receive_messages_delivery_proof { proof: FromBridgedChainMessagesDeliveryProof { bridged_header_hash: Default::default(), - storage_proof: vec![], + storage_proof: Default::default(), lane: TestLaneId::get(), }, relayers_state: UnrewardedRelayersState { @@ -1327,8 +1325,10 @@ pub(crate) mod tests { best_stored_nonce: 100, }, unrewarded_relayers: UnrewardedRelayerOccupation { - free_relayer_slots: MaxUnrewardedRelayerEntriesAtInboundLane::get(), - free_message_slots: MaxUnconfirmedMessagesAtInboundLane::get(), + free_relayer_slots: + BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, + free_message_slots: + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, }, }), ), @@ -1397,8 +1397,10 @@ pub(crate) mod tests { best_stored_nonce: 100, }, unrewarded_relayers: UnrewardedRelayerOccupation { - free_relayer_slots: MaxUnrewardedRelayerEntriesAtInboundLane::get(), - free_message_slots: MaxUnconfirmedMessagesAtInboundLane::get(), + free_relayer_slots: + BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, + free_message_slots: + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, }, }), ), @@ -1459,8 +1461,10 @@ pub(crate) mod tests { best_stored_nonce: 100, }, unrewarded_relayers: UnrewardedRelayerOccupation { - free_relayer_slots: MaxUnrewardedRelayerEntriesAtInboundLane::get(), - free_message_slots: MaxUnconfirmedMessagesAtInboundLane::get(), + free_relayer_slots: + BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, + free_message_slots: + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, }, }), ), @@ -1499,8 +1503,10 @@ pub(crate) mod tests { best_stored_nonce: 100, }, unrewarded_relayers: UnrewardedRelayerOccupation { - free_relayer_slots: MaxUnrewardedRelayerEntriesAtInboundLane::get(), - free_message_slots: MaxUnconfirmedMessagesAtInboundLane::get(), + free_relayer_slots: + BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, + free_message_slots: + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, }, }, )), @@ -1735,14 +1741,16 @@ pub(crate) mod tests { let fns = [run_validate, run_grandpa_validate, run_messages_validate]; for f in fns { - let priority_of_max_messages_delivery = - f(message_delivery_call(100 + MaxUnconfirmedMessagesAtInboundLane::get())) - .unwrap() - .priority; - let priority_of_more_than_max_messages_delivery = - f(message_delivery_call(100 + MaxUnconfirmedMessagesAtInboundLane::get() + 1)) - .unwrap() - .priority; + let priority_of_max_messages_delivery = f(message_delivery_call( + 100 + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, + )) + .unwrap() + .priority; + let priority_of_more_than_max_messages_delivery = f(message_delivery_call( + 100 + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX + 1, + )) + .unwrap() + .priority; assert!( priority_of_max_messages_delivery > priority_of_more_than_max_messages_delivery, @@ -2103,7 +2111,7 @@ pub(crate) mod tests { [1u8; 32].into(), ), ], - parachain_heads_proof: ParaHeadsProof { storage_proof: vec![] }, + parachain_heads_proof: ParaHeadsProof { storage_proof: Default::default() }, }), message_delivery_call(200), ], @@ -2865,7 +2873,8 @@ pub(crate) mod tests { #[test] fn does_not_panic_on_boosting_priority_of_empty_message_delivery_transaction() { run_test(|| { - let best_delivered_message = MaxUnconfirmedMessagesAtInboundLane::get(); + let best_delivered_message = + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; initialize_environment(100, 100, best_delivered_message); // register relayer so it gets priority boost diff --git a/bridges/bin/runtime-common/src/integrity.rs b/bridges/bin/runtime-common/src/integrity.rs index d3827a14dd6..f661db8a220 100644 --- a/bridges/bin/runtime-common/src/integrity.rs +++ b/bridges/bin/runtime-common/src/integrity.rs @@ -19,10 +19,9 @@ //! Most of the tests in this module assume that the bridge is using standard (see `crate::messages` //! module for details) configuration. -use crate::{messages, messages::MessageBridge}; - -use bp_messages::{InboundLaneData, MessageNonce}; -use bp_runtime::{Chain, ChainId}; +use bp_header_chain::ChainWithGrandpa; +use bp_messages::{ChainWithMessages, InboundLaneData, MessageNonce}; +use bp_runtime::Chain; use codec::Encode; use frame_support::{storage::generator::StorageValue, traits::Get, weights::Weight}; use frame_system::limits; @@ -50,23 +49,6 @@ macro_rules! assert_chain_types( } ); -/// Macro that ensures that the bridge GRANDPA pallet is configured properly to bridge with given -/// chain. -#[macro_export] -macro_rules! assert_bridge_grandpa_pallet_types( - ( runtime: $r:path, with_bridged_chain_grandpa_instance: $i:path, bridged_chain: $bridged:path ) => { - { - // if one of asserts fail, then either bridge isn't configured properly (or alternatively - non-standard - // configuration is used), or something has broke existing configuration (meaning that all bridged chains - // and relays will stop functioning) - use pallet_bridge_grandpa::Config as GrandpaConfig; - use static_assertions::assert_type_eq_all; - - assert_type_eq_all!(<$r as GrandpaConfig<$i>>::BridgedChain, $bridged); - } - } -); - /// Macro that ensures that the bridge messages pallet is configured properly to bridge using given /// configuration. #[macro_export] @@ -74,32 +56,30 @@ macro_rules! assert_bridge_messages_pallet_types( ( runtime: $r:path, with_bridged_chain_messages_instance: $i:path, - bridge: $bridge:path + this_chain: $this:path, + bridged_chain: $bridged:path, ) => { { // if one of asserts fail, then either bridge isn't configured properly (or alternatively - non-standard // configuration is used), or something has broke existing configuration (meaning that all bridged chains // and relays will stop functioning) - use $crate::messages::{ - source::{FromThisChainMessagePayload, TargetHeaderChainAdapter}, - target::{FromBridgedChainMessagePayload, SourceHeaderChainAdapter}, - AccountIdOf, BalanceOf, BridgedChain, ThisChain, - }; + use $crate::messages_xcm_extension::XcmAsPlainPayload; + use bp_messages::ChainWithMessages; + use bp_runtime::Chain; use pallet_bridge_messages::Config as MessagesConfig; use static_assertions::assert_type_eq_all; - assert_type_eq_all!(<$r as MessagesConfig<$i>>::OutboundPayload, FromThisChainMessagePayload); + assert_type_eq_all!(<$r as MessagesConfig<$i>>::ThisChain, $this); + assert_type_eq_all!(<$r as MessagesConfig<$i>>::BridgedChain, $bridged); - assert_type_eq_all!(<$r as MessagesConfig<$i>>::InboundRelayer, AccountIdOf>); - - assert_type_eq_all!(<$r as MessagesConfig<$i>>::TargetHeaderChain, TargetHeaderChainAdapter<$bridge>); - assert_type_eq_all!(<$r as MessagesConfig<$i>>::SourceHeaderChain, SourceHeaderChainAdapter<$bridge>); + assert_type_eq_all!(<$r as MessagesConfig<$i>>::OutboundPayload, XcmAsPlainPayload); + assert_type_eq_all!(<$r as MessagesConfig<$i>>::InboundPayload, XcmAsPlainPayload); } } ); /// Macro that combines four other macro calls - `assert_chain_types`, `assert_bridge_types`, -/// `assert_bridge_grandpa_pallet_types` and `assert_bridge_messages_pallet_types`. It may be used +/// and `assert_bridge_messages_pallet_types`. It may be used /// at the chain that is implementing complete standard messages bridge (i.e. with bridge GRANDPA /// and messages pallets deployed). #[macro_export] @@ -108,20 +88,15 @@ macro_rules! assert_complete_bridge_types( runtime: $r:path, with_bridged_chain_grandpa_instance: $gi:path, with_bridged_chain_messages_instance: $mi:path, - bridge: $bridge:path, this_chain: $this:path, bridged_chain: $bridged:path, ) => { $crate::assert_chain_types!(runtime: $r, this_chain: $this); - $crate::assert_bridge_grandpa_pallet_types!( - runtime: $r, - with_bridged_chain_grandpa_instance: $gi, - bridged_chain: $bridged - ); $crate::assert_bridge_messages_pallet_types!( runtime: $r, with_bridged_chain_messages_instance: $mi, - bridge: $bridge + this_chain: $this, + bridged_chain: $bridged, ); } ); @@ -184,20 +159,8 @@ where ); } -/// Parameters for asserting messages pallet constants. -#[derive(Debug)] -pub struct AssertBridgeMessagesPalletConstants { - /// Maximal number of unrewarded relayer entries in a confirmation transaction at the bridged - /// chain. - pub max_unrewarded_relayers_in_bridged_confirmation_tx: MessageNonce, - /// Maximal number of unconfirmed messages in a confirmation transaction at the bridged chain. - pub max_unconfirmed_messages_in_bridged_confirmation_tx: MessageNonce, - /// Identifier of the bridged chain. - pub bridged_chain_id: ChainId, -} - /// Test that the constants, used in messages pallet configuration are valid. -pub fn assert_bridge_messages_pallet_constants(params: AssertBridgeMessagesPalletConstants) +pub fn assert_bridge_messages_pallet_constants() where R: pallet_bridge_messages::Config, MI: 'static, @@ -207,27 +170,22 @@ where "ActiveOutboundLanes ({:?}) must not be empty", R::ActiveOutboundLanes::get(), ); + assert!( - R::MaxUnrewardedRelayerEntriesAtInboundLane::get() <= params.max_unrewarded_relayers_in_bridged_confirmation_tx, - "MaxUnrewardedRelayerEntriesAtInboundLane ({}) must be <= than the hardcoded value for bridged chain: {}", - R::MaxUnrewardedRelayerEntriesAtInboundLane::get(), - params.max_unrewarded_relayers_in_bridged_confirmation_tx, - ); - assert!( - R::MaxUnconfirmedMessagesAtInboundLane::get() <= params.max_unconfirmed_messages_in_bridged_confirmation_tx, - "MaxUnrewardedRelayerEntriesAtInboundLane ({}) must be <= than the hardcoded value for bridged chain: {}", - R::MaxUnconfirmedMessagesAtInboundLane::get(), - params.max_unconfirmed_messages_in_bridged_confirmation_tx, + pallet_bridge_messages::BridgedChainOf::::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX + <= pallet_bridge_messages::BridgedChainOf::::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, + "MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX ({}) of {:?} is larger than \ + its MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX ({}). This makes \ + no sense", + pallet_bridge_messages::BridgedChainOf::::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, + pallet_bridge_messages::BridgedChainOf::::ID, + pallet_bridge_messages::BridgedChainOf::::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, ); - assert_eq!(R::BridgedChainId::get(), params.bridged_chain_id); } /// Parameters for asserting bridge pallet names. #[derive(Debug)] pub struct AssertBridgePalletNames<'a> { - /// Name of the messages pallet, deployed at the bridged chain and used to bridge with this - /// chain. - pub with_this_chain_messages_pallet_name: &'a str, /// Name of the GRANDPA pallet, deployed at this chain and used to bridge with the bridged /// chain. pub with_bridged_chain_grandpa_pallet_name: &'a str, @@ -238,18 +196,22 @@ pub struct AssertBridgePalletNames<'a> { /// Tests that bridge pallet names used in `construct_runtime!()` macro call are matching constants /// from chain primitives crates. -pub fn assert_bridge_pallet_names(params: AssertBridgePalletNames) +fn assert_bridge_pallet_names(params: AssertBridgePalletNames) where - B: MessageBridge, R: pallet_bridge_grandpa::Config + pallet_bridge_messages::Config, GI: 'static, MI: 'static, { - assert_eq!(B::BRIDGED_MESSAGES_PALLET_NAME, params.with_this_chain_messages_pallet_name); + // check that the bridge GRANDPA pallet has required name assert_eq!( pallet_bridge_grandpa::PalletOwner::::storage_value_final_key().to_vec(), - bp_runtime::storage_value_key(params.with_bridged_chain_grandpa_pallet_name, "PalletOwner",).0, + bp_runtime::storage_value_key( + params.with_bridged_chain_grandpa_pallet_name, + "PalletOwner", + ).0, ); + + // check that the bridge messages pallet has required name assert_eq!( pallet_bridge_messages::PalletOwner::::storage_value_final_key().to_vec(), bp_runtime::storage_value_key( @@ -262,35 +224,58 @@ where /// Parameters for asserting complete standard messages bridge. #[derive(Debug)] -pub struct AssertCompleteBridgeConstants<'a> { +pub struct AssertCompleteBridgeConstants { /// Parameters to assert this chain constants. pub this_chain_constants: AssertChainConstants, - /// Parameters to assert messages pallet constants. - pub messages_pallet_constants: AssertBridgeMessagesPalletConstants, - /// Parameters to assert pallet names constants. - pub pallet_names: AssertBridgePalletNames<'a>, } -/// All bridge-related constants tests for the complete standard messages bridge (i.e. with bridge -/// GRANDPA and messages pallets deployed). -pub fn assert_complete_bridge_constants(params: AssertCompleteBridgeConstants) -where +/// All bridge-related constants tests for the complete standard relay-chain messages bridge +/// (i.e. with bridge GRANDPA and messages pallets deployed). +pub fn assert_complete_with_relay_chain_bridge_constants( + params: AssertCompleteBridgeConstants, +) where + R: frame_system::Config + + pallet_bridge_grandpa::Config + + pallet_bridge_messages::Config, + GI: 'static, + MI: 'static, +{ + assert_chain_constants::(params.this_chain_constants); + assert_bridge_grandpa_pallet_constants::(); + assert_bridge_messages_pallet_constants::(); + assert_bridge_pallet_names::(AssertBridgePalletNames { + with_bridged_chain_grandpa_pallet_name: + >::BridgedChain::WITH_CHAIN_GRANDPA_PALLET_NAME, + with_bridged_chain_messages_pallet_name: + >::BridgedChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + }); +} + +/// All bridge-related constants tests for the complete standard parachain messages bridge +/// (i.e. with bridge GRANDPA, parachains and messages pallets deployed). +pub fn assert_complete_with_parachain_bridge_constants( + params: AssertCompleteBridgeConstants, +) where R: frame_system::Config + pallet_bridge_grandpa::Config + pallet_bridge_messages::Config, GI: 'static, MI: 'static, - B: MessageBridge, + RelayChain: ChainWithGrandpa, { assert_chain_constants::(params.this_chain_constants); assert_bridge_grandpa_pallet_constants::(); - assert_bridge_messages_pallet_constants::(params.messages_pallet_constants); - assert_bridge_pallet_names::(params.pallet_names); + assert_bridge_messages_pallet_constants::(); + assert_bridge_pallet_names::(AssertBridgePalletNames { + with_bridged_chain_grandpa_pallet_name: RelayChain::WITH_CHAIN_GRANDPA_PALLET_NAME, + with_bridged_chain_messages_pallet_name: + >::BridgedChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + }); } /// Check that the message lane weights are correct. pub fn check_message_lane_weights< - C: Chain, + C: ChainWithMessages, T: frame_system::Config + pallet_bridge_messages::Config, MessagesPalletInstance: 'static, >( @@ -308,14 +293,20 @@ pub fn check_message_lane_weights< // check basic weight assumptions pallet_bridge_messages::ensure_weights_are_correct::>(); + // check that the maximal message dispatch weight is below hardcoded limit + pallet_bridge_messages::ensure_maximal_message_dispatch::>( + C::maximal_incoming_message_size(), + C::maximal_incoming_message_dispatch_weight(), + ); + // check that weights allow us to receive messages - let max_incoming_message_proof_size = bridged_chain_extra_storage_proof_size - .saturating_add(messages::target::maximal_incoming_message_size(C::max_extrinsic_size())); + let max_incoming_message_proof_size = + bridged_chain_extra_storage_proof_size.saturating_add(C::maximal_incoming_message_size()); pallet_bridge_messages::ensure_able_to_receive_message::>( C::max_extrinsic_size(), C::max_extrinsic_weight(), max_incoming_message_proof_size, - messages::target::maximal_incoming_message_dispatch_weight(C::max_extrinsic_weight()), + C::maximal_incoming_message_dispatch_weight(), ); // check that weights allow us to receive delivery confirmations diff --git a/bridges/bin/runtime-common/src/lib.rs b/bridges/bin/runtime-common/src/lib.rs index 5679acd6006..b65bb6041d5 100644 --- a/bridges/bin/runtime-common/src/lib.rs +++ b/bridges/bin/runtime-common/src/lib.rs @@ -20,11 +20,10 @@ #![cfg_attr(not(feature = "std"), no_std)] pub mod extensions; -pub mod messages; + pub mod messages_api; pub mod messages_benchmarking; pub mod messages_call_ext; -pub mod messages_generation; pub mod messages_xcm_extension; pub mod parachains_benchmarking; diff --git a/bridges/bin/runtime-common/src/messages.rs b/bridges/bin/runtime-common/src/messages.rs deleted file mode 100644 index 03801d5279d..00000000000 --- a/bridges/bin/runtime-common/src/messages.rs +++ /dev/null @@ -1,704 +0,0 @@ -// Copyright (C) Parity Technologies (UK) Ltd. -// This file is part of Parity Bridges Common. - -// Parity Bridges Common 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. - -// Parity Bridges Common 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 Parity Bridges Common. If not, see . - -//! Types that allow runtime to act as a source/target endpoint of message lanes. -//! -//! Messages are assumed to be encoded `Call`s of the target chain. Call-dispatch -//! pallet is used to dispatch incoming messages. Message identified by a tuple -//! of to elements - message lane id and message nonce. - -pub use bp_runtime::{RangeInclusiveExt, UnderlyingChainOf, UnderlyingChainProvider}; - -use bp_header_chain::HeaderChain; -use bp_messages::{ - source_chain::TargetHeaderChain, - target_chain::{ProvedLaneMessages, ProvedMessages, SourceHeaderChain}, - InboundLaneData, LaneId, Message, MessageKey, MessageNonce, MessagePayload, OutboundLaneData, - VerificationError, -}; -use bp_runtime::{Chain, RawStorageProof, Size, StorageProofChecker}; -use codec::{Decode, Encode}; -use frame_support::{traits::Get, weights::Weight}; -use hash_db::Hasher; -use scale_info::TypeInfo; -use sp_runtime::RuntimeDebug; -use sp_std::{marker::PhantomData, vec::Vec}; - -/// Bidirectional message bridge. -pub trait MessageBridge { - /// Name of the paired messages pallet instance at the Bridged chain. - /// - /// Should be the name that is used in the `construct_runtime!()` macro. - const BRIDGED_MESSAGES_PALLET_NAME: &'static str; - - /// This chain in context of message bridge. - type ThisChain: ThisChainWithMessages; - /// Bridged chain in context of message bridge. - type BridgedChain: BridgedChainWithMessages; - /// Bridged header chain. - type BridgedHeaderChain: HeaderChain>; -} - -/// This chain that has `pallet-bridge-messages` module. -pub trait ThisChainWithMessages: UnderlyingChainProvider { - /// Call origin on the chain. - type RuntimeOrigin; -} - -/// Bridged chain that has `pallet-bridge-messages` module. -pub trait BridgedChainWithMessages: UnderlyingChainProvider {} - -/// This chain in context of message bridge. -pub type ThisChain = ::ThisChain; -/// Bridged chain in context of message bridge. -pub type BridgedChain = ::BridgedChain; -/// Hash used on the chain. -pub type HashOf = bp_runtime::HashOf<::Chain>; -/// Hasher used on the chain. -pub type HasherOf = bp_runtime::HasherOf>; -/// Account id used on the chain. -pub type AccountIdOf = bp_runtime::AccountIdOf>; -/// Type of balances that is used on the chain. -pub type BalanceOf = bp_runtime::BalanceOf>; - -/// Sub-module that is declaring types required for processing This -> Bridged chain messages. -pub mod source { - use super::*; - - /// Message payload for This -> Bridged chain messages. - pub type FromThisChainMessagePayload = crate::messages_xcm_extension::XcmAsPlainPayload; - - /// Maximal size of outbound message payload. - pub struct FromThisChainMaximalOutboundPayloadSize(PhantomData); - - impl Get for FromThisChainMaximalOutboundPayloadSize { - fn get() -> u32 { - maximal_message_size::() - } - } - - /// Messages delivery proof from bridged chain: - /// - /// - hash of finalized header; - /// - storage proof of inbound lane state; - /// - lane id. - #[derive(Clone, Decode, Encode, Eq, PartialEq, RuntimeDebug, TypeInfo)] - pub struct FromBridgedChainMessagesDeliveryProof { - /// Hash of the bridge header the proof is for. - pub bridged_header_hash: BridgedHeaderHash, - /// Storage trie proof generated for [`Self::bridged_header_hash`]. - pub storage_proof: RawStorageProof, - /// Lane id of which messages were delivered and the proof is for. - pub lane: LaneId, - } - - impl Size for FromBridgedChainMessagesDeliveryProof { - fn size(&self) -> u32 { - u32::try_from( - self.storage_proof - .iter() - .fold(0usize, |sum, node| sum.saturating_add(node.len())), - ) - .unwrap_or(u32::MAX) - } - } - - /// 'Parsed' message delivery proof - inbound lane id and its state. - pub type ParsedMessagesDeliveryProofFromBridgedChain = - (LaneId, InboundLaneData>>); - - /// Return maximal message size of This -> Bridged chain message. - pub fn maximal_message_size() -> u32 { - super::target::maximal_incoming_message_size( - UnderlyingChainOf::>::max_extrinsic_size(), - ) - } - - /// `TargetHeaderChain` implementation that is using default types and perform default checks. - pub struct TargetHeaderChainAdapter(PhantomData); - - impl TargetHeaderChain>> - for TargetHeaderChainAdapter - { - type MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof>>; - - fn verify_message(payload: &FromThisChainMessagePayload) -> Result<(), VerificationError> { - verify_chain_message::(payload) - } - - fn verify_messages_delivery_proof( - proof: Self::MessagesDeliveryProof, - ) -> Result<(LaneId, InboundLaneData>>), VerificationError> { - verify_messages_delivery_proof::(proof) - } - } - - /// Do basic Bridged-chain specific verification of This -> Bridged chain message. - /// - /// Ok result from this function means that the delivery transaction with this message - /// may be 'mined' by the target chain. - pub fn verify_chain_message( - payload: &FromThisChainMessagePayload, - ) -> Result<(), VerificationError> { - // IMPORTANT: any error that is returned here is fatal for the bridge, because - // this code is executed at the bridge hub and message sender actually lives - // at some sibling parachain. So we are failing **after** the message has been - // sent and we can't report it back to sender (unless error report mechanism is - // embedded into message and its dispatcher). - - // apart from maximal message size check (see below), we should also check the message - // dispatch weight here. But we assume that the bridged chain will just push the message - // to some queue (XCMP, UMP, DMP), so the weight is constant and fits the block. - - // The maximal size of extrinsic at Substrate-based chain depends on the - // `frame_system::Config::MaximumBlockLength` and - // `frame_system::Config::AvailableBlockRatio` constants. This check is here to be sure that - // the lane won't stuck because message is too large to fit into delivery transaction. - // - // **IMPORTANT NOTE**: the delivery transaction contains storage proof of the message, not - // the message itself. The proof is always larger than the message. But unless chain state - // is enormously large, it should be several dozens/hundreds of bytes. The delivery - // transaction also contains signatures and signed extensions. Because of this, we reserve - // 1/3 of the the maximal extrinsic size for this data. - if payload.len() > maximal_message_size::() as usize { - return Err(VerificationError::MessageTooLarge) - } - - Ok(()) - } - - /// Verify proof of This -> Bridged chain messages delivery. - /// - /// This function is used when Bridged chain is directly using GRANDPA finality. For Bridged - /// parachains, please use the `verify_messages_delivery_proof_from_parachain`. - pub fn verify_messages_delivery_proof( - proof: FromBridgedChainMessagesDeliveryProof>>, - ) -> Result, VerificationError> { - let FromBridgedChainMessagesDeliveryProof { bridged_header_hash, storage_proof, lane } = - proof; - let mut storage = - B::BridgedHeaderChain::storage_proof_checker(bridged_header_hash, storage_proof) - .map_err(VerificationError::HeaderChain)?; - // Messages delivery proof is just proof of single storage key read => any error - // is fatal. - let storage_inbound_lane_data_key = bp_messages::storage_keys::inbound_lane_data_key( - B::BRIDGED_MESSAGES_PALLET_NAME, - &lane, - ); - let inbound_lane_data = storage - .read_and_decode_mandatory_value(storage_inbound_lane_data_key.0.as_ref()) - .map_err(VerificationError::InboundLaneStorage)?; - - // check that the storage proof doesn't have any untouched trie nodes - storage.ensure_no_unused_nodes().map_err(VerificationError::StorageProof)?; - - Ok((lane, inbound_lane_data)) - } -} - -/// Sub-module that is declaring types required for processing Bridged -> This chain messages. -pub mod target { - use super::*; - - /// Decoded Bridged -> This message payload. - pub type FromBridgedChainMessagePayload = crate::messages_xcm_extension::XcmAsPlainPayload; - - /// Messages proof from bridged chain: - /// - /// - hash of finalized header; - /// - storage proof of messages and (optionally) outbound lane state; - /// - lane id; - /// - nonces (inclusive range) of messages which are included in this proof. - #[derive(Clone, Decode, Encode, Eq, PartialEq, RuntimeDebug, TypeInfo)] - pub struct FromBridgedChainMessagesProof { - /// Hash of the finalized bridged header the proof is for. - pub bridged_header_hash: BridgedHeaderHash, - /// A storage trie proof of messages being delivered. - pub storage_proof: RawStorageProof, - /// Messages in this proof are sent over this lane. - pub lane: LaneId, - /// Nonce of the first message being delivered. - pub nonces_start: MessageNonce, - /// Nonce of the last message being delivered. - pub nonces_end: MessageNonce, - } - - impl Size for FromBridgedChainMessagesProof { - fn size(&self) -> u32 { - u32::try_from( - self.storage_proof - .iter() - .fold(0usize, |sum, node| sum.saturating_add(node.len())), - ) - .unwrap_or(u32::MAX) - } - } - - /// Return maximal dispatch weight of the message we're able to receive. - pub fn maximal_incoming_message_dispatch_weight(maximal_extrinsic_weight: Weight) -> Weight { - maximal_extrinsic_weight / 2 - } - - /// Return maximal message size given maximal extrinsic size. - pub fn maximal_incoming_message_size(maximal_extrinsic_size: u32) -> u32 { - maximal_extrinsic_size / 3 * 2 - } - - /// `SourceHeaderChain` implementation that is using default types and perform default checks. - pub struct SourceHeaderChainAdapter(PhantomData); - - impl SourceHeaderChain for SourceHeaderChainAdapter { - type MessagesProof = FromBridgedChainMessagesProof>>; - - fn verify_messages_proof( - proof: Self::MessagesProof, - messages_count: u32, - ) -> Result, VerificationError> { - verify_messages_proof::(proof, messages_count) - } - } - - /// Verify proof of Bridged -> This chain messages. - /// - /// This function is used when Bridged chain is directly using GRANDPA finality. For Bridged - /// parachains, please use the `verify_messages_proof_from_parachain`. - /// - /// The `messages_count` argument verification (sane limits) is supposed to be made - /// outside of this function. This function only verifies that the proof declares exactly - /// `messages_count` messages. - pub fn verify_messages_proof( - proof: FromBridgedChainMessagesProof>>, - messages_count: u32, - ) -> Result, VerificationError> { - let FromBridgedChainMessagesProof { - bridged_header_hash, - storage_proof, - lane, - nonces_start, - nonces_end, - } = proof; - let storage = - B::BridgedHeaderChain::storage_proof_checker(bridged_header_hash, storage_proof) - .map_err(VerificationError::HeaderChain)?; - let mut parser = StorageProofCheckerAdapter::<_, B> { storage, _dummy: Default::default() }; - let nonces_range = nonces_start..=nonces_end; - - // receiving proofs where end < begin is ok (if proof includes outbound lane state) - let messages_in_the_proof = nonces_range.checked_len().unwrap_or(0); - if messages_in_the_proof != MessageNonce::from(messages_count) { - return Err(VerificationError::MessagesCountMismatch) - } - - // Read messages first. All messages that are claimed to be in the proof must - // be in the proof. So any error in `read_value`, or even missing value is fatal. - // - // Mind that we allow proofs with no messages if outbound lane state is proved. - let mut messages = Vec::with_capacity(messages_in_the_proof as _); - for nonce in nonces_range { - let message_key = MessageKey { lane_id: lane, nonce }; - let message_payload = parser.read_and_decode_message_payload(&message_key)?; - messages.push(Message { key: message_key, payload: message_payload }); - } - - // Now let's check if proof contains outbound lane state proof. It is optional, so - // we simply ignore `read_value` errors and missing value. - let proved_lane_messages = ProvedLaneMessages { - lane_state: parser.read_and_decode_outbound_lane_data(&lane)?, - messages, - }; - - // Now we may actually check if the proof is empty or not. - if proved_lane_messages.lane_state.is_none() && proved_lane_messages.messages.is_empty() { - return Err(VerificationError::EmptyMessageProof) - } - - // check that the storage proof doesn't have any untouched trie nodes - parser - .storage - .ensure_no_unused_nodes() - .map_err(VerificationError::StorageProof)?; - - // We only support single lane messages in this generated_schema - let mut proved_messages = ProvedMessages::new(); - proved_messages.insert(lane, proved_lane_messages); - - Ok(proved_messages) - } - - struct StorageProofCheckerAdapter { - storage: StorageProofChecker, - _dummy: sp_std::marker::PhantomData, - } - - impl StorageProofCheckerAdapter { - fn read_and_decode_outbound_lane_data( - &mut self, - lane_id: &LaneId, - ) -> Result, VerificationError> { - let storage_outbound_lane_data_key = bp_messages::storage_keys::outbound_lane_data_key( - B::BRIDGED_MESSAGES_PALLET_NAME, - lane_id, - ); - - self.storage - .read_and_decode_opt_value(storage_outbound_lane_data_key.0.as_ref()) - .map_err(VerificationError::OutboundLaneStorage) - } - - fn read_and_decode_message_payload( - &mut self, - message_key: &MessageKey, - ) -> Result { - let storage_message_key = bp_messages::storage_keys::message_key( - B::BRIDGED_MESSAGES_PALLET_NAME, - &message_key.lane_id, - message_key.nonce, - ); - self.storage - .read_and_decode_mandatory_value(storage_message_key.0.as_ref()) - .map_err(VerificationError::MessageStorage) - } - } -} - -/// The `BridgeMessagesCall` used by a chain. -pub type BridgeMessagesCallOf = bp_messages::BridgeMessagesCall< - bp_runtime::AccountIdOf, - target::FromBridgedChainMessagesProof>, - source::FromBridgedChainMessagesDeliveryProof>, ->; - -#[cfg(test)] -mod tests { - use super::*; - use crate::{ - messages_generation::{ - encode_all_messages, encode_lane_data, prepare_messages_storage_proof, - }, - mock::*, - }; - use bp_header_chain::{HeaderChainError, StoredHeaderDataBuilder}; - use bp_runtime::{HeaderId, StorageProofError}; - use codec::Encode; - use sp_core::H256; - use sp_runtime::traits::Header as _; - use sp_trie::accessed_nodes_tracker::Error as AccessedNodesTrackerError; - - #[test] - fn verify_chain_message_rejects_message_with_too_large_declared_weight() { - assert!(source::verify_chain_message::(&vec![ - 42; - BRIDGED_CHAIN_MAX_EXTRINSIC_WEIGHT - - 1 - ]) - .is_err()); - } - - #[test] - fn verify_chain_message_rejects_message_too_large_message() { - assert!(source::verify_chain_message::(&vec![ - 0; - source::maximal_message_size::() - as usize + 1 - ],) - .is_err()); - } - - #[test] - fn verify_chain_message_accepts_maximal_message() { - assert_eq!( - source::verify_chain_message::(&vec![ - 0; - source::maximal_message_size::() - as _ - ],), - Ok(()), - ); - } - - fn using_messages_proof( - nonces_end: MessageNonce, - outbound_lane_data: Option, - encode_message: impl Fn(MessageNonce, &MessagePayload) -> Option>, - encode_outbound_lane_data: impl Fn(&OutboundLaneData) -> Vec, - test: impl Fn(target::FromBridgedChainMessagesProof) -> R, - ) -> R { - let (state_root, storage_proof) = prepare_messages_storage_proof::( - TEST_LANE_ID, - 1..=nonces_end, - outbound_lane_data, - bp_runtime::StorageProofSize::Minimal(0), - vec![42], - encode_message, - encode_outbound_lane_data, - ); - - sp_io::TestExternalities::new(Default::default()).execute_with(move || { - let bridged_header = BridgedChainHeader::new( - 0, - Default::default(), - state_root, - Default::default(), - Default::default(), - ); - let bridged_header_hash = bridged_header.hash(); - - pallet_bridge_grandpa::BestFinalized::::put(HeaderId( - 0, - bridged_header_hash, - )); - pallet_bridge_grandpa::ImportedHeaders::::insert( - bridged_header_hash, - bridged_header.build(), - ); - test(target::FromBridgedChainMessagesProof { - bridged_header_hash, - storage_proof, - lane: TEST_LANE_ID, - nonces_start: 1, - nonces_end, - }) - }) - } - - #[test] - fn messages_proof_is_rejected_if_declared_less_than_actual_number_of_messages() { - assert_eq!( - using_messages_proof(10, None, encode_all_messages, encode_lane_data, |proof| { - target::verify_messages_proof::(proof, 5) - }), - Err(VerificationError::MessagesCountMismatch), - ); - } - - #[test] - fn messages_proof_is_rejected_if_declared_more_than_actual_number_of_messages() { - assert_eq!( - using_messages_proof(10, None, encode_all_messages, encode_lane_data, |proof| { - target::verify_messages_proof::(proof, 15) - }), - Err(VerificationError::MessagesCountMismatch), - ); - } - - #[test] - fn message_proof_is_rejected_if_header_is_missing_from_the_chain() { - assert_eq!( - using_messages_proof(10, None, encode_all_messages, encode_lane_data, |proof| { - let bridged_header_hash = - pallet_bridge_grandpa::BestFinalized::::get().unwrap().1; - pallet_bridge_grandpa::ImportedHeaders::::remove(bridged_header_hash); - target::verify_messages_proof::(proof, 10) - }), - Err(VerificationError::HeaderChain(HeaderChainError::UnknownHeader)), - ); - } - - #[test] - fn message_proof_is_rejected_if_header_state_root_mismatches() { - assert_eq!( - using_messages_proof(10, None, encode_all_messages, encode_lane_data, |proof| { - let bridged_header_hash = - pallet_bridge_grandpa::BestFinalized::::get().unwrap().1; - pallet_bridge_grandpa::ImportedHeaders::::insert( - bridged_header_hash, - BridgedChainHeader::new( - 0, - Default::default(), - Default::default(), - Default::default(), - Default::default(), - ) - .build(), - ); - target::verify_messages_proof::(proof, 10) - }), - Err(VerificationError::HeaderChain(HeaderChainError::StorageProof( - StorageProofError::StorageRootMismatch - ))), - ); - } - - #[test] - fn message_proof_is_rejected_if_it_has_duplicate_trie_nodes() { - assert_eq!( - using_messages_proof(10, None, encode_all_messages, encode_lane_data, |mut proof| { - let node = proof.storage_proof.pop().unwrap(); - proof.storage_proof.push(node.clone()); - proof.storage_proof.push(node); - target::verify_messages_proof::(proof, 10) - },), - Err(VerificationError::HeaderChain(HeaderChainError::StorageProof( - StorageProofError::StorageProof(sp_trie::StorageProofError::DuplicateNodes.into()) - ))), - ); - } - - #[test] - fn message_proof_is_rejected_if_it_has_unused_trie_nodes() { - assert_eq!( - using_messages_proof(10, None, encode_all_messages, encode_lane_data, |mut proof| { - proof.storage_proof.push(vec![42]); - target::verify_messages_proof::(proof, 10) - },), - Err(VerificationError::StorageProof(StorageProofError::AccessedNodesTracker( - AccessedNodesTrackerError::UnusedNodes.into() - ))), - ); - } - - #[test] - fn message_proof_is_rejected_if_required_message_is_missing() { - matches!( - using_messages_proof( - 10, - None, - |n, m| if n != 5 { Some(m.encode()) } else { None }, - encode_lane_data, - |proof| target::verify_messages_proof::(proof, 10) - ), - Err(VerificationError::MessageStorage(StorageProofError::StorageValueEmpty)), - ); - } - - #[test] - fn message_proof_is_rejected_if_message_decode_fails() { - matches!( - using_messages_proof( - 10, - None, - |n, m| { - let mut m = m.encode(); - if n == 5 { - m = vec![42] - } - Some(m) - }, - encode_lane_data, - |proof| target::verify_messages_proof::(proof, 10), - ), - Err(VerificationError::MessageStorage(StorageProofError::StorageValueDecodeFailed(_))), - ); - } - - #[test] - fn message_proof_is_rejected_if_outbound_lane_state_decode_fails() { - matches!( - using_messages_proof( - 10, - Some(OutboundLaneData { - oldest_unpruned_nonce: 1, - latest_received_nonce: 1, - latest_generated_nonce: 1, - }), - encode_all_messages, - |d| { - let mut d = d.encode(); - d.truncate(1); - d - }, - |proof| target::verify_messages_proof::(proof, 10), - ), - Err(VerificationError::OutboundLaneStorage( - StorageProofError::StorageValueDecodeFailed(_) - )), - ); - } - - #[test] - fn message_proof_is_rejected_if_it_is_empty() { - assert_eq!( - using_messages_proof(0, None, encode_all_messages, encode_lane_data, |proof| { - target::verify_messages_proof::(proof, 0) - },), - Err(VerificationError::EmptyMessageProof), - ); - } - - #[test] - fn non_empty_message_proof_without_messages_is_accepted() { - assert_eq!( - using_messages_proof( - 0, - Some(OutboundLaneData { - oldest_unpruned_nonce: 1, - latest_received_nonce: 1, - latest_generated_nonce: 1, - }), - encode_all_messages, - encode_lane_data, - |proof| target::verify_messages_proof::(proof, 0), - ), - Ok(vec![( - TEST_LANE_ID, - ProvedLaneMessages { - lane_state: Some(OutboundLaneData { - oldest_unpruned_nonce: 1, - latest_received_nonce: 1, - latest_generated_nonce: 1, - }), - messages: Vec::new(), - }, - )] - .into_iter() - .collect()), - ); - } - - #[test] - fn non_empty_message_proof_is_accepted() { - assert_eq!( - using_messages_proof( - 1, - Some(OutboundLaneData { - oldest_unpruned_nonce: 1, - latest_received_nonce: 1, - latest_generated_nonce: 1, - }), - encode_all_messages, - encode_lane_data, - |proof| target::verify_messages_proof::(proof, 1), - ), - Ok(vec![( - TEST_LANE_ID, - ProvedLaneMessages { - lane_state: Some(OutboundLaneData { - oldest_unpruned_nonce: 1, - latest_received_nonce: 1, - latest_generated_nonce: 1, - }), - messages: vec![Message { - key: MessageKey { lane_id: TEST_LANE_ID, nonce: 1 }, - payload: vec![42], - }], - }, - )] - .into_iter() - .collect()), - ); - } - - #[test] - fn verify_messages_proof_does_not_panic_if_messages_count_mismatches() { - assert_eq!( - using_messages_proof(1, None, encode_all_messages, encode_lane_data, |mut proof| { - proof.nonces_end = u64::MAX; - target::verify_messages_proof::(proof, u32::MAX) - },), - Err(VerificationError::MessagesCountMismatch), - ); - } -} diff --git a/bridges/bin/runtime-common/src/messages_benchmarking.rs b/bridges/bin/runtime-common/src/messages_benchmarking.rs index 74494f79080..1880e65547f 100644 --- a/bridges/bin/runtime-common/src/messages_benchmarking.rs +++ b/bridges/bin/runtime-common/src/messages_benchmarking.rs @@ -19,23 +19,22 @@ #![cfg(feature = "runtime-benchmarks")] -use crate::{ - messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, - AccountIdOf, BridgedChain, HashOf, MessageBridge, ThisChain, - }, +use bp_messages::{ + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, MessagePayload, +}; +use bp_polkadot_core::parachains::ParaHash; +use bp_runtime::{AccountIdOf, Chain, HashOf, Parachain}; +use codec::Encode; +use frame_support::weights::Weight; +use pallet_bridge_messages::{ + benchmarking::{MessageDeliveryProofParams, MessageProofParams}, messages_generation::{ encode_all_messages, encode_lane_data, prepare_message_delivery_storage_proof, prepare_messages_storage_proof, }, + BridgedChainOf, ThisChainOf, }; - -use bp_messages::MessagePayload; -use bp_polkadot_core::parachains::ParaHash; -use bp_runtime::{Chain, Parachain, StorageProofSize, UnderlyingChainOf}; -use codec::Encode; -use frame_support::weights::Weight; -use pallet_bridge_messages::benchmarking::{MessageDeliveryProofParams, MessageProofParams}; use sp_runtime::traits::{Header, Zero}; use sp_std::prelude::*; use xcm::latest::prelude::*; @@ -45,11 +44,7 @@ fn prepare_inbound_message( params: &MessageProofParams, successful_dispatch_message_generator: impl Fn(usize) -> MessagePayload, ) -> MessagePayload { - // we only care about **this** message size when message proof needs to be `Minimal` - let expected_size = match params.size { - StorageProofSize::Minimal(size) => size as usize, - _ => 0, - }; + let expected_size = params.proof_params.db_size.unwrap_or(0) as usize; // if we don't need a correct message, then we may just return some random blob if !params.is_successful_dispatch_expected { @@ -75,25 +70,32 @@ fn prepare_inbound_message( /// This method is intended to be used when benchmarking pallet, linked to the chain that /// uses GRANDPA finality. For parachains, please use the `prepare_message_proof_from_parachain` /// function. -pub fn prepare_message_proof_from_grandpa_chain( +pub fn prepare_message_proof_from_grandpa_chain( params: MessageProofParams, message_generator: impl Fn(usize) -> MessagePayload, -) -> (FromBridgedChainMessagesProof>>, Weight) +) -> (FromBridgedChainMessagesProof>>, Weight) where - R: pallet_bridge_grandpa::Config>>, + R: pallet_bridge_grandpa::Config> + + pallet_bridge_messages::Config< + MI, + BridgedHeaderChain = pallet_bridge_grandpa::Pallet, + >, FI: 'static, - B: MessageBridge, + MI: 'static, { // prepare storage proof - let (state_root, storage_proof) = prepare_messages_storage_proof::( - params.lane, - params.message_nonces.clone(), - params.outbound_lane_data.clone(), - params.size, - prepare_inbound_message(¶ms, message_generator), - encode_all_messages, - encode_lane_data, - ); + let (state_root, storage_proof) = + prepare_messages_storage_proof::, ThisChainOf>( + params.lane, + params.message_nonces.clone(), + params.outbound_lane_data.clone(), + params.proof_params, + |_| prepare_inbound_message(¶ms, &message_generator), + encode_all_messages, + encode_lane_data, + false, + false, + ); // update runtime storage let (_, bridged_header_hash) = insert_header_to_grandpa_pallet::(state_root); @@ -118,30 +120,33 @@ where /// This method is intended to be used when benchmarking pallet, linked to the chain that /// uses parachain finality. For GRANDPA chains, please use the /// `prepare_message_proof_from_grandpa_chain` function. -pub fn prepare_message_proof_from_parachain( +pub fn prepare_message_proof_from_parachain( params: MessageProofParams, message_generator: impl Fn(usize) -> MessagePayload, -) -> (FromBridgedChainMessagesProof>>, Weight) +) -> (FromBridgedChainMessagesProof>>, Weight) where - R: pallet_bridge_parachains::Config, + R: pallet_bridge_parachains::Config + pallet_bridge_messages::Config, PI: 'static, - B: MessageBridge, - UnderlyingChainOf>: Chain + Parachain, + MI: 'static, + BridgedChainOf: Chain + Parachain, { // prepare storage proof - let (state_root, storage_proof) = prepare_messages_storage_proof::( - params.lane, - params.message_nonces.clone(), - params.outbound_lane_data.clone(), - params.size, - prepare_inbound_message(¶ms, message_generator), - encode_all_messages, - encode_lane_data, - ); + let (state_root, storage_proof) = + prepare_messages_storage_proof::, ThisChainOf>( + params.lane, + params.message_nonces.clone(), + params.outbound_lane_data.clone(), + params.proof_params, + |_| prepare_inbound_message(¶ms, &message_generator), + encode_all_messages, + encode_lane_data, + false, + false, + ); // update runtime storage let (_, bridged_header_hash) = - insert_header_to_parachains_pallet::>>(state_root); + insert_header_to_parachains_pallet::>(state_root); ( FromBridgedChainMessagesProof { @@ -160,21 +165,24 @@ where /// This method is intended to be used when benchmarking pallet, linked to the chain that /// uses GRANDPA finality. For parachains, please use the /// `prepare_message_delivery_proof_from_parachain` function. -pub fn prepare_message_delivery_proof_from_grandpa_chain( - params: MessageDeliveryProofParams>>, -) -> FromBridgedChainMessagesDeliveryProof>> +pub fn prepare_message_delivery_proof_from_grandpa_chain( + params: MessageDeliveryProofParams>>, +) -> FromBridgedChainMessagesDeliveryProof>> where - R: pallet_bridge_grandpa::Config>>, + R: pallet_bridge_grandpa::Config> + + pallet_bridge_messages::Config< + MI, + BridgedHeaderChain = pallet_bridge_grandpa::Pallet, + >, FI: 'static, - B: MessageBridge, + MI: 'static, { // prepare storage proof let lane = params.lane; - let (state_root, storage_proof) = prepare_message_delivery_storage_proof::( - params.lane, - params.inbound_lane_data, - params.size, - ); + let (state_root, storage_proof) = prepare_message_delivery_storage_proof::< + BridgedChainOf, + ThisChainOf, + >(params.lane, params.inbound_lane_data, params.proof_params); // update runtime storage let (_, bridged_header_hash) = insert_header_to_grandpa_pallet::(state_root); @@ -191,26 +199,25 @@ where /// This method is intended to be used when benchmarking pallet, linked to the chain that /// uses parachain finality. For GRANDPA chains, please use the /// `prepare_message_delivery_proof_from_grandpa_chain` function. -pub fn prepare_message_delivery_proof_from_parachain( - params: MessageDeliveryProofParams>>, -) -> FromBridgedChainMessagesDeliveryProof>> +pub fn prepare_message_delivery_proof_from_parachain( + params: MessageDeliveryProofParams>>, +) -> FromBridgedChainMessagesDeliveryProof>> where - R: pallet_bridge_parachains::Config, + R: pallet_bridge_parachains::Config + pallet_bridge_messages::Config, PI: 'static, - B: MessageBridge, - UnderlyingChainOf>: Chain + Parachain, + MI: 'static, + BridgedChainOf: Chain + Parachain, { // prepare storage proof let lane = params.lane; - let (state_root, storage_proof) = prepare_message_delivery_storage_proof::( - params.lane, - params.inbound_lane_data, - params.size, - ); + let (state_root, storage_proof) = prepare_message_delivery_storage_proof::< + BridgedChainOf, + ThisChainOf, + >(params.lane, params.inbound_lane_data, params.proof_params); // update runtime storage let (_, bridged_header_hash) = - insert_header_to_parachains_pallet::>>(state_root); + insert_header_to_parachains_pallet::>(state_root); FromBridgedChainMessagesDeliveryProof { bridged_header_hash: bridged_header_hash.into(), diff --git a/bridges/bin/runtime-common/src/messages_call_ext.rs b/bridges/bin/runtime-common/src/messages_call_ext.rs index fb07f7b6dd6..a9ee1969ae0 100644 --- a/bridges/bin/runtime-common/src/messages_call_ext.rs +++ b/bridges/bin/runtime-common/src/messages_call_ext.rs @@ -14,19 +14,14 @@ // You should have received a copy of the GNU General Public License // along with Parity Bridges Common. If not, see . -//! Signed extension for the `pallet-bridge-messages` that is able to reject obsolete -//! (and some other invalid) transactions. +//! Helpers for easier manipulation of call processing with signed extensions. -use crate::messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, +use bp_messages::{ + target_chain::MessageDispatch, ChainWithMessages, InboundLaneData, LaneId, MessageNonce, }; -use bp_messages::{target_chain::MessageDispatch, InboundLaneData, LaneId, MessageNonce}; -use bp_runtime::OwnedBridgeModule; -use frame_support::{ - dispatch::CallableCallFor, - traits::{Get, IsSubType}, -}; -use pallet_bridge_messages::{Config, Pallet}; +use bp_runtime::{AccountIdOf, OwnedBridgeModule}; +use frame_support::{dispatch::CallableCallFor, traits::IsSubType}; +use pallet_bridge_messages::{BridgedChainOf, Config, Pallet}; use sp_runtime::{transaction_validity::TransactionValidity, RuntimeDebug}; use sp_std::ops::RangeInclusive; @@ -213,18 +208,8 @@ pub trait MessagesCallSubType, I: 'static>: } impl< - BridgedHeaderHash, - SourceHeaderChain: bp_messages::target_chain::SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof, - >, - TargetHeaderChain: bp_messages::source_chain::TargetHeaderChain< - >::OutboundPayload, - ::AccountId, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof, - >, Call: IsSubType, T>>, - T: frame_system::Config - + Config, + T: frame_system::Config + Config, I: 'static, > MessagesCallSubType for T::RuntimeCall { @@ -340,16 +325,17 @@ impl< /// Returns occupation state of unrewarded relayers vector. fn unrewarded_relayers_occupation, I: 'static>( - inbound_lane_data: &InboundLaneData, + inbound_lane_data: &InboundLaneData>>, ) -> UnrewardedRelayerOccupation { UnrewardedRelayerOccupation { - free_relayer_slots: T::MaxUnrewardedRelayerEntriesAtInboundLane::get() + free_relayer_slots: T::BridgedChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX .saturating_sub(inbound_lane_data.relayers.len() as MessageNonce), free_message_slots: { let unconfirmed_messages = inbound_lane_data .last_delivered_nonce() .saturating_sub(inbound_lane_data.last_confirmed_nonce); - T::MaxUnconfirmedMessagesAtInboundLane::get().saturating_sub(unconfirmed_messages) + T::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX + .saturating_sub(unconfirmed_messages) }, } } @@ -358,22 +344,20 @@ fn unrewarded_relayers_occupation, I: 'static>( mod tests { use super::*; use crate::{ - messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, - }, messages_call_ext::MessagesCallSubType, - mock::{ - DummyMessageDispatch, MaxUnconfirmedMessagesAtInboundLane, - MaxUnrewardedRelayerEntriesAtInboundLane, TestRuntime, ThisChainRuntimeCall, - }, + mock::{BridgedUnderlyingChain, DummyMessageDispatch, TestRuntime, ThisChainRuntimeCall}, + }; + use bp_messages::{ + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, DeliveredMessages, UnrewardedRelayer, + UnrewardedRelayersState, }; - use bp_messages::{DeliveredMessages, UnrewardedRelayer, UnrewardedRelayersState}; use sp_std::ops::RangeInclusive; fn fill_unrewarded_relayers() { let mut inbound_lane_state = pallet_bridge_messages::InboundLanes::::get(LaneId([0, 0, 0, 0])); - for n in 0..MaxUnrewardedRelayerEntriesAtInboundLane::get() { + for n in 0..BridgedUnderlyingChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX { inbound_lane_state.relayers.push_back(UnrewardedRelayer { relayer: Default::default(), messages: DeliveredMessages { begin: n + 1, end: n + 1 }, @@ -392,7 +376,7 @@ mod tests { relayer: Default::default(), messages: DeliveredMessages { begin: 1, - end: MaxUnconfirmedMessagesAtInboundLane::get(), + end: BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, }, }); pallet_bridge_messages::InboundLanes::::insert( @@ -418,13 +402,13 @@ mod tests { messages_count: nonces_end.checked_sub(nonces_start).map(|x| x + 1).unwrap_or(0) as u32, dispatch_weight: frame_support::weights::Weight::zero(), - proof: FromBridgedChainMessagesProof { + proof: Box::new(FromBridgedChainMessagesProof { bridged_header_hash: Default::default(), - storage_proof: vec![], + storage_proof: Default::default(), lane: LaneId([0, 0, 0, 0]), nonces_start, nonces_end, - }, + }), }, ) .check_obsolete_call() @@ -508,8 +492,8 @@ mod tests { sp_io::TestExternalities::new(Default::default()).execute_with(|| { fill_unrewarded_messages(); assert!(validate_message_delivery( - MaxUnconfirmedMessagesAtInboundLane::get(), - MaxUnconfirmedMessagesAtInboundLane::get() - 1 + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX - 1 )); }); } @@ -540,7 +524,7 @@ mod tests { pallet_bridge_messages::Call::::receive_messages_delivery_proof { proof: FromBridgedChainMessagesDeliveryProof { bridged_header_hash: Default::default(), - storage_proof: Vec::new(), + storage_proof: Default::default(), lane: LaneId([0, 0, 0, 0]), }, relayers_state: UnrewardedRelayersState { @@ -608,7 +592,7 @@ mod tests { free_message_slots: if is_empty { 0 } else { - MaxUnconfirmedMessagesAtInboundLane::get() + BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX }, }, }, diff --git a/bridges/bin/runtime-common/src/mock.rs b/bridges/bin/runtime-common/src/mock.rs index f4947466789..2f248a7162a 100644 --- a/bridges/bin/runtime-common/src/mock.rs +++ b/bridges/bin/runtime-common/src/mock.rs @@ -18,26 +18,16 @@ #![cfg(test)] -use crate::messages::{ - source::{ - FromThisChainMaximalOutboundPayloadSize, FromThisChainMessagePayload, - TargetHeaderChainAdapter, - }, - target::{FromBridgedChainMessagePayload, SourceHeaderChainAdapter}, - BridgedChainWithMessages, HashOf, MessageBridge, ThisChainWithMessages, -}; +use crate::messages_xcm_extension::XcmAsPlainPayload; -use bp_header_chain::{ChainWithGrandpa, HeaderChain}; +use bp_header_chain::ChainWithGrandpa; use bp_messages::{ target_chain::{DispatchMessage, MessageDispatch}, - LaneId, MessageNonce, + ChainWithMessages, LaneId, MessageNonce, }; use bp_parachains::SingleParaStoredHeaderDataBuilder; use bp_relayers::PayRewardFromAccount; -use bp_runtime::{ - messages::MessageDispatchResult, Chain, ChainId, Parachain, UnderlyingChainProvider, -}; -use codec::{Decode, Encode}; +use bp_runtime::{messages::MessageDispatchResult, Chain, ChainId, Parachain}; use frame_support::{ derive_impl, parameter_types, weights::{ConstantMultiplier, IdentityFee, RuntimeDbWeight, Weight}, @@ -46,7 +36,7 @@ use pallet_transaction_payment::Multiplier; use sp_runtime::{ testing::H256, traits::{BlakeTwo256, ConstU32, ConstU64, ConstU8}, - FixedPointNumber, Perquintill, + FixedPointNumber, Perquintill, StateVersion, }; /// Account identifier at `ThisChain`. @@ -61,8 +51,6 @@ pub type ThisChainHash = H256; pub type ThisChainHasher = BlakeTwo256; /// Runtime call at `ThisChain`. pub type ThisChainRuntimeCall = RuntimeCall; -/// Runtime call origin at `ThisChain`. -pub type ThisChainCallOrigin = RuntimeOrigin; /// Header of `ThisChain`. pub type ThisChainHeader = sp_runtime::generic::Header; /// Block of `ThisChain`. @@ -100,8 +88,6 @@ pub type TestStakeAndSlash = pallet_bridge_relayers::StakeAndSlashNamed< pub const TEST_LANE_ID: LaneId = LaneId([0, 0, 0, 0]); /// Bridged chain id used in tests. pub const TEST_BRIDGED_CHAIN_ID: ChainId = *b"brdg"; -/// Maximal extrinsic weight at the `BridgedChain`. -pub const BRIDGED_CHAIN_MAX_EXTRINSIC_WEIGHT: usize = 2048; /// Maximal extrinsic size at the `BridgedChain`. pub const BRIDGED_CHAIN_MAX_EXTRINSIC_SIZE: u32 = 1024; @@ -126,7 +112,6 @@ crate::generate_bridge_reject_obsolete_headers_and_messages! { parameter_types! { pub const ActiveOutboundLanes: &'static [LaneId] = &[TEST_LANE_ID]; - pub const BridgedChainId: ChainId = TEST_BRIDGED_CHAIN_ID; pub const BridgedParasPalletName: &'static str = "Paras"; pub const ExistentialDeposit: ThisChainBalance = 500; pub const DbWeight: RuntimeDbWeight = RuntimeDbWeight { read: 1, write: 2 }; @@ -136,8 +121,6 @@ parameter_types! { pub AdjustmentVariable: Multiplier = Multiplier::saturating_from_rational(3, 100_000); pub MinimumMultiplier: Multiplier = Multiplier::saturating_from_rational(1, 1_000_000u128); pub MaximumMultiplier: Multiplier = sp_runtime::traits::Bounded::max_value(); - pub const MaxUnrewardedRelayerEntriesAtInboundLane: MessageNonce = 16; - pub const MaxUnconfirmedMessagesAtInboundLane: MessageNonce = 1_000; pub const ReserveId: [u8; 8] = *b"brdgrlrs"; } @@ -203,17 +186,12 @@ impl pallet_bridge_messages::Config for TestRuntime { type RuntimeEvent = RuntimeEvent; type WeightInfo = pallet_bridge_messages::weights::BridgeWeight; type ActiveOutboundLanes = ActiveOutboundLanes; - type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane; - type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane; - type MaximalOutboundPayloadSize = FromThisChainMaximalOutboundPayloadSize; - type OutboundPayload = FromThisChainMessagePayload; + type OutboundPayload = XcmAsPlainPayload; - type InboundPayload = FromBridgedChainMessagePayload; - type InboundRelayer = BridgedChainAccountId; + type InboundPayload = Vec; type DeliveryPayments = (); - type TargetHeaderChain = TargetHeaderChainAdapter; type DeliveryConfirmationPayments = pallet_bridge_relayers::DeliveryConfirmationPaymentsAdapter< TestRuntime, (), @@ -221,9 +199,11 @@ impl pallet_bridge_messages::Config for TestRuntime { >; type OnMessagesDelivered = (); - type SourceHeaderChain = SourceHeaderChainAdapter; type MessageDispatch = DummyMessageDispatch; - type BridgedChainId = BridgedChainId; + + type ThisChain = ThisUnderlyingChain; + type BridgedChain = BridgedUnderlyingChain; + type BridgedHeaderChain = BridgeGrandpa; } impl pallet_bridge_relayers::Config for TestRuntime { @@ -262,55 +242,6 @@ impl MessageDispatch for DummyMessageDispatch { } } -/// Bridge that is deployed on `ThisChain` and allows sending/receiving messages to/from -/// `BridgedChain`. -#[derive(Debug, PartialEq, Eq)] -pub struct OnThisChainBridge; - -impl MessageBridge for OnThisChainBridge { - const BRIDGED_MESSAGES_PALLET_NAME: &'static str = ""; - - type ThisChain = ThisChain; - type BridgedChain = BridgedChain; - type BridgedHeaderChain = pallet_bridge_grandpa::GrandpaChainHeaders; -} - -/// Bridge that is deployed on `BridgedChain` and allows sending/receiving messages to/from -/// `ThisChain`. -#[derive(Debug, PartialEq, Eq)] -pub struct OnBridgedChainBridge; - -impl MessageBridge for OnBridgedChainBridge { - const BRIDGED_MESSAGES_PALLET_NAME: &'static str = ""; - - type ThisChain = BridgedChain; - type BridgedChain = ThisChain; - type BridgedHeaderChain = ThisHeaderChain; -} - -/// Dummy implementation of `HeaderChain` for `ThisChain` at the `BridgedChain`. -pub struct ThisHeaderChain; - -impl HeaderChain for ThisHeaderChain { - fn finalized_header_state_root(_hash: HashOf) -> Option> { - unreachable!() - } -} - -/// Call origin at `BridgedChain`. -#[derive(Clone, Debug)] -pub struct BridgedChainOrigin; - -impl From - for Result, BridgedChainOrigin> -{ - fn from( - _origin: BridgedChainOrigin, - ) -> Result, BridgedChainOrigin> { - unreachable!() - } -} - /// Underlying chain of `ThisChain`. pub struct ThisUnderlyingChain; @@ -326,6 +257,8 @@ impl Chain for ThisUnderlyingChain { type Nonce = u32; type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { BRIDGED_CHAIN_MAX_EXTRINSIC_SIZE } @@ -335,29 +268,20 @@ impl Chain for ThisUnderlyingChain { } } -/// The chain where we are in tests. -pub struct ThisChain; - -impl UnderlyingChainProvider for ThisChain { - type Chain = ThisUnderlyingChain; -} +impl ChainWithMessages for ThisUnderlyingChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = ""; -impl ThisChainWithMessages for ThisChain { - type RuntimeOrigin = ThisChainCallOrigin; + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 1000; } -impl BridgedChainWithMessages for ThisChain {} - /// Underlying chain of `BridgedChain`. pub struct BridgedUnderlyingChain; /// Some parachain under `BridgedChain` consensus. pub struct BridgedUnderlyingParachain; -/// Runtime call of the `BridgedChain`. -#[derive(Decode, Encode)] -pub struct BridgedChainCall; impl Chain for BridgedUnderlyingChain { - const ID: ChainId = *b"buch"; + const ID: ChainId = TEST_BRIDGED_CHAIN_ID; type BlockNumber = BridgedChainBlockNumber; type Hash = BridgedChainHash; @@ -368,6 +292,8 @@ impl Chain for BridgedUnderlyingChain { type Nonce = u32; type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { BRIDGED_CHAIN_MAX_EXTRINSIC_SIZE } @@ -384,6 +310,12 @@ impl ChainWithGrandpa for BridgedUnderlyingChain { const AVERAGE_HEADER_SIZE: u32 = 64; } +impl ChainWithMessages for BridgedUnderlyingChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = ""; + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 1000; +} + impl Chain for BridgedUnderlyingParachain { const ID: ChainId = *b"bupc"; @@ -396,6 +328,8 @@ impl Chain for BridgedUnderlyingParachain { type Nonce = u32; type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { BRIDGED_CHAIN_MAX_EXTRINSIC_SIZE } @@ -409,19 +343,6 @@ impl Parachain for BridgedUnderlyingParachain { const MAX_HEADER_SIZE: u32 = 1_024; } -/// The other, bridged chain, used in tests. -pub struct BridgedChain; - -impl UnderlyingChainProvider for BridgedChain { - type Chain = BridgedUnderlyingChain; -} - -impl ThisChainWithMessages for BridgedChain { - type RuntimeOrigin = BridgedChainOrigin; -} - -impl BridgedChainWithMessages for BridgedChain {} - /// Run test within test externalities. pub fn run_test(test: impl FnOnce()) { sp_io::TestExternalities::new(Default::default()).execute_with(test) diff --git a/bridges/bin/runtime-common/src/parachains_benchmarking.rs b/bridges/bin/runtime-common/src/parachains_benchmarking.rs index b3050b9ac0f..bcbd779b44d 100644 --- a/bridges/bin/runtime-common/src/parachains_benchmarking.rs +++ b/bridges/bin/runtime-common/src/parachains_benchmarking.rs @@ -18,14 +18,11 @@ #![cfg(feature = "runtime-benchmarks")] -use crate::{ - messages_benchmarking::insert_header_to_grandpa_pallet, - messages_generation::grow_trie_leaf_value, -}; +use crate::messages_benchmarking::insert_header_to_grandpa_pallet; use bp_parachains::parachain_head_storage_key_at_source; use bp_polkadot_core::parachains::{ParaHash, ParaHead, ParaHeadsProof, ParaId}; -use bp_runtime::{record_all_trie_keys, StorageProofSize}; +use bp_runtime::{grow_storage_value, record_all_trie_keys, Chain, UnverifiedStorageProofParams}; use codec::Encode; use frame_support::traits::Get; use pallet_bridge_parachains::{RelayBlockHash, RelayBlockHasher, RelayBlockNumber}; @@ -39,14 +36,14 @@ use sp_trie::{trie_types::TrieDBMutBuilderV1, LayoutV1, MemoryDB, TrieMut}; pub fn prepare_parachain_heads_proof( parachains: &[ParaId], parachain_head_size: u32, - size: StorageProofSize, + proof_params: UnverifiedStorageProofParams, ) -> (RelayBlockNumber, RelayBlockHash, ParaHeadsProof, Vec<(ParaId, ParaHash)>) where R: pallet_bridge_parachains::Config + pallet_bridge_grandpa::Config, PI: 'static, >::BridgedChain: - bp_runtime::Chain, + Chain, { let parachain_head = ParaHead(vec![0u8; parachain_head_size as usize]); @@ -64,7 +61,7 @@ where let storage_key = parachain_head_storage_key_at_source(R::ParasPalletName::get(), *parachain); let leaf_data = if i == 0 { - grow_trie_leaf_value(parachain_head.encode(), size) + grow_storage_value(parachain_head.encode(), &proof_params) } else { parachain_head.encode() }; diff --git a/bridges/chains/chain-bridge-hub-kusama/src/lib.rs b/bridges/chains/chain-bridge-hub-kusama/src/lib.rs index ef3ef4ab7b7..c990e8a12f3 100644 --- a/bridges/chains/chain-bridge-hub-kusama/src/lib.rs +++ b/bridges/chains/chain-bridge-hub-kusama/src/lib.rs @@ -29,7 +29,7 @@ use frame_support::{ dispatch::DispatchClass, sp_runtime::{MultiAddress, MultiSigner}, }; -use sp_runtime::RuntimeDebug; +use sp_runtime::{RuntimeDebug, StateVersion}; /// BridgeHubKusama parachain. #[derive(RuntimeDebug)] @@ -48,6 +48,8 @@ impl Chain for BridgeHubKusama { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { *BlockLength::get().max.get(DispatchClass::Normal) } diff --git a/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs b/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs index 9db71af928e..7379b8863b1 100644 --- a/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs +++ b/bridges/chains/chain-bridge-hub-polkadot/src/lib.rs @@ -26,7 +26,7 @@ use bp_runtime::{ decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain, }; use frame_support::dispatch::DispatchClass; -use sp_runtime::RuntimeDebug; +use sp_runtime::{RuntimeDebug, StateVersion}; /// BridgeHubPolkadot parachain. #[derive(RuntimeDebug)] @@ -45,6 +45,8 @@ impl Chain for BridgeHubPolkadot { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { *BlockLength::get().max.get(DispatchClass::Normal) } diff --git a/bridges/chains/chain-bridge-hub-rococo/src/lib.rs b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs index d7097f01c53..73af997b995 100644 --- a/bridges/chains/chain-bridge-hub-rococo/src/lib.rs +++ b/bridges/chains/chain-bridge-hub-rococo/src/lib.rs @@ -25,8 +25,10 @@ use bp_messages::*; use bp_runtime::{ decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain, }; -use frame_support::dispatch::DispatchClass; -use sp_runtime::{MultiAddress, MultiSigner, RuntimeDebug}; +use frame_support::{ + dispatch::DispatchClass, + sp_runtime::{MultiAddress, MultiSigner, RuntimeDebug, StateVersion}, +}; /// BridgeHubRococo parachain. #[derive(RuntimeDebug)] @@ -45,6 +47,8 @@ impl Chain for BridgeHubRococo { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { *BlockLength::get().max.get(DispatchClass::Normal) } @@ -103,10 +107,10 @@ frame_support::parameter_types! { pub const BridgeHubRococoBaseXcmFeeInRocs: u128 = 59_034_266; /// Transaction fee that is paid at the Rococo BridgeHub for delivering single inbound message. - /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_delivery_transaction` + `33%`) + /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_standalone_message_delivery_transaction` + `33%`) pub const BridgeHubRococoBaseDeliveryFeeInRocs: u128 = 314_037_860; /// Transaction fee that is paid at the Rococo BridgeHub for delivering single outbound message confirmation. - /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_complex_message_confirmation_transaction` + `33%`) + /// (initially was calculated by test `BridgeHubRococo::can_calculate_fee_for_standalone_message_confirmation_transaction` + `33%`) pub const BridgeHubRococoBaseConfirmationFeeInRocs: u128 = 57_414_813; } diff --git a/bridges/chains/chain-bridge-hub-westend/src/lib.rs b/bridges/chains/chain-bridge-hub-westend/src/lib.rs index 800f290d7bf..17ff2c858a1 100644 --- a/bridges/chains/chain-bridge-hub-westend/src/lib.rs +++ b/bridges/chains/chain-bridge-hub-westend/src/lib.rs @@ -25,7 +25,7 @@ use bp_runtime::{ decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis, Chain, ChainId, Parachain, }; use frame_support::dispatch::DispatchClass; -use sp_runtime::RuntimeDebug; +use sp_runtime::{RuntimeDebug, StateVersion}; /// BridgeHubWestend parachain. #[derive(RuntimeDebug)] @@ -44,6 +44,8 @@ impl Chain for BridgeHubWestend { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { *BlockLength::get().max.get(DispatchClass::Normal) } diff --git a/bridges/chains/chain-kusama/src/lib.rs b/bridges/chains/chain-kusama/src/lib.rs index fd7172c5869..dcd0b23abbb 100644 --- a/bridges/chains/chain-kusama/src/lib.rs +++ b/bridges/chains/chain-kusama/src/lib.rs @@ -23,7 +23,7 @@ pub use bp_polkadot_core::*; use bp_header_chain::ChainWithGrandpa; use bp_runtime::{decl_bridge_finality_runtime_apis, Chain, ChainId}; -use frame_support::weights::Weight; +use frame_support::{sp_runtime::StateVersion, weights::Weight}; /// Kusama Chain pub struct Kusama; @@ -41,6 +41,8 @@ impl Chain for Kusama { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V0; + fn max_extrinsic_size() -> u32 { max_extrinsic_size() } diff --git a/bridges/chains/chain-polkadot-bulletin/src/lib.rs b/bridges/chains/chain-polkadot-bulletin/src/lib.rs index f3d300567f2..88980a95750 100644 --- a/bridges/chains/chain-polkadot-bulletin/src/lib.rs +++ b/bridges/chains/chain-polkadot-bulletin/src/lib.rs @@ -37,7 +37,9 @@ use frame_support::{ }; use frame_system::limits; use scale_info::TypeInfo; -use sp_runtime::{traits::DispatchInfoOf, transaction_validity::TransactionValidityError, Perbill}; +use sp_runtime::{ + traits::DispatchInfoOf, transaction_validity::TransactionValidityError, Perbill, StateVersion, +}; // This chain reuses most of Polkadot primitives. pub use bp_polkadot_core::{ @@ -192,6 +194,8 @@ impl Chain for PolkadotBulletin { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { *BlockLength::get().max.get(DispatchClass::Normal) } diff --git a/bridges/chains/chain-polkadot/src/lib.rs b/bridges/chains/chain-polkadot/src/lib.rs index a8cac0467d5..f4b262d4073 100644 --- a/bridges/chains/chain-polkadot/src/lib.rs +++ b/bridges/chains/chain-polkadot/src/lib.rs @@ -25,7 +25,7 @@ use bp_header_chain::ChainWithGrandpa; use bp_runtime::{ decl_bridge_finality_runtime_apis, extensions::PrevalidateAttests, Chain, ChainId, }; -use frame_support::weights::Weight; +use frame_support::{sp_runtime::StateVersion, weights::Weight}; /// Polkadot Chain pub struct Polkadot; @@ -43,6 +43,8 @@ impl Chain for Polkadot { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V0; + fn max_extrinsic_size() -> u32 { max_extrinsic_size() } diff --git a/bridges/chains/chain-rococo/src/lib.rs b/bridges/chains/chain-rococo/src/lib.rs index b290fe71c82..bfcafdf41ea 100644 --- a/bridges/chains/chain-rococo/src/lib.rs +++ b/bridges/chains/chain-rococo/src/lib.rs @@ -23,7 +23,7 @@ pub use bp_polkadot_core::*; use bp_header_chain::ChainWithGrandpa; use bp_runtime::{decl_bridge_finality_runtime_apis, Chain, ChainId}; -use frame_support::weights::Weight; +use frame_support::{sp_runtime::StateVersion, weights::Weight}; /// Rococo Chain pub struct Rococo; @@ -41,6 +41,8 @@ impl Chain for Rococo { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { max_extrinsic_size() } diff --git a/bridges/chains/chain-westend/src/lib.rs b/bridges/chains/chain-westend/src/lib.rs index ef451f7de0a..2a247e03e59 100644 --- a/bridges/chains/chain-westend/src/lib.rs +++ b/bridges/chains/chain-westend/src/lib.rs @@ -23,7 +23,7 @@ pub use bp_polkadot_core::*; use bp_header_chain::ChainWithGrandpa; use bp_runtime::{decl_bridge_finality_runtime_apis, Chain, ChainId}; -use frame_support::weights::Weight; +use frame_support::{sp_runtime::StateVersion, weights::Weight}; /// Westend Chain pub struct Westend; @@ -41,6 +41,8 @@ impl Chain for Westend { type Nonce = Nonce; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { max_extrinsic_size() } diff --git a/bridges/modules/beefy/src/mock.rs b/bridges/modules/beefy/src/mock.rs index 53efd57c29a..3b751ddf066 100644 --- a/bridges/modules/beefy/src/mock.rs +++ b/bridges/modules/beefy/src/mock.rs @@ -29,6 +29,7 @@ use sp_core::{sr25519::Signature, Pair}; use sp_runtime::{ testing::{Header, H256}, traits::{BlakeTwo256, Hash}, + StateVersion, }; pub use sp_consensus_beefy::ecdsa_crypto::{AuthorityId as BeefyId, Pair as BeefyPair}; @@ -93,6 +94,8 @@ impl Chain for TestBridgedChain { type Nonce = u64; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { unreachable!() } diff --git a/bridges/modules/grandpa/Cargo.toml b/bridges/modules/grandpa/Cargo.toml index 307c7ddaaff..6d1419ae5b0 100644 --- a/bridges/modules/grandpa/Cargo.toml +++ b/bridges/modules/grandpa/Cargo.toml @@ -14,7 +14,6 @@ workspace = true [dependencies] codec = { workspace = true } -finality-grandpa = { workspace = true } log = { workspace = true } scale-info = { features = ["derive"], workspace = true } @@ -30,13 +29,13 @@ frame-system = { workspace = true } sp-consensus-grandpa = { features = ["serde"], workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-std = { workspace = true } -sp-trie = { workspace = true } # Optional Benchmarking Dependencies bp-test-utils = { optional = true, workspace = true } frame-benchmarking = { optional = true, workspace = true } [dev-dependencies] +bp-runtime = { features = ["test-helpers"], workspace = true } sp-core = { workspace = true, default-features = true } sp-io = { workspace = true, default-features = true } @@ -47,7 +46,6 @@ std = [ "bp-runtime/std", "bp-test-utils/std", "codec/std", - "finality-grandpa/std", "frame-benchmarking/std", "frame-support/std", "frame-system/std", @@ -56,7 +54,6 @@ std = [ "sp-consensus-grandpa/std", "sp-runtime/std", "sp-std/std", - "sp-trie/std", ] runtime-benchmarks = [ "bp-test-utils", diff --git a/bridges/modules/grandpa/src/lib.rs b/bridges/modules/grandpa/src/lib.rs index 3b77f676870..c62951b7465 100644 --- a/bridges/modules/grandpa/src/lib.rs +++ b/bridges/modules/grandpa/src/lib.rs @@ -1443,11 +1443,14 @@ mod tests { } #[test] - fn parse_finalized_storage_proof_rejects_proof_on_unknown_header() { + fn verify_storage_proof_rejects_unknown_header() { run_test(|| { assert_noop!( - Pallet::::storage_proof_checker(Default::default(), vec![],) - .map(|_| ()), + Pallet::::verify_storage_proof( + Default::default(), + Default::default(), + ) + .map(|_| ()), bp_header_chain::HeaderChainError::UnknownHeader, ); }); @@ -1465,9 +1468,7 @@ mod tests { >::put(HeaderId(2, hash)); >::insert(hash, header.build()); - assert_ok!( - Pallet::::storage_proof_checker(hash, storage_proof).map(|_| ()) - ); + assert_ok!(Pallet::::verify_storage_proof(hash, storage_proof).map(|_| ())); }); } diff --git a/bridges/modules/grandpa/src/mock.rs b/bridges/modules/grandpa/src/mock.rs index 27df9d9c78f..71af6182e05 100644 --- a/bridges/modules/grandpa/src/mock.rs +++ b/bridges/modules/grandpa/src/mock.rs @@ -20,7 +20,8 @@ use bp_header_chain::ChainWithGrandpa; use bp_runtime::{Chain, ChainId}; use frame_support::{ - construct_runtime, derive_impl, parameter_types, traits::Hooks, weights::Weight, + construct_runtime, derive_impl, parameter_types, sp_runtime::StateVersion, traits::Hooks, + weights::Weight, }; use sp_core::sr25519::Signature; @@ -78,6 +79,8 @@ impl Chain for TestBridgedChain { type Nonce = u64; type Signature = Signature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { unreachable!() } diff --git a/bridges/modules/messages/Cargo.toml b/bridges/modules/messages/Cargo.toml index 573d0ba4766..33f524030d2 100644 --- a/bridges/modules/messages/Cargo.toml +++ b/bridges/modules/messages/Cargo.toml @@ -13,52 +13,67 @@ workspace = true [dependencies] codec = { workspace = true } log = { workspace = true } -num-traits = { workspace = true } scale-info = { features = ["derive"], workspace = true } # Bridge dependencies - +bp-header-chain = { workspace = true } bp-messages = { workspace = true } bp-runtime = { workspace = true } # Substrate Dependencies - frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } sp-std = { workspace = true } +sp-trie = { optional = true, workspace = true } [dev-dependencies] -bp-test-utils = { workspace = true, default-features = true } -pallet-balances = { workspace = true, default-features = true } -sp-io = { workspace = true, default-features = true } +bp-runtime = { features = ["test-helpers"], workspace = true } +bp-test-utils = { workspace = true } +pallet-balances = { workspace = true } +pallet-bridge-grandpa = { workspace = true } +sp-io = { workspace = true } +sp-core = { workspace = true } [features] default = ["std"] std = [ + "bp-header-chain/std", "bp-messages/std", "bp-runtime/std", + "bp-test-utils/std", "codec/std", "frame-benchmarking/std", "frame-support/std", "frame-system/std", "log/std", - "num-traits/std", + "pallet-balances/std", + "pallet-bridge-grandpa/std", "scale-info/std", + "sp-core/std", + "sp-io/std", "sp-runtime/std", "sp-std/std", + "sp-trie/std", ] runtime-benchmarks = [ + "bp-runtime/test-helpers", "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", "pallet-balances/runtime-benchmarks", + "pallet-bridge-grandpa/runtime-benchmarks", "sp-runtime/runtime-benchmarks", ] try-runtime = [ "frame-support/try-runtime", "frame-system/try-runtime", "pallet-balances/try-runtime", + "pallet-bridge-grandpa/try-runtime", "sp-runtime/try-runtime", ] +test-helpers = [ + "bp-runtime/test-helpers", + "sp-trie", +] diff --git a/bridges/modules/messages/README.md b/bridges/modules/messages/README.md index c06b96b857d..80fd92eb0e5 100644 --- a/bridges/modules/messages/README.md +++ b/bridges/modules/messages/README.md @@ -104,17 +104,22 @@ the message. When a message is delivered to the target chain, the `MessagesDeliv `receive_messages_delivery_proof()` transaction. The `MessagesDelivered` contains the message lane identifier and inclusive range of delivered message nonces. -The pallet provides no means to get the result of message dispatch at the target chain. If that is required, it must be -done outside of the pallet. For example, XCM messages, when dispatched, have special instructions to send some data back -to the sender. Other dispatchers may use similar mechanism for that. -### How to plug-in Messages Module to Send Messages to the Bridged Chain? - -The `pallet_bridge_messages::Config` trait has 3 main associated types that are used to work with outbound messages. The -`pallet_bridge_messages::Config::TargetHeaderChain` defines how we see the bridged chain as the target for our outbound -messages. It must be able to check that the bridged chain may accept our message - like that the message has size below -maximal possible transaction size of the chain and so on. And when the relayer sends us a confirmation transaction, this -implementation must be able to parse and verify the proof of messages delivery. Normally, you would reuse the same -(configurable) type on all chains that are sending messages to the same bridged chain. +The pallet provides no means to get the result of message dispatch at the target chain. If that is +required, it must be done outside of the pallet. For example, XCM messages, when dispatched, have +special instructions to send some data back to the sender. Other dispatchers may use similar +mechanism for that. + +### How to plug-in Messages Module to Send and Receive Messages from the Bridged Chain? + +The `pallet_bridge_messages::Config` trait has 2 main associated types that are used to work with +inbound messages. The `pallet_bridge_messages::BridgedChain` defines basic primitives of the bridged +chain. The `pallet_bridge_messages::BridgedHeaderChain` defines the way we access the bridged chain +headers in our runtime. You may use `pallet_bridge_grandpa` if you're bridging with chain that uses +GRANDPA finality or `pallet_bridge_parachains::ParachainHeaders` if you're bridging with parachain. + +The `pallet_bridge_messages::Config::MessageDispatch` defines a way on how to dispatch delivered +messages. Apart from actually dispatching the message, the implementation must return the correct +dispatch weight of the message before dispatch is called. The last type is the `pallet_bridge_messages::Config::DeliveryConfirmationPayments`. When confirmation transaction is received, we call the `pay_reward()` method, passing the range of delivered messages. @@ -129,18 +134,6 @@ You should be looking at the `bp_messages::source_chain::ForbidOutboundMessages` [`bp_messages::source_chain`](../../primitives/messages/src/source_chain.rs). It implements all required traits and will simply reject all transactions, related to outbound messages. -### How to plug-in Messages Module to Receive Messages from the Bridged Chain? - -The `pallet_bridge_messages::Config` trait has 2 main associated types that are used to work with inbound messages. The -`pallet_bridge_messages::Config::SourceHeaderChain` defines how we see the bridged chain as the source of our inbound -messages. When relayer sends us a delivery transaction, this implementation must be able to parse and verify the proof -of messages wrapped in this transaction. Normally, you would reuse the same (configurable) type on all chains that are -sending messages to the same bridged chain. - -The `pallet_bridge_messages::Config::MessageDispatch` defines a way on how to dispatch delivered messages. Apart from -actually dispatching the message, the implementation must return the correct dispatch weight of the message before -dispatch is called. - ### I have a Messages Module in my Runtime, but I Want to Reject all Inbound Messages. What shall I do? You should be looking at the `bp_messages::target_chain::ForbidInboundMessages` structure from the @@ -150,36 +143,42 @@ and will simply reject all transactions, related to inbound messages. ### What about other Constants in the Messages Module Configuration Trait? Two settings that are used to check messages in the `send_message()` function. The -`pallet_bridge_messages::Config::ActiveOutboundLanes` is an array of all message lanes, that may be used to send -messages. All messages sent using other lanes are rejected. All messages that have size above -`pallet_bridge_messages::Config::MaximalOutboundPayloadSize` will also be rejected. - -To be able to reward the relayer for delivering messages, we store a map of message nonces range => identifier of the -relayer that has delivered this range at the target chain runtime storage. If a relayer delivers multiple consequent -ranges, they're merged into single entry. So there may be more than one entry for the same relayer. Eventually, this -whole map must be delivered back to the source chain to confirm delivery and pay rewards. So to make sure we are able to -craft this confirmation transaction, we need to: (1) keep the size of this map below a certain limit and (2) make sure -that the weight of processing this map is below a certain limit. Both size and processing weight mostly depend on the -number of entries. The number of entries is limited with the -`pallet_bridge_messages::ConfigMaxUnrewardedRelayerEntriesAtInboundLane` parameter. Processing weight also depends on -the total number of messages that are being confirmed, because every confirmed message needs to be read. So there's -another `pallet_bridge_messages::Config::MaxUnconfirmedMessagesAtInboundLane` parameter for that. - -When choosing values for these parameters, you must also keep in mind that if proof in your scheme is based on finality -of headers (and it is the most obvious option for Substrate-based chains with finality notion), then choosing too small -values for these parameters may cause significant delays in message delivery. That's because there are too many actors -involved in this scheme: 1) authorities that are finalizing headers of the target chain need to finalize header with -non-empty map; 2) the headers relayer then needs to submit this header and its finality proof to the source chain; 3) -the messages relayer must then send confirmation transaction (storage proof of this map) to the source chain; 4) when -the confirmation transaction will be mined at some header, source chain authorities must finalize this header; 5) the -headers relay then needs to submit this header and its finality proof to the target chain; 6) only now the messages -relayer may submit new messages from the source to target chain and prune the entry from the map. - -Delivery transaction requires the relayer to provide both number of entries and total number of messages in the map. -This means that the module never charges an extra cost for delivering a map - the relayer would need to pay exactly for -the number of entries+messages it has delivered. So the best guess for values of these parameters would be the pair that -would occupy `N` percent of the maximal transaction size and weight of the source chain. The `N` should be large enough -to process large maps, at the same time keeping reserve for future source chain upgrades. +`pallet_bridge_messages::Config::ActiveOutboundLanes` is an array of all message lanes, that +may be used to send messages. All messages sent using other lanes are rejected. All messages that have +size above `pallet_bridge_messages::Config::MaximalOutboundPayloadSize` will also be rejected. + +To be able to reward the relayer for delivering messages, we store a map of message nonces range => +identifier of the relayer that has delivered this range at the target chain runtime storage. If a +relayer delivers multiple consequent ranges, they're merged into single entry. So there may be more +than one entry for the same relayer. Eventually, this whole map must be delivered back to the source +chain to confirm delivery and pay rewards. So to make sure we are able to craft this confirmation +transaction, we need to: (1) keep the size of this map below a certain limit and (2) make sure that +the weight of processing this map is below a certain limit. Both size and processing weight mostly +depend on the number of entries. The number of entries is limited with the +`pallet_bridge_messages::Config::BridgedChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX` parameter. +Processing weight also depends on the total number of messages that are being confirmed, because every +confirmed message needs to be read. So there's another +`pallet_bridge_messages::Config::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX` parameter +for that. + +When choosing values for these parameters, you must also keep in mind that if proof in your scheme +is based on finality of headers (and it is the most obvious option for Substrate-based chains with +finality notion), then choosing too small values for these parameters may cause significant delays +in message delivery. That's because there are too many actors involved in this scheme: 1) authorities +that are finalizing headers of the target chain need to finalize header with non-empty map; 2) the +headers relayer then needs to submit this header and its finality proof to the source chain; 3) the +messages relayer must then send confirmation transaction (storage proof of this map) to the source +chain; 4) when the confirmation transaction will be mined at some header, source chain authorities +must finalize this header; 5) the headers relay then needs to submit this header and its finality +proof to the target chain; 6) only now the messages relayer may submit new messages from the source +to target chain and prune the entry from the map. + +Delivery transaction requires the relayer to provide both number of entries and total number of +messages in the map. This means that the module never charges an extra cost for delivering a map - +the relayer would need to pay exactly for the number of entries+messages it has delivered. So the +best guess for values of these parameters would be the pair that would occupy `N` percent of the +maximal transaction size and weight of the source chain. The `N` should be large enough to process +large maps, at the same time keeping reserve for future source chain upgrades. ## Non-Essential Functionality diff --git a/bridges/modules/messages/src/benchmarking.rs b/bridges/modules/messages/src/benchmarking.rs index 4f13c440967..d38aaf32dc9 100644 --- a/bridges/modules/messages/src/benchmarking.rs +++ b/bridges/modules/messages/src/benchmarking.rs @@ -16,19 +16,22 @@ //! Messages pallet benchmarking. +#![cfg(feature = "runtime-benchmarks")] + use crate::{ inbound_lane::InboundLaneStorage, outbound_lane, weights_ext::EXPECTED_DEFAULT_MESSAGE_LENGTH, - Call, OutboundLanes, RuntimeInboundLaneStorage, + BridgedChainOf, Call, OutboundLanes, RuntimeInboundLaneStorage, }; use bp_messages::{ - source_chain::TargetHeaderChain, target_chain::SourceHeaderChain, DeliveredMessages, + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, ChainWithMessages, DeliveredMessages, InboundLaneData, LaneId, MessageNonce, OutboundLaneData, UnrewardedRelayer, UnrewardedRelayersState, }; -use bp_runtime::StorageProofSize; +use bp_runtime::{AccountIdOf, HashOf, UnverifiedStorageProofParams}; use codec::Decode; -use frame_benchmarking::{account, benchmarks_instance_pallet}; +use frame_benchmarking::{account, v2::*}; use frame_support::weights::Weight; use frame_system::RawOrigin; use sp_runtime::{traits::TrailingZeroInput, BoundedVec}; @@ -54,7 +57,7 @@ pub struct MessageProofParams { /// return `true` from the `is_message_successfully_dispatched`. pub is_successful_dispatch_expected: bool, /// Proof size requirements. - pub size: StorageProofSize, + pub proof_params: UnverifiedStorageProofParams, } /// Benchmark-specific message delivery proof parameters. @@ -65,7 +68,7 @@ pub struct MessageDeliveryProofParams { /// The proof needs to include this inbound lane data. pub inbound_lane_data: InboundLaneData, /// Proof size requirements. - pub size: StorageProofSize, + pub proof_params: UnverifiedStorageProofParams, } /// Trait that must be implemented by runtime. @@ -80,8 +83,8 @@ pub trait Config: crate::Config { /// Return id of relayer account at the bridged chain. /// /// By default, zero account is returned. - fn bridged_relayer_id() -> Self::InboundRelayer { - Self::InboundRelayer::decode(&mut TrailingZeroInput::zeroes()).unwrap() + fn bridged_relayer_id() -> AccountIdOf> { + Decode::decode(&mut TrailingZeroInput::zeroes()).unwrap() } /// Create given account and give it enough balance for test purposes. Used to create @@ -94,11 +97,11 @@ pub trait Config: crate::Config { /// Prepare messages proof to receive by the module. fn prepare_message_proof( params: MessageProofParams, - ) -> (::MessagesProof, Weight); + ) -> (FromBridgedChainMessagesProof>>, Weight); /// Prepare messages delivery proof to receive by the module. fn prepare_message_delivery_proof( params: MessageDeliveryProofParams, - ) -> >::MessagesDeliveryProof; + ) -> FromBridgedChainMessagesDeliveryProof>>; /// Returns true if message has been successfully dispatched or not. fn is_message_successfully_dispatched(_nonce: MessageNonce) -> bool { @@ -109,174 +112,227 @@ pub trait Config: crate::Config { fn is_relayer_rewarded(relayer: &Self::AccountId) -> bool; } -benchmarks_instance_pallet! { +fn send_regular_message, I: 'static>() { + let mut outbound_lane = outbound_lane::(T::bench_lane_id()); + outbound_lane.send_message(BoundedVec::try_from(vec![]).expect("We craft valid messages")); +} + +fn receive_messages, I: 'static>(nonce: MessageNonce) { + let mut inbound_lane_storage = + RuntimeInboundLaneStorage::::from_lane_id(T::bench_lane_id()); + inbound_lane_storage.set_data(InboundLaneData { + relayers: vec![UnrewardedRelayer { + relayer: T::bridged_relayer_id(), + messages: DeliveredMessages::new(nonce), + }] + .into_iter() + .collect(), + last_confirmed_nonce: 0, + }); +} + +struct ReceiveMessagesProofSetup, I: 'static> { + relayer_id_on_src: AccountIdOf>, + relayer_id_on_tgt: T::AccountId, + msgs_count: u32, + _phantom_data: sp_std::marker::PhantomData, +} + +impl, I: 'static> ReceiveMessagesProofSetup { + const LATEST_RECEIVED_NONCE: MessageNonce = 20; + + fn new(msgs_count: u32) -> Self { + let setup = Self { + relayer_id_on_src: T::bridged_relayer_id(), + relayer_id_on_tgt: account("relayer", 0, SEED), + msgs_count, + _phantom_data: Default::default(), + }; + T::endow_account(&setup.relayer_id_on_tgt); + // mark messages 1..=latest_recvd_nonce as delivered + receive_messages::(Self::LATEST_RECEIVED_NONCE); + + setup + } + + fn relayer_id_on_src(&self) -> AccountIdOf> { + self.relayer_id_on_src.clone() + } + + fn relayer_id_on_tgt(&self) -> T::AccountId { + self.relayer_id_on_tgt.clone() + } + + fn last_nonce(&self) -> MessageNonce { + Self::LATEST_RECEIVED_NONCE + self.msgs_count as u64 + } + + fn nonces(&self) -> RangeInclusive { + (Self::LATEST_RECEIVED_NONCE + 1)..=self.last_nonce() + } + + fn check_last_nonce(&self) { + assert_eq!( + crate::InboundLanes::::get(&T::bench_lane_id()).last_delivered_nonce(), + self.last_nonce(), + ); + } +} + +#[instance_benchmarks] +mod benchmarks { + use super::*; + // // Benchmarks that are used directly by the runtime calls weight formulae. // - // Benchmark `receive_messages_proof` extrinsic with single minimal-weight message and following conditions: + fn max_msgs, I: 'static>() -> u32 { + T::BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX as u32 - + ReceiveMessagesProofSetup::::LATEST_RECEIVED_NONCE as u32 + } + + // Benchmark `receive_messages_proof` extrinsic with single minimal-weight message and following + // conditions: // * proof does not include outbound lane state proof; // * inbound lane already has state, so it needs to be read and decoded; // * message is dispatched (reminder: dispatch weight should be minimal); // * message requires all heavy checks done by dispatcher. - // - // This is base benchmark for all other message delivery benchmarks. - receive_single_message_proof { - let relayer_id_on_source = T::bridged_relayer_id(); - let relayer_id_on_target = account("relayer", 0, SEED); - T::endow_account(&relayer_id_on_target); - - // mark messages 1..=20 as delivered - receive_messages::(20); - + #[benchmark] + fn receive_single_message_proof() { + // setup code + let setup = ReceiveMessagesProofSetup::::new(1); let (proof, dispatch_weight) = T::prepare_message_proof(MessageProofParams { lane: T::bench_lane_id(), - message_nonces: 21..=21, + message_nonces: setup.nonces(), outbound_lane_data: None, is_successful_dispatch_expected: false, - size: StorageProofSize::Minimal(EXPECTED_DEFAULT_MESSAGE_LENGTH), + proof_params: UnverifiedStorageProofParams::from_db_size( + EXPECTED_DEFAULT_MESSAGE_LENGTH, + ), }); - }: receive_messages_proof(RawOrigin::Signed(relayer_id_on_target), relayer_id_on_source, proof, 1, dispatch_weight) - verify { - assert_eq!( - crate::InboundLanes::::get(&T::bench_lane_id()).last_delivered_nonce(), - 21, + + #[extrinsic_call] + receive_messages_proof( + RawOrigin::Signed(setup.relayer_id_on_tgt()), + setup.relayer_id_on_src(), + Box::new(proof), + setup.msgs_count, + dispatch_weight, ); + + // verification code + setup.check_last_nonce(); } - // Benchmark `receive_messages_proof` extrinsic with two minimal-weight messages and following conditions: + // Benchmark `receive_messages_proof` extrinsic with `n` minimal-weight messages and following + // conditions: // * proof does not include outbound lane state proof; // * inbound lane already has state, so it needs to be read and decoded; // * message is dispatched (reminder: dispatch weight should be minimal); // * message requires all heavy checks done by dispatcher. - // - // The weight of single message delivery could be approximated as - // `weight(receive_two_messages_proof) - weight(receive_single_message_proof)`. - // This won't be super-accurate if message has non-zero dispatch weight, but estimation should - // be close enough to real weight. - receive_two_messages_proof { - let relayer_id_on_source = T::bridged_relayer_id(); - let relayer_id_on_target = account("relayer", 0, SEED); - T::endow_account(&relayer_id_on_target); - - // mark messages 1..=20 as delivered - receive_messages::(20); - + #[benchmark] + fn receive_n_messages_proof(n: Linear<1, { max_msgs::() }>) { + // setup code + let setup = ReceiveMessagesProofSetup::::new(n); let (proof, dispatch_weight) = T::prepare_message_proof(MessageProofParams { lane: T::bench_lane_id(), - message_nonces: 21..=22, + message_nonces: setup.nonces(), outbound_lane_data: None, is_successful_dispatch_expected: false, - size: StorageProofSize::Minimal(EXPECTED_DEFAULT_MESSAGE_LENGTH), + proof_params: UnverifiedStorageProofParams::from_db_size( + EXPECTED_DEFAULT_MESSAGE_LENGTH, + ), }); - }: receive_messages_proof(RawOrigin::Signed(relayer_id_on_target), relayer_id_on_source, proof, 2, dispatch_weight) - verify { - assert_eq!( - crate::InboundLanes::::get(&T::bench_lane_id()).last_delivered_nonce(), - 22, + + #[extrinsic_call] + receive_messages_proof( + RawOrigin::Signed(setup.relayer_id_on_tgt()), + setup.relayer_id_on_src(), + Box::new(proof), + setup.msgs_count, + dispatch_weight, ); + + // verification code + setup.check_last_nonce(); } - // Benchmark `receive_messages_proof` extrinsic with single minimal-weight message and following conditions: + // Benchmark `receive_messages_proof` extrinsic with single minimal-weight message and following + // conditions: // * proof includes outbound lane state proof; // * inbound lane already has state, so it needs to be read and decoded; // * message is successfully dispatched (reminder: dispatch weight should be minimal); // * message requires all heavy checks done by dispatcher. // // The weight of outbound lane state delivery would be - // `weight(receive_single_message_proof_with_outbound_lane_state) - weight(receive_single_message_proof)`. - // This won't be super-accurate if message has non-zero dispatch weight, but estimation should - // be close enough to real weight. - receive_single_message_proof_with_outbound_lane_state { - let relayer_id_on_source = T::bridged_relayer_id(); - let relayer_id_on_target = account("relayer", 0, SEED); - T::endow_account(&relayer_id_on_target); - - // mark messages 1..=20 as delivered - receive_messages::(20); - + // `weight(receive_single_message_proof_with_outbound_lane_state) - + // weight(receive_single_message_proof)`. This won't be super-accurate if message has non-zero + // dispatch weight, but estimation should be close enough to real weight. + #[benchmark] + fn receive_single_message_proof_with_outbound_lane_state() { + // setup code + let setup = ReceiveMessagesProofSetup::::new(1); let (proof, dispatch_weight) = T::prepare_message_proof(MessageProofParams { lane: T::bench_lane_id(), - message_nonces: 21..=21, + message_nonces: setup.nonces(), outbound_lane_data: Some(OutboundLaneData { - oldest_unpruned_nonce: 21, - latest_received_nonce: 20, - latest_generated_nonce: 21, + oldest_unpruned_nonce: setup.last_nonce(), + latest_received_nonce: ReceiveMessagesProofSetup::::LATEST_RECEIVED_NONCE, + latest_generated_nonce: setup.last_nonce(), }), is_successful_dispatch_expected: false, - size: StorageProofSize::Minimal(EXPECTED_DEFAULT_MESSAGE_LENGTH), + proof_params: UnverifiedStorageProofParams::from_db_size( + EXPECTED_DEFAULT_MESSAGE_LENGTH, + ), }); - }: receive_messages_proof(RawOrigin::Signed(relayer_id_on_target), relayer_id_on_source, proof, 1, dispatch_weight) - verify { - let lane_state = crate::InboundLanes::::get(&T::bench_lane_id()); - assert_eq!(lane_state.last_delivered_nonce(), 21); - assert_eq!(lane_state.last_confirmed_nonce, 20); - } - - // Benchmark `receive_messages_proof` extrinsic with single minimal-weight message and following conditions: - // * the proof has large leaf with total size of approximately 1KB; - // * proof does not include outbound lane state proof; - // * inbound lane already has state, so it needs to be read and decoded; - // * message is dispatched (reminder: dispatch weight should be minimal); - // * message requires all heavy checks done by dispatcher. - // - // With single KB of messages proof, the weight of the call is increased (roughly) by - // `(receive_single_message_proof_16KB - receive_single_message_proof_1_kb) / 15`. - receive_single_message_proof_1_kb { - let relayer_id_on_source = T::bridged_relayer_id(); - let relayer_id_on_target = account("relayer", 0, SEED); - T::endow_account(&relayer_id_on_target); - - // mark messages 1..=20 as delivered - receive_messages::(20); - let (proof, dispatch_weight) = T::prepare_message_proof(MessageProofParams { - lane: T::bench_lane_id(), - message_nonces: 21..=21, - outbound_lane_data: None, - is_successful_dispatch_expected: false, - size: StorageProofSize::HasLargeLeaf(1024), - }); - }: receive_messages_proof(RawOrigin::Signed(relayer_id_on_target), relayer_id_on_source, proof, 1, dispatch_weight) - verify { - assert_eq!( - crate::InboundLanes::::get(&T::bench_lane_id()).last_delivered_nonce(), - 21, + #[extrinsic_call] + receive_messages_proof( + RawOrigin::Signed(setup.relayer_id_on_tgt()), + setup.relayer_id_on_src(), + Box::new(proof), + setup.msgs_count, + dispatch_weight, ); + + // verification code + setup.check_last_nonce(); } - // Benchmark `receive_messages_proof` extrinsic with single minimal-weight message and following conditions: - // * the proof has large leaf with total size of approximately 16KB; + // Benchmark `receive_messages_proof` extrinsic with single minimal-weight message and following + // conditions: + // * the proof has large leaf with total size ranging between 1KB and 16KB; // * proof does not include outbound lane state proof; // * inbound lane already has state, so it needs to be read and decoded; // * message is dispatched (reminder: dispatch weight should be minimal); // * message requires all heavy checks done by dispatcher. - // - // Size of proof grows because it contains extra trie nodes in it. - // - // With single KB of messages proof, the weight of the call is increased (roughly) by - // `(receive_single_message_proof_16KB - receive_single_message_proof) / 15`. - receive_single_message_proof_16_kb { - let relayer_id_on_source = T::bridged_relayer_id(); - let relayer_id_on_target = account("relayer", 0, SEED); - T::endow_account(&relayer_id_on_target); - - // mark messages 1..=20 as delivered - receive_messages::(20); - + #[benchmark] + fn receive_single_n_bytes_message_proof( + /// Proof size in KB + n: Linear<1, { 16 * 1024 }>, + ) { + // setup code + let setup = ReceiveMessagesProofSetup::::new(1); let (proof, dispatch_weight) = T::prepare_message_proof(MessageProofParams { lane: T::bench_lane_id(), - message_nonces: 21..=21, + message_nonces: setup.nonces(), outbound_lane_data: None, is_successful_dispatch_expected: false, - size: StorageProofSize::HasLargeLeaf(16 * 1024), + proof_params: UnverifiedStorageProofParams::from_db_size(n), }); - }: receive_messages_proof(RawOrigin::Signed(relayer_id_on_target), relayer_id_on_source, proof, 1, dispatch_weight) - verify { - assert_eq!( - crate::InboundLanes::::get(&T::bench_lane_id()).last_delivered_nonce(), - 21, + + #[extrinsic_call] + receive_messages_proof( + RawOrigin::Signed(setup.relayer_id_on_tgt()), + setup.relayer_id_on_src(), + Box::new(proof), + setup.msgs_count, + dispatch_weight, ); + + // verification code + setup.check_last_nonce(); } // Benchmark `receive_messages_delivery_proof` extrinsic with following conditions: @@ -284,7 +340,8 @@ benchmarks_instance_pallet! { // * relayer account does not exist (in practice it needs to exist in production environment). // // This is base benchmark for all other confirmations delivery benchmarks. - receive_delivery_proof_for_single_message { + #[benchmark] + fn receive_delivery_proof_for_single_message() { let relayer_id: T::AccountId = account("relayer", 0, SEED); // send message that we're going to confirm @@ -302,13 +359,21 @@ benchmarks_instance_pallet! { relayers: vec![UnrewardedRelayer { relayer: relayer_id.clone(), messages: DeliveredMessages::new(1), - }].into_iter().collect(), + }] + .into_iter() + .collect(), last_confirmed_nonce: 0, }, - size: StorageProofSize::Minimal(0), + proof_params: UnverifiedStorageProofParams::default(), }); - }: receive_messages_delivery_proof(RawOrigin::Signed(relayer_id.clone()), proof, relayers_state) - verify { + + #[extrinsic_call] + receive_messages_delivery_proof( + RawOrigin::Signed(relayer_id.clone()), + proof, + relayers_state, + ); + assert_eq!(OutboundLanes::::get(T::bench_lane_id()).latest_received_nonce, 1); assert!(T::is_relayer_rewarded(&relayer_id)); } @@ -320,7 +385,8 @@ benchmarks_instance_pallet! { // Additional weight for paying single-message reward to the same relayer could be computed // as `weight(receive_delivery_proof_for_two_messages_by_single_relayer) // - weight(receive_delivery_proof_for_single_message)`. - receive_delivery_proof_for_two_messages_by_single_relayer { + #[benchmark] + fn receive_delivery_proof_for_two_messages_by_single_relayer() { let relayer_id: T::AccountId = account("relayer", 0, SEED); // send message that we're going to confirm @@ -341,13 +407,21 @@ benchmarks_instance_pallet! { relayers: vec![UnrewardedRelayer { relayer: relayer_id.clone(), messages: delivered_messages, - }].into_iter().collect(), + }] + .into_iter() + .collect(), last_confirmed_nonce: 0, }, - size: StorageProofSize::Minimal(0), + proof_params: UnverifiedStorageProofParams::default(), }); - }: receive_messages_delivery_proof(RawOrigin::Signed(relayer_id.clone()), proof, relayers_state) - verify { + + #[extrinsic_call] + receive_messages_delivery_proof( + RawOrigin::Signed(relayer_id.clone()), + proof, + relayers_state, + ); + assert_eq!(OutboundLanes::::get(T::bench_lane_id()).latest_received_nonce, 2); assert!(T::is_relayer_rewarded(&relayer_id)); } @@ -359,7 +433,8 @@ benchmarks_instance_pallet! { // Additional weight for paying reward to the next relayer could be computed // as `weight(receive_delivery_proof_for_two_messages_by_two_relayers) // - weight(receive_delivery_proof_for_two_messages_by_single_relayer)`. - receive_delivery_proof_for_two_messages_by_two_relayers { + #[benchmark] + fn receive_delivery_proof_for_two_messages_by_two_relayers() { let relayer1_id: T::AccountId = account("relayer1", 1, SEED); let relayer2_id: T::AccountId = account("relayer2", 2, SEED); @@ -385,13 +460,21 @@ benchmarks_instance_pallet! { relayer: relayer2_id.clone(), messages: DeliveredMessages::new(2), }, - ].into_iter().collect(), + ] + .into_iter() + .collect(), last_confirmed_nonce: 0, }, - size: StorageProofSize::Minimal(0), + proof_params: UnverifiedStorageProofParams::default(), }); - }: receive_messages_delivery_proof(RawOrigin::Signed(relayer1_id.clone()), proof, relayers_state) - verify { + + #[extrinsic_call] + receive_messages_delivery_proof( + RawOrigin::Signed(relayer1_id.clone()), + proof, + relayers_state, + ); + assert_eq!(OutboundLanes::::get(T::bench_lane_id()).latest_received_nonce, 2); assert!(T::is_relayer_rewarded(&relayer1_id)); assert!(T::is_relayer_rewarded(&relayer2_id)); @@ -411,51 +494,38 @@ benchmarks_instance_pallet! { // * inbound lane already has state, so it needs to be read and decoded; // * message is **SUCCESSFULLY** dispatched; // * message requires all heavy checks done by dispatcher. - receive_single_message_proof_with_dispatch { - // maybe dispatch weight relies on the message size too? - let i in EXPECTED_DEFAULT_MESSAGE_LENGTH .. EXPECTED_DEFAULT_MESSAGE_LENGTH * 16; - - let relayer_id_on_source = T::bridged_relayer_id(); - let relayer_id_on_target = account("relayer", 0, SEED); - T::endow_account(&relayer_id_on_target); - - // mark messages 1..=20 as delivered - receive_messages::(20); - + #[benchmark] + fn receive_single_n_bytes_message_proof_with_dispatch( + /// Proof size in KB + n: Linear<1, { 16 * 1024 }>, + ) { + // setup code + let setup = ReceiveMessagesProofSetup::::new(1); let (proof, dispatch_weight) = T::prepare_message_proof(MessageProofParams { lane: T::bench_lane_id(), - message_nonces: 21..=21, + message_nonces: setup.nonces(), outbound_lane_data: None, is_successful_dispatch_expected: true, - size: StorageProofSize::Minimal(i), + proof_params: UnverifiedStorageProofParams::from_db_size(n), }); - }: receive_messages_proof(RawOrigin::Signed(relayer_id_on_target), relayer_id_on_source, proof, 1, dispatch_weight) - verify { - assert_eq!( - crate::InboundLanes::::get(&T::bench_lane_id()).last_delivered_nonce(), - 21, - ); - assert!(T::is_message_successfully_dispatched(21)); - } - impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::TestRuntime) -} + #[extrinsic_call] + receive_messages_proof( + RawOrigin::Signed(setup.relayer_id_on_tgt()), + setup.relayer_id_on_src(), + Box::new(proof), + setup.msgs_count, + dispatch_weight, + ); -fn send_regular_message, I: 'static>() { - let mut outbound_lane = outbound_lane::(T::bench_lane_id()); - outbound_lane.send_message(BoundedVec::try_from(vec![]).expect("We craft valid messages")); -} + // verification code + setup.check_last_nonce(); + assert!(T::is_message_successfully_dispatched(setup.last_nonce())); + } -fn receive_messages, I: 'static>(nonce: MessageNonce) { - let mut inbound_lane_storage = - RuntimeInboundLaneStorage::::from_lane_id(T::bench_lane_id()); - inbound_lane_storage.set_data(InboundLaneData { - relayers: vec![UnrewardedRelayer { - relayer: T::bridged_relayer_id(), - messages: DeliveredMessages::new(nonce), - }] - .into_iter() - .collect(), - last_confirmed_nonce: 0, - }); + impl_benchmark_test_suite!( + Pallet, + crate::tests::mock::new_test_ext(), + crate::tests::mock::TestRuntime + ); } diff --git a/bridges/modules/messages/src/inbound_lane.rs b/bridges/modules/messages/src/inbound_lane.rs index da1698e6e03..7ef4599a93c 100644 --- a/bridges/modules/messages/src/inbound_lane.rs +++ b/bridges/modules/messages/src/inbound_lane.rs @@ -16,15 +16,15 @@ //! Everything about incoming messages receival. -use crate::Config; +use crate::{BridgedChainOf, Config}; use bp_messages::{ target_chain::{DispatchMessage, DispatchMessageData, MessageDispatch}, - DeliveredMessages, InboundLaneData, LaneId, MessageKey, MessageNonce, OutboundLaneData, - ReceptionResult, UnrewardedRelayer, + ChainWithMessages, DeliveredMessages, InboundLaneData, LaneId, MessageKey, MessageNonce, + OutboundLaneData, ReceptionResult, UnrewardedRelayer, }; +use bp_runtime::AccountIdOf; use codec::{Decode, Encode, EncodeLike, MaxEncodedLen}; -use frame_support::traits::Get; use scale_info::{Type, TypeInfo}; use sp_runtime::RuntimeDebug; use sp_std::prelude::PartialEq; @@ -55,10 +55,12 @@ pub trait InboundLaneStorage { /// /// The encoding of this type matches encoding of the corresponding `MessageData`. #[derive(Encode, Decode, Clone, RuntimeDebug, PartialEq, Eq)] -pub struct StoredInboundLaneData, I: 'static>(pub InboundLaneData); +pub struct StoredInboundLaneData, I: 'static>( + pub InboundLaneData>>, +); impl, I: 'static> sp_std::ops::Deref for StoredInboundLaneData { - type Target = InboundLaneData; + type Target = InboundLaneData>>; fn deref(&self) -> &Self::Target { &self.0 @@ -78,7 +80,7 @@ impl, I: 'static> Default for StoredInboundLaneData { } impl, I: 'static> From> - for InboundLaneData + for InboundLaneData>> { fn from(data: StoredInboundLaneData) -> Self { data.0 @@ -86,7 +88,7 @@ impl, I: 'static> From> } impl, I: 'static> EncodeLike> - for InboundLaneData + for InboundLaneData>> { } @@ -94,14 +96,14 @@ impl, I: 'static> TypeInfo for StoredInboundLaneData { type Identity = Self; fn type_info() -> Type { - InboundLaneData::::type_info() + InboundLaneData::>>::type_info() } } impl, I: 'static> MaxEncodedLen for StoredInboundLaneData { fn max_encoded_len() -> usize { - InboundLaneData::::encoded_size_hint( - T::MaxUnrewardedRelayerEntriesAtInboundLane::get() as usize, + InboundLaneData::>>::encoded_size_hint( + BridgedChainOf::::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX as usize, ) .unwrap_or(usize::MAX) } @@ -216,10 +218,10 @@ mod tests { use super::*; use crate::{ inbound_lane, - mock::{ + tests::mock::{ dispatch_result, inbound_message_data, inbound_unrewarded_relayers_state, run_test, - unrewarded_relayer, TestMessageDispatch, TestRuntime, REGULAR_PAYLOAD, TEST_LANE_ID, - TEST_RELAYER_A, TEST_RELAYER_B, TEST_RELAYER_C, + unrewarded_relayer, BridgedChain, TestMessageDispatch, TestRuntime, REGULAR_PAYLOAD, + TEST_LANE_ID, TEST_RELAYER_A, TEST_RELAYER_B, TEST_RELAYER_C, }, RuntimeInboundLaneStorage, }; @@ -372,8 +374,7 @@ mod tests { fn fails_to_receive_messages_above_unrewarded_relayer_entries_limit_per_lane() { run_test(|| { let mut lane = inbound_lane::(TEST_LANE_ID); - let max_nonce = - ::MaxUnrewardedRelayerEntriesAtInboundLane::get(); + let max_nonce = BridgedChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX; for current_nonce in 1..max_nonce + 1 { assert_eq!( lane.receive_message::( @@ -409,7 +410,7 @@ mod tests { fn fails_to_receive_messages_above_unconfirmed_messages_limit_per_lane() { run_test(|| { let mut lane = inbound_lane::(TEST_LANE_ID); - let max_nonce = ::MaxUnconfirmedMessagesAtInboundLane::get(); + let max_nonce = BridgedChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; for current_nonce in 1..=max_nonce { assert_eq!( lane.receive_message::( diff --git a/bridges/modules/messages/src/lib.rs b/bridges/modules/messages/src/lib.rs index e31a4542056..bf105b14040 100644 --- a/bridges/modules/messages/src/lib.rs +++ b/bridges/modules/messages/src/lib.rs @@ -41,8 +41,8 @@ pub use outbound_lane::StoredMessagePayload; pub use weights::WeightInfo; pub use weights_ext::{ ensure_able_to_receive_confirmation, ensure_able_to_receive_message, - ensure_weights_are_correct, WeightInfoExt, EXPECTED_DEFAULT_MESSAGE_LENGTH, - EXTRA_STORAGE_PROOF_SIZE, + ensure_maximal_message_dispatch, ensure_weights_are_correct, WeightInfoExt, + EXPECTED_DEFAULT_MESSAGE_LENGTH, EXTRA_STORAGE_PROOF_SIZE, }; use crate::{ @@ -50,20 +50,23 @@ use crate::{ outbound_lane::{OutboundLane, OutboundLaneStorage, ReceptionConfirmationError}, }; +use bp_header_chain::HeaderChain; use bp_messages::{ source_chain::{ - DeliveryConfirmationPayments, OnMessagesDelivered, SendMessageArtifacts, TargetHeaderChain, + DeliveryConfirmationPayments, FromBridgedChainMessagesDeliveryProof, OnMessagesDelivered, + SendMessageArtifacts, }, target_chain::{ - DeliveryPayments, DispatchMessage, MessageDispatch, ProvedLaneMessages, ProvedMessages, - SourceHeaderChain, + DeliveryPayments, DispatchMessage, FromBridgedChainMessagesProof, MessageDispatch, + ProvedLaneMessages, ProvedMessages, }, - DeliveredMessages, InboundLaneData, InboundMessageDetails, LaneId, MessageKey, MessageNonce, - MessagePayload, MessagesOperatingMode, OutboundLaneData, OutboundMessageDetails, - UnrewardedRelayersState, VerificationError, + ChainWithMessages, DeliveredMessages, InboundLaneData, InboundMessageDetails, LaneId, + MessageKey, MessageNonce, MessagePayload, MessagesOperatingMode, OutboundLaneData, + OutboundMessageDetails, UnrewardedRelayersState, VerificationError, }; use bp_runtime::{ - BasicOperatingMode, ChainId, OwnedBridgeModule, PreComputedSize, RangeInclusiveExt, Size, + AccountIdOf, BasicOperatingMode, HashOf, OwnedBridgeModule, PreComputedSize, RangeInclusiveExt, + Size, }; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{dispatch::PostDispatchInfo, ensure, fail, traits::Get, DefaultNoBound}; @@ -72,6 +75,8 @@ use sp_std::{marker::PhantomData, prelude::*}; mod inbound_lane; mod outbound_lane; +mod proofs; +mod tests; mod weights_ext; pub mod weights; @@ -79,10 +84,9 @@ pub mod weights; #[cfg(feature = "runtime-benchmarks")] pub mod benchmarking; -#[cfg(test)] -mod mock; - pub use pallet::*; +#[cfg(feature = "test-helpers")] +pub use tests::*; /// The target that will be used when publishing logs related to this pallet. pub const LOG_TARGET: &str = "runtime::bridge-messages"; @@ -105,76 +109,39 @@ pub mod pallet { /// Benchmarks results from runtime we're plugged into. type WeightInfo: WeightInfoExt; - /// Gets the chain id value from the instance. - #[pallet::constant] - type BridgedChainId: Get; + /// This chain type. + type ThisChain: ChainWithMessages; + /// Bridged chain type. + type BridgedChain: ChainWithMessages; + /// Bridged chain headers provider. + type BridgedHeaderChain: HeaderChain; /// Get all active outbound lanes that the message pallet is serving. type ActiveOutboundLanes: Get<&'static [LaneId]>; - /// Maximal number of unrewarded relayer entries at inbound lane. Unrewarded means that the - /// relayer has delivered messages, but either confirmations haven't been delivered back to - /// the source chain, or we haven't received reward confirmations yet. - /// - /// This constant limits maximal number of entries in the `InboundLaneData::relayers`. Keep - /// in mind that the same relayer account may take several (non-consecutive) entries in this - /// set. - type MaxUnrewardedRelayerEntriesAtInboundLane: Get; - /// Maximal number of unconfirmed messages at inbound lane. Unconfirmed means that the - /// message has been delivered, but either confirmations haven't been delivered back to the - /// source chain, or we haven't received reward confirmations for these messages yet. - /// - /// This constant limits difference between last message from last entry of the - /// `InboundLaneData::relayers` and first message at the first entry. - /// - /// There is no point of making this parameter lesser than - /// MaxUnrewardedRelayerEntriesAtInboundLane, because then maximal number of relayer entries - /// will be limited by maximal number of messages. - /// - /// This value also represents maximal number of messages in single delivery transaction. - /// Transaction that is declaring more messages than this value, will be rejected. Even if - /// these messages are from different lanes. - type MaxUnconfirmedMessagesAtInboundLane: Get; - - /// Maximal encoded size of the outbound payload. - #[pallet::constant] - type MaximalOutboundPayloadSize: Get; + /// Payload type of outbound messages. This payload is dispatched on the bridged chain. type OutboundPayload: Parameter + Size; - /// Payload type of inbound messages. This payload is dispatched on this chain. type InboundPayload: Decode; - /// Identifier of relayer that deliver messages to this chain. Relayer reward is paid on the - /// bridged chain. - type InboundRelayer: Parameter + MaxEncodedLen; - /// Delivery payments. - type DeliveryPayments: DeliveryPayments; - - // Types that are used by outbound_lane (on source chain). - /// Target header chain. - type TargetHeaderChain: TargetHeaderChain; - /// Delivery confirmation payments. + /// Handler for relayer payments that happen during message delivery transaction. + type DeliveryPayments: DeliveryPayments; + /// Handler for relayer payments that happen during message delivery confirmation + /// transaction. type DeliveryConfirmationPayments: DeliveryConfirmationPayments; /// Delivery confirmation callback. type OnMessagesDelivered: OnMessagesDelivered; - // Types that are used by inbound_lane (on target chain). - - /// Source header chain, as it is represented on target chain. - type SourceHeaderChain: SourceHeaderChain; - /// Message dispatch. + /// Message dispatch handler. type MessageDispatch: MessageDispatch; } - /// Shortcut to messages proof type for Config. - pub type MessagesProofOf = - <>::SourceHeaderChain as SourceHeaderChain>::MessagesProof; - /// Shortcut to messages delivery proof type for Config. - pub type MessagesDeliveryProofOf = - <>::TargetHeaderChain as TargetHeaderChain< - >::OutboundPayload, - ::AccountId, - >>::MessagesDeliveryProof; + /// Shortcut to this chain type for Config. + pub type ThisChainOf = >::ThisChain; + /// Shortcut to bridged chain type for Config. + pub type BridgedChainOf = >::BridgedChain; + /// Shortcut to bridged header chain type for Config. + pub type BridgedHeaderChainOf = >::BridgedHeaderChain; #[pallet::pallet] pub struct Pallet(PhantomData<(T, I)>); @@ -265,11 +232,11 @@ pub mod pallet { /// The call may succeed, but some messages may not be delivered e.g. if they are not fit /// into the unrewarded relayers vector. #[pallet::call_index(2)] - #[pallet::weight(T::WeightInfo::receive_messages_proof_weight(proof, *messages_count, *dispatch_weight))] + #[pallet::weight(T::WeightInfo::receive_messages_proof_weight(&**proof, *messages_count, *dispatch_weight))] pub fn receive_messages_proof( origin: OriginFor, - relayer_id_at_bridged_chain: T::InboundRelayer, - proof: MessagesProofOf, + relayer_id_at_bridged_chain: AccountIdOf>, + proof: Box>>>, messages_count: u32, dispatch_weight: Weight, ) -> DispatchResultWithPostInfo { @@ -278,7 +245,8 @@ pub mod pallet { // reject transactions that are declaring too many messages ensure!( - MessageNonce::from(messages_count) <= T::MaxUnconfirmedMessagesAtInboundLane::get(), + MessageNonce::from(messages_count) <= + BridgedChainOf::::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, Error::::TooManyMessagesInTheProof ); @@ -296,22 +264,19 @@ pub mod pallet { // The DeclaredWeight is exactly what's computed here. Unfortunately it is impossible // to get pre-computed value (and it has been already computed by the executive). let declared_weight = T::WeightInfo::receive_messages_proof_weight( - &proof, + &*proof, messages_count, dispatch_weight, ); let mut actual_weight = declared_weight; // verify messages proof && convert proof into messages - let messages = verify_and_decode_messages_proof::< - T::SourceHeaderChain, - T::InboundPayload, - >(proof, messages_count) - .map_err(|err| { - log::trace!(target: LOG_TARGET, "Rejecting invalid messages proof: {:?}", err,); + let messages = verify_and_decode_messages_proof::(*proof, messages_count) + .map_err(|err| { + log::trace!(target: LOG_TARGET, "Rejecting invalid messages proof: {:?}", err,); - Error::::InvalidMessagesProof - })?; + Error::::InvalidMessagesProof + })?; // dispatch messages and (optionally) update lane(s) state(s) let mut total_messages = 0; @@ -424,14 +389,14 @@ pub mod pallet { ))] pub fn receive_messages_delivery_proof( origin: OriginFor, - proof: MessagesDeliveryProofOf, + proof: FromBridgedChainMessagesDeliveryProof>>, mut relayers_state: UnrewardedRelayersState, ) -> DispatchResultWithPostInfo { Self::ensure_not_halted().map_err(Error::::BridgeModule)?; let proof_size = proof.size(); let confirmation_relayer = ensure_signed(origin)?; - let (lane_id, lane_data) = T::TargetHeaderChain::verify_messages_delivery_proof(proof) + let (lane_id, lane_data) = proofs::verify_messages_delivery_proof::(proof) .map_err(|err| { log::trace!( target: LOG_TARGET, @@ -542,8 +507,6 @@ pub mod pallet { InactiveOutboundLane, /// The inbound message dispatcher is inactive. MessageDispatchInactive, - /// Message has been treated as invalid by chain verifier. - MessageRejectedByChainVerifier(VerificationError), /// Message has been treated as invalid by the pallet logic. MessageRejectedByPallet(VerificationError), /// Submitter has failed to pay fee for delivering and dispatching messages. @@ -674,7 +637,9 @@ pub mod pallet { } /// Return inbound lane data. - pub fn inbound_lane_data(lane: LaneId) -> InboundLaneData { + pub fn inbound_lane_data( + lane: LaneId, + ) -> InboundLaneData>> { InboundLanes::::get(lane).0 } } @@ -714,18 +679,6 @@ where // let's check if outbound lane is active ensure!(T::ActiveOutboundLanes::get().contains(&lane), Error::::InactiveOutboundLane); - // let's first check if message can be delivered to target chain - T::TargetHeaderChain::verify_message(message).map_err(|err| { - log::trace!( - target: LOG_TARGET, - "Message to lane {:?} is rejected by target chain: {:?}", - lane, - err, - ); - - Error::::MessageRejectedByChainVerifier(err) - })?; - Ok(SendMessageArgs { lane_id: lane, payload: StoredMessagePayload::::try_from(message.encode()).map_err(|_| { @@ -785,7 +738,7 @@ fn outbound_lane, I: 'static>( /// Runtime inbound lane storage. struct RuntimeInboundLaneStorage, I: 'static = ()> { lane_id: LaneId, - cached_data: Option>, + cached_data: Option>>>, _phantom: PhantomData, } @@ -802,39 +755,39 @@ impl, I: 'static> RuntimeInboundLaneStorage { /// maximal configured. /// /// Maximal inbound lane state set size is configured by the - /// `MaxUnrewardedRelayerEntriesAtInboundLane` constant from the pallet configuration. The PoV + /// `MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX` constant from the pallet configuration. The PoV /// of the call includes the maximal size of inbound lane state. If the actual size is smaller, /// we may subtract extra bytes from this component. pub fn extra_proof_size_bytes(&mut self) -> u64 { let max_encoded_len = StoredInboundLaneData::::max_encoded_len(); let relayers_count = self.get_or_init_data().relayers.len(); let actual_encoded_len = - InboundLaneData::::encoded_size_hint(relayers_count) + InboundLaneData::>>::encoded_size_hint(relayers_count) .unwrap_or(usize::MAX); max_encoded_len.saturating_sub(actual_encoded_len) as _ } } impl, I: 'static> InboundLaneStorage for RuntimeInboundLaneStorage { - type Relayer = T::InboundRelayer; + type Relayer = AccountIdOf>; fn id(&self) -> LaneId { self.lane_id } fn max_unrewarded_relayer_entries(&self) -> MessageNonce { - T::MaxUnrewardedRelayerEntriesAtInboundLane::get() + BridgedChainOf::::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX } fn max_unconfirmed_messages(&self) -> MessageNonce { - T::MaxUnconfirmedMessagesAtInboundLane::get() + BridgedChainOf::::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX } - fn get_or_init_data(&mut self) -> InboundLaneData { + fn get_or_init_data(&mut self) -> InboundLaneData>> { match self.cached_data { Some(ref data) => data.clone(), None => { - let data: InboundLaneData = + let data: InboundLaneData>> = InboundLanes::::get(self.lane_id).into(); self.cached_data = Some(data.clone()); data @@ -842,7 +795,7 @@ impl, I: 'static> InboundLaneStorage for RuntimeInboundLaneStorage< } } - fn set_data(&mut self, data: InboundLaneData) { + fn set_data(&mut self, data: InboundLaneData>>) { self.cached_data = Some(data.clone()); InboundLanes::::insert(self.lane_id, StoredInboundLaneData::(data)) } @@ -887,14 +840,14 @@ impl, I: 'static> OutboundLaneStorage for RuntimeOutboundLaneStorag } /// Verify messages proof and return proved messages with decoded payload. -fn verify_and_decode_messages_proof( - proof: Chain::MessagesProof, +fn verify_and_decode_messages_proof, I: 'static>( + proof: FromBridgedChainMessagesProof>>, messages_count: u32, -) -> Result>, VerificationError> { - // `receive_messages_proof` weight formula and `MaxUnconfirmedMessagesAtInboundLane` check - // guarantees that the `message_count` is sane and Vec may be allocated. +) -> Result>, VerificationError> { + // `receive_messages_proof` weight formula and `MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX` + // check guarantees that the `message_count` is sane and Vec may be allocated. // (tx with too many messages will either be rejected from the pool, or will fail earlier) - Chain::verify_messages_proof(proof, messages_count).map(|messages_by_lane| { + proofs::verify_messages_proof::(proof, messages_count).map(|messages_by_lane| { messages_by_lane .into_iter() .map(|(lane, lane_data)| { @@ -909,1209 +862,3 @@ fn verify_and_decode_messages_proof::set_block_number(1); - System::::reset_events(); - } - - fn send_regular_message(lane_id: LaneId) { - get_ready_for_events(); - - let outbound_lane = outbound_lane::(lane_id); - let message_nonce = outbound_lane.data().latest_generated_nonce + 1; - let prev_enqueued_messages = outbound_lane.data().queued_messages().saturating_len(); - let valid_message = Pallet::::validate_message(lane_id, ®ULAR_PAYLOAD) - .expect("validate_message has failed"); - let artifacts = Pallet::::send_message(valid_message); - assert_eq!(artifacts.enqueued_messages, prev_enqueued_messages + 1); - - // check event with assigned nonce - assert_eq!( - System::::events(), - vec![EventRecord { - phase: Phase::Initialization, - event: TestEvent::Messages(Event::MessageAccepted { - lane_id, - nonce: message_nonce - }), - topics: vec![], - }], - ); - } - - fn receive_messages_delivery_proof() { - System::::set_block_number(1); - System::::reset_events(); - - assert_ok!(Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - last_confirmed_nonce: 1, - relayers: vec![UnrewardedRelayer { - relayer: 0, - messages: DeliveredMessages::new(1), - }] - .into_iter() - .collect(), - }, - ))), - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - messages_in_oldest_entry: 1, - total_messages: 1, - last_delivered_nonce: 1, - }, - )); - - assert_eq!( - System::::events(), - vec![EventRecord { - phase: Phase::Initialization, - event: TestEvent::Messages(Event::MessagesDelivered { - lane_id: TEST_LANE_ID, - messages: DeliveredMessages::new(1), - }), - topics: vec![], - }], - ); - } - - #[test] - fn pallet_rejects_transactions_if_halted() { - run_test(|| { - // send message first to be able to check that delivery_proof fails later - send_regular_message(TEST_LANE_ID); - - PalletOperatingMode::::put(MessagesOperatingMode::Basic( - BasicOperatingMode::Halted, - )); - - assert_noop!( - Pallet::::validate_message(TEST_LANE_ID, ®ULAR_PAYLOAD), - Error::::NotOperatingNormally, - ); - - assert_noop!( - Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Ok(vec![message(2, REGULAR_PAYLOAD)]).into(), - 1, - REGULAR_PAYLOAD.declared_weight, - ), - Error::::BridgeModule(bp_runtime::OwnedBridgeModuleError::Halted), - ); - - assert_noop!( - Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - last_confirmed_nonce: 1, - relayers: vec![unrewarded_relayer(1, 1, TEST_RELAYER_A)] - .into_iter() - .collect(), - }, - ))), - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - messages_in_oldest_entry: 1, - total_messages: 1, - last_delivered_nonce: 1, - }, - ), - Error::::BridgeModule(bp_runtime::OwnedBridgeModuleError::Halted), - ); - }); - } - - #[test] - fn pallet_rejects_new_messages_in_rejecting_outbound_messages_operating_mode() { - run_test(|| { - // send message first to be able to check that delivery_proof fails later - send_regular_message(TEST_LANE_ID); - - PalletOperatingMode::::put( - MessagesOperatingMode::RejectingOutboundMessages, - ); - - assert_noop!( - Pallet::::validate_message(TEST_LANE_ID, ®ULAR_PAYLOAD), - Error::::NotOperatingNormally, - ); - - assert_ok!(Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Ok(vec![message(1, REGULAR_PAYLOAD)]).into(), - 1, - REGULAR_PAYLOAD.declared_weight, - ),); - - assert_ok!(Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - last_confirmed_nonce: 1, - relayers: vec![unrewarded_relayer(1, 1, TEST_RELAYER_A)] - .into_iter() - .collect(), - }, - ))), - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - messages_in_oldest_entry: 1, - total_messages: 1, - last_delivered_nonce: 1, - }, - )); - }); - } - - #[test] - fn send_message_works() { - run_test(|| { - send_regular_message(TEST_LANE_ID); - }); - } - - #[test] - fn send_message_rejects_too_large_message() { - run_test(|| { - let mut message_payload = message_payload(1, 0); - // the payload isn't simply extra, so it'll definitely overflow - // `MAX_OUTBOUND_PAYLOAD_SIZE` if we add `MAX_OUTBOUND_PAYLOAD_SIZE` bytes to extra - message_payload - .extra - .extend_from_slice(&[0u8; MAX_OUTBOUND_PAYLOAD_SIZE as usize]); - assert_noop!( - Pallet::::validate_message(TEST_LANE_ID, &message_payload.clone(),), - Error::::MessageRejectedByPallet( - VerificationError::MessageTooLarge - ), - ); - - // let's check that we're able to send `MAX_OUTBOUND_PAYLOAD_SIZE` messages - while message_payload.encoded_size() as u32 > MAX_OUTBOUND_PAYLOAD_SIZE { - message_payload.extra.pop(); - } - assert_eq!(message_payload.encoded_size() as u32, MAX_OUTBOUND_PAYLOAD_SIZE); - - let valid_message = - Pallet::::validate_message(TEST_LANE_ID, &message_payload) - .expect("validate_message has failed"); - Pallet::::send_message(valid_message); - }) - } - - #[test] - fn chain_verifier_rejects_invalid_message_in_send_message() { - run_test(|| { - // messages with this payload are rejected by target chain verifier - assert_noop!( - Pallet::::validate_message( - TEST_LANE_ID, - &PAYLOAD_REJECTED_BY_TARGET_CHAIN, - ), - Error::::MessageRejectedByChainVerifier(VerificationError::Other( - mock::TEST_ERROR - )), - ); - }); - } - - #[test] - fn receive_messages_proof_works() { - run_test(|| { - assert_ok!(Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Ok(vec![message(1, REGULAR_PAYLOAD)]).into(), - 1, - REGULAR_PAYLOAD.declared_weight, - )); - - assert_eq!(InboundLanes::::get(TEST_LANE_ID).0.last_delivered_nonce(), 1); - - assert!(TestDeliveryPayments::is_reward_paid(1)); - }); - } - - #[test] - fn receive_messages_proof_updates_confirmed_message_nonce() { - run_test(|| { - // say we have received 10 messages && last confirmed message is 8 - InboundLanes::::insert( - TEST_LANE_ID, - InboundLaneData { - last_confirmed_nonce: 8, - relayers: vec![ - unrewarded_relayer(9, 9, TEST_RELAYER_A), - unrewarded_relayer(10, 10, TEST_RELAYER_B), - ] - .into_iter() - .collect(), - }, - ); - assert_eq!( - inbound_unrewarded_relayers_state(TEST_LANE_ID), - UnrewardedRelayersState { - unrewarded_relayer_entries: 2, - messages_in_oldest_entry: 1, - total_messages: 2, - last_delivered_nonce: 10, - }, - ); - - // message proof includes outbound lane state with latest confirmed message updated to 9 - let mut message_proof: TestMessagesProof = - Ok(vec![message(11, REGULAR_PAYLOAD)]).into(); - message_proof.result.as_mut().unwrap()[0].1.lane_state = - Some(OutboundLaneData { latest_received_nonce: 9, ..Default::default() }); - - assert_ok!(Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - message_proof, - 1, - REGULAR_PAYLOAD.declared_weight, - )); - - assert_eq!( - InboundLanes::::get(TEST_LANE_ID).0, - InboundLaneData { - last_confirmed_nonce: 9, - relayers: vec![ - unrewarded_relayer(10, 10, TEST_RELAYER_B), - unrewarded_relayer(11, 11, TEST_RELAYER_A) - ] - .into_iter() - .collect(), - }, - ); - assert_eq!( - inbound_unrewarded_relayers_state(TEST_LANE_ID), - UnrewardedRelayersState { - unrewarded_relayer_entries: 2, - messages_in_oldest_entry: 1, - total_messages: 2, - last_delivered_nonce: 11, - }, - ); - }); - } - - #[test] - fn receive_messages_fails_if_dispatcher_is_inactive() { - run_test(|| { - TestMessageDispatch::deactivate(); - assert_noop!( - Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Ok(vec![message(1, REGULAR_PAYLOAD)]).into(), - 1, - REGULAR_PAYLOAD.declared_weight, - ), - Error::::MessageDispatchInactive, - ); - }); - } - - #[test] - fn receive_messages_proof_does_not_accept_message_if_dispatch_weight_is_not_enough() { - run_test(|| { - let mut declared_weight = REGULAR_PAYLOAD.declared_weight; - *declared_weight.ref_time_mut() -= 1; - assert_noop!( - Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Ok(vec![message(1, REGULAR_PAYLOAD)]).into(), - 1, - declared_weight, - ), - Error::::InsufficientDispatchWeight - ); - assert_eq!(InboundLanes::::get(TEST_LANE_ID).last_delivered_nonce(), 0); - }); - } - - #[test] - fn receive_messages_proof_rejects_invalid_proof() { - run_test(|| { - assert_noop!( - Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Err(()).into(), - 1, - Weight::zero(), - ), - Error::::InvalidMessagesProof, - ); - }); - } - - #[test] - fn receive_messages_proof_rejects_proof_with_too_many_messages() { - run_test(|| { - assert_noop!( - Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Ok(vec![message(1, REGULAR_PAYLOAD)]).into(), - u32::MAX, - Weight::zero(), - ), - Error::::TooManyMessagesInTheProof, - ); - }); - } - - #[test] - fn receive_messages_delivery_proof_works() { - run_test(|| { - send_regular_message(TEST_LANE_ID); - receive_messages_delivery_proof(); - - assert_eq!( - OutboundLanes::::get(TEST_LANE_ID).latest_received_nonce, - 1, - ); - }); - } - - #[test] - fn receive_messages_delivery_proof_rewards_relayers() { - run_test(|| { - send_regular_message(TEST_LANE_ID); - send_regular_message(TEST_LANE_ID); - - // this reports delivery of message 1 => reward is paid to TEST_RELAYER_A - let single_message_delivery_proof = TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - relayers: vec![unrewarded_relayer(1, 1, TEST_RELAYER_A)].into_iter().collect(), - ..Default::default() - }, - ))); - let single_message_delivery_proof_size = single_message_delivery_proof.size(); - let result = Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - single_message_delivery_proof, - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - messages_in_oldest_entry: 1, - total_messages: 1, - last_delivered_nonce: 1, - }, - ); - assert_ok!(result); - assert_eq!( - result.unwrap().actual_weight.unwrap(), - TestWeightInfo::receive_messages_delivery_proof_weight( - &PreComputedSize(single_message_delivery_proof_size as _), - &UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - total_messages: 1, - ..Default::default() - }, - ) - ); - assert!(TestDeliveryConfirmationPayments::is_reward_paid(TEST_RELAYER_A, 1)); - assert!(!TestDeliveryConfirmationPayments::is_reward_paid(TEST_RELAYER_B, 1)); - assert_eq!(TestOnMessagesDelivered::call_arguments(), Some((TEST_LANE_ID, 1))); - - // this reports delivery of both message 1 and message 2 => reward is paid only to - // TEST_RELAYER_B - let two_messages_delivery_proof = TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - relayers: vec![ - unrewarded_relayer(1, 1, TEST_RELAYER_A), - unrewarded_relayer(2, 2, TEST_RELAYER_B), - ] - .into_iter() - .collect(), - ..Default::default() - }, - ))); - let two_messages_delivery_proof_size = two_messages_delivery_proof.size(); - let result = Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - two_messages_delivery_proof, - UnrewardedRelayersState { - unrewarded_relayer_entries: 2, - messages_in_oldest_entry: 1, - total_messages: 2, - last_delivered_nonce: 2, - }, - ); - assert_ok!(result); - // even though the pre-dispatch weight was for two messages, the actual weight is - // for single message only - assert_eq!( - result.unwrap().actual_weight.unwrap(), - TestWeightInfo::receive_messages_delivery_proof_weight( - &PreComputedSize(two_messages_delivery_proof_size as _), - &UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - total_messages: 1, - ..Default::default() - }, - ) - ); - assert!(!TestDeliveryConfirmationPayments::is_reward_paid(TEST_RELAYER_A, 1)); - assert!(TestDeliveryConfirmationPayments::is_reward_paid(TEST_RELAYER_B, 1)); - assert_eq!(TestOnMessagesDelivered::call_arguments(), Some((TEST_LANE_ID, 0))); - }); - } - - #[test] - fn receive_messages_delivery_proof_rejects_invalid_proof() { - run_test(|| { - assert_noop!( - Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Err(())), - Default::default(), - ), - Error::::InvalidMessagesDeliveryProof, - ); - }); - } - - #[test] - fn receive_messages_delivery_proof_rejects_proof_if_declared_relayers_state_is_invalid() { - run_test(|| { - // when number of relayers entries is invalid - assert_noop!( - Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - relayers: vec![ - unrewarded_relayer(1, 1, TEST_RELAYER_A), - unrewarded_relayer(2, 2, TEST_RELAYER_B) - ] - .into_iter() - .collect(), - ..Default::default() - } - ))), - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - total_messages: 2, - last_delivered_nonce: 2, - ..Default::default() - }, - ), - Error::::InvalidUnrewardedRelayersState, - ); - - // when number of messages is invalid - assert_noop!( - Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - relayers: vec![ - unrewarded_relayer(1, 1, TEST_RELAYER_A), - unrewarded_relayer(2, 2, TEST_RELAYER_B) - ] - .into_iter() - .collect(), - ..Default::default() - } - ))), - UnrewardedRelayersState { - unrewarded_relayer_entries: 2, - total_messages: 1, - last_delivered_nonce: 2, - ..Default::default() - }, - ), - Error::::InvalidUnrewardedRelayersState, - ); - - // when last delivered nonce is invalid - assert_noop!( - Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - relayers: vec![ - unrewarded_relayer(1, 1, TEST_RELAYER_A), - unrewarded_relayer(2, 2, TEST_RELAYER_B) - ] - .into_iter() - .collect(), - ..Default::default() - } - ))), - UnrewardedRelayersState { - unrewarded_relayer_entries: 2, - total_messages: 2, - last_delivered_nonce: 8, - ..Default::default() - }, - ), - Error::::InvalidUnrewardedRelayersState, - ); - }); - } - - #[test] - fn receive_messages_accepts_single_message_with_invalid_payload() { - run_test(|| { - let mut invalid_message = message(1, REGULAR_PAYLOAD); - invalid_message.payload = Vec::new(); - - assert_ok!(Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Ok(vec![invalid_message]).into(), - 1, - Weight::zero(), /* weight may be zero in this case (all messages are - * improperly encoded) */ - ),); - - assert_eq!(InboundLanes::::get(TEST_LANE_ID).last_delivered_nonce(), 1,); - }); - } - - #[test] - fn receive_messages_accepts_batch_with_message_with_invalid_payload() { - run_test(|| { - let mut invalid_message = message(2, REGULAR_PAYLOAD); - invalid_message.payload = Vec::new(); - - assert_ok!(Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - Ok( - vec![message(1, REGULAR_PAYLOAD), invalid_message, message(3, REGULAR_PAYLOAD),] - ) - .into(), - 3, - REGULAR_PAYLOAD.declared_weight + REGULAR_PAYLOAD.declared_weight, - ),); - - assert_eq!(InboundLanes::::get(TEST_LANE_ID).last_delivered_nonce(), 3,); - }); - } - - #[test] - fn actual_dispatch_weight_does_not_overflow() { - run_test(|| { - let message1 = message(1, message_payload(0, u64::MAX / 2)); - let message2 = message(2, message_payload(0, u64::MAX / 2)); - let message3 = message(3, message_payload(0, u64::MAX / 2)); - - assert_noop!( - Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - // this may cause overflow if source chain storage is invalid - Ok(vec![message1, message2, message3]).into(), - 3, - Weight::MAX, - ), - Error::::InsufficientDispatchWeight - ); - assert_eq!(InboundLanes::::get(TEST_LANE_ID).last_delivered_nonce(), 0); - }); - } - - #[test] - fn ref_time_refund_from_receive_messages_proof_works() { - run_test(|| { - fn submit_with_unspent_weight( - nonce: MessageNonce, - unspent_weight: u64, - ) -> (Weight, Weight) { - let mut payload = REGULAR_PAYLOAD; - *payload.dispatch_result.unspent_weight.ref_time_mut() = unspent_weight; - let proof = Ok(vec![message(nonce, payload)]).into(); - let messages_count = 1; - let pre_dispatch_weight = - ::WeightInfo::receive_messages_proof_weight( - &proof, - messages_count, - REGULAR_PAYLOAD.declared_weight, - ); - let result = Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - proof, - messages_count, - REGULAR_PAYLOAD.declared_weight, - ) - .expect("delivery has failed"); - let post_dispatch_weight = - result.actual_weight.expect("receive_messages_proof always returns Some"); - - // message delivery transactions are never free - assert_eq!(result.pays_fee, Pays::Yes); - - (pre_dispatch_weight, post_dispatch_weight) - } - - // when dispatch is returning `unspent_weight < declared_weight` - let (pre, post) = submit_with_unspent_weight(1, 1); - assert_eq!(post.ref_time(), pre.ref_time() - 1); - - // when dispatch is returning `unspent_weight = declared_weight` - let (pre, post) = - submit_with_unspent_weight(2, REGULAR_PAYLOAD.declared_weight.ref_time()); - assert_eq!( - post.ref_time(), - pre.ref_time() - REGULAR_PAYLOAD.declared_weight.ref_time() - ); - - // when dispatch is returning `unspent_weight > declared_weight` - let (pre, post) = - submit_with_unspent_weight(3, REGULAR_PAYLOAD.declared_weight.ref_time() + 1); - assert_eq!( - post.ref_time(), - pre.ref_time() - REGULAR_PAYLOAD.declared_weight.ref_time() - ); - - // when there's no unspent weight - let (pre, post) = submit_with_unspent_weight(4, 0); - assert_eq!(post.ref_time(), pre.ref_time()); - - // when dispatch is returning `unspent_weight < declared_weight` - let (pre, post) = submit_with_unspent_weight(5, 1); - assert_eq!(post.ref_time(), pre.ref_time() - 1); - }); - } - - #[test] - fn proof_size_refund_from_receive_messages_proof_works() { - run_test(|| { - let max_entries = crate::mock::MaxUnrewardedRelayerEntriesAtInboundLane::get() as usize; - - // if there's maximal number of unrewarded relayer entries at the inbound lane, then - // `proof_size` is unchanged in post-dispatch weight - let proof: TestMessagesProof = Ok(vec![message(101, REGULAR_PAYLOAD)]).into(); - let messages_count = 1; - let pre_dispatch_weight = - ::WeightInfo::receive_messages_proof_weight( - &proof, - messages_count, - REGULAR_PAYLOAD.declared_weight, - ); - InboundLanes::::insert( - TEST_LANE_ID, - StoredInboundLaneData(InboundLaneData { - relayers: vec![ - UnrewardedRelayer { - relayer: 42, - messages: DeliveredMessages { begin: 0, end: 100 } - }; - max_entries - ] - .into_iter() - .collect(), - last_confirmed_nonce: 0, - }), - ); - let post_dispatch_weight = Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - proof.clone(), - messages_count, - REGULAR_PAYLOAD.declared_weight, - ) - .unwrap() - .actual_weight - .unwrap(); - assert_eq!(post_dispatch_weight.proof_size(), pre_dispatch_weight.proof_size()); - - // if count of unrewarded relayer entries is less than maximal, then some `proof_size` - // must be refunded - InboundLanes::::insert( - TEST_LANE_ID, - StoredInboundLaneData(InboundLaneData { - relayers: vec![ - UnrewardedRelayer { - relayer: 42, - messages: DeliveredMessages { begin: 0, end: 100 } - }; - max_entries - 1 - ] - .into_iter() - .collect(), - last_confirmed_nonce: 0, - }), - ); - let post_dispatch_weight = Pallet::::receive_messages_proof( - RuntimeOrigin::signed(1), - TEST_RELAYER_A, - proof, - messages_count, - REGULAR_PAYLOAD.declared_weight, - ) - .unwrap() - .actual_weight - .unwrap(); - assert!( - post_dispatch_weight.proof_size() < pre_dispatch_weight.proof_size(), - "Expected post-dispatch PoV {} to be less than pre-dispatch PoV {}", - post_dispatch_weight.proof_size(), - pre_dispatch_weight.proof_size(), - ); - }); - } - - #[test] - fn messages_delivered_callbacks_are_called() { - run_test(|| { - send_regular_message(TEST_LANE_ID); - send_regular_message(TEST_LANE_ID); - send_regular_message(TEST_LANE_ID); - - // messages 1+2 are confirmed in 1 tx, message 3 in a separate tx - // dispatch of message 2 has failed - let mut delivered_messages_1_and_2 = DeliveredMessages::new(1); - delivered_messages_1_and_2.note_dispatched_message(); - let messages_1_and_2_proof = Ok(( - TEST_LANE_ID, - InboundLaneData { - last_confirmed_nonce: 0, - relayers: vec![UnrewardedRelayer { - relayer: 0, - messages: delivered_messages_1_and_2.clone(), - }] - .into_iter() - .collect(), - }, - )); - let delivered_message_3 = DeliveredMessages::new(3); - let messages_3_proof = Ok(( - TEST_LANE_ID, - InboundLaneData { - last_confirmed_nonce: 0, - relayers: vec![UnrewardedRelayer { relayer: 0, messages: delivered_message_3 }] - .into_iter() - .collect(), - }, - )); - - // first tx with messages 1+2 - assert_ok!(Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(messages_1_and_2_proof), - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - messages_in_oldest_entry: 2, - total_messages: 2, - last_delivered_nonce: 2, - }, - )); - // second tx with message 3 - assert_ok!(Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(messages_3_proof), - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - messages_in_oldest_entry: 1, - total_messages: 1, - last_delivered_nonce: 3, - }, - )); - }); - } - - #[test] - fn receive_messages_delivery_proof_rejects_proof_if_trying_to_confirm_more_messages_than_expected( - ) { - run_test(|| { - // send message first to be able to check that delivery_proof fails later - send_regular_message(TEST_LANE_ID); - - // 1) InboundLaneData declares that the `last_confirmed_nonce` is 1; - // 2) InboundLaneData has no entries => `InboundLaneData::last_delivered_nonce()` - // returns `last_confirmed_nonce`; - // 3) it means that we're going to confirm delivery of messages 1..=1; - // 4) so the number of declared messages (see `UnrewardedRelayersState`) is `0` and - // number of actually confirmed messages is `1`. - assert_noop!( - Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { last_confirmed_nonce: 1, relayers: Default::default() }, - ))), - UnrewardedRelayersState { last_delivered_nonce: 1, ..Default::default() }, - ), - Error::::ReceptionConfirmation( - ReceptionConfirmationError::TryingToConfirmMoreMessagesThanExpected - ), - ); - }); - } - - #[test] - fn storage_keys_computed_properly() { - assert_eq!( - PalletOperatingMode::::storage_value_final_key().to_vec(), - bp_messages::storage_keys::operating_mode_key("Messages").0, - ); - - assert_eq!( - OutboundMessages::::storage_map_final_key(MessageKey { - lane_id: TEST_LANE_ID, - nonce: 42 - }), - bp_messages::storage_keys::message_key("Messages", &TEST_LANE_ID, 42).0, - ); - - assert_eq!( - OutboundLanes::::storage_map_final_key(TEST_LANE_ID), - bp_messages::storage_keys::outbound_lane_data_key("Messages", &TEST_LANE_ID).0, - ); - - assert_eq!( - InboundLanes::::storage_map_final_key(TEST_LANE_ID), - bp_messages::storage_keys::inbound_lane_data_key("Messages", &TEST_LANE_ID).0, - ); - } - - #[test] - fn inbound_message_details_works() { - run_test(|| { - assert_eq!( - Pallet::::inbound_message_data( - TEST_LANE_ID, - REGULAR_PAYLOAD.encode(), - OutboundMessageDetails { nonce: 0, dispatch_weight: Weight::zero(), size: 0 }, - ), - InboundMessageDetails { dispatch_weight: REGULAR_PAYLOAD.declared_weight }, - ); - }); - } - - #[test] - fn on_idle_callback_respects_remaining_weight() { - run_test(|| { - send_regular_message(TEST_LANE_ID); - send_regular_message(TEST_LANE_ID); - send_regular_message(TEST_LANE_ID); - send_regular_message(TEST_LANE_ID); - - assert_ok!(Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - last_confirmed_nonce: 4, - relayers: vec![unrewarded_relayer(1, 4, TEST_RELAYER_A)] - .into_iter() - .collect(), - }, - ))), - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - messages_in_oldest_entry: 4, - total_messages: 4, - last_delivered_nonce: 4, - }, - )); - - // all 4 messages may be pruned now - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().latest_received_nonce, - 4 - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, - 1 - ); - System::::set_block_number(2); - - // if passed wight is too low to do anything - let dbw = DbWeight::get(); - assert_eq!( - Pallet::::on_idle(0, dbw.reads_writes(1, 1)), - Weight::zero(), - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, - 1 - ); - - // if passed wight is enough to prune single message - assert_eq!( - Pallet::::on_idle(0, dbw.reads_writes(1, 2)), - dbw.reads_writes(1, 2), - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, - 2 - ); - - // if passed wight is enough to prune two more messages - assert_eq!( - Pallet::::on_idle(0, dbw.reads_writes(1, 3)), - dbw.reads_writes(1, 3), - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, - 4 - ); - - // if passed wight is enough to prune many messages - assert_eq!( - Pallet::::on_idle(0, dbw.reads_writes(100, 100)), - dbw.reads_writes(1, 2), - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, - 5 - ); - }); - } - - #[test] - fn on_idle_callback_is_rotating_lanes_to_prune() { - run_test(|| { - // send + receive confirmation for lane 1 - send_regular_message(TEST_LANE_ID); - receive_messages_delivery_proof(); - // send + receive confirmation for lane 2 - send_regular_message(TEST_LANE_ID_2); - assert_ok!(Pallet::::receive_messages_delivery_proof( - RuntimeOrigin::signed(1), - TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID_2, - InboundLaneData { - last_confirmed_nonce: 1, - relayers: vec![unrewarded_relayer(1, 1, TEST_RELAYER_A)] - .into_iter() - .collect(), - }, - ))), - UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - messages_in_oldest_entry: 1, - total_messages: 1, - last_delivered_nonce: 1, - }, - )); - - // nothing is pruned yet - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().latest_received_nonce, - 1 - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, - 1 - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID_2).data().latest_received_nonce, - 1 - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID_2).data().oldest_unpruned_nonce, - 1 - ); - - // in block#2.on_idle lane messages of lane 1 are pruned - let dbw = DbWeight::get(); - System::::set_block_number(2); - assert_eq!( - Pallet::::on_idle(0, dbw.reads_writes(100, 100)), - dbw.reads_writes(1, 2), - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, - 2 - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID_2).data().oldest_unpruned_nonce, - 1 - ); - - // in block#3.on_idle lane messages of lane 2 are pruned - System::::set_block_number(3); - - assert_eq!( - Pallet::::on_idle(0, dbw.reads_writes(100, 100)), - dbw.reads_writes(1, 2), - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, - 2 - ); - assert_eq!( - outbound_lane::(TEST_LANE_ID_2).data().oldest_unpruned_nonce, - 2 - ); - }); - } - - #[test] - fn outbound_message_from_unconfigured_lane_is_rejected() { - run_test(|| { - assert_noop!( - Pallet::::validate_message(TEST_LANE_ID_3, ®ULAR_PAYLOAD,), - Error::::InactiveOutboundLane, - ); - }); - } - - #[test] - fn test_bridge_messages_call_is_correctly_defined() { - let account_id = 1; - let message_proof: TestMessagesProof = Ok(vec![message(1, REGULAR_PAYLOAD)]).into(); - let message_delivery_proof = TestMessagesDeliveryProof(Ok(( - TEST_LANE_ID, - InboundLaneData { - last_confirmed_nonce: 1, - relayers: vec![UnrewardedRelayer { - relayer: 0, - messages: DeliveredMessages::new(1), - }] - .into_iter() - .collect(), - }, - ))); - let unrewarded_relayer_state = UnrewardedRelayersState { - unrewarded_relayer_entries: 1, - total_messages: 1, - last_delivered_nonce: 1, - ..Default::default() - }; - - let direct_receive_messages_proof_call = Call::::receive_messages_proof { - relayer_id_at_bridged_chain: account_id, - proof: message_proof.clone(), - messages_count: 1, - dispatch_weight: REGULAR_PAYLOAD.declared_weight, - }; - let indirect_receive_messages_proof_call = BridgeMessagesCall::< - AccountId, - TestMessagesProof, - TestMessagesDeliveryProof, - >::receive_messages_proof { - relayer_id_at_bridged_chain: account_id, - proof: message_proof, - messages_count: 1, - dispatch_weight: REGULAR_PAYLOAD.declared_weight, - }; - assert_eq!( - direct_receive_messages_proof_call.encode(), - indirect_receive_messages_proof_call.encode() - ); - - let direct_receive_messages_delivery_proof_call = - Call::::receive_messages_delivery_proof { - proof: message_delivery_proof.clone(), - relayers_state: unrewarded_relayer_state.clone(), - }; - let indirect_receive_messages_delivery_proof_call = BridgeMessagesCall::< - AccountId, - TestMessagesProof, - TestMessagesDeliveryProof, - >::receive_messages_delivery_proof { - proof: message_delivery_proof, - relayers_state: unrewarded_relayer_state, - }; - assert_eq!( - direct_receive_messages_delivery_proof_call.encode(), - indirect_receive_messages_delivery_proof_call.encode() - ); - } - - generate_owned_bridge_module_tests!( - MessagesOperatingMode::Basic(BasicOperatingMode::Normal), - MessagesOperatingMode::Basic(BasicOperatingMode::Halted) - ); - - #[test] - fn inbound_storage_extra_proof_size_bytes_works() { - fn relayer_entry() -> UnrewardedRelayer { - UnrewardedRelayer { relayer: 42u64, messages: DeliveredMessages { begin: 0, end: 100 } } - } - - fn storage(relayer_entries: usize) -> RuntimeInboundLaneStorage { - RuntimeInboundLaneStorage { - lane_id: Default::default(), - cached_data: Some(InboundLaneData { - relayers: vec![relayer_entry(); relayer_entries].into_iter().collect(), - last_confirmed_nonce: 0, - }), - _phantom: Default::default(), - } - } - - let max_entries = crate::mock::MaxUnrewardedRelayerEntriesAtInboundLane::get() as usize; - - // when we have exactly `MaxUnrewardedRelayerEntriesAtInboundLane` unrewarded relayers - assert_eq!(storage(max_entries).extra_proof_size_bytes(), 0); - - // when we have less than `MaxUnrewardedRelayerEntriesAtInboundLane` unrewarded relayers - assert_eq!( - storage(max_entries - 1).extra_proof_size_bytes(), - relayer_entry().encode().len() as u64 - ); - assert_eq!( - storage(max_entries - 2).extra_proof_size_bytes(), - 2 * relayer_entry().encode().len() as u64 - ); - - // when we have more than `MaxUnrewardedRelayerEntriesAtInboundLane` unrewarded relayers - // (shall not happen in practice) - assert_eq!(storage(max_entries + 1).extra_proof_size_bytes(), 0); - } - - #[test] - fn maybe_outbound_lanes_count_returns_correct_value() { - assert_eq!( - MaybeOutboundLanesCount::::get(), - Some(mock::ActiveOutboundLanes::get().len() as u32) - ); - } -} diff --git a/bridges/modules/messages/src/outbound_lane.rs b/bridges/modules/messages/src/outbound_lane.rs index acef5546d2a..fcdddf199dc 100644 --- a/bridges/modules/messages/src/outbound_lane.rs +++ b/bridges/modules/messages/src/outbound_lane.rs @@ -18,16 +18,18 @@ use crate::{Config, LOG_TARGET}; -use bp_messages::{DeliveredMessages, LaneId, MessageNonce, OutboundLaneData, UnrewardedRelayer}; +use bp_messages::{ + ChainWithMessages, DeliveredMessages, LaneId, MessageNonce, OutboundLaneData, UnrewardedRelayer, +}; use codec::{Decode, Encode}; use frame_support::{ + traits::Get, weights::{RuntimeDbWeight, Weight}, BoundedVec, PalletError, }; -use num_traits::Zero; use scale_info::TypeInfo; -use sp_runtime::RuntimeDebug; -use sp_std::collections::vec_deque::VecDeque; +use sp_runtime::{traits::Zero, RuntimeDebug}; +use sp_std::{collections::vec_deque::VecDeque, marker::PhantomData}; /// Outbound lane storage. pub trait OutboundLaneStorage { @@ -48,8 +50,17 @@ pub trait OutboundLaneStorage { fn remove_message(&mut self, nonce: &MessageNonce); } +/// Limit for the `StoredMessagePayload` vector. +pub struct StoredMessagePayloadLimit(PhantomData<(T, I)>); + +impl, I: 'static> Get for StoredMessagePayloadLimit { + fn get() -> u32 { + T::BridgedChain::maximal_incoming_message_size() + } +} + /// Outbound message data wrapper that implements `MaxEncodedLen`. -pub type StoredMessagePayload = BoundedVec>::MaximalOutboundPayloadSize>; +pub type StoredMessagePayload = BoundedVec>; /// Result of messages receival confirmation. #[derive(Encode, Decode, RuntimeDebug, PartialEq, Eq, PalletError, TypeInfo)] @@ -204,11 +215,11 @@ fn ensure_unrewarded_relayers_are_correct( mod tests { use super::*; use crate::{ - mock::{ + outbound_lane, + tests::mock::{ outbound_message_data, run_test, unrewarded_relayer, TestRelayer, TestRuntime, REGULAR_PAYLOAD, TEST_LANE_ID, }, - outbound_lane, }; use frame_support::weights::constants::RocksDbWeight; use sp_std::ops::RangeInclusive; @@ -263,12 +274,43 @@ mod tests { assert_eq!(lane.send_message(outbound_message_data(REGULAR_PAYLOAD)), 3); assert_eq!(lane.storage.data().latest_generated_nonce, 3); assert_eq!(lane.storage.data().latest_received_nonce, 0); + assert_eq!(lane.storage.data().oldest_unpruned_nonce, 1); assert_eq!( lane.confirm_delivery(3, 3, &unrewarded_relayers(1..=3)), Ok(Some(delivered_messages(1..=3))), ); assert_eq!(lane.storage.data().latest_generated_nonce, 3); assert_eq!(lane.storage.data().latest_received_nonce, 3); + assert_eq!(lane.storage.data().oldest_unpruned_nonce, 1); + }); + } + + #[test] + fn confirm_partial_delivery_works() { + run_test(|| { + let mut lane = outbound_lane::(TEST_LANE_ID); + assert_eq!(lane.send_message(outbound_message_data(REGULAR_PAYLOAD)), 1); + assert_eq!(lane.send_message(outbound_message_data(REGULAR_PAYLOAD)), 2); + assert_eq!(lane.send_message(outbound_message_data(REGULAR_PAYLOAD)), 3); + assert_eq!(lane.storage.data().latest_generated_nonce, 3); + assert_eq!(lane.storage.data().latest_received_nonce, 0); + assert_eq!(lane.storage.data().oldest_unpruned_nonce, 1); + + assert_eq!( + lane.confirm_delivery(3, 2, &unrewarded_relayers(1..=2)), + Ok(Some(delivered_messages(1..=2))), + ); + assert_eq!(lane.storage.data().latest_generated_nonce, 3); + assert_eq!(lane.storage.data().latest_received_nonce, 2); + assert_eq!(lane.storage.data().oldest_unpruned_nonce, 1); + + assert_eq!( + lane.confirm_delivery(3, 3, &unrewarded_relayers(3..=3)), + Ok(Some(delivered_messages(3..=3))), + ); + assert_eq!(lane.storage.data().latest_generated_nonce, 3); + assert_eq!(lane.storage.data().latest_received_nonce, 3); + assert_eq!(lane.storage.data().oldest_unpruned_nonce, 1); }); } @@ -281,6 +323,7 @@ mod tests { lane.send_message(outbound_message_data(REGULAR_PAYLOAD)); assert_eq!(lane.storage.data().latest_generated_nonce, 3); assert_eq!(lane.storage.data().latest_received_nonce, 0); + assert_eq!(lane.storage.data().oldest_unpruned_nonce, 1); assert_eq!( lane.confirm_delivery(3, 3, &unrewarded_relayers(1..=3)), Ok(Some(delivered_messages(1..=3))), @@ -288,10 +331,12 @@ mod tests { assert_eq!(lane.confirm_delivery(3, 3, &unrewarded_relayers(1..=3)), Ok(None),); assert_eq!(lane.storage.data().latest_generated_nonce, 3); assert_eq!(lane.storage.data().latest_received_nonce, 3); + assert_eq!(lane.storage.data().oldest_unpruned_nonce, 1); assert_eq!(lane.confirm_delivery(1, 2, &unrewarded_relayers(1..=1)), Ok(None),); assert_eq!(lane.storage.data().latest_generated_nonce, 3); assert_eq!(lane.storage.data().latest_received_nonce, 3); + assert_eq!(lane.storage.data().oldest_unpruned_nonce, 1); }); } @@ -310,8 +355,8 @@ mod tests { 3, &unrewarded_relayers(1..=1) .into_iter() - .chain(unrewarded_relayers(2..=30).into_iter()) - .chain(unrewarded_relayers(3..=3).into_iter()) + .chain(unrewarded_relayers(2..=30)) + .chain(unrewarded_relayers(3..=3)) .collect(), ), Err(ReceptionConfirmationError::FailedToConfirmFutureMessages), @@ -326,8 +371,8 @@ mod tests { 3, &unrewarded_relayers(1..=1) .into_iter() - .chain(unrewarded_relayers(2..=1).into_iter()) - .chain(unrewarded_relayers(2..=3).into_iter()) + .chain(unrewarded_relayers(2..=1)) + .chain(unrewarded_relayers(2..=3)) .collect(), ), Err(ReceptionConfirmationError::EmptyUnrewardedRelayerEntry), @@ -341,8 +386,8 @@ mod tests { 3, &unrewarded_relayers(1..=1) .into_iter() - .chain(unrewarded_relayers(3..=3).into_iter()) - .chain(unrewarded_relayers(2..=2).into_iter()) + .chain(unrewarded_relayers(3..=3)) + .chain(unrewarded_relayers(2..=2)) .collect(), ), Err(ReceptionConfirmationError::NonConsecutiveUnrewardedRelayerEntries), diff --git a/bridges/modules/messages/src/proofs.rs b/bridges/modules/messages/src/proofs.rs new file mode 100644 index 00000000000..18367029d72 --- /dev/null +++ b/bridges/modules/messages/src/proofs.rs @@ -0,0 +1,562 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common 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. + +// Parity Bridges Common 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 Parity Bridges Common. If not, see . + +//! Tools for messages and delivery proof verification. + +use crate::{BridgedChainOf, BridgedHeaderChainOf, Config}; + +use bp_header_chain::{HeaderChain, HeaderChainError}; +use bp_messages::{ + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::{FromBridgedChainMessagesProof, ProvedLaneMessages, ProvedMessages}, + ChainWithMessages, InboundLaneData, LaneId, Message, MessageKey, MessageNonce, MessagePayload, + OutboundLaneData, VerificationError, +}; +use bp_runtime::{ + HashOf, HasherOf, RangeInclusiveExt, RawStorageProof, StorageProofChecker, StorageProofError, +}; +use codec::Decode; +use sp_std::vec::Vec; + +/// 'Parsed' message delivery proof - inbound lane id and its state. +pub(crate) type ParsedMessagesDeliveryProofFromBridgedChain = + (LaneId, InboundLaneData<::AccountId>); + +/// Verify proof of Bridged -> This chain messages. +/// +/// This function is used when Bridged chain is directly using GRANDPA finality. For Bridged +/// parachains, please use the `verify_messages_proof_from_parachain`. +/// +/// The `messages_count` argument verification (sane limits) is supposed to be made +/// outside of this function. This function only verifies that the proof declares exactly +/// `messages_count` messages. +pub fn verify_messages_proof, I: 'static>( + proof: FromBridgedChainMessagesProof>>, + messages_count: u32, +) -> Result, VerificationError> { + let FromBridgedChainMessagesProof { + bridged_header_hash, + storage_proof, + lane, + nonces_start, + nonces_end, + } = proof; + let mut parser: MessagesStorageProofAdapter = + MessagesStorageProofAdapter::try_new_with_verified_storage_proof( + bridged_header_hash, + storage_proof, + ) + .map_err(VerificationError::HeaderChain)?; + let nonces_range = nonces_start..=nonces_end; + + // receiving proofs where end < begin is ok (if proof includes outbound lane state) + let messages_in_the_proof = nonces_range.checked_len().unwrap_or(0); + if messages_in_the_proof != MessageNonce::from(messages_count) { + return Err(VerificationError::MessagesCountMismatch) + } + + // Read messages first. All messages that are claimed to be in the proof must + // be in the proof. So any error in `read_value`, or even missing value is fatal. + // + // Mind that we allow proofs with no messages if outbound lane state is proved. + let mut messages = Vec::with_capacity(messages_in_the_proof as _); + for nonce in nonces_range { + let message_key = MessageKey { lane_id: lane, nonce }; + let message_payload = parser + .read_and_decode_message_payload(&message_key) + .map_err(VerificationError::MessageStorage)?; + messages.push(Message { key: message_key, payload: message_payload }); + } + + // Now let's check if proof contains outbound lane state proof. It is optional, so + // we simply ignore `read_value` errors and missing value. + let proved_lane_messages = ProvedLaneMessages { + lane_state: parser + .read_and_decode_outbound_lane_data(&lane) + .map_err(VerificationError::OutboundLaneStorage)?, + messages, + }; + + // Now we may actually check if the proof is empty or not. + if proved_lane_messages.lane_state.is_none() && proved_lane_messages.messages.is_empty() { + return Err(VerificationError::EmptyMessageProof) + } + + // Check that the storage proof doesn't have any untouched keys. + parser.ensure_no_unused_keys().map_err(VerificationError::StorageProof)?; + + // We only support single lane messages in this generated_schema + let mut proved_messages = ProvedMessages::new(); + proved_messages.insert(lane, proved_lane_messages); + + Ok(proved_messages) +} + +/// Verify proof of This -> Bridged chain messages delivery. +pub fn verify_messages_delivery_proof, I: 'static>( + proof: FromBridgedChainMessagesDeliveryProof>>, +) -> Result, VerificationError> { + let FromBridgedChainMessagesDeliveryProof { bridged_header_hash, storage_proof, lane } = proof; + let mut parser: MessagesStorageProofAdapter = + MessagesStorageProofAdapter::try_new_with_verified_storage_proof( + bridged_header_hash, + storage_proof, + ) + .map_err(VerificationError::HeaderChain)?; + // Messages delivery proof is just proof of single storage key read => any error + // is fatal. + let storage_inbound_lane_data_key = bp_messages::storage_keys::inbound_lane_data_key( + T::ThisChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &lane, + ); + let inbound_lane_data = parser + .read_and_decode_mandatory_value(&storage_inbound_lane_data_key) + .map_err(VerificationError::InboundLaneStorage)?; + + // check that the storage proof doesn't have any untouched trie nodes + parser.ensure_no_unused_keys().map_err(VerificationError::StorageProof)?; + + Ok((lane, inbound_lane_data)) +} + +/// Abstraction over storage proof manipulation, hiding implementation details of actual storage +/// proofs. +trait StorageProofAdapter, I: 'static> { + fn read_and_decode_mandatory_value( + &mut self, + key: &impl AsRef<[u8]>, + ) -> Result; + fn read_and_decode_optional_value( + &mut self, + key: &impl AsRef<[u8]>, + ) -> Result, StorageProofError>; + fn ensure_no_unused_keys(self) -> Result<(), StorageProofError>; + + fn read_and_decode_outbound_lane_data( + &mut self, + lane_id: &LaneId, + ) -> Result, StorageProofError> { + let storage_outbound_lane_data_key = bp_messages::storage_keys::outbound_lane_data_key( + T::ThisChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + lane_id, + ); + self.read_and_decode_optional_value(&storage_outbound_lane_data_key) + } + + fn read_and_decode_message_payload( + &mut self, + message_key: &MessageKey, + ) -> Result { + let storage_message_key = bp_messages::storage_keys::message_key( + T::ThisChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &message_key.lane_id, + message_key.nonce, + ); + self.read_and_decode_mandatory_value(&storage_message_key) + } +} + +/// Actual storage proof adapter for messages proofs. +type MessagesStorageProofAdapter = StorageProofCheckerAdapter; + +/// A `StorageProofAdapter` implementation for raw storage proofs. +struct StorageProofCheckerAdapter, I: 'static> { + storage: StorageProofChecker>>, + _dummy: sp_std::marker::PhantomData<(T, I)>, +} + +impl, I: 'static> StorageProofCheckerAdapter { + fn try_new_with_verified_storage_proof( + bridged_header_hash: HashOf>, + storage_proof: RawStorageProof, + ) -> Result { + BridgedHeaderChainOf::::verify_storage_proof(bridged_header_hash, storage_proof).map( + |storage| StorageProofCheckerAdapter:: { storage, _dummy: Default::default() }, + ) + } +} + +impl, I: 'static> StorageProofAdapter for StorageProofCheckerAdapter { + fn read_and_decode_optional_value( + &mut self, + key: &impl AsRef<[u8]>, + ) -> Result, StorageProofError> { + self.storage.read_and_decode_opt_value(key.as_ref()) + } + + fn read_and_decode_mandatory_value( + &mut self, + key: &impl AsRef<[u8]>, + ) -> Result { + self.storage.read_and_decode_mandatory_value(key.as_ref()) + } + + fn ensure_no_unused_keys(self) -> Result<(), StorageProofError> { + self.storage.ensure_no_unused_nodes() + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::tests::{ + messages_generation::{ + encode_all_messages, encode_lane_data, generate_dummy_message, + prepare_messages_storage_proof, + }, + mock::*, + }; + + use bp_header_chain::StoredHeaderDataBuilder; + use bp_runtime::{HeaderId, StorageProofError}; + use codec::Encode; + use sp_runtime::traits::Header; + + fn using_messages_proof( + nonces_end: MessageNonce, + outbound_lane_data: Option, + encode_message: impl Fn(MessageNonce, &MessagePayload) -> Option>, + encode_outbound_lane_data: impl Fn(&OutboundLaneData) -> Vec, + add_duplicate_key: bool, + add_unused_key: bool, + test: impl Fn(FromBridgedChainMessagesProof) -> R, + ) -> R { + let (state_root, storage_proof) = prepare_messages_storage_proof::( + TEST_LANE_ID, + 1..=nonces_end, + outbound_lane_data, + bp_runtime::UnverifiedStorageProofParams::default(), + generate_dummy_message, + encode_message, + encode_outbound_lane_data, + add_duplicate_key, + add_unused_key, + ); + + sp_io::TestExternalities::new(Default::default()).execute_with(move || { + let bridged_header = BridgedChainHeader::new( + 0, + Default::default(), + state_root, + Default::default(), + Default::default(), + ); + let bridged_header_hash = bridged_header.hash(); + + pallet_bridge_grandpa::BestFinalized::::put(HeaderId( + 0, + bridged_header_hash, + )); + pallet_bridge_grandpa::ImportedHeaders::::insert( + bridged_header_hash, + bridged_header.build(), + ); + test(FromBridgedChainMessagesProof { + bridged_header_hash, + storage_proof, + lane: TEST_LANE_ID, + nonces_start: 1, + nonces_end, + }) + }) + } + + #[test] + fn messages_proof_is_rejected_if_declared_less_than_actual_number_of_messages() { + assert_eq!( + using_messages_proof( + 10, + None, + encode_all_messages, + encode_lane_data, + false, + false, + |proof| { verify_messages_proof::(proof, 5) } + ), + Err(VerificationError::MessagesCountMismatch), + ); + } + + #[test] + fn messages_proof_is_rejected_if_declared_more_than_actual_number_of_messages() { + assert_eq!( + using_messages_proof( + 10, + None, + encode_all_messages, + encode_lane_data, + false, + false, + |proof| { verify_messages_proof::(proof, 15) } + ), + Err(VerificationError::MessagesCountMismatch), + ); + } + + #[test] + fn message_proof_is_rejected_if_header_is_missing_from_the_chain() { + assert_eq!( + using_messages_proof( + 10, + None, + encode_all_messages, + encode_lane_data, + false, + false, + |proof| { + let bridged_header_hash = + pallet_bridge_grandpa::BestFinalized::::get().unwrap().1; + pallet_bridge_grandpa::ImportedHeaders::::remove( + bridged_header_hash, + ); + verify_messages_proof::(proof, 10) + } + ), + Err(VerificationError::HeaderChain(HeaderChainError::UnknownHeader)), + ); + } + + #[test] + fn message_proof_is_rejected_if_header_state_root_mismatches() { + assert_eq!( + using_messages_proof( + 10, + None, + encode_all_messages, + encode_lane_data, + false, + false, + |proof| { + let bridged_header_hash = + pallet_bridge_grandpa::BestFinalized::::get().unwrap().1; + pallet_bridge_grandpa::ImportedHeaders::::insert( + bridged_header_hash, + BridgedChainHeader::new( + 0, + Default::default(), + Default::default(), + Default::default(), + Default::default(), + ) + .build(), + ); + verify_messages_proof::(proof, 10) + } + ), + Err(VerificationError::HeaderChain(HeaderChainError::StorageProof( + StorageProofError::StorageRootMismatch + ))), + ); + } + + #[test] + fn message_proof_is_rejected_if_it_has_duplicate_trie_nodes() { + assert_eq!( + using_messages_proof( + 10, + None, + encode_all_messages, + encode_lane_data, + true, + false, + |proof| { verify_messages_proof::(proof, 10) }, + ), + Err(VerificationError::HeaderChain(HeaderChainError::StorageProof( + StorageProofError::DuplicateNodes + ))), + ); + } + + #[test] + fn message_proof_is_rejected_if_it_has_unused_trie_nodes() { + assert_eq!( + using_messages_proof( + 10, + None, + encode_all_messages, + encode_lane_data, + false, + true, + |proof| { verify_messages_proof::(proof, 10) }, + ), + Err(VerificationError::StorageProof(StorageProofError::UnusedKey)), + ); + } + + #[test] + fn message_proof_is_rejected_if_required_message_is_missing() { + matches!( + using_messages_proof( + 10, + None, + |n, m| if n != 5 { Some(m.encode()) } else { None }, + encode_lane_data, + false, + false, + |proof| verify_messages_proof::(proof, 10) + ), + Err(VerificationError::MessageStorage(StorageProofError::EmptyVal)), + ); + } + + #[test] + fn message_proof_is_rejected_if_message_decode_fails() { + matches!( + using_messages_proof( + 10, + None, + |n, m| { + let mut m = m.encode(); + if n == 5 { + m = vec![42] + } + Some(m) + }, + encode_lane_data, + false, + false, + |proof| verify_messages_proof::(proof, 10), + ), + Err(VerificationError::MessageStorage(StorageProofError::DecodeError)), + ); + } + + #[test] + fn message_proof_is_rejected_if_outbound_lane_state_decode_fails() { + matches!( + using_messages_proof( + 10, + Some(OutboundLaneData { + oldest_unpruned_nonce: 1, + latest_received_nonce: 1, + latest_generated_nonce: 1, + }), + encode_all_messages, + |d| { + let mut d = d.encode(); + d.truncate(1); + d + }, + false, + false, + |proof| verify_messages_proof::(proof, 10), + ), + Err(VerificationError::OutboundLaneStorage(StorageProofError::DecodeError)), + ); + } + + #[test] + fn message_proof_is_rejected_if_it_is_empty() { + assert_eq!( + using_messages_proof( + 0, + None, + encode_all_messages, + encode_lane_data, + false, + false, + |proof| { verify_messages_proof::(proof, 0) }, + ), + Err(VerificationError::EmptyMessageProof), + ); + } + + #[test] + fn non_empty_message_proof_without_messages_is_accepted() { + assert_eq!( + using_messages_proof( + 0, + Some(OutboundLaneData { + oldest_unpruned_nonce: 1, + latest_received_nonce: 1, + latest_generated_nonce: 1, + }), + encode_all_messages, + encode_lane_data, + false, + false, + |proof| verify_messages_proof::(proof, 0), + ), + Ok(vec![( + TEST_LANE_ID, + ProvedLaneMessages { + lane_state: Some(OutboundLaneData { + oldest_unpruned_nonce: 1, + latest_received_nonce: 1, + latest_generated_nonce: 1, + }), + messages: Vec::new(), + }, + )] + .into_iter() + .collect()), + ); + } + + #[test] + fn non_empty_message_proof_is_accepted() { + assert_eq!( + using_messages_proof( + 1, + Some(OutboundLaneData { + oldest_unpruned_nonce: 1, + latest_received_nonce: 1, + latest_generated_nonce: 1, + }), + encode_all_messages, + encode_lane_data, + false, + false, + |proof| verify_messages_proof::(proof, 1), + ), + Ok(vec![( + TEST_LANE_ID, + ProvedLaneMessages { + lane_state: Some(OutboundLaneData { + oldest_unpruned_nonce: 1, + latest_received_nonce: 1, + latest_generated_nonce: 1, + }), + messages: vec![Message { + key: MessageKey { lane_id: TEST_LANE_ID, nonce: 1 }, + payload: vec![42], + }], + }, + )] + .into_iter() + .collect()), + ); + } + + #[test] + fn verify_messages_proof_does_not_panic_if_messages_count_mismatches() { + assert_eq!( + using_messages_proof( + 1, + None, + encode_all_messages, + encode_lane_data, + false, + false, + |mut proof| { + proof.nonces_end = u64::MAX; + verify_messages_proof::(proof, u32::MAX) + }, + ), + Err(VerificationError::MessagesCountMismatch), + ); + } +} diff --git a/bridges/bin/runtime-common/src/messages_generation.rs b/bridges/modules/messages/src/tests/messages_generation.rs similarity index 62% rename from bridges/bin/runtime-common/src/messages_generation.rs rename to bridges/modules/messages/src/tests/messages_generation.rs index c37aaa5d4d5..6c4867fa6de 100644 --- a/bridges/bin/runtime-common/src/messages_generation.rs +++ b/bridges/modules/messages/src/tests/messages_generation.rs @@ -16,17 +16,23 @@ //! Helpers for generating message storage proofs, that are used by tests and by benchmarks. -use crate::messages::{AccountIdOf, BridgedChain, HashOf, HasherOf, MessageBridge, ThisChain}; - use bp_messages::{ - storage_keys, InboundLaneData, LaneId, MessageKey, MessageNonce, MessagePayload, - OutboundLaneData, + storage_keys, ChainWithMessages, InboundLaneData, LaneId, MessageKey, MessageNonce, + MessagePayload, OutboundLaneData, +}; +use bp_runtime::{ + grow_storage_value, record_all_trie_keys, AccountIdOf, Chain, HashOf, HasherOf, + RawStorageProof, UnverifiedStorageProofParams, }; -use bp_runtime::{record_all_trie_keys, RawStorageProof, StorageProofSize}; use codec::Encode; use sp_std::{ops::RangeInclusive, prelude::*}; use sp_trie::{trie_types::TrieDBMutBuilderV1, LayoutV1, MemoryDB, TrieMut}; +/// Dummy message generation function. +pub fn generate_dummy_message(_: MessageNonce) -> MessagePayload { + vec![42] +} + /// Simple and correct message data encode function. pub fn encode_all_messages(_: MessageNonce, m: &MessagePayload) -> Option> { Some(m.encode()) @@ -40,18 +46,20 @@ pub fn encode_lane_data(d: &OutboundLaneData) -> Vec { /// Prepare storage proof of given messages. /// /// Returns state trie root and nodes with prepared messages. -pub fn prepare_messages_storage_proof( +#[allow(clippy::too_many_arguments)] +pub fn prepare_messages_storage_proof( lane: LaneId, message_nonces: RangeInclusive, outbound_lane_data: Option, - size: StorageProofSize, - message_payload: MessagePayload, + proof_params: UnverifiedStorageProofParams, + generate_message: impl Fn(MessageNonce) -> MessagePayload, encode_message: impl Fn(MessageNonce, &MessagePayload) -> Option>, encode_outbound_lane_data: impl Fn(&OutboundLaneData) -> Vec, -) -> (HashOf>, RawStorageProof) + add_duplicate_key: bool, + add_unused_key: bool, +) -> (HashOf, RawStorageProof) where - B: MessageBridge, - HashOf>: Copy + Default, + HashOf: Copy + Default, { // prepare Bridged chain storage with messages and (optionally) outbound lane state let message_count = message_nonces.end().saturating_sub(*message_nonces.start()) + 1; @@ -60,22 +68,22 @@ where let mut mdb = MemoryDB::default(); { let mut trie = - TrieDBMutBuilderV1::>>::new(&mut mdb, &mut root).build(); + TrieDBMutBuilderV1::>::new(&mut mdb, &mut root).build(); // insert messages for (i, nonce) in message_nonces.into_iter().enumerate() { let message_key = MessageKey { lane_id: lane, nonce }; - let message_payload = match encode_message(nonce, &message_payload) { + let message_payload = match encode_message(nonce, &generate_message(nonce)) { Some(message_payload) => if i == 0 { - grow_trie_leaf_value(message_payload, size) + grow_storage_value(message_payload, &proof_params) } else { message_payload }, None => continue, }; let storage_key = storage_keys::message_key( - B::BRIDGED_MESSAGES_PALLET_NAME, + ThisChain::WITH_CHAIN_MESSAGES_PALLET_NAME, &message_key.lane_id, message_key.nonce, ) @@ -89,8 +97,11 @@ where // insert outbound lane state if let Some(outbound_lane_data) = outbound_lane_data.as_ref().map(encode_outbound_lane_data) { - let storage_key = - storage_keys::outbound_lane_data_key(B::BRIDGED_MESSAGES_PALLET_NAME, &lane).0; + let storage_key = storage_keys::outbound_lane_data_key( + ThisChain::WITH_CHAIN_MESSAGES_PALLET_NAME, + &lane, + ) + .0; trie.insert(&storage_key, &outbound_lane_data) .map_err(|_| "TrieMut::insert has failed") .expect("TrieMut::insert should not fail in benchmarks"); @@ -99,52 +110,54 @@ where } // generate storage proof to be delivered to This chain - let storage_proof = record_all_trie_keys::>>, _>(&mdb, &root) - .map_err(|_| "record_all_trie_keys has failed") - .expect("record_all_trie_keys should not fail in benchmarks"); + let mut storage_proof = + record_all_trie_keys::>, _>(&mdb, &root) + .map_err(|_| "record_all_trie_keys has failed") + .expect("record_all_trie_keys should not fail in benchmarks"); + + if add_duplicate_key { + assert!(!storage_proof.is_empty()); + let node = storage_proof.pop().unwrap(); + storage_proof.push(node.clone()); + storage_proof.push(node); + } + + if add_unused_key { + storage_proof.push(b"unused_value".to_vec()); + } + (root, storage_proof) } /// Prepare storage proof of given messages delivery. /// /// Returns state trie root and nodes with prepared messages. -pub fn prepare_message_delivery_storage_proof( +pub fn prepare_message_delivery_storage_proof( lane: LaneId, - inbound_lane_data: InboundLaneData>>, - size: StorageProofSize, -) -> (HashOf>, RawStorageProof) + inbound_lane_data: InboundLaneData>, + proof_params: UnverifiedStorageProofParams, +) -> (HashOf, RawStorageProof) where - B: MessageBridge, + HashOf: Copy + Default, { // prepare Bridged chain storage with inbound lane state - let storage_key = storage_keys::inbound_lane_data_key(B::BRIDGED_MESSAGES_PALLET_NAME, &lane).0; + let storage_key = + storage_keys::inbound_lane_data_key(ThisChain::WITH_CHAIN_MESSAGES_PALLET_NAME, &lane).0; let mut root = Default::default(); let mut mdb = MemoryDB::default(); { let mut trie = - TrieDBMutBuilderV1::>>::new(&mut mdb, &mut root).build(); - let inbound_lane_data = grow_trie_leaf_value(inbound_lane_data.encode(), size); + TrieDBMutBuilderV1::>::new(&mut mdb, &mut root).build(); + let inbound_lane_data = grow_storage_value(inbound_lane_data.encode(), &proof_params); trie.insert(&storage_key, &inbound_lane_data) .map_err(|_| "TrieMut::insert has failed") .expect("TrieMut::insert should not fail in benchmarks"); } // generate storage proof to be delivered to This chain - let storage_proof = record_all_trie_keys::>>, _>(&mdb, &root) + let storage_proof = record_all_trie_keys::>, _>(&mdb, &root) .map_err(|_| "record_all_trie_keys has failed") .expect("record_all_trie_keys should not fail in benchmarks"); (root, storage_proof) } - -/// Add extra data to the trie leaf value so that it'll be of given size. -pub fn grow_trie_leaf_value(mut value: Vec, size: StorageProofSize) -> Vec { - match size { - StorageProofSize::Minimal(_) => (), - StorageProofSize::HasLargeLeaf(size) if size as usize > value.len() => { - value.extend(sp_std::iter::repeat(42u8).take(size as usize - value.len())); - }, - StorageProofSize::HasLargeLeaf(_) => (), - } - value -} diff --git a/bridges/modules/messages/src/mock.rs b/bridges/modules/messages/src/tests/mock.rs similarity index 62% rename from bridges/modules/messages/src/mock.rs rename to bridges/modules/messages/src/tests/mock.rs index 3a1e0063d53..ffdd536830b 100644 --- a/bridges/modules/messages/src/mock.rs +++ b/bridges/modules/messages/src/tests/mock.rs @@ -17,30 +17,43 @@ // From construct_runtime macro #![allow(clippy::from_over_into)] -use crate::{Config, StoredMessagePayload}; +use crate::{ + tests::messages_generation::{ + encode_all_messages, encode_lane_data, prepare_message_delivery_storage_proof, + prepare_messages_storage_proof, + }, + Config, StoredMessagePayload, +}; +use bp_header_chain::{ChainWithGrandpa, StoredHeaderData}; use bp_messages::{ calc_relayers_rewards, - source_chain::{DeliveryConfirmationPayments, OnMessagesDelivered, TargetHeaderChain}, + source_chain::{ + DeliveryConfirmationPayments, FromBridgedChainMessagesDeliveryProof, OnMessagesDelivered, + }, target_chain::{ - DeliveryPayments, DispatchMessage, DispatchMessageData, MessageDispatch, - ProvedLaneMessages, ProvedMessages, SourceHeaderChain, + DeliveryPayments, DispatchMessage, DispatchMessageData, FromBridgedChainMessagesProof, + MessageDispatch, }, - DeliveredMessages, InboundLaneData, LaneId, Message, MessageKey, MessageNonce, - UnrewardedRelayer, UnrewardedRelayersState, VerificationError, + ChainWithMessages, DeliveredMessages, InboundLaneData, LaneId, Message, MessageKey, + MessageNonce, OutboundLaneData, UnrewardedRelayer, UnrewardedRelayersState, +}; +use bp_runtime::{ + messages::MessageDispatchResult, Chain, ChainId, Size, UnverifiedStorageProofParams, }; -use bp_runtime::{messages::MessageDispatchResult, Size}; use codec::{Decode, Encode}; use frame_support::{ derive_impl, parameter_types, weights::{constants::RocksDbWeight, Weight}, }; use scale_info::TypeInfo; -use sp_runtime::BuildStorage; -use std::{ - collections::{BTreeMap, VecDeque}, - ops::RangeInclusive, +use sp_core::H256; +use sp_runtime::{ + testing::Header as SubstrateHeader, + traits::{BlakeTwo256, ConstU32}, + BuildStorage, StateVersion, }; +use std::{collections::VecDeque, ops::RangeInclusive}; pub type AccountId = u64; pub type Balance = u64; @@ -62,6 +75,77 @@ pub type TestMessageFee = u64; pub type TestRelayer = u64; pub type TestDispatchLevelResult = (); +pub struct ThisChain; + +impl Chain for ThisChain { + const ID: ChainId = *b"ttch"; + + type BlockNumber = u64; + type Hash = H256; + type Hasher = BlakeTwo256; + type Header = SubstrateHeader; + type AccountId = AccountId; + type Balance = Balance; + type Nonce = u64; + type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + + fn max_extrinsic_size() -> u32 { + u32::MAX + } + + fn max_extrinsic_weight() -> Weight { + Weight::MAX + } +} + +impl ChainWithMessages for ThisChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = "WithThisChainBridgeMessages"; + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 128; +} + +pub struct BridgedChain; + +pub type BridgedHeaderHash = H256; +pub type BridgedChainHeader = SubstrateHeader; + +impl Chain for BridgedChain { + const ID: ChainId = *b"tbch"; + + type BlockNumber = u64; + type Hash = BridgedHeaderHash; + type Hasher = BlakeTwo256; + type Header = BridgedChainHeader; + type AccountId = TestRelayer; + type Balance = Balance; + type Nonce = u64; + type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + + fn max_extrinsic_size() -> u32 { + 4096 + } + + fn max_extrinsic_weight() -> Weight { + Weight::MAX + } +} + +impl ChainWithGrandpa for BridgedChain { + const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = "WithBridgedChainBridgeGrandpa"; + const MAX_AUTHORITIES_COUNT: u32 = 16; + const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 4; + const MAX_MANDATORY_HEADER_SIZE: u32 = 4096; + const AVERAGE_HEADER_SIZE: u32 = 4096; +} + +impl ChainWithMessages for BridgedChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = "WithBridgedChainBridgeMessages"; + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 128; +} + type Block = frame_system::mocking::MockBlock; use crate as pallet_bridge_messages; @@ -71,6 +155,7 @@ frame_support::construct_runtime! { { System: frame_system::{Pallet, Call, Config, Storage, Event}, Balances: pallet_balances::{Pallet, Call, Event}, + BridgedChainGrandpa: pallet_bridge_grandpa::{Pallet, Call, Event}, Messages: pallet_bridge_messages::{Pallet, Call, Event}, } } @@ -89,10 +174,17 @@ impl pallet_balances::Config for TestRuntime { type AccountStore = System; } +impl pallet_bridge_grandpa::Config for TestRuntime { + type RuntimeEvent = RuntimeEvent; + type BridgedChain = BridgedChain; + type MaxFreeHeadersPerBlock = ConstU32<4>; + type FreeHeadersInterval = ConstU32<1_024>; + type HeadersToKeep = ConstU32<8>; + type WeightInfo = pallet_bridge_grandpa::weights::BridgeWeight; +} + parameter_types! { pub const MaxMessagesToPruneAtOnce: u64 = 10; - pub const MaxUnrewardedRelayerEntriesAtInboundLane: u64 = 16; - pub const MaxUnconfirmedMessagesAtInboundLane: u64 = 128; pub const TestBridgedChainId: bp_runtime::ChainId = *b"test"; pub const ActiveOutboundLanes: &'static [LaneId] = &[TEST_LANE_ID, TEST_LANE_ID_2]; } @@ -103,24 +195,22 @@ pub type TestWeightInfo = (); impl Config for TestRuntime { type RuntimeEvent = RuntimeEvent; type WeightInfo = TestWeightInfo; + + type ThisChain = ThisChain; + type BridgedChain = BridgedChain; + type BridgedHeaderChain = BridgedChainGrandpa; + type ActiveOutboundLanes = ActiveOutboundLanes; - type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane; - type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane; - type MaximalOutboundPayloadSize = frame_support::traits::ConstU32; type OutboundPayload = TestPayload; type InboundPayload = TestPayload; - type InboundRelayer = TestRelayer; type DeliveryPayments = TestDeliveryPayments; - type TargetHeaderChain = TestTargetHeaderChain; type DeliveryConfirmationPayments = TestDeliveryConfirmationPayments; type OnMessagesDelivered = TestOnMessagesDelivered; - type SourceHeaderChain = TestSourceHeaderChain; type MessageDispatch = TestMessageDispatch; - type BridgedChainId = TestBridgedChainId; } #[cfg(feature = "runtime-benchmarks")] @@ -131,29 +221,26 @@ impl crate::benchmarking::Config<()> for TestRuntime { fn prepare_message_proof( params: crate::benchmarking::MessageProofParams, - ) -> (TestMessagesProof, Weight) { - // in mock run we only care about benchmarks correctness, not the benchmark results - // => ignore size related arguments - let (messages, total_dispatch_weight) = - params.message_nonces.into_iter().map(|n| message(n, REGULAR_PAYLOAD)).fold( - (Vec::new(), Weight::zero()), - |(mut messages, total_dispatch_weight), message| { - let weight = REGULAR_PAYLOAD.declared_weight; - messages.push(message); - (messages, total_dispatch_weight.saturating_add(weight)) - }, - ); - let mut proof: TestMessagesProof = Ok(messages).into(); - proof.result.as_mut().unwrap().get_mut(0).unwrap().1.lane_state = params.outbound_lane_data; - (proof, total_dispatch_weight) + ) -> (FromBridgedChainMessagesProof, Weight) { + use bp_runtime::RangeInclusiveExt; + + let dispatch_weight = + REGULAR_PAYLOAD.declared_weight * params.message_nonces.checked_len().unwrap_or(0); + ( + *prepare_messages_proof( + params.message_nonces.into_iter().map(|n| message(n, REGULAR_PAYLOAD)).collect(), + params.outbound_lane_data, + ), + dispatch_weight, + ) } fn prepare_message_delivery_proof( params: crate::benchmarking::MessageDeliveryProofParams, - ) -> TestMessagesDeliveryProof { + ) -> FromBridgedChainMessagesDeliveryProof { // in mock run we only care about benchmarks correctness, not the benchmark results // => ignore size related arguments - TestMessagesDeliveryProof(Ok((params.lane, params.inbound_lane_data))) + prepare_messages_delivery_proof(params.lane, params.inbound_lane_data) } fn is_relayer_rewarded(_relayer: &AccountId) -> bool { @@ -167,9 +254,6 @@ impl Size for TestPayload { } } -/// Maximal outbound payload size. -pub const MAX_OUTBOUND_PAYLOAD_SIZE: u32 = 4096; - /// Account that has balance to use in tests. pub const ENDOWED_ACCOUNT: AccountId = 0xDEAD; @@ -182,9 +266,6 @@ pub const TEST_RELAYER_B: AccountId = 101; /// Account id of additional test relayer - C. pub const TEST_RELAYER_C: AccountId = 102; -/// Error that is returned by all test implementations. -pub const TEST_ERROR: &str = "Test error"; - /// Lane that we're using in tests. pub const TEST_LANE_ID: LaneId = LaneId([0, 0, 0, 1]); @@ -197,71 +278,6 @@ pub const TEST_LANE_ID_3: LaneId = LaneId([0, 0, 0, 3]); /// Regular message payload. pub const REGULAR_PAYLOAD: TestPayload = message_payload(0, 50); -/// Payload that is rejected by `TestTargetHeaderChain`. -pub const PAYLOAD_REJECTED_BY_TARGET_CHAIN: TestPayload = message_payload(1, 50); - -/// Vec of proved messages, grouped by lane. -pub type MessagesByLaneVec = Vec<(LaneId, ProvedLaneMessages)>; - -/// Test messages proof. -#[derive(Debug, Encode, Decode, Clone, PartialEq, Eq, TypeInfo)] -pub struct TestMessagesProof { - pub result: Result, -} - -impl Size for TestMessagesProof { - fn size(&self) -> u32 { - 0 - } -} - -impl From, ()>> for TestMessagesProof { - fn from(result: Result, ()>) -> Self { - Self { - result: result.map(|messages| { - let mut messages_by_lane: BTreeMap> = - BTreeMap::new(); - for message in messages { - messages_by_lane.entry(message.key.lane_id).or_default().messages.push(message); - } - messages_by_lane.into_iter().collect() - }), - } - } -} - -/// Messages delivery proof used in tests. -#[derive(Debug, Encode, Decode, Eq, Clone, PartialEq, TypeInfo)] -pub struct TestMessagesDeliveryProof(pub Result<(LaneId, InboundLaneData), ()>); - -impl Size for TestMessagesDeliveryProof { - fn size(&self) -> u32 { - 0 - } -} - -/// Target header chain that is used in tests. -#[derive(Debug, Default)] -pub struct TestTargetHeaderChain; - -impl TargetHeaderChain for TestTargetHeaderChain { - type MessagesDeliveryProof = TestMessagesDeliveryProof; - - fn verify_message(payload: &TestPayload) -> Result<(), VerificationError> { - if *payload == PAYLOAD_REJECTED_BY_TARGET_CHAIN { - Err(VerificationError::Other(TEST_ERROR)) - } else { - Ok(()) - } - } - - fn verify_messages_delivery_proof( - proof: Self::MessagesDeliveryProof, - ) -> Result<(LaneId, InboundLaneData), VerificationError> { - proof.0.map_err(|_| VerificationError::Other(TEST_ERROR)) - } -} - /// Reward payments at the target chain during delivery transaction. #[derive(Debug, Default)] pub struct TestDeliveryPayments; @@ -322,24 +338,6 @@ impl DeliveryConfirmationPayments for TestDeliveryConfirmationPayment } } -/// Source header chain that is used in tests. -#[derive(Debug)] -pub struct TestSourceHeaderChain; - -impl SourceHeaderChain for TestSourceHeaderChain { - type MessagesProof = TestMessagesProof; - - fn verify_messages_proof( - proof: Self::MessagesProof, - _messages_count: u32, - ) -> Result, VerificationError> { - proof - .result - .map(|proof| proof.into_iter().collect()) - .map_err(|_| VerificationError::Other(TEST_ERROR)) - } -} - /// Test message dispatcher. #[derive(Debug)] pub struct TestMessageDispatch; @@ -458,3 +456,75 @@ pub fn new_test_ext() -> sp_io::TestExternalities { pub fn run_test(test: impl FnOnce() -> T) -> T { new_test_ext().execute_with(test) } + +/// Prepare valid storage proof for given messages and insert appropriate header to the +/// bridged header chain. +/// +/// Since this function changes the runtime storage, you can't "inline" it in the +/// `asset_noop` macro calls. +pub fn prepare_messages_proof( + messages: Vec, + outbound_lane_data: Option, +) -> Box> { + // first - let's generate storage proof + let lane = messages.first().unwrap().key.lane_id; + let nonces_start = messages.first().unwrap().key.nonce; + let nonces_end = messages.last().unwrap().key.nonce; + let (storage_root, storage_proof) = prepare_messages_storage_proof::( + TEST_LANE_ID, + nonces_start..=nonces_end, + outbound_lane_data, + UnverifiedStorageProofParams::default(), + |nonce| messages[(nonce - nonces_start) as usize].payload.clone(), + encode_all_messages, + encode_lane_data, + false, + false, + ); + + // let's now insert bridged chain header into the storage + let bridged_header_hash = Default::default(); + pallet_bridge_grandpa::ImportedHeaders::::insert( + bridged_header_hash, + StoredHeaderData { number: 0, state_root: storage_root }, + ); + + Box::new(FromBridgedChainMessagesProof:: { + bridged_header_hash, + storage_proof, + lane, + nonces_start, + nonces_end, + }) +} + +/// Prepare valid storage proof for given messages and insert appropriate header to the +/// bridged header chain. +/// +/// Since this function changes the runtime storage, you can't "inline" it in the +/// `asset_noop` macro calls. +pub fn prepare_messages_delivery_proof( + lane: LaneId, + inbound_lane_data: InboundLaneData, +) -> FromBridgedChainMessagesDeliveryProof { + // first - let's generate storage proof + let (storage_root, storage_proof) = + prepare_message_delivery_storage_proof::( + lane, + inbound_lane_data, + UnverifiedStorageProofParams::default(), + ); + + // let's now insert bridged chain header into the storage + let bridged_header_hash = Default::default(); + pallet_bridge_grandpa::ImportedHeaders::::insert( + bridged_header_hash, + StoredHeaderData { number: 0, state_root: storage_root }, + ); + + FromBridgedChainMessagesDeliveryProof:: { + bridged_header_hash, + storage_proof, + lane, + } +} diff --git a/bridges/modules/messages/src/tests/mod.rs b/bridges/modules/messages/src/tests/mod.rs new file mode 100644 index 00000000000..c3bde5fc275 --- /dev/null +++ b/bridges/modules/messages/src/tests/mod.rs @@ -0,0 +1,26 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common 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. + +// Parity Bridges Common 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 Parity Bridges Common. If not, see . + +//! Tests and test helpers for messages pallet. + +#![cfg(any(feature = "test-helpers", test))] + +#[cfg(test)] +pub(crate) mod mock; +#[cfg(test)] +mod pallet_tests; + +pub mod messages_generation; diff --git a/bridges/modules/messages/src/tests/pallet_tests.rs b/bridges/modules/messages/src/tests/pallet_tests.rs new file mode 100644 index 00000000000..42e1042717d --- /dev/null +++ b/bridges/modules/messages/src/tests/pallet_tests.rs @@ -0,0 +1,1100 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common 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. + +// Parity Bridges Common 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 Parity Bridges Common. If not, see . + +//! Pallet-level tests. + +use crate::{ + outbound_lane, + outbound_lane::ReceptionConfirmationError, + tests::mock::{self, RuntimeEvent as TestEvent, *}, + weights_ext::WeightInfoExt, + Call, Config, Error, Event, InboundLanes, MaybeOutboundLanesCount, OutboundLanes, + OutboundMessages, Pallet, PalletOperatingMode, PalletOwner, RuntimeInboundLaneStorage, + StoredInboundLaneData, +}; + +use bp_messages::{ + source_chain::{FromBridgedChainMessagesDeliveryProof, MessagesBridge}, + target_chain::FromBridgedChainMessagesProof, + BridgeMessagesCall, ChainWithMessages, DeliveredMessages, InboundLaneData, + InboundMessageDetails, LaneId, MessageKey, MessageNonce, MessagesOperatingMode, + OutboundLaneData, OutboundMessageDetails, UnrewardedRelayer, UnrewardedRelayersState, + VerificationError, +}; +use bp_runtime::{BasicOperatingMode, PreComputedSize, RangeInclusiveExt, Size}; +use bp_test_utils::generate_owned_bridge_module_tests; +use codec::Encode; +use frame_support::{ + assert_noop, assert_ok, + dispatch::Pays, + storage::generator::{StorageMap, StorageValue}, + traits::Hooks, + weights::Weight, +}; +use frame_system::{EventRecord, Pallet as System, Phase}; +use sp_core::Get; +use sp_runtime::DispatchError; + +fn get_ready_for_events() { + System::::set_block_number(1); + System::::reset_events(); +} + +fn send_regular_message(lane_id: LaneId) { + get_ready_for_events(); + + let outbound_lane = outbound_lane::(lane_id); + let message_nonce = outbound_lane.data().latest_generated_nonce + 1; + let prev_enqueued_messages = outbound_lane.data().queued_messages().saturating_len(); + let valid_message = Pallet::::validate_message(lane_id, ®ULAR_PAYLOAD) + .expect("validate_message has failed"); + let artifacts = Pallet::::send_message(valid_message); + assert_eq!(artifacts.enqueued_messages, prev_enqueued_messages + 1); + + // check event with assigned nonce + assert_eq!( + System::::events(), + vec![EventRecord { + phase: Phase::Initialization, + event: TestEvent::Messages(Event::MessageAccepted { lane_id, nonce: message_nonce }), + topics: vec![], + }], + ); +} + +fn receive_messages_delivery_proof() { + System::::set_block_number(1); + System::::reset_events(); + + assert_ok!(Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + last_confirmed_nonce: 1, + relayers: vec![UnrewardedRelayer { + relayer: 0, + messages: DeliveredMessages::new(1), + }] + .into(), + }, + ), + UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + messages_in_oldest_entry: 1, + total_messages: 1, + last_delivered_nonce: 1, + }, + )); + + assert_eq!( + System::::events(), + vec![EventRecord { + phase: Phase::Initialization, + event: TestEvent::Messages(Event::MessagesDelivered { + lane_id: TEST_LANE_ID, + messages: DeliveredMessages::new(1), + }), + topics: vec![], + }], + ); +} + +#[test] +fn pallet_rejects_transactions_if_halted() { + run_test(|| { + // send message first to be able to check that delivery_proof fails later + send_regular_message(TEST_LANE_ID); + + PalletOperatingMode::::put(MessagesOperatingMode::Basic( + BasicOperatingMode::Halted, + )); + + assert_noop!( + Pallet::::validate_message(TEST_LANE_ID, ®ULAR_PAYLOAD), + Error::::NotOperatingNormally, + ); + + let messages_proof = prepare_messages_proof(vec![message(2, REGULAR_PAYLOAD)], None); + assert_noop!( + Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + messages_proof, + 1, + REGULAR_PAYLOAD.declared_weight, + ), + Error::::BridgeModule(bp_runtime::OwnedBridgeModuleError::Halted), + ); + + let delivery_proof = prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + last_confirmed_nonce: 1, + relayers: vec![unrewarded_relayer(1, 1, TEST_RELAYER_A)].into(), + }, + ); + assert_noop!( + Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + delivery_proof, + UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + messages_in_oldest_entry: 1, + total_messages: 1, + last_delivered_nonce: 1, + }, + ), + Error::::BridgeModule(bp_runtime::OwnedBridgeModuleError::Halted), + ); + }); +} + +#[test] +fn receive_messages_fails_if_dispatcher_is_inactive() { + run_test(|| { + TestMessageDispatch::deactivate(); + let proof = prepare_messages_proof(vec![message(1, REGULAR_PAYLOAD)], None); + assert_noop!( + Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + proof, + 1, + REGULAR_PAYLOAD.declared_weight, + ), + Error::::MessageDispatchInactive, + ); + }); +} + +#[test] +fn pallet_rejects_new_messages_in_rejecting_outbound_messages_operating_mode() { + run_test(|| { + // send message first to be able to check that delivery_proof fails later + send_regular_message(TEST_LANE_ID); + + PalletOperatingMode::::put( + MessagesOperatingMode::RejectingOutboundMessages, + ); + + assert_noop!( + Pallet::::validate_message(TEST_LANE_ID, ®ULAR_PAYLOAD), + Error::::NotOperatingNormally, + ); + + assert_ok!(Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + prepare_messages_proof(vec![message(1, REGULAR_PAYLOAD)], None), + 1, + REGULAR_PAYLOAD.declared_weight, + ),); + + assert_ok!(Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + last_confirmed_nonce: 1, + relayers: vec![unrewarded_relayer(1, 1, TEST_RELAYER_A)].into(), + }, + ), + UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + messages_in_oldest_entry: 1, + total_messages: 1, + last_delivered_nonce: 1, + }, + )); + }); +} + +#[test] +fn send_message_works() { + run_test(|| { + send_regular_message(TEST_LANE_ID); + }); +} + +#[test] +fn send_message_rejects_too_large_message() { + run_test(|| { + let mut message_payload = message_payload(1, 0); + // the payload isn't simply extra, so it'll definitely overflow + // `max_outbound_payload_size` if we add `max_outbound_payload_size` bytes to extra + let max_outbound_payload_size = BridgedChain::maximal_incoming_message_size(); + message_payload + .extra + .extend_from_slice(&vec![0u8; max_outbound_payload_size as usize]); + assert_noop!( + Pallet::::validate_message(TEST_LANE_ID, &message_payload.clone(),), + Error::::MessageRejectedByPallet(VerificationError::MessageTooLarge), + ); + + // let's check that we're able to send `max_outbound_payload_size` messages + while message_payload.encoded_size() as u32 > max_outbound_payload_size { + message_payload.extra.pop(); + } + assert_eq!(message_payload.encoded_size() as u32, max_outbound_payload_size); + + let valid_message = + Pallet::::validate_message(TEST_LANE_ID, &message_payload) + .expect("validate_message has failed"); + Pallet::::send_message(valid_message); + }) +} + +#[test] +fn receive_messages_proof_works() { + run_test(|| { + assert_ok!(Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + prepare_messages_proof(vec![message(1, REGULAR_PAYLOAD)], None), + 1, + REGULAR_PAYLOAD.declared_weight, + )); + + assert_eq!(InboundLanes::::get(TEST_LANE_ID).0.last_delivered_nonce(), 1); + + assert!(TestDeliveryPayments::is_reward_paid(1)); + }); +} + +#[test] +fn receive_messages_proof_updates_confirmed_message_nonce() { + run_test(|| { + // say we have received 10 messages && last confirmed message is 8 + InboundLanes::::insert( + TEST_LANE_ID, + InboundLaneData { + last_confirmed_nonce: 8, + relayers: vec![ + unrewarded_relayer(9, 9, TEST_RELAYER_A), + unrewarded_relayer(10, 10, TEST_RELAYER_B), + ] + .into(), + }, + ); + assert_eq!( + inbound_unrewarded_relayers_state(TEST_LANE_ID), + UnrewardedRelayersState { + unrewarded_relayer_entries: 2, + messages_in_oldest_entry: 1, + total_messages: 2, + last_delivered_nonce: 10, + }, + ); + + // message proof includes outbound lane state with latest confirmed message updated to 9 + assert_ok!(Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + prepare_messages_proof( + vec![message(11, REGULAR_PAYLOAD)], + Some(OutboundLaneData { latest_received_nonce: 9, ..Default::default() }), + ), + 1, + REGULAR_PAYLOAD.declared_weight, + )); + + assert_eq!( + InboundLanes::::get(TEST_LANE_ID).0, + InboundLaneData { + last_confirmed_nonce: 9, + relayers: vec![ + unrewarded_relayer(10, 10, TEST_RELAYER_B), + unrewarded_relayer(11, 11, TEST_RELAYER_A) + ] + .into(), + }, + ); + assert_eq!( + inbound_unrewarded_relayers_state(TEST_LANE_ID), + UnrewardedRelayersState { + unrewarded_relayer_entries: 2, + messages_in_oldest_entry: 1, + total_messages: 2, + last_delivered_nonce: 11, + }, + ); + }); +} + +#[test] +fn receive_messages_proof_does_not_accept_message_if_dispatch_weight_is_not_enough() { + run_test(|| { + let proof = prepare_messages_proof(vec![message(1, REGULAR_PAYLOAD)], None); + let mut declared_weight = REGULAR_PAYLOAD.declared_weight; + *declared_weight.ref_time_mut() -= 1; + + assert_noop!( + Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + proof, + 1, + declared_weight, + ), + Error::::InsufficientDispatchWeight + ); + assert_eq!(InboundLanes::::get(TEST_LANE_ID).last_delivered_nonce(), 0); + }); +} + +#[test] +fn receive_messages_proof_rejects_invalid_proof() { + run_test(|| { + let mut proof = prepare_messages_proof(vec![message(1, REGULAR_PAYLOAD)], None); + proof.nonces_end += 1; + + assert_noop!( + Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + proof, + 1, + Weight::zero(), + ), + Error::::InvalidMessagesProof, + ); + }); +} + +#[test] +fn receive_messages_proof_rejects_proof_with_too_many_messages() { + run_test(|| { + let proof = prepare_messages_proof(vec![message(1, REGULAR_PAYLOAD)], None); + assert_noop!( + Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + proof, + u32::MAX, + Weight::zero(), + ), + Error::::TooManyMessagesInTheProof, + ); + }); +} + +#[test] +fn receive_messages_delivery_proof_works() { + run_test(|| { + send_regular_message(TEST_LANE_ID); + receive_messages_delivery_proof(); + + assert_eq!(OutboundLanes::::get(TEST_LANE_ID).latest_received_nonce, 1,); + }); +} + +#[test] +fn receive_messages_delivery_proof_rewards_relayers() { + run_test(|| { + send_regular_message(TEST_LANE_ID); + send_regular_message(TEST_LANE_ID); + + // this reports delivery of message 1 => reward is paid to TEST_RELAYER_A + let single_message_delivery_proof = prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + relayers: vec![unrewarded_relayer(1, 1, TEST_RELAYER_A)].into(), + ..Default::default() + }, + ); + let single_message_delivery_proof_size = single_message_delivery_proof.size(); + let result = Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + single_message_delivery_proof, + UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + messages_in_oldest_entry: 1, + total_messages: 1, + last_delivered_nonce: 1, + }, + ); + assert_ok!(result); + assert_eq!( + result.unwrap().actual_weight.unwrap(), + TestWeightInfo::receive_messages_delivery_proof_weight( + &PreComputedSize(single_message_delivery_proof_size as _), + &UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + total_messages: 1, + ..Default::default() + }, + ) + ); + assert!(TestDeliveryConfirmationPayments::is_reward_paid(TEST_RELAYER_A, 1)); + assert!(!TestDeliveryConfirmationPayments::is_reward_paid(TEST_RELAYER_B, 1)); + + // this reports delivery of both message 1 and message 2 => reward is paid only to + // TEST_RELAYER_B + let two_messages_delivery_proof = prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + relayers: vec![ + unrewarded_relayer(1, 1, TEST_RELAYER_A), + unrewarded_relayer(2, 2, TEST_RELAYER_B), + ] + .into(), + ..Default::default() + }, + ); + let two_messages_delivery_proof_size = two_messages_delivery_proof.size(); + let result = Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + two_messages_delivery_proof, + UnrewardedRelayersState { + unrewarded_relayer_entries: 2, + messages_in_oldest_entry: 1, + total_messages: 2, + last_delivered_nonce: 2, + }, + ); + assert_ok!(result); + // even though the pre-dispatch weight was for two messages, the actual weight is + // for single message only + assert_eq!( + result.unwrap().actual_weight.unwrap(), + TestWeightInfo::receive_messages_delivery_proof_weight( + &PreComputedSize(two_messages_delivery_proof_size as _), + &UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + total_messages: 1, + ..Default::default() + }, + ) + ); + assert!(!TestDeliveryConfirmationPayments::is_reward_paid(TEST_RELAYER_A, 1)); + assert!(TestDeliveryConfirmationPayments::is_reward_paid(TEST_RELAYER_B, 1)); + assert_eq!(TestOnMessagesDelivered::call_arguments(), Some((TEST_LANE_ID, 0))); + }); +} + +#[test] +fn receive_messages_delivery_proof_rejects_invalid_proof() { + run_test(|| { + let mut proof = prepare_messages_delivery_proof(TEST_LANE_ID, Default::default()); + proof.lane = bp_messages::LaneId([42, 42, 42, 42]); + + assert_noop!( + Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + proof, + Default::default(), + ), + Error::::InvalidMessagesDeliveryProof, + ); + }); +} + +#[test] +fn receive_messages_delivery_proof_rejects_proof_if_declared_relayers_state_is_invalid() { + run_test(|| { + // when number of relayers entries is invalid + let proof = prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + relayers: vec![ + unrewarded_relayer(1, 1, TEST_RELAYER_A), + unrewarded_relayer(2, 2, TEST_RELAYER_B), + ] + .into(), + ..Default::default() + }, + ); + assert_noop!( + Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + proof, + UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + total_messages: 2, + last_delivered_nonce: 2, + ..Default::default() + }, + ), + Error::::InvalidUnrewardedRelayersState, + ); + + // when number of messages is invalid + let proof = prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + relayers: vec![ + unrewarded_relayer(1, 1, TEST_RELAYER_A), + unrewarded_relayer(2, 2, TEST_RELAYER_B), + ] + .into(), + ..Default::default() + }, + ); + assert_noop!( + Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + proof, + UnrewardedRelayersState { + unrewarded_relayer_entries: 2, + total_messages: 1, + last_delivered_nonce: 2, + ..Default::default() + }, + ), + Error::::InvalidUnrewardedRelayersState, + ); + + // when last delivered nonce is invalid + let proof = prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + relayers: vec![ + unrewarded_relayer(1, 1, TEST_RELAYER_A), + unrewarded_relayer(2, 2, TEST_RELAYER_B), + ] + .into(), + ..Default::default() + }, + ); + assert_noop!( + Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + proof, + UnrewardedRelayersState { + unrewarded_relayer_entries: 2, + total_messages: 2, + last_delivered_nonce: 8, + ..Default::default() + }, + ), + Error::::InvalidUnrewardedRelayersState, + ); + }); +} + +#[test] +fn receive_messages_accepts_single_message_with_invalid_payload() { + run_test(|| { + let mut invalid_message = message(1, REGULAR_PAYLOAD); + invalid_message.payload = Vec::new(); + + assert_ok!(Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + prepare_messages_proof(vec![invalid_message], None), + 1, + Weight::zero(), /* weight may be zero in this case (all messages are + * improperly encoded) */ + ),); + + assert_eq!(InboundLanes::::get(TEST_LANE_ID).last_delivered_nonce(), 1,); + }); +} + +#[test] +fn receive_messages_accepts_batch_with_message_with_invalid_payload() { + run_test(|| { + let mut invalid_message = message(2, REGULAR_PAYLOAD); + invalid_message.payload = Vec::new(); + + assert_ok!(Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + prepare_messages_proof( + vec![message(1, REGULAR_PAYLOAD), invalid_message, message(3, REGULAR_PAYLOAD),], + None + ), + 3, + REGULAR_PAYLOAD.declared_weight + REGULAR_PAYLOAD.declared_weight, + ),); + + assert_eq!(InboundLanes::::get(TEST_LANE_ID).last_delivered_nonce(), 3,); + }); +} + +#[test] +fn actual_dispatch_weight_does_not_overflow() { + run_test(|| { + let message1 = message(1, message_payload(0, u64::MAX / 2)); + let message2 = message(2, message_payload(0, u64::MAX / 2)); + let message3 = message(3, message_payload(0, u64::MAX / 2)); + + let proof = prepare_messages_proof(vec![message1, message2, message3], None); + assert_noop!( + Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + // this may cause overflow if source chain storage is invalid + proof, + 3, + Weight::MAX, + ), + Error::::InsufficientDispatchWeight + ); + assert_eq!(InboundLanes::::get(TEST_LANE_ID).last_delivered_nonce(), 0); + }); +} + +#[test] +fn ref_time_refund_from_receive_messages_proof_works() { + run_test(|| { + fn submit_with_unspent_weight( + nonce: MessageNonce, + unspent_weight: u64, + ) -> (Weight, Weight) { + let mut payload = REGULAR_PAYLOAD; + *payload.dispatch_result.unspent_weight.ref_time_mut() = unspent_weight; + let proof = prepare_messages_proof(vec![message(nonce, payload)], None); + let messages_count = 1; + let pre_dispatch_weight = + ::WeightInfo::receive_messages_proof_weight( + &*proof, + messages_count, + REGULAR_PAYLOAD.declared_weight, + ); + let result = Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + proof, + messages_count, + REGULAR_PAYLOAD.declared_weight, + ) + .expect("delivery has failed"); + let post_dispatch_weight = + result.actual_weight.expect("receive_messages_proof always returns Some"); + + // message delivery transactions are never free + assert_eq!(result.pays_fee, Pays::Yes); + + (pre_dispatch_weight, post_dispatch_weight) + } + + // when dispatch is returning `unspent_weight < declared_weight` + let (pre, post) = submit_with_unspent_weight(1, 1); + assert_eq!(post.ref_time(), pre.ref_time() - 1); + + // when dispatch is returning `unspent_weight = declared_weight` + let (pre, post) = submit_with_unspent_weight(2, REGULAR_PAYLOAD.declared_weight.ref_time()); + assert_eq!(post.ref_time(), pre.ref_time() - REGULAR_PAYLOAD.declared_weight.ref_time()); + + // when dispatch is returning `unspent_weight > declared_weight` + let (pre, post) = + submit_with_unspent_weight(3, REGULAR_PAYLOAD.declared_weight.ref_time() + 1); + assert_eq!(post.ref_time(), pre.ref_time() - REGULAR_PAYLOAD.declared_weight.ref_time()); + + // when there's no unspent weight + let (pre, post) = submit_with_unspent_weight(4, 0); + assert_eq!(post.ref_time(), pre.ref_time()); + + // when dispatch is returning `unspent_weight < declared_weight` + let (pre, post) = submit_with_unspent_weight(5, 1); + assert_eq!(post.ref_time(), pre.ref_time() - 1); + }); +} + +#[test] +fn proof_size_refund_from_receive_messages_proof_works() { + run_test(|| { + let max_entries = BridgedChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX as usize; + + // if there's maximal number of unrewarded relayer entries at the inbound lane, then + // `proof_size` is unchanged in post-dispatch weight + let proof = prepare_messages_proof(vec![message(101, REGULAR_PAYLOAD)], None); + let messages_count = 1; + let pre_dispatch_weight = + ::WeightInfo::receive_messages_proof_weight( + &*proof, + messages_count, + REGULAR_PAYLOAD.declared_weight, + ); + InboundLanes::::insert( + TEST_LANE_ID, + StoredInboundLaneData(InboundLaneData { + relayers: vec![ + UnrewardedRelayer { + relayer: 42, + messages: DeliveredMessages { begin: 0, end: 100 } + }; + max_entries + ] + .into(), + last_confirmed_nonce: 0, + }), + ); + let post_dispatch_weight = Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + proof.clone(), + messages_count, + REGULAR_PAYLOAD.declared_weight, + ) + .unwrap() + .actual_weight + .unwrap(); + assert_eq!(post_dispatch_weight.proof_size(), pre_dispatch_weight.proof_size()); + + // if count of unrewarded relayer entries is less than maximal, then some `proof_size` + // must be refunded + InboundLanes::::insert( + TEST_LANE_ID, + StoredInboundLaneData(InboundLaneData { + relayers: vec![ + UnrewardedRelayer { + relayer: 42, + messages: DeliveredMessages { begin: 0, end: 100 } + }; + max_entries - 1 + ] + .into(), + last_confirmed_nonce: 0, + }), + ); + let post_dispatch_weight = Pallet::::receive_messages_proof( + RuntimeOrigin::signed(1), + TEST_RELAYER_A, + proof, + messages_count, + REGULAR_PAYLOAD.declared_weight, + ) + .unwrap() + .actual_weight + .unwrap(); + assert!( + post_dispatch_weight.proof_size() < pre_dispatch_weight.proof_size(), + "Expected post-dispatch PoV {} to be less than pre-dispatch PoV {}", + post_dispatch_weight.proof_size(), + pre_dispatch_weight.proof_size(), + ); + }); +} + +#[test] +fn receive_messages_delivery_proof_rejects_proof_if_trying_to_confirm_more_messages_than_expected() +{ + run_test(|| { + // send message first to be able to check that delivery_proof fails later + send_regular_message(TEST_LANE_ID); + + // 1) InboundLaneData declares that the `last_confirmed_nonce` is 1; + // 2) InboundLaneData has no entries => `InboundLaneData::last_delivered_nonce()` returns + // `last_confirmed_nonce`; + // 3) it means that we're going to confirm delivery of messages 1..=1; + // 4) so the number of declared messages (see `UnrewardedRelayersState`) is `0` and numer of + // actually confirmed messages is `1`. + let proof = prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { last_confirmed_nonce: 1, relayers: Default::default() }, + ); + assert_noop!( + Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + proof, + UnrewardedRelayersState { last_delivered_nonce: 1, ..Default::default() }, + ), + Error::::ReceptionConfirmation( + ReceptionConfirmationError::TryingToConfirmMoreMessagesThanExpected + ), + ); + }); +} + +#[test] +fn storage_keys_computed_properly() { + assert_eq!( + PalletOperatingMode::::storage_value_final_key().to_vec(), + bp_messages::storage_keys::operating_mode_key("Messages").0, + ); + + assert_eq!( + OutboundMessages::::storage_map_final_key(MessageKey { + lane_id: TEST_LANE_ID, + nonce: 42 + }), + bp_messages::storage_keys::message_key("Messages", &TEST_LANE_ID, 42).0, + ); + + assert_eq!( + OutboundLanes::::storage_map_final_key(TEST_LANE_ID), + bp_messages::storage_keys::outbound_lane_data_key("Messages", &TEST_LANE_ID).0, + ); + + assert_eq!( + InboundLanes::::storage_map_final_key(TEST_LANE_ID), + bp_messages::storage_keys::inbound_lane_data_key("Messages", &TEST_LANE_ID).0, + ); +} + +#[test] +fn inbound_message_details_works() { + run_test(|| { + assert_eq!( + Pallet::::inbound_message_data( + TEST_LANE_ID, + REGULAR_PAYLOAD.encode(), + OutboundMessageDetails { nonce: 0, dispatch_weight: Weight::zero(), size: 0 }, + ), + InboundMessageDetails { dispatch_weight: REGULAR_PAYLOAD.declared_weight }, + ); + }); +} + +#[test] +fn on_idle_callback_respects_remaining_weight() { + run_test(|| { + send_regular_message(TEST_LANE_ID); + send_regular_message(TEST_LANE_ID); + send_regular_message(TEST_LANE_ID); + send_regular_message(TEST_LANE_ID); + + assert_ok!(Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + last_confirmed_nonce: 4, + relayers: vec![unrewarded_relayer(1, 4, TEST_RELAYER_A)].into(), + }, + ), + UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + messages_in_oldest_entry: 4, + total_messages: 4, + last_delivered_nonce: 4, + }, + )); + + // all 4 messages may be pruned now + assert_eq!(outbound_lane::(TEST_LANE_ID).data().latest_received_nonce, 4); + assert_eq!(outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, 1); + System::::set_block_number(2); + + // if passed wight is too low to do anything + let dbw = DbWeight::get(); + assert_eq!(Pallet::::on_idle(0, dbw.reads_writes(1, 1)), Weight::zero(),); + assert_eq!(outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, 1); + + // if passed wight is enough to prune single message + assert_eq!( + Pallet::::on_idle(0, dbw.reads_writes(1, 2)), + dbw.reads_writes(1, 2), + ); + assert_eq!(outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, 2); + + // if passed wight is enough to prune two more messages + assert_eq!( + Pallet::::on_idle(0, dbw.reads_writes(1, 3)), + dbw.reads_writes(1, 3), + ); + assert_eq!(outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, 4); + + // if passed wight is enough to prune many messages + assert_eq!( + Pallet::::on_idle(0, dbw.reads_writes(100, 100)), + dbw.reads_writes(1, 2), + ); + assert_eq!(outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, 5); + }); +} + +#[test] +fn on_idle_callback_is_rotating_lanes_to_prune() { + run_test(|| { + // send + receive confirmation for lane 1 + send_regular_message(TEST_LANE_ID); + receive_messages_delivery_proof(); + // send + receive confirmation for lane 2 + send_regular_message(TEST_LANE_ID_2); + assert_ok!(Pallet::::receive_messages_delivery_proof( + RuntimeOrigin::signed(1), + prepare_messages_delivery_proof( + TEST_LANE_ID_2, + InboundLaneData { + last_confirmed_nonce: 1, + relayers: vec![unrewarded_relayer(1, 1, TEST_RELAYER_A)].into(), + }, + ), + UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + messages_in_oldest_entry: 1, + total_messages: 1, + last_delivered_nonce: 1, + }, + )); + + // nothing is pruned yet + assert_eq!(outbound_lane::(TEST_LANE_ID).data().latest_received_nonce, 1); + assert_eq!(outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, 1); + assert_eq!( + outbound_lane::(TEST_LANE_ID_2).data().latest_received_nonce, + 1 + ); + assert_eq!( + outbound_lane::(TEST_LANE_ID_2).data().oldest_unpruned_nonce, + 1 + ); + + // in block#2.on_idle lane messages of lane 1 are pruned + let dbw = DbWeight::get(); + System::::set_block_number(2); + assert_eq!( + Pallet::::on_idle(0, dbw.reads_writes(100, 100)), + dbw.reads_writes(1, 2), + ); + assert_eq!(outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, 2); + assert_eq!( + outbound_lane::(TEST_LANE_ID_2).data().oldest_unpruned_nonce, + 1 + ); + + // in block#3.on_idle lane messages of lane 2 are pruned + System::::set_block_number(3); + + assert_eq!( + Pallet::::on_idle(0, dbw.reads_writes(100, 100)), + dbw.reads_writes(1, 2), + ); + assert_eq!(outbound_lane::(TEST_LANE_ID).data().oldest_unpruned_nonce, 2); + assert_eq!( + outbound_lane::(TEST_LANE_ID_2).data().oldest_unpruned_nonce, + 2 + ); + }); +} + +#[test] +fn outbound_message_from_unconfigured_lane_is_rejected() { + run_test(|| { + assert_noop!( + Pallet::::validate_message(TEST_LANE_ID_3, ®ULAR_PAYLOAD,), + Error::::InactiveOutboundLane, + ); + }); +} + +#[test] +fn test_bridge_messages_call_is_correctly_defined() { + run_test(|| { + let account_id = 1; + let message_proof = prepare_messages_proof(vec![message(1, REGULAR_PAYLOAD)], None); + let message_delivery_proof = prepare_messages_delivery_proof( + TEST_LANE_ID, + InboundLaneData { + last_confirmed_nonce: 1, + relayers: vec![UnrewardedRelayer { + relayer: 0, + messages: DeliveredMessages::new(1), + }] + .into(), + }, + ); + let unrewarded_relayer_state = UnrewardedRelayersState { + unrewarded_relayer_entries: 1, + total_messages: 1, + last_delivered_nonce: 1, + ..Default::default() + }; + + let direct_receive_messages_proof_call = Call::::receive_messages_proof { + relayer_id_at_bridged_chain: account_id, + proof: message_proof.clone(), + messages_count: 1, + dispatch_weight: REGULAR_PAYLOAD.declared_weight, + }; + let indirect_receive_messages_proof_call = BridgeMessagesCall::< + AccountId, + FromBridgedChainMessagesProof, + FromBridgedChainMessagesDeliveryProof, + >::receive_messages_proof { + relayer_id_at_bridged_chain: account_id, + proof: *message_proof, + messages_count: 1, + dispatch_weight: REGULAR_PAYLOAD.declared_weight, + }; + assert_eq!( + direct_receive_messages_proof_call.encode(), + indirect_receive_messages_proof_call.encode() + ); + + let direct_receive_messages_delivery_proof_call = + Call::::receive_messages_delivery_proof { + proof: message_delivery_proof.clone(), + relayers_state: unrewarded_relayer_state.clone(), + }; + let indirect_receive_messages_delivery_proof_call = BridgeMessagesCall::< + AccountId, + FromBridgedChainMessagesProof, + FromBridgedChainMessagesDeliveryProof, + >::receive_messages_delivery_proof { + proof: message_delivery_proof, + relayers_state: unrewarded_relayer_state, + }; + assert_eq!( + direct_receive_messages_delivery_proof_call.encode(), + indirect_receive_messages_delivery_proof_call.encode() + ); + }); +} + +generate_owned_bridge_module_tests!( + MessagesOperatingMode::Basic(BasicOperatingMode::Normal), + MessagesOperatingMode::Basic(BasicOperatingMode::Halted) +); + +#[test] +fn inbound_storage_extra_proof_size_bytes_works() { + fn relayer_entry() -> UnrewardedRelayer { + UnrewardedRelayer { relayer: 42u64, messages: DeliveredMessages { begin: 0, end: 100 } } + } + + fn storage(relayer_entries: usize) -> RuntimeInboundLaneStorage { + RuntimeInboundLaneStorage { + lane_id: Default::default(), + cached_data: Some(InboundLaneData { + relayers: vec![relayer_entry(); relayer_entries].into(), + last_confirmed_nonce: 0, + }), + _phantom: Default::default(), + } + } + + let max_entries = BridgedChain::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX as usize; + + // when we have exactly `MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX` unrewarded relayers + assert_eq!(storage(max_entries).extra_proof_size_bytes(), 0); + + // when we have less than `MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX` unrewarded relayers + assert_eq!( + storage(max_entries - 1).extra_proof_size_bytes(), + relayer_entry().encode().len() as u64 + ); + assert_eq!( + storage(max_entries - 2).extra_proof_size_bytes(), + 2 * relayer_entry().encode().len() as u64 + ); + + // when we have more than `MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX` unrewarded relayers + // (shall not happen in practice) + assert_eq!(storage(max_entries + 1).extra_proof_size_bytes(), 0); +} + +#[test] +fn maybe_outbound_lanes_count_returns_correct_value() { + assert_eq!( + MaybeOutboundLanesCount::::get(), + Some(mock::ActiveOutboundLanes::get().len() as u32) + ); +} diff --git a/bridges/modules/messages/src/weights.rs b/bridges/modules/messages/src/weights.rs index 5bf7d567560..72a06599b16 100644 --- a/bridges/modules/messages/src/weights.rs +++ b/bridges/modules/messages/src/weights.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for pallet_bridge_messages //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `covid`, CPU: `11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz` +//! HOSTNAME: `serban-ROG-Zephyrus`, CPU: `12th Gen Intel(R) Core(TM) i7-12700H` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: @@ -51,14 +51,13 @@ use sp_std::marker::PhantomData; /// Weight functions needed for pallet_bridge_messages. pub trait WeightInfo { fn receive_single_message_proof() -> Weight; - fn receive_two_messages_proof() -> Weight; + fn receive_n_messages_proof(n: u32) -> Weight; fn receive_single_message_proof_with_outbound_lane_state() -> Weight; - fn receive_single_message_proof_1_kb() -> Weight; - fn receive_single_message_proof_16_kb() -> Weight; + fn receive_single_n_bytes_message_proof(n: u32) -> Weight; fn receive_delivery_proof_for_single_message() -> Weight; fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight; fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight; - fn receive_single_message_proof_with_dispatch(i: u32) -> Weight; + fn receive_single_n_bytes_message_proof_with_dispatch(n: u32) -> Weight; } /// Weights for `pallet_bridge_messages` that are generated using one of the Bridge testnets. @@ -82,56 +81,39 @@ impl WeightInfo for BridgeWeight { /// 51655, mode: MaxEncodedLen) fn receive_single_message_proof() -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 52_321 nanoseconds. - Weight::from_parts(54_478_000, 57170) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 38_724 nanoseconds. + Weight::from_parts(40_650_000, 52673) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) + /// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0) /// - /// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), + /// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), /// added: 497, mode: MaxEncodedLen) /// - /// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0) + /// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0) /// - /// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68), + /// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68), /// added: 2048, mode: MaxEncodedLen) /// - /// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1) - /// - /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: - /// 51655, mode: MaxEncodedLen) - fn receive_two_messages_proof() -> Weight { - // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 64_597 nanoseconds. - Weight::from_parts(69_267_000, 57170) - .saturating_add(T::DbWeight::get().reads(3_u64)) - .saturating_add(T::DbWeight::get().writes(1_u64)) - } - /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) + /// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1) /// - /// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), - /// added: 497, mode: MaxEncodedLen) + /// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49208), added: + /// 51683, mode: MaxEncodedLen) /// - /// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0) + /// The range of component `n` is `[1, 1004]`. /// - /// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68), - /// added: 2048, mode: MaxEncodedLen) - /// - /// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1) - /// - /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: - /// 51655, mode: MaxEncodedLen) - fn receive_single_message_proof_with_outbound_lane_state() -> Weight { + /// The range of component `n` is `[1, 1004]`. + fn receive_n_messages_proof(n: u32) -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 64_079 nanoseconds. - Weight::from_parts(65_905_000, 57170) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 39_354 nanoseconds. + Weight::from_parts(29_708_543, 52673) + // Standard Error: 1_185 + .saturating_add(Weight::from_parts(7_648_787, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -149,12 +131,12 @@ impl WeightInfo for BridgeWeight { /// /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: /// 51655, mode: MaxEncodedLen) - fn receive_single_message_proof_1_kb() -> Weight { + fn receive_single_message_proof_with_outbound_lane_state() -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 50_588 nanoseconds. - Weight::from_parts(53_544_000, 57170) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 45_578 nanoseconds. + Weight::from_parts(47_161_000, 52673) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -172,12 +154,16 @@ impl WeightInfo for BridgeWeight { /// /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: /// 51655, mode: MaxEncodedLen) - fn receive_single_message_proof_16_kb() -> Weight { + /// + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof(n: u32) -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 78_269 nanoseconds. - Weight::from_parts(81_748_000, 57170) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 38_702 nanoseconds. + Weight::from_parts(41_040_143, 52673) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_174, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -198,16 +184,21 @@ impl WeightInfo for BridgeWeight { /// /// Storage: BridgeRelayers RelayerRewards (r:1 w:1) /// - /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(65), added: 2540, + /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(93), added: 2568, /// mode: MaxEncodedLen) + /// + /// Storage: BridgeRialtoMessages OutboundMessages (r:0 w:1) + /// + /// Proof: BridgeRialtoMessages OutboundMessages (max_values: None, max_size: Some(65596), + /// added: 68071, mode: MaxEncodedLen) fn receive_delivery_proof_for_single_message() -> Weight { // Proof Size summary in bytes: - // Measured: `579` - // Estimated: `9584` - // Minimum execution time: 45_786 nanoseconds. - Weight::from_parts(47_382_000, 9584) + // Measured: `701` + // Estimated: `3558` + // Minimum execution time: 37_197 nanoseconds. + Weight::from_parts(38_371_000, 3558) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes(3_u64)) } /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) /// @@ -226,16 +217,21 @@ impl WeightInfo for BridgeWeight { /// /// Storage: BridgeRelayers RelayerRewards (r:1 w:1) /// - /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(65), added: 2540, + /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(93), added: 2568, /// mode: MaxEncodedLen) + /// + /// Storage: BridgeRialtoMessages OutboundMessages (r:0 w:2) + /// + /// Proof: BridgeRialtoMessages OutboundMessages (max_values: None, max_size: Some(65596), + /// added: 68071, mode: MaxEncodedLen) fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight { // Proof Size summary in bytes: - // Measured: `596` - // Estimated: `9584` - // Minimum execution time: 44_544 nanoseconds. - Weight::from_parts(45_451_000, 9584) + // Measured: `701` + // Estimated: `3558` + // Minimum execution time: 38_684 nanoseconds. + Weight::from_parts(39_929_000, 3558) .saturating_add(T::DbWeight::get().reads(4_u64)) - .saturating_add(T::DbWeight::get().writes(2_u64)) + .saturating_add(T::DbWeight::get().writes(4_u64)) } /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) /// @@ -254,16 +250,21 @@ impl WeightInfo for BridgeWeight { /// /// Storage: BridgeRelayers RelayerRewards (r:2 w:2) /// - /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(65), added: 2540, + /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(93), added: 2568, /// mode: MaxEncodedLen) + /// + /// Storage: BridgeRialtoMessages OutboundMessages (r:0 w:2) + /// + /// Proof: BridgeRialtoMessages OutboundMessages (max_values: None, max_size: Some(65596), + /// added: 68071, mode: MaxEncodedLen) fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight { // Proof Size summary in bytes: - // Measured: `596` - // Estimated: `12124` - // Minimum execution time: 47_344 nanoseconds. - Weight::from_parts(48_311_000, 12124) + // Measured: `701` + // Estimated: `6126` + // Minimum execution time: 41_363 nanoseconds. + Weight::from_parts(42_621_000, 6126) .saturating_add(T::DbWeight::get().reads(5_u64)) - .saturating_add(T::DbWeight::get().writes(3_u64)) + .saturating_add(T::DbWeight::get().writes(5_u64)) } /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) /// @@ -280,15 +281,15 @@ impl WeightInfo for BridgeWeight { /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: /// 51655, mode: MaxEncodedLen) /// - /// The range of component `i` is `[128, 2048]`. - fn receive_single_message_proof_with_dispatch(i: u32) -> Weight { + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof_with_dispatch(n: u32) -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 52_385 nanoseconds. - Weight::from_parts(54_919_468, 57170) - // Standard Error: 108 - .saturating_add(Weight::from_parts(3_286, 0).saturating_mul(i.into())) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 38_925 nanoseconds. + Weight::from_parts(39_617_000, 52673) + // Standard Error: 612 + .saturating_add(Weight::from_parts(372_813, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -312,33 +313,39 @@ impl WeightInfo for () { /// 51655, mode: MaxEncodedLen) fn receive_single_message_proof() -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 52_321 nanoseconds. - Weight::from_parts(54_478_000, 57170) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 38_724 nanoseconds. + Weight::from_parts(40_650_000, 52673) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } - /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) + /// Storage: BridgeRialtoMessages PalletOperatingMode (r:1 w:0) /// - /// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), + /// Proof: BridgeRialtoMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), /// added: 497, mode: MaxEncodedLen) /// - /// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0) + /// Storage: BridgeRialtoGrandpa ImportedHeaders (r:1 w:0) /// - /// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68), + /// Proof: BridgeRialtoGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68), /// added: 2048, mode: MaxEncodedLen) /// - /// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1) + /// Storage: BridgeRialtoMessages InboundLanes (r:1 w:1) /// - /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: - /// 51655, mode: MaxEncodedLen) - fn receive_two_messages_proof() -> Weight { + /// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49208), added: + /// 51683, mode: MaxEncodedLen) + /// + /// The range of component `n` is `[1, 1004]`. + /// + /// The range of component `n` is `[1, 1004]`. + fn receive_n_messages_proof(n: u32) -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 64_597 nanoseconds. - Weight::from_parts(69_267_000, 57170) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 39_354 nanoseconds. + Weight::from_parts(29_708_543, 52673) + // Standard Error: 1_185 + .saturating_add(Weight::from_parts(7_648_787, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -358,10 +365,10 @@ impl WeightInfo for () { /// 51655, mode: MaxEncodedLen) fn receive_single_message_proof_with_outbound_lane_state() -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 64_079 nanoseconds. - Weight::from_parts(65_905_000, 57170) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 45_578 nanoseconds. + Weight::from_parts(47_161_000, 52673) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -377,37 +384,20 @@ impl WeightInfo for () { /// /// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1) /// - /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: - /// 51655, mode: MaxEncodedLen) - fn receive_single_message_proof_1_kb() -> Weight { - // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 50_588 nanoseconds. - Weight::from_parts(53_544_000, 57170) - .saturating_add(RocksDbWeight::get().reads(3_u64)) - .saturating_add(RocksDbWeight::get().writes(1_u64)) - } - /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) - /// - /// Proof: BridgeUnknownMessages PalletOperatingMode (max_values: Some(1), max_size: Some(2), - /// added: 497, mode: MaxEncodedLen) - /// - /// Storage: BridgeUnknownGrandpa ImportedHeaders (r:1 w:0) + /// Proof: BridgeRialtoMessages InboundLanes (max_values: None, max_size: Some(49208), added: + /// 51683, mode: MaxEncodedLen) /// - /// Proof: BridgeUnknownGrandpa ImportedHeaders (max_values: Some(14400), max_size: Some(68), - /// added: 2048, mode: MaxEncodedLen) + /// The range of component `n` is `[1, 16384]`. /// - /// Storage: BridgeUnknownMessages InboundLanes (r:1 w:1) - /// - /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: - /// 51655, mode: MaxEncodedLen) - fn receive_single_message_proof_16_kb() -> Weight { + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof(n: u32) -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 78_269 nanoseconds. - Weight::from_parts(81_748_000, 57170) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 38_702 nanoseconds. + Weight::from_parts(41_040_143, 52673) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_174, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -428,16 +418,21 @@ impl WeightInfo for () { /// /// Storage: BridgeRelayers RelayerRewards (r:1 w:1) /// - /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(65), added: 2540, + /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(93), added: 2568, /// mode: MaxEncodedLen) + /// + /// Storage: BridgeRialtoMessages OutboundMessages (r:0 w:1) + /// + /// Proof: BridgeRialtoMessages OutboundMessages (max_values: None, max_size: Some(65596), + /// added: 68071, mode: MaxEncodedLen) fn receive_delivery_proof_for_single_message() -> Weight { // Proof Size summary in bytes: - // Measured: `579` - // Estimated: `9584` - // Minimum execution time: 45_786 nanoseconds. - Weight::from_parts(47_382_000, 9584) + // Measured: `701` + // Estimated: `3558` + // Minimum execution time: 37_197 nanoseconds. + Weight::from_parts(38_371_000, 3558) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + .saturating_add(RocksDbWeight::get().writes(3_u64)) } /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) /// @@ -456,16 +451,21 @@ impl WeightInfo for () { /// /// Storage: BridgeRelayers RelayerRewards (r:1 w:1) /// - /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(65), added: 2540, + /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(93), added: 2568, /// mode: MaxEncodedLen) + /// + /// Storage: BridgeRialtoMessages OutboundMessages (r:0 w:2) + /// + /// Proof: BridgeRialtoMessages OutboundMessages (max_values: None, max_size: Some(65596), + /// added: 68071, mode: MaxEncodedLen) fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight { // Proof Size summary in bytes: - // Measured: `596` - // Estimated: `9584` - // Minimum execution time: 44_544 nanoseconds. - Weight::from_parts(45_451_000, 9584) + // Measured: `701` + // Estimated: `3558` + // Minimum execution time: 38_684 nanoseconds. + Weight::from_parts(39_929_000, 3558) .saturating_add(RocksDbWeight::get().reads(4_u64)) - .saturating_add(RocksDbWeight::get().writes(2_u64)) + .saturating_add(RocksDbWeight::get().writes(4_u64)) } /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) /// @@ -484,16 +484,21 @@ impl WeightInfo for () { /// /// Storage: BridgeRelayers RelayerRewards (r:2 w:2) /// - /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(65), added: 2540, + /// Proof: BridgeRelayers RelayerRewards (max_values: None, max_size: Some(93), added: 2568, /// mode: MaxEncodedLen) + /// + /// Storage: BridgeRialtoMessages OutboundMessages (r:0 w:2) + /// + /// Proof: BridgeRialtoMessages OutboundMessages (max_values: None, max_size: Some(65596), + /// added: 68071, mode: MaxEncodedLen) fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight { // Proof Size summary in bytes: - // Measured: `596` - // Estimated: `12124` - // Minimum execution time: 47_344 nanoseconds. - Weight::from_parts(48_311_000, 12124) + // Measured: `701` + // Estimated: `6126` + // Minimum execution time: 41_363 nanoseconds. + Weight::from_parts(42_621_000, 6126) .saturating_add(RocksDbWeight::get().reads(5_u64)) - .saturating_add(RocksDbWeight::get().writes(3_u64)) + .saturating_add(RocksDbWeight::get().writes(5_u64)) } /// Storage: BridgeUnknownMessages PalletOperatingMode (r:1 w:0) /// @@ -510,15 +515,15 @@ impl WeightInfo for () { /// Proof: BridgeUnknownMessages InboundLanes (max_values: None, max_size: Some(49180), added: /// 51655, mode: MaxEncodedLen) /// - /// The range of component `i` is `[128, 2048]`. - fn receive_single_message_proof_with_dispatch(i: u32) -> Weight { + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof_with_dispatch(n: u32) -> Weight { // Proof Size summary in bytes: - // Measured: `618` - // Estimated: `57170` - // Minimum execution time: 52_385 nanoseconds. - Weight::from_parts(54_919_468, 57170) - // Standard Error: 108 - .saturating_add(Weight::from_parts(3_286, 0).saturating_mul(i.into())) + // Measured: `653` + // Estimated: `52673` + // Minimum execution time: 38_925 nanoseconds. + Weight::from_parts(39_617_000, 52673) + // Standard Error: 612 + .saturating_add(Weight::from_parts(372_813, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } diff --git a/bridges/modules/messages/src/weights_ext.rs b/bridges/modules/messages/src/weights_ext.rs index c12e04f692b..7711e212efb 100644 --- a/bridges/modules/messages/src/weights_ext.rs +++ b/bridges/modules/messages/src/weights_ext.rs @@ -40,13 +40,6 @@ pub fn ensure_weights_are_correct() { // benchmarked using `MaxEncodedLen` approach and there are no components that cause additional // db reads - // verify `receive_messages_proof` weight components - assert_ne!(W::receive_messages_proof_overhead().ref_time(), 0); - assert_ne!(W::receive_messages_proof_overhead().proof_size(), 0); - // W::receive_messages_proof_messages_overhead(1).ref_time() may be zero because: - // the message processing code (`InboundLane::receive_message`) is minimal and may not be - // accounted by our benchmarks - assert_eq!(W::receive_messages_proof_messages_overhead(1).proof_size(), 0); // W::receive_messages_proof_outbound_lane_state_overhead().ref_time() may be zero because: // the outbound lane state processing code (`InboundLane::receive_state_update`) is minimal and // may not be accounted by our benchmarks @@ -86,6 +79,19 @@ pub fn ensure_weights_are_correct() { total_messages_in_delivery_proof_does_not_affect_proof_size::(); } +/// Ensure that we are able to dispatch maximal size messages. +pub fn ensure_maximal_message_dispatch( + max_incoming_message_size: u32, + max_incoming_message_dispatch_weight: Weight, +) { + let message_dispatch_weight = W::message_dispatch_weight(max_incoming_message_size); + assert!( + message_dispatch_weight.all_lte(max_incoming_message_dispatch_weight), + "Dispatch weight of maximal message {message_dispatch_weight:?} must be lower \ + than the hardcoded {max_incoming_message_dispatch_weight:?}", + ); +} + /// Ensure that we're able to receive maximal (by-size and by-weight) message from other chain. pub fn ensure_able_to_receive_message( max_extrinsic_size: u32, @@ -98,7 +104,8 @@ pub fn ensure_able_to_receive_message( max_incoming_message_proof_size.saturating_add(SIGNED_EXTENSIONS_SIZE); assert!( max_delivery_transaction_size <= max_extrinsic_size, - "Size of maximal message delivery transaction {max_incoming_message_proof_size} + {SIGNED_EXTENSIONS_SIZE} is larger than maximal possible transaction size {max_extrinsic_size}", + "Size of maximal message delivery transaction {max_incoming_message_proof_size} + \ + {SIGNED_EXTENSIONS_SIZE} is larger than maximal possible transaction size {max_extrinsic_size}", ); // verify that we're able to receive proof of maximal-size message with maximal dispatch weight @@ -297,13 +304,11 @@ pub trait WeightInfoExt: WeightInfo { dispatch_weight: Weight, ) -> Weight { // basic components of extrinsic weight - let transaction_overhead = Self::receive_messages_proof_overhead(); + let base_weight = Self::receive_n_messages_proof(messages_count); let transaction_overhead_from_runtime = Self::receive_messages_proof_overhead_from_runtime(); let outbound_state_delivery_weight = Self::receive_messages_proof_outbound_lane_state_overhead(); - let messages_delivery_weight = - Self::receive_messages_proof_messages_overhead(MessageNonce::from(messages_count)); let messages_dispatch_weight = dispatch_weight; // proof size overhead weight @@ -315,10 +320,9 @@ pub trait WeightInfoExt: WeightInfo { actual_proof_size.saturating_sub(expected_proof_size), ); - transaction_overhead + base_weight .saturating_add(transaction_overhead_from_runtime) .saturating_add(outbound_state_delivery_weight) - .saturating_add(messages_delivery_weight) .saturating_add(messages_dispatch_weight) .saturating_add(proof_size_overhead) } @@ -354,25 +358,6 @@ pub trait WeightInfoExt: WeightInfo { // Functions that are used by extrinsics weights formulas. - /// Returns weight overhead of message delivery transaction (`receive_messages_proof`). - fn receive_messages_proof_overhead() -> Weight { - let weight_of_two_messages_and_two_tx_overheads = - Self::receive_single_message_proof().saturating_mul(2); - let weight_of_two_messages_and_single_tx_overhead = Self::receive_two_messages_proof(); - weight_of_two_messages_and_two_tx_overheads - .saturating_sub(weight_of_two_messages_and_single_tx_overhead) - } - - /// Returns weight that needs to be accounted when receiving given a number of messages with - /// message delivery transaction (`receive_messages_proof`). - fn receive_messages_proof_messages_overhead(messages: MessageNonce) -> Weight { - let weight_of_two_messages_and_single_tx_overhead = Self::receive_two_messages_proof(); - let weight_of_single_message_and_single_tx_overhead = Self::receive_single_message_proof(); - weight_of_two_messages_and_single_tx_overhead - .saturating_sub(weight_of_single_message_and_single_tx_overhead) - .saturating_mul(messages as _) - } - /// Returns weight that needs to be accounted when message delivery transaction /// (`receive_messages_proof`) is carrying outbound lane state proof. fn receive_messages_proof_outbound_lane_state_overhead() -> Weight { @@ -426,9 +411,8 @@ pub trait WeightInfoExt: WeightInfo { /// is less than that cost). fn storage_proof_size_overhead(proof_size: u32) -> Weight { let proof_size_in_bytes = proof_size; - let byte_weight = (Self::receive_single_message_proof_16_kb() - - Self::receive_single_message_proof_1_kb()) / - (15 * 1024); + let byte_weight = Self::receive_single_n_bytes_message_proof(2) - + Self::receive_single_n_bytes_message_proof(1); proof_size_in_bytes * byte_weight } @@ -440,11 +424,9 @@ pub trait WeightInfoExt: WeightInfo { /// `receive_single_message_proof_with_dispatch` benchmark. See its requirements for /// details. fn message_dispatch_weight(message_size: u32) -> Weight { - // There may be a tiny overweight/underweight here, because we don't account how message - // size affects all steps before dispatch. But the effect should be small enough and we - // may ignore it. - Self::receive_single_message_proof_with_dispatch(message_size) - .saturating_sub(Self::receive_single_message_proof()) + let message_size_in_bytes = message_size; + Self::receive_single_n_bytes_message_proof_with_dispatch(message_size_in_bytes) + .saturating_sub(Self::receive_single_n_bytes_message_proof(message_size_in_bytes)) } } @@ -479,7 +461,7 @@ impl WeightInfoExt for crate::weights::BridgeWeight #[cfg(test)] mod tests { use super::*; - use crate::{mock::TestRuntime, weights::BridgeWeight}; + use crate::{tests::mock::TestRuntime, weights::BridgeWeight}; #[test] fn ensure_default_weights_are_correct() { diff --git a/bridges/modules/parachains/Cargo.toml b/bridges/modules/parachains/Cargo.toml index 97bad724a78..cda0ee8106d 100644 --- a/bridges/modules/parachains/Cargo.toml +++ b/bridges/modules/parachains/Cargo.toml @@ -30,7 +30,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } sp-std = { workspace = true } -sp-trie = { workspace = true } [dev-dependencies] bp-header-chain = { workspace = true, default-features = true } @@ -54,7 +53,6 @@ std = [ "scale-info/std", "sp-runtime/std", "sp-std/std", - "sp-trie/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/bridges/modules/parachains/src/benchmarking.rs b/bridges/modules/parachains/src/benchmarking.rs index 27e06a12a1d..92ece6d688c 100644 --- a/bridges/modules/parachains/src/benchmarking.rs +++ b/bridges/modules/parachains/src/benchmarking.rs @@ -22,7 +22,7 @@ use crate::{ }; use bp_polkadot_core::parachains::{ParaHash, ParaHeadsProof, ParaId}; -use bp_runtime::StorageProofSize; +use bp_runtime::UnverifiedStorageProofParams; use frame_benchmarking::{account, benchmarks_instance_pallet}; use frame_system::RawOrigin; use sp_std::prelude::*; @@ -38,7 +38,7 @@ pub trait Config: crate::Config { fn prepare_parachain_heads_proof( parachains: &[ParaId], parachain_head_size: u32, - proof_size: StorageProofSize, + proof_params: UnverifiedStorageProofParams, ) -> (RelayBlockNumber, RelayBlockHash, ParaHeadsProof, Vec<(ParaId, ParaHash)>); } @@ -68,7 +68,7 @@ benchmarks_instance_pallet! { let (relay_block_number, relay_block_hash, parachain_heads_proof, parachains_heads) = T::prepare_parachain_heads_proof( ¶chains, DEFAULT_PARACHAIN_HEAD_SIZE, - StorageProofSize::Minimal(0), + UnverifiedStorageProofParams::default(), ); let at_relay_block = (relay_block_number, relay_block_hash); }: submit_parachain_heads(RawOrigin::Signed(sender), at_relay_block, parachains_heads, parachain_heads_proof) @@ -85,7 +85,7 @@ benchmarks_instance_pallet! { let (relay_block_number, relay_block_hash, parachain_heads_proof, parachains_heads) = T::prepare_parachain_heads_proof( ¶chains, DEFAULT_PARACHAIN_HEAD_SIZE, - StorageProofSize::HasLargeLeaf(1024), + UnverifiedStorageProofParams::from_db_size(1024), ); let at_relay_block = (relay_block_number, relay_block_hash); }: submit_parachain_heads(RawOrigin::Signed(sender), at_relay_block, parachains_heads, parachain_heads_proof) @@ -102,7 +102,7 @@ benchmarks_instance_pallet! { let (relay_block_number, relay_block_hash, parachain_heads_proof, parachains_heads) = T::prepare_parachain_heads_proof( ¶chains, DEFAULT_PARACHAIN_HEAD_SIZE, - StorageProofSize::HasLargeLeaf(16 * 1024), + UnverifiedStorageProofParams::from_db_size(16 * 1024), ); let at_relay_block = (relay_block_number, relay_block_hash); }: submit_parachain_heads(RawOrigin::Signed(sender), at_relay_block, parachains_heads, parachain_heads_proof) diff --git a/bridges/modules/parachains/src/call_ext.rs b/bridges/modules/parachains/src/call_ext.rs index fe6b319205d..0f77eaf2c5a 100644 --- a/bridges/modules/parachains/src/call_ext.rs +++ b/bridges/modules/parachains/src/call_ext.rs @@ -289,7 +289,7 @@ mod tests { RuntimeCall::Parachains(crate::Call::::submit_parachain_heads_ex { at_relay_block: (num, [num as u8; 32].into()), parachains, - parachain_heads_proof: ParaHeadsProof { storage_proof: Vec::new() }, + parachain_heads_proof: ParaHeadsProof { storage_proof: Default::default() }, is_free_execution_expected: false, }) .check_obsolete_submit_parachain_heads() @@ -303,7 +303,7 @@ mod tests { RuntimeCall::Parachains(crate::Call::::submit_parachain_heads_ex { at_relay_block: (num, [num as u8; 32].into()), parachains, - parachain_heads_proof: ParaHeadsProof { storage_proof: Vec::new() }, + parachain_heads_proof: ParaHeadsProof { storage_proof: Default::default() }, is_free_execution_expected: true, }) .check_obsolete_submit_parachain_heads() diff --git a/bridges/modules/parachains/src/lib.rs b/bridges/modules/parachains/src/lib.rs index d323aef3b22..e2c30ce9aec 100644 --- a/bridges/modules/parachains/src/lib.rs +++ b/bridges/modules/parachains/src/lib.rs @@ -28,11 +28,12 @@ pub use weights::WeightInfo; pub use weights_ext::WeightInfoExt; use bp_header_chain::{HeaderChain, HeaderChainError}; -use bp_parachains::{parachain_head_storage_key_at_source, ParaInfo, ParaStoredHeaderData}; -use bp_polkadot_core::parachains::{ParaHash, ParaHead, ParaHeadsProof, ParaId}; -use bp_runtime::{Chain, HashOf, HeaderId, HeaderIdOf, Parachain, StorageProofError}; +use bp_parachains::{ParaInfo, ParaStoredHeaderData}; +use bp_polkadot_core::parachains::{ParaHash, ParaHeadsProof, ParaId}; +use bp_runtime::{Chain, HashOf, HeaderId, HeaderIdOf, Parachain}; use frame_support::{dispatch::PostDispatchInfo, DefaultNoBound}; use pallet_bridge_grandpa::SubmitFinalityProofHelper; +use proofs::{ParachainsStorageProofAdapter, StorageProofAdapter}; use sp_std::{marker::PhantomData, vec::Vec}; #[cfg(feature = "runtime-benchmarks")] @@ -55,6 +56,7 @@ pub mod benchmarking; mod call_ext; #[cfg(test)] mod mock; +mod proofs; /// The target that will be used when publishing logs related to this pallet. pub const LOG_TARGET: &str = "runtime::bridge-parachains"; @@ -448,15 +450,15 @@ pub mod pallet { parachains.len() as _, ); - let mut is_updated_something = false; - let mut storage = GrandpaPalletOf::::storage_proof_checker( - relay_block_hash, - parachain_heads_proof.storage_proof, - ) - .map_err(Error::::HeaderChainStorageProof)?; + let mut storage: ParachainsStorageProofAdapter = + ParachainsStorageProofAdapter::try_new_with_verified_storage_proof( + relay_block_hash, + parachain_heads_proof.storage_proof, + ) + .map_err(Error::::HeaderChainStorageProof)?; for (parachain, parachain_head_hash) in parachains { - let parachain_head = match Self::read_parachain_head(&mut storage, parachain) { + let parachain_head = match storage.read_parachain_head(parachain) { Ok(Some(parachain_head)) => parachain_head, Ok(None) => { log::trace!( @@ -541,7 +543,6 @@ pub mod pallet { parachain_head_hash, )?; - is_updated_something = true; if is_free { free_parachain_heads = free_parachain_heads + 1; } @@ -572,7 +573,7 @@ pub mod pallet { // => treat this as an error // // (we can throw error here, because now all our calls are transactional) - storage.ensure_no_unused_nodes().map_err(|e| { + storage.ensure_no_unused_keys().map_err(|e| { Error::::HeaderChainStorageProof(HeaderChainError::StorageProof(e)) })?; @@ -633,16 +634,6 @@ pub mod pallet { ImportedParaHeads::::get(parachain, hash).map(|h| h.into_inner()) } - /// Read parachain head from storage proof. - fn read_parachain_head( - storage: &mut bp_runtime::StorageProofChecker, - parachain: ParaId, - ) -> Result, StorageProofError> { - let parachain_head_key = - parachain_head_storage_key_at_source(T::ParasPalletName::get(), parachain); - storage.read_and_decode_value(parachain_head_key.0.as_ref()) - } - /// Try to update parachain head. pub(super) fn update_parachain_head( parachain: ParaId, @@ -801,6 +792,7 @@ impl, I: 'static, C: Parachain> HeaderChain pub fn initialize_for_benchmarks, I: 'static, PC: Parachain>( header: HeaderOf, ) { + use bp_polkadot_core::parachains::ParaHead; use bp_runtime::HeaderIdProvider; use sp_runtime::traits::Header; @@ -844,9 +836,10 @@ pub(crate) mod tests { use bp_parachains::{ BestParaHeadHash, BridgeParachainCall, ImportedParaHeadsKeyProvider, ParasInfoKeyProvider, }; + use bp_polkadot_core::parachains::ParaHead; use bp_runtime::{ BasicOperatingMode, OwnedBridgeModuleError, StorageDoubleMapKeyProvider, - StorageMapKeyProvider, + StorageMapKeyProvider, StorageProofError, }; use bp_test_utils::{ authority_list, generate_owned_bridge_module_tests, make_default_justification, diff --git a/bridges/modules/parachains/src/mock.rs b/bridges/modules/parachains/src/mock.rs index dbb62845392..c49b5939093 100644 --- a/bridges/modules/parachains/src/mock.rs +++ b/bridges/modules/parachains/src/mock.rs @@ -23,7 +23,7 @@ use frame_support::{ use sp_runtime::{ testing::H256, traits::{BlakeTwo256, Header as HeaderT}, - MultiSignature, + MultiSignature, StateVersion, }; use crate as pallet_bridge_parachains; @@ -60,6 +60,8 @@ impl Chain for Parachain1 { type Nonce = u64; type Signature = MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { 0 } @@ -87,6 +89,8 @@ impl Chain for Parachain2 { type Nonce = u64; type Signature = MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { 0 } @@ -114,6 +118,8 @@ impl Chain for Parachain3 { type Nonce = u64; type Signature = MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { 0 } @@ -142,6 +148,8 @@ impl Chain for BigParachain { type Nonce = u64; type Signature = MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { 0 } @@ -222,7 +230,7 @@ impl pallet_bridge_parachains::benchmarking::Config<()> for TestRuntime { fn prepare_parachain_heads_proof( parachains: &[ParaId], _parachain_head_size: u32, - _proof_size: bp_runtime::StorageProofSize, + _proof_params: bp_runtime::UnverifiedStorageProofParams, ) -> ( crate::RelayBlockNumber, crate::RelayBlockHash, @@ -256,38 +264,7 @@ impl Chain for TestBridgedChain { type Nonce = u32; type Signature = sp_runtime::testing::TestSignature; - fn max_extrinsic_size() -> u32 { - unreachable!() - } - - fn max_extrinsic_weight() -> Weight { - unreachable!() - } -} - -impl ChainWithGrandpa for TestBridgedChain { - const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = ""; - const MAX_AUTHORITIES_COUNT: u32 = 16; - const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 8; - const MAX_MANDATORY_HEADER_SIZE: u32 = 256; - const AVERAGE_HEADER_SIZE: u32 = 64; -} - -#[derive(Debug)] -pub struct OtherBridgedChain; - -impl Chain for OtherBridgedChain { - const ID: ChainId = *b"obch"; - - type BlockNumber = u64; - type Hash = crate::RelayBlockHash; - type Hasher = crate::RelayBlockHasher; - type Header = sp_runtime::generic::Header; - - type AccountId = AccountId; - type Balance = u32; - type Nonce = u32; - type Signature = sp_runtime::testing::TestSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; fn max_extrinsic_size() -> u32 { unreachable!() @@ -298,7 +275,7 @@ impl Chain for OtherBridgedChain { } } -impl ChainWithGrandpa for OtherBridgedChain { +impl ChainWithGrandpa for TestBridgedChain { const WITH_CHAIN_GRANDPA_PALLET_NAME: &'static str = ""; const MAX_AUTHORITIES_COUNT: u32 = 16; const REASONABLE_HEADERS_IN_JUSTIFICATION_ANCESTRY: u32 = 8; diff --git a/bridges/modules/parachains/src/proofs.rs b/bridges/modules/parachains/src/proofs.rs new file mode 100644 index 00000000000..dcf22229f34 --- /dev/null +++ b/bridges/modules/parachains/src/proofs.rs @@ -0,0 +1,81 @@ +// Copyright 2019-2021 Parity Technologies (UK) Ltd. +// This file is part of Parity Bridges Common. + +// Parity Bridges Common 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. + +// Parity Bridges Common 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 Parity Bridges Common. If not, see . + +//! Tools for parachain head proof verification. + +use crate::{Config, GrandpaPalletOf, RelayBlockHash, RelayBlockHasher}; +use bp_header_chain::{HeaderChain, HeaderChainError}; +use bp_parachains::parachain_head_storage_key_at_source; +use bp_polkadot_core::parachains::{ParaHead, ParaId}; +use bp_runtime::{RawStorageProof, StorageProofChecker, StorageProofError}; +use codec::Decode; +use frame_support::traits::Get; + +/// Abstraction over storage proof manipulation, hiding implementation details of actual storage +/// proofs. +pub trait StorageProofAdapter, I: 'static> { + /// Read and decode optional value from the proof. + fn read_and_decode_optional_value( + &mut self, + key: &impl AsRef<[u8]>, + ) -> Result, StorageProofError>; + + /// Checks if each key was read. + fn ensure_no_unused_keys(self) -> Result<(), StorageProofError>; + + /// Read parachain head from storage proof. + fn read_parachain_head( + &mut self, + parachain: ParaId, + ) -> Result, StorageProofError> { + let parachain_head_key = + parachain_head_storage_key_at_source(T::ParasPalletName::get(), parachain); + self.read_and_decode_optional_value(¶chain_head_key) + } +} + +/// Actual storage proof adapter for parachain proofs. +pub type ParachainsStorageProofAdapter = RawStorageProofAdapter; + +/// A `StorageProofAdapter` implementation for raw storage proofs. +pub struct RawStorageProofAdapter, I: 'static> { + storage: StorageProofChecker, + _dummy: sp_std::marker::PhantomData<(T, I)>, +} + +impl, I: 'static> RawStorageProofAdapter { + /// Try to create a new instance of `RawStorageProofAdapter`. + pub fn try_new_with_verified_storage_proof( + relay_block_hash: RelayBlockHash, + storage_proof: RawStorageProof, + ) -> Result { + GrandpaPalletOf::::verify_storage_proof(relay_block_hash, storage_proof) + .map(|storage| RawStorageProofAdapter:: { storage, _dummy: Default::default() }) + } +} + +impl, I: 'static> StorageProofAdapter for RawStorageProofAdapter { + fn read_and_decode_optional_value( + &mut self, + key: &impl AsRef<[u8]>, + ) -> Result, StorageProofError> { + self.storage.read_and_decode_opt_value(key.as_ref()) + } + + fn ensure_no_unused_keys(self) -> Result<(), StorageProofError> { + self.storage.ensure_no_unused_nodes() + } +} diff --git a/bridges/modules/parachains/src/weights.rs b/bridges/modules/parachains/src/weights.rs index abddc876894..1f92b7ff763 100644 --- a/bridges/modules/parachains/src/weights.rs +++ b/bridges/modules/parachains/src/weights.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for pallet_bridge_parachains //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-03-02, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-06-22, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `covid`, CPU: `11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz` +//! HOSTNAME: `serban-ROG-Zephyrus`, CPU: `12th Gen Intel(R) Core(TM) i7-12700H` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024 // Executed Command: @@ -86,14 +86,12 @@ impl WeightInfo for BridgeWeight { /// Some(196), added: 1681, mode: MaxEncodedLen) /// /// The range of component `p` is `[1, 2]`. - fn submit_parachain_heads_with_n_parachains(p: u32) -> Weight { + fn submit_parachain_heads_with_n_parachains(_p: u32) -> Weight { // Proof Size summary in bytes: - // Measured: `366` - // Estimated: `4648` - // Minimum execution time: 36_701 nanoseconds. - Weight::from_parts(38_597_828, 4648) - // Standard Error: 190_859 - .saturating_add(Weight::from_parts(60_685, 0).saturating_mul(p.into())) + // Measured: `302` + // Estimated: `3038` + // Minimum execution time: 30_211 nanoseconds. + Weight::from_parts(32_633_893, 3038) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -123,10 +121,10 @@ impl WeightInfo for BridgeWeight { /// Some(196), added: 1681, mode: MaxEncodedLen) fn submit_parachain_heads_with_1kb_proof() -> Weight { // Proof Size summary in bytes: - // Measured: `366` - // Estimated: `4648` - // Minimum execution time: 38_189 nanoseconds. - Weight::from_parts(39_252_000, 4648) + // Measured: `302` + // Estimated: `3038` + // Minimum execution time: 30_830 nanoseconds. + Weight::from_parts(31_801_000, 3038) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -156,10 +154,10 @@ impl WeightInfo for BridgeWeight { /// Some(196), added: 1681, mode: MaxEncodedLen) fn submit_parachain_heads_with_16kb_proof() -> Weight { // Proof Size summary in bytes: - // Measured: `366` - // Estimated: `4648` - // Minimum execution time: 62_868 nanoseconds. - Weight::from_parts(63_581_000, 4648) + // Measured: `302` + // Estimated: `3038` + // Minimum execution time: 44_736 nanoseconds. + Weight::from_parts(45_296_000, 3038) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -193,14 +191,12 @@ impl WeightInfo for () { /// Some(196), added: 1681, mode: MaxEncodedLen) /// /// The range of component `p` is `[1, 2]`. - fn submit_parachain_heads_with_n_parachains(p: u32) -> Weight { + fn submit_parachain_heads_with_n_parachains(_p: u32) -> Weight { // Proof Size summary in bytes: - // Measured: `366` - // Estimated: `4648` - // Minimum execution time: 36_701 nanoseconds. - Weight::from_parts(38_597_828, 4648) - // Standard Error: 190_859 - .saturating_add(Weight::from_parts(60_685, 0).saturating_mul(p.into())) + // Measured: `302` + // Estimated: `3038` + // Minimum execution time: 30_211 nanoseconds. + Weight::from_parts(32_633_893, 3038) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -230,10 +226,10 @@ impl WeightInfo for () { /// Some(196), added: 1681, mode: MaxEncodedLen) fn submit_parachain_heads_with_1kb_proof() -> Weight { // Proof Size summary in bytes: - // Measured: `366` - // Estimated: `4648` - // Minimum execution time: 38_189 nanoseconds. - Weight::from_parts(39_252_000, 4648) + // Measured: `302` + // Estimated: `3038` + // Minimum execution time: 30_830 nanoseconds. + Weight::from_parts(31_801_000, 3038) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -263,10 +259,10 @@ impl WeightInfo for () { /// Some(196), added: 1681, mode: MaxEncodedLen) fn submit_parachain_heads_with_16kb_proof() -> Weight { // Proof Size summary in bytes: - // Measured: `366` - // Estimated: `4648` - // Minimum execution time: 62_868 nanoseconds. - Weight::from_parts(63_581_000, 4648) + // Measured: `302` + // Estimated: `3038` + // Minimum execution time: 44_736 nanoseconds. + Weight::from_parts(45_296_000, 3038) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } diff --git a/bridges/modules/relayers/src/payment_adapter.rs b/bridges/modules/relayers/src/payment_adapter.rs index b2d9c676bdd..f75c409aca4 100644 --- a/bridges/modules/relayers/src/payment_adapter.rs +++ b/bridges/modules/relayers/src/payment_adapter.rs @@ -23,6 +23,7 @@ use bp_messages::{ LaneId, MessageNonce, }; use bp_relayers::{RewardsAccountOwner, RewardsAccountParams}; +use bp_runtime::Chain; use frame_support::{sp_runtime::SaturatedConversion, traits::Get}; use sp_arithmetic::traits::{Saturating, Zero}; use sp_std::{collections::vec_deque::VecDeque, marker::PhantomData, ops::RangeInclusive}; @@ -57,7 +58,7 @@ where relayers_rewards, RewardsAccountParams::new( lane_id, - T::BridgedChainId::get(), + T::BridgedChain::ID, RewardsAccountOwner::BridgedChain, ), DeliveryReward::get(), diff --git a/bridges/modules/xcm-bridge-hub/src/mock.rs b/bridges/modules/xcm-bridge-hub/src/mock.rs index 4c09bce56d7..df72e7a3c4f 100644 --- a/bridges/modules/xcm-bridge-hub/src/mock.rs +++ b/bridges/modules/xcm-bridge-hub/src/mock.rs @@ -20,23 +20,17 @@ use crate as pallet_xcm_bridge_hub; use bp_messages::{ target_chain::{DispatchMessage, MessageDispatch}, - LaneId, -}; -use bp_runtime::{messages::MessageDispatchResult, Chain, ChainId, UnderlyingChainProvider}; -use bridge_runtime_common::{ - messages::{ - source::TargetHeaderChainAdapter, target::SourceHeaderChainAdapter, - BridgedChainWithMessages, HashOf, MessageBridge, ThisChainWithMessages, - }, - messages_xcm_extension::{SenderAndLane, XcmBlobHauler}, + ChainWithMessages, LaneId, MessageNonce, }; +use bp_runtime::{messages::MessageDispatchResult, Chain, ChainId, HashOf}; +use bridge_runtime_common::messages_xcm_extension::{SenderAndLane, XcmBlobHauler}; use codec::Encode; -use frame_support::{derive_impl, parameter_types, traits::ConstU32, weights::RuntimeDbWeight}; +use frame_support::{derive_impl, parameter_types, weights::RuntimeDbWeight}; use sp_core::H256; use sp_runtime::{ testing::Header as SubstrateHeader, traits::{BlakeTwo256, IdentityLookup}, - AccountId32, BuildStorage, + AccountId32, BuildStorage, StateVersion, }; use xcm::prelude::*; @@ -85,20 +79,17 @@ impl pallet_bridge_messages::Config for TestRuntime { type RuntimeEvent = RuntimeEvent; type WeightInfo = TestMessagesWeights; - type BridgedChainId = (); type ActiveOutboundLanes = ActiveOutboundLanes; - type MaxUnrewardedRelayerEntriesAtInboundLane = (); - type MaxUnconfirmedMessagesAtInboundLane = (); - type MaximalOutboundPayloadSize = ConstU32<2048>; type OutboundPayload = Vec; type InboundPayload = Vec; - type InboundRelayer = (); type DeliveryPayments = (); - type TargetHeaderChain = TargetHeaderChainAdapter; type DeliveryConfirmationPayments = (); type OnMessagesDelivered = (); - type SourceHeaderChain = SourceHeaderChainAdapter; type MessageDispatch = TestMessageDispatch; + + type ThisChain = ThisUnderlyingChain; + type BridgedChain = BridgedUnderlyingChain; + type BridgedHeaderChain = BridgedHeaderChain; } pub struct TestMessagesWeights; @@ -107,34 +98,27 @@ impl pallet_bridge_messages::WeightInfo for TestMessagesWeights { fn receive_single_message_proof() -> Weight { Weight::zero() } - fn receive_single_message_proof_with_outbound_lane_state() -> Weight { + fn receive_n_messages_proof(_: u32) -> Weight { Weight::zero() } - fn receive_delivery_proof_for_single_message() -> Weight { + fn receive_single_message_proof_with_outbound_lane_state() -> Weight { Weight::zero() } - fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight { + fn receive_single_n_bytes_message_proof(_: u32) -> Weight { Weight::zero() } - fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight { + fn receive_delivery_proof_for_single_message() -> Weight { Weight::zero() } - - fn receive_two_messages_proof() -> Weight { + fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight { Weight::zero() } - - fn receive_single_message_proof_1_kb() -> Weight { + fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight { Weight::zero() } - - fn receive_single_message_proof_16_kb() -> Weight { + fn receive_single_n_bytes_message_proof_with_dispatch(_: u32) -> Weight { Weight::zero() } - - fn receive_single_message_proof_with_dispatch(_: u32) -> Weight { - Weight::from_parts(1, 0) - } } impl pallet_bridge_messages::WeightInfoExt for TestMessagesWeights { @@ -198,9 +182,9 @@ impl XcmBlobHauler for TestXcmBlobHauler { type UncongestedMessage = (); } -pub struct ThisChain; +pub struct ThisUnderlyingChain; -impl Chain for ThisChain { +impl Chain for ThisUnderlyingChain { const ID: ChainId = *b"tuch"; type BlockNumber = u64; type Hash = H256; @@ -211,6 +195,8 @@ impl Chain for ThisChain { type Nonce = u64; type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { u32::MAX } @@ -220,12 +206,19 @@ impl Chain for ThisChain { } } -pub struct BridgedChain; +impl ChainWithMessages for ThisUnderlyingChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = ""; + + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 1000; +} + +pub struct BridgedUnderlyingChain; pub type BridgedHeaderHash = H256; pub type BridgedChainHeader = SubstrateHeader; -impl Chain for BridgedChain { - const ID: ChainId = *b"tuch"; +impl Chain for BridgedUnderlyingChain { + const ID: ChainId = *b"bgdc"; type BlockNumber = u64; type Hash = BridgedHeaderHash; type Hasher = BlakeTwo256; @@ -235,6 +228,8 @@ impl Chain for BridgedChain { type Nonce = u64; type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { 4096 } @@ -244,6 +239,12 @@ impl Chain for BridgedChain { } } +impl ChainWithMessages for BridgedUnderlyingChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = ""; + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 1000; +} + /// Test message dispatcher. pub struct TestMessageDispatch; @@ -272,42 +273,15 @@ impl MessageDispatch for TestMessageDispatch { } } -pub struct WrappedThisChain; -impl UnderlyingChainProvider for WrappedThisChain { - type Chain = ThisChain; -} -impl ThisChainWithMessages for WrappedThisChain { - type RuntimeOrigin = RuntimeOrigin; -} - -pub struct WrappedBridgedChain; -impl UnderlyingChainProvider for WrappedBridgedChain { - type Chain = BridgedChain; -} -impl BridgedChainWithMessages for WrappedBridgedChain {} - pub struct BridgedHeaderChain; -impl bp_header_chain::HeaderChain for BridgedHeaderChain { +impl bp_header_chain::HeaderChain for BridgedHeaderChain { fn finalized_header_state_root( - _hash: HashOf, - ) -> Option> { + _hash: HashOf, + ) -> Option> { unreachable!() } } -/// Bridge that is deployed on `ThisChain` and allows sending/receiving messages to/from -/// `BridgedChain`. -#[derive(Debug, PartialEq, Eq)] -pub struct OnThisChainBridge; - -impl MessageBridge for OnThisChainBridge { - const BRIDGED_MESSAGES_PALLET_NAME: &'static str = ""; - - type ThisChain = WrappedThisChain; - type BridgedChain = WrappedBridgedChain; - type BridgedHeaderChain = BridgedHeaderChain; -} - /// Run pallet test. pub fn run_test(test: impl FnOnce() -> T) -> T { sp_io::TestExternalities::new( diff --git a/bridges/primitives/header-chain/src/lib.rs b/bridges/primitives/header-chain/src/lib.rs index af2afb65a26..26295dee180 100644 --- a/bridges/primitives/header-chain/src/lib.rs +++ b/bridges/primitives/header-chain/src/lib.rs @@ -46,7 +46,7 @@ pub mod storage_keys; pub enum HeaderChainError { /// Header with given hash is missing from the chain. UnknownHeader, - /// Storage proof related error. + /// Error generated by the `storage_proof` module. StorageProof(StorageProofError), } @@ -78,8 +78,9 @@ impl StoredHeaderDataBuilder for H { pub trait HeaderChain { /// Returns state (storage) root of given finalized header. fn finalized_header_state_root(header_hash: HashOf) -> Option>; + /// Get storage proof checker using finalized header. - fn storage_proof_checker( + fn verify_storage_proof( header_hash: HashOf, storage_proof: RawStorageProof, ) -> Result>, HeaderChainError> { @@ -409,7 +410,9 @@ mod tests { use super::*; use bp_runtime::ChainId; use frame_support::weights::Weight; - use sp_runtime::{testing::H256, traits::BlakeTwo256, DigestItem, MultiSignature}; + use sp_runtime::{ + testing::H256, traits::BlakeTwo256, DigestItem, MultiSignature, StateVersion, + }; struct TestChain; @@ -425,6 +428,8 @@ mod tests { type Nonce = u64; type Signature = MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { 0 } diff --git a/bridges/primitives/messages/src/lib.rs b/bridges/primitives/messages/src/lib.rs index c3f79b3ee38..9984f8ac322 100644 --- a/bridges/primitives/messages/src/lib.rs +++ b/bridges/primitives/messages/src/lib.rs @@ -38,6 +38,9 @@ pub mod source_chain; pub mod storage_keys; pub mod target_chain; +/// Hard limit on message size that can be sent over the bridge. +pub const HARD_MESSAGE_SIZE_LIMIT: u32 = 64 * 1024; + /// Substrate-based chain with messaging support. pub trait ChainWithMessages: Chain { /// Name of the bridge messages pallet (used in `construct_runtime` macro call) that is @@ -48,11 +51,63 @@ pub trait ChainWithMessages: Chain { const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str; /// Maximal number of unrewarded relayers in a single confirmation transaction at this - /// `ChainWithMessages`. + /// `ChainWithMessages`. Unrewarded means that the relayer has delivered messages, but + /// either confirmations haven't been delivered back to the source chain, or we haven't + /// received reward confirmations yet. + /// + /// This constant limits maximal number of entries in the `InboundLaneData::relayers`. Keep + /// in mind that the same relayer account may take several (non-consecutive) entries in this + /// set. const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce; /// Maximal number of unconfirmed messages in a single confirmation transaction at this - /// `ChainWithMessages`. + /// `ChainWithMessages`. Unconfirmed means that the + /// message has been delivered, but either confirmations haven't been delivered back to the + /// source chain, or we haven't received reward confirmations for these messages yet. + /// + /// This constant limits difference between last message from last entry of the + /// `InboundLaneData::relayers` and first message at the first entry. + /// + /// There is no point of making this parameter lesser than + /// `MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX`, because then maximal number of relayer entries + /// will be limited by maximal number of messages. + /// + /// This value also represents maximal number of messages in single delivery transaction. + /// Transaction that is declaring more messages than this value, will be rejected. Even if + /// these messages are from different lanes. const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce; + + /// Return maximal dispatch weight of the message we're able to receive. + fn maximal_incoming_message_dispatch_weight() -> Weight { + // we leave 1/2 of `max_extrinsic_weight` for the delivery transaction itself + Self::max_extrinsic_weight() / 2 + } + + /// Return maximal size of the message we're able to receive. + fn maximal_incoming_message_size() -> u32 { + maximal_incoming_message_size(Self::max_extrinsic_size()) + } +} + +/// Return maximal size of the message the chain with `max_extrinsic_size` is able to receive. +pub fn maximal_incoming_message_size(max_extrinsic_size: u32) -> u32 { + // The maximal size of extrinsic at Substrate-based chain depends on the + // `frame_system::Config::MaximumBlockLength` and + // `frame_system::Config::AvailableBlockRatio` constants. This check is here to be sure that + // the lane won't stuck because message is too large to fit into delivery transaction. + // + // **IMPORTANT NOTE**: the delivery transaction contains storage proof of the message, not + // the message itself. The proof is always larger than the message. But unless chain state + // is enormously large, it should be several dozens/hundreds of bytes. The delivery + // transaction also contains signatures and signed extensions. Because of this, we reserve + // 1/3 of the the maximal extrinsic size for this data. + // + // **ANOTHER IMPORTANT NOTE**: large message means not only larger proofs and heavier + // proof verification, but also heavier message decoding and dispatch. So we have a hard + // limit of `64Kb`, which in practice limits the message size on all chains. Without this + // limit the **weight** (not the size) of the message will be higher than the + // `Self::maximal_incoming_message_dispatch_weight()`. + + sp_std::cmp::min(max_extrinsic_size / 3 * 2, HARD_MESSAGE_SIZE_LIMIT) } impl ChainWithMessages for T @@ -112,7 +167,19 @@ impl OperatingMode for MessagesOperatingMode { /// Lane id which implements `TypeId`. #[derive( - Clone, Copy, Decode, Default, Encode, Eq, Ord, PartialOrd, PartialEq, TypeInfo, MaxEncodedLen, + Clone, + Copy, + Decode, + Default, + Encode, + Eq, + Ord, + PartialOrd, + PartialEq, + TypeInfo, + MaxEncodedLen, + Serialize, + Deserialize, )] pub struct LaneId(pub [u8; 4]); @@ -435,7 +502,7 @@ where AccountId: sp_std::cmp::Ord, { // remember to reward relayers that have delivered messages - // this loop is bounded by `T::MaxUnrewardedRelayerEntriesAtInboundLane` on the bridged chain + // this loop is bounded by `T::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX` on the bridged chain let mut relayers_rewards = RelayersRewards::new(); for entry in messages_relayers { let nonce_begin = sp_std::cmp::max(entry.messages.begin, *received_range.start()); @@ -486,11 +553,11 @@ pub enum VerificationError { InvalidMessageWeight, /// Declared messages count doesn't match actual value. MessagesCountMismatch, - /// Error returned while reading/decoding message data from the storage proof. + /// Error returned while reading/decoding message data from the `VerifiedStorageProof`. MessageStorage(StorageProofError), /// The message is too large. MessageTooLarge, - /// Error returned while reading/decoding outbound lane data from the storage proof. + /// Error returned while reading/decoding outbound lane data from the `VerifiedStorageProof`. OutboundLaneStorage(StorageProofError), /// Storage proof related error. StorageProof(StorageProofError), diff --git a/bridges/primitives/messages/src/source_chain.rs b/bridges/primitives/messages/src/source_chain.rs index f4aefd97355..64f015bdb82 100644 --- a/bridges/primitives/messages/src/source_chain.rs +++ b/bridges/primitives/messages/src/source_chain.rs @@ -16,11 +16,11 @@ //! Primitives of messages module, that are used on the source chain. -use crate::{InboundLaneData, LaneId, MessageNonce, VerificationError}; +use crate::{LaneId, MessageNonce, UnrewardedRelayer}; -use crate::UnrewardedRelayer; -use bp_runtime::Size; -use frame_support::Parameter; +use bp_runtime::{raw_storage_proof_size, RawStorageProof, Size}; +use codec::{Decode, Encode}; +use scale_info::TypeInfo; use sp_core::RuntimeDebug; use sp_std::{ collections::{btree_map::BTreeMap, vec_deque::VecDeque}, @@ -28,42 +28,36 @@ use sp_std::{ ops::RangeInclusive, }; -/// Number of messages, delivered by relayers. -pub type RelayersRewards = BTreeMap; - -/// Target chain API. Used by source chain to verify target chain proofs. +/// Messages delivery proof from the bridged chain. /// -/// All implementations of this trait should only work with finalized data that -/// can't change. Wrong implementation may lead to invalid lane states (i.e. lane -/// that's stuck) and/or processing messages without paying fees. +/// It contains everything required to prove that our (this chain) messages have been +/// delivered to the bridged (target) chain: /// -/// The `Payload` type here means the payload of the message that is sent from the -/// source chain to the target chain. The `AccountId` type here means the account -/// type used by the source chain. -pub trait TargetHeaderChain { - /// Proof that messages have been received by target chain. - type MessagesDeliveryProof: Parameter + Size; - - /// Verify message payload before we accept it. - /// - /// **CAUTION**: this is very important function. Incorrect implementation may lead - /// to stuck lanes and/or relayers loses. - /// - /// The proper implementation must ensure that the delivery-transaction with this - /// payload would (at least) be accepted into target chain transaction pool AND - /// eventually will be successfully mined. The most obvious incorrect implementation - /// example would be implementation for BTC chain that accepts payloads larger than - /// 1MB. BTC nodes aren't accepting transactions that are larger than 1MB, so relayer - /// will be unable to craft valid transaction => this (and all subsequent) messages will - /// never be delivered. - fn verify_message(payload: &Payload) -> Result<(), VerificationError>; - - /// Verify messages delivery proof and return lane && nonce of the latest received message. - fn verify_messages_delivery_proof( - proof: Self::MessagesDeliveryProof, - ) -> Result<(LaneId, InboundLaneData), VerificationError>; +/// - hash of finalized header; +/// +/// - storage proof of the inbound lane state; +/// +/// - lane id. +#[derive(Clone, Decode, Encode, Eq, PartialEq, RuntimeDebug, TypeInfo)] +pub struct FromBridgedChainMessagesDeliveryProof { + /// Hash of the bridge header the proof is for. + pub bridged_header_hash: BridgedHeaderHash, + /// Storage trie proof generated for [`Self::bridged_header_hash`]. + pub storage_proof: RawStorageProof, + /// Lane id of which messages were delivered and the proof is for. + pub lane: LaneId, +} + +impl Size for FromBridgedChainMessagesDeliveryProof { + fn size(&self) -> u32 { + use frame_support::sp_runtime::SaturatedConversion; + raw_storage_proof_size(&self.storage_proof).saturated_into() + } } +/// Number of messages, delivered by relayers. +pub type RelayersRewards = BTreeMap; + /// Manages payments that are happening at the source chain during delivery confirmation /// transaction. pub trait DeliveryConfirmationPayments { @@ -143,28 +137,10 @@ pub trait MessagesBridge { fn send_message(message: Self::SendMessageArgs) -> SendMessageArtifacts; } -/// Structure that may be used in place of `TargetHeaderChain` and -/// `MessageDeliveryAndDispatchPayment` on chains, where outbound messages are forbidden. +/// Structure that may be used in place `MessageDeliveryAndDispatchPayment` on chains, +/// where outbound messages are forbidden. pub struct ForbidOutboundMessages; -/// Error message that is used in `ForbidOutboundMessages` implementation. -const ALL_OUTBOUND_MESSAGES_REJECTED: &str = - "This chain is configured to reject all outbound messages"; - -impl TargetHeaderChain for ForbidOutboundMessages { - type MessagesDeliveryProof = (); - - fn verify_message(_payload: &Payload) -> Result<(), VerificationError> { - Err(VerificationError::Other(ALL_OUTBOUND_MESSAGES_REJECTED)) - } - - fn verify_messages_delivery_proof( - _proof: Self::MessagesDeliveryProof, - ) -> Result<(LaneId, InboundLaneData), VerificationError> { - Err(VerificationError::Other(ALL_OUTBOUND_MESSAGES_REJECTED)) - } -} - impl DeliveryConfirmationPayments for ForbidOutboundMessages { type Error = &'static str; diff --git a/bridges/primitives/messages/src/target_chain.rs b/bridges/primitives/messages/src/target_chain.rs index 388ce16ccdc..74fecb9d9f0 100644 --- a/bridges/primitives/messages/src/target_chain.rs +++ b/bridges/primitives/messages/src/target_chain.rs @@ -16,17 +16,48 @@ //! Primitives of messages module, that are used on the target chain. -use crate::{ - LaneId, Message, MessageKey, MessageNonce, MessagePayload, OutboundLaneData, VerificationError, -}; +use crate::{LaneId, Message, MessageKey, MessageNonce, MessagePayload, OutboundLaneData}; -use bp_runtime::{messages::MessageDispatchResult, Size}; +use bp_runtime::{messages::MessageDispatchResult, raw_storage_proof_size, RawStorageProof, Size}; use codec::{Decode, Encode, Error as CodecError}; -use frame_support::{weights::Weight, Parameter}; +use frame_support::weights::Weight; use scale_info::TypeInfo; use sp_core::RuntimeDebug; use sp_std::{collections::btree_map::BTreeMap, fmt::Debug, marker::PhantomData, prelude::*}; +/// Messages proof from bridged chain. +/// +/// It contains everything required to prove that bridged (source) chain has +/// sent us some messages: +/// +/// - hash of finalized header; +/// +/// - storage proof of messages and (optionally) outbound lane state; +/// +/// - lane id; +/// +/// - nonces (inclusive range) of messages which are included in this proof. +#[derive(Clone, Decode, Encode, Eq, PartialEq, RuntimeDebug, TypeInfo)] +pub struct FromBridgedChainMessagesProof { + /// Hash of the finalized bridged header the proof is for. + pub bridged_header_hash: BridgedHeaderHash, + /// A storage trie proof of messages being delivered. + pub storage_proof: RawStorageProof, + /// Messages in this proof are sent over this lane. + pub lane: LaneId, + /// Nonce of the first message being delivered. + pub nonces_start: MessageNonce, + /// Nonce of the last message being delivered. + pub nonces_end: MessageNonce, +} + +impl Size for FromBridgedChainMessagesProof { + fn size(&self) -> u32 { + use frame_support::sp_runtime::SaturatedConversion; + raw_storage_proof_size(&self.storage_proof).saturated_into() + } +} + /// Proved messages from the source chain. pub type ProvedMessages = BTreeMap>; @@ -55,33 +86,6 @@ pub struct DispatchMessage { pub data: DispatchMessageData, } -/// Source chain API. Used by target chain, to verify source chain proofs. -/// -/// All implementations of this trait should only work with finalized data that -/// can't change. Wrong implementation may lead to invalid lane states (i.e. lane -/// that's stuck) and/or processing messages without paying fees. -pub trait SourceHeaderChain { - /// Proof that messages are sent from source chain. This may also include proof - /// of corresponding outbound lane states. - type MessagesProof: Parameter + Size; - - /// Verify messages proof and return proved messages. - /// - /// Returns error if either proof is incorrect, or the number of messages in the proof - /// is not matching the `messages_count`. - /// - /// Messages vector is required to be sorted by nonce within each lane. Out-of-order - /// messages will be rejected. - /// - /// The `messages_count` argument verification (sane limits) is supposed to be made - /// outside this function. This function only verifies that the proof declares exactly - /// `messages_count` messages. - fn verify_messages_proof( - proof: Self::MessagesProof, - messages_count: u32, - ) -> Result, VerificationError>; -} - /// Called when inbound message is received. pub trait MessageDispatch { /// Decoded message payload type. Valid message may contain invalid payload. In this case @@ -167,32 +171,11 @@ impl DeliveryPayments for () { } } -/// Structure that may be used in place of `SourceHeaderChain` and `MessageDispatch` on chains, +/// Structure that may be used in place of `MessageDispatch` on chains, /// where inbound messages are forbidden. -pub struct ForbidInboundMessages( - PhantomData<(MessagesProof, DispatchPayload)>, -); - -/// Error message that is used in `ForbidInboundMessages` implementation. -const ALL_INBOUND_MESSAGES_REJECTED: &str = - "This chain is configured to reject all inbound messages"; - -impl SourceHeaderChain - for ForbidInboundMessages -{ - type MessagesProof = MessagesProof; - - fn verify_messages_proof( - _proof: Self::MessagesProof, - _messages_count: u32, - ) -> Result, VerificationError> { - Err(VerificationError::Other(ALL_INBOUND_MESSAGES_REJECTED)) - } -} +pub struct ForbidInboundMessages(PhantomData); -impl MessageDispatch - for ForbidInboundMessages -{ +impl MessageDispatch for ForbidInboundMessages { type DispatchPayload = DispatchPayload; type DispatchLevelResult = (); diff --git a/bridges/primitives/polkadot-core/src/parachains.rs b/bridges/primitives/polkadot-core/src/parachains.rs index 433cd2845ab..d54ee108386 100644 --- a/bridges/primitives/polkadot-core/src/parachains.rs +++ b/bridges/primitives/polkadot-core/src/parachains.rs @@ -22,7 +22,7 @@ //! parachains. Having pallets that are referencing polkadot, would mean that there may //! be two versions of polkadot crates included in the runtime. Which is bad. -use bp_runtime::{RawStorageProof, Size}; +use bp_runtime::{raw_storage_proof_size, RawStorageProof, Size}; use codec::{CompactAs, Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use sp_core::Hasher; @@ -96,11 +96,7 @@ pub struct ParaHeadsProof { impl Size for ParaHeadsProof { fn size(&self) -> u32 { - u32::try_from( - self.storage_proof - .iter() - .fold(0usize, |sum, node| sum.saturating_add(node.len())), - ) - .unwrap_or(u32::MAX) + use frame_support::sp_runtime::SaturatedConversion; + raw_storage_proof_size(&self.storage_proof).saturated_into() } } diff --git a/bridges/primitives/runtime/Cargo.toml b/bridges/primitives/runtime/Cargo.toml index 5fa35e68899..117409b37b9 100644 --- a/bridges/primitives/runtime/Cargo.toml +++ b/bridges/primitives/runtime/Cargo.toml @@ -53,3 +53,4 @@ std = [ "sp-trie/std", "trie-db/std", ] +test-helpers = [] diff --git a/bridges/primitives/runtime/src/chain.rs b/bridges/primitives/runtime/src/chain.rs index 369386e41b0..0db4eac79a7 100644 --- a/bridges/primitives/runtime/src/chain.rs +++ b/bridges/primitives/runtime/src/chain.rs @@ -24,7 +24,7 @@ use sp_runtime::{ AtLeast32Bit, AtLeast32BitUnsigned, Hash as HashT, Header as HeaderT, MaybeDisplay, MaybeSerialize, MaybeSerializeDeserialize, Member, SimpleBitOps, Verify, }, - FixedPointOperand, + FixedPointOperand, StateVersion, }; use sp_std::{fmt::Debug, hash::Hash, str::FromStr, vec, vec::Vec}; @@ -196,6 +196,10 @@ pub trait Chain: Send + Sync + 'static { /// Signature type, used on this chain. type Signature: Parameter + Verify; + /// Version of the state implementation used by this chain. This is directly related with the + /// `TrieLayout` configuration used by the storage. + const STATE_VERSION: StateVersion; + /// Get the maximum size (in bytes) of a Normal extrinsic at this chain. fn max_extrinsic_size() -> u32; /// Get the maximum weight (compute time) that a Normal extrinsic at this chain can use. @@ -223,6 +227,8 @@ where type Nonce = ::Nonce; type Signature = ::Signature; + const STATE_VERSION: StateVersion = ::STATE_VERSION; + fn max_extrinsic_size() -> u32 { ::max_extrinsic_size() } diff --git a/bridges/primitives/runtime/src/lib.rs b/bridges/primitives/runtime/src/lib.rs index d13c9b40efa..8f5040ad9a1 100644 --- a/bridges/primitives/runtime/src/lib.rs +++ b/bridges/primitives/runtime/src/lib.rs @@ -40,15 +40,18 @@ pub use chain::{ }; pub use frame_support::storage::storage_prefix as storage_value_final_key; use num_traits::{CheckedAdd, CheckedSub, One, SaturatingAdd, Zero}; +#[cfg(feature = "std")] +pub use storage_proof::craft_valid_storage_proof; +#[cfg(feature = "test-helpers")] pub use storage_proof::{ - record_all_keys as record_all_trie_keys, Error as StorageProofError, - ProofSize as StorageProofSize, RawStorageProof, StorageProofChecker, + grow_storage_proof, grow_storage_value, record_all_keys as record_all_trie_keys, + UnverifiedStorageProofParams, +}; +pub use storage_proof::{ + raw_storage_proof_size, RawStorageProof, StorageProofChecker, StorageProofError, }; pub use storage_types::BoundedStorageValue; -#[cfg(feature = "std")] -pub use storage_proof::craft_valid_storage_proof; - pub mod extensions; pub mod messages; @@ -461,38 +464,6 @@ macro_rules! generate_static_str_provider { }; } -/// Error message that is only displayable in `std` environment. -#[derive(Encode, Decode, Clone, Eq, PartialEq, PalletError, TypeInfo)] -#[scale_info(skip_type_params(T))] -pub struct StrippableError { - _phantom_data: sp_std::marker::PhantomData, - #[codec(skip)] - #[cfg(feature = "std")] - message: String, -} - -impl From for StrippableError { - fn from(_err: T) -> Self { - Self { - _phantom_data: Default::default(), - #[cfg(feature = "std")] - message: format!("{:?}", _err), - } - } -} - -impl Debug for StrippableError { - #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { - f.write_str(&self.message) - } - - #[cfg(not(feature = "std"))] - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { - f.write_str("Stripped error") - } -} - /// A trait defining helper methods for `RangeInclusive` (start..=end) pub trait RangeInclusiveExt { /// Computes the length of the `RangeInclusive`, checking for underflow and overflow. diff --git a/bridges/primitives/runtime/src/storage_proof.rs b/bridges/primitives/runtime/src/storage_proof.rs index 251ceec5a9e..7bfa0d6fde0 100644 --- a/bridges/primitives/runtime/src/storage_proof.rs +++ b/bridges/primitives/runtime/src/storage_proof.rs @@ -14,34 +14,91 @@ // You should have received a copy of the GNU General Public License // along with Parity Bridges Common. If not, see . -//! Logic for checking Substrate storage proofs. +//! Logic for working with storage proofs. -use crate::StrippableError; -use codec::{Decode, Encode}; use frame_support::PalletError; -use hash_db::{HashDB, Hasher, EMPTY_PREFIX}; -use scale_info::TypeInfo; -use sp_std::{boxed::Box, vec::Vec}; -pub use sp_trie::RawStorageProof; +use sp_core::RuntimeDebug; +use sp_std::{default::Default, vec::Vec}; use sp_trie::{ - accessed_nodes_tracker::{AccessedNodesTracker, Error as AccessedNodesTrackerError}, - read_trie_value, - recorder_ext::RecorderExt, - LayoutV1, MemoryDB, Recorder, StorageProof, StorageProofError, Trie, TrieConfiguration, - TrieDBBuilder, TrieError, TrieHash, + accessed_nodes_tracker::AccessedNodesTracker, read_trie_value, LayoutV1, MemoryDB, StorageProof, }; -/// Storage proof size requirements. +use codec::{Decode, Encode}; +use hash_db::{HashDB, Hasher, EMPTY_PREFIX}; +use scale_info::TypeInfo; +#[cfg(feature = "test-helpers")] +use sp_trie::{recorder_ext::RecorderExt, Recorder, TrieDBBuilder, TrieError, TrieHash}; +#[cfg(feature = "test-helpers")] +use trie_db::{Trie, TrieConfiguration, TrieDBMut}; + +/// Errors that can occur when interacting with `UnverifiedStorageProof` and `VerifiedStorageProof`. +#[derive(Clone, Encode, Decode, RuntimeDebug, PartialEq, Eq, PalletError, TypeInfo)] +pub enum StorageProofError { + /// Call to `generate_trie_proof()` failed. + UnableToGenerateTrieProof, + /// Call to `verify_trie_proof()` failed. + InvalidProof, + /// The `Vec` entries weren't sorted as expected. + UnsortedEntries, + /// The provided key wasn't found. + UnavailableKey, + /// The value associated to the provided key is `None`. + EmptyVal, + /// Error decoding value associated to a provided key. + DecodeError, + /// At least one key or node wasn't read. + UnusedKey, + + /// Expected storage root is missing from the proof. (for non-compact proofs) + StorageRootMismatch, + /// Unable to reach expected storage value using provided trie nodes. (for non-compact proofs) + StorageValueUnavailable, + /// The proof contains duplicate nodes. (for non-compact proofs) + DuplicateNodes, +} + +impl From for StorageProofError { + fn from(e: sp_trie::StorageProofError) -> Self { + match e { + sp_trie::StorageProofError::DuplicateNodes => StorageProofError::DuplicateNodes, + } + } +} + +impl From for StorageProofError { + fn from(e: sp_trie::accessed_nodes_tracker::Error) -> Self { + match e { + sp_trie::accessed_nodes_tracker::Error::UnusedNodes => StorageProofError::UnusedKey, + } + } +} + +/// Raw storage proof type (just raw trie nodes). +pub type RawStorageProof = sp_trie::RawStorageProof; + +/// Calculates size for `RawStorageProof`. +pub fn raw_storage_proof_size(raw_storage_proof: &RawStorageProof) -> usize { + raw_storage_proof + .iter() + .fold(0usize, |sum, node| sum.saturating_add(node.len())) +} + +/// Storage values size requirements. /// /// This is currently used by benchmarks when generating storage proofs. -#[derive(Clone, Copy, Debug)] -pub enum ProofSize { - /// The proof is expected to be minimal. If value size may be changed, then it is expected to - /// have given size. - Minimal(u32), - /// The proof is expected to have at least given size and grow by increasing value that is - /// stored in the trie. - HasLargeLeaf(u32), +#[cfg(feature = "test-helpers")] +#[derive(Clone, Copy, Debug, Default)] +pub struct UnverifiedStorageProofParams { + /// Expected storage proof size in bytes. + pub db_size: Option, +} + +#[cfg(feature = "test-helpers")] +impl UnverifiedStorageProofParams { + /// Make storage proof parameters that require proof of at least `db_size` bytes. + pub fn from_db_size(db_size: u32) -> Self { + Self { db_size: Some(db_size) } + } } /// This struct is used to read storage values from a subset of a Merklized database. The "proof" @@ -64,15 +121,14 @@ where /// Constructs a new storage proof checker. /// /// This returns an error if the given proof is invalid with respect to the given root. - pub fn new(root: H::Out, proof: RawStorageProof) -> Result { - let proof = StorageProof::new_with_duplicate_nodes_check(proof) - .map_err(|e| Error::StorageProof(e.into()))?; + pub fn new(root: H::Out, proof: RawStorageProof) -> Result { + let proof = StorageProof::new_with_duplicate_nodes_check(proof)?; let recorder = AccessedNodesTracker::new(proof.len()); let db = proof.into_memory_db(); if !db.contains(&root, EMPTY_PREFIX) { - return Err(Error::StorageRootMismatch) + return Err(StorageProofError::StorageRootMismatch) } Ok(StorageProofChecker { root, db, accessed_nodes_tracker: recorder }) @@ -80,15 +136,13 @@ where /// Returns error if the proof has some nodes that are left intact by previous `read_value` /// calls. - pub fn ensure_no_unused_nodes(self) -> Result<(), Error> { - self.accessed_nodes_tracker - .ensure_no_unused_nodes() - .map_err(|e| Error::AccessedNodesTracker(e.into())) + pub fn ensure_no_unused_nodes(self) -> Result<(), StorageProofError> { + self.accessed_nodes_tracker.ensure_no_unused_nodes().map_err(Into::into) } /// Reads a value from the available subset of storage. If the value cannot be read due to an /// incomplete or otherwise invalid proof, this function returns an error. - pub fn read_value(&mut self, key: &[u8]) -> Result>, Error> { + pub fn read_value(&mut self, key: &[u8]) -> Result>, StorageProofError> { // LayoutV1 or LayoutV0 is identical for proof that only read values. read_trie_value::, _>( &self.db, @@ -97,53 +151,131 @@ where Some(&mut self.accessed_nodes_tracker), None, ) - .map_err(|_| Error::StorageValueUnavailable) + .map_err(|_| StorageProofError::StorageValueUnavailable) } /// Reads and decodes a value from the available subset of storage. If the value cannot be read /// due to an incomplete or otherwise invalid proof, this function returns an error. If value is /// read, but decoding fails, this function returns an error. - pub fn read_and_decode_value(&mut self, key: &[u8]) -> Result, Error> { + pub fn read_and_decode_value( + &mut self, + key: &[u8], + ) -> Result, StorageProofError> { self.read_value(key).and_then(|v| { - v.map(|v| T::decode(&mut &v[..]).map_err(|e| Error::StorageValueDecodeFailed(e.into()))) - .transpose() + v.map(|v| { + T::decode(&mut &v[..]).map_err(|e| { + log::warn!(target: "bridge-storage-proofs", "read_and_decode_value error: {e:?}"); + StorageProofError::DecodeError + }) + }) + .transpose() }) } /// Reads and decodes a value from the available subset of storage. If the value cannot be read /// due to an incomplete or otherwise invalid proof, or if the value is `None`, this function /// returns an error. If value is read, but decoding fails, this function returns an error. - pub fn read_and_decode_mandatory_value(&mut self, key: &[u8]) -> Result { - self.read_and_decode_value(key)?.ok_or(Error::StorageValueEmpty) + pub fn read_and_decode_mandatory_value( + &mut self, + key: &[u8], + ) -> Result { + self.read_and_decode_value(key)?.ok_or(StorageProofError::EmptyVal) } /// Reads and decodes a value from the available subset of storage. If the value cannot be read /// due to an incomplete or otherwise invalid proof, this function returns `Ok(None)`. /// If value is read, but decoding fails, this function returns an error. - pub fn read_and_decode_opt_value(&mut self, key: &[u8]) -> Result, Error> { + pub fn read_and_decode_opt_value( + &mut self, + key: &[u8], + ) -> Result, StorageProofError> { match self.read_and_decode_value(key) { Ok(outbound_lane_data) => Ok(outbound_lane_data), - Err(Error::StorageValueUnavailable) => Ok(None), + Err(StorageProofError::StorageValueUnavailable) => Ok(None), Err(e) => Err(e), } } } -/// Storage proof related errors. -#[derive(Encode, Decode, Clone, Eq, PartialEq, PalletError, Debug, TypeInfo)] -pub enum Error { - /// Error generated by the `AccessedNodesTrackerError`. - AccessedNodesTracker(StrippableError), - /// Error originating in the `storage_proof` module. - StorageProof(StrippableError), - /// Expected storage root is missing from the proof. - StorageRootMismatch, - /// Unable to reach expected storage value using provided trie nodes. - StorageValueUnavailable, - /// The storage value is `None`. - StorageValueEmpty, - /// Failed to decode storage value. - StorageValueDecodeFailed(StrippableError), +/// Add extra data to the storage value so that it'll be of given size. +#[cfg(feature = "test-helpers")] +pub fn grow_storage_value(mut value: Vec, params: &UnverifiedStorageProofParams) -> Vec { + if let Some(db_size) = params.db_size { + if db_size as usize > value.len() { + value.extend(sp_std::iter::repeat(42u8).take(db_size as usize - value.len())); + } + } + value +} + +/// Insert values in the provided trie at common-prefix keys in order to inflate the resulting +/// storage proof. +/// +/// This function can add at most 15 common-prefix keys per prefix nibble (4 bits). +/// Each such key adds about 33 bytes (a node) to the proof. +#[cfg(feature = "test-helpers")] +pub fn grow_storage_proof( + trie: &mut TrieDBMut, + prefix: Vec, + num_extra_nodes: usize, +) { + use sp_trie::TrieMut; + + let mut added_nodes = 0; + for i in 0..prefix.len() { + let mut prefix = prefix[0..=i].to_vec(); + // 1 byte has 2 nibbles (4 bits each) + let first_nibble = (prefix[i] & 0xf0) >> 4; + let second_nibble = prefix[i] & 0x0f; + + // create branches at the 1st nibble + for branch in 1..=15 { + if added_nodes >= num_extra_nodes { + return + } + + // create branches at the 1st nibble + prefix[i] = (first_nibble.wrapping_add(branch) % 16) << 4; + trie.insert(&prefix, &[0; 32]) + .map_err(|_| "TrieMut::insert has failed") + .expect("TrieMut::insert should not fail in benchmarks"); + added_nodes += 1; + } + + // create branches at the 2nd nibble + for branch in 1..=15 { + if added_nodes >= num_extra_nodes { + return + } + + prefix[i] = (first_nibble << 4) | (second_nibble.wrapping_add(branch) % 16); + trie.insert(&prefix, &[0; 32]) + .map_err(|_| "TrieMut::insert has failed") + .expect("TrieMut::insert should not fail in benchmarks"); + added_nodes += 1; + } + } + + assert_eq!(added_nodes, num_extra_nodes) +} + +/// Record all keys for a given root. +#[cfg(feature = "test-helpers")] +pub fn record_all_keys( + db: &DB, + root: &TrieHash, +) -> Result>> +where + DB: hash_db::HashDBRef, +{ + let mut recorder = Recorder::::new(); + let trie = TrieDBBuilder::::new(db, root).with_recorder(&mut recorder).build(); + for x in trie.iter()? { + let (key, _) = x?; + trie.get(&key)?; + } + + Ok(recorder.into_raw_storage_proof()) } /// Return valid storage proof and state root. @@ -157,7 +289,7 @@ pub fn craft_valid_storage_proof() -> (sp_core::H256, RawStorageProof) { // construct storage proof let backend = >::from(( - vec![ + sp_std::vec![ (None, vec![(b"key1".to_vec(), Some(b"value1".to_vec()))]), (None, vec![(b"key2".to_vec(), Some(b"value2".to_vec()))]), (None, vec![(b"key3".to_vec(), Some(b"value3".to_vec()))]), @@ -167,33 +299,15 @@ pub fn craft_valid_storage_proof() -> (sp_core::H256, RawStorageProof) { ], state_version, )); - let root = backend.storage_root(std::iter::empty(), state_version).0; + let root = backend.storage_root(sp_std::iter::empty(), state_version).0; let proof = prove_read(backend, &[&b"key1"[..], &b"key2"[..], &b"key4"[..], &b"key22"[..]]).unwrap(); (root, proof.into_nodes().into_iter().collect()) } -/// Record all keys for a given root. -pub fn record_all_keys( - db: &DB, - root: &TrieHash, -) -> Result>> -where - DB: hash_db::HashDBRef, -{ - let mut recorder = Recorder::::new(); - let trie = TrieDBBuilder::::new(db, root).with_recorder(&mut recorder).build(); - for x in trie.iter()? { - let (key, _) = x?; - trie.get(&key)?; - } - - Ok(recorder.into_raw_storage_proof()) -} - #[cfg(test)] -pub mod tests { +pub mod tests_for_storage_proof_checker { use super::*; use codec::Encode; @@ -207,18 +321,21 @@ pub mod tests { assert_eq!(checker.read_value(b"key1"), Ok(Some(b"value1".to_vec()))); assert_eq!(checker.read_value(b"key2"), Ok(Some(b"value2".to_vec()))); assert_eq!(checker.read_value(b"key4"), Ok(Some((42u64, 42u32, 42u16, 42u8).encode()))); - assert_eq!(checker.read_value(b"key11111"), Err(Error::StorageValueUnavailable)); + assert_eq!( + checker.read_value(b"key11111"), + Err(StorageProofError::StorageValueUnavailable) + ); assert_eq!(checker.read_value(b"key22"), Ok(None)); assert_eq!(checker.read_and_decode_value(b"key4"), Ok(Some((42u64, 42u32, 42u16, 42u8))),); assert!(matches!( checker.read_and_decode_value::<[u8; 64]>(b"key4"), - Err(Error::StorageValueDecodeFailed(_)), + Err(StorageProofError::DecodeError), )); // checking proof against invalid commitment fails assert_eq!( >::new(sp_core::H256::random(), proof).err(), - Some(Error::StorageRootMismatch) + Some(StorageProofError::StorageRootMismatch) ); } @@ -235,9 +352,6 @@ pub mod tests { assert_eq!(checker.ensure_no_unused_nodes(), Ok(())); let checker = StorageProofChecker::::new(root, proof).unwrap(); - assert_eq!( - checker.ensure_no_unused_nodes(), - Err(Error::AccessedNodesTracker(AccessedNodesTrackerError::UnusedNodes.into())) - ); + assert_eq!(checker.ensure_no_unused_nodes(), Err(StorageProofError::UnusedKey)); } } diff --git a/bridges/primitives/test-utils/Cargo.toml b/bridges/primitives/test-utils/Cargo.toml index 0b7fb3fec07..5e6e3893393 100644 --- a/bridges/primitives/test-utils/Cargo.toml +++ b/bridges/primitives/test-utils/Cargo.toml @@ -14,7 +14,7 @@ workspace = true bp-header-chain = { workspace = true } bp-parachains = { workspace = true } bp-polkadot-core = { workspace = true } -bp-runtime = { workspace = true } +bp-runtime = { features = ["test-helpers"], workspace = true } codec = { workspace = true } ed25519-dalek = { workspace = true } finality-grandpa = { workspace = true } diff --git a/bridges/primitives/test-utils/src/lib.rs b/bridges/primitives/test-utils/src/lib.rs index f4fe4a242e7..9855c32a468 100644 --- a/bridges/primitives/test-utils/src/lib.rs +++ b/bridges/primitives/test-utils/src/lib.rs @@ -177,6 +177,7 @@ pub fn prepare_parachain_heads_proof( let mut parachains = Vec::with_capacity(heads.len()); let mut root = Default::default(); let mut mdb = MemoryDB::default(); + let mut storage_keys = vec![]; { let mut trie = TrieDBMutBuilderV1::::new(&mut mdb, &mut root).build(); for (parachain, head) in heads { @@ -185,11 +186,12 @@ pub fn prepare_parachain_heads_proof( trie.insert(&storage_key.0, &head.encode()) .map_err(|_| "TrieMut::insert has failed") .expect("TrieMut::insert should not fail in tests"); + storage_keys.push(storage_key.0); parachains.push((ParaId(parachain), head.hash())); } } - // generate storage proof to be delivered to This chain + // generate storage proof to be delivered to this chain let storage_proof = record_all_trie_keys::, _>(&mdb, &root) .map_err(|_| "record_all_trie_keys has failed") .expect("record_all_trie_keys should not fail in benchmarks"); diff --git a/bridges/relays/client-substrate/Cargo.toml b/bridges/relays/client-substrate/Cargo.toml index 66501d03691..969cd73d619 100644 --- a/bridges/relays/client-substrate/Cargo.toml +++ b/bridges/relays/client-substrate/Cargo.toml @@ -31,15 +31,12 @@ bp-header-chain = { workspace = true, default-features = true } bp-messages = { workspace = true, default-features = true } bp-polkadot-core = { workspace = true, default-features = true } bp-runtime = { workspace = true, default-features = true } -pallet-bridge-messages = { workspace = true, default-features = true } finality-relay = { workspace = true } relay-utils = { workspace = true } # Substrate Dependencies frame-support = { workspace = true, default-features = true } -frame-system = { workspace = true, default-features = true } -pallet-balances = { workspace = true, default-features = true } pallet-transaction-payment = { workspace = true, default-features = true } pallet-transaction-payment-rpc-runtime-api = { workspace = true, default-features = true } pallet-utility = { workspace = true, default-features = true } diff --git a/bridges/relays/client-substrate/src/client/caching.rs b/bridges/relays/client-substrate/src/client/caching.rs index cb898cf5172..a574e5985bc 100644 --- a/bridges/relays/client-substrate/src/client/caching.rs +++ b/bridges/relays/client-substrate/src/client/caching.rs @@ -462,7 +462,11 @@ impl> Client for CachingClient { .await } - async fn prove_storage(&self, at: HashOf, keys: Vec) -> Result { + async fn prove_storage( + &self, + at: HashOf, + keys: Vec, + ) -> Result<(StorageProof, HashOf)> { self.backend.prove_storage(at, keys).await } } diff --git a/bridges/relays/client-substrate/src/client/rpc.rs b/bridges/relays/client-substrate/src/client/rpc.rs index bf7442a9514..9c7f769462e 100644 --- a/bridges/relays/client-substrate/src/client/rpc.rs +++ b/bridges/relays/client-substrate/src/client/rpc.rs @@ -52,7 +52,10 @@ use sp_core::{ storage::{StorageData, StorageKey}, Bytes, Hasher, Pair, }; -use sp_runtime::transaction_validity::{TransactionSource, TransactionValidity}; +use sp_runtime::{ + traits::Header, + transaction_validity::{TransactionSource, TransactionValidity}, +}; use sp_trie::StorageProof; use sp_version::RuntimeVersion; use std::{cmp::Ordering, future::Future, marker::PhantomData}; @@ -635,16 +638,25 @@ impl Client for RpcClient { .map_err(|e| Error::failed_state_call::(at, method_clone, arguments_clone, e)) } - async fn prove_storage(&self, at: HashOf, keys: Vec) -> Result { + async fn prove_storage( + &self, + at: HashOf, + keys: Vec, + ) -> Result<(StorageProof, HashOf)> { + let state_root = *self.header_by_hash(at).await?.state_root(); + let keys_clone = keys.clone(); - self.jsonrpsee_execute(move |client| async move { - SubstrateStateClient::::prove_storage(&*client, keys, Some(at)) - .await - .map(|proof| StorageProof::new(proof.proof.into_iter().map(|b| b.0))) - .map_err(Into::into) - }) - .await - .map_err(|e| Error::failed_to_prove_storage::(at, keys_clone, e)) + let read_proof = self + .jsonrpsee_execute(move |client| async move { + SubstrateStateClient::::prove_storage(&*client, keys_clone, Some(at)) + .await + .map(|proof| StorageProof::new(proof.proof.into_iter().map(|b| b.0))) + .map_err(Into::into) + }) + .await + .map_err(|e| Error::failed_to_prove_storage::(at, keys.clone(), e))?; + + Ok((read_proof, state_root)) } } diff --git a/bridges/relays/client-substrate/src/client/traits.rs b/bridges/relays/client-substrate/src/client/traits.rs index 49f5c001c3f..6f4ef5aa951 100644 --- a/bridges/relays/client-substrate/src/client/traits.rs +++ b/bridges/relays/client-substrate/src/client/traits.rs @@ -225,6 +225,10 @@ pub trait Client: 'static + Send + Sync + Clone + Debug { }) } - /// Returns storage proof of given storage keys. - async fn prove_storage(&self, at: HashOf, keys: Vec) -> Result; + /// Returns storage proof of given storage keys and state root. + async fn prove_storage( + &self, + at: HashOf, + keys: Vec, + ) -> Result<(StorageProof, HashOf)>; } diff --git a/bridges/relays/client-substrate/src/error.rs b/bridges/relays/client-substrate/src/error.rs index b09e2c7abdc..ee3c73f806e 100644 --- a/bridges/relays/client-substrate/src/error.rs +++ b/bridges/relays/client-substrate/src/error.rs @@ -213,9 +213,6 @@ pub enum Error { /// The bridge pallet is not yet initialized and all transactions will be rejected. #[error("Bridge pallet is not initialized.")] BridgePalletIsNotInitialized, - /// An error has happened when we have tried to parse storage proof. - #[error("Error when parsing storage proof: {0:?}.")] - StorageProofError(bp_runtime::StorageProofError), /// The Substrate transaction is invalid. #[error("Substrate transaction is invalid: {0:?}")] TransactionInvalid(#[from] TransactionValidityError), diff --git a/bridges/relays/client-substrate/src/test_chain.rs b/bridges/relays/client-substrate/src/test_chain.rs index cfd241c022a..991202e9874 100644 --- a/bridges/relays/client-substrate/src/test_chain.rs +++ b/bridges/relays/client-substrate/src/test_chain.rs @@ -24,7 +24,7 @@ use crate::{Chain, ChainWithBalances, ChainWithMessages}; use bp_messages::{ChainWithMessages as ChainWithMessagesBase, MessageNonce}; use bp_runtime::ChainId; -use frame_support::weights::Weight; +use frame_support::{sp_runtime::StateVersion, weights::Weight}; use std::time::Duration; /// Chain that may be used in tests. @@ -44,6 +44,8 @@ impl bp_runtime::Chain for TestChain { type Nonce = u32; type Signature = sp_runtime::testing::TestSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { 100000 } @@ -100,6 +102,8 @@ impl bp_runtime::Chain for TestParachainBase { type Nonce = u32; type Signature = sp_runtime::testing::TestSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { unreachable!() } diff --git a/bridges/relays/finality/src/base.rs b/bridges/relays/finality/src/base.rs index 4253468eaac..8704bff9549 100644 --- a/bridges/relays/finality/src/base.rs +++ b/bridges/relays/finality/src/base.rs @@ -45,7 +45,3 @@ pub trait SourceClientBase: RelayClient { /// Subscribe to new finality proofs. async fn finality_proofs(&self) -> Result; } - -/// Target client used in finality related loops. -#[async_trait] -pub trait TargetClientBase: RelayClient {} diff --git a/bridges/relays/lib-substrate-relay/Cargo.toml b/bridges/relays/lib-substrate-relay/Cargo.toml index 28fee5b167f..b0f93e5b548 100644 --- a/bridges/relays/lib-substrate-relay/Cargo.toml +++ b/bridges/relays/lib-substrate-relay/Cargo.toml @@ -25,15 +25,12 @@ strum = { features = ["derive"], workspace = true, default-features = true } thiserror = { workspace = true } # Bridge dependencies - bp-header-chain = { workspace = true, default-features = true } bp-parachains = { workspace = true, default-features = true } bp-polkadot-core = { workspace = true, default-features = true } bp-relayers = { workspace = true, default-features = true } -bridge-runtime-common = { workspace = true, default-features = true } equivocation-detector = { workspace = true } -finality-grandpa = { workspace = true, default-features = true } finality-relay = { workspace = true } parachains-relay = { workspace = true } relay-utils = { workspace = true } @@ -48,7 +45,6 @@ bp-runtime = { workspace = true, default-features = true } bp-messages = { workspace = true, default-features = true } # Substrate Dependencies - frame-support = { workspace = true, default-features = true } frame-system = { workspace = true, default-features = true } pallet-balances = { workspace = true, default-features = true } @@ -56,7 +52,9 @@ pallet-grandpa = { workspace = true, default-features = true } sp-core = { workspace = true, default-features = true } sp-consensus-grandpa = { workspace = true, default-features = true } sp-runtime = { workspace = true, default-features = true } +sp-trie = { workspace = true } [dev-dependencies] +scale-info = { features = ["derive"], workspace = true } pallet-transaction-payment = { workspace = true, default-features = true } relay-substrate-client = { features = ["test-helpers"], workspace = true } diff --git a/bridges/relays/lib-substrate-relay/src/cli/bridge.rs b/bridges/relays/lib-substrate-relay/src/cli/bridge.rs index 316f59a2b0c..5631285b3c5 100644 --- a/bridges/relays/lib-substrate-relay/src/cli/bridge.rs +++ b/bridges/relays/lib-substrate-relay/src/cli/bridge.rs @@ -19,7 +19,7 @@ use crate::{ equivocation::SubstrateEquivocationDetectionPipeline, finality::SubstrateFinalitySyncPipeline, - messages_lane::{MessagesRelayLimits, SubstrateMessageLane}, + messages::{MessagesRelayLimits, SubstrateMessageLane}, parachains::SubstrateParachainsPipeline, }; use pallet_bridge_parachains::{RelayBlockHash, RelayBlockHasher, RelayBlockNumber}; diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs index 05a061c2ea6..338dda3c633 100644 --- a/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_headers_and_messages/mod.rs @@ -38,7 +38,7 @@ use futures::{FutureExt, TryFutureExt}; use crate::{ cli::{bridge::MessagesCliBridge, DefaultClient, HexLaneId, PrometheusParams}, - messages_lane::{MessagesRelayLimits, MessagesRelayParams}, + messages::{MessagesRelayLimits, MessagesRelayParams}, on_demand::OnDemandRelay, HeadersToRelay, TaggedAccount, TransactionParams, }; @@ -298,14 +298,14 @@ where .collect::>(); { let common = self.mut_base().mut_common(); - crate::messages_metrics::add_relay_balances_metrics::<_, Self::Right>( + crate::messages::metrics::add_relay_balances_metrics::<_, Self::Right>( common.left.client.clone(), &common.metrics_params, &common.left.accounts, &lanes, ) .await?; - crate::messages_metrics::add_relay_balances_metrics::<_, Self::Left>( + crate::messages::metrics::add_relay_balances_metrics::<_, Self::Left>( common.right.client.clone(), &common.metrics_params, &common.right.accounts, @@ -318,7 +318,7 @@ where let mut message_relays = Vec::with_capacity(lanes.len() * 2); for lane in lanes { let left_to_right_messages = - crate::messages_lane::run::<::MessagesLane, _, _>( + crate::messages::run::<::MessagesLane, _, _>( self.left_to_right().messages_relay_params( left_to_right_on_demand_headers.clone(), right_to_left_on_demand_headers.clone(), @@ -331,7 +331,7 @@ where message_relays.push(left_to_right_messages); let right_to_left_messages = - crate::messages_lane::run::<::MessagesLane, _, _>( + crate::messages::run::<::MessagesLane, _, _>( self.right_to_left().messages_relay_params( right_to_left_on_demand_headers.clone(), left_to_right_on_demand_headers.clone(), diff --git a/bridges/relays/lib-substrate-relay/src/cli/relay_messages.rs b/bridges/relays/lib-substrate-relay/src/cli/relay_messages.rs index a17ae7c0c01..68bbe71ae59 100644 --- a/bridges/relays/lib-substrate-relay/src/cli/relay_messages.rs +++ b/bridges/relays/lib-substrate-relay/src/cli/relay_messages.rs @@ -18,7 +18,7 @@ use crate::{ cli::{bridge::*, chain_schema::*, HexLaneId, PrometheusParams}, - messages_lane::MessagesRelayParams, + messages::MessagesRelayParams, TransactionParams, }; @@ -117,7 +117,7 @@ where let target_sign = data.target_sign.to_keypair::()?; let target_transactions_mortality = data.target_sign.transactions_mortality()?; - crate::messages_lane::run::(MessagesRelayParams { + crate::messages::run::(MessagesRelayParams { source_client, source_transaction_params: TransactionParams { signer: source_sign, @@ -161,7 +161,7 @@ where })? .id(); - crate::messages_lane::relay_messages_range::( + crate::messages::relay_messages_range::( source_client, target_client, TransactionParams { signer: source_sign, mortality: source_transactions_mortality }, @@ -197,7 +197,7 @@ where })? .id(); - crate::messages_lane::relay_messages_delivery_confirmation::( + crate::messages::relay_messages_delivery_confirmation::( source_client, target_client, TransactionParams { signer: source_sign, mortality: source_transactions_mortality }, diff --git a/bridges/relays/lib-substrate-relay/src/lib.rs b/bridges/relays/lib-substrate-relay/src/lib.rs index b3e8e7ed9a2..c004540a9f4 100644 --- a/bridges/relays/lib-substrate-relay/src/lib.rs +++ b/bridges/relays/lib-substrate-relay/src/lib.rs @@ -30,10 +30,7 @@ pub mod equivocation; pub mod error; pub mod finality; pub mod finality_base; -pub mod messages_lane; -pub mod messages_metrics; -pub mod messages_source; -pub mod messages_target; +pub mod messages; pub mod on_demand; pub mod parachains; @@ -130,3 +127,17 @@ impl BatchCallBuilder for () { unreachable!("never called, because ()::new_builder() returns None; qed") } } + +/// Module for handling storage proofs compatibility. +pub mod proofs { + use bp_runtime::{HashOf, RawStorageProof}; + use relay_substrate_client::Chain; + use sp_trie::StorageProof; + + /// Converts proof to `RawStorageProof` type. + pub fn to_raw_storage_proof( + proof: (StorageProof, HashOf), + ) -> RawStorageProof { + proof.0.into_iter_nodes().collect() + } +} diff --git a/bridges/relays/lib-substrate-relay/src/messages_metrics.rs b/bridges/relays/lib-substrate-relay/src/messages/metrics.rs similarity index 100% rename from bridges/relays/lib-substrate-relay/src/messages_metrics.rs rename to bridges/relays/lib-substrate-relay/src/messages/metrics.rs diff --git a/bridges/relays/lib-substrate-relay/src/messages_lane.rs b/bridges/relays/lib-substrate-relay/src/messages/mod.rs similarity index 63% rename from bridges/relays/lib-substrate-relay/src/messages_lane.rs rename to bridges/relays/lib-substrate-relay/src/messages/mod.rs index e3786dcdc5e..e52b7020666 100644 --- a/bridges/relays/lib-substrate-relay/src/messages_lane.rs +++ b/bridges/relays/lib-substrate-relay/src/messages/mod.rs @@ -17,20 +17,21 @@ //! Tools for supporting message lanes between two Substrate-based chains. use crate::{ - messages_source::{SubstrateMessagesProof, SubstrateMessagesSource}, - messages_target::{SubstrateMessagesDeliveryProof, SubstrateMessagesTarget}, + messages::{ + source::{SubstrateMessagesProof, SubstrateMessagesSource}, + target::{SubstrateMessagesDeliveryProof, SubstrateMessagesTarget}, + }, on_demand::OnDemandRelay, BatchCallBuilder, BatchCallBuilderConstructor, TransactionParams, }; use async_std::sync::Arc; -use bp_messages::{ChainWithMessages as _, LaneId, MessageNonce}; +use bp_messages::{ + target_chain::FromBridgedChainMessagesProof, ChainWithMessages as _, LaneId, MessageNonce, +}; use bp_runtime::{ AccountIdOf, Chain as _, EncodedOrDecodedCall, HeaderIdOf, TransactionEra, WeightExtraOps, }; -use bridge_runtime_common::messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, -}; use codec::Encode; use frame_support::{dispatch::GetDispatchInfo, weights::Weight}; use messages_relay::{message_lane::MessageLane, message_lane_loop::BatchTransaction}; @@ -48,6 +49,10 @@ use sp_core::Pair; use sp_runtime::traits::Zero; use std::{fmt::Debug, marker::PhantomData, ops::RangeInclusive}; +pub mod metrics; +pub mod source; +pub mod target; + /// Substrate -> Substrate messages synchronization pipeline. pub trait SubstrateMessageLane: 'static + Clone + Debug + Send + Sync { /// Messages of this chain are relayed to the `TargetChain`. @@ -383,11 +388,10 @@ pub struct DirectReceiveMessagesProofCallBuilder { impl ReceiveMessagesProofCallBuilder

for DirectReceiveMessagesProofCallBuilder where P: SubstrateMessageLane, - R: BridgeMessagesConfig>, + R: BridgeMessagesConfig, I: 'static, - R::SourceHeaderChain: bp_messages::target_chain::SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof>, - >, + R::BridgedChain: + bp_runtime::Chain, Hash = HashOf>, CallOf: From> + GetDispatchInfo, { fn build_receive_messages_proof_call( @@ -399,7 +403,7 @@ where ) -> CallOf { let call: CallOf = BridgeMessagesCall::::receive_messages_proof { relayer_id_at_bridged_chain: relayer_id_at_source, - proof: proof.1, + proof: proof.1.into(), messages_count, dispatch_weight, } @@ -432,26 +436,26 @@ macro_rules! generate_receive_message_proof_call_builder { ($pipeline:ident, $mocked_builder:ident, $bridge_messages:path, $receive_messages_proof:path) => { pub struct $mocked_builder; - impl $crate::messages_lane::ReceiveMessagesProofCallBuilder<$pipeline> + impl $crate::messages::ReceiveMessagesProofCallBuilder<$pipeline> for $mocked_builder { fn build_receive_messages_proof_call( relayer_id_at_source: relay_substrate_client::AccountIdOf< - <$pipeline as $crate::messages_lane::SubstrateMessageLane>::SourceChain + <$pipeline as $crate::messages::SubstrateMessageLane>::SourceChain >, - proof: $crate::messages_source::SubstrateMessagesProof< - <$pipeline as $crate::messages_lane::SubstrateMessageLane>::SourceChain + proof: $crate::messages::source::SubstrateMessagesProof< + <$pipeline as $crate::messages::SubstrateMessageLane>::SourceChain >, messages_count: u32, dispatch_weight: bp_messages::Weight, _trace_call: bool, ) -> relay_substrate_client::CallOf< - <$pipeline as $crate::messages_lane::SubstrateMessageLane>::TargetChain + <$pipeline as $crate::messages::SubstrateMessageLane>::TargetChain > { bp_runtime::paste::item! { $bridge_messages($receive_messages_proof { relayer_id_at_bridged_chain: relayer_id_at_source, - proof: proof.1, + proof: proof.1.into(), messages_count: messages_count, dispatch_weight: dispatch_weight, }) @@ -483,11 +487,7 @@ where P: SubstrateMessageLane, R: BridgeMessagesConfig, I: 'static, - R::TargetHeaderChain: bp_messages::source_chain::TargetHeaderChain< - R::OutboundPayload, - R::AccountId, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof>, - >, + R::BridgedChain: bp_runtime::Chain>, CallOf: From> + GetDispatchInfo, { fn build_receive_messages_delivery_proof_call( @@ -496,7 +496,7 @@ where ) -> CallOf { let call: CallOf = BridgeMessagesCall::::receive_messages_delivery_proof { - proof: proof.1, + proof: proof.1.into(), relayers_state: proof.0, } .into(); @@ -528,16 +528,16 @@ macro_rules! generate_receive_message_delivery_proof_call_builder { ($pipeline:ident, $mocked_builder:ident, $bridge_messages:path, $receive_messages_delivery_proof:path) => { pub struct $mocked_builder; - impl $crate::messages_lane::ReceiveMessagesDeliveryProofCallBuilder<$pipeline> + impl $crate::messages::ReceiveMessagesDeliveryProofCallBuilder<$pipeline> for $mocked_builder { fn build_receive_messages_delivery_proof_call( - proof: $crate::messages_target::SubstrateMessagesDeliveryProof< - <$pipeline as $crate::messages_lane::SubstrateMessageLane>::TargetChain + proof: $crate::messages::target::SubstrateMessagesDeliveryProof< + <$pipeline as $crate::messages::SubstrateMessageLane>::TargetChain >, _trace_call: bool, ) -> relay_substrate_client::CallOf< - <$pipeline as $crate::messages_lane::SubstrateMessageLane>::SourceChain + <$pipeline as $crate::messages::SubstrateMessageLane>::SourceChain > { bp_runtime::paste::item! { $bridge_messages($receive_messages_delivery_proof { @@ -643,13 +643,7 @@ where Weight::zero(), FromBridgedChainMessagesProof { bridged_header_hash: Default::default(), - // we may use per-chain `EXTRA_STORAGE_PROOF_SIZE`, but since we don't need - // exact values, this global estimation is fine - storage_proof: vec![vec![ - 42u8; - pallet_bridge_messages::EXTRA_STORAGE_PROOF_SIZE - as usize - ]], + storage_proof: Default::default(), lane: Default::default(), nonces_start: 1, nonces_end: messages as u64, @@ -675,3 +669,362 @@ where ) .map_err(Into::into) } + +#[cfg(test)] +mod tests { + use super::*; + use bp_messages::{ + source_chain::FromBridgedChainMessagesDeliveryProof, UnrewardedRelayersState, + }; + use relay_substrate_client::calls::{UtilityCall as MockUtilityCall, UtilityCall}; + + #[derive(codec::Decode, codec::Encode, Clone, Debug, PartialEq)] + pub enum RuntimeCall { + #[codec(index = 53)] + BridgeMessages(CodegenBridgeMessagesCall), + #[codec(index = 123)] + Utility(UtilityCall), + } + pub type CodegenBridgeMessagesCall = bp_messages::BridgeMessagesCall< + u64, + Box>, + FromBridgedChainMessagesDeliveryProof, + >; + + impl From> for RuntimeCall { + fn from(value: MockUtilityCall) -> RuntimeCall { + match value { + MockUtilityCall::batch_all(calls) => + RuntimeCall::Utility(UtilityCall::::batch_all(calls)), + } + } + } + + #[test] + fn ensure_macro_compatibility_for_generate_receive_message_proof_call_builder() { + // data + let receive_messages_proof = FromBridgedChainMessagesProof { + bridged_header_hash: Default::default(), + storage_proof: Default::default(), + lane: LaneId([0, 0, 0, 0]), + nonces_start: 0, + nonces_end: 0, + }; + let account = 1234; + let messages_count = 0; + let dispatch_weight = Default::default(); + + // construct pallet Call directly + let pallet_receive_messages_proof = + pallet_bridge_messages::Call::::receive_messages_proof { + relayer_id_at_bridged_chain: account, + proof: receive_messages_proof.clone().into(), + messages_count, + dispatch_weight, + }; + + // construct mock enum Call + let mock_enum_receive_messages_proof = CodegenBridgeMessagesCall::receive_messages_proof { + relayer_id_at_bridged_chain: account, + proof: receive_messages_proof.clone().into(), + messages_count, + dispatch_weight, + }; + + // now we should be able to use macro `generate_receive_message_proof_call_builder` + let relayer_call_builder_receive_messages_proof = relayer::ThisChainToBridgedChainMessageLaneReceiveMessagesProofCallBuilder::build_receive_messages_proof_call( + account, + (Default::default(), receive_messages_proof), + messages_count, + dispatch_weight, + false, + ); + + // ensure they are all equal + assert_eq!( + pallet_receive_messages_proof.encode(), + mock_enum_receive_messages_proof.encode() + ); + match relayer_call_builder_receive_messages_proof { + RuntimeCall::BridgeMessages(call) => match call { + call @ CodegenBridgeMessagesCall::receive_messages_proof { .. } => + assert_eq!(pallet_receive_messages_proof.encode(), call.encode()), + _ => panic!("Unexpected CodegenBridgeMessagesCall type"), + }, + _ => panic!("Unexpected RuntimeCall type"), + }; + } + + #[test] + fn ensure_macro_compatibility_for_generate_receive_message_delivery_proof_call_builder() { + // data + let receive_messages_delivery_proof = FromBridgedChainMessagesDeliveryProof { + bridged_header_hash: Default::default(), + storage_proof: Default::default(), + lane: LaneId([0, 0, 0, 0]), + }; + let relayers_state = UnrewardedRelayersState { + unrewarded_relayer_entries: 0, + messages_in_oldest_entry: 0, + total_messages: 0, + last_delivered_nonce: 0, + }; + + // construct pallet Call directly + let pallet_receive_messages_delivery_proof = + pallet_bridge_messages::Call::::receive_messages_delivery_proof { + proof: receive_messages_delivery_proof.clone(), + relayers_state: relayers_state.clone(), + }; + + // construct mock enum Call + let mock_enum_receive_messages_delivery_proof = + CodegenBridgeMessagesCall::receive_messages_delivery_proof { + proof: receive_messages_delivery_proof.clone(), + relayers_state: relayers_state.clone(), + }; + + // now we should be able to use macro `generate_receive_message_proof_call_builder` + let relayer_call_builder_receive_messages_delivery_proof = relayer::ThisChainToBridgedChainMessageLaneReceiveMessagesDeliveryProofCallBuilder::build_receive_messages_delivery_proof_call( + (relayers_state, receive_messages_delivery_proof), + false, + ); + + // ensure they are all equal + assert_eq!( + pallet_receive_messages_delivery_proof.encode(), + mock_enum_receive_messages_delivery_proof.encode() + ); + match relayer_call_builder_receive_messages_delivery_proof { + RuntimeCall::BridgeMessages(call) => match call { + call @ CodegenBridgeMessagesCall::receive_messages_delivery_proof { .. } => + assert_eq!(pallet_receive_messages_delivery_proof.encode(), call.encode()), + _ => panic!("Unexpected CodegenBridgeMessagesCall type"), + }, + _ => panic!("Unexpected RuntimeCall type"), + }; + } + + // mock runtime with `pallet_bridge_messages` + mod mock { + use super::super::*; + use bp_messages::target_chain::ForbidInboundMessages; + use bp_runtime::ChainId; + use frame_support::derive_impl; + use sp_core::H256; + use sp_runtime::{ + generic, testing::Header as SubstrateHeader, traits::BlakeTwo256, StateVersion, + }; + + type Block = frame_system::mocking::MockBlock; + pub type SignedBlock = generic::SignedBlock; + + frame_support::construct_runtime! { + pub enum TestRuntime + { + System: frame_system, + Messages: pallet_bridge_messages, + } + } + + #[derive_impl(frame_system::config_preludes::TestDefaultConfig)] + impl frame_system::Config for TestRuntime { + type Block = Block; + } + + impl pallet_bridge_messages::Config for TestRuntime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = (); + type ThisChain = ThisUnderlyingChain; + type BridgedChain = BridgedUnderlyingChain; + type BridgedHeaderChain = BridgedHeaderChain; + type ActiveOutboundLanes = (); + type OutboundPayload = Vec; + type InboundPayload = Vec; + type DeliveryPayments = (); + type DeliveryConfirmationPayments = (); + type OnMessagesDelivered = (); + type MessageDispatch = ForbidInboundMessages>; + } + + pub struct ThisUnderlyingChain; + + impl bp_runtime::Chain for ThisUnderlyingChain { + const ID: ChainId = *b"tuch"; + type BlockNumber = u64; + type Hash = H256; + type Hasher = BlakeTwo256; + type Header = SubstrateHeader; + type AccountId = u64; + type Balance = u64; + type Nonce = u64; + type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { + u32::MAX + } + fn max_extrinsic_weight() -> Weight { + Weight::MAX + } + } + + impl bp_messages::ChainWithMessages for ThisUnderlyingChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = ""; + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 1000; + } + + pub struct BridgedUnderlyingChain; + + pub type BridgedHeaderHash = H256; + pub type BridgedChainHeader = SubstrateHeader; + + impl bp_runtime::Chain for BridgedUnderlyingChain { + const ID: ChainId = *b"bgdc"; + type BlockNumber = u64; + type Hash = BridgedHeaderHash; + type Hasher = BlakeTwo256; + type Header = BridgedChainHeader; + type AccountId = u64; + type Balance = u64; + type Nonce = u64; + type Signature = sp_runtime::MultiSignature; + const STATE_VERSION: StateVersion = StateVersion::V1; + fn max_extrinsic_size() -> u32 { + 4096 + } + fn max_extrinsic_weight() -> Weight { + Weight::MAX + } + } + + impl bp_messages::ChainWithMessages for BridgedUnderlyingChain { + const WITH_CHAIN_MESSAGES_PALLET_NAME: &'static str = ""; + const MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX: MessageNonce = 16; + const MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX: MessageNonce = 1000; + } + + pub struct BridgedHeaderChain; + + impl bp_header_chain::HeaderChain for BridgedHeaderChain { + fn finalized_header_state_root( + _hash: HashOf, + ) -> Option> { + unreachable!() + } + } + } + + // relayer configuration + mod relayer { + use super::*; + use crate::{ + messages::{ + tests::{mock, RuntimeCall}, + SubstrateMessageLane, + }, + UtilityPalletBatchCallBuilder, + }; + use bp_runtime::UnderlyingChainProvider; + use relay_substrate_client::{MockedRuntimeUtilityPallet, SignParam, UnsignedTransaction}; + use std::time::Duration; + + #[derive(Clone)] + pub struct ThisChain; + impl UnderlyingChainProvider for ThisChain { + type Chain = mock::ThisUnderlyingChain; + } + impl relay_substrate_client::Chain for ThisChain { + const NAME: &'static str = ""; + const BEST_FINALIZED_HEADER_ID_METHOD: &'static str = ""; + const FREE_HEADERS_INTERVAL_METHOD: &'static str = ""; + const AVERAGE_BLOCK_INTERVAL: Duration = Duration::from_millis(0); + type SignedBlock = mock::SignedBlock; + type Call = RuntimeCall; + } + impl relay_substrate_client::ChainWithTransactions for ThisChain { + type AccountKeyPair = sp_core::sr25519::Pair; + type SignedTransaction = (); + + fn sign_transaction( + _: SignParam, + _: UnsignedTransaction, + ) -> Result + where + Self: Sized, + { + todo!() + } + } + impl relay_substrate_client::ChainWithMessages for ThisChain { + const WITH_CHAIN_RELAYERS_PALLET_NAME: Option<&'static str> = None; + const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str = ""; + const FROM_CHAIN_MESSAGE_DETAILS_METHOD: &'static str = ""; + } + impl relay_substrate_client::ChainWithUtilityPallet for ThisChain { + type UtilityPallet = MockedRuntimeUtilityPallet; + } + + #[derive(Clone)] + pub struct BridgedChain; + impl UnderlyingChainProvider for BridgedChain { + type Chain = mock::BridgedUnderlyingChain; + } + impl relay_substrate_client::Chain for BridgedChain { + const NAME: &'static str = ""; + const BEST_FINALIZED_HEADER_ID_METHOD: &'static str = ""; + const FREE_HEADERS_INTERVAL_METHOD: &'static str = ""; + const AVERAGE_BLOCK_INTERVAL: Duration = Duration::from_millis(0); + type SignedBlock = mock::SignedBlock; + type Call = RuntimeCall; + } + impl relay_substrate_client::ChainWithTransactions for BridgedChain { + type AccountKeyPair = sp_core::sr25519::Pair; + type SignedTransaction = (); + + fn sign_transaction( + _: SignParam, + _: UnsignedTransaction, + ) -> Result + where + Self: Sized, + { + todo!() + } + } + impl relay_substrate_client::ChainWithMessages for BridgedChain { + const WITH_CHAIN_RELAYERS_PALLET_NAME: Option<&'static str> = None; + const TO_CHAIN_MESSAGE_DETAILS_METHOD: &'static str = ""; + const FROM_CHAIN_MESSAGE_DETAILS_METHOD: &'static str = ""; + } + impl relay_substrate_client::ChainWithUtilityPallet for BridgedChain { + type UtilityPallet = MockedRuntimeUtilityPallet; + } + + #[derive(Clone, Debug)] + pub struct ThisChainToBridgedChainMessageLane; + impl SubstrateMessageLane for ThisChainToBridgedChainMessageLane { + type SourceChain = ThisChain; + type TargetChain = BridgedChain; + type ReceiveMessagesProofCallBuilder = + ThisChainToBridgedChainMessageLaneReceiveMessagesProofCallBuilder; + type ReceiveMessagesDeliveryProofCallBuilder = + ThisChainToBridgedChainMessageLaneReceiveMessagesDeliveryProofCallBuilder; + type SourceBatchCallBuilder = UtilityPalletBatchCallBuilder; + type TargetBatchCallBuilder = UtilityPalletBatchCallBuilder; + } + + generate_receive_message_proof_call_builder!( + ThisChainToBridgedChainMessageLane, + ThisChainToBridgedChainMessageLaneReceiveMessagesProofCallBuilder, + RuntimeCall::BridgeMessages, + CodegenBridgeMessagesCall::receive_messages_proof + ); + generate_receive_message_delivery_proof_call_builder!( + ThisChainToBridgedChainMessageLane, + ThisChainToBridgedChainMessageLaneReceiveMessagesDeliveryProofCallBuilder, + RuntimeCall::BridgeMessages, + CodegenBridgeMessagesCall::receive_messages_delivery_proof + ); + } +} diff --git a/bridges/relays/lib-substrate-relay/src/messages_source.rs b/bridges/relays/lib-substrate-relay/src/messages/source.rs similarity index 97% rename from bridges/relays/lib-substrate-relay/src/messages_source.rs rename to bridges/relays/lib-substrate-relay/src/messages/source.rs index 1f597e278da..b75fc86d5ee 100644 --- a/bridges/relays/lib-substrate-relay/src/messages_source.rs +++ b/bridges/relays/lib-substrate-relay/src/messages/source.rs @@ -20,11 +20,12 @@ use crate::{ finality_base::best_synced_header_id, - messages_lane::{ + messages::{ BatchProofTransaction, MessageLaneAdapter, ReceiveMessagesDeliveryProofCallBuilder, SubstrateMessageLane, }, on_demand::OnDemandRelay, + proofs::to_raw_storage_proof, TransactionParams, }; @@ -32,11 +33,11 @@ use async_std::sync::Arc; use async_trait::async_trait; use bp_messages::{ storage_keys::{operating_mode_key, outbound_lane_data_key}, + target_chain::FromBridgedChainMessagesProof, ChainWithMessages as _, InboundMessageDetails, LaneId, MessageNonce, MessagePayload, MessagesOperatingMode, OutboundLaneData, OutboundMessageDetails, }; -use bp_runtime::{BasicOperatingMode, HeaderIdProvider}; -use bridge_runtime_common::messages::target::FromBridgedChainMessagesProof; +use bp_runtime::{BasicOperatingMode, HeaderIdProvider, RangeInclusiveExt}; use codec::Encode; use frame_support::weights::Weight; use messages_relay::{ @@ -320,34 +321,27 @@ where ), SubstrateError, > { - let mut storage_keys = - Vec::with_capacity(nonces.end().saturating_sub(*nonces.start()) as usize + 1); - let mut message_nonce = *nonces.start(); - while message_nonce <= *nonces.end() { + let mut storage_keys = Vec::with_capacity(nonces.saturating_len() as usize); + for message_nonce in nonces.clone() { let message_key = bp_messages::storage_keys::message_key( P::TargetChain::WITH_CHAIN_MESSAGES_PALLET_NAME, &self.lane_id, message_nonce, ); storage_keys.push(message_key); - message_nonce += 1; } if proof_parameters.outbound_state_proof_required { - storage_keys.push(bp_messages::storage_keys::outbound_lane_data_key( + storage_keys.push(outbound_lane_data_key( P::TargetChain::WITH_CHAIN_MESSAGES_PALLET_NAME, &self.lane_id, )); } - let proof = self - .source_client - .prove_storage(id.1, storage_keys) - .await? - .into_iter_nodes() - .collect(); + let storage_proof = + self.source_client.prove_storage(id.hash(), storage_keys.clone()).await?; let proof = FromBridgedChainMessagesProof { bridged_header_hash: id.1, - storage_proof: proof, + storage_proof: to_raw_storage_proof::(storage_proof), lane: self.lane_id, nonces_start: *nonces.start(), nonces_end: *nonces.end(), diff --git a/bridges/relays/lib-substrate-relay/src/messages_target.rs b/bridges/relays/lib-substrate-relay/src/messages/target.rs similarity index 94% rename from bridges/relays/lib-substrate-relay/src/messages_target.rs rename to bridges/relays/lib-substrate-relay/src/messages/target.rs index e1c7645eac6..a6bf169cffb 100644 --- a/bridges/relays/lib-substrate-relay/src/messages_target.rs +++ b/bridges/relays/lib-substrate-relay/src/messages/target.rs @@ -19,24 +19,25 @@ //! `` chain. use crate::{ - messages_lane::{ + messages::{ + source::{ + ensure_messages_pallet_active, read_client_state_from_both_chains, + SubstrateMessagesProof, + }, BatchProofTransaction, MessageLaneAdapter, ReceiveMessagesProofCallBuilder, SubstrateMessageLane, }, - messages_source::{ - ensure_messages_pallet_active, read_client_state_from_both_chains, SubstrateMessagesProof, - }, on_demand::OnDemandRelay, + proofs::to_raw_storage_proof, TransactionParams, }; use async_std::sync::Arc; use async_trait::async_trait; use bp_messages::{ - storage_keys::inbound_lane_data_key, ChainWithMessages as _, InboundLaneData, LaneId, - MessageNonce, UnrewardedRelayersState, + source_chain::FromBridgedChainMessagesDeliveryProof, storage_keys::inbound_lane_data_key, + ChainWithMessages as _, InboundLaneData, LaneId, MessageNonce, UnrewardedRelayersState, }; -use bridge_runtime_common::messages::source::FromBridgedChainMessagesDeliveryProof; use messages_relay::{ message_lane::{MessageLane, SourceHeaderIdOf, TargetHeaderIdOf}, message_lane_loop::{NoncesSubmitArtifacts, TargetClient, TargetClientState}, @@ -47,7 +48,7 @@ use relay_substrate_client::{ }; use relay_utils::relay_loop::Client as RelayClient; use sp_core::Pair; -use std::ops::RangeInclusive; +use std::{convert::TryFrom, ops::RangeInclusive}; /// Message receiving proof returned by the target Substrate node. pub type SubstrateMessagesDeliveryProof = @@ -231,19 +232,16 @@ where SubstrateError, > { let (id, relayers_state) = self.unrewarded_relayers_state(id).await?; - let inbound_data_key = bp_messages::storage_keys::inbound_lane_data_key( + let storage_keys = vec![inbound_lane_data_key( P::SourceChain::WITH_CHAIN_MESSAGES_PALLET_NAME, &self.lane_id, - ); - let proof = self - .target_client - .prove_storage(id.hash(), vec![inbound_data_key]) - .await? - .into_iter_nodes() - .collect(); + )]; + + let storage_proof = + self.target_client.prove_storage(id.hash(), storage_keys.clone()).await?; let proof = FromBridgedChainMessagesDeliveryProof { bridged_header_hash: id.1, - storage_proof: proof, + storage_proof: to_raw_storage_proof::(storage_proof), lane: self.lane_id, }; Ok((id, (relayers_state, proof))) diff --git a/bridges/relays/lib-substrate-relay/src/on_demand/parachains.rs b/bridges/relays/lib-substrate-relay/src/on_demand/parachains.rs index 654cb6628d5..4579222a2c6 100644 --- a/bridges/relays/lib-substrate-relay/src/on_demand/parachains.rs +++ b/bridges/relays/lib-substrate-relay/src/on_demand/parachains.rs @@ -17,7 +17,7 @@ //! On-demand Substrate -> Substrate parachain finality relay. use crate::{ - messages_source::best_finalized_peer_header_at_self, + messages::source::best_finalized_peer_header_at_self, on_demand::OnDemandRelay, parachains::{ source::ParachainsSource, target::ParachainsTarget, ParachainsPipelineAdapter, @@ -681,7 +681,7 @@ impl<'a, P: SubstrateParachainsPipeline, SourceRelayClnt, TargetClnt> async fn best_finalized_relay_block_at_target( &self, ) -> Result, SubstrateError> { - Ok(crate::messages_source::read_client_state::( + Ok(crate::messages::source::read_client_state::( &self.0.target_client, ) .await? diff --git a/bridges/relays/lib-substrate-relay/src/parachains/source.rs b/bridges/relays/lib-substrate-relay/src/parachains/source.rs index 11b9d6dbf5b..1aa12d1c913 100644 --- a/bridges/relays/lib-substrate-relay/src/parachains/source.rs +++ b/bridges/relays/lib-substrate-relay/src/parachains/source.rs @@ -16,8 +16,10 @@ //! Parachain heads source. -use crate::parachains::{ParachainsPipelineAdapter, SubstrateParachainsPipeline}; - +use crate::{ + parachains::{ParachainsPipelineAdapter, SubstrateParachainsPipeline}, + proofs::to_raw_storage_proof, +}; use async_std::sync::{Arc, Mutex}; use async_trait::async_trait; use bp_parachains::parachain_head_storage_key_at_source; @@ -153,12 +155,9 @@ where let parachain = ParaId(P::SourceParachain::PARACHAIN_ID); let storage_key = parachain_head_storage_key_at_source(P::SourceRelayChain::PARAS_PALLET_NAME, parachain); - let parachain_heads_proof = self - .client - .prove_storage(at_block.hash(), vec![storage_key.clone()]) - .await? - .into_iter_nodes() - .collect(); + + let storage_proof = + self.client.prove_storage(at_block.hash(), vec![storage_key.clone()]).await?; // why we're reading parachain head here once again (it has already been read at the // `parachain_head`)? that's because `parachain_head` sometimes returns obsolete parachain @@ -178,6 +177,11 @@ where })?; let parachain_head_hash = parachain_head.hash(); - Ok((ParaHeadsProof { storage_proof: parachain_heads_proof }, parachain_head_hash)) + Ok(( + ParaHeadsProof { + storage_proof: to_raw_storage_proof::(storage_proof), + }, + parachain_head_hash, + )) } } diff --git a/bridges/relays/messages/Cargo.toml b/bridges/relays/messages/Cargo.toml index 96e441fc673..c7a132bb3ba 100644 --- a/bridges/relays/messages/Cargo.toml +++ b/bridges/relays/messages/Cargo.toml @@ -13,7 +13,6 @@ workspace = true [dependencies] async-std = { features = ["attributes"], workspace = true } async-trait = { workspace = true } -env_logger = { workspace = true } futures = { workspace = true } hex = { workspace = true, default-features = true } log = { workspace = true } diff --git a/bridges/relays/parachains/src/parachains_loop.rs b/bridges/relays/parachains/src/parachains_loop.rs index fd73ca2d46c..0fd1d72c707 100644 --- a/bridges/relays/parachains/src/parachains_loop.rs +++ b/bridges/relays/parachains/src/parachains_loop.rs @@ -680,7 +680,6 @@ impl SubmittedHeadsTracker

{ mod tests { use super::*; use async_std::sync::{Arc, Mutex}; - use codec::Encode; use futures::{SinkExt, StreamExt}; use relay_substrate_client::test_chain::{TestChain, TestParachain}; use relay_utils::{HeaderId, MaybeConnectionError}; @@ -821,8 +820,7 @@ mod tests { let head_result = SourceClient::::parachain_head(self, at_block).await?; let head = head_result.as_available().unwrap(); - let storage_proof = vec![head.hash().encode()]; - let proof = (ParaHeadsProof { storage_proof }, head.hash()); + let proof = (ParaHeadsProof { storage_proof: Default::default() }, head.hash()); self.data.lock().await.source_proof.clone().map(|_| proof) } } diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_xcm_bridge_hub_router.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_xcm_bridge_hub_router.rs index 775bc3bdb80..0a86037391b 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_xcm_bridge_hub_router.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_xcm_bridge_hub_router.rs @@ -16,10 +16,10 @@ //! Autogenerated weights for `pallet_xcm_bridge_hub_router` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-12-12, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-itmxxexx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024 // Executed Command: @@ -49,32 +49,32 @@ use core::marker::PhantomData; pub struct WeightInfo(PhantomData); impl pallet_xcm_bridge_hub_router::WeightInfo for WeightInfo { /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) - /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0) - /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) /// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1) /// Proof: `ToWestendXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`) fn on_initialize_when_non_congested() -> Weight { // Proof Size summary in bytes: // Measured: `154` - // Estimated: `1639` - // Minimum execution time: 7_853_000 picoseconds. - Weight::from_parts(8_443_000, 0) - .saturating_add(Weight::from_parts(0, 1639)) + // Estimated: `5487` + // Minimum execution time: 8_078_000 picoseconds. + Weight::from_parts(8_455_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) - /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0) - /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) fn on_initialize_when_congested() -> Weight { // Proof Size summary in bytes: // Measured: `144` - // Estimated: `1629` - // Minimum execution time: 4_333_000 picoseconds. - Weight::from_parts(4_501_000, 0) - .saturating_add(Weight::from_parts(0, 1629)) + // Estimated: `5487` + // Minimum execution time: 4_291_000 picoseconds. + Weight::from_parts(4_548_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) .saturating_add(T::DbWeight::get().reads(2)) } /// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1) @@ -83,14 +83,12 @@ impl pallet_xcm_bridge_hub_router::WeightInfo for Weigh // Proof Size summary in bytes: // Measured: `150` // Estimated: `1502` - // Minimum execution time: 10_167_000 picoseconds. - Weight::from_parts(10_667_000, 0) + // Minimum execution time: 9_959_000 picoseconds. + Weight::from_parts(10_372_000, 0) .saturating_add(Weight::from_parts(0, 1502)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `PolkadotXcm::SupportedVersion` (r:2 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x3302afcb67e838a3f960251b417b9a4f` (r:1 w:0) @@ -100,7 +98,9 @@ impl pallet_xcm_bridge_hub_router::WeightInfo for Weigh /// Storage: `ToWestendXcmRouter::Bridge` (r:1 w:1) /// Proof: `ToWestendXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0) - /// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:2 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) @@ -108,17 +108,17 @@ impl pallet_xcm_bridge_hub_router::WeightInfo for Weigh /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) - /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) - /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) - /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) fn send_message() -> Weight { // Proof Size summary in bytes: // Measured: `448` // Estimated: `6388` - // Minimum execution time: 60_584_000 picoseconds. - Weight::from_parts(62_467_000, 0) + // Minimum execution time: 45_888_000 picoseconds. + Weight::from_parts(47_022_000, 0) .saturating_add(Weight::from_parts(0, 6388)) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_xcm_bridge_hub_router.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_xcm_bridge_hub_router.rs index 84d717b0283..21d15c75af5 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_xcm_bridge_hub_router.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_xcm_bridge_hub_router.rs @@ -16,10 +16,10 @@ //! Autogenerated weights for `pallet_xcm_bridge_hub_router` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-12-12, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-itmxxexx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024 // Executed Command: @@ -49,48 +49,46 @@ use core::marker::PhantomData; pub struct WeightInfo(PhantomData); impl pallet_xcm_bridge_hub_router::WeightInfo for WeightInfo { /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) - /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0) - /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) /// Storage: `ToRococoXcmRouter::Bridge` (r:1 w:1) /// Proof: `ToRococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`) fn on_initialize_when_non_congested() -> Weight { // Proof Size summary in bytes: - // Measured: `193` - // Estimated: `1678` - // Minimum execution time: 8_095_000 picoseconds. - Weight::from_parts(8_393_000, 0) - .saturating_add(Weight::from_parts(0, 1678)) + // Measured: `226` + // Estimated: `5487` + // Minimum execution time: 8_363_000 picoseconds. + Weight::from_parts(8_620_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) - /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0) - /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) fn on_initialize_when_congested() -> Weight { // Proof Size summary in bytes: // Measured: `111` - // Estimated: `1596` - // Minimum execution time: 3_417_000 picoseconds. - Weight::from_parts(3_583_000, 0) - .saturating_add(Weight::from_parts(0, 1596)) + // Estimated: `5487` + // Minimum execution time: 3_436_000 picoseconds. + Weight::from_parts(3_586_000, 0) + .saturating_add(Weight::from_parts(0, 5487)) .saturating_add(T::DbWeight::get().reads(2)) } /// Storage: `ToRococoXcmRouter::Bridge` (r:1 w:1) /// Proof: `ToRococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`) fn report_bridge_status() -> Weight { // Proof Size summary in bytes: - // Measured: `117` + // Measured: `150` // Estimated: `1502` - // Minimum execution time: 10_280_000 picoseconds. - Weight::from_parts(10_703_000, 0) + // Minimum execution time: 9_706_000 picoseconds. + Weight::from_parts(10_139_000, 0) .saturating_add(Weight::from_parts(0, 1502)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - /// Storage: `PolkadotXcm::SupportedVersion` (r:2 w:0) - /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Storage: UNKNOWN KEY `0x3302afcb67e838a3f960251b417b9a4f` (r:1 w:0) @@ -100,7 +98,9 @@ impl pallet_xcm_bridge_hub_router::WeightInfo for Weigh /// Storage: `ToRococoXcmRouter::Bridge` (r:1 w:1) /// Proof: `ToRococoXcmRouter::Bridge` (`max_values`: Some(1), `max_size`: Some(17), added: 512, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::DeliveryFeeFactor` (r:1 w:0) - /// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::DeliveryFeeFactor` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + /// Storage: `PolkadotXcm::SupportedVersion` (r:2 w:0) + /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0) @@ -108,18 +108,18 @@ impl pallet_xcm_bridge_hub_router::WeightInfo for Weigh /// Storage: `ParachainSystem::RelevantMessagingState` (r:1 w:0) /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:1) - /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::InboundXcmpSuspended` (r:1 w:0) - /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::InboundXcmpSuspended` (`max_values`: Some(1), `max_size`: Some(4002), added: 4497, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) - /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) fn send_message() -> Weight { // Proof Size summary in bytes: - // Measured: `487` - // Estimated: `6427` - // Minimum execution time: 63_624_000 picoseconds. - Weight::from_parts(66_071_000, 0) - .saturating_add(Weight::from_parts(0, 6427)) + // Measured: `520` + // Estimated: `6460` + // Minimum execution time: 46_250_000 picoseconds. + Weight::from_parts(47_801_000, 0) + .saturating_add(Weight::from_parts(0, 6460)) .saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml index 1ac31efaf91..98737298468 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml @@ -96,7 +96,7 @@ bp-parachains = { workspace = true } bp-polkadot-bulletin = { workspace = true } bp-polkadot-core = { workspace = true } bp-relayers = { workspace = true } -bp-runtime = { workspace = true } +bp-runtime = { features = ["test-helpers"], workspace = true } bp-rococo = { workspace = true } bp-westend = { workspace = true } pallet-bridge-grandpa = { workspace = true } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_common_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_common_config.rs index 5551b05e202..779cc537ee9 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_common_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_common_config.rs @@ -21,14 +21,9 @@ //! For example, the messaging pallet needs to know the sending and receiving chains, but the //! GRANDPA tracking pallet only needs to be aware of one chain. -use super::{ - weights, AccountId, Balance, Balances, BlockNumber, Runtime, RuntimeEvent, RuntimeOrigin, -}; +use super::{weights, AccountId, Balance, Balances, BlockNumber, Runtime, RuntimeEvent}; use bp_parachains::SingleParaStoredHeaderDataBuilder; -use bp_runtime::UnderlyingChainProvider; -use bridge_runtime_common::messages::ThisChainWithMessages; use frame_support::{parameter_types, traits::ConstU32}; -use sp_runtime::RuntimeDebug; parameter_types! { pub const RelayChainHeadersToKeep: u32 = 1024; @@ -103,15 +98,3 @@ impl pallet_bridge_grandpa::Config for Runt // weights are also the same for both bridges. type WeightInfo = weights::pallet_bridge_grandpa::WeightInfo; } - -/// BridgeHubRococo chain from message lane point of view. -#[derive(RuntimeDebug, Clone, Copy)] -pub struct BridgeHubRococo; - -impl UnderlyingChainProvider for BridgeHubRococo { - type Chain = bp_bridge_hub_rococo::BridgeHubRococo; -} - -impl ThisChainWithMessages for BridgeHubRococo { - type RuntimeOrigin = RuntimeOrigin; -} diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs index 94b936889b7..39ea6369255 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs @@ -20,23 +20,20 @@ //! are reusing Polkadot Bulletin chain primitives everywhere here. use crate::{ - bridge_common_config::BridgeHubRococo, weights, xcm_config::UniversalLocation, AccountId, - BridgeRococoBulletinGrandpa, BridgeRococoBulletinMessages, PolkadotXcm, Runtime, RuntimeEvent, - XcmOverRococoBulletin, XcmRouter, + weights, xcm_config::UniversalLocation, BridgeRococoBulletinGrandpa, + BridgeRococoBulletinMessages, PolkadotXcm, Runtime, RuntimeEvent, XcmOverRococoBulletin, + XcmRouter, +}; +use bp_messages::{ + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, LaneId, }; -use bp_messages::LaneId; use bp_runtime::Chain; use bridge_runtime_common::{ extensions::refund_relayer_extension::{ ActualFeeRefund, RefundBridgedMessages, RefundSignedExtensionAdapter, RefundableMessagesLane, }, - messages, - messages::{ - source::{FromBridgedChainMessagesDeliveryProof, TargetHeaderChainAdapter}, - target::{FromBridgedChainMessagesProof, SourceHeaderChainAdapter}, - MessageBridge, UnderlyingChainProvider, - }, messages_xcm_extension::{ SenderAndLane, XcmAsPlainPayload, XcmBlobHauler, XcmBlobHaulerAdapter, XcmBlobMessageDispatch, XcmVersionOfDestAndRemoteBridge, @@ -44,7 +41,6 @@ use bridge_runtime_common::{ }; use frame_support::{parameter_types, traits::PalletInfoAccess}; -use sp_runtime::RuntimeDebug; use xcm::{ latest::prelude::*, prelude::{InteriorLocation, NetworkId}, @@ -52,15 +48,6 @@ use xcm::{ use xcm_builder::BridgeBlobDispatcher; parameter_types! { - /// Maximal number of entries in the unrewarded relayers vector at the Rococo Bridge Hub. It matches the - /// maximal number of unrewarded relayers that the single confirmation transaction at Rococo Bulletin Chain - /// may process. - pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce = - bp_polkadot_bulletin::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX; - /// Maximal number of unconfirmed messages at the Rococo Bridge Hub. It matches the maximal number of - /// unconfirmed messages that the single confirmation transaction at Rococo Bulletin Chain may process. - pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce = - bp_polkadot_bulletin::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; /// Bridge specific chain (network) identifier of the Rococo Bulletin Chain. pub const RococoBulletinChainId: bp_runtime::ChainId = bp_polkadot_bulletin::PolkadotBulletin::ID; /// Interior location (relative to this runtime) of the with-RococoBulletin messages pallet. @@ -142,31 +129,6 @@ impl XcmBlobHauler for ToRococoBulletinXcmBlobHauler { type OnMessagesDeliveredFromRococoBulletin = XcmBlobHaulerAdapter; -/// Messaging Bridge configuration for BridgeHubRococo -> Rococo Bulletin. -pub struct WithRococoBulletinMessageBridge; -impl MessageBridge for WithRococoBulletinMessageBridge { - // Bulletin chain assumes it is bridged with Polkadot Bridge Hub - const BRIDGED_MESSAGES_PALLET_NAME: &'static str = - bp_bridge_hub_polkadot::WITH_BRIDGE_HUB_POLKADOT_MESSAGES_PALLET_NAME; - type ThisChain = BridgeHubRococo; - type BridgedChain = RococoBulletin; - type BridgedHeaderChain = BridgeRococoBulletinGrandpa; -} - -/// Maximal outbound payload size of BridgeHubRococo -> RococoBulletin messages. -pub type ToRococoBulletinMaximalOutboundPayloadSize = - messages::source::FromThisChainMaximalOutboundPayloadSize; - -/// RococoBulletin chain from message lane point of view. -#[derive(RuntimeDebug, Clone, Copy)] -pub struct RococoBulletin; - -impl UnderlyingChainProvider for RococoBulletin { - type Chain = bp_polkadot_bulletin::PolkadotBulletin; -} - -impl messages::BridgedChainWithMessages for RococoBulletin {} - /// Signed extension that refunds relayers that are delivering messages from the Rococo Bulletin /// chain. pub type OnBridgeHubRococoRefundRococoBulletinMessages = RefundSignedExtensionAdapter< @@ -189,22 +151,20 @@ impl pallet_bridge_messages::Config for Runt type RuntimeEvent = RuntimeEvent; type WeightInfo = weights::pallet_bridge_messages_rococo_to_rococo_bulletin::WeightInfo; - type BridgedChainId = RococoBulletinChainId; + + type ThisChain = bp_bridge_hub_rococo::BridgeHubRococo; + type BridgedChain = bp_polkadot_bulletin::PolkadotBulletin; + type BridgedHeaderChain = BridgeRococoBulletinGrandpa; + type ActiveOutboundLanes = ActiveOutboundLanesToRococoBulletin; - type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane; - type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane; - type MaximalOutboundPayloadSize = ToRococoBulletinMaximalOutboundPayloadSize; type OutboundPayload = XcmAsPlainPayload; type InboundPayload = XcmAsPlainPayload; - type InboundRelayer = AccountId; type DeliveryPayments = (); - type TargetHeaderChain = TargetHeaderChainAdapter; type DeliveryConfirmationPayments = (); - type SourceHeaderChain = SourceHeaderChainAdapter; type MessageDispatch = XcmBlobMessageDispatch; type OnMessagesDelivered = OnMessagesDeliveredFromRococoBulletin; @@ -267,8 +227,7 @@ mod tests { runtime: Runtime, with_bridged_chain_grandpa_instance: BridgeGrandpaRococoBulletinInstance, with_bridged_chain_messages_instance: WithRococoBulletinMessagesInstance, - bridge: WithRococoBulletinMessageBridge, - this_chain: bp_rococo::Rococo, + this_chain: bp_bridge_hub_rococo::BridgeHubRococo, bridged_chain: bp_polkadot_bulletin::PolkadotBulletin, ); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs index 1681ac7f468..07bb718bd13 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs @@ -17,27 +17,21 @@ //! Bridge definitions used on BridgeHubRococo for bridging to BridgeHubWestend. use crate::{ - bridge_common_config::{ - BridgeHubRococo, BridgeParachainWestendInstance, DeliveryRewardInBalance, - }, + bridge_common_config::{BridgeParachainWestendInstance, DeliveryRewardInBalance}, weights, xcm_config::UniversalLocation, - AccountId, BridgeWestendMessages, PolkadotXcm, Runtime, RuntimeEvent, XcmOverBridgeHubWestend, - XcmRouter, + BridgeWestendMessages, PolkadotXcm, Runtime, RuntimeEvent, XcmOverBridgeHubWestend, XcmRouter, +}; +use bp_messages::{ + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, LaneId, }; -use bp_messages::LaneId; use bp_runtime::Chain; use bridge_runtime_common::{ extensions::refund_relayer_extension::{ ActualFeeRefund, RefundBridgedMessages, RefundSignedExtensionAdapter, RefundableMessagesLane, }, - messages, - messages::{ - source::{FromBridgedChainMessagesDeliveryProof, TargetHeaderChainAdapter}, - target::{FromBridgedChainMessagesProof, SourceHeaderChainAdapter}, - MessageBridge, UnderlyingChainProvider, - }, messages_xcm_extension::{ SenderAndLane, XcmAsPlainPayload, XcmBlobHauler, XcmBlobHaulerAdapter, XcmBlobMessageDispatch, XcmVersionOfDestAndRemoteBridge, @@ -46,7 +40,6 @@ use bridge_runtime_common::{ use codec::Encode; use frame_support::{parameter_types, traits::PalletInfoAccess}; -use sp_runtime::RuntimeDebug; use xcm::{ latest::prelude::*, prelude::{InteriorLocation, NetworkId}, @@ -54,11 +47,7 @@ use xcm::{ use xcm_builder::BridgeBlobDispatcher; parameter_types! { - pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce = - bp_bridge_hub_rococo::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX; - pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce = - bp_bridge_hub_rococo::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; - pub const BridgeHubWestendChainId: bp_runtime::ChainId = BridgeHubWestend::ID; + pub const BridgeHubWestendChainId: bp_runtime::ChainId = bp_bridge_hub_westend::BridgeHubWestend::ID; pub BridgeRococoToWestendMessagesPalletInstance: InteriorLocation = [PalletInstance(::index() as u8)].into(); pub WestendGlobalConsensusNetwork: NetworkId = NetworkId::Westend; pub WestendGlobalConsensusNetworkLocation: Location = Location::new( @@ -148,34 +137,6 @@ impl XcmBlobHauler for ToBridgeHubWestendXcmBlobHauler { type OnMessagesDeliveredFromWestend = XcmBlobHaulerAdapter; -/// Messaging Bridge configuration for BridgeHubRococo -> BridgeHubWestend -pub struct WithBridgeHubWestendMessageBridge; -impl MessageBridge for WithBridgeHubWestendMessageBridge { - const BRIDGED_MESSAGES_PALLET_NAME: &'static str = - bp_bridge_hub_rococo::WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME; - type ThisChain = BridgeHubRococo; - type BridgedChain = BridgeHubWestend; - type BridgedHeaderChain = pallet_bridge_parachains::ParachainHeaders< - Runtime, - BridgeParachainWestendInstance, - bp_bridge_hub_westend::BridgeHubWestend, - >; -} - -/// Maximal outbound payload size of BridgeHubRococo -> BridgeHubWestend messages. -pub type ToBridgeHubWestendMaximalOutboundPayloadSize = - messages::source::FromThisChainMaximalOutboundPayloadSize; - -/// BridgeHubWestend chain from message lane point of view. -#[derive(RuntimeDebug, Clone, Copy)] -pub struct BridgeHubWestend; - -impl UnderlyingChainProvider for BridgeHubWestend { - type Chain = bp_bridge_hub_westend::BridgeHubWestend; -} - -impl messages::BridgedChainWithMessages for BridgeHubWestend {} - /// Signed extension that refunds relayers that are delivering messages from the Westend parachain. pub type OnBridgeHubRococoRefundBridgeHubWestendMessages = RefundSignedExtensionAdapter< RefundBridgedMessages< @@ -196,26 +157,28 @@ pub type WithBridgeHubWestendMessagesInstance = pallet_bridge_messages::Instance impl pallet_bridge_messages::Config for Runtime { type RuntimeEvent = RuntimeEvent; type WeightInfo = weights::pallet_bridge_messages_rococo_to_westend::WeightInfo; - type BridgedChainId = BridgeHubWestendChainId; + + type ThisChain = bp_bridge_hub_rococo::BridgeHubRococo; + type BridgedChain = bp_bridge_hub_westend::BridgeHubWestend; + type BridgedHeaderChain = pallet_bridge_parachains::ParachainHeaders< + Runtime, + BridgeParachainWestendInstance, + bp_bridge_hub_westend::BridgeHubWestend, + >; + type ActiveOutboundLanes = ActiveOutboundLanesToBridgeHubWestend; - type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane; - type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane; - type MaximalOutboundPayloadSize = ToBridgeHubWestendMaximalOutboundPayloadSize; type OutboundPayload = XcmAsPlainPayload; type InboundPayload = XcmAsPlainPayload; - type InboundRelayer = AccountId; type DeliveryPayments = (); - type TargetHeaderChain = TargetHeaderChainAdapter; type DeliveryConfirmationPayments = pallet_bridge_relayers::DeliveryConfirmationPaymentsAdapter< Runtime, WithBridgeHubWestendMessagesInstance, DeliveryRewardInBalance, >; - type SourceHeaderChain = SourceHeaderChainAdapter; type MessageDispatch = XcmBlobMessageDispatch< FromWestendMessageBlobDispatcher, Self::WeightInfo, @@ -248,9 +211,8 @@ mod tests { assert_complete_bridge_types, extensions::refund_relayer_extension::RefundableParachain, integrity::{ - assert_complete_bridge_constants, check_message_lane_weights, - AssertBridgeMessagesPalletConstants, AssertBridgePalletNames, AssertChainConstants, - AssertCompleteBridgeConstants, + assert_complete_with_parachain_bridge_constants, check_message_lane_weights, + AssertChainConstants, AssertCompleteBridgeConstants, }, }; use parachains_common::Balance; @@ -292,36 +254,20 @@ mod tests { runtime: Runtime, with_bridged_chain_grandpa_instance: BridgeGrandpaWestendInstance, with_bridged_chain_messages_instance: WithBridgeHubWestendMessagesInstance, - bridge: WithBridgeHubWestendMessageBridge, - this_chain: bp_rococo::Rococo, - bridged_chain: bp_westend::Westend, + this_chain: bp_bridge_hub_rococo::BridgeHubRococo, + bridged_chain: bp_bridge_hub_westend::BridgeHubWestend, ); - assert_complete_bridge_constants::< + assert_complete_with_parachain_bridge_constants::< Runtime, BridgeGrandpaWestendInstance, WithBridgeHubWestendMessagesInstance, - WithBridgeHubWestendMessageBridge, + bp_westend::Westend, >(AssertCompleteBridgeConstants { this_chain_constants: AssertChainConstants { block_length: bp_bridge_hub_rococo::BlockLength::get(), block_weights: bp_bridge_hub_rococo::BlockWeightsForAsyncBacking::get(), }, - messages_pallet_constants: AssertBridgeMessagesPalletConstants { - max_unrewarded_relayers_in_bridged_confirmation_tx: - bp_bridge_hub_westend::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, - max_unconfirmed_messages_in_bridged_confirmation_tx: - bp_bridge_hub_westend::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, - bridged_chain_id: BridgeHubWestend::ID, - }, - pallet_names: AssertBridgePalletNames { - with_this_chain_messages_pallet_name: - bp_bridge_hub_rococo::WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME, - with_bridged_chain_grandpa_pallet_name: - bp_westend::WITH_WESTEND_GRANDPA_PALLET_NAME, - with_bridged_chain_messages_pallet_name: - bp_bridge_hub_westend::WITH_BRIDGE_HUB_WESTEND_MESSAGES_PALLET_NAME, - }, }); bridge_runtime_common::extensions::priority_calculator::per_relay_header::ensure_priority_boost_is_sane::< @@ -332,7 +278,7 @@ mod tests { bridge_runtime_common::extensions::priority_calculator::per_parachain_header::ensure_priority_boost_is_sane::< Runtime, - RefundableParachain, + RefundableParachain, PriorityBoostPerParachainHeader, >(FEE_BOOST_PER_PARACHAIN_HEADER); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs index 57ed5ec258d..8ca5898d1a1 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs @@ -1432,7 +1432,7 @@ impl_runtime_apis! { prepare_message_proof_from_parachain::< Runtime, bridge_common_config::BridgeGrandpaWestendInstance, - bridge_to_westend_config::WithBridgeHubWestendMessageBridge, + bridge_to_westend_config::WithBridgeHubWestendMessagesInstance, >(params, generate_xcm_builder_bridge_message_sample([GlobalConsensus(Rococo), Parachain(42)].into())) } @@ -1442,7 +1442,7 @@ impl_runtime_apis! { prepare_message_delivery_proof_from_parachain::< Runtime, bridge_common_config::BridgeGrandpaWestendInstance, - bridge_to_westend_config::WithBridgeHubWestendMessageBridge, + bridge_to_westend_config::WithBridgeHubWestendMessagesInstance, >(params) } @@ -1467,7 +1467,7 @@ impl_runtime_apis! { prepare_message_proof_from_grandpa_chain::< Runtime, bridge_common_config::BridgeGrandpaRococoBulletinInstance, - bridge_to_bulletin_config::WithRococoBulletinMessageBridge, + bridge_to_bulletin_config::WithRococoBulletinMessagesInstance, >(params, generate_xcm_builder_bridge_message_sample([GlobalConsensus(Rococo), Parachain(42)].into())) } @@ -1477,7 +1477,7 @@ impl_runtime_apis! { prepare_message_delivery_proof_from_grandpa_chain::< Runtime, bridge_common_config::BridgeGrandpaRococoBulletinInstance, - bridge_to_bulletin_config::WithRococoBulletinMessageBridge, + bridge_to_bulletin_config::WithRococoBulletinMessagesInstance, >(params) } @@ -1503,7 +1503,7 @@ impl_runtime_apis! { fn prepare_parachain_heads_proof( parachains: &[bp_polkadot_core::parachains::ParaId], parachain_head_size: u32, - proof_size: bp_runtime::StorageProofSize, + proof_params: bp_runtime::UnverifiedStorageProofParams, ) -> ( pallet_bridge_parachains::RelayBlockNumber, pallet_bridge_parachains::RelayBlockHash, @@ -1513,7 +1513,7 @@ impl_runtime_apis! { prepare_parachain_heads_proof::( parachains, parachain_head_size, - proof_size, + proof_params, ) } } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_grandpa.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_grandpa.rs index bbd27bbb1d7..4ce57b2e501 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_grandpa.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_grandpa.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bridge_grandpa` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-yaoqqom-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024 // Executed Command: @@ -68,13 +68,13 @@ impl pallet_bridge_grandpa::WeightInfo for WeightInfo pallet_bridge_grandpa::WeightInfo for WeightInfo pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `654` // Estimated: `52645` - // Minimum execution time: 37_405_000 picoseconds. - Weight::from_parts(38_397_000, 0) + // Minimum execution time: 37_206_000 picoseconds. + Weight::from_parts(38_545_000, 0) .saturating_add(Weight::from_parts(0, 52645)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -74,13 +74,17 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `BridgePolkadotBulletinMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn receive_two_messages_proof() -> Weight { + /// The range of component `n` is `[1, 4076]`. + /// The range of component `n` is `[1, 4076]`. + fn receive_n_messages_proof(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `654` // Estimated: `52645` - // Minimum execution time: 48_076_000 picoseconds. - Weight::from_parts(49_374_000, 0) + // Minimum execution time: 37_075_000 picoseconds. + Weight::from_parts(37_757_000, 0) .saturating_add(Weight::from_parts(0, 52645)) + // Standard Error: 5_776 + .saturating_add(Weight::from_parts(11_586_768, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -96,8 +100,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `654` // Estimated: `52645` - // Minimum execution time: 42_529_000 picoseconds. - Weight::from_parts(44_536_000, 0) + // Minimum execution time: 42_087_000 picoseconds. + Weight::from_parts(42_970_000, 0) .saturating_add(Weight::from_parts(0, 52645)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) @@ -108,30 +112,20 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `BridgePolkadotBulletinGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`) /// Storage: `BridgePolkadotBulletinMessages::InboundLanes` (r:1 w:1) /// Proof: `BridgePolkadotBulletinMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) - fn receive_single_message_proof_1_kb() -> Weight { - // Proof Size summary in bytes: - // Measured: `622` - // Estimated: `52645` - // Minimum execution time: 36_101_000 picoseconds. - Weight::from_parts(37_356_000, 0) - .saturating_add(Weight::from_parts(0, 52645)) - .saturating_add(T::DbWeight::get().reads(3)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `BridgePolkadotBulletinMessages::PalletOperatingMode` (r:1 w:0) - /// Proof: `BridgePolkadotBulletinMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) - /// Storage: `BridgePolkadotBulletinGrandpa::ImportedHeaders` (r:1 w:0) - /// Proof: `BridgePolkadotBulletinGrandpa::ImportedHeaders` (`max_values`: Some(1024), `max_size`: Some(68), added: 1553, mode: `MaxEncodedLen`) - /// Storage: `BridgePolkadotBulletinMessages::InboundLanes` (r:1 w:1) - /// Proof: `BridgePolkadotBulletinMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) - fn receive_single_message_proof_16_kb() -> Weight { + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 16384]`. + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `622` + // Measured: `654` // Estimated: `52645` - // Minimum execution time: 70_370_000 picoseconds. - Weight::from_parts(72_054_000, 0) + // Minimum execution time: 35_055_000 picoseconds. + Weight::from_parts(36_987_740, 0) .saturating_add(Weight::from_parts(0, 52645)) - .saturating_add(T::DbWeight::get().reads(3)) + // Standard Error: 4 + .saturating_add(Weight::from_parts(2_316, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `BridgePolkadotBulletinMessages::PalletOperatingMode` (r:1 w:0) @@ -144,8 +138,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `621` // Estimated: `2543` - // Minimum execution time: 25_144_000 picoseconds. - Weight::from_parts(25_876_000, 0) + // Minimum execution time: 24_326_000 picoseconds. + Weight::from_parts(25_169_000, 0) .saturating_add(Weight::from_parts(0, 2543)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -160,8 +154,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `621` // Estimated: `2543` - // Minimum execution time: 25_085_000 picoseconds. - Weight::from_parts(25_872_000, 0) + // Minimum execution time: 24_484_000 picoseconds. + Weight::from_parts(25_130_000, 0) .saturating_add(Weight::from_parts(0, 2543)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -176,8 +170,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `621` // Estimated: `2543` - // Minimum execution time: 25_181_000 picoseconds. - Weight::from_parts(25_920_000, 0) + // Minimum execution time: 24_450_000 picoseconds. + Weight::from_parts(25_164_000, 0) .saturating_add(Weight::from_parts(0, 2543)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(1)) @@ -204,17 +198,17 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) - /// The range of component `i` is `[128, 2048]`. - /// The range of component `i` is `[128, 2048]`. - fn receive_single_message_proof_with_dispatch(i: u32, ) -> Weight { + /// The range of component `n` is `[1, 16384]`. + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof_with_dispatch(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `813` // Estimated: `52645` - // Minimum execution time: 57_941_000 picoseconds. - Weight::from_parts(59_000_115, 0) + // Minimum execution time: 54_317_000 picoseconds. + Weight::from_parts(59_171_547, 0) .saturating_add(Weight::from_parts(0, 52645)) - // Standard Error: 46 - .saturating_add(Weight::from_parts(8_660, 0).saturating_mul(i.into())) + // Standard Error: 7 + .saturating_add(Weight::from_parts(7_566, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_messages_rococo_to_westend.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_messages_rococo_to_westend.rs index e096c40d284..9c05dae979d 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_messages_rococo_to_westend.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_messages_rococo_to_westend.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_messages` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024 @@ -62,8 +62,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `658` // Estimated: `52645` - // Minimum execution time: 41_848_000 picoseconds. - Weight::from_parts(43_363_000, 0) + // Minimum execution time: 41_396_000 picoseconds. + Weight::from_parts(43_141_000, 0) .saturating_add(Weight::from_parts(0, 52645)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) @@ -78,13 +78,17 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn receive_two_messages_proof() -> Weight { + /// The range of component `n` is `[1, 4076]`. + /// The range of component `n` is `[1, 4076]`. + fn receive_n_messages_proof(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `658` // Estimated: `52645` - // Minimum execution time: 52_674_000 picoseconds. - Weight::from_parts(55_080_000, 0) + // Minimum execution time: 41_095_000 picoseconds. + Weight::from_parts(42_030_000, 0) .saturating_add(Weight::from_parts(0, 52645)) + // Standard Error: 5_702 + .saturating_add(Weight::from_parts(11_627_951, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -102,8 +106,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `658` // Estimated: `52645` - // Minimum execution time: 46_892_000 picoseconds. - Weight::from_parts(49_441_000, 0) + // Minimum execution time: 45_912_000 picoseconds. + Weight::from_parts(47_564_000, 0) .saturating_add(Weight::from_parts(0, 52645)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) @@ -116,32 +120,20 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`) /// Storage: `BridgeWestendMessages::InboundLanes` (r:1 w:1) /// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) - fn receive_single_message_proof_1_kb() -> Weight { - // Proof Size summary in bytes: - // Measured: `626` - // Estimated: `52645` - // Minimum execution time: 41_262_000 picoseconds. - Weight::from_parts(42_734_000, 0) - .saturating_add(Weight::from_parts(0, 52645)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0) - /// Proof: `BridgeWestendMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) - /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0) - /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) - /// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:1 w:0) - /// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`) - /// Storage: `BridgeWestendMessages::InboundLanes` (r:1 w:1) - /// Proof: `BridgeWestendMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) - fn receive_single_message_proof_16_kb() -> Weight { + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 16384]`. + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `626` + // Measured: `658` // Estimated: `52645` - // Minimum execution time: 75_654_000 picoseconds. - Weight::from_parts(76_866_000, 0) + // Minimum execution time: 39_175_000 picoseconds. + Weight::from_parts(41_674_095, 0) .saturating_add(Weight::from_parts(0, 52645)) - .saturating_add(T::DbWeight::get().reads(4)) + // Standard Error: 4 + .saturating_add(Weight::from_parts(2_305, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `BridgeWestendMessages::PalletOperatingMode` (r:1 w:0) @@ -158,8 +150,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `501` // Estimated: `3966` - // Minimum execution time: 32_911_000 picoseconds. - Weight::from_parts(33_644_000, 0) + // Minimum execution time: 32_033_000 picoseconds. + Weight::from_parts(33_131_000, 0) .saturating_add(Weight::from_parts(0, 3966)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -178,8 +170,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `501` // Estimated: `3966` - // Minimum execution time: 32_830_000 picoseconds. - Weight::from_parts(33_675_000, 0) + // Minimum execution time: 32_153_000 picoseconds. + Weight::from_parts(33_126_000, 0) .saturating_add(Weight::from_parts(0, 3966)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -198,8 +190,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `501` // Estimated: `6086` - // Minimum execution time: 37_024_000 picoseconds. - Weight::from_parts(38_112_000, 0) + // Minimum execution time: 36_387_000 picoseconds. + Weight::from_parts(37_396_000, 0) .saturating_add(Weight::from_parts(0, 6086)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) @@ -226,17 +218,17 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) - /// The range of component `i` is `[128, 2048]`. - /// The range of component `i` is `[128, 2048]`. - fn receive_single_message_proof_with_dispatch(i: u32, ) -> Weight { + /// The range of component `n` is `[1, 16384]`. + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof_with_dispatch(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `789` // Estimated: `52645` - // Minimum execution time: 60_653_000 picoseconds. - Weight::from_parts(62_358_212, 0) + // Minimum execution time: 56_562_000 picoseconds. + Weight::from_parts(61_452_871, 0) .saturating_add(Weight::from_parts(0, 52645)) - // Standard Error: 57 - .saturating_add(Weight::from_parts(8_660, 0).saturating_mul(i.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(7_587, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_parachains.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_parachains.rs index af216cd997c..8eb291ea145 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_parachains.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_parachains.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_parachains` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024 @@ -61,13 +61,15 @@ impl pallet_bridge_parachains::WeightInfo for WeightInf /// Storage: `BridgeWestendParachains::ImportedParaHeads` (r:0 w:1) /// Proof: `BridgeWestendParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 2]`. - fn submit_parachain_heads_with_n_parachains(_p: u32, ) -> Weight { + fn submit_parachain_heads_with_n_parachains(p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `558` // Estimated: `2543` - // Minimum execution time: 35_711_000 picoseconds. - Weight::from_parts(37_344_514, 0) + // Minimum execution time: 34_889_000 picoseconds. + Weight::from_parts(36_100_759, 0) .saturating_add(Weight::from_parts(0, 2543)) + // Standard Error: 102_466 + .saturating_add(Weight::from_parts(178_820, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -87,8 +89,8 @@ impl pallet_bridge_parachains::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `558` // Estimated: `2543` - // Minimum execution time: 37_717_000 picoseconds. - Weight::from_parts(38_374_000, 0) + // Minimum execution time: 36_501_000 picoseconds. + Weight::from_parts(37_266_000, 0) .saturating_add(Weight::from_parts(0, 2543)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -109,8 +111,8 @@ impl pallet_bridge_parachains::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `558` // Estimated: `2543` - // Minimum execution time: 70_203_000 picoseconds. - Weight::from_parts(70_994_000, 0) + // Minimum execution time: 66_059_000 picoseconds. + Weight::from_parts(67_139_000, 0) .saturating_add(Weight::from_parts(0, 2543)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_relayers.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_relayers.rs index a66a7fb08aa..f8bb983e80a 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_relayers.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_bridge_relayers.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_relayers` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024 @@ -56,8 +56,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `278` // Estimated: `3593` - // Minimum execution time: 43_669_000 picoseconds. - Weight::from_parts(44_907_000, 0) + // Minimum execution time: 44_224_000 picoseconds. + Weight::from_parts(44_905_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -72,8 +72,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `131` // Estimated: `4714` - // Minimum execution time: 24_024_000 picoseconds. - Weight::from_parts(24_582_000, 0) + // Minimum execution time: 23_902_000 picoseconds. + Weight::from_parts(24_702_000, 0) .saturating_add(Weight::from_parts(0, 4714)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -86,8 +86,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `231` // Estimated: `4714` - // Minimum execution time: 24_522_000 picoseconds. - Weight::from_parts(25_362_000, 0) + // Minimum execution time: 24_469_000 picoseconds. + Weight::from_parts(25_176_000, 0) .saturating_add(Weight::from_parts(0, 4714)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -102,8 +102,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `334` // Estimated: `4714` - // Minimum execution time: 26_963_000 picoseconds. - Weight::from_parts(27_686_000, 0) + // Minimum execution time: 27_518_000 picoseconds. + Weight::from_parts(28_068_000, 0) .saturating_add(Weight::from_parts(0, 4714)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -114,8 +114,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `76` // Estimated: `3538` - // Minimum execution time: 5_401_000 picoseconds. - Weight::from_parts(5_563_000, 0) + // Minimum execution time: 5_484_000 picoseconds. + Weight::from_parts(5_718_000, 0) .saturating_add(Weight::from_parts(0, 3538)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index abd84f8e89b..bafc973bdac 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -16,10 +16,10 @@ //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-12-12, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-itmxxexx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 // Executed Command: @@ -68,8 +68,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `171` // Estimated: `6196` - // Minimum execution time: 61_813_000 picoseconds. - Weight::from_parts(62_996_000, 6196) + // Minimum execution time: 60_119_000 picoseconds. + Weight::from_parts(61_871_000, 6196) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -77,8 +77,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_044_000 picoseconds. - Weight::from_parts(2_112_000, 0) + // Minimum execution time: 998_000 picoseconds. + Weight::from_parts(1_038_000, 0) } // Storage: `PolkadotXcm::Queries` (r:1 w:0) // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -86,58 +86,58 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `32` // Estimated: `3497` - // Minimum execution time: 7_472_000 picoseconds. - Weight::from_parts(7_723_000, 3497) + // Minimum execution time: 6_327_000 picoseconds. + Weight::from_parts(6_520_000, 3497) .saturating_add(T::DbWeight::get().reads(1)) } pub fn transact() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_414_000 picoseconds. - Weight::from_parts(8_765_000, 0) + // Minimum execution time: 6_783_000 picoseconds. + Weight::from_parts(7_117_000, 0) } pub fn refund_surplus() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_192_000 picoseconds. - Weight::from_parts(2_243_000, 0) + // Minimum execution time: 1_589_000 picoseconds. + Weight::from_parts(1_655_000, 0) } pub fn set_error_handler() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_866_000 picoseconds. - Weight::from_parts(1_931_000, 0) + // Minimum execution time: 1_013_000 picoseconds. + Weight::from_parts(1_045_000, 0) } pub fn set_appendix() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_847_000 picoseconds. - Weight::from_parts(1_921_000, 0) + // Minimum execution time: 1_005_000 picoseconds. + Weight::from_parts(1_044_000, 0) } pub fn clear_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_797_000 picoseconds. - Weight::from_parts(1_880_000, 0) + // Minimum execution time: 964_000 picoseconds. + Weight::from_parts(1_011_000, 0) } pub fn descend_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_458_000 picoseconds. - Weight::from_parts(2_523_000, 0) + // Minimum execution time: 1_005_000 picoseconds. + Weight::from_parts(1_027_000, 0) } pub fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_833_000 picoseconds. - Weight::from_parts(1_906_000, 0) + // Minimum execution time: 980_000 picoseconds. + Weight::from_parts(1_009_000, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -159,8 +159,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `171` // Estimated: `6196` - // Minimum execution time: 54_659_000 picoseconds. - Weight::from_parts(56_025_000, 6196) + // Minimum execution time: 56_726_000 picoseconds. + Weight::from_parts(59_300_000, 6196) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -170,8 +170,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `3555` - // Minimum execution time: 10_953_000 picoseconds. - Weight::from_parts(11_220_000, 3555) + // Minimum execution time: 8_962_000 picoseconds. + Weight::from_parts(9_519_000, 3555) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -179,8 +179,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_834_000 picoseconds. - Weight::from_parts(1_892_000, 0) + // Minimum execution time: 999_000 picoseconds. + Weight::from_parts(1_035_000, 0) } // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -200,8 +200,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 22_238_000 picoseconds. - Weight::from_parts(22_690_000, 3503) + // Minimum execution time: 20_313_000 picoseconds. + Weight::from_parts(21_000_000, 3503) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -211,44 +211,44 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_798_000 picoseconds. - Weight::from_parts(3_936_000, 0) + // Minimum execution time: 2_820_000 picoseconds. + Weight::from_parts(2_949_000, 0) .saturating_add(T::DbWeight::get().writes(1)) } pub fn burn_asset() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_985_000 picoseconds. - Weight::from_parts(3_099_000, 0) + // Minimum execution time: 1_293_000 picoseconds. + Weight::from_parts(1_354_000, 0) } pub fn expect_asset() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_955_000 picoseconds. - Weight::from_parts(2_050_000, 0) + // Minimum execution time: 1_076_000 picoseconds. + Weight::from_parts(1_114_000, 0) } pub fn expect_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_939_000 picoseconds. - Weight::from_parts(1_990_000, 0) + // Minimum execution time: 1_014_000 picoseconds. + Weight::from_parts(1_055_000, 0) } pub fn expect_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_841_000 picoseconds. - Weight::from_parts(1_900_000, 0) + // Minimum execution time: 979_000 picoseconds. + Weight::from_parts(1_019_000, 0) } pub fn expect_transact_status() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_081_000 picoseconds. - Weight::from_parts(2_145_000, 0) + // Minimum execution time: 1_161_000 picoseconds. + Weight::from_parts(1_208_000, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -270,8 +270,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `171` // Estimated: `6196` - // Minimum execution time: 59_600_000 picoseconds. - Weight::from_parts(61_572_000, 6196) + // Minimum execution time: 62_250_000 picoseconds. + Weight::from_parts(64_477_000, 6196) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -279,8 +279,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_390_000 picoseconds. - Weight::from_parts(4_517_000, 0) + // Minimum execution time: 4_286_000 picoseconds. + Weight::from_parts(4_476_000, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -302,8 +302,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `171` // Estimated: `6196` - // Minimum execution time: 53_864_000 picoseconds. - Weight::from_parts(55_527_000, 6196) + // Minimum execution time: 58_253_000 picoseconds. + Weight::from_parts(59_360_000, 6196) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -311,22 +311,22 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_879_000 picoseconds. - Weight::from_parts(1_947_000, 0) + // Minimum execution time: 1_026_000 picoseconds. + Weight::from_parts(1_065_000, 0) } pub fn set_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_827_000 picoseconds. - Weight::from_parts(1_900_000, 0) + // Minimum execution time: 993_000 picoseconds. + Weight::from_parts(1_015_000, 0) } pub fn clear_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_824_000 picoseconds. - Weight::from_parts(1_898_000, 0) + // Minimum execution time: 966_000 picoseconds. + Weight::from_parts(999_000, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -339,16 +339,16 @@ impl WeightInfo { // Storage: `BridgeWestendMessages::OutboundLanesCongestedSignals` (r:1 w:0) // Proof: `BridgeWestendMessages::OutboundLanesCongestedSignals` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`) // Storage: `BridgeWestendMessages::OutboundMessages` (r:0 w:1) - // Proof: `BridgeWestendMessages::OutboundMessages` (`max_values`: None, `max_size`: Some(2621472), added: 2623947, mode: `MaxEncodedLen`) + // Proof: `BridgeWestendMessages::OutboundMessages` (`max_values`: None, `max_size`: Some(65568), added: 68043, mode: `MaxEncodedLen`) /// The range of component `x` is `[1, 1000]`. pub fn export_message(x: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `190` // Estimated: `6130` - // Minimum execution time: 41_598_000 picoseconds. - Weight::from_parts(42_219_173, 6130) - // Standard Error: 426 - .saturating_add(Weight::from_parts(452_460, 0).saturating_mul(x.into())) + // Minimum execution time: 37_014_000 picoseconds. + Weight::from_parts(38_096_655, 6130) + // Standard Error: 61 + .saturating_add(Weight::from_parts(45_146, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -356,14 +356,14 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_812_000 picoseconds. - Weight::from_parts(1_898_000, 0) + // Minimum execution time: 996_000 picoseconds. + Weight::from_parts(1_025_000, 0) } pub fn unpaid_execution() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_915_000 picoseconds. - Weight::from_parts(1_976_000, 0) + // Minimum execution time: 1_001_000 picoseconds. + Weight::from_parts(1_044_000, 0) } } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs index b309232825d..1d3d9e55f7e 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/tests/tests.rs @@ -148,8 +148,7 @@ mod bridge_hub_westend_tests { use bridge_hub_test_utils::test_cases::from_parachain; use bridge_to_westend_config::{ BridgeHubWestendChainId, BridgeHubWestendLocation, WestendGlobalConsensusNetwork, - WithBridgeHubWestendMessageBridge, WithBridgeHubWestendMessagesInstance, - XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WESTEND, + WithBridgeHubWestendMessagesInstance, XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WESTEND, }; // Para id of sibling chain used in tests. @@ -162,7 +161,6 @@ mod bridge_hub_westend_tests { BridgeGrandpaWestendInstance, BridgeParachainWestendInstance, WithBridgeHubWestendMessagesInstance, - WithBridgeHubWestendMessageBridge, >; #[test] @@ -457,8 +455,8 @@ mod bridge_hub_bulletin_tests { use bridge_hub_test_utils::test_cases::from_grandpa_chain; use bridge_to_bulletin_config::{ RococoBulletinChainId, RococoBulletinGlobalConsensusNetwork, - RococoBulletinGlobalConsensusNetworkLocation, WithRococoBulletinMessageBridge, - WithRococoBulletinMessagesInstance, XCM_LANE_FOR_ROCOCO_PEOPLE_TO_ROCOCO_BULLETIN, + RococoBulletinGlobalConsensusNetworkLocation, WithRococoBulletinMessagesInstance, + XCM_LANE_FOR_ROCOCO_PEOPLE_TO_ROCOCO_BULLETIN, }; // Para id of sibling chain used in tests. @@ -470,7 +468,6 @@ mod bridge_hub_bulletin_tests { AllPalletsWithoutSystem, BridgeGrandpaRococoBulletinInstance, WithRococoBulletinMessagesInstance, - WithRococoBulletinMessageBridge, >; #[test] @@ -594,44 +591,4 @@ mod bridge_hub_bulletin_tests { construct_and_apply_extrinsic, ) } - - #[test] - pub fn can_calculate_fee_for_standalone_message_delivery_transaction() { - bridge_hub_test_utils::check_sane_fees_values( - "bp_bridge_hub_rococo::BridgeHubRococoBaseDeliveryFeeInRocs", - bp_bridge_hub_rococo::BridgeHubRococoBaseDeliveryFeeInRocs::get(), - || { - from_grandpa_chain::can_calculate_fee_for_standalone_message_delivery_transaction::< - RuntimeTestsAdapter, - >(collator_session_keys(), construct_and_estimate_extrinsic_fee) - }, - Perbill::from_percent(33), - None, /* we don't want lowering according to the Bulletin setup, because - * `from_grandpa_chain` is cheaper then `from_parachain_chain` */ - &format!( - "Estimate fee for `single message delivery` for runtime: {:?}", - ::Version::get() - ), - ) - } - - #[test] - pub fn can_calculate_fee_for_standalone_message_confirmation_transaction() { - bridge_hub_test_utils::check_sane_fees_values( - "bp_bridge_hub_rococo::BridgeHubRococoBaseConfirmationFeeInRocs", - bp_bridge_hub_rococo::BridgeHubRococoBaseConfirmationFeeInRocs::get(), - || { - from_grandpa_chain::can_calculate_fee_for_standalone_message_confirmation_transaction::< - RuntimeTestsAdapter, - >(collator_session_keys(), construct_and_estimate_extrinsic_fee) - }, - Perbill::from_percent(33), - None, /* we don't want lowering according to the Bulletin setup, because - * `from_grandpa_chain` is cheaper then `from_parachain_chain` */ - &format!( - "Estimate fee for `single message confirmation` for runtime: {:?}", - ::Version::get() - ), - ) - } } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml index c18d5036e06..e2671d3d606 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml @@ -89,7 +89,7 @@ bp-messages = { workspace = true } bp-parachains = { workspace = true } bp-polkadot-core = { workspace = true } bp-relayers = { workspace = true } -bp-runtime = { workspace = true } +bp-runtime = { features = ["test-helpers"], workspace = true } bp-rococo = { workspace = true } bp-westend = { workspace = true } pallet-bridge-grandpa = { workspace = true } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs index 425b53da30f..09d55f4323a 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs @@ -18,10 +18,12 @@ use crate::{ bridge_common_config::DeliveryRewardInBalance, weights, xcm_config::UniversalLocation, - AccountId, BridgeRococoMessages, PolkadotXcm, Runtime, RuntimeEvent, RuntimeOrigin, - XcmOverBridgeHubRococo, XcmRouter, + BridgeRococoMessages, PolkadotXcm, Runtime, RuntimeEvent, XcmOverBridgeHubRococo, XcmRouter, +}; +use bp_messages::{ + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, LaneId, }; -use bp_messages::LaneId; use bp_parachains::SingleParaStoredHeaderDataBuilder; use bp_runtime::Chain; use bridge_runtime_common::{ @@ -29,12 +31,6 @@ use bridge_runtime_common::{ ActualFeeRefund, RefundBridgedMessages, RefundSignedExtensionAdapter, RefundableMessagesLane, }, - messages, - messages::{ - source::{FromBridgedChainMessagesDeliveryProof, TargetHeaderChainAdapter}, - target::{FromBridgedChainMessagesProof, SourceHeaderChainAdapter}, - MessageBridge, ThisChainWithMessages, UnderlyingChainProvider, - }, messages_xcm_extension::{ SenderAndLane, XcmAsPlainPayload, XcmBlobHauler, XcmBlobHaulerAdapter, XcmBlobMessageDispatch, XcmVersionOfDestAndRemoteBridge, @@ -45,7 +41,6 @@ use frame_support::{ parameter_types, traits::{ConstU32, PalletInfoAccess}, }; -use sp_runtime::RuntimeDebug; use xcm::{ latest::prelude::*, prelude::{InteriorLocation, NetworkId}, @@ -59,11 +54,7 @@ parameter_types! { pub const RococoBridgeParachainPalletName: &'static str = "Paras"; pub const MaxRococoParaHeadDataSize: u32 = bp_rococo::MAX_NESTED_PARACHAIN_HEAD_DATA_SIZE; - pub const MaxUnrewardedRelayerEntriesAtInboundLane: bp_messages::MessageNonce = - bp_bridge_hub_westend::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX; - pub const MaxUnconfirmedMessagesAtInboundLane: bp_messages::MessageNonce = - bp_bridge_hub_westend::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX; - pub const BridgeHubRococoChainId: bp_runtime::ChainId = BridgeHubRococo::ID; + pub const BridgeHubRococoChainId: bp_runtime::ChainId = bp_bridge_hub_rococo::BridgeHubRococo::ID; pub BridgeWestendToRococoMessagesPalletInstance: InteriorLocation = [PalletInstance(::index() as u8)].into(); pub RococoGlobalConsensusNetwork: NetworkId = NetworkId::Rococo; pub RococoGlobalConsensusNetworkLocation: Location = Location::new( @@ -153,46 +144,6 @@ impl XcmBlobHauler for ToBridgeHubRococoXcmBlobHauler { /// On messages delivered callback. type OnMessagesDelivered = XcmBlobHaulerAdapter; -/// Messaging Bridge configuration for BridgeHubWestend -> BridgeHubRococo -pub struct WithBridgeHubRococoMessageBridge; -impl MessageBridge for WithBridgeHubRococoMessageBridge { - const BRIDGED_MESSAGES_PALLET_NAME: &'static str = - bp_bridge_hub_westend::WITH_BRIDGE_HUB_WESTEND_MESSAGES_PALLET_NAME; - type ThisChain = BridgeHubWestend; - type BridgedChain = BridgeHubRococo; - type BridgedHeaderChain = pallet_bridge_parachains::ParachainHeaders< - Runtime, - BridgeParachainRococoInstance, - bp_bridge_hub_rococo::BridgeHubRococo, - >; -} - -/// Maximal outbound payload size of BridgeHubWestend -> BridgeHubRococo messages. -type ToBridgeHubRococoMaximalOutboundPayloadSize = - messages::source::FromThisChainMaximalOutboundPayloadSize; - -/// BridgeHubRococo chain from message lane point of view. -#[derive(RuntimeDebug, Clone, Copy)] -pub struct BridgeHubRococo; - -impl UnderlyingChainProvider for BridgeHubRococo { - type Chain = bp_bridge_hub_rococo::BridgeHubRococo; -} - -impl messages::BridgedChainWithMessages for BridgeHubRococo {} - -/// BridgeHubWestend chain from message lane point of view. -#[derive(RuntimeDebug, Clone, Copy)] -pub struct BridgeHubWestend; - -impl UnderlyingChainProvider for BridgeHubWestend { - type Chain = bp_bridge_hub_westend::BridgeHubWestend; -} - -impl ThisChainWithMessages for BridgeHubWestend { - type RuntimeOrigin = RuntimeOrigin; -} - /// Signed extension that refunds relayers that are delivering messages from the Rococo parachain. pub type OnBridgeHubWestendRefundBridgeHubRococoMessages = RefundSignedExtensionAdapter< RefundBridgedMessages< @@ -237,26 +188,28 @@ pub type WithBridgeHubRococoMessagesInstance = pallet_bridge_messages::Instance1 impl pallet_bridge_messages::Config for Runtime { type RuntimeEvent = RuntimeEvent; type WeightInfo = weights::pallet_bridge_messages::WeightInfo; - type BridgedChainId = BridgeHubRococoChainId; + + type ThisChain = bp_bridge_hub_westend::BridgeHubWestend; + type BridgedChain = bp_bridge_hub_rococo::BridgeHubRococo; + type BridgedHeaderChain = pallet_bridge_parachains::ParachainHeaders< + Runtime, + BridgeParachainRococoInstance, + bp_bridge_hub_rococo::BridgeHubRococo, + >; + type ActiveOutboundLanes = ActiveOutboundLanesToBridgeHubRococo; - type MaxUnrewardedRelayerEntriesAtInboundLane = MaxUnrewardedRelayerEntriesAtInboundLane; - type MaxUnconfirmedMessagesAtInboundLane = MaxUnconfirmedMessagesAtInboundLane; - type MaximalOutboundPayloadSize = ToBridgeHubRococoMaximalOutboundPayloadSize; type OutboundPayload = XcmAsPlainPayload; type InboundPayload = XcmAsPlainPayload; - type InboundRelayer = AccountId; type DeliveryPayments = (); - type TargetHeaderChain = TargetHeaderChainAdapter; type DeliveryConfirmationPayments = pallet_bridge_relayers::DeliveryConfirmationPaymentsAdapter< Runtime, WithBridgeHubRococoMessagesInstance, DeliveryRewardInBalance, >; - type SourceHeaderChain = SourceHeaderChainAdapter; type MessageDispatch = XcmBlobMessageDispatch< FromRococoMessageBlobDispatcher, Self::WeightInfo, @@ -287,9 +240,8 @@ mod tests { assert_complete_bridge_types, extensions::refund_relayer_extension::RefundableParachain, integrity::{ - assert_complete_bridge_constants, check_message_lane_weights, - AssertBridgeMessagesPalletConstants, AssertBridgePalletNames, AssertChainConstants, - AssertCompleteBridgeConstants, + assert_complete_with_parachain_bridge_constants, check_message_lane_weights, + AssertChainConstants, AssertCompleteBridgeConstants, }, }; use parachains_common::Balance; @@ -331,35 +283,20 @@ mod tests { runtime: Runtime, with_bridged_chain_grandpa_instance: BridgeGrandpaRococoInstance, with_bridged_chain_messages_instance: WithBridgeHubRococoMessagesInstance, - bridge: WithBridgeHubRococoMessageBridge, - this_chain: bp_westend::Westend, - bridged_chain: bp_rococo::Rococo, + this_chain: bp_bridge_hub_westend::BridgeHubWestend, + bridged_chain: bp_bridge_hub_rococo::BridgeHubRococo, ); - assert_complete_bridge_constants::< + assert_complete_with_parachain_bridge_constants::< Runtime, BridgeGrandpaRococoInstance, WithBridgeHubRococoMessagesInstance, - WithBridgeHubRococoMessageBridge, + bp_rococo::Rococo, >(AssertCompleteBridgeConstants { this_chain_constants: AssertChainConstants { block_length: bp_bridge_hub_westend::BlockLength::get(), block_weights: bp_bridge_hub_westend::BlockWeightsForAsyncBacking::get(), }, - messages_pallet_constants: AssertBridgeMessagesPalletConstants { - max_unrewarded_relayers_in_bridged_confirmation_tx: - bp_bridge_hub_rococo::MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, - max_unconfirmed_messages_in_bridged_confirmation_tx: - bp_bridge_hub_rococo::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, - bridged_chain_id: BridgeHubRococo::ID, - }, - pallet_names: AssertBridgePalletNames { - with_this_chain_messages_pallet_name: - bp_bridge_hub_westend::WITH_BRIDGE_HUB_WESTEND_MESSAGES_PALLET_NAME, - with_bridged_chain_grandpa_pallet_name: bp_rococo::WITH_ROCOCO_GRANDPA_PALLET_NAME, - with_bridged_chain_messages_pallet_name: - bp_bridge_hub_rococo::WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME, - }, }); bridge_runtime_common::extensions::priority_calculator::per_relay_header::ensure_priority_boost_is_sane::< @@ -370,7 +307,7 @@ mod tests { bridge_runtime_common::extensions::priority_calculator::per_parachain_header::ensure_priority_boost_is_sane::< Runtime, - RefundableParachain, + RefundableParachain, PriorityBoostPerParachainHeader, >(FEE_BOOST_PER_PARACHAIN_HEADER); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs index 05d6cdfd691..993f6043245 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs @@ -1118,7 +1118,7 @@ impl_runtime_apis! { prepare_message_proof_from_parachain::< Runtime, bridge_to_rococo_config::BridgeGrandpaRococoInstance, - bridge_to_rococo_config::WithBridgeHubRococoMessageBridge, + bridge_to_rococo_config::WithBridgeHubRococoMessagesInstance, >(params, generate_xcm_builder_bridge_message_sample([GlobalConsensus(Westend), Parachain(42)].into())) } @@ -1128,7 +1128,7 @@ impl_runtime_apis! { prepare_message_delivery_proof_from_parachain::< Runtime, bridge_to_rococo_config::BridgeGrandpaRococoInstance, - bridge_to_rococo_config::WithBridgeHubRococoMessageBridge, + bridge_to_rococo_config::WithBridgeHubRococoMessagesInstance, >(params) } @@ -1154,7 +1154,7 @@ impl_runtime_apis! { fn prepare_parachain_heads_proof( parachains: &[bp_polkadot_core::parachains::ParaId], parachain_head_size: u32, - proof_size: bp_runtime::StorageProofSize, + proof_params: bp_runtime::UnverifiedStorageProofParams, ) -> ( pallet_bridge_parachains::RelayBlockNumber, pallet_bridge_parachains::RelayBlockHash, @@ -1164,7 +1164,7 @@ impl_runtime_apis! { prepare_parachain_heads_proof::( parachains, parachain_head_size, - proof_size, + proof_params, ) } } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_grandpa.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_grandpa.rs index a9ccb00b1a1..fa7efc26048 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_grandpa.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_grandpa.rs @@ -17,9 +17,9 @@ //! Autogenerated weights for `pallet_bridge_grandpa` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-07-11, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-yaoqqom-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 // Executed Command: @@ -68,13 +68,13 @@ impl pallet_bridge_grandpa::WeightInfo for WeightInfo pallet_bridge_grandpa::WeightInfo for WeightInfo pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `522` // Estimated: `52645` - // Minimum execution time: 41_095_000 picoseconds. - Weight::from_parts(42_438_000, 0) + // Minimum execution time: 40_748_000 picoseconds. + Weight::from_parts(41_836_000, 0) .saturating_add(Weight::from_parts(0, 52645)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) @@ -78,13 +78,16 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `BridgeRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) - fn receive_two_messages_proof() -> Weight { + /// The range of component `n` is `[1, 4076]`. + fn receive_n_messages_proof(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `522` // Estimated: `52645` - // Minimum execution time: 51_974_000 picoseconds. - Weight::from_parts(53_444_000, 0) + // Minimum execution time: 40_923_000 picoseconds. + Weight::from_parts(41_287_000, 0) .saturating_add(Weight::from_parts(0, 52645)) + // Standard Error: 9_774 + .saturating_add(Weight::from_parts(11_469_207, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -102,8 +105,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `522` // Estimated: `52645` - // Minimum execution time: 45_949_000 picoseconds. - Weight::from_parts(47_912_000, 0) + // Minimum execution time: 45_946_000 picoseconds. + Weight::from_parts(47_547_000, 0) .saturating_add(Weight::from_parts(0, 52645)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) @@ -116,32 +119,19 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `BridgeRococoParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`) /// Storage: `BridgeRococoMessages::InboundLanes` (r:1 w:1) /// Proof: `BridgeRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) - fn receive_single_message_proof_1_kb() -> Weight { - // Proof Size summary in bytes: - // Measured: `453` - // Estimated: `52645` - // Minimum execution time: 39_349_000 picoseconds. - Weight::from_parts(40_723_000, 0) - .saturating_add(Weight::from_parts(0, 52645)) - .saturating_add(T::DbWeight::get().reads(4)) - .saturating_add(T::DbWeight::get().writes(1)) - } - /// Storage: `BridgeRococoMessages::PalletOperatingMode` (r:1 w:0) - /// Proof: `BridgeRococoMessages::PalletOperatingMode` (`max_values`: Some(1), `max_size`: Some(2), added: 497, mode: `MaxEncodedLen`) - /// Storage: `XcmpQueue::OutboundXcmpStatus` (r:1 w:0) - /// Proof: `XcmpQueue::OutboundXcmpStatus` (`max_values`: Some(1), `max_size`: Some(1282), added: 1777, mode: `MaxEncodedLen`) - /// Storage: `BridgeRococoParachains::ImportedParaHeads` (r:1 w:0) - /// Proof: `BridgeRococoParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`) - /// Storage: `BridgeRococoMessages::InboundLanes` (r:1 w:1) - /// Proof: `BridgeRococoMessages::InboundLanes` (`max_values`: None, `max_size`: Some(49180), added: 51655, mode: `MaxEncodedLen`) - fn receive_single_message_proof_16_kb() -> Weight { + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof(n: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `453` + // Measured: `522` // Estimated: `52645` - // Minimum execution time: 70_566_000 picoseconds. - Weight::from_parts(73_240_000, 0) + // Minimum execution time: 39_668_000 picoseconds. + Weight::from_parts(41_908_980, 0) .saturating_add(Weight::from_parts(0, 52645)) - .saturating_add(T::DbWeight::get().reads(4)) + // Standard Error: 11 + .saturating_add(Weight::from_parts(2_209, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(1)) } /// Storage: `BridgeRococoMessages::PalletOperatingMode` (r:1 w:0) @@ -158,8 +148,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `357` // Estimated: `3822` - // Minimum execution time: 31_381_000 picoseconds. - Weight::from_parts(31_980_000, 0) + // Minimum execution time: 30_544_000 picoseconds. + Weight::from_parts(31_171_000, 0) .saturating_add(Weight::from_parts(0, 3822)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -178,8 +168,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `357` // Estimated: `3822` - // Minimum execution time: 31_479_000 picoseconds. - Weight::from_parts(32_220_000, 0) + // Minimum execution time: 30_593_000 picoseconds. + Weight::from_parts(31_261_000, 0) .saturating_add(Weight::from_parts(0, 3822)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) @@ -198,8 +188,8 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `357` // Estimated: `6086` - // Minimum execution time: 35_724_000 picoseconds. - Weight::from_parts(36_460_000, 0) + // Minimum execution time: 34_682_000 picoseconds. + Weight::from_parts(35_277_000, 0) .saturating_add(Weight::from_parts(0, 6086)) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(3)) @@ -226,16 +216,16 @@ impl pallet_bridge_messages::WeightInfo for WeightInfo< /// Proof: `ParachainSystem::RelevantMessagingState` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `XcmpQueue::OutboundXcmpMessages` (r:0 w:1) /// Proof: `XcmpQueue::OutboundXcmpMessages` (`max_values`: None, `max_size`: Some(105506), added: 107981, mode: `MaxEncodedLen`) - /// The range of component `i` is `[128, 2048]`. - fn receive_single_message_proof_with_dispatch(i: u32, ) -> Weight { + /// The range of component `n` is `[1, 16384]`. + fn receive_single_n_bytes_message_proof_with_dispatch(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `653` // Estimated: `52645` - // Minimum execution time: 60_476_000 picoseconds. - Weight::from_parts(61_832_928, 0) + // Minimum execution time: 56_465_000 picoseconds. + Weight::from_parts(61_575_775, 0) .saturating_add(Weight::from_parts(0, 52645)) - // Standard Error: 73 - .saturating_add(Weight::from_parts(7_951, 0).saturating_mul(i.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(7_197, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_parachains.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_parachains.rs index 82764a48b48..b4748f14170 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_parachains.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_parachains.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_parachains` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 @@ -61,15 +61,13 @@ impl pallet_bridge_parachains::WeightInfo for WeightInf /// Storage: `BridgeRococoParachains::ImportedParaHeads` (r:0 w:1) /// Proof: `BridgeRococoParachains::ImportedParaHeads` (`max_values`: Some(64), `max_size`: Some(196), added: 1186, mode: `MaxEncodedLen`) /// The range of component `p` is `[1, 2]`. - fn submit_parachain_heads_with_n_parachains(p: u32, ) -> Weight { + fn submit_parachain_heads_with_n_parachains(_p: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `2543` - // Minimum execution time: 34_408_000 picoseconds. - Weight::from_parts(35_467_881, 0) + // Minimum execution time: 34_177_000 picoseconds. + Weight::from_parts(35_662_308, 0) .saturating_add(Weight::from_parts(0, 2543)) - // Standard Error: 100_493 - .saturating_add(Weight::from_parts(63_859, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -89,8 +87,8 @@ impl pallet_bridge_parachains::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `315` // Estimated: `2543` - // Minimum execution time: 36_125_000 picoseconds. - Weight::from_parts(36_703_000, 0) + // Minimum execution time: 35_975_000 picoseconds. + Weight::from_parts(36_510_000, 0) .saturating_add(Weight::from_parts(0, 2543)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) @@ -111,8 +109,8 @@ impl pallet_bridge_parachains::WeightInfo for WeightInf // Proof Size summary in bytes: // Measured: `315` // Estimated: `2543` - // Minimum execution time: 64_697_000 picoseconds. - Weight::from_parts(68_015_000, 0) + // Minimum execution time: 62_837_000 picoseconds. + Weight::from_parts(63_562_000, 0) .saturating_add(Weight::from_parts(0, 2543)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(4)) diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_relayers.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_relayers.rs index 7e3f3f3d723..60d81dc3082 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_relayers.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_bridge_relayers.rs @@ -17,7 +17,7 @@ //! Autogenerated weights for `pallet_bridge_relayers` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-06-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 @@ -56,8 +56,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `207` // Estimated: `3593` - // Minimum execution time: 43_291_000 picoseconds. - Weight::from_parts(44_118_000, 0) + // Minimum execution time: 43_132_000 picoseconds. + Weight::from_parts(43_923_000, 0) .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -72,8 +72,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `61` // Estimated: `4714` - // Minimum execution time: 23_286_000 picoseconds. - Weight::from_parts(23_823_000, 0) + // Minimum execution time: 22_765_000 picoseconds. + Weight::from_parts(23_576_000, 0) .saturating_add(Weight::from_parts(0, 4714)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) @@ -86,8 +86,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `160` // Estimated: `4714` - // Minimum execution time: 24_145_000 picoseconds. - Weight::from_parts(24_541_000, 0) + // Minimum execution time: 24_013_000 picoseconds. + Weight::from_parts(24_460_000, 0) .saturating_add(Weight::from_parts(0, 4714)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) @@ -102,8 +102,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `263` // Estimated: `4714` - // Minimum execution time: 26_707_000 picoseconds. - Weight::from_parts(27_266_000, 0) + // Minimum execution time: 26_946_000 picoseconds. + Weight::from_parts(27_485_000, 0) .saturating_add(Weight::from_parts(0, 4714)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) @@ -114,8 +114,8 @@ impl pallet_bridge_relayers::WeightInfo for WeightInfo< // Proof Size summary in bytes: // Measured: `6` // Estimated: `3538` - // Minimum execution time: 4_850_000 picoseconds. - Weight::from_parts(5_116_000, 0) + // Minimum execution time: 4_658_000 picoseconds. + Weight::from_parts(4_902_000, 0) .saturating_add(Weight::from_parts(0, 3538)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 9281a880c7e..73bea66bf71 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -16,10 +16,10 @@ //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-12-12, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-03, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-itmxxexx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-7wrmsoux-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-westend-dev"), DB CACHE: 1024 // Executed Command: @@ -68,8 +68,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `208` // Estimated: `6196` - // Minimum execution time: 61_577_000 picoseconds. - Weight::from_parts(63_216_000, 6196) + // Minimum execution time: 58_505_000 picoseconds. + Weight::from_parts(60_437_000, 6196) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -77,8 +77,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_019_000 picoseconds. - Weight::from_parts(2_146_000, 0) + // Minimum execution time: 510_000 picoseconds. + Weight::from_parts(569_000, 0) } // Storage: `PolkadotXcm::Queries` (r:1 w:0) // Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -86,58 +86,58 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `32` // Estimated: `3497` - // Minimum execution time: 7_473_000 picoseconds. - Weight::from_parts(7_784_000, 3497) + // Minimum execution time: 5_597_000 picoseconds. + Weight::from_parts(5_884_000, 3497) .saturating_add(T::DbWeight::get().reads(1)) } pub fn transact() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_385_000 picoseconds. - Weight::from_parts(8_768_000, 0) + // Minimum execution time: 5_320_000 picoseconds. + Weight::from_parts(5_594_000, 0) } pub fn refund_surplus() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_181_000 picoseconds. - Weight::from_parts(2_304_000, 0) + // Minimum execution time: 1_164_000 picoseconds. + Weight::from_parts(1_227_000, 0) } pub fn set_error_handler() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_858_000 picoseconds. - Weight::from_parts(1_919_000, 0) + // Minimum execution time: 528_000 picoseconds. + Weight::from_parts(586_000, 0) } pub fn set_appendix() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_855_000 picoseconds. - Weight::from_parts(1_979_000, 0) + // Minimum execution time: 509_000 picoseconds. + Weight::from_parts(571_000, 0) } pub fn clear_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_823_000 picoseconds. - Weight::from_parts(1_890_000, 0) + // Minimum execution time: 511_000 picoseconds. + Weight::from_parts(546_000, 0) } pub fn descend_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_407_000 picoseconds. - Weight::from_parts(2_507_000, 0) + // Minimum execution time: 560_000 picoseconds. + Weight::from_parts(600_000, 0) } pub fn clear_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_838_000 picoseconds. - Weight::from_parts(1_894_000, 0) + // Minimum execution time: 514_000 picoseconds. + Weight::from_parts(558_000, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -159,8 +159,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `208` // Estimated: `6196` - // Minimum execution time: 54_847_000 picoseconds. - Weight::from_parts(55_742_000, 6196) + // Minimum execution time: 55_871_000 picoseconds. + Weight::from_parts(57_172_000, 6196) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -170,8 +170,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `90` // Estimated: `3555` - // Minimum execution time: 10_614_000 picoseconds. - Weight::from_parts(11_344_000, 3555) + // Minimum execution time: 8_487_000 picoseconds. + Weight::from_parts(8_800_000, 3555) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } @@ -179,8 +179,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_826_000 picoseconds. - Weight::from_parts(1_899_000, 0) + // Minimum execution time: 528_000 picoseconds. + Weight::from_parts(569_000, 0) } // Storage: `PolkadotXcm::VersionNotifyTargets` (r:1 w:1) // Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -200,8 +200,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `38` // Estimated: `3503` - // Minimum execution time: 22_312_000 picoseconds. - Weight::from_parts(22_607_000, 3503) + // Minimum execution time: 19_803_000 picoseconds. + Weight::from_parts(20_368_000, 3503) .saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().writes(3)) } @@ -211,44 +211,44 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_728_000 picoseconds. - Weight::from_parts(3_914_000, 0) + // Minimum execution time: 2_185_000 picoseconds. + Weight::from_parts(2_332_000, 0) .saturating_add(T::DbWeight::get().writes(1)) } pub fn burn_asset() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 3_054_000 picoseconds. - Weight::from_parts(3_140_000, 0) + // Minimum execution time: 822_000 picoseconds. + Weight::from_parts(928_000, 0) } pub fn expect_asset() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_996_000 picoseconds. - Weight::from_parts(2_148_000, 0) + // Minimum execution time: 603_000 picoseconds. + Weight::from_parts(643_000, 0) } pub fn expect_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_008_000 picoseconds. - Weight::from_parts(2_077_000, 0) + // Minimum execution time: 503_000 picoseconds. + Weight::from_parts(580_000, 0) } pub fn expect_error() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_837_000 picoseconds. - Weight::from_parts(1_913_000, 0) + // Minimum execution time: 534_000 picoseconds. + Weight::from_parts(577_000, 0) } pub fn expect_transact_status() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_052_000 picoseconds. - Weight::from_parts(2_120_000, 0) + // Minimum execution time: 694_000 picoseconds. + Weight::from_parts(745_000, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -270,8 +270,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `208` // Estimated: `6196` - // Minimum execution time: 58_725_000 picoseconds. - Weight::from_parts(60_271_000, 6196) + // Minimum execution time: 61_083_000 picoseconds. + Weight::from_parts(62_214_000, 6196) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -279,8 +279,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 4_570_000 picoseconds. - Weight::from_parts(4_707_000, 0) + // Minimum execution time: 3_261_000 picoseconds. + Weight::from_parts(3_483_000, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -302,8 +302,8 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `208` // Estimated: `6196` - // Minimum execution time: 54_903_000 picoseconds. - Weight::from_parts(55_711_000, 6196) + // Minimum execution time: 56_270_000 picoseconds. + Weight::from_parts(57_443_000, 6196) .saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().writes(4)) } @@ -311,22 +311,22 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_872_000 picoseconds. - Weight::from_parts(1_938_000, 0) + // Minimum execution time: 565_000 picoseconds. + Weight::from_parts(628_000, 0) } pub fn set_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_836_000 picoseconds. - Weight::from_parts(1_903_000, 0) + // Minimum execution time: 496_000 picoseconds. + Weight::from_parts(563_000, 0) } pub fn clear_topic() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_847_000 picoseconds. - Weight::from_parts(1_900_000, 0) + // Minimum execution time: 518_000 picoseconds. + Weight::from_parts(557_000, 0) } // Storage: `ParachainInfo::ParachainId` (r:1 w:0) // Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) @@ -339,16 +339,16 @@ impl WeightInfo { // Storage: `BridgeRococoMessages::OutboundLanesCongestedSignals` (r:1 w:0) // Proof: `BridgeRococoMessages::OutboundLanesCongestedSignals` (`max_values`: Some(1), `max_size`: Some(21), added: 516, mode: `MaxEncodedLen`) // Storage: `BridgeRococoMessages::OutboundMessages` (r:0 w:1) - // Proof: `BridgeRococoMessages::OutboundMessages` (`max_values`: None, `max_size`: Some(2621472), added: 2623947, mode: `MaxEncodedLen`) + // Proof: `BridgeRococoMessages::OutboundMessages` (`max_values`: None, `max_size`: Some(65568), added: 68043, mode: `MaxEncodedLen`) /// The range of component `x` is `[1, 1000]`. pub fn export_message(x: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `225` // Estimated: `6165` - // Minimum execution time: 41_750_000 picoseconds. - Weight::from_parts(43_496_915, 6165) - // Standard Error: 623 - .saturating_add(Weight::from_parts(457_907, 0).saturating_mul(x.into())) + // Minimum execution time: 36_288_000 picoseconds. + Weight::from_parts(37_707_751, 6165) + // Standard Error: 124 + .saturating_add(Weight::from_parts(51_290, 0).saturating_mul(x.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(2)) } @@ -356,14 +356,14 @@ impl WeightInfo { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_826_000 picoseconds. - Weight::from_parts(1_911_000, 0) + // Minimum execution time: 485_000 picoseconds. + Weight::from_parts(540_000, 0) } pub fn unpaid_execution() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_967_000 picoseconds. - Weight::from_parts(2_096_000, 0) + // Minimum execution time: 542_000 picoseconds. + Weight::from_parts(586_000, 0) } } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs index 836594140b2..763271fd7af 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/tests/tests.rs @@ -28,8 +28,8 @@ use bridge_hub_westend_runtime::{ }; use bridge_to_rococo_config::{ BridgeGrandpaRococoInstance, BridgeHubRococoChainId, BridgeHubRococoLocation, - BridgeParachainRococoInstance, WithBridgeHubRococoMessageBridge, - WithBridgeHubRococoMessagesInstance, XCM_LANE_FOR_ASSET_HUB_WESTEND_TO_ASSET_HUB_ROCOCO, + BridgeParachainRococoInstance, WithBridgeHubRococoMessagesInstance, + XCM_LANE_FOR_ASSET_HUB_WESTEND_TO_ASSET_HUB_ROCOCO, }; use codec::{Decode, Encode}; use frame_support::{dispatch::GetDispatchInfo, parameter_types, traits::ConstU8}; @@ -53,7 +53,6 @@ type RuntimeTestsAdapter = from_parachain::WithRemoteParachainHelperAdapter< BridgeGrandpaRococoInstance, BridgeParachainRococoInstance, WithBridgeHubRococoMessagesInstance, - WithBridgeHubRococoMessageBridge, >; parameter_types! { diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/test-utils/Cargo.toml index 90af4dd8f3e..fb96d29a497 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/Cargo.toml +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/Cargo.toml @@ -48,7 +48,7 @@ bp-runtime = { workspace = true } bp-test-utils = { workspace = true } pallet-bridge-grandpa = { workspace = true } pallet-bridge-parachains = { workspace = true } -pallet-bridge-messages = { workspace = true } +pallet-bridge-messages = { features = ["test-helpers"], workspace = true } pallet-bridge-relayers = { workspace = true } bridge-runtime-common = { workspace = true } diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_grandpa_chain.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_grandpa_chain.rs index bfa2f0f50f9..8f3c7de61f8 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_grandpa_chain.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_grandpa_chain.rs @@ -23,21 +23,12 @@ use crate::{ }; use bp_header_chain::ChainWithGrandpa; -use bp_messages::{ - source_chain::TargetHeaderChain, target_chain::SourceHeaderChain, LaneId, - UnrewardedRelayersState, -}; +use bp_messages::{LaneId, UnrewardedRelayersState}; use bp_relayers::{RewardsAccountOwner, RewardsAccountParams}; -use bp_runtime::{HashOf, UnderlyingChainOf}; -use bridge_runtime_common::{ - messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, - BridgedChain as MessageBridgedChain, MessageBridge, ThisChain as MessageThisChain, - }, - messages_xcm_extension::XcmAsPlainPayload, -}; +use bridge_runtime_common::messages_xcm_extension::XcmAsPlainPayload; use frame_support::traits::{OnFinalize, OnInitialize}; use frame_system::pallet_prelude::BlockNumberFor; +use pallet_bridge_messages::{BridgedChainOf, ThisChainOf}; use parachains_runtimes_test_utils::{ AccountIdOf, BasicParachainRuntime, CollatorSessionKeys, RuntimeCallOf, SlotDurations, }; @@ -53,13 +44,10 @@ pub trait WithRemoteGrandpaChainHelper { /// This chain runtime. type Runtime: BasicParachainRuntime + cumulus_pallet_xcmp_queue::Config - + BridgeGrandpaConfig< - Self::GPI, - BridgedChain = UnderlyingChainOf>, - > + BridgeMessagesConfig< + + BridgeGrandpaConfig> + + BridgeMessagesConfig< Self::MPI, InboundPayload = XcmAsPlainPayload, - InboundRelayer = bp_runtime::AccountIdOf>, OutboundPayload = XcmAsPlainPayload, > + pallet_bridge_relayers::Config; /// All pallets of this chain, excluding system pallet. @@ -69,38 +57,33 @@ pub trait WithRemoteGrandpaChainHelper { type GPI: 'static; /// Instance of the `pallet-bridge-messages`, used to bridge with remote GRANDPA chain. type MPI: 'static; - /// Messages bridge definition. - type MB: MessageBridge; } /// Adapter struct that implements [`WithRemoteGrandpaChainHelper`]. -pub struct WithRemoteGrandpaChainHelperAdapter( - sp_std::marker::PhantomData<(Runtime, AllPalletsWithoutSystem, GPI, MPI, MB)>, +pub struct WithRemoteGrandpaChainHelperAdapter( + sp_std::marker::PhantomData<(Runtime, AllPalletsWithoutSystem, GPI, MPI)>, ); -impl WithRemoteGrandpaChainHelper - for WithRemoteGrandpaChainHelperAdapter +impl WithRemoteGrandpaChainHelper + for WithRemoteGrandpaChainHelperAdapter where Runtime: BasicParachainRuntime + cumulus_pallet_xcmp_queue::Config - + BridgeGrandpaConfig>> + + BridgeGrandpaConfig> + BridgeMessagesConfig< MPI, InboundPayload = XcmAsPlainPayload, - InboundRelayer = bp_runtime::AccountIdOf>, OutboundPayload = XcmAsPlainPayload, > + pallet_bridge_relayers::Config, AllPalletsWithoutSystem: OnInitialize> + OnFinalize>, GPI: 'static, MPI: 'static, - MB: MessageBridge, { type Runtime = Runtime; type AllPalletsWithoutSystem = AllPalletsWithoutSystem; type GPI = GPI; type MPI = MPI; - type MB = MB; } /// Test-case makes sure that Runtime can dispatch XCM messages submitted by relayer, @@ -124,13 +107,7 @@ pub fn relayed_incoming_message_works( AccountIdOf: From, RuntimeCallOf: From> + From>, - UnderlyingChainOf>: ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, + BridgedChainOf: ChainWithGrandpa, { helpers::relayed_incoming_message_works::< RuntimeHelper::Runtime, @@ -161,7 +138,8 @@ pub fn relayed_incoming_message_works( // to be submitted by relayer to this chain. let (relay_chain_header, grandpa_justification, message_proof) = test_data::from_grandpa_chain::make_complex_relayer_delivery_proofs::< - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( lane_id, @@ -186,7 +164,7 @@ pub fn relayed_incoming_message_works( ( BridgeMessagesCall::::receive_messages_proof { relayer_id_at_bridged_chain, - proof: message_proof, + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), }.into(), @@ -233,13 +211,7 @@ pub fn free_relay_extrinsic_works( AccountIdOf: From, RuntimeCallOf: From> + From>, - UnderlyingChainOf>: ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, + BridgedChainOf: ChainWithGrandpa, { // ensure that the runtime allows free header submissions let free_headers_interval = ( // to be submitted by relayer to this chain. let (relay_chain_header, grandpa_justification, message_proof) = test_data::from_grandpa_chain::make_complex_relayer_delivery_proofs::< - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( lane_id, @@ -322,7 +295,7 @@ pub fn free_relay_extrinsic_works( ( BridgeMessagesCall::::receive_messages_proof { relayer_id_at_bridged_chain, - proof: message_proof, + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), }.into(), @@ -370,13 +343,7 @@ pub fn complex_relay_extrinsic_works( RuntimeCallOf: From> + From> + From>, - UnderlyingChainOf>: ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, + BridgedChainOf: ChainWithGrandpa, { helpers::relayed_incoming_message_works::< RuntimeHelper::Runtime, @@ -407,7 +374,8 @@ pub fn complex_relay_extrinsic_works( // to be submitted by relayer to this chain. let (relay_chain_header, grandpa_justification, message_proof) = test_data::from_grandpa_chain::make_complex_relayer_delivery_proofs::< - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( lane_id, @@ -428,7 +396,7 @@ pub fn complex_relay_extrinsic_works( }.into(), BridgeMessagesCall::::receive_messages_proof { relayer_id_at_bridged_chain, - proof: message_proof, + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), }.into(), @@ -470,13 +438,7 @@ where pallet_utility::Config>, RuntimeCallOf: From> + From>, - UnderlyingChainOf>: ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, + BridgedChainOf: ChainWithGrandpa, { run_test::(collator_session_key, 1000, vec![], || { // generate bridged relay chain finality, parachain heads and message proofs, @@ -487,7 +449,8 @@ where // the message additionally let (relay_chain_header, grandpa_justification, message_proof) = test_data::from_grandpa_chain::make_complex_relayer_delivery_proofs::< - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( LaneId::default(), @@ -526,19 +489,11 @@ where AccountIdOf: From, RuntimeHelper::Runtime: pallet_utility::Config>, - MessageThisChain: + ThisChainOf: bp_runtime::Chain>, RuntimeCallOf: From> + From>, - UnderlyingChainOf>: ChainWithGrandpa, - >::TargetHeaderChain: - TargetHeaderChain< - XcmAsPlainPayload, - AccountIdOf, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof< - HashOf>>, - >, - >, + BridgedChainOf: ChainWithGrandpa, { run_test::(collator_session_key, 1000, vec![], || { // generate bridged relay chain finality, parachain heads and message proofs, @@ -550,7 +505,8 @@ where }; let (relay_chain_header, grandpa_justification, message_delivery_proof) = test_data::from_grandpa_chain::make_complex_relayer_confirmation_proofs::< - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( LaneId::default(), @@ -587,13 +543,7 @@ where RuntimeHelper: WithRemoteGrandpaChainHelper, RuntimeCallOf: From>, - UnderlyingChainOf>: ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, + BridgedChainOf: ChainWithGrandpa, { run_test::(collator_session_key, 1000, vec![], || { // generate bridged relay chain finality, parachain heads and message proofs, @@ -604,7 +554,8 @@ where // the message additionally let (_, _, message_proof) = test_data::from_grandpa_chain::make_complex_relayer_delivery_proofs::< - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( LaneId::default(), @@ -639,19 +590,11 @@ pub fn can_calculate_fee_for_standalone_message_confirmation_transaction: From, - MessageThisChain: + ThisChainOf: bp_runtime::Chain>, RuntimeCallOf: From>, - UnderlyingChainOf>: ChainWithGrandpa, - >::TargetHeaderChain: - TargetHeaderChain< - XcmAsPlainPayload, - AccountIdOf, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof< - HashOf>>, - >, - >, + BridgedChainOf: ChainWithGrandpa, { run_test::(collator_session_key, 1000, vec![], || { // generate bridged relay chain finality, parachain heads and message proofs, @@ -663,7 +606,8 @@ where }; let (_, _, message_delivery_proof) = test_data::from_grandpa_chain::make_complex_relayer_confirmation_proofs::< - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( LaneId::default(), diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_parachain.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_parachain.rs index 12ab382d9e0..6580648e660 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_parachain.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_parachain.rs @@ -23,22 +23,14 @@ use crate::{ }; use bp_header_chain::ChainWithGrandpa; -use bp_messages::{ - source_chain::TargetHeaderChain, target_chain::SourceHeaderChain, LaneId, - UnrewardedRelayersState, -}; +use bp_messages::{LaneId, UnrewardedRelayersState}; use bp_polkadot_core::parachains::ParaHash; use bp_relayers::{RewardsAccountOwner, RewardsAccountParams}; -use bp_runtime::{HashOf, Parachain, UnderlyingChainOf}; -use bridge_runtime_common::{ - messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, - BridgedChain as MessageBridgedChain, MessageBridge, ThisChain as MessageThisChain, - }, - messages_xcm_extension::XcmAsPlainPayload, -}; +use bp_runtime::{Chain, Parachain}; +use bridge_runtime_common::messages_xcm_extension::XcmAsPlainPayload; use frame_support::traits::{OnFinalize, OnInitialize}; use frame_system::pallet_prelude::BlockNumberFor; +use pallet_bridge_messages::{BridgedChainOf, ThisChainOf}; use parachains_runtimes_test_utils::{ AccountIdOf, BasicParachainRuntime, CollatorSessionKeys, RuntimeCallOf, SlotDurations, }; @@ -59,7 +51,6 @@ pub trait WithRemoteParachainHelper { + BridgeMessagesConfig< Self::MPI, InboundPayload = XcmAsPlainPayload, - InboundRelayer = bp_runtime::AccountIdOf>, OutboundPayload = XcmAsPlainPayload, > + pallet_bridge_relayers::Config; /// All pallets of this chain, excluding system pallet. @@ -71,17 +62,15 @@ pub trait WithRemoteParachainHelper { type PPI: 'static; /// Instance of the `pallet-bridge-messages`, used to bridge with remote parachain. type MPI: 'static; - /// Messages bridge definition. - type MB: MessageBridge; } /// Adapter struct that implements `WithRemoteParachainHelper`. -pub struct WithRemoteParachainHelperAdapter( - sp_std::marker::PhantomData<(Runtime, AllPalletsWithoutSystem, GPI, PPI, MPI, MB)>, +pub struct WithRemoteParachainHelperAdapter( + sp_std::marker::PhantomData<(Runtime, AllPalletsWithoutSystem, GPI, PPI, MPI)>, ); -impl WithRemoteParachainHelper - for WithRemoteParachainHelperAdapter +impl WithRemoteParachainHelper + for WithRemoteParachainHelperAdapter where Runtime: BasicParachainRuntime + cumulus_pallet_xcmp_queue::Config @@ -90,7 +79,6 @@ where + BridgeMessagesConfig< MPI, InboundPayload = XcmAsPlainPayload, - InboundRelayer = bp_runtime::AccountIdOf>, OutboundPayload = XcmAsPlainPayload, > + pallet_bridge_relayers::Config, AllPalletsWithoutSystem: @@ -98,14 +86,13 @@ where GPI: 'static, PPI: 'static, MPI: 'static, - MB: MessageBridge, + // MB: MessageBridge, { type Runtime = Runtime; type AllPalletsWithoutSystem = AllPalletsWithoutSystem; type GPI = GPI; type PPI = PPI; type MPI = MPI; - type MB = MB; } /// Test-case makes sure that Runtime can dispatch XCM messages submitted by relayer, @@ -131,16 +118,9 @@ pub fn relayed_incoming_message_works( RuntimeCallOf: From> + From> + From>, - UnderlyingChainOf>: - bp_runtime::Chain + Parachain, + BridgedChainOf: Chain + Parachain, >::BridgedChain: bp_runtime::Chain + ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, { helpers::relayed_incoming_message_works::< RuntimeHelper::Runtime, @@ -179,7 +159,8 @@ pub fn relayed_incoming_message_works( message_proof, ) = test_data::from_parachain::make_complex_relayer_delivery_proofs::< >::BridgedChain, - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( lane_id, @@ -219,7 +200,7 @@ pub fn relayed_incoming_message_works( ( BridgeMessagesCall::::receive_messages_proof { relayer_id_at_bridged_chain, - proof: message_proof, + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), }.into(), @@ -268,16 +249,9 @@ pub fn free_relay_extrinsic_works( RuntimeCallOf: From> + From> + From>, - UnderlyingChainOf>: - bp_runtime::Chain + Parachain, + BridgedChainOf: Chain + Parachain, >::BridgedChain: bp_runtime::Chain + ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, { // ensure that the runtime allows free header submissions let free_headers_interval = ( message_proof, ) = test_data::from_parachain::make_complex_relayer_delivery_proofs::< >::BridgedChain, - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( lane_id, @@ -390,7 +365,7 @@ pub fn free_relay_extrinsic_works( ( BridgeMessagesCall::::receive_messages_proof { relayer_id_at_bridged_chain, - proof: message_proof, + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), }.into(), @@ -440,16 +415,9 @@ pub fn complex_relay_extrinsic_works( + From> + From> + From>, - UnderlyingChainOf>: - bp_runtime::Chain + Parachain, + BridgedChainOf: Chain + Parachain, >::BridgedChain: bp_runtime::Chain + ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, { helpers::relayed_incoming_message_works::< RuntimeHelper::Runtime, @@ -488,7 +456,8 @@ pub fn complex_relay_extrinsic_works( message_proof, ) = test_data::from_parachain::make_complex_relayer_delivery_proofs::< >::BridgedChain, - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( lane_id, @@ -518,7 +487,7 @@ pub fn complex_relay_extrinsic_works( }.into(), BridgeMessagesCall::::receive_messages_proof { relayer_id_at_bridged_chain, - proof: message_proof, + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), }.into(), @@ -565,16 +534,9 @@ where RuntimeCallOf: From> + From> + From>, - UnderlyingChainOf>: - bp_runtime::Chain + Parachain, + BridgedChainOf: Chain + Parachain, >::BridgedChain: bp_runtime::Chain + ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, { run_test::(collator_session_key, 1000, vec![], || { // generate bridged relay chain finality, parachain heads and message proofs, @@ -592,7 +554,8 @@ where message_proof, ) = test_data::from_parachain::make_complex_relayer_delivery_proofs::< >::BridgedChain, - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( LaneId::default(), @@ -612,7 +575,6 @@ where RuntimeHelper::GPI, RuntimeHelper::PPI, RuntimeHelper::MPI, - _, >( relay_chain_header, grandpa_justification, @@ -637,23 +599,14 @@ where AccountIdOf: From, RuntimeHelper::Runtime: pallet_utility::Config>, - MessageThisChain: - bp_runtime::Chain>, + ThisChainOf: + Chain>, RuntimeCallOf: From> + From> + From>, - UnderlyingChainOf>: - bp_runtime::Chain + Parachain, + BridgedChainOf: Chain + Parachain, >::BridgedChain: bp_runtime::Chain + ChainWithGrandpa, - >::TargetHeaderChain: - TargetHeaderChain< - XcmAsPlainPayload, - AccountIdOf, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof< - HashOf>>, - >, - >, { run_test::(collator_session_key, 1000, vec![], || { // generate bridged relay chain finality, parachain heads and message proofs, @@ -672,7 +625,8 @@ where message_delivery_proof, ) = test_data::from_parachain::make_complex_relayer_confirmation_proofs::< >::BridgedChain, - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( LaneId::default(), @@ -714,16 +668,9 @@ where RuntimeHelper: WithRemoteParachainHelper, RuntimeCallOf: From>, - UnderlyingChainOf>: - bp_runtime::Chain + Parachain, + BridgedChainOf: Chain + Parachain, >::BridgedChain: bp_runtime::Chain + ChainWithGrandpa, - >::SourceHeaderChain: - SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof< - HashOf>, - >, - >, { run_test::(collator_session_key, 1000, vec![], || { // generate bridged relay chain finality, parachain heads and message proofs, @@ -741,7 +688,8 @@ where message_proof, ) = test_data::from_parachain::make_complex_relayer_delivery_proofs::< >::BridgedChain, - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( LaneId::default(), @@ -757,7 +705,6 @@ where let call = test_data::from_parachain::make_standalone_relayer_delivery_call::< RuntimeHelper::Runtime, RuntimeHelper::MPI, - _, >( message_proof, helpers::relayer_id_at_bridged_chain::(), @@ -778,22 +725,13 @@ pub fn can_calculate_fee_for_standalone_message_confirmation_transaction: From, - MessageThisChain: - bp_runtime::Chain>, + ThisChainOf: + Chain>, RuntimeCallOf: From>, - UnderlyingChainOf>: - bp_runtime::Chain + Parachain, + BridgedChainOf: Chain + Parachain, >::BridgedChain: bp_runtime::Chain + ChainWithGrandpa, - >::TargetHeaderChain: - TargetHeaderChain< - XcmAsPlainPayload, - AccountIdOf, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof< - HashOf>>, - >, - >, { run_test::(collator_session_key, 1000, vec![], || { // generate bridged relay chain finality, parachain heads and message proofs, @@ -806,7 +744,8 @@ where let (_, _, _, _, _, message_delivery_proof) = test_data::from_parachain::make_complex_relayer_confirmation_proofs::< >::BridgedChain, - RuntimeHelper::MB, + BridgedChainOf, + ThisChainOf, (), >( LaneId::default(), diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/helpers.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/helpers.rs index 0ce049cd1c4..c990c6e5307 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/helpers.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/helpers.rs @@ -29,6 +29,7 @@ use frame_support::{ }; use frame_system::pallet_prelude::BlockNumberFor; use pallet_bridge_grandpa::{BridgedBlockHash, BridgedHeader}; +use pallet_bridge_messages::BridgedChainOf; use parachains_common::AccountId; use parachains_runtimes_test_utils::{ mock_open_hrmp_channel, AccountIdOf, CollatorSessionKeys, RuntimeCallOf, SlotDurations, @@ -240,10 +241,12 @@ pub(crate) fn initialize_bridge_grandpa_pallet( pub type CallsAndVerifiers = Vec<(RuntimeCallOf, Box)>; +pub type InboundRelayerId = bp_runtime::AccountIdOf>; + /// Returns relayer id at the bridged chain. pub fn relayer_id_at_bridged_chain, MPI>( -) -> Runtime::InboundRelayer { - Runtime::InboundRelayer::decode(&mut TrailingZeroInput::zeroes()).unwrap() +) -> InboundRelayerId { + Decode::decode(&mut TrailingZeroInput::zeroes()).unwrap() } /// Test-case makes sure that Runtime can dispatch XCM messages submitted by relayer, @@ -260,7 +263,7 @@ pub fn relayed_incoming_message_works( ) -> sp_runtime::DispatchOutcome, prepare_message_proof_import: impl FnOnce( Runtime::AccountId, - Runtime::InboundRelayer, + InboundRelayerId, InteriorLocation, MessageNonce, Xcm<()>, diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data/from_grandpa_chain.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data/from_grandpa_chain.rs index e5d5e7cac96..c61a31e5454 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data/from_grandpa_chain.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data/from_grandpa_chain.rs @@ -19,30 +19,29 @@ use crate::test_data::prepare_inbound_xcm; use bp_messages::{ - source_chain::TargetHeaderChain, target_chain::SourceHeaderChain, LaneId, MessageNonce, + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, ChainWithMessages, LaneId, MessageNonce, UnrewardedRelayersState, }; -use bp_runtime::{AccountIdOf, BlockNumberOf, HeaderOf, StorageProofSize, UnderlyingChainOf}; +use bp_runtime::{AccountIdOf, BlockNumberOf, Chain, HeaderOf, UnverifiedStorageProofParams}; use bp_test_utils::make_default_justification; -use bridge_runtime_common::{ - messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, - BridgedChain as MessageBridgedChain, MessageBridge, ThisChain as MessageThisChain, - }, - messages_generation::{ - encode_all_messages, encode_lane_data, prepare_message_delivery_storage_proof, - prepare_messages_storage_proof, - }, - messages_xcm_extension::XcmAsPlainPayload, -}; +use bridge_runtime_common::messages_xcm_extension::XcmAsPlainPayload; use codec::Encode; use pallet_bridge_grandpa::{BridgedChain, BridgedHeader}; use sp_runtime::traits::Header as HeaderT; use xcm::latest::prelude::*; +use crate::test_cases::helpers::InboundRelayerId; use bp_header_chain::{justification::GrandpaJustification, ChainWithGrandpa}; use bp_messages::{DeliveredMessages, InboundLaneData, UnrewardedRelayer}; use bp_runtime::HashOf; +use pallet_bridge_messages::{ + messages_generation::{ + encode_all_messages, encode_lane_data, prepare_message_delivery_storage_proof, + prepare_messages_storage_proof, + }, + BridgedChainOf, +}; use sp_runtime::DigestItem; /// Prepare a batch call with bridged GRANDPA finality and message proof. @@ -50,22 +49,17 @@ pub fn make_complex_relayer_delivery_batch( bridged_header: BridgedHeader, bridged_justification: GrandpaJustification>, message_proof: FromBridgedChainMessagesProof>>, - relayer_id_at_bridged_chain: AccountIdOf>, + relayer_id_at_bridged_chain: InboundRelayerId, ) -> pallet_utility::Call where Runtime: pallet_bridge_grandpa::Config - + pallet_bridge_messages::Config< - MPI, - InboundPayload = XcmAsPlainPayload, - InboundRelayer = AccountIdOf>, - > + pallet_utility::Config, + + pallet_bridge_messages::Config + + pallet_utility::Config, GPI: 'static, MPI: 'static, - >::SourceHeaderChain: SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof>>, - >, ::RuntimeCall: From> + From>, + BridgedChainOf: Chain>>, { let submit_grandpa = pallet_bridge_grandpa::Call::::submit_finality_proof { finality_target: Box::new(bridged_header), @@ -73,7 +67,7 @@ where }; let submit_message = pallet_bridge_messages::Call::::receive_messages_proof { relayer_id_at_bridged_chain, - proof: message_proof, + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), }; @@ -97,15 +91,9 @@ where + pallet_utility::Config, GPI: 'static, MPI: 'static, - >::TargetHeaderChain: TargetHeaderChain< - XcmAsPlainPayload, - Runtime::AccountId, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof< - HashOf>, - >, - >, ::RuntimeCall: From> + From>, + BridgedChainOf: Chain>>, { let submit_grandpa = pallet_bridge_grandpa::Call::::submit_finality_proof { finality_target: Box::new(bridged_header), @@ -124,24 +112,18 @@ where /// Prepare a call with message proof. pub fn make_standalone_relayer_delivery_call( message_proof: FromBridgedChainMessagesProof>>, - relayer_id_at_bridged_chain: AccountIdOf>, + relayer_id_at_bridged_chain: InboundRelayerId, ) -> Runtime::RuntimeCall where Runtime: pallet_bridge_grandpa::Config - + pallet_bridge_messages::Config< - MPI, - InboundPayload = XcmAsPlainPayload, - InboundRelayer = AccountIdOf>, - >, + + pallet_bridge_messages::Config, MPI: 'static, - >::SourceHeaderChain: SourceHeaderChain< - MessagesProof = FromBridgedChainMessagesProof>>, - >, Runtime::RuntimeCall: From>, + BridgedChainOf: Chain>>, { pallet_bridge_messages::Call::::receive_messages_proof { relayer_id_at_bridged_chain, - proof: message_proof, + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), } @@ -159,14 +141,8 @@ where Runtime: pallet_bridge_grandpa::Config + pallet_bridge_messages::Config, MPI: 'static, - >::TargetHeaderChain: TargetHeaderChain< - XcmAsPlainPayload, - Runtime::AccountId, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof< - HashOf>, - >, - >, Runtime::RuntimeCall: From>, + BridgedChainOf: Chain>>, { pallet_bridge_messages::Call::::receive_messages_delivery_proof { proof: message_delivery_proof, @@ -176,39 +152,47 @@ where } /// Prepare storage proofs of messages, stored at the (bridged) source GRANDPA chain. -pub fn make_complex_relayer_delivery_proofs( +pub fn make_complex_relayer_delivery_proofs< + BridgedChain, + ThisChainWithMessages, + InnerXcmRuntimeCall, +>( lane_id: LaneId, xcm_message: Xcm, message_nonce: MessageNonce, message_destination: Junctions, - header_number: BlockNumberOf>, + header_number: BlockNumberOf, is_minimal_call: bool, ) -> ( - HeaderOf>, - GrandpaJustification>>, - FromBridgedChainMessagesProof>>, + HeaderOf, + GrandpaJustification>, + FromBridgedChainMessagesProof>, ) where - MB: MessageBridge, - MessageBridgedChain: Send + Sync + 'static, - UnderlyingChainOf>: ChainWithGrandpa, + BridgedChain: ChainWithGrandpa, + ThisChainWithMessages: ChainWithMessages, { + // prepare message let message_payload = prepare_inbound_xcm(xcm_message, message_destination); - let message_size = StorageProofSize::Minimal(message_payload.len() as u32); - // prepare para storage proof containing message - let (state_root, storage_proof) = prepare_messages_storage_proof::( - lane_id, - message_nonce..=message_nonce, - None, - message_size, - message_payload, - encode_all_messages, - encode_lane_data, - ); + // prepare storage proof containing message + let (state_root, storage_proof) = + prepare_messages_storage_proof::( + lane_id, + message_nonce..=message_nonce, + None, + UnverifiedStorageProofParams::from_db_size(message_payload.len() as u32), + |_| message_payload.clone(), + encode_all_messages, + encode_lane_data, + false, + false, + ); - let (header, justification) = make_complex_bridged_grandpa_header_proof::< - MessageBridgedChain, - >(state_root, header_number, is_minimal_call); + let (header, justification) = make_complex_bridged_grandpa_header_proof::( + state_root, + header_number, + is_minimal_call, + ); let message_proof = FromBridgedChainMessagesProof { bridged_header_hash: header.hash(), @@ -222,44 +206,44 @@ where } /// Prepare storage proofs of message confirmations, stored at the (bridged) target GRANDPA chain. -pub fn make_complex_relayer_confirmation_proofs( +pub fn make_complex_relayer_confirmation_proofs< + BridgedChain, + ThisChainWithMessages, + InnerXcmRuntimeCall, +>( lane_id: LaneId, - header_number: BlockNumberOf>, - relayer_id_at_this_chain: AccountIdOf>, + header_number: BlockNumberOf, + relayer_id_at_this_chain: AccountIdOf, relayers_state: UnrewardedRelayersState, ) -> ( - HeaderOf>, - GrandpaJustification>>, - FromBridgedChainMessagesDeliveryProof>>, + HeaderOf, + GrandpaJustification>, + FromBridgedChainMessagesDeliveryProof>, ) where - MB: MessageBridge, - MessageBridgedChain: Send + Sync + 'static, - MessageThisChain: Send + Sync + 'static, - UnderlyingChainOf>: ChainWithGrandpa, + BridgedChain: ChainWithGrandpa, + ThisChainWithMessages: ChainWithMessages, { // prepare storage proof containing message delivery proof - let (state_root, storage_proof) = prepare_message_delivery_storage_proof::( - lane_id, - InboundLaneData { - relayers: vec![ - UnrewardedRelayer { - relayer: relayer_id_at_this_chain, - messages: DeliveredMessages::new(1) - }; - relayers_state.unrewarded_relayer_entries as usize - ] - .into(), - last_confirmed_nonce: 1, - }, - StorageProofSize::Minimal(0), - ); + let (state_root, storage_proof) = + prepare_message_delivery_storage_proof::( + lane_id, + InboundLaneData { + relayers: vec![ + UnrewardedRelayer { + relayer: relayer_id_at_this_chain, + messages: DeliveredMessages::new(1) + }; + relayers_state.unrewarded_relayer_entries as usize + ] + .into(), + last_confirmed_nonce: 1, + }, + UnverifiedStorageProofParams::default(), + ); - let (header, justification) = make_complex_bridged_grandpa_header_proof::( - state_root, - header_number, - false, - ); + let (header, justification) = + make_complex_bridged_grandpa_header_proof::(state_root, header_number, false); let message_delivery_proof = FromBridgedChainMessagesDeliveryProof { bridged_header_hash: header.hash(), diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data/from_parachain.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data/from_parachain.rs index 5d3cba4e53b..897fe0d0b0f 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data/from_parachain.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_data/from_parachain.rs @@ -19,61 +19,58 @@ use super::{from_grandpa_chain::make_complex_bridged_grandpa_header_proof, prepare_inbound_xcm}; use bp_messages::{ - source_chain::TargetHeaderChain, target_chain::SourceHeaderChain, LaneId, + source_chain::FromBridgedChainMessagesDeliveryProof, + target_chain::FromBridgedChainMessagesProof, ChainWithMessages, LaneId, UnrewardedRelayersState, Weight, }; use bp_runtime::{ - AccountIdOf, BlockNumberOf, HeaderOf, Parachain, StorageProofSize, UnderlyingChainOf, + AccountIdOf, BlockNumberOf, Chain, HeaderOf, Parachain, UnverifiedStorageProofParams, }; use bp_test_utils::prepare_parachain_heads_proof; -use bridge_runtime_common::{ - messages::{ - source::FromBridgedChainMessagesDeliveryProof, target::FromBridgedChainMessagesProof, - BridgedChain as MessageBridgedChain, MessageBridge, ThisChain as MessageThisChain, - }, - messages_generation::{ - encode_all_messages, encode_lane_data, prepare_message_delivery_storage_proof, - prepare_messages_storage_proof, - }, - messages_xcm_extension::XcmAsPlainPayload, -}; +use bridge_runtime_common::messages_xcm_extension::XcmAsPlainPayload; use codec::Encode; use pallet_bridge_grandpa::BridgedHeader; use pallet_bridge_parachains::{RelayBlockHash, RelayBlockNumber}; use sp_runtime::traits::Header as HeaderT; use xcm::latest::prelude::*; +use crate::test_cases::helpers::InboundRelayerId; use bp_header_chain::{justification::GrandpaJustification, ChainWithGrandpa}; use bp_messages::{DeliveredMessages, InboundLaneData, MessageNonce, UnrewardedRelayer}; use bp_polkadot_core::parachains::{ParaHash, ParaHead, ParaHeadsProof, ParaId}; +use pallet_bridge_messages::{ + messages_generation::{ + encode_all_messages, encode_lane_data, prepare_message_delivery_storage_proof, + prepare_messages_storage_proof, + }, + BridgedChainOf, +}; use sp_runtime::SaturatedConversion; /// Prepare a batch call with relay finality proof, parachain head proof and message proof. -pub fn make_complex_relayer_delivery_batch( +pub fn make_complex_relayer_delivery_batch( relay_chain_header: BridgedHeader, grandpa_justification: GrandpaJustification>, parachain_heads: Vec<(ParaId, ParaHash)>, para_heads_proof: ParaHeadsProof, message_proof: FromBridgedChainMessagesProof, - relayer_id_at_bridged_chain: InboundRelayer, -) -> pallet_utility::Call where - Runtime:pallet_bridge_grandpa::Config + relayer_id_at_bridged_chain: InboundRelayerId, +) -> pallet_utility::Call +where + Runtime: pallet_bridge_grandpa::Config + pallet_bridge_parachains::Config - + pallet_bridge_messages::Config< - MPI, - InboundPayload = XcmAsPlainPayload, - InboundRelayer = InboundRelayer, - > + + pallet_bridge_messages::Config + pallet_utility::Config, GPI: 'static, PPI: 'static, MPI: 'static, - ParaHash: From<<>::BridgedChain as bp_runtime::Chain>::Hash>, - <>::BridgedChain as bp_runtime::Chain>::Hash: From, - <>::SourceHeaderChain as SourceHeaderChain>::MessagesProof: - From>, - ::RuntimeCall: - From> + ParaHash: From< + <>::BridgedChain as bp_runtime::Chain>::Hash, + >, + <>::BridgedChain as bp_runtime::Chain>::Hash: + From, + BridgedChainOf: Chain + Parachain, + ::RuntimeCall: From> + From> + From>, { @@ -93,7 +90,7 @@ pub fn make_complex_relayer_delivery_batch::receive_messages_proof { relayer_id_at_bridged_chain: relayer_id_at_bridged_chain.into(), - proof: message_proof.into(), + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), }; @@ -122,11 +119,7 @@ where MPI: 'static, >::BridgedChain: bp_runtime::Chain + ChainWithGrandpa, - >::TargetHeaderChain: TargetHeaderChain< - XcmAsPlainPayload, - Runtime::AccountId, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof, - >, + BridgedChainOf: Chain + Parachain, ::RuntimeCall: From> + From> + From>, @@ -160,23 +153,19 @@ where } /// Prepare a call with message proof. -pub fn make_standalone_relayer_delivery_call( +pub fn make_standalone_relayer_delivery_call( message_proof: FromBridgedChainMessagesProof, - relayer_id_at_bridged_chain: InboundRelayer, -) -> Runtime::RuntimeCall where - Runtime: pallet_bridge_messages::Config< - MPI, - InboundPayload = XcmAsPlainPayload, - InboundRelayer = InboundRelayer, - >, + relayer_id_at_bridged_chain: InboundRelayerId, +) -> Runtime::RuntimeCall +where + Runtime: pallet_bridge_messages::Config, MPI: 'static, - Runtime::RuntimeCall: From>, - <>::SourceHeaderChain as SourceHeaderChain>::MessagesProof: - From>, + Runtime::RuntimeCall: From>, + BridgedChainOf: Chain + Parachain, { pallet_bridge_messages::Call::::receive_messages_proof { relayer_id_at_bridged_chain: relayer_id_at_bridged_chain.into(), - proof: message_proof.into(), + proof: Box::new(message_proof), messages_count: 1, dispatch_weight: Weight::from_parts(1000000000, 0), } @@ -192,11 +181,7 @@ where Runtime: pallet_bridge_messages::Config, MPI: 'static, Runtime::RuntimeCall: From>, - >::TargetHeaderChain: TargetHeaderChain< - XcmAsPlainPayload, - Runtime::AccountId, - MessagesDeliveryProof = FromBridgedChainMessagesDeliveryProof, - >, + BridgedChainOf: Chain + Parachain, { pallet_bridge_messages::Call::::receive_messages_delivery_proof { proof: message_delivery_proof, @@ -206,7 +191,12 @@ where } /// Prepare storage proofs of messages, stored at the source chain. -pub fn make_complex_relayer_delivery_proofs( +pub fn make_complex_relayer_delivery_proofs< + BridgedRelayChain, + BridgedParachain, + ThisChainWithMessages, + InnerXcmRuntimeCall, +>( lane_id: LaneId, xcm_message: Xcm, message_nonce: MessageNonce, @@ -226,24 +216,27 @@ pub fn make_complex_relayer_delivery_proofs + ChainWithGrandpa, - MB: MessageBridge, - UnderlyingChainOf>: bp_runtime::Chain + Parachain, + BridgedParachain: bp_runtime::Chain + Parachain, + ThisChainWithMessages: ChainWithMessages, { + // prepare message let message_payload = prepare_inbound_xcm(xcm_message, message_destination); - let message_size = StorageProofSize::Minimal(message_payload.len() as u32); // prepare para storage proof containing message - let (para_state_root, para_storage_proof) = prepare_messages_storage_proof::( - lane_id, - message_nonce..=message_nonce, - None, - message_size, - message_payload, - encode_all_messages, - encode_lane_data, - ); + let (para_state_root, para_storage_proof) = + prepare_messages_storage_proof::( + lane_id, + message_nonce..=message_nonce, + None, + UnverifiedStorageProofParams::from_db_size(message_payload.len() as u32), + |_| message_payload.clone(), + encode_all_messages, + encode_lane_data, + false, + false, + ); let (relay_chain_header, justification, bridged_para_head, parachain_heads, para_heads_proof) = - make_complex_bridged_parachain_heads_proof::( + make_complex_bridged_parachain_heads_proof::( para_state_root, para_header_number, relay_header_number, @@ -270,12 +263,17 @@ where } /// Prepare storage proofs of message confirmations, stored at the target parachain. -pub fn make_complex_relayer_confirmation_proofs( +pub fn make_complex_relayer_confirmation_proofs< + BridgedRelayChain, + BridgedParachain, + ThisChainWithMessages, + InnerXcmRuntimeCall, +>( lane_id: LaneId, para_header_number: u32, relay_header_number: u32, bridged_para_id: u32, - relayer_id_at_this_chain: AccountIdOf>, + relayer_id_at_this_chain: AccountIdOf, relayers_state: UnrewardedRelayersState, ) -> ( HeaderOf, @@ -288,28 +286,29 @@ pub fn make_complex_relayer_confirmation_proofs + ChainWithGrandpa, - MB: MessageBridge, - UnderlyingChainOf>: bp_runtime::Chain + Parachain, + BridgedParachain: bp_runtime::Chain + Parachain, + ThisChainWithMessages: ChainWithMessages, { // prepare para storage proof containing message delivery proof - let (para_state_root, para_storage_proof) = prepare_message_delivery_storage_proof::( - lane_id, - InboundLaneData { - relayers: vec![ - UnrewardedRelayer { - relayer: relayer_id_at_this_chain.into(), - messages: DeliveredMessages::new(1) - }; - relayers_state.unrewarded_relayer_entries as usize - ] - .into(), - last_confirmed_nonce: 1, - }, - StorageProofSize::Minimal(0), - ); + let (para_state_root, para_storage_proof) = + prepare_message_delivery_storage_proof::( + lane_id, + InboundLaneData { + relayers: vec![ + UnrewardedRelayer { + relayer: relayer_id_at_this_chain.into(), + messages: DeliveredMessages::new(1) + }; + relayers_state.unrewarded_relayer_entries as usize + ] + .into(), + last_confirmed_nonce: 1, + }, + UnverifiedStorageProofParams::default(), + ); let (relay_chain_header, justification, bridged_para_head, parachain_heads, para_heads_proof) = - make_complex_bridged_parachain_heads_proof::( + make_complex_bridged_parachain_heads_proof::( para_state_root, para_header_number, relay_header_number, @@ -334,7 +333,7 @@ where } /// Make bridged parachain header with given state root and relay header that is finalizing it. -pub fn make_complex_bridged_parachain_heads_proof( +pub fn make_complex_bridged_parachain_heads_proof( para_state_root: ParaHash, para_header_number: u32, relay_header_number: BlockNumberOf, @@ -350,20 +349,17 @@ pub fn make_complex_bridged_parachain_heads_proof( where BridgedRelayChain: bp_runtime::Chain + ChainWithGrandpa, - MB: MessageBridge, - ::BridgedChain: Send + Sync + 'static, - ::ThisChain: Send + Sync + 'static, - UnderlyingChainOf>: bp_runtime::Chain + Parachain, + BridgedParachain: bp_runtime::Chain + Parachain, { let bridged_para_head = ParaHead( - bp_test_utils::test_header_with_root::>( + bp_test_utils::test_header_with_root::>( para_header_number.into(), para_state_root, ) .encode(), ); let (relay_state_root, para_heads_proof, parachain_heads) = - prepare_parachain_heads_proof::>(vec![( + prepare_parachain_heads_proof::>(vec![( bridged_para_id, bridged_para_head.clone(), )]); diff --git a/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile b/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile index e17952ccee8..634b9f18829 100644 --- a/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile +++ b/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile @@ -1,7 +1,7 @@ # this image is built on top of existing Zombienet image ARG ZOMBIENET_IMAGE # this image uses substrate-relay image built elsewhere -ARG SUBSTRATE_RELAY_IMAGE=docker.io/paritytech/substrate-relay:v1.6.4 +ARG SUBSTRATE_RELAY_IMAGE=docker.io/paritytech/substrate-relay:v1.6.5 # metadata ARG VCS_REF diff --git a/prdoc/pr_4935.prdoc b/prdoc/pr_4935.prdoc new file mode 100644 index 00000000000..2b06899b633 --- /dev/null +++ b/prdoc/pr_4935.prdoc @@ -0,0 +1,75 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "Bridges V2 refactoring backport and `pallet_bridge_messages` simplifications" + +doc: + - audience: Runtime Dev + description: | + This introduces several simplifications to the pallet_bridge_messages::Config configuration. + Types like `BridgedChainId`, `MaxUnrewardedRelayerEntriesAtInboundLane`, `MaxUnconfirmedMessagesAtInboundLane`, `MaximalOutboundPayloadSize`, + `InboundRelayer`, `TargetHeaderChain`, and `SourceHeaderChain` were removed. + Now, you only need to provide specific bridging chain configurations for `ThisChain`, `BridgedChain`, and `BridgedHeaderChain`. + + If you previously specified implementations for the bp_runtime::Chain* traits, those will fit here exactly, for example: + ``` + type ThisChain = bp_bridge_hub_rococo::BridgeHubRococo; + type BridgedChain = bp_bridge_hub_westend::BridgeHubWestend; + type BridgedHeaderChain = pallet_bridge_parachains::ParachainHeaders< + Runtime, + BridgeParachainWestendInstance, + bp_bridge_hub_westend::BridgeHubWestend, + >; + ``` + +crates: + - name: pallet-bridge-messages + bump: major + - name: bridge-runtime-common + bump: major + - name: bp-header-chain + bump: major + - name: bp-runtime + bump: major + - name: bp-messages + bump: major + - name: bp-polkadot-core + bump: patch + - name: bp-bridge-hub-kusama + bump: minor + - name: bp-bridge-hub-polkadot + bump: minor + - name: bp-bridge-hub-rococo + bump: minor + - name: bp-bridge-hub-westend + bump: minor + - name: bp-kusama + bump: minor + - name: bp-polkadot + bump: minor + - name: bp-polkadot-bulletin + bump: minor + - name: bp-rococo + bump: minor + - name: bp-test-utils + bump: patch + - name: bp-westend + bump: minor + - name: bridge-hub-test-utils + bump: major + - name: pallet-bridge-grandpa + bump: patch + - name: pallet-bridge-parachains + bump: patch + - name: pallet-bridge-relayers + bump: patch + - name: pallet-xcm-bridge-hub + bump: patch + - name: asset-hub-rococo-runtime + bump: patch + - name: asset-hub-westend-runtime + bump: patch + - name: bridge-hub-rococo-runtime + bump: major + - name: bridge-hub-westend-runtime + bump: major -- GitLab From ebb1bb60bb86ce7527964437c67e067a212c36b0 Mon Sep 17 00:00:00 2001 From: Javier Bullrich Date: Fri, 12 Jul 2024 12:24:36 +0200 Subject: [PATCH 026/252] added sync command (#4818) Added the command sync. Follow up on #4701 This PR is blocked until a new machine for the sync gets deployed. --- .github/commands-readme.md | 1 + .github/workflows/command-bench-all.yml | 2 +- .github/workflows/command-sync.yml | 68 +++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/command-sync.yml diff --git a/.github/commands-readme.md b/.github/commands-readme.md index bf0e9e5ed20..20644c048c6 100644 --- a/.github/commands-readme.md +++ b/.github/commands-readme.md @@ -10,6 +10,7 @@ The current available command actions are: - [Command FMT](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-fmt.yml) - [Command Update UI](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-update-ui.yml) +- [Command Sync](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-sync.yml) - [Command Bench](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-bench.yml) - [Command Bench All](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-bench-all.yml) - [Command Bench Overhead](https://github.com/paritytech/polkadot-sdk/actions/workflows/command-bench-overhead.yml) diff --git a/.github/workflows/command-bench-all.yml b/.github/workflows/command-bench-all.yml index f1d1589bea2..6aa4f6f7ff0 100644 --- a/.github/workflows/command-bench-all.yml +++ b/.github/workflows/command-bench-all.yml @@ -63,7 +63,7 @@ jobs: run: cat .github/env >> $GITHUB_OUTPUT cmd-bench-all: needs: [set-image] - runs-on: arc-runners-polkadot-sdk-benchmark + runs-on: arc-runners-polkadot-sdk-weights container: image: ${{ needs.set-image.outputs.IMAGE }} steps: diff --git a/.github/workflows/command-sync.yml b/.github/workflows/command-sync.yml new file mode 100644 index 00000000000..fa5bb9eaf91 --- /dev/null +++ b/.github/workflows/command-sync.yml @@ -0,0 +1,68 @@ +name: Command Sync + +on: + workflow_dispatch: + inputs: + pr: + description: Number of the Pull Request + required: true + chain: + description: Chain + type: choice + required: true + options: + - westend + - rococo + sync-type: + description: Sync type + type: choice + required: true + options: + - warp + - full + - fast + - fast-unsafe + +jobs: + set-image: + runs-on: ubuntu-latest + outputs: + IMAGE: ${{ steps.set_image.outputs.IMAGE }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - id: set_image + run: cat .github/env >> $GITHUB_OUTPUT + cmd-sync: + needs: [set-image] + runs-on: arc-runners-polkadot-sdk-warpsync + container: + image: ${{ needs.set-image.outputs.IMAGE }} + steps: + - name: Download repo + uses: actions/checkout@v4 + - name: Install gh cli + id: gh + uses: ./.github/actions/set-up-gh + with: + pr-number: ${{ inputs.pr }} + GH_TOKEN: ${{ github.token }} + - name: Run sync + run: | + "./scripts/sync.sh" --chain "${{ inputs.chain }}" --type "${{ inputs.sync-type }}" + - name: Report failure + if: ${{ failure() }} + run: gh pr comment ${{ inputs.pr }} --body "

Command failed ❌

Run by @${{ github.actor }} for ${{ github.workflow }} failed. See logs here." + env: + RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + GH_TOKEN: ${{ github.token }} + - run: git pull --rebase + - uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: cmd-action - ${{ github.workflow }} + branch: ${{ steps.gh.outputs.branch }} + - name: Report succeed + run: gh pr comment ${{ inputs.pr }} --body "

Action completed 🎉🎉

Run by @${{ github.actor }} for ${{ github.workflow }} completed 🎉. See logs here." + env: + RUN: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + GH_TOKEN: ${{ github.token }} -- GitLab From d31285a1562318959a7b21dbfec95c2fd6f06d7a Mon Sep 17 00:00:00 2001 From: Andrei Eres Date: Fri, 12 Jul 2024 12:43:48 +0200 Subject: [PATCH 027/252] [statement-distribution] Add metrics for distributed statements in V2 (#4554) Part of https://github.com/paritytech/polkadot-sdk/issues/4334 --- .../network/statement-distribution/src/lib.rs | 30 +++++- .../statement-distribution/src/metrics.rs | 9 +- .../statement-distribution/src/v2/mod.rs | 102 +++++++++++++----- 3 files changed, 109 insertions(+), 32 deletions(-) diff --git a/polkadot/node/network/statement-distribution/src/lib.rs b/polkadot/node/network/statement-distribution/src/lib.rs index 4d56c795f13..33431eb1edc 100644 --- a/polkadot/node/network/statement-distribution/src/lib.rs +++ b/polkadot/node/network/statement-distribution/src/lib.rs @@ -284,7 +284,14 @@ impl StatementDistributionSubsystem { ); }, MuxedMessage::Response(result) => { - v2::handle_response(&mut ctx, &mut state, result, &mut self.reputation).await; + v2::handle_response( + &mut ctx, + &mut state, + result, + &mut self.reputation, + &self.metrics, + ) + .await; }, MuxedMessage::RetryRequest(()) => { // A pending request is ready to retry. This is only a signal to call @@ -320,7 +327,8 @@ impl StatementDistributionSubsystem { let mode = prospective_parachains_mode(ctx.sender(), activated.hash).await?; if let ProspectiveParachainsMode::Enabled { .. } = mode { let res = - v2::handle_active_leaves_update(ctx, state, activated, mode).await; + v2::handle_active_leaves_update(ctx, state, activated, mode, &metrics) + .await; // Regardless of the result of leaf activation, we always prune before // handling it to avoid leaks. v2::handle_deactivate_leaves(state, &deactivated); @@ -370,6 +378,7 @@ impl StatementDistributionSubsystem { relay_parent, statement, &mut self.reputation, + &self.metrics, ) .await?; } @@ -428,11 +437,24 @@ impl StatementDistributionSubsystem { if target.targets_current() { // pass to v2. - v2::handle_network_update(ctx, state, event, &mut self.reputation).await; + v2::handle_network_update( + ctx, + state, + event, + &mut self.reputation, + &self.metrics, + ) + .await; } }, StatementDistributionMessage::Backed(candidate_hash) => { - crate::v2::handle_backed_candidate_message(ctx, state, candidate_hash).await; + crate::v2::handle_backed_candidate_message( + ctx, + state, + candidate_hash, + &self.metrics, + ) + .await; }, }, } diff --git a/polkadot/node/network/statement-distribution/src/metrics.rs b/polkadot/node/network/statement-distribution/src/metrics.rs index 1bc99417426..e21fff1e642 100644 --- a/polkadot/node/network/statement-distribution/src/metrics.rs +++ b/polkadot/node/network/statement-distribution/src/metrics.rs @@ -25,13 +25,13 @@ const HISTOGRAM_LATENCY_BUCKETS: &[f64] = &[ #[derive(Clone)] struct MetricsInner { // V1 - statements_distributed: prometheus::Counter, sent_requests: prometheus::Counter, received_responses: prometheus::CounterVec, network_bridge_update: prometheus::HistogramVec, statements_unexpected: prometheus::CounterVec, created_message_size: prometheus::Gauge, // V1+ + statements_distributed: prometheus::Counter, active_leaves_update: prometheus::Histogram, share: prometheus::Histogram, // V2+ @@ -51,6 +51,13 @@ impl Metrics { } } + /// Update statements distributed counter by an amount + pub fn on_statements_distributed(&self, n: usize) { + if let Some(metrics) = &self.0 { + metrics.statements_distributed.inc_by(n as u64); + } + } + /// Update sent requests counter /// This counter is updated merely for the statements sent via request/response method, /// meaning that it counts large statements only diff --git a/polkadot/node/network/statement-distribution/src/v2/mod.rs b/polkadot/node/network/statement-distribution/src/v2/mod.rs index 2bb9c82c6a6..47d350849b2 100644 --- a/polkadot/node/network/statement-distribution/src/v2/mod.rs +++ b/polkadot/node/network/statement-distribution/src/v2/mod.rs @@ -400,6 +400,7 @@ pub(crate) async fn handle_network_update( state: &mut State, update: NetworkBridgeEvent, reputation: &mut ReputationAggregator, + metrics: &Metrics, ) { match update { NetworkBridgeEvent::PeerConnected(peer_id, role, protocol_version, mut authority_ids) => { @@ -483,23 +484,33 @@ pub(crate) async fn handle_network_update( net_protocol::StatementDistributionMessage::V3( protocol_v3::StatementDistributionMessage::Statement(relay_parent, statement), ) => - handle_incoming_statement(ctx, state, peer_id, relay_parent, statement, reputation) - .await, + handle_incoming_statement( + ctx, + state, + peer_id, + relay_parent, + statement, + reputation, + metrics, + ) + .await, net_protocol::StatementDistributionMessage::V2( protocol_v2::StatementDistributionMessage::BackedCandidateManifest(inner), ) | net_protocol::StatementDistributionMessage::V3( protocol_v3::StatementDistributionMessage::BackedCandidateManifest(inner), - ) => handle_incoming_manifest(ctx, state, peer_id, inner, reputation).await, + ) => handle_incoming_manifest(ctx, state, peer_id, inner, reputation, metrics).await, net_protocol::StatementDistributionMessage::V2( protocol_v2::StatementDistributionMessage::BackedCandidateKnown(inner), ) | net_protocol::StatementDistributionMessage::V3( protocol_v3::StatementDistributionMessage::BackedCandidateKnown(inner), - ) => handle_incoming_acknowledgement(ctx, state, peer_id, inner, reputation).await, + ) => + handle_incoming_acknowledgement(ctx, state, peer_id, inner, reputation, metrics) + .await, }, NetworkBridgeEvent::PeerViewChange(peer_id, view) => - handle_peer_view_update(ctx, state, peer_id, view).await, + handle_peer_view_update(ctx, state, peer_id, view, metrics).await, NetworkBridgeEvent::OurViewChange(_view) => { // handled by `handle_activated_leaf` }, @@ -539,6 +550,7 @@ pub(crate) async fn handle_active_leaves_update( state: &mut State, activated: &ActivatedLeaf, leaf_mode: ProspectiveParachainsMode, + metrics: &Metrics, ) -> JfyiErrorResult<()> { let max_candidate_depth = match leaf_mode { ProspectiveParachainsMode::Disabled => return Ok(()), @@ -714,7 +726,8 @@ pub(crate) async fn handle_active_leaves_update( for (peer, fresh) in update_peers { for fresh_relay_parent in fresh { - send_peer_messages_for_relay_parent(ctx, state, peer, fresh_relay_parent).await; + send_peer_messages_for_relay_parent(ctx, state, peer, fresh_relay_parent, metrics) + .await; } } } @@ -815,6 +828,7 @@ async fn handle_peer_view_update( state: &mut State, peer: PeerId, new_view: View, + metrics: &Metrics, ) { let fresh_implicit = { let peer_data = match state.peers.get_mut(&peer) { @@ -826,7 +840,7 @@ async fn handle_peer_view_update( }; for new_relay_parent in fresh_implicit { - send_peer_messages_for_relay_parent(ctx, state, peer, new_relay_parent).await; + send_peer_messages_for_relay_parent(ctx, state, peer, new_relay_parent, metrics).await; } } @@ -857,6 +871,7 @@ async fn send_peer_messages_for_relay_parent( state: &mut State, peer: PeerId, relay_parent: Hash, + metrics: &Metrics, ) { let peer_data = match state.peers.get_mut(&peer) { None => return, @@ -889,6 +904,7 @@ async fn send_peer_messages_for_relay_parent( &mut active.cluster_tracker, &state.candidates, &relay_parent_state.statement_store, + metrics, ) .await; } @@ -901,6 +917,7 @@ async fn send_peer_messages_for_relay_parent( &per_session_state.groups, relay_parent_state, &state.candidates, + metrics, ) .await; } @@ -949,6 +966,7 @@ async fn send_pending_cluster_statements( cluster_tracker: &mut ClusterTracker, candidates: &Candidates, statement_store: &StatementStore, + metrics: &Metrics, ) { let pending_statements = cluster_tracker.pending_statements_for(peer_validator_id); let network_messages = pending_statements @@ -974,12 +992,12 @@ async fn send_pending_cluster_statements( }) .collect::>(); - if network_messages.is_empty() { - return + if !network_messages.is_empty() { + let count = network_messages.len(); + ctx.send_message(NetworkBridgeTxMessage::SendValidationMessages(network_messages)) + .await; + metrics.on_statements_distributed(count); } - - ctx.send_message(NetworkBridgeTxMessage::SendValidationMessages(network_messages)) - .await; } /// Send a peer all pending grid messages / acknowledgements / follow up statements @@ -993,6 +1011,7 @@ async fn send_pending_grid_messages( groups: &Groups, relay_parent_state: &mut PerRelayParentState, candidates: &Candidates, + metrics: &Metrics, ) { let pending_manifests = { let local_validator = match relay_parent_state.local_validator.as_mut() { @@ -1005,6 +1024,7 @@ async fn send_pending_grid_messages( }; let mut messages: Vec<(Vec, net_protocol::VersionedValidationProtocol)> = Vec::new(); + let mut statements_count = 0; for (candidate_hash, kind) in pending_manifests { let confirmed_candidate = match candidates.get_confirmed(&candidate_hash) { None => continue, // sanity @@ -1079,7 +1099,7 @@ async fn send_pending_grid_messages( }; }, grid::ManifestKind::Acknowledgement => { - messages.extend(acknowledgement_and_statement_messages( + let (m, c) = acknowledgement_and_statement_messages( peer_id, peer_validator_id, groups, @@ -1088,7 +1108,9 @@ async fn send_pending_grid_messages( group_index, candidate_hash, local_knowledge, - )); + ); + messages.extend(m); + statements_count += c; }, } } @@ -1107,8 +1129,9 @@ async fn send_pending_grid_messages( let pending_statements = grid_tracker.all_pending_statements_for(peer_validator_id); - let extra_statements = - pending_statements.into_iter().filter_map(|(originator, compact)| { + let extra_statements = pending_statements + .into_iter() + .filter_map(|(originator, compact)| { let res = pending_statement_network_message( &relay_parent_state.statement_store, relay_parent, @@ -1128,15 +1151,17 @@ async fn send_pending_grid_messages( } res - }); + }) + .collect::>(); + statements_count += extra_statements.len(); messages.extend(extra_statements); } - if messages.is_empty() { - return + if !messages.is_empty() { + ctx.send_message(NetworkBridgeTxMessage::SendValidationMessages(messages)).await; + metrics.on_statements_distributed(statements_count); } - ctx.send_message(NetworkBridgeTxMessage::SendValidationMessages(messages)).await; } // Imports a locally originating statement and distributes it to peers. @@ -1147,6 +1172,7 @@ pub(crate) async fn share_local_statement( relay_parent: Hash, statement: SignedFullStatementWithPVD, reputation: &mut ReputationAggregator, + metrics: &Metrics, ) -> JfyiErrorResult<()> { let per_relay_parent = match state.per_relay_parent.get_mut(&relay_parent) { None => return Err(JfyiError::InvalidShare), @@ -1269,11 +1295,12 @@ pub(crate) async fn share_local_statement( &state.authorities, &state.peers, compact_statement, + metrics, ) .await; if let Some(post_confirmation) = post_confirmation { - apply_post_confirmation(ctx, state, post_confirmation, reputation).await; + apply_post_confirmation(ctx, state, post_confirmation, reputation, metrics).await; } Ok(()) @@ -1310,6 +1337,7 @@ async fn circulate_statement( authorities: &HashMap, peers: &HashMap, statement: SignedStatement, + metrics: &Metrics, ) { let session_info = &per_session.session_info; @@ -1446,6 +1474,7 @@ async fn circulate_statement( .into(), )) .await; + metrics.on_statement_distributed(); } if !statement_to_v3_peers.is_empty() { @@ -1465,6 +1494,7 @@ async fn circulate_statement( .into(), )) .await; + metrics.on_statement_distributed(); } } /// Check a statement signature under this parent hash. @@ -1511,6 +1541,7 @@ async fn handle_incoming_statement( relay_parent: Hash, statement: UncheckedSignedStatement, reputation: &mut ReputationAggregator, + metrics: &Metrics, ) { let peer_state = match state.peers.get(&peer) { None => { @@ -1787,6 +1818,7 @@ async fn handle_incoming_statement( &state.authorities, &state.peers, checked_statement, + metrics, ) .await; } else { @@ -1944,6 +1976,7 @@ async fn provide_candidate_to_grid( per_session: &PerSessionState, authorities: &HashMap, peers: &HashMap, + metrics: &Metrics, ) { let local_validator = match relay_parent_state.local_validator { Some(ref mut v) => v, @@ -2131,8 +2164,10 @@ async fn provide_candidate_to_grid( .await; } if !post_statements.is_empty() { + let count = post_statements.len(); ctx.send_message(NetworkBridgeTxMessage::SendValidationMessages(post_statements)) .await; + metrics.on_statements_distributed(count); } } @@ -2532,6 +2567,7 @@ async fn handle_incoming_manifest( peer: PeerId, manifest: net_protocol::v2::BackedCandidateManifest, reputation: &mut ReputationAggregator, + metrics: &Metrics, ) { gum::debug!( target: LOG_TARGET, @@ -2588,7 +2624,7 @@ async fn handle_incoming_manifest( ) }; - let messages = acknowledgement_and_statement_messages( + let (messages, statements_count) = acknowledgement_and_statement_messages( &( peer, state @@ -2609,6 +2645,7 @@ async fn handle_incoming_manifest( if !messages.is_empty() { ctx.send_message(NetworkBridgeTxMessage::SendValidationMessages(messages)).await; + metrics.on_statements_distributed(statements_count); } } else if !state.candidates.is_confirmed(&manifest.candidate_hash) { // 5. if unconfirmed, add request entry @@ -2636,9 +2673,9 @@ fn acknowledgement_and_statement_messages( group_index: GroupIndex, candidate_hash: CandidateHash, local_knowledge: StatementFilter, -) -> Vec<(Vec, net_protocol::VersionedValidationProtocol)> { +) -> (Vec<(Vec, net_protocol::VersionedValidationProtocol)>, usize) { let local_validator = match relay_parent_state.local_validator.as_mut() { - None => return Vec::new(), + None => return (Vec::new(), 0), Some(l) => l, }; @@ -2666,7 +2703,7 @@ fn acknowledgement_and_statement_messages( "Bug ValidationVersion::V1 should not be used in statement-distribution v2, legacy should have handled this" ); - return Vec::new() + return (Vec::new(), 0) }, }; @@ -2687,10 +2724,11 @@ fn acknowledgement_and_statement_messages( candidate_hash, peer, ); + let statements_count = statement_messages.len(); messages.extend(statement_messages.into_iter().map(|m| (vec![peer.0], m))); - messages + (messages, statements_count) } #[overseer::contextbounds(StatementDistribution, prefix=self::overseer)] @@ -2700,6 +2738,7 @@ async fn handle_incoming_acknowledgement( peer: PeerId, acknowledgement: net_protocol::v2::BackedCandidateAcknowledgement, reputation: &mut ReputationAggregator, + metrics: &Metrics, ) { // The key difference between acknowledgments and full manifests is that only // the candidate hash is included alongside the bitfields, so the candidate @@ -2780,10 +2819,12 @@ async fn handle_incoming_acknowledgement( ); if !messages.is_empty() { + let count = messages.len(); ctx.send_message(NetworkBridgeTxMessage::SendValidationMessages( messages.into_iter().map(|m| (vec![peer], m)).collect(), )) .await; + metrics.on_statements_distributed(count); } } @@ -2793,6 +2834,7 @@ pub(crate) async fn handle_backed_candidate_message( ctx: &mut Context, state: &mut State, candidate_hash: CandidateHash, + metrics: &Metrics, ) { // If the candidate is unknown or unconfirmed, it's a race (pruned before receiving message) // or a bug. Ignore if so @@ -2834,6 +2876,7 @@ pub(crate) async fn handle_backed_candidate_message( per_session, &state.authorities, &state.peers, + metrics, ) .await; @@ -2855,6 +2898,7 @@ async fn send_cluster_candidate_statements( state: &mut State, candidate_hash: CandidateHash, relay_parent: Hash, + metrics: &Metrics, ) { let relay_parent_state = match state.per_relay_parent.get_mut(&relay_parent) { None => return, @@ -2897,6 +2941,7 @@ async fn send_cluster_candidate_statements( &state.authorities, &state.peers, statement, + metrics, ) .await; } @@ -2914,6 +2959,7 @@ async fn apply_post_confirmation( state: &mut State, post_confirmation: PostConfirmation, reputation: &mut ReputationAggregator, + metrics: &Metrics, ) { for peer in post_confirmation.reckoning.incorrect { modify_reputation(reputation, ctx.sender(), peer, COST_INACCURATE_ADVERTISEMENT).await; @@ -2927,6 +2973,7 @@ async fn apply_post_confirmation( state, candidate_hash, post_confirmation.hypothetical.relay_parent(), + metrics, ) .await; new_confirmed_candidate_fragment_chain_updates(ctx, state, post_confirmation.hypothetical) @@ -3052,6 +3099,7 @@ pub(crate) async fn handle_response( state: &mut State, response: UnhandledResponse, reputation: &mut ReputationAggregator, + metrics: &Metrics, ) { let &requests::CandidateIdentifier { relay_parent, candidate_hash, group_index } = response.candidate_identifier(); @@ -3151,7 +3199,7 @@ pub(crate) async fn handle_response( }; // Note that this implicitly circulates all statements via the cluster. - apply_post_confirmation(ctx, state, post_confirmation, reputation).await; + apply_post_confirmation(ctx, state, post_confirmation, reputation, metrics).await; let confirmed = state.candidates.get_confirmed(&candidate_hash).expect("just confirmed; qed"); -- GitLab From 4aa29a41cf731b8181f03168240e8dedb2adfa7a Mon Sep 17 00:00:00 2001 From: dharjeezy Date: Fri, 12 Jul 2024 12:51:33 +0100 Subject: [PATCH 028/252] Try State Hook for Bounties (#4563) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of: https://github.com/paritytech/polkadot-sdk/issues/239 Polkadot address: 12GyGD3QhT4i2JJpNzvMf96sxxBLWymz4RdGCxRH5Rj5agKW --------- Signed-off-by: Oliver Tale-Yazdi Co-authored-by: Oliver Tale-Yazdi Co-authored-by: Bastian Köcher --- prdoc/pr_4563.prdoc | 12 +++ substrate/frame/bounties/src/benchmarking.rs | 2 +- substrate/frame/bounties/src/lib.rs | 48 ++++++++++ substrate/frame/bounties/src/tests.rs | 92 ++++++++++++-------- 4 files changed, 116 insertions(+), 38 deletions(-) create mode 100644 prdoc/pr_4563.prdoc diff --git a/prdoc/pr_4563.prdoc b/prdoc/pr_4563.prdoc new file mode 100644 index 00000000000..3780eee5898 --- /dev/null +++ b/prdoc/pr_4563.prdoc @@ -0,0 +1,12 @@ +title: Try State Hook for Bounties. + +doc: + - audience: Runtime User + description: | + Invariants for storage items in the bounties pallet. Enforces the following Invariants: + 1.`BountyCount` should be greater or equals to the length of the number of items in `Bounties`. + 2.`BountyCount` should be greater or equals to the length of the number of items in `BountyDescriptions`. + 3. Number of items in `Bounties` should be the same as `BountyDescriptions` length. +crates: +- name: pallet-bounties + bump: minor diff --git a/substrate/frame/bounties/src/benchmarking.rs b/substrate/frame/bounties/src/benchmarking.rs index a009b132f05..f53d95d919d 100644 --- a/substrate/frame/bounties/src/benchmarking.rs +++ b/substrate/frame/bounties/src/benchmarking.rs @@ -231,5 +231,5 @@ benchmarks_instance_pallet! { } } - impl_benchmark_test_suite!(Bounties, crate::tests::new_test_ext(), crate::tests::Test) + impl_benchmark_test_suite!(Bounties, crate::tests::ExtBuilder::default().build(), crate::tests::Test) } diff --git a/substrate/frame/bounties/src/lib.rs b/substrate/frame/bounties/src/lib.rs index e27ecbda3a2..c04bec2d12a 100644 --- a/substrate/frame/bounties/src/lib.rs +++ b/substrate/frame/bounties/src/lib.rs @@ -807,6 +807,54 @@ pub mod pallet { Ok(()) } } + + #[pallet::hooks] + impl, I: 'static> Hooks> for Pallet { + #[cfg(feature = "try-runtime")] + fn try_state(_n: BlockNumberFor) -> Result<(), sp_runtime::TryRuntimeError> { + Self::do_try_state() + } + } +} + +#[cfg(any(feature = "try-runtime", test))] +impl, I: 'static> Pallet { + /// Ensure the correctness of the state of this pallet. + /// + /// This should be valid before or after each state transition of this pallet. + pub fn do_try_state() -> Result<(), sp_runtime::TryRuntimeError> { + Self::try_state_bounties_count()?; + + Ok(()) + } + + /// # Invariants + /// + /// * `BountyCount` should be greater or equals to the length of the number of items in + /// `Bounties`. + /// * `BountyCount` should be greater or equals to the length of the number of items in + /// `BountyDescriptions`. + /// * Number of items in `Bounties` should be the same as `BountyDescriptions` length. + fn try_state_bounties_count() -> Result<(), sp_runtime::TryRuntimeError> { + let bounties_length = Bounties::::iter().count() as u32; + + ensure!( + >::get() >= bounties_length, + "`BountyCount` must be grater or equals the number of `Bounties` in storage" + ); + + let bounties_description_length = BountyDescriptions::::iter().count() as u32; + ensure!( + >::get() >= bounties_description_length, + "`BountyCount` must be grater or equals the number of `BountiesDescriptions` in storage." + ); + + ensure!( + bounties_length == bounties_description_length, + "Number of `Bounties` in storage must be the same as the Number of `BountiesDescription` in storage." + ); + Ok(()) + } } impl, I: 'static> Pallet { diff --git a/substrate/frame/bounties/src/tests.rs b/substrate/frame/bounties/src/tests.rs index 9f3a52263ec..7cd47982674 100644 --- a/substrate/frame/bounties/src/tests.rs +++ b/substrate/frame/bounties/src/tests.rs @@ -167,18 +167,36 @@ impl Config for Test { type TreasuryError = pallet_treasury::Error; type TreasuryError1 = pallet_treasury::Error; -pub fn new_test_ext() -> sp_io::TestExternalities { - let mut ext: sp_io::TestExternalities = RuntimeGenesisConfig { - system: frame_system::GenesisConfig::default(), - balances: pallet_balances::GenesisConfig { balances: vec![(0, 100), (1, 98), (2, 1)] }, - treasury: Default::default(), - treasury_1: Default::default(), +pub struct ExtBuilder {} + +impl Default for ExtBuilder { + fn default() -> Self { + Self {} + } +} + +impl ExtBuilder { + pub fn build(self) -> sp_io::TestExternalities { + let mut ext: sp_io::TestExternalities = RuntimeGenesisConfig { + system: frame_system::GenesisConfig::default(), + balances: pallet_balances::GenesisConfig { balances: vec![(0, 100), (1, 98), (2, 1)] }, + treasury: Default::default(), + treasury_1: Default::default(), + } + .build_storage() + .unwrap() + .into(); + ext.execute_with(|| System::set_block_number(1)); + ext + } + + pub fn build_and_execute(self, test: impl FnOnce() -> ()) { + self.build().execute_with(|| { + test(); + Bounties::do_try_state().expect("All invariants must hold after a test"); + Bounties1::do_try_state().expect("All invariants must hold after a test"); + }) } - .build_storage() - .unwrap() - .into(); - ext.execute_with(|| System::set_block_number(1)); - ext } fn last_event() -> BountiesEvent { @@ -192,7 +210,7 @@ fn last_event() -> BountiesEvent { #[test] fn genesis_config_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { assert_eq!(Treasury::pot(), 0); assert_eq!(Treasury::proposal_count(), 0); }); @@ -200,7 +218,7 @@ fn genesis_config_works() { #[test] fn minting_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { // Check that accumulate works when we have Some value in Dummy already. Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_eq!(Treasury::pot(), 100); @@ -209,7 +227,7 @@ fn minting_works() { #[test] fn accepted_spend_proposal_ignored_outside_spend_period() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_ok!({ Treasury::spend_local(RuntimeOrigin::root(), 100, 3) }); @@ -222,7 +240,7 @@ fn accepted_spend_proposal_ignored_outside_spend_period() { #[test] fn unused_pot_should_diminish() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { let init_total_issuance = Balances::total_issuance(); Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_eq!(Balances::total_issuance(), init_total_issuance + 100); @@ -235,7 +253,7 @@ fn unused_pot_should_diminish() { #[test] fn accepted_spend_proposal_enacted_on_spend_period() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_eq!(Treasury::pot(), 100); @@ -249,7 +267,7 @@ fn accepted_spend_proposal_enacted_on_spend_period() { #[test] fn pot_underflow_should_not_diminish() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_eq!(Treasury::pot(), 100); @@ -269,7 +287,7 @@ fn pot_underflow_should_not_diminish() { // i.e. pot should not include existential deposit needed for account survival. #[test] fn treasury_account_doesnt_get_deleted() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_eq!(Treasury::pot(), 100); let treasury_balance = Balances::free_balance(&Treasury::account_id()); @@ -321,7 +339,7 @@ fn inexistent_account_works() { #[test] fn propose_bounty_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); @@ -358,7 +376,7 @@ fn propose_bounty_works() { #[test] fn propose_bounty_validation_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); @@ -387,7 +405,7 @@ fn propose_bounty_validation_works() { #[test] fn close_bounty_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_noop!(Bounties::close_bounty(RuntimeOrigin::root(), 0), Error::::InvalidIndex); @@ -412,7 +430,7 @@ fn close_bounty_works() { #[test] fn approve_bounty_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_noop!( @@ -473,7 +491,7 @@ fn approve_bounty_works() { #[test] fn assign_curator_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); @@ -543,7 +561,7 @@ fn assign_curator_works() { #[test] fn unassign_curator_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_ok!(Bounties::propose_bounty(RuntimeOrigin::signed(0), 50, b"12345".to_vec())); @@ -596,7 +614,7 @@ fn unassign_curator_works() { #[test] fn award_and_claim_bounty_works() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); Balances::make_free_balance_be(&4, 10); @@ -663,7 +681,7 @@ fn award_and_claim_bounty_works() { #[test] fn claim_handles_high_fee() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); Balances::make_free_balance_be(&4, 30); @@ -704,7 +722,7 @@ fn claim_handles_high_fee() { #[test] fn cancel_and_refund() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); @@ -747,7 +765,7 @@ fn cancel_and_refund() { #[test] fn award_and_cancel() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_ok!(Bounties::propose_bounty(RuntimeOrigin::signed(0), 50, b"12345".to_vec())); @@ -790,7 +808,7 @@ fn award_and_cancel() { #[test] fn expire_and_unassign() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_ok!(Bounties::propose_bounty(RuntimeOrigin::signed(0), 50, b"12345".to_vec())); @@ -838,7 +856,7 @@ fn expire_and_unassign() { #[test] fn extend_expiry() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); Balances::make_free_balance_be(&4, 10); @@ -974,7 +992,7 @@ fn genesis_funding_works() { #[test] fn unassign_curator_self() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); assert_ok!(Bounties::propose_bounty(RuntimeOrigin::signed(0), 50, b"12345".to_vec())); @@ -1015,7 +1033,7 @@ fn unassign_curator_self() { fn accept_curator_handles_different_deposit_calculations() { // This test will verify that a bounty with and without a fee results // in a different curator deposit: one using the value, and one using the fee. - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { // Case 1: With a fee let user = 1; let bounty_index = 0; @@ -1092,7 +1110,7 @@ fn accept_curator_handles_different_deposit_calculations() { #[test] fn approve_bounty_works_second_instance() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { // Set burn to 0 to make tracking funds easier. Burn::set(Permill::from_percent(0)); @@ -1118,7 +1136,7 @@ fn approve_bounty_works_second_instance() { #[test] fn approve_bounty_insufficient_spend_limit_errors() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); @@ -1136,7 +1154,7 @@ fn approve_bounty_insufficient_spend_limit_errors() { #[test] fn approve_bounty_instance1_insufficient_spend_limit_errors() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury1::account_id(), 101); @@ -1154,7 +1172,7 @@ fn approve_bounty_instance1_insufficient_spend_limit_errors() { #[test] fn propose_curator_insufficient_spend_limit_errors() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); @@ -1177,7 +1195,7 @@ fn propose_curator_insufficient_spend_limit_errors() { #[test] fn propose_curator_instance1_insufficient_spend_limit_errors() { - new_test_ext().execute_with(|| { + ExtBuilder::default().build_and_execute(|| { System::set_block_number(1); Balances::make_free_balance_be(&Treasury::account_id(), 101); -- GitLab From d2dff5f1c3f705c5acdad040447822f92bb02891 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Mon, 15 Jul 2024 11:31:06 +0300 Subject: [PATCH 029/252] network/tx: Ban peers with tx that fail to decode (#5002) A malicious peer can submit random bytes on transaction protocol. In this case, the peer is not disconnected or reported back to the peerstore. This PR ensures the peer's reputation is properly reported. Discovered during testing: - https://github.com/paritytech/polkadot-sdk/pull/4977 cc @paritytech/networking Signed-off-by: Alexandru Vasile --- substrate/client/network/transactions/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/substrate/client/network/transactions/src/lib.rs b/substrate/client/network/transactions/src/lib.rs index 3384aab5149..31ad0781035 100644 --- a/substrate/client/network/transactions/src/lib.rs +++ b/substrate/client/network/transactions/src/lib.rs @@ -368,7 +368,8 @@ where { self.on_transactions(peer, m); } else { - warn!(target: "sub-libp2p", "Failed to decode transactions list"); + warn!(target: "sub-libp2p", "Failed to decode transactions list from peer {peer}"); + self.network.report_peer(peer, rep::BAD_TRANSACTION); } }, } -- GitLab From 291210aa0fafa97d9b924fe82d68c023bdb0a340 Mon Sep 17 00:00:00 2001 From: Jun Jiang Date: Mon, 15 Jul 2024 18:45:49 +0800 Subject: [PATCH 030/252] Use sp_runtime::traits::BadOrigin (#5011) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It says `Will be removed after July 2023` but that's not true 😃 --------- Co-authored-by: Oliver Tale-Yazdi Co-authored-by: Bastian Köcher --- .../pallets/collective-content/src/tests.rs | 3 +- .../runtime/common/src/paras_registrar/mod.rs | 6 ++-- .../src/assigner_on_demand/tests.rs | 3 +- polkadot/runtime/parachains/src/hrmp/tests.rs | 3 +- prdoc/pr_5011.prdoc | 29 +++++++++++++++++++ substrate/frame/alliance/src/tests.rs | 3 +- substrate/frame/contracts/src/lib.rs | 3 +- substrate/frame/democracy/src/lib.rs | 3 +- substrate/frame/nomination-pools/src/lib.rs | 2 +- .../frame/ranked-collective/src/tests.rs | 6 ++-- substrate/frame/utility/src/tests.rs | 3 +- 11 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 prdoc/pr_5011.prdoc diff --git a/cumulus/parachains/pallets/collective-content/src/tests.rs b/cumulus/parachains/pallets/collective-content/src/tests.rs index 4910b30b89a..7fee5eea101 100644 --- a/cumulus/parachains/pallets/collective-content/src/tests.rs +++ b/cumulus/parachains/pallets/collective-content/src/tests.rs @@ -16,7 +16,8 @@ //! Tests. use super::{mock::*, *}; -use frame_support::{assert_noop, assert_ok, error::BadOrigin, pallet_prelude::Pays}; +use frame_support::{assert_noop, assert_ok, pallet_prelude::Pays}; +use sp_runtime::traits::BadOrigin; /// returns CID hash of 68 bytes of given `i`. fn create_cid(i: u8) -> OpaqueCid { diff --git a/polkadot/runtime/common/src/paras_registrar/mod.rs b/polkadot/runtime/common/src/paras_registrar/mod.rs index 6b9191f7c6f..606883b7119 100644 --- a/polkadot/runtime/common/src/paras_registrar/mod.rs +++ b/polkadot/runtime/common/src/paras_registrar/mod.rs @@ -718,9 +718,7 @@ mod tests { mock::conclude_pvf_checking, paras_registrar, traits::Registrar as RegistrarTrait, }; use frame_support::{ - assert_noop, assert_ok, derive_impl, - error::BadOrigin, - parameter_types, + assert_noop, assert_ok, derive_impl, parameter_types, traits::{OnFinalize, OnInitialize}, }; use frame_system::limits; @@ -731,7 +729,7 @@ mod tests { use sp_io::TestExternalities; use sp_keyring::Sr25519Keyring; use sp_runtime::{ - traits::{BlakeTwo256, IdentityLookup}, + traits::{BadOrigin, BlakeTwo256, IdentityLookup}, transaction_validity::TransactionPriority, BuildStorage, Perbill, }; diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs b/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs index 3d01ba655d3..a6074b305b4 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs +++ b/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs @@ -30,11 +30,12 @@ use crate::{ }, paras::{ParaGenesisArgs, ParaKind}, }; -use frame_support::{assert_noop, assert_ok, error::BadOrigin}; +use frame_support::{assert_noop, assert_ok}; use pallet_balances::Error as BalancesError; use polkadot_primitives::{ BlockNumber, SessionIndex, ValidationCode, ON_DEMAND_MAX_QUEUE_MAX_SIZE, }; +use sp_runtime::traits::BadOrigin; use sp_std::{ cmp::{Ord, Ordering}, collections::btree_map::BTreeMap, diff --git a/polkadot/runtime/parachains/src/hrmp/tests.rs b/polkadot/runtime/parachains/src/hrmp/tests.rs index 4fcbc69e98a..52db932c796 100644 --- a/polkadot/runtime/parachains/src/hrmp/tests.rs +++ b/polkadot/runtime/parachains/src/hrmp/tests.rs @@ -27,8 +27,9 @@ use crate::{ }, shared, }; -use frame_support::{assert_noop, assert_ok, error::BadOrigin}; +use frame_support::{assert_noop, assert_ok}; use polkadot_primitives::{BlockNumber, InboundDownwardMessage}; +use sp_runtime::traits::BadOrigin; use std::collections::BTreeMap; pub(crate) fn run_to_block(to: BlockNumber, new_session: Option>) { diff --git a/prdoc/pr_5011.prdoc b/prdoc/pr_5011.prdoc new file mode 100644 index 00000000000..cb827bae6c5 --- /dev/null +++ b/prdoc/pr_5011.prdoc @@ -0,0 +1,29 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "Use `BadOrigin` from `sp_runtime`" + +doc: + - audience: Runtime Dev + description: | + This PR refactor usages of deprecated `frame_support::error::BadOrigin` to `sp_runtime::traits::BadOrigin` + +crates: +- name: pallet-collective-content + bump: patch +- name: polkadot-runtime-common + bump: patch +- name: polkadot-runtime-parachains + bump: patch +- name: pallet-alliance + bump: patch +- name: pallet-contracts + bump: patch +- name: pallet-democracy + bump: patch +- name: pallet-nomination-pools + bump: patch +- name: pallet-ranked-collective + bump: patch +- name: pallet-utility + bump: patch diff --git a/substrate/frame/alliance/src/tests.rs b/substrate/frame/alliance/src/tests.rs index edb515b8115..ec31ebf6a47 100644 --- a/substrate/frame/alliance/src/tests.rs +++ b/substrate/frame/alliance/src/tests.rs @@ -17,8 +17,9 @@ //! Tests for the alliance pallet. -use frame_support::{assert_noop, assert_ok, error::BadOrigin}; +use frame_support::{assert_noop, assert_ok}; use frame_system::{EventRecord, Phase}; +use sp_runtime::traits::BadOrigin; use super::*; use crate::{self as alliance, mock::*}; diff --git a/substrate/frame/contracts/src/lib.rs b/substrate/frame/contracts/src/lib.rs index 47772e0a5a0..33083c7ebe7 100644 --- a/substrate/frame/contracts/src/lib.rs +++ b/substrate/frame/contracts/src/lib.rs @@ -119,7 +119,6 @@ use environmental::*; use frame_support::{ dispatch::{GetDispatchInfo, Pays, PostDispatchInfo, RawOrigin, WithPostDispatchInfo}, ensure, - error::BadOrigin, traits::{ fungible::{Inspect, Mutate, MutateHold}, ConstU32, Contains, Get, Randomness, Time, @@ -135,7 +134,7 @@ use frame_system::{ use scale_info::TypeInfo; use smallvec::Array; use sp_runtime::{ - traits::{Convert, Dispatchable, Saturating, StaticLookup, Zero}, + traits::{BadOrigin, Convert, Dispatchable, Saturating, StaticLookup, Zero}, DispatchError, RuntimeDebug, }; use sp_std::{fmt::Debug, prelude::*}; diff --git a/substrate/frame/democracy/src/lib.rs b/substrate/frame/democracy/src/lib.rs index 19cdc754659..e3b4696f8b2 100644 --- a/substrate/frame/democracy/src/lib.rs +++ b/substrate/frame/democracy/src/lib.rs @@ -155,7 +155,6 @@ use codec::{Decode, Encode}; use frame_support::{ ensure, - error::BadOrigin, traits::{ defensive_prelude::*, schedule::{v3::Named as ScheduleNamed, DispatchTime}, @@ -166,7 +165,7 @@ use frame_support::{ }; use frame_system::pallet_prelude::{BlockNumberFor, OriginFor}; use sp_runtime::{ - traits::{Bounded as ArithBounded, One, Saturating, StaticLookup, Zero}, + traits::{BadOrigin, Bounded as ArithBounded, One, Saturating, StaticLookup, Zero}, ArithmeticError, DispatchError, DispatchResult, }; use sp_std::prelude::*; diff --git a/substrate/frame/nomination-pools/src/lib.rs b/substrate/frame/nomination-pools/src/lib.rs index 2b5fe8b6041..641f2b14577 100644 --- a/substrate/frame/nomination-pools/src/lib.rs +++ b/substrate/frame/nomination-pools/src/lib.rs @@ -2600,7 +2600,7 @@ pub mod pallet { ) -> DispatchResult { let mut bonded_pool = match ensure_root(origin.clone()) { Ok(()) => BondedPool::::get(pool_id).ok_or(Error::::PoolNotFound)?, - Err(frame_support::error::BadOrigin) => { + Err(sp_runtime::traits::BadOrigin) => { let who = ensure_signed(origin)?; let bonded_pool = BondedPool::::get(pool_id).ok_or(Error::::PoolNotFound)?; diff --git a/substrate/frame/ranked-collective/src/tests.rs b/substrate/frame/ranked-collective/src/tests.rs index a7827bcc1aa..3a85928b76d 100644 --- a/substrate/frame/ranked-collective/src/tests.rs +++ b/substrate/frame/ranked-collective/src/tests.rs @@ -20,14 +20,12 @@ use std::collections::BTreeMap; use frame_support::{ - assert_noop, assert_ok, derive_impl, - error::BadOrigin, - parameter_types, + assert_noop, assert_ok, derive_impl, parameter_types, traits::{ConstU16, EitherOf, MapSuccess, Polling}, }; use sp_core::Get; use sp_runtime::{ - traits::{MaybeConvert, ReduceBy, ReplaceWithDefault}, + traits::{BadOrigin, MaybeConvert, ReduceBy, ReplaceWithDefault}, BuildStorage, }; diff --git a/substrate/frame/utility/src/tests.rs b/substrate/frame/utility/src/tests.rs index eb2047aac28..0a58a92b4c9 100644 --- a/substrate/frame/utility/src/tests.rs +++ b/substrate/frame/utility/src/tests.rs @@ -25,14 +25,13 @@ use crate as utility; use frame_support::{ assert_err_ignore_postinfo, assert_noop, assert_ok, derive_impl, dispatch::{DispatchErrorWithPostInfo, Pays}, - error::BadOrigin, parameter_types, storage, traits::{ConstU64, Contains}, weights::Weight, }; use pallet_collective::{EnsureProportionAtLeast, Instance1}; use sp_runtime::{ - traits::{BlakeTwo256, Dispatchable, Hash}, + traits::{BadOrigin, BlakeTwo256, Dispatchable, Hash}, BuildStorage, DispatchError, TokenError, }; -- GitLab From 7ecf3f757a5d6f622309cea7f788e8a547a5dce8 Mon Sep 17 00:00:00 2001 From: Jun Jiang Date: Mon, 15 Jul 2024 21:50:25 +0800 Subject: [PATCH 031/252] Remove most all usage of `sp-std` (#5010) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This should remove nearly all usage of `sp-std` except: - bridge and bridge-hubs - a few of frames re-export `sp-std`, keep them for now - there is a usage of `sp_std::Writer`, I don't have an idea how to move it Please review proc-macro carefully. I'm not sure I'm doing it the right way. Note: need `/bot fmt` --------- Co-authored-by: Bastian Köcher Co-authored-by: command-bot <> --- Cargo.lock | 159 ------------------ cumulus/client/parachain-inherent/Cargo.toml | 1 - .../src/lib.rs | 4 +- .../relay-chain-rpc-interface/src/lib.rs | 3 +- .../src/rpc_client.rs | 3 +- cumulus/pallets/aura-ext/Cargo.toml | 2 - .../pallets/aura-ext/src/consensus_hook.rs | 4 +- cumulus/pallets/aura-ext/src/lib.rs | 4 +- cumulus/pallets/collator-selection/Cargo.toml | 2 - .../collator-selection/src/benchmarking.rs | 3 +- cumulus/pallets/collator-selection/src/lib.rs | 6 +- .../collator-selection/src/migration.rs | 10 +- .../pallets/collator-selection/src/weights.rs | 2 +- cumulus/pallets/dmp-queue/Cargo.toml | 2 - cumulus/pallets/dmp-queue/src/benchmarking.rs | 2 +- cumulus/pallets/dmp-queue/src/lib.rs | 2 + cumulus/pallets/dmp-queue/src/migration.rs | 2 +- .../parachain-system/proc-macro/src/lib.rs | 4 +- .../parachain-system/src/consensus_hook.rs | 4 +- cumulus/pallets/parachain-system/src/lib.rs | 13 +- cumulus/pallets/parachain-system/src/mock.rs | 3 +- .../src/relay_state_snapshot.rs | 2 +- cumulus/pallets/parachain-system/src/tests.rs | 2 +- .../src/unincluded_segment.rs | 4 +- .../src/validate_block/implementation.rs | 8 +- .../src/validate_block/mod.rs | 3 + .../src/validate_block/trie_cache.rs | 6 +- .../src/validate_block/trie_recorder.rs | 4 +- .../pallets/parachain-system/src/weights.rs | 2 +- .../pallets/session-benchmarking/Cargo.toml | 2 - .../pallets/session-benchmarking/src/inner.rs | 2 +- .../pallets/session-benchmarking/src/lib.rs | 2 + cumulus/pallets/solo-to-para/Cargo.toml | 2 - cumulus/pallets/solo-to-para/src/lib.rs | 4 +- cumulus/pallets/xcm/Cargo.toml | 2 - cumulus/pallets/xcm/src/lib.rs | 1 - cumulus/pallets/xcmp-queue/Cargo.toml | 2 - .../pallets/xcmp-queue/src/benchmarking.rs | 1 + cumulus/pallets/xcmp-queue/src/bridging.rs | 4 +- cumulus/pallets/xcmp-queue/src/lib.rs | 4 +- cumulus/pallets/xcmp-queue/src/migration.rs | 1 + .../pallets/xcmp-queue/src/migration/v5.rs | 1 + cumulus/parachains/common/Cargo.toml | 2 - cumulus/parachains/common/src/impls.rs | 3 +- cumulus/parachains/common/src/lib.rs | 2 + .../parachains/common/src/message_queue.rs | 2 +- cumulus/parachains/common/src/xcm_config.rs | 2 +- .../pallets/collective-content/Cargo.toml | 2 - .../pallets/collective-content/src/lib.rs | 1 - .../pallets/parachain-info/Cargo.toml | 2 - .../pallets/parachain-info/src/lib.rs | 2 +- cumulus/parachains/pallets/ping/Cargo.toml | 2 - cumulus/parachains/pallets/ping/src/lib.rs | 4 +- .../assets/asset-hub-rococo/Cargo.toml | 2 - .../assets/asset-hub-rococo/src/lib.rs | 14 +- .../cumulus_pallet_parachain_system.rs | 2 +- .../src/weights/pallet_message_queue.rs | 2 +- .../asset-hub-rococo/src/weights/xcm/mod.rs | 2 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 2 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 2 +- .../assets/asset-hub-rococo/src/xcm_config.rs | 22 +-- .../assets/asset-hub-rococo/tests/tests.rs | 14 +- .../assets/asset-hub-westend/Cargo.toml | 2 - .../assets/asset-hub-westend/src/lib.rs | 14 +- .../cumulus_pallet_parachain_system.rs | 2 +- .../src/weights/pallet_message_queue.rs | 2 +- .../asset-hub-westend/src/weights/xcm/mod.rs | 2 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 2 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 2 +- .../asset-hub-westend/src/xcm_config.rs | 12 +- .../assets/asset-hub-westend/tests/tests.rs | 12 +- .../runtimes/assets/common/Cargo.toml | 2 - .../runtimes/assets/common/src/benchmarks.rs | 2 +- .../assets/common/src/foreign_creators.rs | 4 +- .../assets/common/src/fungible_conversion.rs | 3 +- .../runtimes/assets/common/src/lib.rs | 2 + .../common/src/local_and_foreign_assets.rs | 2 +- .../runtimes/assets/common/src/matching.rs | 8 +- .../runtimes/assets/common/src/runtime_api.rs | 2 +- .../runtimes/assets/test-utils/Cargo.toml | 2 - .../src/bridge_to_bulletin_config.rs | 2 +- .../src/bridge_to_westend_config.rs | 6 +- .../bridge-hubs/bridge-hub-rococo/src/lib.rs | 10 +- .../cumulus_pallet_parachain_system.rs | 2 +- .../src/weights/pallet_message_queue.rs | 2 +- .../bridge-hub-rococo/src/weights/xcm/mod.rs | 2 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 2 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 2 +- .../bridge-hub-rococo/src/xcm_config.rs | 2 +- .../src/bridge_to_rococo_config.rs | 6 +- .../bridge-hubs/bridge-hub-westend/src/lib.rs | 12 +- .../cumulus_pallet_parachain_system.rs | 2 +- .../src/weights/pallet_message_queue.rs | 2 +- .../bridge-hub-westend/src/weights/xcm/mod.rs | 2 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 2 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 2 +- .../runtimes/bridge-hubs/common/Cargo.toml | 2 - .../bridge-hubs/common/src/message_queue.rs | 2 +- .../bridge-hubs/test-utils/Cargo.toml | 2 - .../bridge-hubs/test-utils/src/lib.rs | 2 + .../src/test_cases/from_grandpa_chain.rs | 3 +- .../src/test_cases/from_parachain.rs | 3 +- .../test-utils/src/test_cases/helpers.rs | 4 +- .../collectives-westend/Cargo.toml | 2 - .../collectives-westend/src/impls.rs | 3 +- .../collectives-westend/src/lib.rs | 11 +- .../cumulus_pallet_parachain_system.rs | 2 +- .../src/weights/pallet_message_queue.rs | 2 +- .../contracts/contracts-rococo/Cargo.toml | 2 - .../contracts/contracts-rococo/src/lib.rs | 10 +- .../coretime/coretime-rococo/Cargo.toml | 2 - .../coretime/coretime-rococo/src/lib.rs | 8 +- .../coretime-rococo/src/weights/xcm/mod.rs | 2 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 2 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 2 +- .../coretime/coretime-westend/Cargo.toml | 2 - .../coretime/coretime-westend/src/lib.rs | 8 +- .../coretime-westend/src/weights/xcm/mod.rs | 2 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 2 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 2 +- .../glutton/glutton-westend/Cargo.toml | 2 - .../glutton/glutton-westend/src/lib.rs | 8 +- .../runtimes/people/people-rococo/Cargo.toml | 2 - .../runtimes/people/people-rococo/src/lib.rs | 8 +- .../people/people-rococo/src/people.rs | 7 +- .../cumulus_pallet_parachain_system.rs | 2 +- .../src/weights/pallet_message_queue.rs | 2 +- .../people-rococo/src/weights/xcm/mod.rs | 2 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 2 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 2 +- .../runtimes/people/people-westend/Cargo.toml | 2 - .../runtimes/people/people-westend/src/lib.rs | 8 +- .../people/people-westend/src/people.rs | 3 +- .../cumulus_pallet_parachain_system.rs | 2 +- .../src/weights/pallet_message_queue.rs | 2 +- .../people-westend/src/weights/xcm/mod.rs | 2 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 2 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 2 +- .../runtimes/starters/seedling/Cargo.toml | 2 - .../runtimes/starters/seedling/src/lib.rs | 6 +- .../runtimes/starters/shell/Cargo.toml | 2 - .../runtimes/starters/shell/src/lib.rs | 8 +- .../parachains/runtimes/test-utils/Cargo.toml | 2 - .../parachains/runtimes/test-utils/src/lib.rs | 2 +- .../runtimes/testing/penpal/Cargo.toml | 2 - .../runtimes/testing/penpal/src/lib.rs | 6 +- .../testing/rococo-parachain/Cargo.toml | 2 - .../testing/rococo-parachain/src/lib.rs | 6 +- .../asset_hub_polkadot_aura.rs | 2 +- .../src/fake_runtime_api/aura.rs | 2 +- cumulus/primitives/aura/Cargo.toml | 2 - cumulus/primitives/core/Cargo.toml | 2 - cumulus/primitives/core/src/lib.rs | 10 +- .../primitives/parachain-inherent/Cargo.toml | 2 - .../primitives/parachain-inherent/src/lib.rs | 4 +- .../storage-weight-reclaim/Cargo.toml | 2 - .../storage-weight-reclaim/src/lib.rs | 4 +- cumulus/primitives/timestamp/Cargo.toml | 2 - cumulus/primitives/timestamp/src/lib.rs | 2 +- cumulus/primitives/utility/Cargo.toml | 2 - cumulus/primitives/utility/src/lib.rs | 7 +- cumulus/templates/xcm-bench-template.hbs | 2 +- cumulus/test/relay-sproof-builder/Cargo.toml | 2 - cumulus/test/relay-sproof-builder/src/lib.rs | 4 +- cumulus/test/runtime/Cargo.toml | 2 - cumulus/test/runtime/src/lib.rs | 7 +- cumulus/test/runtime/src/test_pallet.rs | 4 +- cumulus/xcm/xcm-emulator/src/lib.rs | 5 +- .../chain_spec_runtime/Cargo.toml | 2 - .../chain_spec_runtime/src/lib.rs | 2 + .../chain_spec_runtime/src/pallets.rs | 1 + .../chain_spec_runtime/src/presets.rs | 4 +- .../chain_spec_runtime/src/runtime.rs | 1 + polkadot/core-primitives/Cargo.toml | 2 - polkadot/core-primitives/src/lib.rs | 12 +- polkadot/parachain/Cargo.toml | 2 - polkadot/parachain/src/lib.rs | 2 + polkadot/parachain/src/primitives.rs | 20 +-- polkadot/parachain/src/wasm_api.rs | 2 +- .../test-parachains/adder/Cargo.toml | 3 +- .../test-parachains/adder/src/lib.rs | 2 + .../adder/src/wasm_validation.rs | 8 +- .../test-parachains/undying/Cargo.toml | 2 - .../test-parachains/undying/src/lib.rs | 4 +- .../undying/src/wasm_validation.rs | 4 +- polkadot/primitives/Cargo.toml | 2 - polkadot/primitives/src/lib.rs | 2 + polkadot/primitives/src/runtime_api.rs | 8 +- polkadot/primitives/src/v7/async_backing.rs | 1 + polkadot/primitives/src/v7/executor_params.rs | 31 ++-- polkadot/primitives/src/v7/metrics.rs | 6 +- polkadot/primitives/src/v7/mod.rs | 24 +-- polkadot/primitives/src/v7/signed.rs | 12 +- polkadot/primitives/src/v7/slashing.rs | 2 +- polkadot/primitives/src/vstaging/mod.rs | 1 - polkadot/runtime/common/Cargo.toml | 2 - .../common/slot_range_helper/Cargo.toml | 3 +- .../common/slot_range_helper/src/lib.rs | 2 +- .../common/src/assigned_slots/migration.rs | 6 +- .../runtime/common/src/assigned_slots/mod.rs | 2 +- polkadot/runtime/common/src/auctions.rs | 3 +- polkadot/runtime/common/src/claims.rs | 17 +- .../runtime/common/src/crowdloan/migration.rs | 2 +- polkadot/runtime/common/src/crowdloan/mod.rs | 7 +- .../runtime/common/src/identity_migrator.rs | 2 +- polkadot/runtime/common/src/impls.rs | 4 +- .../runtime/common/src/integration_tests.rs | 2 +- polkadot/runtime/common/src/lib.rs | 6 +- polkadot/runtime/common/src/mock.rs | 2 +- .../common/src/paras_registrar/migration.rs | 2 +- .../runtime/common/src/paras_registrar/mod.rs | 7 +- .../runtime/common/src/paras_sudo_wrapper.rs | 2 +- polkadot/runtime/common/src/purchase.rs | 2 +- polkadot/runtime/common/src/slots/mod.rs | 6 +- polkadot/runtime/common/src/traits.rs | 2 +- polkadot/runtime/common/src/try_runtime.rs | 2 +- polkadot/runtime/common/src/xcm_sender.rs | 12 +- polkadot/runtime/metrics/Cargo.toml | 2 - polkadot/runtime/metrics/src/lib.rs | 2 + .../metrics/src/with_runtime_metrics.rs | 3 +- polkadot/runtime/parachains/Cargo.toml | 2 - .../parachains/src/assigner_coretime/mod.rs | 3 +- .../parachains/src/assigner_coretime/tests.rs | 2 +- .../src/assigner_on_demand/benchmarking.rs | 1 + .../src/assigner_on_demand/migration.rs | 8 +- .../parachains/src/assigner_on_demand/mod.rs | 1 - .../src/assigner_on_demand/tests.rs | 6 +- .../src/assigner_on_demand/types.rs | 5 +- .../src/assigner_parachains/tests.rs | 2 +- polkadot/runtime/parachains/src/builder.rs | 14 +- .../runtime/parachains/src/configuration.rs | 6 +- .../src/configuration/migration/v10.rs | 4 +- .../src/configuration/migration/v11.rs | 4 +- .../src/configuration/migration/v12.rs | 4 +- .../src/configuration/migration/v6.rs | 4 +- .../src/configuration/migration/v7.rs | 4 +- .../src/configuration/migration/v8.rs | 4 +- .../src/configuration/migration/v9.rs | 4 +- .../parachains/src/coretime/migration.rs | 7 +- .../runtime/parachains/src/coretime/mod.rs | 3 +- polkadot/runtime/parachains/src/disputes.rs | 3 +- .../parachains/src/disputes/migration.rs | 4 +- .../parachains/src/disputes/slashing.rs | 14 +- polkadot/runtime/parachains/src/dmp.rs | 3 +- polkadot/runtime/parachains/src/hrmp.rs | 13 +- .../parachains/src/inclusion/migration.rs | 4 +- .../runtime/parachains/src/inclusion/mod.rs | 13 +- .../runtime/parachains/src/initializer.rs | 4 +- polkadot/runtime/parachains/src/lib.rs | 2 + polkadot/runtime/parachains/src/mock.rs | 7 +- polkadot/runtime/parachains/src/origin.rs | 2 +- .../parachains/src/paras/benchmarking.rs | 1 + .../src/paras/benchmarking/pvf_check.rs | 1 + polkadot/runtime/parachains/src/paras/mod.rs | 5 +- .../src/paras_inherent/benchmarking.rs | 3 +- .../parachains/src/paras_inherent/misc.rs | 3 +- .../parachains/src/paras_inherent/mod.rs | 14 +- .../parachains/src/paras_inherent/tests.rs | 4 +- .../runtime/parachains/src/reward_points.rs | 4 +- .../parachains/src/runtime_api_impl/v10.rs | 2 +- .../src/runtime_api_impl/vstaging.rs | 6 +- polkadot/runtime/parachains/src/scheduler.rs | 22 ++- .../parachains/src/scheduler/migration.rs | 5 +- .../runtime/parachains/src/scheduler/tests.rs | 2 +- .../runtime/parachains/src/session_info.rs | 2 +- polkadot/runtime/parachains/src/shared.rs | 8 +- polkadot/runtime/parachains/src/ump_tests.rs | 1 - polkadot/runtime/parachains/src/util.rs | 4 +- polkadot/runtime/rococo/Cargo.toml | 2 - .../rococo/src/genesis_config_presets.rs | 8 +- polkadot/runtime/rococo/src/impls.rs | 3 +- polkadot/runtime/rococo/src/lib.rs | 17 +- .../runtime/rococo/src/validator_manager.rs | 2 +- .../rococo/src/weights/pallet_session.rs | 2 +- .../runtime/rococo/src/weights/xcm/mod.rs | 2 +- polkadot/runtime/test-runtime/Cargo.toml | 2 - polkadot/runtime/test-runtime/src/lib.rs | 13 +- .../runtime/test-runtime/src/xcm_config.rs | 2 +- polkadot/runtime/westend/Cargo.toml | 2 - polkadot/runtime/westend/src/impls.rs | 3 +- polkadot/runtime/westend/src/lib.rs | 15 +- .../runtime/westend/src/weights/xcm/mod.rs | 2 +- .../relay_token_transactor/parachain/mod.rs | 2 +- polkadot/xcm/pallet-xcm-benchmarks/Cargo.toml | 2 - .../src/fungible/benchmarking.rs | 4 +- .../src/generic/benchmarking.rs | 2 +- polkadot/xcm/pallet-xcm-benchmarks/src/lib.rs | 4 +- polkadot/xcm/pallet-xcm/Cargo.toml | 2 - polkadot/xcm/pallet-xcm/src/benchmarking.rs | 1 - polkadot/xcm/pallet-xcm/src/lib.rs | 15 +- polkadot/xcm/pallet-xcm/src/migration.rs | 4 +- polkadot/xcm/pallet-xcm/src/mock.rs | 2 +- polkadot/xcm/xcm-builder/Cargo.toml | 2 - .../xcm/xcm-builder/src/asset_conversion.rs | 2 +- polkadot/xcm/xcm-builder/src/barriers.rs | 2 +- polkadot/xcm/xcm-builder/src/controller.rs | 2 +- .../xcm/xcm-builder/src/currency_adapter.rs | 2 +- .../xcm-builder/src/filter_asset_location.rs | 11 +- .../xcm/xcm-builder/src/fungible_adapter.rs | 2 +- .../xcm/xcm-builder/src/fungibles_adapter.rs | 8 +- polkadot/xcm/xcm-builder/src/lib.rs | 2 + .../xcm-builder/src/location_conversion.rs | 5 +- .../xcm/xcm-builder/src/matches_location.rs | 6 +- polkadot/xcm/xcm-builder/src/matches_token.rs | 2 +- .../xcm-builder/src/nonfungible_adapter.rs | 2 +- .../xcm-builder/src/nonfungibles_adapter.rs | 2 +- .../xcm/xcm-builder/src/origin_aliases.rs | 2 +- .../xcm/xcm-builder/src/origin_conversion.rs | 2 +- polkadot/xcm/xcm-builder/src/pay.rs | 5 +- .../xcm-builder/src/process_xcm_message.rs | 3 +- polkadot/xcm/xcm-builder/src/routing.rs | 5 +- polkadot/xcm/xcm-builder/src/test_utils.rs | 2 +- polkadot/xcm/xcm-builder/src/tests/mock.rs | 10 +- polkadot/xcm/xcm-builder/src/tests/mod.rs | 1 + .../xcm/xcm-builder/src/universal_exports.rs | 7 +- polkadot/xcm/xcm-builder/src/weight.rs | 2 +- polkadot/xcm/xcm-builder/tests/mock/mod.rs | 2 +- polkadot/xcm/xcm-executor/Cargo.toml | 2 - polkadot/xcm/xcm-executor/src/assets.rs | 10 +- polkadot/xcm/xcm-executor/src/lib.rs | 9 +- .../xcm/xcm-executor/src/traits/asset_lock.rs | 2 +- .../xcm/xcm-executor/src/traits/conversion.rs | 2 +- .../xcm-executor/src/traits/on_response.rs | 3 +- .../xcm-executor/src/traits/should_execute.rs | 2 +- .../xcm-executor/src/traits/token_matching.rs | 2 +- .../xcm-executor/src/traits/transact_asset.rs | 2 +- .../xcm/xcm-executor/src/traits/weight.rs | 2 +- polkadot/xcm/xcm-runtime-apis/Cargo.toml | 2 - .../xcm/xcm-runtime-apis/src/conversions.rs | 2 +- polkadot/xcm/xcm-runtime-apis/src/dry_run.rs | 2 +- polkadot/xcm/xcm-runtime-apis/src/fees.rs | 2 +- polkadot/xcm/xcm-runtime-apis/src/lib.rs | 2 + polkadot/xcm/xcm-runtime-apis/tests/mock.rs | 2 +- .../example/src/parachain/mod.rs | 3 +- .../xcm/xcm-simulator/fuzzer/src/parachain.rs | 1 - polkadot/xcm/xcm-simulator/src/lib.rs | 5 +- .../xcm-simulator/src/mock_message_queue.rs | 1 - substrate/bin/node/runtime/src/assets_api.rs | 2 +- substrate/bin/node/runtime/src/impls.rs | 5 +- substrate/bin/node/runtime/src/lib.rs | 6 +- .../client/executor/runtime-test/Cargo.toml | 2 - .../client/executor/runtime-test/src/lib.rs | 7 +- substrate/client/sysinfo/src/sysinfo.rs | 4 +- substrate/frame/Cargo.toml | 2 - substrate/frame/alliance/Cargo.toml | 2 - substrate/frame/alliance/src/lib.rs | 4 +- substrate/frame/alliance/src/types.rs | 2 +- substrate/frame/asset-conversion/Cargo.toml | 2 - .../frame/asset-conversion/ops/Cargo.toml | 2 - .../asset-conversion/ops/src/benchmarking.rs | 1 - .../frame/asset-conversion/ops/src/lib.rs | 4 +- .../frame/asset-conversion/ops/src/mock.rs | 1 - .../asset-conversion/src/benchmarking.rs | 3 +- substrate/frame/asset-conversion/src/lib.rs | 4 +- substrate/frame/asset-rate/Cargo.toml | 2 - substrate/frame/asset-rate/src/lib.rs | 4 +- substrate/frame/assets/Cargo.toml | 2 - substrate/frame/assets/src/benchmarking.rs | 4 +- substrate/frame/assets/src/functions.rs | 7 +- substrate/frame/assets/src/impl_fungibles.rs | 1 + substrate/frame/assets/src/lib.rs | 4 +- substrate/frame/atomic-swap/Cargo.toml | 2 - substrate/frame/atomic-swap/src/lib.rs | 4 +- substrate/frame/aura/Cargo.toml | 2 - substrate/frame/aura/src/lib.rs | 10 +- .../frame/authority-discovery/Cargo.toml | 2 - .../frame/authority-discovery/src/lib.rs | 7 +- substrate/frame/authorship/Cargo.toml | 2 - substrate/frame/authorship/src/lib.rs | 1 - substrate/frame/babe/Cargo.toml | 2 - substrate/frame/babe/src/equivocation.rs | 4 +- substrate/frame/babe/src/lib.rs | 12 +- substrate/frame/bags-list/Cargo.toml | 2 - .../frame/bags-list/remote-tests/src/lib.rs | 1 - substrate/frame/bags-list/src/benchmarks.rs | 1 + substrate/frame/bags-list/src/lib.rs | 8 +- substrate/frame/bags-list/src/list/mod.rs | 30 ++-- substrate/frame/bags-list/src/migrations.rs | 6 +- substrate/frame/balances/Cargo.toml | 2 - substrate/frame/balances/src/impl_currency.rs | 2 +- substrate/frame/balances/src/lib.rs | 17 +- substrate/frame/beefy-mmr/Cargo.toml | 2 - substrate/frame/beefy-mmr/src/lib.rs | 6 +- substrate/frame/beefy/Cargo.toml | 2 - substrate/frame/beefy/src/equivocation.rs | 4 +- substrate/frame/beefy/src/lib.rs | 4 +- substrate/frame/benchmarking/Cargo.toml | 2 - substrate/frame/benchmarking/pov/Cargo.toml | 2 - .../benchmarking/pov/src/benchmarking.rs | 22 +-- substrate/frame/benchmarking/pov/src/lib.rs | 4 +- substrate/frame/benchmarking/src/baseline.rs | 2 +- substrate/frame/benchmarking/src/lib.rs | 4 +- substrate/frame/benchmarking/src/tests.rs | 2 - .../frame/benchmarking/src/tests_instance.rs | 2 - substrate/frame/benchmarking/src/utils.rs | 2 +- substrate/frame/benchmarking/src/v1.rs | 4 +- substrate/frame/bounties/Cargo.toml | 2 - substrate/frame/bounties/src/benchmarking.rs | 1 + substrate/frame/bounties/src/lib.rs | 4 +- substrate/frame/broker/Cargo.toml | 2 - substrate/frame/broker/src/benchmarking.rs | 2 +- .../frame/broker/src/coretime_interface.rs | 3 +- substrate/frame/broker/src/lib.rs | 6 +- substrate/frame/broker/src/migration.rs | 4 +- substrate/frame/broker/src/mock.rs | 2 +- .../frame/broker/src/nonfungible_impl.rs | 2 +- substrate/frame/broker/src/test_fungibles.rs | 2 +- substrate/frame/broker/src/tick_impls.rs | 2 +- substrate/frame/child-bounties/Cargo.toml | 2 - .../frame/child-bounties/src/benchmarking.rs | 2 + substrate/frame/child-bounties/src/lib.rs | 4 +- substrate/frame/collective/Cargo.toml | 2 - substrate/frame/collective/src/lib.rs | 7 +- .../frame/contracts/mock-network/Cargo.toml | 2 - .../mock-network/src/mocks/msg_queue.rs | 1 - .../contracts/mock-network/src/parachain.rs | 1 - .../frame/contracts/proc-macro/src/lib.rs | 2 +- .../src/benchmarking/call_builder.rs | 2 +- .../frame/contracts/src/benchmarking/code.rs | 4 +- .../frame/contracts/src/benchmarking/mod.rs | 4 +- .../frame/contracts/src/chain_extension.rs | 5 +- substrate/frame/contracts/src/exec.rs | 7 +- substrate/frame/contracts/src/lib.rs | 3 +- substrate/frame/contracts/src/migration.rs | 7 +- .../frame/contracts/src/migration/v09.rs | 4 +- .../frame/contracts/src/migration/v10.rs | 8 +- .../frame/contracts/src/migration/v11.rs | 4 +- .../frame/contracts/src/migration/v12.rs | 4 +- .../frame/contracts/src/migration/v13.rs | 1 - .../frame/contracts/src/migration/v14.rs | 6 +- .../frame/contracts/src/migration/v15.rs | 4 +- .../frame/contracts/src/migration/v16.rs | 1 - substrate/frame/contracts/src/primitives.rs | 2 +- substrate/frame/contracts/src/storage.rs | 3 +- .../frame/contracts/src/storage/meter.rs | 3 +- substrate/frame/contracts/src/tests.rs | 2 +- substrate/frame/contracts/src/wasm/mod.rs | 2 +- substrate/frame/contracts/src/wasm/prepare.rs | 6 +- substrate/frame/contracts/src/wasm/runtime.rs | 5 +- substrate/frame/conviction-voting/Cargo.toml | 2 - .../conviction-voting/src/benchmarking.rs | 2 +- substrate/frame/conviction-voting/src/lib.rs | 7 +- .../frame/conviction-voting/src/types.rs | 2 +- substrate/frame/conviction-voting/src/vote.rs | 1 - substrate/frame/core-fellowship/Cargo.toml | 2 - .../frame/core-fellowship/src/benchmarking.rs | 1 + substrate/frame/core-fellowship/src/lib.rs | 5 +- .../frame/core-fellowship/src/migration.rs | 2 + substrate/frame/delegated-staking/Cargo.toml | 2 - .../frame/delegated-staking/src/impls.rs | 2 +- substrate/frame/delegated-staking/src/lib.rs | 6 +- substrate/frame/democracy/Cargo.toml | 2 - substrate/frame/democracy/src/benchmarking.rs | 2 +- substrate/frame/democracy/src/lib.rs | 10 +- .../unlock_and_unreserve_all_funds.rs | 6 +- substrate/frame/democracy/src/vote.rs | 1 - .../election-provider-multi-phase/Cargo.toml | 2 - .../src/helpers.rs | 2 +- .../election-provider-multi-phase/src/lib.rs | 8 +- .../src/migrations.rs | 4 +- .../src/signed.rs | 10 +- .../src/unsigned.rs | 11 +- .../test-staking-e2e/src/mock.rs | 1 - .../election-provider-support/Cargo.toml | 2 - .../benchmarking/Cargo.toml | 2 - .../benchmarking/src/inner.rs | 2 +- .../benchmarking/src/lib.rs | 2 + .../solution-type/src/codec.rs | 20 +-- .../solution-type/src/single_page.rs | 16 +- .../election-provider-support/src/lib.rs | 19 ++- .../election-provider-support/src/onchain.rs | 3 +- .../election-provider-support/src/traits.rs | 3 +- substrate/frame/elections-phragmen/Cargo.toml | 2 - substrate/frame/elections-phragmen/src/lib.rs | 5 +- .../unlock_and_unreserve_all_funds.rs | 6 +- .../elections-phragmen/src/migrations/v3.rs | 2 +- .../elections-phragmen/src/migrations/v5.rs | 1 + substrate/frame/examples/basic/Cargo.toml | 2 - substrate/frame/examples/basic/src/lib.rs | 4 +- substrate/frame/examples/basic/src/tests.rs | 2 +- .../frame/examples/default-config/Cargo.toml | 2 - .../frame/examples/default-config/src/lib.rs | 4 +- substrate/frame/examples/dev-mode/Cargo.toml | 2 - substrate/frame/examples/dev-mode/src/lib.rs | 4 +- .../frame/examples/kitchensink/Cargo.toml | 2 - .../frame/examples/kitchensink/src/lib.rs | 2 + .../frame/examples/offchain-worker/Cargo.toml | 2 - .../frame/examples/offchain-worker/src/lib.rs | 6 +- .../examples/offchain-worker/src/tests.rs | 2 +- .../single-block-migrations/Cargo.toml | 2 - .../single-block-migrations/src/lib.rs | 3 + .../src/migrations/v1.rs | 4 +- substrate/frame/examples/split/Cargo.toml | 2 - substrate/frame/examples/tasks/Cargo.toml | 2 - substrate/frame/executive/Cargo.toml | 2 - substrate/frame/executive/src/lib.rs | 6 +- substrate/frame/fast-unstake/Cargo.toml | 2 - .../frame/fast-unstake/src/benchmarking.rs | 2 +- substrate/frame/fast-unstake/src/lib.rs | 4 +- .../frame/fast-unstake/src/migrations.rs | 4 +- substrate/frame/fast-unstake/src/mock.rs | 1 - substrate/frame/fast-unstake/src/types.rs | 3 +- substrate/frame/glutton/Cargo.toml | 2 - substrate/frame/glutton/src/lib.rs | 6 +- substrate/frame/grandpa/Cargo.toml | 2 - substrate/frame/grandpa/src/equivocation.rs | 4 +- substrate/frame/grandpa/src/lib.rs | 6 +- substrate/frame/grandpa/src/migrations/v5.rs | 3 +- substrate/frame/identity/Cargo.toml | 2 - substrate/frame/identity/src/benchmarking.rs | 1 + substrate/frame/identity/src/legacy.rs | 3 +- substrate/frame/identity/src/lib.rs | 4 +- substrate/frame/identity/src/types.rs | 7 +- substrate/frame/im-online/Cargo.toml | 2 - substrate/frame/im-online/src/lib.rs | 8 +- substrate/frame/im-online/src/migration.rs | 1 + substrate/frame/indices/Cargo.toml | 2 - substrate/frame/indices/src/lib.rs | 4 +- .../Cargo.toml | 2 - substrate/frame/lottery/Cargo.toml | 2 - substrate/frame/lottery/src/benchmarking.rs | 1 + substrate/frame/lottery/src/lib.rs | 4 +- substrate/frame/membership/Cargo.toml | 2 - substrate/frame/membership/src/lib.rs | 6 +- .../frame/merkle-mountain-range/Cargo.toml | 2 - .../frame/merkle-mountain-range/src/lib.rs | 12 +- .../merkle-mountain-range/src/mmr/mmr.rs | 2 +- .../merkle-mountain-range/src/mmr/storage.rs | 7 +- substrate/frame/message-queue/Cargo.toml | 2 - .../frame/message-queue/src/benchmarking.rs | 1 - substrate/frame/message-queue/src/lib.rs | 13 +- substrate/frame/message-queue/src/mock.rs | 2 +- .../frame/message-queue/src/mock_helpers.rs | 1 + substrate/frame/migrations/Cargo.toml | 2 - substrate/frame/migrations/src/lib.rs | 14 +- .../frame/migrations/src/mock_helpers.rs | 2 +- substrate/frame/mixnet/Cargo.toml | 2 - substrate/frame/mixnet/src/lib.rs | 5 +- substrate/frame/multisig/Cargo.toml | 2 - substrate/frame/multisig/src/lib.rs | 4 +- .../frame/nft-fractionalization/Cargo.toml | 2 - .../nft-fractionalization/src/benchmarking.rs | 1 - .../frame/nft-fractionalization/src/lib.rs | 2 +- substrate/frame/nfts/Cargo.toml | 2 - substrate/frame/nfts/runtime-api/Cargo.toml | 3 +- substrate/frame/nfts/runtime-api/src/lib.rs | 4 +- substrate/frame/nfts/src/benchmarking.rs | 1 - substrate/frame/nfts/src/common_functions.rs | 1 + substrate/frame/nfts/src/features/metadata.rs | 1 + substrate/frame/nfts/src/features/roles.rs | 2 +- substrate/frame/nfts/src/impl_nonfungibles.rs | 1 - substrate/frame/nfts/src/lib.rs | 4 +- substrate/frame/nfts/src/tests.rs | 1 - substrate/frame/nfts/src/types.rs | 1 + substrate/frame/nis/Cargo.toml | 2 - substrate/frame/nis/src/benchmarking.rs | 1 - substrate/frame/nis/src/lib.rs | 12 +- substrate/frame/node-authorization/Cargo.toml | 2 - substrate/frame/node-authorization/src/lib.rs | 4 +- substrate/frame/nomination-pools/Cargo.toml | 2 - .../nomination-pools/benchmarking/Cargo.toml | 2 - .../benchmarking/src/inner.rs | 2 +- .../nomination-pools/benchmarking/src/lib.rs | 2 + .../nomination-pools/runtime-api/Cargo.toml | 3 +- .../frame/nomination-pools/src/adapter.rs | 2 +- substrate/frame/nomination-pools/src/lib.rs | 9 +- .../frame/nomination-pools/src/migration.rs | 22 +-- substrate/frame/offences/Cargo.toml | 2 - .../frame/offences/benchmarking/Cargo.toml | 2 - .../frame/offences/benchmarking/src/inner.rs | 2 +- .../frame/offences/benchmarking/src/lib.rs | 2 + substrate/frame/offences/src/lib.rs | 5 +- substrate/frame/offences/src/migration.rs | 4 +- substrate/frame/paged-list/Cargo.toml | 2 - substrate/frame/paged-list/src/lib.rs | 4 +- substrate/frame/paged-list/src/paged_list.rs | 6 +- substrate/frame/parameters/Cargo.toml | 2 - substrate/frame/preimage/Cargo.toml | 2 - substrate/frame/preimage/src/benchmarking.rs | 2 +- substrate/frame/preimage/src/lib.rs | 4 +- substrate/frame/preimage/src/migration.rs | 4 +- substrate/frame/proxy/Cargo.toml | 2 - substrate/frame/proxy/src/benchmarking.rs | 1 + substrate/frame/proxy/src/lib.rs | 4 +- substrate/frame/proxy/src/tests.rs | 1 + substrate/frame/ranked-collective/Cargo.toml | 2 - .../ranked-collective/src/benchmarking.rs | 1 + substrate/frame/ranked-collective/src/lib.rs | 4 +- substrate/frame/recovery/Cargo.toml | 2 - substrate/frame/recovery/src/benchmarking.rs | 1 + substrate/frame/recovery/src/lib.rs | 4 +- substrate/frame/referenda/Cargo.toml | 2 - substrate/frame/referenda/src/benchmarking.rs | 5 +- substrate/frame/referenda/src/lib.rs | 7 +- substrate/frame/referenda/src/types.rs | 2 +- substrate/frame/remark/Cargo.toml | 2 - substrate/frame/remark/src/benchmarking.rs | 2 +- substrate/frame/remark/src/lib.rs | 4 +- substrate/frame/root-offences/src/mock.rs | 2 +- substrate/frame/root-testing/Cargo.toml | 2 - substrate/frame/safe-mode/Cargo.toml | 2 - substrate/frame/salary/Cargo.toml | 2 - substrate/frame/sassafras/Cargo.toml | 2 - substrate/frame/sassafras/src/lib.rs | 6 +- substrate/frame/scheduler/Cargo.toml | 2 - substrate/frame/scheduler/src/benchmarking.rs | 2 +- substrate/frame/scheduler/src/lib.rs | 5 +- substrate/frame/scheduler/src/migration.rs | 2 +- substrate/frame/scored-pool/Cargo.toml | 2 - substrate/frame/scored-pool/src/lib.rs | 5 +- substrate/frame/session/Cargo.toml | 2 - .../frame/session/benchmarking/Cargo.toml | 2 - .../frame/session/benchmarking/src/inner.rs | 2 +- .../frame/session/benchmarking/src/lib.rs | 2 + substrate/frame/session/src/historical/mod.rs | 8 +- .../frame/session/src/historical/offchain.rs | 6 +- .../frame/session/src/historical/onchain.rs | 2 +- .../frame/session/src/historical/shared.rs | 2 +- substrate/frame/session/src/lib.rs | 14 +- substrate/frame/society/Cargo.toml | 2 - substrate/frame/society/src/benchmarking.rs | 1 + substrate/frame/society/src/lib.rs | 6 +- substrate/frame/society/src/migrations.rs | 1 + substrate/frame/src/lib.rs | 8 +- substrate/frame/staking/Cargo.toml | 2 - substrate/frame/staking/src/benchmarking.rs | 3 +- substrate/frame/staking/src/ledger.rs | 1 - substrate/frame/staking/src/lib.rs | 16 +- substrate/frame/staking/src/migrations.rs | 8 +- substrate/frame/staking/src/pallet/impls.rs | 12 +- substrate/frame/staking/src/pallet/mod.rs | 4 +- substrate/frame/staking/src/slashing.rs | 12 +- substrate/frame/staking/src/testing_utils.rs | 1 - substrate/frame/staking/src/tests.rs | 1 - .../frame/state-trie-migration/Cargo.toml | 2 - .../frame/state-trie-migration/src/lib.rs | 20 ++- substrate/frame/statement/Cargo.toml | 2 - substrate/frame/statement/src/lib.rs | 2 +- substrate/frame/sudo/Cargo.toml | 2 - substrate/frame/sudo/src/benchmarking.rs | 1 + substrate/frame/sudo/src/extension.rs | 2 +- substrate/frame/sudo/src/lib.rs | 5 +- .../src/construct_runtime/expand/inherent.rs | 6 +- .../src/construct_runtime/expand/metadata.rs | 4 +- .../src/construct_runtime/expand/origin.rs | 34 ++-- .../procedural/src/construct_runtime/mod.rs | 22 +-- .../procedural/src/pallet/expand/constants.rs | 6 +- .../src/pallet/expand/documentation.rs | 4 +- .../procedural/src/pallet/expand/error.rs | 8 +- .../procedural/src/pallet/expand/hooks.rs | 4 +- .../src/pallet/expand/pallet_struct.rs | 14 +- .../procedural/src/pallet/expand/storage.rs | 8 +- .../procedural/src/pallet/expand/tasks.rs | 7 +- .../src/pallet/parse/tests/tasks.rs | 4 +- .../procedural/src/runtime/expand/mod.rs | 2 +- substrate/frame/support/src/dispatch.rs | 8 +- .../frame/support/src/dispatch_context.rs | 6 +- .../support/src/genesis_builder_helper.rs | 2 +- substrate/frame/support/src/hash.rs | 2 +- substrate/frame/support/src/lib.rs | 25 ++- substrate/frame/support/src/migrations.rs | 21 +-- .../support/src/storage/bounded_btree_map.rs | 2 +- .../support/src/storage/bounded_btree_set.rs | 2 +- substrate/frame/support/src/storage/child.rs | 2 +- .../src/storage/generator/double_map.rs | 3 +- .../support/src/storage/generator/map.rs | 6 +- .../support/src/storage/generator/mod.rs | 1 + .../support/src/storage/generator/nmap.rs | 4 +- substrate/frame/support/src/storage/hashed.rs | 2 +- .../frame/support/src/storage/migration.rs | 6 +- substrate/frame/support/src/storage/mod.rs | 3 +- .../support/src/storage/storage_noop_guard.rs | 12 +- .../frame/support/src/storage/stream_iter.rs | 22 +-- .../support/src/storage/types/counted_map.rs | 2 +- .../support/src/storage/types/counted_nmap.rs | 3 +- .../support/src/storage/types/double_map.rs | 2 +- .../frame/support/src/storage/types/key.rs | 10 +- .../frame/support/src/storage/types/map.rs | 2 +- .../frame/support/src/storage/types/mod.rs | 4 +- .../frame/support/src/storage/types/nmap.rs | 3 +- .../frame/support/src/storage/types/value.rs | 2 +- .../frame/support/src/storage/unhashed.rs | 2 +- .../support/src/traits/dynamic_params.rs | 2 +- substrate/frame/support/src/traits/filter.rs | 4 +- substrate/frame/support/src/traits/hooks.rs | 5 +- substrate/frame/support/src/traits/members.rs | 3 +- .../frame/support/src/traits/messages.rs | 2 +- .../frame/support/src/traits/metadata.rs | 13 +- substrate/frame/support/src/traits/misc.rs | 33 ++-- .../frame/support/src/traits/preimages.rs | 8 +- .../frame/support/src/traits/schedule.rs | 9 +- substrate/frame/support/src/traits/storage.rs | 2 +- substrate/frame/support/src/traits/tasks.rs | 6 +- .../src/traits/tokens/currency/reservable.rs | 2 +- .../src/traits/tokens/fungible/imbalance.rs | 14 +- .../src/traits/tokens/fungible/item_of.rs | 4 +- .../support/src/traits/tokens/fungible/mod.rs | 4 +- .../src/traits/tokens/fungible/regular.rs | 2 +- .../src/traits/tokens/fungible/union_of.rs | 6 +- .../src/traits/tokens/fungibles/imbalance.rs | 14 +- .../src/traits/tokens/fungibles/metadata.rs | 2 +- .../src/traits/tokens/fungibles/regular.rs | 2 +- .../src/traits/tokens/fungibles/union_of.rs | 4 +- .../traits/tokens/imbalance/on_unbalanced.rs | 2 +- .../tokens/imbalance/signed_imbalance.rs | 2 +- .../traits/tokens/imbalance/split_two_ways.rs | 2 +- .../frame/support/src/traits/tokens/misc.rs | 4 +- .../support/src/traits/tokens/nonfungible.rs | 4 +- .../src/traits/tokens/nonfungible_v2.rs | 4 +- .../support/src/traits/tokens/nonfungibles.rs | 2 +- .../src/traits/tokens/nonfungibles_v2.rs | 2 +- .../frame/support/src/traits/tokens/pay.rs | 2 +- .../traits/try_runtime/decode_entire_state.rs | 6 +- .../support/src/traits/try_runtime/mod.rs | 16 +- .../frame/support/src/traits/validation.rs | 2 +- substrate/frame/support/src/traits/voting.rs | 4 +- substrate/frame/support/test/Cargo.toml | 2 - substrate/frame/support/test/src/lib.rs | 2 +- .../frame/support/test/tests/issue2219.rs | 2 +- substrate/frame/support/test/tests/origin.rs | 4 +- substrate/frame/support/test/tests/pallet.rs | 2 +- .../support/test/tests/pallet_instance.rs | 4 +- substrate/frame/support/test/tests/runtime.rs | 6 +- .../test/tests/runtime_legacy_ordering.rs | 6 +- .../support/test/tests/versioned_migration.rs | 4 +- .../frame/system/benchmarking/Cargo.toml | 2 - .../frame/system/benchmarking/src/inner.rs | 2 +- .../frame/system/benchmarking/src/lib.rs | 2 + .../system/src/extensions/check_genesis.rs | 10 +- .../system/src/extensions/check_mortality.rs | 10 +- .../src/extensions/check_non_zero_sender.rs | 12 +- .../system/src/extensions/check_nonce.rs | 10 +- .../src/extensions/check_spec_version.rs | 10 +- .../system/src/extensions/check_tx_version.rs | 10 +- .../system/src/extensions/check_weight.rs | 12 +- substrate/frame/system/src/lib.rs | 27 +-- substrate/frame/system/src/migrations/mod.rs | 1 - substrate/frame/system/src/offchain.rs | 6 +- substrate/frame/timestamp/Cargo.toml | 2 - substrate/frame/timestamp/src/lib.rs | 16 +- substrate/frame/tips/Cargo.toml | 2 - substrate/frame/tips/src/lib.rs | 4 +- .../tips/src/migrations/unreserve_deposits.rs | 8 +- .../frame/transaction-payment/Cargo.toml | 2 - .../asset-conversion-tx-payment/Cargo.toml | 2 - .../asset-conversion-tx-payment/src/lib.rs | 10 +- .../src/payment.rs | 3 +- .../asset-tx-payment/Cargo.toml | 2 - .../asset-tx-payment/src/lib.rs | 10 +- .../asset-tx-payment/src/payment.rs | 2 +- .../skip-feeless-payment/Cargo.toml | 2 - .../skip-feeless-payment/src/lib.rs | 10 +- .../skip-feeless-payment/src/mock.rs | 2 +- .../frame/transaction-payment/src/lib.rs | 15 +- .../frame/transaction-payment/src/types.rs | 1 - .../frame/transaction-storage/Cargo.toml | 2 - .../transaction-storage/src/benchmarking.rs | 2 +- .../frame/transaction-storage/src/lib.rs | 5 +- substrate/frame/treasury/Cargo.toml | 2 - substrate/frame/treasury/src/lib.rs | 6 +- substrate/frame/try-runtime/Cargo.toml | 2 - substrate/frame/tx-pause/Cargo.toml | 2 - substrate/frame/tx-pause/src/benchmarking.rs | 1 + substrate/frame/tx-pause/src/lib.rs | 4 +- substrate/frame/uniques/Cargo.toml | 2 - substrate/frame/uniques/src/benchmarking.rs | 2 +- .../frame/uniques/src/impl_nonfungibles.rs | 2 +- substrate/frame/uniques/src/lib.rs | 4 +- substrate/frame/uniques/src/tests.rs | 1 - substrate/frame/utility/Cargo.toml | 2 - substrate/frame/utility/src/benchmarking.rs | 1 + substrate/frame/utility/src/lib.rs | 8 +- substrate/frame/vesting/Cargo.toml | 2 - substrate/frame/vesting/src/lib.rs | 5 +- substrate/frame/vesting/src/migrations.rs | 1 + substrate/frame/whitelist/Cargo.toml | 2 - substrate/frame/whitelist/src/benchmarking.rs | 4 +- substrate/frame/whitelist/src/lib.rs | 4 +- substrate/primitives/api/Cargo.toml | 2 - substrate/primitives/api/src/lib.rs | 7 +- .../primitives/application-crypto/Cargo.toml | 2 - .../application-crypto/src/bandersnatch.rs | 2 +- .../application-crypto/src/bls377.rs | 2 +- .../application-crypto/src/ecdsa.rs | 2 +- .../application-crypto/src/ecdsa_bls377.rs | 2 +- .../application-crypto/src/ed25519.rs | 2 +- .../primitives/application-crypto/src/lib.rs | 10 +- .../application-crypto/src/sr25519.rs | 2 +- .../application-crypto/src/traits.rs | 7 +- substrate/primitives/arithmetic/Cargo.toml | 2 - substrate/primitives/core/src/address_uri.rs | 10 +- substrate/primitives/core/src/bandersnatch.rs | 2 +- substrate/primitives/core/src/bls.rs | 2 +- substrate/primitives/core/src/crypto.rs | 28 ++- substrate/primitives/core/src/crypto_bytes.rs | 12 +- substrate/primitives/core/src/ecdsa.rs | 4 +- substrate/primitives/core/src/ed25519.rs | 2 +- substrate/primitives/core/src/hexdisplay.rs | 10 +- substrate/primitives/core/src/lib.rs | 13 +- substrate/primitives/core/src/offchain/mod.rs | 2 +- .../primitives/core/src/paired_crypto.rs | 2 +- substrate/primitives/core/src/sr25519.rs | 12 +- substrate/primitives/io/Cargo.toml | 2 - substrate/primitives/io/src/lib.rs | 6 +- .../proc-macro/src/pass_by/enum_.rs | 2 +- .../primitives/runtime-interface/src/impls.rs | 8 +- .../primitives/runtime-interface/src/lib.rs | 2 + .../runtime-interface/src/pass_by.rs | 4 +- .../runtime-interface/test-wasm/Cargo.toml | 2 - .../runtime-interface/test-wasm/src/lib.rs | 7 +- .../primitives/runtime/src/generic/block.rs | 2 +- .../primitives/runtime/src/generic/digest.rs | 7 +- .../src/generic/unchecked_extrinsic.rs | 11 +- substrate/primitives/runtime/src/lib.rs | 23 ++- .../primitives/runtime/src/multiaddress.rs | 2 +- .../primitives/runtime/src/offchain/http.rs | 4 +- .../primitives/runtime/src/runtime_logger.rs | 2 +- .../primitives/runtime/src/runtime_string.rs | 4 +- substrate/primitives/runtime/src/traits.rs | 44 ++--- .../runtime/src/transaction_validity.rs | 2 +- substrate/primitives/version/src/lib.rs | 12 +- substrate/test-utils/runtime/src/lib.rs | 1 - templates/minimal/runtime/src/lib.rs | 3 + templates/parachain/runtime/src/lib.rs | 2 +- templates/solochain/runtime/src/lib.rs | 2 +- 825 files changed, 1835 insertions(+), 1938 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4a7d47eb0f7..9972285780f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -896,7 +896,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -1026,7 +1025,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -1062,7 +1060,6 @@ dependencies = [ "parity-scale-codec", "sp-io", "sp-runtime", - "sp-std 14.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-builder", @@ -1085,7 +1082,6 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std 14.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -2036,7 +2032,6 @@ dependencies = [ "snowbridge-core", "sp-core", "sp-runtime", - "sp-std 14.0.0", "staging-xcm", ] @@ -2216,7 +2211,6 @@ dependencies = [ "sp-io", "sp-keyring", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "staging-xcm", "staging-xcm-builder", @@ -2616,7 +2610,6 @@ dependencies = [ "sp-genesis-builder", "sp-keyring", "sp-runtime", - "sp-std 14.0.0", "staging-chain-spec-builder", "substrate-wasm-builder", ] @@ -2966,7 +2959,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -3223,7 +3215,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -3321,7 +3312,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -3386,7 +3376,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -3910,7 +3899,6 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-trie", "tracing", @@ -4002,7 +3990,6 @@ dependencies = [ "sp-application-crypto", "sp-consensus-aura", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -4019,7 +4006,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "staging-xcm", ] @@ -4093,7 +4079,6 @@ dependencies = [ "pallet-session", "parity-scale-codec", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -4108,7 +4093,6 @@ dependencies = [ "polkadot-primitives", "scale-info", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -4122,7 +4106,6 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 14.0.0", "staging-xcm", ] @@ -4147,7 +4130,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -4164,7 +4146,6 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 14.0.0", "staging-xcm", ] @@ -4178,7 +4159,6 @@ dependencies = [ "sp-api", "sp-consensus-aura", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -4192,7 +4172,6 @@ dependencies = [ "scale-info", "sp-api", "sp-runtime", - "sp-std 14.0.0", "sp-trie", "staging-xcm", ] @@ -4209,7 +4188,6 @@ dependencies = [ "sp-inherents", "sp-runtime", "sp-state-machine", - "sp-std 14.0.0", "sp-trie", ] @@ -4240,7 +4218,6 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-trie", ] @@ -4252,7 +4229,6 @@ dependencies = [ "futures", "parity-scale-codec", "sp-inherents", - "sp-std 14.0.0", "sp-timestamp", ] @@ -4269,7 +4245,6 @@ dependencies = [ "polkadot-runtime-parachains", "sp-io", "sp-runtime", - "sp-std 14.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -4439,7 +4414,6 @@ dependencies = [ "polkadot-primitives", "sp-runtime", "sp-state-machine", - "sp-std 14.0.0", "sp-trie", ] @@ -4478,7 +4452,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -5729,7 +5702,6 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-runtime-interface 24.0.0", - "sp-std 14.0.0", "sp-storage 19.0.0", "static_assertions", ] @@ -5794,7 +5766,6 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -5828,7 +5799,6 @@ dependencies = [ "sp-io", "sp-npos-elections", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -5866,7 +5836,6 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "sp-version", ] @@ -6046,7 +6015,6 @@ dependencies = [ "sp-metadata-ir", "sp-runtime", "sp-state-machine", - "sp-std 14.0.0", "sp-version", "static_assertions", "trybuild", @@ -6121,7 +6089,6 @@ dependencies = [ "sp-externalities 0.25.0", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-version", ] @@ -6142,7 +6109,6 @@ dependencies = [ "parity-scale-codec", "sp-api", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -6480,7 +6446,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -9665,7 +9630,6 @@ dependencies = [ "sp-crypto-hashing", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9686,7 +9650,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9707,7 +9670,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9725,7 +9687,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-storage 19.0.0", ] @@ -9742,7 +9703,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9763,7 +9723,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-storage 19.0.0", ] @@ -9814,7 +9773,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9832,7 +9790,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9849,7 +9806,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9864,7 +9820,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9892,7 +9847,6 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 14.0.0", ] [[package]] @@ -9912,7 +9866,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", ] @@ -9960,7 +9913,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -9988,7 +9940,6 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std 14.0.0", ] [[package]] @@ -10013,7 +9964,6 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-state-machine", - "sp-std 14.0.0", ] [[package]] @@ -10031,7 +9981,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10161,7 +10110,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", ] @@ -10181,7 +10129,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10205,7 +10152,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 14.0.0", "sp-tracing 16.0.0", ] @@ -10222,7 +10168,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10237,7 +10182,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10330,7 +10274,6 @@ dependencies = [ "sp-io", "sp-keystore", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "staging-xcm", "staging-xcm-builder", @@ -10374,7 +10317,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10392,7 +10334,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10406,7 +10347,6 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10427,7 +10367,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 14.0.0", "sp-tracing 16.0.0", "substrate-test-utils", ] @@ -10449,7 +10388,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10465,7 +10403,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10515,7 +10452,6 @@ dependencies = [ "sp-io", "sp-npos-elections", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "strum 0.26.2", ] @@ -10530,7 +10466,6 @@ dependencies = [ "parity-scale-codec", "sp-npos-elections", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10549,7 +10484,6 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-staking", - "sp-std 14.0.0", "sp-tracing 16.0.0", "substrate-test-utils", ] @@ -10568,7 +10502,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10594,7 +10527,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10625,7 +10557,6 @@ dependencies = [ "sp-io", "sp-keystore", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10644,7 +10575,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-version", ] @@ -10660,7 +10590,6 @@ dependencies = [ "scale-info", "sp-core", "sp-io", - "sp-std 14.0.0", ] [[package]] @@ -10676,7 +10605,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10714,7 +10642,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 14.0.0", "sp-tracing 16.0.0", "substrate-test-utils", ] @@ -10735,7 +10662,6 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10765,7 +10691,6 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 14.0.0", ] [[package]] @@ -10784,7 +10709,6 @@ dependencies = [ "sp-io", "sp-keystore", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10804,7 +10728,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 14.0.0", ] [[package]] @@ -10821,7 +10744,6 @@ dependencies = [ "sp-io", "sp-keyring", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10836,7 +10758,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10853,7 +10774,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10869,7 +10789,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10891,7 +10810,6 @@ dependencies = [ "sp-crypto-hashing", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "sp-weights", ] @@ -10915,7 +10833,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "sp-version", ] @@ -10945,7 +10862,6 @@ dependencies = [ "sp-io", "sp-mixnet", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10965,7 +10881,6 @@ dependencies = [ "sp-io", "sp-mmr-primitives", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -10981,7 +10896,6 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11019,7 +10933,6 @@ dependencies = [ "sp-io", "sp-keystore", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11029,7 +10942,6 @@ dependencies = [ "pallet-nfts", "parity-scale-codec", "sp-api", - "sp-std 14.0.0", ] [[package]] @@ -11046,7 +10958,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11061,7 +10972,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11078,7 +10988,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 14.0.0", "sp-tracing 16.0.0", ] @@ -11104,7 +11013,6 @@ dependencies = [ "sp-runtime", "sp-runtime-interface 24.0.0", "sp-staking", - "sp-std 14.0.0", ] [[package]] @@ -11129,7 +11037,6 @@ dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api", - "sp-std 14.0.0", ] [[package]] @@ -11196,7 +11103,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 14.0.0", ] [[package]] @@ -11223,7 +11129,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-staking", - "sp-std 14.0.0", ] [[package]] @@ -11240,7 +11145,6 @@ dependencies = [ "sp-io", "sp-metadata-ir", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11285,7 +11189,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11302,7 +11205,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11319,7 +11221,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11337,7 +11238,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11353,7 +11253,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11375,7 +11274,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11391,7 +11289,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11426,7 +11323,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11446,7 +11342,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11464,7 +11359,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11483,7 +11377,6 @@ dependencies = [ "sp-crypto-hashing", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11501,7 +11394,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-weights", "substrate-test-utils", ] @@ -11518,7 +11410,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11538,7 +11429,6 @@ dependencies = [ "sp-session", "sp-staking", "sp-state-machine", - "sp-std 14.0.0", "sp-trie", ] @@ -11562,7 +11452,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-session", - "sp-std 14.0.0", ] [[package]] @@ -11574,7 +11463,6 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11595,7 +11483,6 @@ dependencies = [ "sp-crypto-hashing", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11623,7 +11510,6 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-staking", - "sp-std 14.0.0", "sp-tracing 16.0.0", "substrate-test-utils", ] @@ -11673,7 +11559,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "substrate-state-trie-migration-rpc", "thousands", @@ -11696,7 +11581,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-statement-store", - "sp-std 14.0.0", ] [[package]] @@ -11712,7 +11596,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11744,7 +11627,6 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-timestamp", ] @@ -11765,7 +11647,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-storage 19.0.0", ] @@ -11783,7 +11664,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11829,7 +11709,6 @@ dependencies = [ "sp-inherents", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-transaction-storage-proof", ] @@ -11850,7 +11729,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11869,7 +11747,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11905,7 +11782,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11922,7 +11798,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11940,7 +11815,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -11962,7 +11836,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -11986,7 +11859,6 @@ dependencies = [ "scale-info", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "staging-xcm", "staging-xcm-builder", @@ -12179,7 +12051,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "staging-parachain-info", "staging-xcm", "staging-xcm-executor", @@ -12224,7 +12095,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-tracing 16.0.0", "staging-parachain-info", "staging-xcm", @@ -12498,7 +12368,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -12596,7 +12465,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -12694,7 +12562,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -13075,7 +12942,6 @@ dependencies = [ "scale-info", "sp-core", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -13970,7 +13836,6 @@ dependencies = [ "serde", "sp-core", "sp-runtime", - "sp-std 14.0.0", "sp-weights", ] @@ -13997,7 +13862,6 @@ dependencies = [ "sp-keystore", "sp-runtime", "sp-staking", - "sp-std 14.0.0", ] [[package]] @@ -14095,7 +13959,6 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 14.0.0", "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", @@ -14110,7 +13973,6 @@ dependencies = [ "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", - "sp-std 14.0.0", "sp-tracing 16.0.0", ] @@ -14165,7 +14027,6 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 14.0.0", "sp-tracing 16.0.0", "staging-xcm", "staging-xcm-executor", @@ -14671,7 +14532,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-transaction-pool", "sp-version", @@ -15031,7 +14891,6 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 14.0.0", "sp-transaction-pool", "sp-trie", "sp-version", @@ -16457,7 +16316,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -16559,7 +16417,6 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-tracing 16.0.0", "sp-transaction-pool", @@ -18198,7 +18055,6 @@ dependencies = [ "sp-io", "sp-runtime", "sp-runtime-interface 24.0.0", - "sp-std 14.0.0", "substrate-wasm-builder", ] @@ -18788,7 +18644,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -19112,7 +18967,6 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", - "sp-std 14.0.0", "sp-transaction-pool", "sp-version", "staging-parachain-info", @@ -19219,7 +19073,6 @@ dependencies = [ "parity-scale-codec", "paste", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -19853,7 +19706,6 @@ dependencies = [ "sp-runtime", "sp-runtime-interface 24.0.0", "sp-state-machine", - "sp-std 14.0.0", "sp-test-primitives", "sp-trie", "sp-version", @@ -19906,7 +19758,6 @@ dependencies = [ "serde", "sp-core", "sp-io", - "sp-std 14.0.0", ] [[package]] @@ -19934,7 +19785,6 @@ dependencies = [ "scale-info", "serde", "sp-crypto-hashing", - "sp-std 14.0.0", "static_assertions", ] @@ -20350,7 +20200,6 @@ dependencies = [ "sp-keystore", "sp-runtime-interface 24.0.0", "sp-state-machine", - "sp-std 14.0.0", "sp-tracing 16.0.0", "sp-trie", "tracing", @@ -20596,7 +20445,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime-interface 24.0.0", - "sp-std 14.0.0", "substrate-wasm-builder", ] @@ -21024,7 +20872,6 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime", - "sp-std 14.0.0", ] [[package]] @@ -21076,7 +20923,6 @@ dependencies = [ "sp-arithmetic", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-weights", "staging-xcm", "staging-xcm-executor", @@ -21096,7 +20942,6 @@ dependencies = [ "sp-core", "sp-io", "sp-runtime", - "sp-std 14.0.0", "sp-weights", "staging-xcm", "tracing", @@ -21893,7 +21738,6 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "sp-io", - "sp-std 14.0.0", "substrate-wasm-builder", "tiny-keccak", ] @@ -21941,7 +21785,6 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives", "sp-io", - "sp-std 14.0.0", "substrate-wasm-builder", "tiny-keccak", ] @@ -23640,7 +23483,6 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", - "sp-std 14.0.0", "sp-storage 19.0.0", "sp-tracing 16.0.0", "sp-transaction-pool", @@ -24195,7 +24037,6 @@ dependencies = [ "scale-info", "sp-api", "sp-io", - "sp-std 14.0.0", "sp-weights", "staging-xcm", "staging-xcm-builder", diff --git a/cumulus/client/parachain-inherent/Cargo.toml b/cumulus/client/parachain-inherent/Cargo.toml index d81f727b41b..0d82cf64874 100644 --- a/cumulus/client/parachain-inherent/Cargo.toml +++ b/cumulus/client/parachain-inherent/Cargo.toml @@ -18,7 +18,6 @@ sp-crypto-hashing = { workspace = true, default-features = true } sp-inherents = { workspace = true, default-features = true } sp-runtime = { workspace = true, default-features = true } sp-state-machine = { workspace = true, default-features = true } -sp-std = { workspace = true, default-features = true } sp-storage = { workspace = true, default-features = true } sp-trie = { workspace = true, default-features = true } diff --git a/cumulus/client/relay-chain-inprocess-interface/src/lib.rs b/cumulus/client/relay-chain-inprocess-interface/src/lib.rs index 8f8d666bd14..38ba84748c1 100644 --- a/cumulus/client/relay-chain-inprocess-interface/src/lib.rs +++ b/cumulus/client/relay-chain-inprocess-interface/src/lib.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use std::{pin::Pin, sync::Arc, time::Duration}; +use std::{collections::btree_map::BTreeMap, pin::Pin, sync::Arc, time::Duration}; use async_trait::async_trait; use cumulus_primitives_core::{ @@ -38,7 +38,7 @@ use sc_client_api::{ use sc_telemetry::TelemetryWorkerHandle; use sp_api::ProvideRuntimeApi; use sp_consensus::SyncOracle; -use sp_core::{sp_std::collections::btree_map::BTreeMap, Pair}; +use sp_core::Pair; use sp_state_machine::{Backend as StateBackend, StorageValue}; /// The timeout in seconds after that the waiting for a block should be aborted. diff --git a/cumulus/client/relay-chain-rpc-interface/src/lib.rs b/cumulus/client/relay-chain-rpc-interface/src/lib.rs index 692a1fb537a..e32ec6a41a4 100644 --- a/cumulus/client/relay-chain-rpc-interface/src/lib.rs +++ b/cumulus/client/relay-chain-rpc-interface/src/lib.rs @@ -30,11 +30,10 @@ use futures::{FutureExt, Stream, StreamExt}; use polkadot_overseer::Handle; use sc_client_api::StorageProof; -use sp_core::sp_std::collections::btree_map::BTreeMap; use sp_state_machine::StorageValue; use sp_storage::StorageKey; use sp_version::RuntimeVersion; -use std::pin::Pin; +use std::{collections::btree_map::BTreeMap, pin::Pin}; use cumulus_primitives_core::relay_chain::BlockId; pub use url::Url; diff --git a/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs b/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs index a5d7c22a2ec..c7eaa45958b 100644 --- a/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/cumulus/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -24,7 +24,7 @@ use jsonrpsee::{ }; use serde::de::DeserializeOwned; use serde_json::Value as JsonValue; -use std::collections::VecDeque; +use std::collections::{btree_map::BTreeMap, VecDeque}; use tokio::sync::mpsc::Sender as TokioSender; use codec::{Decode, Encode}; @@ -47,7 +47,6 @@ use sc_client_api::StorageData; use sc_rpc_api::{state::ReadProof, system::Health}; use sc_service::TaskManager; use sp_consensus_babe::Epoch; -use sp_core::sp_std::collections::btree_map::BTreeMap; use sp_storage::StorageKey; use sp_version::RuntimeVersion; diff --git a/cumulus/pallets/aura-ext/Cargo.toml b/cumulus/pallets/aura-ext/Cargo.toml index 1b6ac4cf07d..c08148928b7 100644 --- a/cumulus/pallets/aura-ext/Cargo.toml +++ b/cumulus/pallets/aura-ext/Cargo.toml @@ -21,7 +21,6 @@ pallet-timestamp = { workspace = true } sp-application-crypto = { workspace = true } sp-consensus-aura = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } # Cumulus cumulus-pallet-parachain-system = { workspace = true } @@ -44,7 +43,6 @@ std = [ "sp-application-crypto/std", "sp-consensus-aura/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "cumulus-pallet-parachain-system/try-runtime", diff --git a/cumulus/pallets/aura-ext/src/consensus_hook.rs b/cumulus/pallets/aura-ext/src/consensus_hook.rs index 560d477b2a8..c1a8568bdd8 100644 --- a/cumulus/pallets/aura-ext/src/consensus_hook.rs +++ b/cumulus/pallets/aura-ext/src/consensus_hook.rs @@ -20,6 +20,7 @@ //! The velocity `V` refers to the rate of block processing by the relay chain. use super::{pallet, Aura}; +use core::{marker::PhantomData, num::NonZeroU32}; use cumulus_pallet_parachain_system::{ self as parachain_system, consensus_hook::{ConsensusHook, UnincludedSegmentCapacity}, @@ -27,7 +28,6 @@ use cumulus_pallet_parachain_system::{ }; use frame_support::pallet_prelude::*; use sp_consensus_aura::{Slot, SlotDuration}; -use sp_std::{marker::PhantomData, num::NonZeroU32}; /// A consensus hook for a fixed block processing velocity and unincluded segment capacity. /// @@ -84,7 +84,7 @@ where ( weight, - NonZeroU32::new(sp_std::cmp::max(C, 1)) + NonZeroU32::new(core::cmp::max(C, 1)) .expect("1 is the minimum value and non-zero; qed") .into(), ) diff --git a/cumulus/pallets/aura-ext/src/lib.rs b/cumulus/pallets/aura-ext/src/lib.rs index 4605dd325be..4c9e61458a8 100644 --- a/cumulus/pallets/aura-ext/src/lib.rs +++ b/cumulus/pallets/aura-ext/src/lib.rs @@ -109,7 +109,7 @@ pub mod pallet { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -125,7 +125,7 @@ pub mod pallet { /// /// When executing the block it will verify the block seal to ensure that the correct author created /// the block. -pub struct BlockExecutor(sp_std::marker::PhantomData<(T, I)>); +pub struct BlockExecutor(core::marker::PhantomData<(T, I)>); impl ExecuteBlock for BlockExecutor where diff --git a/cumulus/pallets/collator-selection/Cargo.toml b/cumulus/pallets/collator-selection/Cargo.toml index 206700b7d60..b3512dc2ae6 100644 --- a/cumulus/pallets/collator-selection/Cargo.toml +++ b/cumulus/pallets/collator-selection/Cargo.toml @@ -21,7 +21,6 @@ codec = { features = ["derive"], workspace = true } rand = { features = ["std_rng"], workspace = true } scale-info = { features = ["derive"], workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } sp-staking = { workspace = true } frame-support = { workspace = true } @@ -65,7 +64,6 @@ std = [ "scale-info/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", ] try-runtime = [ diff --git a/cumulus/pallets/collator-selection/src/benchmarking.rs b/cumulus/pallets/collator-selection/src/benchmarking.rs index c6b60044528..24823661383 100644 --- a/cumulus/pallets/collator-selection/src/benchmarking.rs +++ b/cumulus/pallets/collator-selection/src/benchmarking.rs @@ -21,13 +21,14 @@ use super::*; #[allow(unused)] use crate::Pallet as CollatorSelection; +use alloc::vec::Vec; use codec::Decode; +use core::cmp; use frame_benchmarking::{account, v2::*, whitelisted_caller, BenchmarkError}; use frame_support::traits::{Currency, EnsureOrigin, Get, ReservableCurrency}; use frame_system::{pallet_prelude::BlockNumberFor, EventRecord, RawOrigin}; use pallet_authorship::EventHandler; use pallet_session::{self as session, SessionManager}; -use sp_std::{cmp, prelude::*}; pub type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; diff --git a/cumulus/pallets/collator-selection/src/lib.rs b/cumulus/pallets/collator-selection/src/lib.rs index 2fa38436752..17dc1a552c2 100644 --- a/cumulus/pallets/collator-selection/src/lib.rs +++ b/cumulus/pallets/collator-selection/src/lib.rs @@ -81,6 +81,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + use core::marker::PhantomData; use frame_support::traits::TypedGet; pub use pallet::*; @@ -101,6 +103,7 @@ const LOG_TARGET: &str = "runtime::collator-selection"; #[frame_support::pallet] pub mod pallet { pub use crate::weights::WeightInfo; + use alloc::vec::Vec; use core::ops::Div; use frame_support::{ dispatch::{DispatchClass, DispatchResultWithPostInfo}, @@ -118,7 +121,6 @@ pub mod pallet { RuntimeDebug, }; use sp_staking::SessionIndex; - use sp_std::vec::Vec; /// The in-code storage version. const STORAGE_VERSION: StorageVersion = StorageVersion::new(2); @@ -244,7 +246,7 @@ pub mod pallet { let duplicate_invulnerables = self .invulnerables .iter() - .collect::>(); + .collect::>(); assert!( duplicate_invulnerables.len() == self.invulnerables.len(), "duplicate invulnerables in genesis." diff --git a/cumulus/pallets/collator-selection/src/migration.rs b/cumulus/pallets/collator-selection/src/migration.rs index 425acdd8bfb..c5201694806 100644 --- a/cumulus/pallets/collator-selection/src/migration.rs +++ b/cumulus/pallets/collator-selection/src/migration.rs @@ -17,6 +17,8 @@ //! A module that is responsible for migration of storage for Collator Selection. use super::*; +#[cfg(feature = "try-runtime")] +use alloc::vec::Vec; use frame_support::traits::{OnRuntimeUpgrade, UncheckedOnRuntimeUpgrade}; use log; @@ -29,8 +31,6 @@ pub mod v2 { traits::{Currency, ReservableCurrency}, }; use sp_runtime::traits::{Saturating, Zero}; - #[cfg(feature = "try-runtime")] - use sp_std::vec::Vec; /// [`UncheckedMigrationToV2`] wrapped in a /// [`VersionedMigration`](frame_support::migrations::VersionedMigration), ensuring the @@ -51,7 +51,7 @@ pub mod v2 { >; /// Migrate to V2. - pub struct UncheckedMigrationToV2(sp_std::marker::PhantomData); + pub struct UncheckedMigrationToV2(PhantomData); impl UncheckedOnRuntimeUpgrade for UncheckedMigrationToV2 { fn on_runtime_upgrade() -> Weight { let mut weight = Weight::zero(); @@ -123,10 +123,8 @@ pub mod v2 { pub mod v1 { use super::*; use frame_support::pallet_prelude::*; - #[cfg(feature = "try-runtime")] - use sp_std::prelude::*; - pub struct MigrateToV1(sp_std::marker::PhantomData); + pub struct MigrateToV1(PhantomData); impl OnRuntimeUpgrade for MigrateToV1 { fn on_runtime_upgrade() -> Weight { let on_chain_version = Pallet::::on_chain_storage_version(); diff --git a/cumulus/pallets/collator-selection/src/weights.rs b/cumulus/pallets/collator-selection/src/weights.rs index 1c01ad6cd6f..12e6b755e97 100644 --- a/cumulus/pallets/collator-selection/src/weights.rs +++ b/cumulus/pallets/collator-selection/src/weights.rs @@ -18,11 +18,11 @@ #![allow(unused_parens)] #![allow(unused_imports)] +use core::marker::PhantomData; use frame_support::{ traits::Get, weights::{constants::RocksDbWeight, Weight}, }; -use sp_std::marker::PhantomData; // The weight info trait for `pallet_collator_selection`. pub trait WeightInfo { diff --git a/cumulus/pallets/dmp-queue/Cargo.toml b/cumulus/pallets/dmp-queue/Cargo.toml index 052a2547e78..936526290d9 100644 --- a/cumulus/pallets/dmp-queue/Cargo.toml +++ b/cumulus/pallets/dmp-queue/Cargo.toml @@ -21,7 +21,6 @@ scale-info = { features = ["derive"], workspace = true } frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } sp-io = { workspace = true } @@ -48,7 +47,6 @@ std = [ "scale-info/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm/std", ] diff --git a/cumulus/pallets/dmp-queue/src/benchmarking.rs b/cumulus/pallets/dmp-queue/src/benchmarking.rs index 91d1e0eab7e..432d6f3bc7a 100644 --- a/cumulus/pallets/dmp-queue/src/benchmarking.rs +++ b/cumulus/pallets/dmp-queue/src/benchmarking.rs @@ -19,9 +19,9 @@ use crate::*; +use alloc::vec; use frame_benchmarking::v2::*; use frame_support::{pallet_prelude::*, traits::Hooks}; -use sp_std::vec; #[benchmarks] mod benchmarks { diff --git a/cumulus/pallets/dmp-queue/src/lib.rs b/cumulus/pallets/dmp-queue/src/lib.rs index 9b3ec684feb..cedca6f3fb9 100644 --- a/cumulus/pallets/dmp-queue/src/lib.rs +++ b/cumulus/pallets/dmp-queue/src/lib.rs @@ -23,6 +23,8 @@ #![cfg_attr(not(feature = "std"), no_std)] #![allow(deprecated)] // The pallet itself is deprecated. +extern crate alloc; + use migration::*; pub use pallet::*; diff --git a/cumulus/pallets/dmp-queue/src/migration.rs b/cumulus/pallets/dmp-queue/src/migration.rs index 349635cce54..b1945e8eb37 100644 --- a/cumulus/pallets/dmp-queue/src/migration.rs +++ b/cumulus/pallets/dmp-queue/src/migration.rs @@ -17,9 +17,9 @@ //! Migrates the storage from the previously deleted DMP pallet. use crate::*; +use alloc::vec::Vec; use cumulus_primitives_core::relay_chain::BlockNumber as RelayBlockNumber; use frame_support::{pallet_prelude::*, storage_alias, traits::HandleMessage}; -use sp_std::vec::Vec; pub(crate) const LOG: &str = "runtime::dmp-queue-export-xcms"; diff --git a/cumulus/pallets/parachain-system/proc-macro/src/lib.rs b/cumulus/pallets/parachain-system/proc-macro/src/lib.rs index 8ab5d81efdc..f284fbdc64c 100644 --- a/cumulus/pallets/parachain-system/proc-macro/src/lib.rs +++ b/cumulus/pallets/parachain-system/proc-macro/src/lib.rs @@ -122,8 +122,8 @@ pub fn register_validate_block(input: proc_macro::TokenStream) -> proc_macro::To #[no_mangle] unsafe fn validate_block(arguments: *mut u8, arguments_len: usize) -> u64 { // We convert the `arguments` into a boxed slice and then into `Bytes`. - let args = #crate_::validate_block::sp_std::boxed::Box::from_raw( - #crate_::validate_block::sp_std::slice::from_raw_parts_mut( + let args = #crate_::validate_block::Box::from_raw( + #crate_::validate_block::slice::from_raw_parts_mut( arguments, arguments_len, ) diff --git a/cumulus/pallets/parachain-system/src/consensus_hook.rs b/cumulus/pallets/parachain-system/src/consensus_hook.rs index 91353fc7bbd..3062396a4e7 100644 --- a/cumulus/pallets/parachain-system/src/consensus_hook.rs +++ b/cumulus/pallets/parachain-system/src/consensus_hook.rs @@ -18,8 +18,8 @@ //! of parachain blocks ready to submit to the relay chain, as well as some basic implementations. use super::relay_state_snapshot::RelayChainStateProof; +use core::num::NonZeroU32; use frame_support::weights::Weight; -use sp_std::num::NonZeroU32; /// The possible capacity of the unincluded segment. #[derive(Clone)] @@ -95,7 +95,7 @@ impl ConsensusHook for FixedCapacityUnincludedSegment { fn on_state_proof(_state_proof: &RelayChainStateProof) -> (Weight, UnincludedSegmentCapacity) { ( Weight::zero(), - NonZeroU32::new(sp_std::cmp::max(N, 1)) + NonZeroU32::new(core::cmp::max(N, 1)) .expect("1 is the minimum value and non-zero; qed") .into(), ) diff --git a/cumulus/pallets/parachain-system/src/lib.rs b/cumulus/pallets/parachain-system/src/lib.rs index bbb74a1b053..9e0a68d09a1 100644 --- a/cumulus/pallets/parachain-system/src/lib.rs +++ b/cumulus/pallets/parachain-system/src/lib.rs @@ -27,7 +27,11 @@ //! //! Users must ensure that they register this pallet as an inherent provider. +extern crate alloc; + +use alloc::{collections::btree_map::BTreeMap, vec, vec::Vec}; use codec::{Decode, Encode}; +use core::cmp; use cumulus_primitives_core::{ relay_chain, AbridgedHostConfiguration, ChannelInfo, ChannelStatus, CollationInfo, GetChannelInfo, InboundDownwardMessage, InboundHrmpMessage, ListChannelInfos, MessageSendError, @@ -54,7 +58,6 @@ use sp_runtime::{ }, BoundedSlice, FixedU128, RuntimeDebug, Saturating, }; -use sp_std::{cmp, collections::btree_map::BTreeMap, prelude::*}; use xcm::{latest::XcmHash, VersionedLocation, VersionedXcm}; use xcm_builder::InspectMessageQueues; @@ -938,7 +941,7 @@ pub mod pallet { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -1530,7 +1533,7 @@ impl Pallet { } /// Type that implements `SetCode`. -pub struct ParachainSetCode(sp_std::marker::PhantomData); +pub struct ParachainSetCode(core::marker::PhantomData); impl frame_system::SetCode for ParachainSetCode { fn set_code(code: Vec) -> DispatchResult { Pallet::::schedule_code_upgrade(code) @@ -1645,7 +1648,7 @@ pub trait CheckInherents { /// Struct that always returns `Ok` on inherents check, needed for backwards-compatibility. #[doc(hidden)] -pub struct DummyCheckInherents(sp_std::marker::PhantomData); +pub struct DummyCheckInherents(core::marker::PhantomData); #[allow(deprecated)] impl CheckInherents for DummyCheckInherents { @@ -1718,7 +1721,7 @@ pub type RelaychainBlockNumberProvider = RelaychainDataProvider; /// of [`RelayChainState`]. /// - [`current_block_number`](Self::current_block_number): Will return /// [`Pallet::last_relay_block_number()`]. -pub struct RelaychainDataProvider(sp_std::marker::PhantomData); +pub struct RelaychainDataProvider(core::marker::PhantomData); impl BlockNumberProvider for RelaychainDataProvider { type BlockNumber = relay_chain::BlockNumber; diff --git a/cumulus/pallets/parachain-system/src/mock.rs b/cumulus/pallets/parachain-system/src/mock.rs index da904c0079a..7bea72224b8 100644 --- a/cumulus/pallets/parachain-system/src/mock.rs +++ b/cumulus/pallets/parachain-system/src/mock.rs @@ -20,7 +20,9 @@ use super::*; +use alloc::collections::vec_deque::VecDeque; use codec::Encode; +use core::num::NonZeroU32; use cumulus_primitives_core::{ relay_chain::BlockNumber as RelayBlockNumber, AggregateMessageOrigin, InboundDownwardMessage, InboundHrmpMessage, PersistedValidationData, @@ -37,7 +39,6 @@ use frame_support::{ }; use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin}; use sp_runtime::{traits::BlakeTwo256, BuildStorage}; -use sp_std::{collections::vec_deque::VecDeque, num::NonZeroU32}; use sp_version::RuntimeVersion; use std::cell::RefCell; diff --git a/cumulus/pallets/parachain-system/src/relay_state_snapshot.rs b/cumulus/pallets/parachain-system/src/relay_state_snapshot.rs index 60eccfb072f..323aaf65038 100644 --- a/cumulus/pallets/parachain-system/src/relay_state_snapshot.rs +++ b/cumulus/pallets/parachain-system/src/relay_state_snapshot.rs @@ -16,6 +16,7 @@ //! Relay chain state proof provides means for accessing part of relay chain storage for reads. +use alloc::vec::Vec; use codec::{Decode, Encode}; use cumulus_primitives_core::{ relay_chain, AbridgedHostConfiguration, AbridgedHrmpChannel, ParaId, @@ -23,7 +24,6 @@ use cumulus_primitives_core::{ use scale_info::TypeInfo; use sp_runtime::traits::HashingFor; use sp_state_machine::{Backend, TrieBackend, TrieBackendBuilder}; -use sp_std::vec::Vec; use sp_trie::{HashDBT, MemoryDB, StorageProof, EMPTY_PREFIX}; /// The capacity of the upward message queue of a parachain on the relay chain. diff --git a/cumulus/pallets/parachain-system/src/tests.rs b/cumulus/pallets/parachain-system/src/tests.rs index 5ff15036fb6..51c6e83c113 100755 --- a/cumulus/pallets/parachain-system/src/tests.rs +++ b/cumulus/pallets/parachain-system/src/tests.rs @@ -19,6 +19,7 @@ use super::*; use crate::mock::*; +use core::num::NonZeroU32; use cumulus_primitives_core::{AbridgedHrmpChannel, InboundDownwardMessage, InboundHrmpMessage}; use frame_support::{assert_ok, parameter_types, weights::Weight}; use frame_system::RawOrigin; @@ -26,7 +27,6 @@ use hex_literal::hex; use rand::Rng; use relay_chain::HrmpChannelId; use sp_core::H256; -use sp_std::num::NonZeroU32; #[test] #[should_panic] diff --git a/cumulus/pallets/parachain-system/src/unincluded_segment.rs b/cumulus/pallets/parachain-system/src/unincluded_segment.rs index 1e83a945c4e..814bb83aa1a 100644 --- a/cumulus/pallets/parachain-system/src/unincluded_segment.rs +++ b/cumulus/pallets/parachain-system/src/unincluded_segment.rs @@ -21,11 +21,12 @@ //! sent to relay chain. use super::relay_state_snapshot::{MessagingStateSnapshot, RelayDispatchQueueRemainingCapacity}; +use alloc::collections::btree_map::BTreeMap; use codec::{Decode, Encode}; +use core::marker::PhantomData; use cumulus_primitives_core::{relay_chain, ParaId}; use scale_info::TypeInfo; use sp_runtime::RuntimeDebug; -use sp_std::{collections::btree_map::BTreeMap, marker::PhantomData}; /// Constraints on outbound HRMP channel. #[derive(Clone, RuntimeDebug)] @@ -398,6 +399,7 @@ pub(crate) fn size_after_included(included_hash: H, segment: &[Anc #[cfg(test)] mod tests { use super::*; + use alloc::{vec, vec::Vec}; use assert_matches::assert_matches; #[test] diff --git a/cumulus/pallets/parachain-system/src/validate_block/implementation.rs b/cumulus/pallets/parachain-system/src/validate_block/implementation.rs index 956962fce15..42311ca9d83 100644 --- a/cumulus/pallets/parachain-system/src/validate_block/implementation.rs +++ b/cumulus/pallets/parachain-system/src/validate_block/implementation.rs @@ -26,6 +26,7 @@ use polkadot_parachain_primitives::primitives::{ HeadData, RelayChainBlockNumber, ValidationResult, }; +use alloc::vec::Vec; use codec::Encode; use frame_support::traits::{ExecuteBlock, ExtrinsicCall, Get, IsSubType}; @@ -33,7 +34,6 @@ use sp_core::storage::{ChildInfo, StateVersion}; use sp_externalities::{set_and_run_with_externalities, Externalities}; use sp_io::KillStorageResult; use sp_runtime::traits::{Block as BlockT, Extrinsic, HashingFor, Header as HeaderT}; -use sp_std::prelude::*; use sp_trie::{MemoryDB, ProofSizeProvider}; use trie_recorder::SizeOnlyRecorderProvider; @@ -124,7 +124,7 @@ where Err(_) => panic!("Compact proof decoding failure."), }; - sp_std::mem::drop(storage_proof); + core::mem::drop(storage_proof); let mut recorder = SizeOnlyRecorderProvider::new(); let cache_provider = trie_cache::CacheProvider::new(); @@ -294,7 +294,7 @@ fn host_storage_read(key: &[u8], value_out: &mut [u8], value_offset: u32) -> Opt Some(value) => { let value_offset = value_offset as usize; let data = &value[value_offset.min(value.len())..]; - let written = sp_std::cmp::min(data.len(), value_out.len()); + let written = core::cmp::min(data.len(), value_out.len()); value_out[..written].copy_from_slice(&data[..written]); Some(value.len() as u32) }, @@ -368,7 +368,7 @@ fn host_default_child_storage_read( Some(value) => { let value_offset = value_offset as usize; let data = &value[value_offset.min(value.len())..]; - let written = sp_std::cmp::min(data.len(), value_out.len()); + let written = core::cmp::min(data.len(), value_out.len()); value_out[..written].copy_from_slice(&data[..written]); Some(value.len() as u32) }, diff --git a/cumulus/pallets/parachain-system/src/validate_block/mod.rs b/cumulus/pallets/parachain-system/src/validate_block/mod.rs index 763a4cffd77..3a00d4d352a 100644 --- a/cumulus/pallets/parachain-system/src/validate_block/mod.rs +++ b/cumulus/pallets/parachain-system/src/validate_block/mod.rs @@ -30,6 +30,9 @@ mod trie_cache; #[doc(hidden)] mod trie_recorder; +#[cfg(not(feature = "std"))] +#[doc(hidden)] +pub use alloc::{boxed::Box, slice}; #[cfg(not(feature = "std"))] #[doc(hidden)] pub use bytes; diff --git a/cumulus/pallets/parachain-system/src/validate_block/trie_cache.rs b/cumulus/pallets/parachain-system/src/validate_block/trie_cache.rs index 5d785910fbe..5999b3ce87f 100644 --- a/cumulus/pallets/parachain-system/src/validate_block/trie_cache.rs +++ b/cumulus/pallets/parachain-system/src/validate_block/trie_cache.rs @@ -15,12 +15,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -use sp_state_machine::TrieCacheProvider; -use sp_std::{ +use alloc::{ boxed::Box, - cell::{RefCell, RefMut}, collections::btree_map::{BTreeMap, Entry}, }; +use core::cell::{RefCell, RefMut}; +use sp_state_machine::TrieCacheProvider; use sp_trie::NodeCodec; use trie_db::{node::NodeOwned, Hasher}; diff --git a/cumulus/pallets/parachain-system/src/validate_block/trie_recorder.rs b/cumulus/pallets/parachain-system/src/validate_block/trie_recorder.rs index 48310670c07..19801340719 100644 --- a/cumulus/pallets/parachain-system/src/validate_block/trie_recorder.rs +++ b/cumulus/pallets/parachain-system/src/validate_block/trie_recorder.rs @@ -22,11 +22,11 @@ use codec::Encode; -use sp_std::{ - cell::{RefCell, RefMut}, +use alloc::{ collections::{btree_map::BTreeMap, btree_set::BTreeSet}, rc::Rc, }; +use core::cell::{RefCell, RefMut}; use sp_trie::{NodeCodec, ProofSizeProvider, StorageProof}; use trie_db::{Hasher, RecordedForKey, TrieAccess}; diff --git a/cumulus/pallets/parachain-system/src/weights.rs b/cumulus/pallets/parachain-system/src/weights.rs index da7f64237e9..5c61879b4d3 100644 --- a/cumulus/pallets/parachain-system/src/weights.rs +++ b/cumulus/pallets/parachain-system/src/weights.rs @@ -50,7 +50,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions needed for cumulus_pallet_parachain_system. pub trait WeightInfo { diff --git a/cumulus/pallets/session-benchmarking/Cargo.toml b/cumulus/pallets/session-benchmarking/Cargo.toml index df671566cdc..e182ac45ede 100644 --- a/cumulus/pallets/session-benchmarking/Cargo.toml +++ b/cumulus/pallets/session-benchmarking/Cargo.toml @@ -17,7 +17,6 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] codec = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } @@ -39,5 +38,4 @@ std = [ "frame-system/std", "pallet-session/std", "sp-runtime/std", - "sp-std/std", ] diff --git a/cumulus/pallets/session-benchmarking/src/inner.rs b/cumulus/pallets/session-benchmarking/src/inner.rs index 36411d3d71a..8d595430487 100644 --- a/cumulus/pallets/session-benchmarking/src/inner.rs +++ b/cumulus/pallets/session-benchmarking/src/inner.rs @@ -15,7 +15,7 @@ //! Benchmarking setup for pallet-session. -use sp_std::{prelude::*, vec}; +use alloc::{vec, vec::Vec}; use codec::Decode; use frame_benchmarking::{benchmarks, whitelisted_caller}; diff --git a/cumulus/pallets/session-benchmarking/src/lib.rs b/cumulus/pallets/session-benchmarking/src/lib.rs index a95d6fb7d59..f5bfef00616 100644 --- a/cumulus/pallets/session-benchmarking/src/lib.rs +++ b/cumulus/pallets/session-benchmarking/src/lib.rs @@ -20,6 +20,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(feature = "runtime-benchmarks")] pub mod inner; diff --git a/cumulus/pallets/solo-to-para/Cargo.toml b/cumulus/pallets/solo-to-para/Cargo.toml index ced1b24f1d2..5fd1939e93a 100644 --- a/cumulus/pallets/solo-to-para/Cargo.toml +++ b/cumulus/pallets/solo-to-para/Cargo.toml @@ -18,7 +18,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } pallet-sudo = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } # Polkadot polkadot-primitives = { workspace = true } @@ -37,7 +36,6 @@ std = [ "polkadot-primitives/std", "scale-info/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "cumulus-pallet-parachain-system/try-runtime", diff --git a/cumulus/pallets/solo-to-para/src/lib.rs b/cumulus/pallets/solo-to-para/src/lib.rs index da948615d4e..b42cc74f1cf 100644 --- a/cumulus/pallets/solo-to-para/src/lib.rs +++ b/cumulus/pallets/solo-to-para/src/lib.rs @@ -16,12 +16,14 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use cumulus_pallet_parachain_system as parachain_system; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; pub use pallet::*; use polkadot_primitives::PersistedValidationData; -use sp_std::vec::Vec; #[frame_support::pallet] pub mod pallet { diff --git a/cumulus/pallets/xcm/Cargo.toml b/cumulus/pallets/xcm/Cargo.toml index 1f0cef70e3a..35d7a083b06 100644 --- a/cumulus/pallets/xcm/Cargo.toml +++ b/cumulus/pallets/xcm/Cargo.toml @@ -13,7 +13,6 @@ workspace = true codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive"], workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } frame-support = { workspace = true } @@ -33,7 +32,6 @@ std = [ "scale-info/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm/std", ] try-runtime = [ diff --git a/cumulus/pallets/xcm/src/lib.rs b/cumulus/pallets/xcm/src/lib.rs index 90a0ec76def..e31df8471c2 100644 --- a/cumulus/pallets/xcm/src/lib.rs +++ b/cumulus/pallets/xcm/src/lib.rs @@ -25,7 +25,6 @@ use cumulus_primitives_core::ParaId; pub use pallet::*; use scale_info::TypeInfo; use sp_runtime::{traits::BadOrigin, RuntimeDebug}; -use sp_std::prelude::*; use xcm::latest::{ExecuteXcm, Outcome}; #[frame_support::pallet] diff --git a/cumulus/pallets/xcmp-queue/Cargo.toml b/cumulus/pallets/xcmp-queue/Cargo.toml index c542fa373b5..9c7470eda6d 100644 --- a/cumulus/pallets/xcmp-queue/Cargo.toml +++ b/cumulus/pallets/xcmp-queue/Cargo.toml @@ -20,7 +20,6 @@ frame-system = { workspace = true } sp-io = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } pallet-message-queue = { workspace = true } # Polkadot @@ -68,7 +67,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", diff --git a/cumulus/pallets/xcmp-queue/src/benchmarking.rs b/cumulus/pallets/xcmp-queue/src/benchmarking.rs index 49e2cc83673..9cb1301addf 100644 --- a/cumulus/pallets/xcmp-queue/src/benchmarking.rs +++ b/cumulus/pallets/xcmp-queue/src/benchmarking.rs @@ -17,6 +17,7 @@ use crate::*; +use alloc::vec; use codec::DecodeAll; use frame_benchmarking::v2::*; use frame_support::traits::Hooks; diff --git a/cumulus/pallets/xcmp-queue/src/bridging.rs b/cumulus/pallets/xcmp-queue/src/bridging.rs index 9db4b6e74c3..eff4a37b0ce 100644 --- a/cumulus/pallets/xcmp-queue/src/bridging.rs +++ b/cumulus/pallets/xcmp-queue/src/bridging.rs @@ -21,7 +21,7 @@ use frame_support::pallet_prelude::Get; /// both `OutboundXcmpStatus` and `InboundXcmpStatus` for defined `ParaId` if any of those is /// suspended. pub struct InAndOutXcmpChannelStatusProvider( - sp_std::marker::PhantomData<(SiblingBridgeHubParaId, Runtime)>, + core::marker::PhantomData<(SiblingBridgeHubParaId, Runtime)>, ); impl, Runtime: crate::Config> bp_xcm_bridge_hub_router::XcmChannelStatusProvider @@ -45,7 +45,7 @@ impl, Runtime: crate::Config> /// Adapter implementation for `bp_xcm_bridge_hub_router::XcmChannelStatusProvider` which checks /// only `OutboundXcmpStatus` for defined `SiblingParaId` if is suspended. pub struct OutXcmpChannelStatusProvider( - sp_std::marker::PhantomData<(SiblingBridgeHubParaId, Runtime)>, + core::marker::PhantomData<(SiblingBridgeHubParaId, Runtime)>, ); impl, Runtime: crate::Config> bp_xcm_bridge_hub_router::XcmChannelStatusProvider diff --git a/cumulus/pallets/xcmp-queue/src/lib.rs b/cumulus/pallets/xcmp-queue/src/lib.rs index 45126a9425d..8c4446a925d 100644 --- a/cumulus/pallets/xcmp-queue/src/lib.rs +++ b/cumulus/pallets/xcmp-queue/src/lib.rs @@ -50,6 +50,9 @@ pub mod bridging; pub mod weights; pub use weights::WeightInfo; +extern crate alloc; + +use alloc::vec::Vec; use bounded_collections::BoundedBTreeSet; use codec::{Decode, DecodeLimit, Encode, MaxEncodedLen}; use cumulus_primitives_core::{ @@ -69,7 +72,6 @@ use polkadot_runtime_parachains::FeeTracker; use scale_info::TypeInfo; use sp_core::MAX_POSSIBLE_ALLOCATION; use sp_runtime::{FixedU128, RuntimeDebug, Saturating, WeakBoundedVec}; -use sp_std::prelude::*; use xcm::{latest::prelude::*, VersionedLocation, VersionedXcm, WrapVersion, MAX_XCM_DECODE_DEPTH}; use xcm_builder::InspectMessageQueues; use xcm_executor::traits::ConvertOrigin; diff --git a/cumulus/pallets/xcmp-queue/src/migration.rs b/cumulus/pallets/xcmp-queue/src/migration.rs index b64982a8930..d0657aaea9f 100644 --- a/cumulus/pallets/xcmp-queue/src/migration.rs +++ b/cumulus/pallets/xcmp-queue/src/migration.rs @@ -19,6 +19,7 @@ pub mod v5; use crate::{Config, OverweightIndex, Pallet, QueueConfig, QueueConfigData, DEFAULT_POV_SIZE}; +use alloc::vec::Vec; use cumulus_primitives_core::XcmpMessageFormat; use frame_support::{ pallet_prelude::*, diff --git a/cumulus/pallets/xcmp-queue/src/migration/v5.rs b/cumulus/pallets/xcmp-queue/src/migration/v5.rs index 247adab7108..818365f36f6 100644 --- a/cumulus/pallets/xcmp-queue/src/migration/v5.rs +++ b/cumulus/pallets/xcmp-queue/src/migration/v5.rs @@ -17,6 +17,7 @@ //! Migrates the storage to version 5. use crate::*; +use alloc::vec::Vec; use cumulus_primitives_core::ListChannelInfos; use frame_support::{pallet_prelude::*, traits::UncheckedOnRuntimeUpgrade}; diff --git a/cumulus/parachains/common/Cargo.toml b/cumulus/parachains/common/Cargo.toml index 6eac9a09672..6d436bdf799 100644 --- a/cumulus/parachains/common/Cargo.toml +++ b/cumulus/parachains/common/Cargo.toml @@ -29,7 +29,6 @@ sp-consensus-aura = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } # Polkadot pallet-xcm = { workspace = true } @@ -73,7 +72,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm-executor/std", "xcm/std", ] diff --git a/cumulus/parachains/common/src/impls.rs b/cumulus/parachains/common/src/impls.rs index 16cda1a4ed8..42ea50c75a8 100644 --- a/cumulus/parachains/common/src/impls.rs +++ b/cumulus/parachains/common/src/impls.rs @@ -16,6 +16,8 @@ //! Auxiliary struct/enums for parachain runtimes. //! Taken from polkadot/runtime/common (at a21cd64) and adapted for parachains. +use alloc::boxed::Box; +use core::marker::PhantomData; use frame_support::traits::{ fungible, fungibles, tokens::imbalance::ResolveTo, Contains, ContainsPair, Currency, Defensive, Get, Imbalance, OnUnbalanced, OriginTrait, @@ -23,7 +25,6 @@ use frame_support::traits::{ use pallet_asset_tx_payment::HandleCredit; use pallet_collator_selection::StakingPotAccountId; use sp_runtime::traits::Zero; -use sp_std::{marker::PhantomData, prelude::*}; use xcm::latest::{ Asset, AssetId, Fungibility, Fungibility::Fungible, Junction, Junctions::Here, Location, Parent, WeightLimit, diff --git a/cumulus/parachains/common/src/lib.rs b/cumulus/parachains/common/src/lib.rs index b01d623d2b9..3cffb69daac 100644 --- a/cumulus/parachains/common/src/lib.rs +++ b/cumulus/parachains/common/src/lib.rs @@ -15,6 +15,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + pub mod impls; pub mod message_queue; pub mod xcm_config; diff --git a/cumulus/parachains/common/src/message_queue.rs b/cumulus/parachains/common/src/message_queue.rs index 0c9f4b840c9..511d6243cb8 100644 --- a/cumulus/parachains/common/src/message_queue.rs +++ b/cumulus/parachains/common/src/message_queue.rs @@ -16,10 +16,10 @@ //! Helpers to deal with configuring the message queue in the runtime. +use core::marker::PhantomData; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::traits::{QueueFootprint, QueuePausedQuery}; use pallet_message_queue::OnQueueChanged; -use sp_std::marker::PhantomData; /// Narrow the scope of the `Inner` query from `AggregateMessageOrigin` to `ParaId`. /// diff --git a/cumulus/parachains/common/src/xcm_config.rs b/cumulus/parachains/common/src/xcm_config.rs index a9756af7aed..7c58a2b2405 100644 --- a/cumulus/parachains/common/src/xcm_config.rs +++ b/cumulus/parachains/common/src/xcm_config.rs @@ -14,13 +14,13 @@ // limitations under the License. use crate::impls::AccountIdOf; +use core::marker::PhantomData; use cumulus_primitives_core::{IsSystem, ParaId}; use frame_support::{ traits::{fungibles::Inspect, tokens::ConversionToAssetBalance, Contains, ContainsPair}, weights::Weight, }; use sp_runtime::traits::Get; -use sp_std::marker::PhantomData; use xcm::latest::prelude::*; /// A `ChargeFeeInFungibles` implementation that converts the output of diff --git a/cumulus/parachains/pallets/collective-content/Cargo.toml b/cumulus/parachains/pallets/collective-content/Cargo.toml index 61cbe785009..c52021f67e3 100644 --- a/cumulus/parachains/pallets/collective-content/Cargo.toml +++ b/cumulus/parachains/pallets/collective-content/Cargo.toml @@ -19,7 +19,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-io = { workspace = true } @@ -48,5 +47,4 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] diff --git a/cumulus/parachains/pallets/collective-content/src/lib.rs b/cumulus/parachains/pallets/collective-content/src/lib.rs index b1c960ad6a0..7ea3c2d79fa 100644 --- a/cumulus/parachains/pallets/collective-content/src/lib.rs +++ b/cumulus/parachains/pallets/collective-content/src/lib.rs @@ -46,7 +46,6 @@ pub use weights::WeightInfo; use frame_support::{traits::schedule::DispatchTime, BoundedVec}; use sp_core::ConstU32; -use sp_std::prelude::*; /// IPFS compatible CID. // Worst case 2 bytes base and codec, 2 bytes hash type and size, 64 bytes hash digest. diff --git a/cumulus/parachains/pallets/parachain-info/Cargo.toml b/cumulus/parachains/pallets/parachain-info/Cargo.toml index 7369c3a2c15..e0bed23c4f8 100644 --- a/cumulus/parachains/pallets/parachain-info/Cargo.toml +++ b/cumulus/parachains/pallets/parachain-info/Cargo.toml @@ -17,7 +17,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } cumulus-primitives-core = { workspace = true } @@ -30,7 +29,6 @@ std = [ "frame-system/std", "scale-info/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/cumulus/parachains/pallets/parachain-info/src/lib.rs b/cumulus/parachains/pallets/parachain-info/src/lib.rs index a4ef448a6b6..0aaa7adaa51 100644 --- a/cumulus/parachains/pallets/parachain-info/src/lib.rs +++ b/cumulus/parachains/pallets/parachain-info/src/lib.rs @@ -41,7 +41,7 @@ pub mod pallet { #[pallet::genesis_config] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, pub parachain_id: ParaId, } diff --git a/cumulus/parachains/pallets/ping/Cargo.toml b/cumulus/parachains/pallets/ping/Cargo.toml index f74328207b8..51fc384a4f1 100644 --- a/cumulus/parachains/pallets/ping/Cargo.toml +++ b/cumulus/parachains/pallets/ping/Cargo.toml @@ -13,7 +13,6 @@ workspace = true codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive"], workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } @@ -33,7 +32,6 @@ std = [ "frame-system/std", "scale-info/std", "sp-runtime/std", - "sp-std/std", "xcm/std", ] diff --git a/cumulus/parachains/pallets/ping/src/lib.rs b/cumulus/parachains/pallets/ping/src/lib.rs index a738c05e036..729494cbd25 100644 --- a/cumulus/parachains/pallets/ping/src/lib.rs +++ b/cumulus/parachains/pallets/ping/src/lib.rs @@ -18,12 +18,14 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_xcm::{ensure_sibling_para, Origin as CumulusOrigin}; use cumulus_primitives_core::ParaId; use frame_support::{parameter_types, BoundedVec}; use frame_system::Config as SystemConfig; use sp_runtime::traits::Saturating; -use sp_std::prelude::*; use xcm::latest::prelude::*; pub use pallet::*; diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml index 9ef0aa0072c..98df41090a4 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/Cargo.toml @@ -53,7 +53,6 @@ sp-genesis-builder = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -241,7 +240,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs index e8772c0b483..f09647854cd 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs @@ -27,6 +27,9 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use assets_common::{ foreign_creators::ForeignCreators, local_and_foreign_assets::{LocalFromLeft, TargetFromLeft}, @@ -45,7 +48,6 @@ use sp_runtime::{ }; use testnet_parachains_constants::rococo::snowbridge::EthereumNetwork; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -1161,7 +1163,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -1445,7 +1447,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -1515,7 +1517,7 @@ impl_runtime_apis! { } fn set_up_complex_asset_transfer( - ) -> Option<(XcmAssets, u32, Location, Box)> { + ) -> Option<(XcmAssets, u32, Location, alloc::boxed::Box)> { // Transfer to Relay some local AH asset (local-reserve-transfer) while paying // fees using teleported native token. // (We don't care that Relay doesn't accept incoming unknown AH local asset) @@ -1550,7 +1552,7 @@ impl_runtime_apis! { let fee_index = if assets.get(0).unwrap().eq(&fee_asset) { 0 } else { 1 }; // verify transferred successfully - let verify = Box::new(move || { + let verify = alloc::boxed::Box::new(move || { // verify native balance after transfer, decreased by transferred fee amount // (plus transport fees) assert!(Balances::free_balance(&who) <= balance - fee_amount); @@ -1584,7 +1586,7 @@ impl_runtime_apis! { let bridged_asset_hub = xcm_config::bridging::to_westend::AssetHubWestend::get(); let _ = PolkadotXcm::force_xcm_version( RuntimeOrigin::root(), - Box::new(bridged_asset_hub.clone()), + alloc::boxed::Box::new(bridged_asset_hub.clone()), XCM_VERSION, ).map_err(|e| { log::error!( diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/cumulus_pallet_parachain_system.rs index c1e5c6a7429..fc63a0814d0 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/cumulus_pallet_parachain_system.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/cumulus_pallet_parachain_system.rs @@ -47,7 +47,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_message_queue.rs index 45531ccfa79..cd72703104a 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_message_queue.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/pallet_message_queue.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/mod.rs index 8e675ad0cf8..8c52ecd9f1b 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/mod.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/mod.rs @@ -18,10 +18,10 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighAssets { diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 7fab3584250..03d3785dccb 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::fungible`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 4454494badc..bee6bcdf21c 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::generic`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs index 03de2c971b7..c736d3ee442 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs @@ -511,8 +511,8 @@ impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { /// All configuration related to bridging pub mod bridging { use super::*; + use alloc::collections::btree_set::BTreeSet; use assets_common::matching; - use sp_std::collections::btree_set::BTreeSet; // common/shared parameters parameter_types! { @@ -541,13 +541,13 @@ pub mod bridging { /// (`AssetId` has to be aligned with `BridgeTable`) pub XcmBridgeHubRouterFeeAssetId: AssetId = TokenLocation::get().into(); - pub BridgeTable: sp_std::vec::Vec = - sp_std::vec::Vec::new().into_iter() + pub BridgeTable: alloc::vec::Vec = + alloc::vec::Vec::new().into_iter() .chain(to_westend::BridgeTable::get()) .collect(); - pub EthereumBridgeTable: sp_std::vec::Vec = - sp_std::vec::Vec::new().into_iter() + pub EthereumBridgeTable: alloc::vec::Vec = + alloc::vec::Vec::new().into_iter() .chain(to_ethereum::BridgeTable::get()) .collect(); } @@ -578,10 +578,10 @@ pub mod bridging { /// Set up exporters configuration. /// `Option` represents static "base fee" which is used for total delivery fee calculation. - pub BridgeTable: sp_std::vec::Vec = sp_std::vec![ + pub BridgeTable: alloc::vec::Vec = alloc::vec![ NetworkExportTableItem::new( WestendNetwork::get(), - Some(sp_std::vec![ + Some(alloc::vec![ AssetHubWestend::get().interior.split_global().expect("invalid configuration for AssetHubWestend").1, ]), SiblingBridgeHub::get(), @@ -595,7 +595,7 @@ pub mod bridging { /// Universal aliases pub UniversalAliases: BTreeSet<(Location, Junction)> = BTreeSet::from_iter( - sp_std::vec![ + alloc::vec![ (SiblingBridgeHubWithBridgeHubWestendInstance::get(), GlobalConsensus(WestendNetwork::get())) ] ); @@ -643,10 +643,10 @@ pub mod bridging { /// Set up exporters configuration. /// `Option` represents static "base fee" which is used for total delivery fee calculation. - pub BridgeTable: sp_std::vec::Vec = sp_std::vec![ + pub BridgeTable: alloc::vec::Vec = alloc::vec![ NetworkExportTableItem::new( EthereumNetwork::get(), - Some(sp_std::vec![Junctions::Here]), + Some(alloc::vec![Junctions::Here]), SiblingBridgeHub::get(), Some(( XcmBridgeHubRouterFeeAssetId::get(), @@ -657,7 +657,7 @@ pub mod bridging { /// Universal aliases pub UniversalAliases: BTreeSet<(Location, Junction)> = BTreeSet::from_iter( - sp_std::vec![ + alloc::vec![ (SiblingBridgeHubWithEthereumInboundQueueInstance::get(), GlobalConsensus(EthereumNetwork::get())), ] ); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/tests/tests.rs index f670c5f424e..ee1461b7f9c 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/tests/tests.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/tests/tests.rs @@ -34,6 +34,7 @@ use asset_test_utils::{ ExtBuilder, SlotDurations, }; use codec::{Decode, Encode}; +use core::ops::Mul; use cumulus_primitives_utility::ChargeWeightInFungibles; use frame_support::{ assert_noop, assert_ok, @@ -48,7 +49,6 @@ use frame_support::{ use parachains_common::{AccountId, AssetIdForTrustBackedAssets, AuraId, Balance}; use sp_consensus_aura::SlotDuration; use sp_runtime::traits::MaybeEquivalence; -use sp_std::ops::Mul; use std::convert::Into; use testnet_parachains_constants::rococo::{consensus::*, currency::UNITS, fee::WeightToFee}; use xcm::latest::prelude::{Assets as XcmAssets, *}; @@ -1277,7 +1277,7 @@ mod asset_hub_rococo_tests { collator_session_keys(), bridging_to_asset_hub_westend, || { - sp_std::vec![ + vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, @@ -1287,16 +1287,16 @@ mod asset_hub_rococo_tests { bp_asset_hub_rococo::XcmBridgeHubRouterCall::report_bridge_status { bridge_id: Default::default(), is_congested: true, - } + }, ) .encode() .into(), - } + }, ] .into() }, || { - sp_std::vec![ + vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, @@ -1306,11 +1306,11 @@ mod asset_hub_rococo_tests { bp_asset_hub_rococo::XcmBridgeHubRouterCall::report_bridge_status { bridge_id: Default::default(), is_congested: false, - } + }, ) .encode() .into(), - } + }, ] .into() }, diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml b/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml index 7e618d950b1..6b1bf769ace 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml @@ -53,7 +53,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -240,7 +239,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs index 55c8a9f0b26..178b886fc3e 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/lib.rs @@ -27,6 +27,9 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use assets_common::{ local_and_foreign_assets::{LocalFromLeft, TargetFromLeft}, AssetIdForTrustBackedAssetsConvert, @@ -68,7 +71,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, Perbill, Permill, RuntimeDebug, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -1206,7 +1208,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -1536,7 +1538,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -1601,7 +1603,7 @@ impl_runtime_apis! { } fn set_up_complex_asset_transfer( - ) -> Option<(XcmAssets, u32, Location, Box)> { + ) -> Option<(XcmAssets, u32, Location, alloc::boxed::Box)> { // Transfer to Relay some local AH asset (local-reserve-transfer) while paying // fees using teleported native token. // (We don't care that Relay doesn't accept incoming unknown AH local asset) @@ -1636,7 +1638,7 @@ impl_runtime_apis! { let fee_index = if assets.get(0).unwrap().eq(&fee_asset) { 0 } else { 1 }; // verify transferred successfully - let verify = Box::new(move || { + let verify = alloc::boxed::Box::new(move || { // verify native balance after transfer, decreased by transferred fee amount // (plus transport fees) assert!(Balances::free_balance(&who) <= balance - fee_amount); @@ -1675,7 +1677,7 @@ impl_runtime_apis! { let bridged_asset_hub = xcm_config::bridging::to_rococo::AssetHubRococo::get(); let _ = PolkadotXcm::force_xcm_version( RuntimeOrigin::root(), - Box::new(bridged_asset_hub.clone()), + alloc::boxed::Box::new(bridged_asset_hub.clone()), XCM_VERSION, ).map_err(|e| { log::error!( diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/cumulus_pallet_parachain_system.rs index c1e5c6a7429..fc63a0814d0 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/cumulus_pallet_parachain_system.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/cumulus_pallet_parachain_system.rs @@ -47,7 +47,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_message_queue.rs index 45531ccfa79..cd72703104a 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_message_queue.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/pallet_message_queue.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/mod.rs index 8c77774da2d..d39052c5c03 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/mod.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/mod.rs @@ -17,10 +17,10 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighAssets { diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index eaf07aac52c..fe8d1861392 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -42,7 +42,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::fungible`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index fc196abea0f..127bc173c10 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -42,7 +42,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::generic`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs index fc2e68c599f..2deeb73eb12 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs @@ -519,8 +519,8 @@ impl pallet_assets::BenchmarkHelper for XcmBenchmarkHelper { /// All configuration related to bridging pub mod bridging { use super::*; + use alloc::collections::btree_set::BTreeSet; use assets_common::matching; - use sp_std::collections::btree_set::BTreeSet; parameter_types! { /// Base price of every byte of the Westend -> Rococo message. Can be adjusted via @@ -548,8 +548,8 @@ pub mod bridging { /// (`AssetId` has to be aligned with `BridgeTable`) pub XcmBridgeHubRouterFeeAssetId: AssetId = WestendLocation::get().into(); - pub BridgeTable: sp_std::vec::Vec = - sp_std::vec::Vec::new().into_iter() + pub BridgeTable: alloc::vec::Vec = + alloc::vec::Vec::new().into_iter() .chain(to_rococo::BridgeTable::get()) .collect(); } @@ -580,10 +580,10 @@ pub mod bridging { /// Set up exporters configuration. /// `Option` represents static "base fee" which is used for total delivery fee calculation. - pub BridgeTable: sp_std::vec::Vec = sp_std::vec![ + pub BridgeTable: alloc::vec::Vec = alloc::vec![ NetworkExportTableItem::new( RococoNetwork::get(), - Some(sp_std::vec![ + Some(alloc::vec![ AssetHubRococo::get().interior.split_global().expect("invalid configuration for AssetHubRococo").1, ]), SiblingBridgeHub::get(), @@ -597,7 +597,7 @@ pub mod bridging { /// Universal aliases pub UniversalAliases: BTreeSet<(Location, Junction)> = BTreeSet::from_iter( - sp_std::vec![ + alloc::vec![ (SiblingBridgeHubWithBridgeHubRococoInstance::get(), GlobalConsensus(RococoNetwork::get())) ] ); diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs index b5957dd5df9..48e6c11d268 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/tests/tests.rs @@ -1258,7 +1258,7 @@ fn report_bridge_status_from_xcm_bridge_router_for_rococo_works() { collator_session_keys(), bridging_to_asset_hub_rococo, || { - sp_std::vec![ + vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, @@ -1268,16 +1268,16 @@ fn report_bridge_status_from_xcm_bridge_router_for_rococo_works() { bp_asset_hub_westend::XcmBridgeHubRouterCall::report_bridge_status { bridge_id: Default::default(), is_congested: true, - } + }, ) .encode() .into(), - } + }, ] .into() }, || { - sp_std::vec![ + vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, @@ -1287,11 +1287,11 @@ fn report_bridge_status_from_xcm_bridge_router_for_rococo_works() { bp_asset_hub_westend::XcmBridgeHubRouterCall::report_bridge_status { bridge_id: Default::default(), is_congested: false, - } + }, ) .encode() .into(), - } + }, ] .into() }, diff --git a/cumulus/parachains/runtimes/assets/common/Cargo.toml b/cumulus/parachains/runtimes/assets/common/Cargo.toml index 94612506f51..c6740269339 100644 --- a/cumulus/parachains/runtimes/assets/common/Cargo.toml +++ b/cumulus/parachains/runtimes/assets/common/Cargo.toml @@ -18,7 +18,6 @@ impl-trait-for-tuples = { workspace = true } # Substrate frame-support = { workspace = true } sp-api = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } pallet-asset-conversion = { workspace = true } @@ -48,7 +47,6 @@ std = [ "scale-info/std", "sp-api/std", "sp-runtime/std", - "sp-std/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", diff --git a/cumulus/parachains/runtimes/assets/common/src/benchmarks.rs b/cumulus/parachains/runtimes/assets/common/src/benchmarks.rs index 44bda1eb370..d59fddc4e8f 100644 --- a/cumulus/parachains/runtimes/assets/common/src/benchmarks.rs +++ b/cumulus/parachains/runtimes/assets/common/src/benchmarks.rs @@ -13,9 +13,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +use core::marker::PhantomData; use cumulus_primitives_core::ParaId; use sp_runtime::traits::Get; -use sp_std::marker::PhantomData; use xcm::latest::prelude::*; /// Creates asset pairs for liquidity pools with `Target` always being the first asset. diff --git a/cumulus/parachains/runtimes/assets/common/src/foreign_creators.rs b/cumulus/parachains/runtimes/assets/common/src/foreign_creators.rs index a9fd79bf939..95edb31da06 100644 --- a/cumulus/parachains/runtimes/assets/common/src/foreign_creators.rs +++ b/cumulus/parachains/runtimes/assets/common/src/foreign_creators.rs @@ -23,7 +23,7 @@ use xcm_executor::traits::ConvertLocation; /// `EnsureOriginWithArg` impl for `CreateOrigin` that allows only XCM origins that are locations /// containing the class location. pub struct ForeignCreators( - sp_std::marker::PhantomData<(IsForeign, AccountOf, AccountId, L)>, + core::marker::PhantomData<(IsForeign, AccountOf, AccountId, L)>, ); impl< IsForeign: ContainsPair, @@ -41,7 +41,7 @@ where fn try_origin( origin: RuntimeOrigin, asset_location: &L, - ) -> sp_std::result::Result { + ) -> core::result::Result { let origin_location = EnsureXcm::::try_origin(origin.clone())?; if !IsForeign::contains(asset_location, &origin_location) { return Err(origin) diff --git a/cumulus/parachains/runtimes/assets/common/src/fungible_conversion.rs b/cumulus/parachains/runtimes/assets/common/src/fungible_conversion.rs index e21203485a7..27ee2d6b565 100644 --- a/cumulus/parachains/runtimes/assets/common/src/fungible_conversion.rs +++ b/cumulus/parachains/runtimes/assets/common/src/fungible_conversion.rs @@ -16,9 +16,10 @@ //! Runtime API definition for assets. use crate::runtime_api::FungiblesAccessError; +use alloc::vec::Vec; +use core::borrow::Borrow; use frame_support::traits::Contains; use sp_runtime::traits::MaybeEquivalence; -use sp_std::{borrow::Borrow, vec::Vec}; use xcm::latest::{Asset, Location}; use xcm_builder::{ConvertedConcreteId, MatchedConvertedConcreteId}; use xcm_executor::traits::MatchesFungibles; diff --git a/cumulus/parachains/runtimes/assets/common/src/lib.rs b/cumulus/parachains/runtimes/assets/common/src/lib.rs index 431b5766147..4bb593f9892 100644 --- a/cumulus/parachains/runtimes/assets/common/src/lib.rs +++ b/cumulus/parachains/runtimes/assets/common/src/lib.rs @@ -23,6 +23,8 @@ pub mod local_and_foreign_assets; pub mod matching; pub mod runtime_api; +extern crate alloc; + use crate::matching::{LocalLocationPattern, ParentLocation}; use frame_support::traits::{Equals, EverythingBut}; use parachains_common::{AssetIdForTrustBackedAssets, CollectionId, ItemId}; diff --git a/cumulus/parachains/runtimes/assets/common/src/local_and_foreign_assets.rs b/cumulus/parachains/runtimes/assets/common/src/local_and_foreign_assets.rs index 58f5d2d57a7..8a89089c718 100644 --- a/cumulus/parachains/runtimes/assets/common/src/local_and_foreign_assets.rs +++ b/cumulus/parachains/runtimes/assets/common/src/local_and_foreign_assets.rs @@ -13,13 +13,13 @@ // See the License for the specific language governing permissions and // limitations under the License. +use core::marker::PhantomData; use frame_support::traits::Get; use sp_runtime::{ traits::{Convert, MaybeEquivalence}, Either, Either::{Left, Right}, }; -use sp_std::marker::PhantomData; use xcm::latest::Location; /// Converts a given [`Location`] to [`Either::Left`] when equal to `Target`, or diff --git a/cumulus/parachains/runtimes/assets/common/src/matching.rs b/cumulus/parachains/runtimes/assets/common/src/matching.rs index f356cb54131..9bb35d0c532 100644 --- a/cumulus/parachains/runtimes/assets/common/src/matching.rs +++ b/cumulus/parachains/runtimes/assets/common/src/matching.rs @@ -28,7 +28,7 @@ frame_support::parameter_types! { } /// Accepts an asset if it is from the origin. -pub struct IsForeignConcreteAsset(sp_std::marker::PhantomData); +pub struct IsForeignConcreteAsset(core::marker::PhantomData); impl> ContainsPair for IsForeignConcreteAsset { @@ -41,7 +41,7 @@ impl> ContainsPair /// Checks if `a` is from sibling location `b`. Checks that `Location-a` starts with /// `Location-b`, and that the `ParaId` of `b` is not equal to `a`. pub struct FromSiblingParachain( - sp_std::marker::PhantomData<(SelfParaId, L)>, + core::marker::PhantomData<(SelfParaId, L)>, ); impl, L: TryFrom + TryInto + Clone> ContainsPair for FromSiblingParachain @@ -65,7 +65,7 @@ impl, L: TryFrom + TryInto + Clone> /// Checks if `a` is from the expected global consensus network. Checks that `Location-a` /// starts with `Location-b`, and that network is a foreign consensus system. pub struct FromNetwork( - sp_std::marker::PhantomData<(UniversalLocation, ExpectedNetworkId, L)>, + core::marker::PhantomData<(UniversalLocation, ExpectedNetworkId, L)>, ); impl< UniversalLocation: Get, @@ -100,7 +100,7 @@ impl< /// Accept an asset if it is native to `AssetsAllowedNetworks` and it is coming from /// `OriginLocation`. pub struct RemoteAssetFromLocation( - sp_std::marker::PhantomData<(AssetsAllowedNetworks, OriginLocation)>, + core::marker::PhantomData<(AssetsAllowedNetworks, OriginLocation)>, ); impl, OriginLocation: Get> ContainsPair for RemoteAssetFromLocation diff --git a/cumulus/parachains/runtimes/assets/common/src/runtime_api.rs b/cumulus/parachains/runtimes/assets/common/src/runtime_api.rs index 19977cbedab..799b2f45b4d 100644 --- a/cumulus/parachains/runtimes/assets/common/src/runtime_api.rs +++ b/cumulus/parachains/runtimes/assets/common/src/runtime_api.rs @@ -18,7 +18,7 @@ use codec::{Codec, Decode, Encode}; use sp_runtime::RuntimeDebug; #[cfg(feature = "std")] -use {sp_std::vec::Vec, xcm::latest::Asset}; +use {alloc::vec::Vec, xcm::latest::Asset}; /// The possible errors that can happen querying the storage of assets. #[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, scale_info::TypeInfo)] diff --git a/cumulus/parachains/runtimes/assets/test-utils/Cargo.toml b/cumulus/parachains/runtimes/assets/test-utils/Cargo.toml index a7aad361e84..529d6460fc4 100644 --- a/cumulus/parachains/runtimes/assets/test-utils/Cargo.toml +++ b/cumulus/parachains/runtimes/assets/test-utils/Cargo.toml @@ -21,7 +21,6 @@ pallet-timestamp = { workspace = true } pallet-session = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } # Cumulus cumulus-pallet-parachain-system = { workspace = true } @@ -68,7 +67,6 @@ std = [ "parachains-runtimes-test-utils/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs index 39ea6369255..d97e6a1d88e 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_bulletin_config.rs @@ -87,7 +87,7 @@ parameter_types! { XCM_LANE_FOR_ROCOCO_PEOPLE_TO_ROCOCO_BULLETIN, ); /// All active routes and their destinations. - pub ActiveLanes: sp_std::vec::Vec<(SenderAndLane, (NetworkId, InteriorLocation))> = sp_std::vec![ + pub ActiveLanes: alloc::vec::Vec<(SenderAndLane, (NetworkId, InteriorLocation))> = alloc::vec![ ( FromRococoPeopleToRococoBulletinRoute::get(), (RococoBulletinGlobalConsensusNetwork::get(), Here) diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs index 07bb718bd13..fe854e20c24 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/bridge_to_westend_config.rs @@ -71,7 +71,7 @@ parameter_types! { ParentThen([Parachain(AssetHubRococoParaId::get().into())].into()).into(), XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WESTEND, ); - pub ActiveLanes: sp_std::vec::Vec<(SenderAndLane, (NetworkId, InteriorLocation))> = sp_std::vec![ + pub ActiveLanes: alloc::vec::Vec<(SenderAndLane, (NetworkId, InteriorLocation))> = alloc::vec![ ( FromAssetHubRococoToAssetHubWestendRoute::get(), (WestendGlobalConsensusNetwork::get(), [Parachain(AssetHubWestendParaId::get().into())].into()) @@ -91,8 +91,8 @@ parameter_types! { } pub const XCM_LANE_FOR_ASSET_HUB_ROCOCO_TO_ASSET_HUB_WESTEND: LaneId = LaneId([0, 0, 0, 2]); -fn build_congestion_message(is_congested: bool) -> sp_std::vec::Vec> { - sp_std::vec![ +fn build_congestion_message(is_congested: bool) -> alloc::vec::Vec> { + alloc::vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs index 8ca5898d1a1..512c1199f43 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs @@ -35,6 +35,9 @@ pub mod bridge_to_westend_config; mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use bridge_runtime_common::extensions::{ check_obsolete_extension::{ CheckAndBoostBridgeGrandpaTransactions, CheckAndBoostBridgeParachainsTransactions, @@ -58,7 +61,6 @@ use sp_runtime::{ ApplyExtrinsicResult, FixedU128, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -110,6 +112,8 @@ use parachains_common::{ AVERAGE_ON_INITIALIZE_RATIO, NORMAL_DISPATCH_RATIO, }; +#[cfg(feature = "runtime-benchmarks")] +use alloc::boxed::Box; #[cfg(feature = "runtime-benchmarks")] use benchmark_helpers::DoNothingRouter; @@ -862,7 +866,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -1197,7 +1201,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/cumulus_pallet_parachain_system.rs index dc480c39163..8fcd7b10d93 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/cumulus_pallet_parachain_system.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/cumulus_pallet_parachain_system.rs @@ -47,7 +47,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_message_queue.rs index 2fcd573ceb2..b6fee47d143 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_message_queue.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_message_queue.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/mod.rs index 4f5bae0fe59..b40cbfeeb8f 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/mod.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/mod.rs @@ -17,11 +17,11 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use codec::Encode; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighAssets { diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index d7e8c41ff8a..057dc431351 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::fungible`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index bafc973bdac..9c58072d402 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::generic`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs index a0d2e91dffd..5ec545ee059 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs @@ -22,6 +22,7 @@ use super::{ use bp_messages::LaneId; use bp_relayers::{PayRewardFromAccount, RewardsAccountOwner, RewardsAccountParams}; use bp_runtime::ChainId; +use core::marker::PhantomData; use frame_support::{ parameter_types, traits::{tokens::imbalance::ResolveTo, ConstU32, Contains, Equals, Everything, Nothing}, @@ -41,7 +42,6 @@ use polkadot_runtime_common::xcm_sender::ExponentialPrice; use snowbridge_runtime_common::XcmExportFeeToSibling; use sp_core::Get; use sp_runtime::traits::AccountIdConversion; -use sp_std::marker::PhantomData; use testnet_parachains_constants::rococo::snowbridge::EthereumNetwork; use xcm::latest::prelude::*; use xcm_builder::{ diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs index 09d55f4323a..42d5ef3eebd 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/bridge_to_rococo_config.rs @@ -78,7 +78,7 @@ parameter_types! { ParentThen([Parachain(AssetHubWestendParaId::get().into())].into()).into(), XCM_LANE_FOR_ASSET_HUB_WESTEND_TO_ASSET_HUB_ROCOCO, ); - pub ActiveLanes: sp_std::vec::Vec<(SenderAndLane, (NetworkId, InteriorLocation))> = sp_std::vec![ + pub ActiveLanes: alloc::vec::Vec<(SenderAndLane, (NetworkId, InteriorLocation))> = alloc::vec![ ( FromAssetHubWestendToAssetHubRococoRoute::get(), (RococoGlobalConsensusNetwork::get(), [Parachain(AssetHubRococoParaId::get().into())].into()) @@ -98,8 +98,8 @@ parameter_types! { } pub const XCM_LANE_FOR_ASSET_HUB_WESTEND_TO_ASSET_HUB_ROCOCO: LaneId = LaneId([0, 0, 0, 2]); -fn build_congestion_message(is_congested: bool) -> sp_std::vec::Vec> { - sp_std::vec![ +fn build_congestion_message(is_congested: bool) -> alloc::vec::Vec> { + alloc::vec![ UnpaidExecution { weight_limit: Unlimited, check_origin: None }, Transact { origin_kind: OriginKind::Xcm, diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs index 993f6043245..5d4c35d6610 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/lib.rs @@ -32,6 +32,9 @@ pub mod bridge_to_rococo_config; mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use bridge_runtime_common::extensions::{ check_obsolete_extension::{ CheckAndBoostBridgeGrandpaTransactions, CheckAndBoostBridgeParachainsTransactions, @@ -49,7 +52,6 @@ use sp_runtime::{ ApplyExtrinsicResult, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -612,7 +614,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -886,7 +888,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -928,7 +930,7 @@ impl_runtime_apis! { } fn set_up_complex_asset_transfer( - ) -> Option<(Assets, u32, Location, Box)> { + ) -> Option<(Assets, u32, Location, alloc::boxed::Box)> { // BH only supports teleports to system parachain. // Relay/native token can be teleported between BH and Relay. let native_location = Parent.into(); @@ -1051,7 +1053,7 @@ impl_runtime_apis! { // save XCM version for remote bridge hub let _ = PolkadotXcm::force_xcm_version( RuntimeOrigin::root(), - Box::new(bridge_to_rococo_config::BridgeHubRococoLocation::get()), + alloc::boxed::Box::new(bridge_to_rococo_config::BridgeHubRococoLocation::get()), XCM_VERSION, ).map_err(|e| { log::error!( diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_parachain_system.rs index dc480c39163..8fcd7b10d93 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_parachain_system.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/cumulus_pallet_parachain_system.rs @@ -47,7 +47,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_message_queue.rs index 2fcd573ceb2..b6fee47d143 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_message_queue.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/pallet_message_queue.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs index e8950678b40..3961cc6d5cd 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/mod.rs @@ -18,11 +18,11 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use codec::Encode; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighAssets { diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 295abd481d7..4310b245647 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::fungible`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 73bea66bf71..ba434ff2962 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::generic`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/bridge-hubs/common/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/common/Cargo.toml index fd0eed1c05a..3ae43075000 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/common/Cargo.toml +++ b/cumulus/parachains/runtimes/bridge-hubs/common/Cargo.toml @@ -10,7 +10,6 @@ license = "Apache-2.0" codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive"], workspace = true } frame-support = { workspace = true } -sp-std = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } cumulus-primitives-core = { workspace = true } @@ -29,7 +28,6 @@ std = [ "snowbridge-core/std", "sp-core/std", "sp-runtime/std", - "sp-std/std", "xcm/std", ] diff --git a/cumulus/parachains/runtimes/bridge-hubs/common/src/message_queue.rs b/cumulus/parachains/runtimes/bridge-hubs/common/src/message_queue.rs index c1bba65b0ab..5f91897262f 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/common/src/message_queue.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/common/src/message_queue.rs @@ -14,6 +14,7 @@ // limitations under the License. //! Runtime configuration for MessageQueue pallet use codec::{Decode, Encode, MaxEncodedLen}; +use core::marker::PhantomData; use cumulus_primitives_core::{AggregateMessageOrigin as CumulusAggregateMessageOrigin, ParaId}; use frame_support::{ traits::{ProcessMessage, ProcessMessageError, QueueFootprint, QueuePausedQuery}, @@ -22,7 +23,6 @@ use frame_support::{ use pallet_message_queue::OnQueueChanged; use scale_info::TypeInfo; use snowbridge_core::ChannelId; -use sp_std::{marker::PhantomData, prelude::*}; use xcm::v4::{Junction, Location}; /// The aggregate origin of an inbound message. diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/Cargo.toml b/cumulus/parachains/runtimes/bridge-hubs/test-utils/Cargo.toml index fb96d29a497..44a8646142d 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/Cargo.toml +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/Cargo.toml @@ -21,7 +21,6 @@ sp-core = { workspace = true } sp-io = { workspace = true } sp-keyring = { workspace = true, default-features = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-tracing = { workspace = true, default-features = true } pallet-balances = { workspace = true } pallet-utility = { workspace = true } @@ -81,7 +80,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/lib.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/lib.rs index 1874f38de2d..0b3463f0df9 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/lib.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/lib.rs @@ -19,6 +19,8 @@ pub mod test_cases; pub mod test_data; +extern crate alloc; + pub use bp_test_utils::test_header; pub use parachains_runtimes_test_utils::*; use sp_runtime::Perbill; diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_grandpa_chain.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_grandpa_chain.rs index 8f3c7de61f8..d6dfa93731a 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_grandpa_chain.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_grandpa_chain.rs @@ -22,6 +22,7 @@ use crate::{ test_data, }; +use alloc::{boxed::Box, vec}; use bp_header_chain::ChainWithGrandpa; use bp_messages::{LaneId, UnrewardedRelayersState}; use bp_relayers::{RewardsAccountOwner, RewardsAccountParams}; @@ -61,7 +62,7 @@ pub trait WithRemoteGrandpaChainHelper { /// Adapter struct that implements [`WithRemoteGrandpaChainHelper`]. pub struct WithRemoteGrandpaChainHelperAdapter( - sp_std::marker::PhantomData<(Runtime, AllPalletsWithoutSystem, GPI, MPI)>, + core::marker::PhantomData<(Runtime, AllPalletsWithoutSystem, GPI, MPI)>, ); impl WithRemoteGrandpaChainHelper diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_parachain.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_parachain.rs index 6580648e660..728b4e76b10 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_parachain.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/from_parachain.rs @@ -22,6 +22,7 @@ use crate::{ test_data, }; +use alloc::{boxed::Box, vec}; use bp_header_chain::ChainWithGrandpa; use bp_messages::{LaneId, UnrewardedRelayersState}; use bp_polkadot_core::parachains::ParaHash; @@ -66,7 +67,7 @@ pub trait WithRemoteParachainHelper { /// Adapter struct that implements `WithRemoteParachainHelper`. pub struct WithRemoteParachainHelperAdapter( - sp_std::marker::PhantomData<(Runtime, AllPalletsWithoutSystem, GPI, PPI, MPI)>, + core::marker::PhantomData<(Runtime, AllPalletsWithoutSystem, GPI, PPI, MPI)>, ); impl WithRemoteParachainHelper diff --git a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/helpers.rs b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/helpers.rs index c990c6e5307..78b8a170f0d 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/helpers.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/test-utils/src/test_cases/helpers.rs @@ -23,6 +23,7 @@ use bp_messages::{LaneId, MessageNonce}; use bp_polkadot_core::parachains::{ParaHash, ParaId}; use bp_relayers::RewardsAccountParams; use codec::Decode; +use core::marker::PhantomData; use frame_support::{ assert_ok, traits::{OnFinalize, OnInitialize, PalletInfoAccess}, @@ -37,7 +38,6 @@ use parachains_runtimes_test_utils::{ use sp_core::Get; use sp_keyring::AccountKeyring::*; use sp_runtime::{traits::TrailingZeroInput, AccountId32}; -use sp_std::marker::PhantomData; use xcm::latest::prelude::*; /// Verify that the transaction has succeeded. @@ -290,7 +290,7 @@ pub fn relayed_incoming_message_works( // value here is tricky - there are several transaction payment pallets and we don't // want to introduce additional bounds and traits here just for that, so let's just // select some presumably large value - sp_std::cmp::max::(Runtime::ExistentialDeposit::get(), 1u32.into()) * + core::cmp::max::(Runtime::ExistentialDeposit::get(), 1u32.into()) * 100_000_000u32.into(), )], || { diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml index 87cf42ba87d..43fc9083937 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/Cargo.toml @@ -54,7 +54,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -229,7 +228,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/impls.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/impls.rs index e5b176fc778..ed5d4870e4a 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/impls.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/impls.rs @@ -14,6 +14,8 @@ // limitations under the License. use crate::OriginCaller; +use alloc::boxed::Box; +use core::{cmp::Ordering, marker::PhantomData}; use frame_support::{ dispatch::DispatchResultWithPostInfo, traits::{Currency, PrivilegeCmp}, @@ -21,7 +23,6 @@ use frame_support::{ }; use pallet_alliance::{ProposalIndex, ProposalProvider}; use sp_runtime::DispatchError; -use sp_std::{cmp::Ordering, marker::PhantomData, prelude::*}; type AccountIdOf = ::AccountId; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs index f37af88c284..d843d6f6f77 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/lib.rs @@ -42,8 +42,12 @@ mod weights; pub mod xcm_config; // Fellowship configurations. pub mod fellowship; + +extern crate alloc; + pub use ambassador::pallet_ambassador_origins; +use alloc::{vec, vec::Vec}; use ambassador::AmbassadorCoreInstance; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use fellowship::{pallet_fellowship_origins, Fellows, FellowshipCoreInstance}; @@ -57,7 +61,6 @@ use sp_runtime::{ ApplyExtrinsicResult, Perbill, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -837,7 +840,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -1047,7 +1050,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -1096,7 +1099,7 @@ impl_runtime_apis! { } fn set_up_complex_asset_transfer( - ) -> Option<(Assets, u32, Location, Box)> { + ) -> Option<(Assets, u32, Location, alloc::boxed::Box)> { // Collectives only supports teleports to system parachain. // Relay/native token can be teleported between Collectives and Relay. let native_location = Parent.into(); diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_parachain_system.rs index 0b7a2fc21cd..92c8c88b515 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_parachain_system.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/cumulus_pallet_parachain_system.rs @@ -47,7 +47,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_message_queue.rs index 4bd71c4e7d4..0bb6d3d0f1c 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_message_queue.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/weights/pallet_message_queue.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml b/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml index 4fb4bcde023..1fcebb3f16a 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/Cargo.toml @@ -31,7 +31,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -133,7 +132,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs index d2fe0689f51..47ce6f3628e 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/lib.rs @@ -29,6 +29,9 @@ mod contracts; mod weights; mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::AggregateMessageOrigin; use sp_api::impl_runtime_apis; @@ -40,7 +43,6 @@ use sp_runtime::{ ApplyExtrinsicResult, Perbill, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -487,7 +489,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -765,7 +767,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } @@ -815,7 +817,7 @@ impl_runtime_apis! { } fn set_up_complex_asset_transfer( - ) -> Option<(Assets, u32, Location, Box)> { + ) -> Option<(Assets, u32, Location, alloc::boxed::Box)> { // Contracts-System-Para only supports teleports to system parachain. // Relay/native token can be teleported between Contracts-System-Para and Relay. let native_location = Parent.into(); diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml b/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml index 57a0782b1ef..2920bc428d9 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/Cargo.toml @@ -49,7 +49,6 @@ sp-genesis-builder = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -133,7 +132,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs index 6e36539c7bf..9fd0093840d 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/lib.rs @@ -33,6 +33,9 @@ mod coretime; mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ @@ -66,7 +69,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, DispatchError, MultiAddress, Perbill, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -552,7 +554,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -774,7 +776,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/mod.rs index 9f79cea831a..b8db473f106 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/mod.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/mod.rs @@ -18,10 +18,10 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighAssets { diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 7ff1cce2e07..73a71980530 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::fungible`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 16412eb49a5..676048f92ad 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::generic`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml b/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml index d3bf6b43a7e..07a4332800d 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/Cargo.toml @@ -48,7 +48,6 @@ sp-genesis-builder = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -131,7 +130,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs index 74fdd971f5c..7907f252cf8 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/lib.rs @@ -33,6 +33,9 @@ mod coretime; mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ @@ -66,7 +69,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, DispatchError, MultiAddress, Perbill, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -543,7 +545,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -765,7 +767,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/mod.rs index 99af88812da..f35f7bfc188 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/mod.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/mod.rs @@ -17,10 +17,10 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighAssets { diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 8e1461c4a99..ddfc599fa57 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::fungible`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 9657fa55c1f..7390f35e397 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -43,7 +43,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::generic`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml index c201c8375be..d20b62a557b 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/Cargo.toml @@ -35,7 +35,6 @@ pallet-message-queue = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -109,7 +108,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs index a204bb7276c..1b505ad3acb 100644 --- a/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/glutton/glutton-westend/src/lib.rs @@ -47,6 +47,9 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); pub mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use sp_api::impl_runtime_apis; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; @@ -57,7 +60,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -345,7 +347,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -455,7 +457,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } diff --git a/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml b/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml index 890de672e0b..a732bec2352 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml +++ b/cumulus/parachains/runtimes/people/people-rococo/Cargo.toml @@ -45,7 +45,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -128,7 +127,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs index ff31aba8a27..4f007c3fc39 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/lib.rs @@ -22,6 +22,9 @@ pub mod people; mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ @@ -59,7 +62,6 @@ use sp_runtime::{ ApplyExtrinsicResult, }; pub use sp_runtime::{MultiAddress, Perbill, Permill}; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -521,7 +523,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -737,7 +739,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/people.rs b/cumulus/parachains/runtimes/people/people-rococo/src/people.rs index 88a89711019..8211447d68c 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/people.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/people.rs @@ -28,7 +28,6 @@ use sp_runtime::{ traits::{AccountIdConversion, Verify}, RuntimeDebug, }; -use sp_std::prelude::*; parameter_types! { // 27 | Min encoded size of `Registration` @@ -94,8 +93,8 @@ pub enum IdentityField { )] #[codec(mel_bound())] pub struct IdentityInfo { - /// A reasonable display name for the controller of the account. This should be whatever the - /// account is typically known as and should not be confusable with other entities, given + /// A reasonable display name for the controller of the account. This should be whatever the + /// account is typically known as and should not be confusable with other entities, given /// reasonable context. /// /// Stored as UTF-8. @@ -151,7 +150,7 @@ impl IdentityInformationProvider for IdentityInfo { #[cfg(feature = "runtime-benchmarks")] fn create_identity_info() -> Self { - let data = Data::Raw(vec![0; 32].try_into().unwrap()); + let data = Data::Raw(alloc::vec![0; 32].try_into().unwrap()); IdentityInfo { display: data.clone(), diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/cumulus_pallet_parachain_system.rs index fcea5fd1bf6..5715d56c218 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/weights/cumulus_pallet_parachain_system.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/cumulus_pallet_parachain_system.rs @@ -20,7 +20,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_message_queue.rs index fe1911b77a7..47c67901407 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_message_queue.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/pallet_message_queue.rs @@ -20,7 +20,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/mod.rs index 4afd65bdcfe..11c1bad9aa1 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/mod.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/mod.rs @@ -17,10 +17,10 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighAssets { diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index b279399e7a9..2364798596d 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -42,7 +42,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::fungible`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index e2be324ee2d..a50c8860c48 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -42,7 +42,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::generic`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/people/people-westend/Cargo.toml b/cumulus/parachains/runtimes/people/people-westend/Cargo.toml index 83068e489d2..20c7e691ebc 100644 --- a/cumulus/parachains/runtimes/people/people-westend/Cargo.toml +++ b/cumulus/parachains/runtimes/people/people-westend/Cargo.toml @@ -45,7 +45,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -127,7 +126,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs index 6adaa4b4e50..1378324ce7b 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/lib.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/lib.rs @@ -22,6 +22,9 @@ pub mod people; mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ @@ -59,7 +62,6 @@ use sp_runtime::{ ApplyExtrinsicResult, }; pub use sp_runtime::{MultiAddress, Perbill, Permill}; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -521,7 +523,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -737,7 +739,7 @@ impl_runtime_apis! { use frame_system_benchmarking::Pallet as SystemBench; impl frame_system_benchmarking::Config for Runtime { - fn setup_set_code_requirements(code: &sp_std::vec::Vec) -> Result<(), BenchmarkError> { + fn setup_set_code_requirements(code: &alloc::vec::Vec) -> Result<(), BenchmarkError> { ParachainSystem::initialize_for_set_code_benchmark(code.len() as u32); Ok(()) } diff --git a/cumulus/parachains/runtimes/people/people-westend/src/people.rs b/cumulus/parachains/runtimes/people/people-westend/src/people.rs index a5c0e66a3f8..0255fd074b1 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/people.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/people.rs @@ -28,7 +28,6 @@ use sp_runtime::{ traits::{AccountIdConversion, Verify}, RuntimeDebug, }; -use sp_std::prelude::*; parameter_types! { // 27 | Min encoded size of `Registration` @@ -151,7 +150,7 @@ impl IdentityInformationProvider for IdentityInfo { #[cfg(feature = "runtime-benchmarks")] fn create_identity_info() -> Self { - let data = Data::Raw(vec![0; 32].try_into().unwrap()); + let data = Data::Raw(alloc::vec![0; 32].try_into().unwrap()); IdentityInfo { display: data.clone(), diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/cumulus_pallet_parachain_system.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/cumulus_pallet_parachain_system.rs index fcea5fd1bf6..5715d56c218 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/weights/cumulus_pallet_parachain_system.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/cumulus_pallet_parachain_system.rs @@ -20,7 +20,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `cumulus_pallet_parachain_system`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_message_queue.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_message_queue.rs index fe1911b77a7..47c67901407 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_message_queue.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/pallet_message_queue.rs @@ -20,7 +20,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_message_queue`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/mod.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/mod.rs index b2579230c9e..b1fc7ad8ed8 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/mod.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/mod.rs @@ -17,10 +17,10 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::{xcm_config::MaxAssetsIntoHolding, Runtime}; +use alloc::vec::Vec; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighAssets { diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index efffd318817..92d08a24618 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -42,7 +42,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::fungible`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index d7b10f95c79..861f0381995 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -42,7 +42,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `pallet_xcm_benchmarks::generic`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/parachains/runtimes/starters/seedling/Cargo.toml b/cumulus/parachains/runtimes/starters/seedling/Cargo.toml index 8a7c5922362..c76c09a3123 100644 --- a/cumulus/parachains/runtimes/starters/seedling/Cargo.toml +++ b/cumulus/parachains/runtimes/starters/seedling/Cargo.toml @@ -30,7 +30,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -74,7 +73,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", diff --git a/cumulus/parachains/runtimes/starters/seedling/src/lib.rs b/cumulus/parachains/runtimes/starters/seedling/src/lib.rs index 461133f6cfc..1fe72604d37 100644 --- a/cumulus/parachains/runtimes/starters/seedling/src/lib.rs +++ b/cumulus/parachains/runtimes/starters/seedling/src/lib.rs @@ -27,6 +27,9 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use sp_api::impl_runtime_apis; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; @@ -37,7 +40,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -310,7 +312,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } diff --git a/cumulus/parachains/runtimes/starters/shell/Cargo.toml b/cumulus/parachains/runtimes/starters/shell/Cargo.toml index 4a1271ca658..8f3b2204cfe 100644 --- a/cumulus/parachains/runtimes/starters/shell/Cargo.toml +++ b/cumulus/parachains/runtimes/starters/shell/Cargo.toml @@ -29,7 +29,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } pallet-message-queue = { workspace = true } @@ -77,7 +76,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", diff --git a/cumulus/parachains/runtimes/starters/shell/src/lib.rs b/cumulus/parachains/runtimes/starters/shell/src/lib.rs index 7422b580cc3..1dfbe2b6c41 100644 --- a/cumulus/parachains/runtimes/starters/shell/src/lib.rs +++ b/cumulus/parachains/runtimes/starters/shell/src/lib.rs @@ -31,6 +31,9 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::AggregateMessageOrigin; @@ -45,7 +48,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -280,7 +282,7 @@ impl sp_runtime::traits::SignedExtension for DisallowSigned { type Pre = (); fn additional_signed( &self, - ) -> sp_std::result::Result<(), sp_runtime::transaction_validity::TransactionValidityError> { + ) -> core::result::Result<(), sp_runtime::transaction_validity::TransactionValidityError> { Ok(()) } fn pre_dispatch( @@ -368,7 +370,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } diff --git a/cumulus/parachains/runtimes/test-utils/Cargo.toml b/cumulus/parachains/runtimes/test-utils/Cargo.toml index 5e895271ab1..01d7fcc2b5c 100644 --- a/cumulus/parachains/runtimes/test-utils/Cargo.toml +++ b/cumulus/parachains/runtimes/test-utils/Cargo.toml @@ -21,7 +21,6 @@ pallet-timestamp = { workspace = true } sp-consensus-aura = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-tracing = { workspace = true, default-features = true } sp-core = { workspace = true } @@ -68,7 +67,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm-executor/std", "xcm/std", ] diff --git a/cumulus/parachains/runtimes/test-utils/src/lib.rs b/cumulus/parachains/runtimes/test-utils/src/lib.rs index 3c84243306f..3fc3822a63e 100644 --- a/cumulus/parachains/runtimes/test-utils/src/lib.rs +++ b/cumulus/parachains/runtimes/test-utils/src/lib.rs @@ -13,7 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use sp_std::marker::PhantomData; +use core::marker::PhantomData; use codec::{Decode, DecodeLimit}; use cumulus_primitives_core::{ diff --git a/cumulus/parachains/runtimes/testing/penpal/Cargo.toml b/cumulus/parachains/runtimes/testing/penpal/Cargo.toml index bdd0dfac606..1a2737f3aa2 100644 --- a/cumulus/parachains/runtimes/testing/penpal/Cargo.toml +++ b/cumulus/parachains/runtimes/testing/penpal/Cargo.toml @@ -51,7 +51,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -128,7 +127,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool/std", "sp-version/std", diff --git a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs index 8d03f833276..bf39c02a3f5 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/lib.rs @@ -32,6 +32,9 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); mod weights; pub mod xcm_config; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use codec::Encode; use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; @@ -69,7 +72,6 @@ use sp_runtime::{ ApplyExtrinsicResult, }; pub use sp_runtime::{traits::ConvertInto, MultiAddress, Perbill, Permill}; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -737,7 +739,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } diff --git a/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml b/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml index 7cbb614babe..a0ad248bb70 100644 --- a/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml +++ b/cumulus/parachains/runtimes/testing/rococo-parachain/Cargo.toml @@ -35,7 +35,6 @@ sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -106,7 +105,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", diff --git a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs index 40f2b78ffd6..dff7046f197 100644 --- a/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs +++ b/cumulus/parachains/runtimes/testing/rococo-parachain/src/lib.rs @@ -22,6 +22,9 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + +use alloc::{vec, vec::Vec}; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use sp_api::impl_runtime_apis; @@ -32,7 +35,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -711,7 +713,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } diff --git a/cumulus/polkadot-parachain/src/fake_runtime_api/asset_hub_polkadot_aura.rs b/cumulus/polkadot-parachain/src/fake_runtime_api/asset_hub_polkadot_aura.rs index 0b79d338c16..7d54e9b4be0 100644 --- a/cumulus/polkadot-parachain/src/fake_runtime_api/asset_hub_polkadot_aura.rs +++ b/cumulus/polkadot-parachain/src/fake_runtime_api/asset_hub_polkadot_aura.rs @@ -53,7 +53,7 @@ sp_api::impl_runtime_apis! { unimplemented!() } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { unimplemented!() } } diff --git a/cumulus/polkadot-parachain/src/fake_runtime_api/aura.rs b/cumulus/polkadot-parachain/src/fake_runtime_api/aura.rs index 823eb9ab584..ca5fc8bdf11 100644 --- a/cumulus/polkadot-parachain/src/fake_runtime_api/aura.rs +++ b/cumulus/polkadot-parachain/src/fake_runtime_api/aura.rs @@ -53,7 +53,7 @@ sp_api::impl_runtime_apis! { unimplemented!() } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { unimplemented!() } } diff --git a/cumulus/primitives/aura/Cargo.toml b/cumulus/primitives/aura/Cargo.toml index f17c2035edd..062b9ce736e 100644 --- a/cumulus/primitives/aura/Cargo.toml +++ b/cumulus/primitives/aura/Cargo.toml @@ -16,7 +16,6 @@ codec = { features = ["derive"], workspace = true } sp-api = { workspace = true } sp-consensus-aura = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } # Polkadot polkadot-core-primitives = { workspace = true } @@ -31,5 +30,4 @@ std = [ "sp-api/std", "sp-consensus-aura/std", "sp-runtime/std", - "sp-std/std", ] diff --git a/cumulus/primitives/core/Cargo.toml b/cumulus/primitives/core/Cargo.toml index f41213e9485..533d368d3b0 100644 --- a/cumulus/primitives/core/Cargo.toml +++ b/cumulus/primitives/core/Cargo.toml @@ -16,7 +16,6 @@ scale-info = { features = ["derive"], workspace = true } # Substrate sp-api = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-trie = { workspace = true } # Polkadot @@ -35,7 +34,6 @@ std = [ "scale-info/std", "sp-api/std", "sp-runtime/std", - "sp-std/std", "sp-trie/std", "xcm/std", ] diff --git a/cumulus/primitives/core/src/lib.rs b/cumulus/primitives/core/src/lib.rs index 29216d51346..6eafecfc3ff 100644 --- a/cumulus/primitives/core/src/lib.rs +++ b/cumulus/primitives/core/src/lib.rs @@ -18,11 +18,13 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; use polkadot_parachain_primitives::primitives::HeadData; use scale_info::TypeInfo; use sp_runtime::RuntimeDebug; -use sp_std::prelude::*; pub use polkadot_core_primitives::InboundDownwardMessage; pub use polkadot_parachain_primitives::primitives::{ @@ -202,7 +204,7 @@ pub struct ParachainBlockData { /// The header of the parachain block. header: B::Header, /// The extrinsics of the parachain block. - extrinsics: sp_std::vec::Vec, + extrinsics: alloc::vec::Vec, /// The data that is required to emulate the storage accesses executed by all extrinsics. storage_proof: sp_trie::CompactProof, } @@ -211,7 +213,7 @@ impl ParachainBlockData { /// Creates a new instance of `Self`. pub fn new( header: ::Header, - extrinsics: sp_std::vec::Vec<::Extrinsic>, + extrinsics: alloc::vec::Vec<::Extrinsic>, storage_proof: sp_trie::CompactProof, ) -> Self { Self { header, extrinsics, storage_proof } @@ -243,7 +245,7 @@ impl ParachainBlockData { } /// Deconstruct into the inner parts. - pub fn deconstruct(self) -> (B::Header, sp_std::vec::Vec, sp_trie::CompactProof) { + pub fn deconstruct(self) -> (B::Header, alloc::vec::Vec, sp_trie::CompactProof) { (self.header, self.extrinsics, self.storage_proof) } } diff --git a/cumulus/primitives/parachain-inherent/Cargo.toml b/cumulus/primitives/parachain-inherent/Cargo.toml index c07fe075456..172af4b9ec6 100644 --- a/cumulus/primitives/parachain-inherent/Cargo.toml +++ b/cumulus/primitives/parachain-inherent/Cargo.toml @@ -19,7 +19,6 @@ sp-core = { workspace = true } sp-inherents = { workspace = true } sp-runtime = { optional = true, workspace = true } sp-state-machine = { optional = true, workspace = true } -sp-std = { workspace = true } sp-trie = { workspace = true } # Cumulus @@ -36,6 +35,5 @@ std = [ "sp-inherents/std", "sp-runtime?/std", "sp-state-machine?/std", - "sp-std/std", "sp-trie/std", ] diff --git a/cumulus/primitives/parachain-inherent/src/lib.rs b/cumulus/primitives/parachain-inherent/src/lib.rs index 75a56693958..ad4b39b547c 100644 --- a/cumulus/primitives/parachain-inherent/src/lib.rs +++ b/cumulus/primitives/parachain-inherent/src/lib.rs @@ -27,14 +27,16 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + use cumulus_primitives_core::{ relay_chain::{BlakeTwo256, Hash as RelayHash, HashT as _}, InboundDownwardMessage, InboundHrmpMessage, ParaId, PersistedValidationData, }; +use alloc::{collections::btree_map::BTreeMap, vec::Vec}; use scale_info::TypeInfo; use sp_inherents::InherentIdentifier; -use sp_std::{collections::btree_map::BTreeMap, vec::Vec}; /// The identifier for the parachain inherent. pub const INHERENT_IDENTIFIER: InherentIdentifier = *b"sysi1337"; diff --git a/cumulus/primitives/storage-weight-reclaim/Cargo.toml b/cumulus/primitives/storage-weight-reclaim/Cargo.toml index af32fb68d8b..3a98fdd017a 100644 --- a/cumulus/primitives/storage-weight-reclaim/Cargo.toml +++ b/cumulus/primitives/storage-weight-reclaim/Cargo.toml @@ -18,7 +18,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-proof-size-hostfunction = { workspace = true } @@ -41,6 +40,5 @@ std = [ "scale-info/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-trie/std", ] diff --git a/cumulus/primitives/storage-weight-reclaim/src/lib.rs b/cumulus/primitives/storage-weight-reclaim/src/lib.rs index 35fa334f51c..f48dd927ee9 100644 --- a/cumulus/primitives/storage-weight-reclaim/src/lib.rs +++ b/cumulus/primitives/storage-weight-reclaim/src/lib.rs @@ -18,6 +18,7 @@ #![cfg_attr(not(feature = "std"), no_std)] use codec::{Decode, Encode}; +use core::marker::PhantomData; use cumulus_primitives_core::Weight; use cumulus_primitives_proof_size_hostfunction::{ storage_proof_size::storage_proof_size, PROOF_RECORDING_DISABLED, @@ -33,7 +34,6 @@ use sp_runtime::{ transaction_validity::TransactionValidityError, DispatchResult, }; -use sp_std::marker::PhantomData; const LOG_TARGET: &'static str = "runtime::storage_reclaim"; @@ -199,6 +199,7 @@ where #[cfg(test)] mod tests { use super::*; + use core::marker::PhantomData; use frame_support::{ assert_ok, dispatch::{DispatchClass, PerDispatchClass}, @@ -206,7 +207,6 @@ mod tests { }; use frame_system::{BlockWeight, CheckWeight}; use sp_runtime::{AccountId32, BuildStorage}; - use sp_std::marker::PhantomData; use sp_trie::proof_size_extension::ProofSizeExt; type Test = cumulus_test_runtime::Runtime; diff --git a/cumulus/primitives/timestamp/Cargo.toml b/cumulus/primitives/timestamp/Cargo.toml index f7bf53a9d7d..a50011bc3f0 100644 --- a/cumulus/primitives/timestamp/Cargo.toml +++ b/cumulus/primitives/timestamp/Cargo.toml @@ -15,7 +15,6 @@ futures = { workspace = true } # Substrate sp-inherents = { workspace = true } -sp-std = { workspace = true } sp-timestamp = { workspace = true } # Cumulus @@ -27,6 +26,5 @@ std = [ "codec/std", "cumulus-primitives-core/std", "sp-inherents/std", - "sp-std/std", "sp-timestamp/std", ] diff --git a/cumulus/primitives/timestamp/src/lib.rs b/cumulus/primitives/timestamp/src/lib.rs index e6aba6d0bb7..5365f83efdf 100644 --- a/cumulus/primitives/timestamp/src/lib.rs +++ b/cumulus/primitives/timestamp/src/lib.rs @@ -27,9 +27,9 @@ #![cfg_attr(not(feature = "std"), no_std)] +use core::time::Duration; use cumulus_primitives_core::relay_chain::Slot; use sp_inherents::{Error, InherentData}; -use sp_std::time::Duration; pub use sp_timestamp::{InherentType, INHERENT_IDENTIFIER}; diff --git a/cumulus/primitives/utility/Cargo.toml b/cumulus/primitives/utility/Cargo.toml index a2fa2dd9806..82d18c8c0aa 100644 --- a/cumulus/primitives/utility/Cargo.toml +++ b/cumulus/primitives/utility/Cargo.toml @@ -17,7 +17,6 @@ log = { workspace = true } frame-support = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } pallet-asset-conversion = { workspace = true } # Polkadot @@ -42,7 +41,6 @@ std = [ "polkadot-runtime-parachains/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm-builder/std", "xcm-executor/std", "xcm/std", diff --git a/cumulus/primitives/utility/src/lib.rs b/cumulus/primitives/utility/src/lib.rs index 64784eb36f8..9d5bf4e231e 100644 --- a/cumulus/primitives/utility/src/lib.rs +++ b/cumulus/primitives/utility/src/lib.rs @@ -19,7 +19,11 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{vec, vec::Vec}; use codec::Encode; +use core::marker::PhantomData; use cumulus_primitives_core::{MessageSendError, UpwardMessageSender}; use frame_support::{ defensive, @@ -33,7 +37,6 @@ use sp_runtime::{ traits::{Saturating, Zero}, SaturatedConversion, }; -use sp_std::{marker::PhantomData, prelude::*}; use xcm::{latest::prelude::*, VersionedLocation, VersionedXcm, WrapVersion}; use xcm_builder::{InspectMessageQueues, TakeRevenue}; use xcm_executor::{ @@ -803,7 +806,7 @@ mod test_trader { /// needed. #[cfg(feature = "runtime-benchmarks")] pub struct ToParentDeliveryHelper( - sp_std::marker::PhantomData<(XcmConfig, ExistentialDeposit, PriceForDelivery)>, + core::marker::PhantomData<(XcmConfig, ExistentialDeposit, PriceForDelivery)>, ); #[cfg(feature = "runtime-benchmarks")] diff --git a/cumulus/templates/xcm-bench-template.hbs b/cumulus/templates/xcm-bench-template.hbs index 5d0ded403f6..119924bca2e 100644 --- a/cumulus/templates/xcm-bench-template.hbs +++ b/cumulus/templates/xcm-bench-template.hbs @@ -17,7 +17,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weights for `{{pallet}}`. pub struct WeightInfo(PhantomData); diff --git a/cumulus/test/relay-sproof-builder/Cargo.toml b/cumulus/test/relay-sproof-builder/Cargo.toml index 454266c90ba..e266b580708 100644 --- a/cumulus/test/relay-sproof-builder/Cargo.toml +++ b/cumulus/test/relay-sproof-builder/Cargo.toml @@ -16,7 +16,6 @@ codec = { features = ["derive"], workspace = true } sp-runtime = { workspace = true } sp-state-machine = { workspace = true } sp-trie = { workspace = true } -sp-std = { workspace = true } # Polkadot polkadot-primitives = { workspace = true } @@ -32,6 +31,5 @@ std = [ "polkadot-primitives/std", "sp-runtime/std", "sp-state-machine/std", - "sp-std/std", "sp-trie/std", ] diff --git a/cumulus/test/relay-sproof-builder/src/lib.rs b/cumulus/test/relay-sproof-builder/src/lib.rs index fbd2692a36b..d1016085c80 100644 --- a/cumulus/test/relay-sproof-builder/src/lib.rs +++ b/cumulus/test/relay-sproof-builder/src/lib.rs @@ -14,12 +14,14 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . +extern crate alloc; + +use alloc::collections::btree_map::BTreeMap; use cumulus_primitives_core::{ relay_chain, AbridgedHostConfiguration, AbridgedHrmpChannel, ParaId, }; use polkadot_primitives::UpgradeGoAhead; use sp_runtime::traits::HashingFor; -use sp_std::collections::btree_map::BTreeMap; use sp_trie::PrefixedMemoryDB; /// Builds a sproof (portmanteau of 'spoof' and 'proof') of the relay chain state. diff --git a/cumulus/test/runtime/Cargo.toml b/cumulus/test/runtime/Cargo.toml index d5582f2d2a2..54b83e2dfed 100644 --- a/cumulus/test/runtime/Cargo.toml +++ b/cumulus/test/runtime/Cargo.toml @@ -36,7 +36,6 @@ sp-offchain = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } sp-consensus-aura = { workspace = true } -sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } @@ -87,7 +86,6 @@ std = [ "sp-offchain/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", "sp-transaction-pool/std", "sp-version/std", "substrate-wasm-builder", diff --git a/cumulus/test/runtime/src/lib.rs b/cumulus/test/runtime/src/lib.rs index 97cb02ab779..274f16ab630 100644 --- a/cumulus/test/runtime/src/lib.rs +++ b/cumulus/test/runtime/src/lib.rs @@ -33,6 +33,10 @@ pub mod elastic_scaling { } mod test_pallet; + +extern crate alloc; + +use alloc::{vec, vec::Vec}; use frame_support::{derive_impl, traits::OnRuntimeUpgrade, PalletId}; use sp_api::{decl_runtime_apis, impl_runtime_apis}; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; @@ -44,7 +48,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, MultiSignature, }; -use sp_std::prelude::*; #[cfg(feature = "std")] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -454,7 +457,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } diff --git a/cumulus/test/runtime/src/test_pallet.rs b/cumulus/test/runtime/src/test_pallet.rs index 7f43f713fad..61195386ae7 100644 --- a/cumulus/test/runtime/src/test_pallet.rs +++ b/cumulus/test/runtime/src/test_pallet.rs @@ -42,7 +42,7 @@ pub mod pallet { #[pallet::weight(0)] pub fn set_custom_validation_head_data( _: OriginFor, - custom_header: sp_std::vec::Vec, + custom_header: alloc::vec::Vec, ) -> DispatchResult { cumulus_pallet_parachain_system::Pallet::::set_custom_validation_head_data( custom_header, @@ -79,7 +79,7 @@ pub mod pallet { #[pallet::genesis_config] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] diff --git a/cumulus/xcm/xcm-emulator/src/lib.rs b/cumulus/xcm/xcm-emulator/src/lib.rs index 1a3f3930cb3..8de3660c223 100644 --- a/cumulus/xcm/xcm-emulator/src/lib.rs +++ b/cumulus/xcm/xcm-emulator/src/lib.rs @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +extern crate alloc; + pub use codec::{Decode, Encode, EncodeLike, MaxEncodedLen}; pub use lazy_static::lazy_static; pub use log; @@ -24,6 +26,8 @@ pub use std::{ }; // Substrate +pub use alloc::collections::vec_deque::VecDeque; +pub use core::{cell::RefCell, fmt::Debug}; pub use cumulus_primitives_core::AggregateMessageOrigin as CumulusAggregateMessageOrigin; pub use frame_support::{ assert_ok, @@ -44,7 +48,6 @@ pub use sp_core::{parameter_types, sr25519, storage::Storage, Pair}; pub use sp_crypto_hashing::blake2_256; pub use sp_io::TestExternalities; pub use sp_runtime::BoundedSlice; -pub use sp_std::{cell::RefCell, collections::vec_deque::VecDeque, fmt::Debug}; pub use sp_tracing; // Cumulus diff --git a/docs/sdk/src/reference_docs/chain_spec_runtime/Cargo.toml b/docs/sdk/src/reference_docs/chain_spec_runtime/Cargo.toml index 9cf921a492a..02849571203 100644 --- a/docs/sdk/src/reference_docs/chain_spec_runtime/Cargo.toml +++ b/docs/sdk/src/reference_docs/chain_spec_runtime/Cargo.toml @@ -33,7 +33,6 @@ pallet-transaction-payment-rpc-runtime-api = { workspace = true } sp-genesis-builder = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-core = { workspace = true } -sp-std = { workspace = true } sp-keyring = { workspace = true } sp-application-crypto = { features = ["serde"], workspace = true } @@ -63,7 +62,6 @@ std = [ "sp-genesis-builder/std", "sp-keyring/std", "sp-runtime/std", - "sp-std/std", "serde/std", "serde_json/std", diff --git a/docs/sdk/src/reference_docs/chain_spec_runtime/src/lib.rs b/docs/sdk/src/reference_docs/chain_spec_runtime/src/lib.rs index 4606104fb96..e7effce1bd6 100644 --- a/docs/sdk/src/reference_docs/chain_spec_runtime/src/lib.rs +++ b/docs/sdk/src/reference_docs/chain_spec_runtime/src/lib.rs @@ -19,6 +19,8 @@ //! A minimal runtime that shows runtime genesis state. +extern crate alloc; + pub mod pallets; pub mod presets; pub mod runtime; diff --git a/docs/sdk/src/reference_docs/chain_spec_runtime/src/pallets.rs b/docs/sdk/src/reference_docs/chain_spec_runtime/src/pallets.rs index be4455aa219..2ff2d9539e2 100644 --- a/docs/sdk/src/reference_docs/chain_spec_runtime/src/pallets.rs +++ b/docs/sdk/src/reference_docs/chain_spec_runtime/src/pallets.rs @@ -17,6 +17,7 @@ //! Pallets for the chain-spec demo runtime. +use alloc::vec::Vec; use frame::prelude::*; #[docify::export] diff --git a/docs/sdk/src/reference_docs/chain_spec_runtime/src/presets.rs b/docs/sdk/src/reference_docs/chain_spec_runtime/src/presets.rs index c51947f6cc7..02c2d90f7c8 100644 --- a/docs/sdk/src/reference_docs/chain_spec_runtime/src/presets.rs +++ b/docs/sdk/src/reference_docs/chain_spec_runtime/src/presets.rs @@ -18,10 +18,10 @@ //! Presets for the chain-spec demo runtime. use crate::pallets::{FooEnum, SomeFooData1, SomeFooData2}; +use alloc::vec; use serde_json::{json, to_string, Value}; use sp_application_crypto::Ss58Codec; use sp_keyring::AccountKeyring; -use sp_std::vec; /// A demo preset with strings only. pub const PRESET_1: &str = "preset_1"; @@ -122,7 +122,7 @@ fn preset_invalid() -> Value { /// /// If no preset with given `id` exits `None` is returned. #[docify::export] -pub fn get_builtin_preset(id: &sp_genesis_builder::PresetId) -> Option> { +pub fn get_builtin_preset(id: &sp_genesis_builder::PresetId) -> Option> { let preset = match id.try_into() { Ok(PRESET_1) => preset_1(), Ok(PRESET_2) => preset_2(), diff --git a/docs/sdk/src/reference_docs/chain_spec_runtime/src/runtime.rs b/docs/sdk/src/reference_docs/chain_spec_runtime/src/runtime.rs index 6d9bc1260b1..c45f0126337 100644 --- a/docs/sdk/src/reference_docs/chain_spec_runtime/src/runtime.rs +++ b/docs/sdk/src/reference_docs/chain_spec_runtime/src/runtime.rs @@ -25,6 +25,7 @@ use crate::{ pallets::{pallet_bar, pallet_foo}, presets::*, }; +use alloc::{vec, vec::Vec}; use frame::{ deps::frame_support::{ genesis_builder_helper::{build_state, get_preset}, diff --git a/polkadot/core-primitives/Cargo.toml b/polkadot/core-primitives/Cargo.toml index 800434670f8..42ca2795373 100644 --- a/polkadot/core-primitives/Cargo.toml +++ b/polkadot/core-primitives/Cargo.toml @@ -11,7 +11,6 @@ workspace = true [dependencies] sp-core = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } scale-info = { features = ["derive"], workspace = true } codec = { features = ["derive"], workspace = true } @@ -23,5 +22,4 @@ std = [ "scale-info/std", "sp-core/std", "sp-runtime/std", - "sp-std/std", ] diff --git a/polkadot/core-primitives/src/lib.rs b/polkadot/core-primitives/src/lib.rs index 072c045a8c7..666636def46 100644 --- a/polkadot/core-primitives/src/lib.rs +++ b/polkadot/core-primitives/src/lib.rs @@ -20,6 +20,8 @@ //! //! These core Polkadot types are used by the relay chain and the Parachains. +extern crate alloc; + use codec::{Decode, Encode}; use scale_info::TypeInfo; use sp_runtime::{ @@ -81,8 +83,8 @@ impl std::fmt::Display for CandidateHash { } } -impl sp_std::fmt::Debug for CandidateHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Debug for CandidateHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!(f, "{:?}", self.0) } } @@ -119,7 +121,7 @@ pub type Remark = [u8; 32]; /// A message sent from the relay-chain down to a parachain. /// /// The size of the message is limited by the `config.max_downward_message_size` parameter. -pub type DownwardMessage = sp_std::vec::Vec; +pub type DownwardMessage = alloc::vec::Vec; /// A wrapped version of `DownwardMessage`. The difference is that it has attached the block number /// when the message was sent. @@ -139,7 +141,7 @@ pub struct InboundHrmpMessage { /// enacted. pub sent_at: BlockNumber, /// The message payload. - pub data: sp_std::vec::Vec, + pub data: alloc::vec::Vec, } /// An HRMP message seen from the perspective of a sender. @@ -148,7 +150,7 @@ pub struct OutboundHrmpMessage { /// The para that will get this message in its downward message queue. pub recipient: Id, /// The message payload. - pub data: sp_std::vec::Vec, + pub data: alloc::vec::Vec, } /// `V2` primitives. diff --git a/polkadot/parachain/Cargo.toml b/polkadot/parachain/Cargo.toml index 1491af0148e..9d0518fd46a 100644 --- a/polkadot/parachain/Cargo.toml +++ b/polkadot/parachain/Cargo.toml @@ -15,7 +15,6 @@ workspace = true # various unnecessary Substrate-specific endpoints. codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive", "serde"], workspace = true } -sp-std = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-core = { features = ["serde"], workspace = true } sp-weights = { workspace = true } @@ -37,7 +36,6 @@ std = [ "serde/std", "sp-core/std", "sp-runtime/std", - "sp-std/std", "sp-weights/std", ] runtime-benchmarks = ["sp-runtime/runtime-benchmarks"] diff --git a/polkadot/parachain/src/lib.rs b/polkadot/parachain/src/lib.rs index bd75296bf83..8941b7fbb91 100644 --- a/polkadot/parachain/src/lib.rs +++ b/polkadot/parachain/src/lib.rs @@ -51,3 +51,5 @@ mod wasm_api; #[cfg(all(not(feature = "std"), feature = "wasm-api"))] pub use wasm_api::*; + +extern crate alloc; diff --git a/polkadot/parachain/src/primitives.rs b/polkadot/parachain/src/primitives.rs index d92bbee8d28..c5757928c3f 100644 --- a/polkadot/parachain/src/primitives.rs +++ b/polkadot/parachain/src/primitives.rs @@ -17,7 +17,7 @@ //! Primitive types which are strictly necessary from a parachain-execution point //! of view. -use sp_std::vec::Vec; +use alloc::vec::Vec; use bounded_collections::{BoundedVec, ConstU32}; use codec::{CompactAs, Decode, Encode, MaxEncodedLen}; @@ -89,14 +89,14 @@ impl ValidationCode { #[derive(Clone, Copy, Encode, Decode, Hash, Eq, PartialEq, PartialOrd, Ord, TypeInfo)] pub struct ValidationCodeHash(Hash); -impl sp_std::fmt::Display for ValidationCodeHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Display for ValidationCodeHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { self.0.fmt(f) } } -impl sp_std::fmt::Debug for ValidationCodeHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Debug for ValidationCodeHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!(f, "{:?}", self.0) } } @@ -119,9 +119,9 @@ impl From<[u8; 32]> for ValidationCodeHash { } } -impl sp_std::fmt::LowerHex for ValidationCodeHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { - sp_std::fmt::LowerHex::fmt(&self.0, f) +impl core::fmt::LowerHex for ValidationCodeHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + core::fmt::LowerHex::fmt(&self.0, f) } } @@ -225,7 +225,7 @@ impl IsSystem for Id { } } -impl sp_std::ops::Add for Id { +impl core::ops::Add for Id { type Output = Self; fn add(self, other: u32) -> Self { @@ -233,7 +233,7 @@ impl sp_std::ops::Add for Id { } } -impl sp_std::ops::Sub for Id { +impl core::ops::Sub for Id { type Output = Self; fn sub(self, other: u32) -> Self { diff --git a/polkadot/parachain/src/wasm_api.rs b/polkadot/parachain/src/wasm_api.rs index f0c83266628..1c557c9ae50 100644 --- a/polkadot/parachain/src/wasm_api.rs +++ b/polkadot/parachain/src/wasm_api.rs @@ -22,7 +22,7 @@ /// function's entry point. #[cfg(not(feature = "std"))] pub unsafe fn load_params(params: *const u8, len: usize) -> crate::primitives::ValidationParams { - let mut slice = sp_std::slice::from_raw_parts(params, len); + let mut slice = core::slice::from_raw_parts(params, len); codec::Decode::decode(&mut slice).expect("Invalid input data") } diff --git a/polkadot/parachain/test-parachains/adder/Cargo.toml b/polkadot/parachain/test-parachains/adder/Cargo.toml index 1661112a7b3..7a150b75d5c 100644 --- a/polkadot/parachain/test-parachains/adder/Cargo.toml +++ b/polkadot/parachain/test-parachains/adder/Cargo.toml @@ -14,7 +14,6 @@ workspace = true [dependencies] polkadot-parachain-primitives = { features = ["wasm-api"], workspace = true } codec = { features = ["derive"], workspace = true } -sp-std = { workspace = true } tiny-keccak = { features = ["keccak"], workspace = true } dlmalloc = { features = ["global"], workspace = true } @@ -26,4 +25,4 @@ substrate-wasm-builder = { workspace = true, default-features = true } [features] default = ["std"] -std = ["codec/std", "polkadot-parachain-primitives/std", "sp-io/std", "sp-std/std"] +std = ["codec/std", "polkadot-parachain-primitives/std", "sp-io/std"] diff --git a/polkadot/parachain/test-parachains/adder/src/lib.rs b/polkadot/parachain/test-parachains/adder/src/lib.rs index 28914f02511..7e8d1bb1e13 100644 --- a/polkadot/parachain/test-parachains/adder/src/lib.rs +++ b/polkadot/parachain/test-parachains/adder/src/lib.rs @@ -18,6 +18,8 @@ #![no_std] +extern crate alloc; + use codec::{Decode, Encode}; use tiny_keccak::{Hasher as _, Keccak}; diff --git a/polkadot/parachain/test-parachains/adder/src/wasm_validation.rs b/polkadot/parachain/test-parachains/adder/src/wasm_validation.rs index 7dba7a964d3..9c3c77f7350 100644 --- a/polkadot/parachain/test-parachains/adder/src/wasm_validation.rs +++ b/polkadot/parachain/test-parachains/adder/src/wasm_validation.rs @@ -17,10 +17,10 @@ //! WASM validation for adder parachain. use crate::{BlockData, HeadData}; +use alloc::vec::Vec; use codec::{Decode, Encode}; use core::panic; use polkadot_parachain_primitives::primitives::{HeadData as GenericHeadData, ValidationResult}; -use sp_std::vec::Vec; #[no_mangle] pub extern "C" fn validate_block(params: *const u8, len: usize) -> u64 { @@ -37,10 +37,8 @@ pub extern "C" fn validate_block(params: *const u8, len: usize) -> u64 { polkadot_parachain_primitives::write_result(&ValidationResult { head_data: GenericHeadData(new_head.encode()), new_validation_code: None, - upward_messages: sp_std::vec::Vec::new().try_into().expect("empty vec fits into bounds"), - horizontal_messages: sp_std::vec::Vec::new() - .try_into() - .expect("empty vec fits into bounds"), + upward_messages: alloc::vec::Vec::new().try_into().expect("empty vec fits into bounds"), + horizontal_messages: alloc::vec::Vec::new().try_into().expect("empty vec fits into bounds"), processed_downward_messages: 0, hrmp_watermark: params.relay_parent_number, }) diff --git a/polkadot/parachain/test-parachains/undying/Cargo.toml b/polkadot/parachain/test-parachains/undying/Cargo.toml index 2466c6a0d69..4b2e12ebf43 100644 --- a/polkadot/parachain/test-parachains/undying/Cargo.toml +++ b/polkadot/parachain/test-parachains/undying/Cargo.toml @@ -14,7 +14,6 @@ workspace = true [dependencies] polkadot-parachain-primitives = { features = ["wasm-api"], workspace = true } codec = { features = ["derive"], workspace = true } -sp-std = { workspace = true } tiny-keccak = { features = ["keccak"], workspace = true } dlmalloc = { features = ["global"], workspace = true } log = { workspace = true } @@ -32,5 +31,4 @@ std = [ "log/std", "polkadot-parachain-primitives/std", "sp-io/std", - "sp-std/std", ] diff --git a/polkadot/parachain/test-parachains/undying/src/lib.rs b/polkadot/parachain/test-parachains/undying/src/lib.rs index dc056e64fa2..e4ec7e99346 100644 --- a/polkadot/parachain/test-parachains/undying/src/lib.rs +++ b/polkadot/parachain/test-parachains/undying/src/lib.rs @@ -18,8 +18,10 @@ #![no_std] +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode}; -use sp_std::vec::Vec; use tiny_keccak::{Hasher as _, Keccak}; #[cfg(not(feature = "std"))] diff --git a/polkadot/parachain/test-parachains/undying/src/wasm_validation.rs b/polkadot/parachain/test-parachains/undying/src/wasm_validation.rs index 23fac43a3c7..46b66aa518e 100644 --- a/polkadot/parachain/test-parachains/undying/src/wasm_validation.rs +++ b/polkadot/parachain/test-parachains/undying/src/wasm_validation.rs @@ -37,8 +37,8 @@ pub extern "C" fn validate_block(params: *const u8, len: usize) -> u64 { polkadot_parachain_primitives::write_result(&ValidationResult { head_data: GenericHeadData(new_head.encode()), new_validation_code: None, - upward_messages: sp_std::vec::Vec::new().try_into().expect("empty vec fits within bounds"), - horizontal_messages: sp_std::vec::Vec::new() + upward_messages: alloc::vec::Vec::new().try_into().expect("empty vec fits within bounds"), + horizontal_messages: alloc::vec::Vec::new() .try_into() .expect("empty vec fits within bounds"), processed_downward_messages: 0, diff --git a/polkadot/primitives/Cargo.toml b/polkadot/primitives/Cargo.toml index c0b510a8fe9..8f7ec314ecf 100644 --- a/polkadot/primitives/Cargo.toml +++ b/polkadot/primitives/Cargo.toml @@ -28,7 +28,6 @@ sp-consensus-slots = { features = ["serde"], workspace = true } sp-io = { workspace = true } sp-keystore = { optional = true, workspace = true } sp-staking = { features = ["serde"], workspace = true } -sp-std = { workspace = true } polkadot-core-primitives = { workspace = true } polkadot-parachain-primitives = { workspace = true } @@ -55,7 +54,6 @@ std = [ "sp-keystore?/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", ] runtime-benchmarks = [ "polkadot-parachain-primitives/runtime-benchmarks", diff --git a/polkadot/primitives/src/lib.rs b/polkadot/primitives/src/lib.rs index 061794ca06d..73736fd4a3d 100644 --- a/polkadot/primitives/src/lib.rs +++ b/polkadot/primitives/src/lib.rs @@ -31,6 +31,8 @@ pub mod vstaging; // unstable functions. pub mod runtime_api; +extern crate alloc; + // Current primitives not requiring versioning are exported here. // Primitives requiring versioning must not be exported and must be referred by an exact version. pub use v7::{ diff --git a/polkadot/primitives/src/runtime_api.rs b/polkadot/primitives/src/runtime_api.rs index 7bd92be35c1..b4816ad1507 100644 --- a/polkadot/primitives/src/runtime_api.rs +++ b/polkadot/primitives/src/runtime_api.rs @@ -121,12 +121,12 @@ use crate::{ SessionIndex, SessionInfo, ValidatorId, ValidatorIndex, ValidatorSignature, }; -use polkadot_core_primitives as pcp; -use polkadot_parachain_primitives::primitives as ppp; -use sp_std::{ +use alloc::{ collections::{btree_map::BTreeMap, vec_deque::VecDeque}, - prelude::*, + vec::Vec, }; +use polkadot_core_primitives as pcp; +use polkadot_parachain_primitives::primitives as ppp; sp_api::decl_runtime_apis! { /// The API for querying the state of parachains on-chain. diff --git a/polkadot/primitives/src/v7/async_backing.rs b/polkadot/primitives/src/v7/async_backing.rs index a82d843d28b..55d436e30de 100644 --- a/polkadot/primitives/src/v7/async_backing.rs +++ b/polkadot/primitives/src/v7/async_backing.rs @@ -18,6 +18,7 @@ use super::*; +use alloc::vec::Vec; use codec::{Decode, Encode}; use scale_info::TypeInfo; use sp_core::RuntimeDebug; diff --git a/polkadot/primitives/src/v7/executor_params.rs b/polkadot/primitives/src/v7/executor_params.rs index e58cf3e76cc..bfd42ec30bd 100644 --- a/polkadot/primitives/src/v7/executor_params.rs +++ b/polkadot/primitives/src/v7/executor_params.rs @@ -22,11 +22,12 @@ //! done in `polkadot-node-core-pvf`. use crate::{BlakeTwo256, HashT as _, PvfExecKind, PvfPrepKind}; +use alloc::{collections::btree_map::BTreeMap, vec, vec::Vec}; use codec::{Decode, Encode}; +use core::{ops::Deref, time::Duration}; use polkadot_core_primitives::Hash; use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; -use sp_std::{collections::btree_map::BTreeMap, ops::Deref, time::Duration, vec, vec::Vec}; /// Default maximum number of wasm values allowed for the stack during execution of a PVF. pub const DEFAULT_LOGICAL_STACK_MAX: u32 = 65536; @@ -134,21 +135,21 @@ impl ExecutorParamsHash { } } -impl sp_std::fmt::Display for ExecutorParamsHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Display for ExecutorParamsHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { self.0.fmt(f) } } -impl sp_std::fmt::Debug for ExecutorParamsHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Debug for ExecutorParamsHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!(f, "{:?}", self.0) } } -impl sp_std::fmt::LowerHex for ExecutorParamsHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { - sp_std::fmt::LowerHex::fmt(&self.0, f) +impl core::fmt::LowerHex for ExecutorParamsHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + core::fmt::LowerHex::fmt(&self.0, f) } } @@ -159,21 +160,21 @@ impl sp_std::fmt::LowerHex for ExecutorParamsHash { #[derive(Clone, Copy, Encode, Decode, Hash, Eq, PartialEq, PartialOrd, Ord, TypeInfo)] pub struct ExecutorParamsPrepHash(Hash); -impl sp_std::fmt::Display for ExecutorParamsPrepHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Display for ExecutorParamsPrepHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { self.0.fmt(f) } } -impl sp_std::fmt::Debug for ExecutorParamsPrepHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Debug for ExecutorParamsPrepHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!(f, "{:?}", self.0) } } -impl sp_std::fmt::LowerHex for ExecutorParamsPrepHash { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { - sp_std::fmt::LowerHex::fmt(&self.0, f) +impl core::fmt::LowerHex for ExecutorParamsPrepHash { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + core::fmt::LowerHex::fmt(&self.0, f) } } diff --git a/polkadot/primitives/src/v7/metrics.rs b/polkadot/primitives/src/v7/metrics.rs index 1a29471c545..1d66c9848a7 100644 --- a/polkadot/primitives/src/v7/metrics.rs +++ b/polkadot/primitives/src/v7/metrics.rs @@ -16,8 +16,8 @@ //! Runtime metric primitives. +use alloc::vec::Vec; use codec::{Decode, Encode}; -use sp_std::prelude::*; /// Runtime metric operations. #[derive(Encode, Decode)] @@ -42,7 +42,7 @@ pub struct RuntimeMetricUpdate { } fn vec_to_str<'a>(v: &'a Vec, default: &'static str) -> &'a str { - return sp_std::str::from_utf8(v).unwrap_or(default) + return alloc::str::from_utf8(v).unwrap_or(default) } impl RuntimeMetricLabels { @@ -99,7 +99,7 @@ pub trait AsStr { impl AsStr for RuntimeMetricLabel { fn as_str(&self) -> Option<&str> { - sp_std::str::from_utf8(&self.0).ok() + alloc::str::from_utf8(&self.0).ok() } } diff --git a/polkadot/primitives/src/v7/mod.rs b/polkadot/primitives/src/v7/mod.rs index 6b7985847a1..06b70465208 100644 --- a/polkadot/primitives/src/v7/mod.rs +++ b/polkadot/primitives/src/v7/mod.rs @@ -16,15 +16,17 @@ //! `V7` Primitives. +use alloc::{ + vec, + vec::{IntoIter, Vec}, +}; use bitvec::{field::BitField, slice::BitSlice, vec::BitVec}; use codec::{Decode, Encode}; -use scale_info::TypeInfo; -use sp_std::{ +use core::{ marker::PhantomData, - prelude::*, slice::{Iter, IterMut}, - vec::IntoIter, }; +use scale_info::TypeInfo; use sp_application_crypto::KeyTypeId; use sp_arithmetic::traits::{BaseArithmetic, Saturating}; @@ -172,10 +174,10 @@ pub type ValidatorSignature = validator_app::Signature; /// A declarations of storage keys where an external observer can find some interesting data. pub mod well_known_keys { use super::{HrmpChannelId, Id, WellKnownKey}; + use alloc::vec::Vec; use codec::Encode as _; use hex_literal::hex; use sp_io::hashing::twox_64; - use sp_std::prelude::*; // A note on generating these magic values below: // @@ -617,13 +619,13 @@ impl CommittedCandidateReceipt { } impl PartialOrd for CommittedCandidateReceipt { - fn partial_cmp(&self, other: &Self) -> Option { + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } } impl Ord for CommittedCandidateReceipt { - fn cmp(&self, other: &Self) -> sp_std::cmp::Ordering { + fn cmp(&self, other: &Self) -> core::cmp::Ordering { // TODO: compare signatures or something more sane // https://github.com/paritytech/polkadot/issues/222 self.descriptor() @@ -984,7 +986,7 @@ impl GroupRotationInfo { return GroupIndex(0) } - let cores = sp_std::cmp::min(cores, u32::MAX as usize); + let cores = core::cmp::min(cores, u32::MAX as usize); let blocks_since_start = self.now.saturating_sub(self.session_start_block); let rotations = blocks_since_start / self.group_rotation_frequency; @@ -1006,7 +1008,7 @@ impl GroupRotationInfo { return CoreIndex(0) } - let cores = sp_std::cmp::min(cores, u32::MAX as usize); + let cores = core::cmp::min(cores, u32::MAX as usize); let blocks_since_start = self.now.saturating_sub(self.session_start_block); let rotations = blocks_since_start / self.group_rotation_frequency; let rotations = rotations % cores as u32; @@ -1870,7 +1872,7 @@ pub fn effective_minimum_backing_votes( group_len: usize, configured_minimum_backing_votes: u32, ) -> usize { - sp_std::cmp::min(group_len, configured_minimum_backing_votes as usize) + core::cmp::min(group_len, configured_minimum_backing_votes as usize) } /// Information about validator sets of a session. @@ -1966,7 +1968,7 @@ impl PvfCheckStatement { pub struct WellKnownKey { /// The raw storage key. pub key: Vec, - _p: sp_std::marker::PhantomData, + _p: core::marker::PhantomData, } impl From> for WellKnownKey { diff --git a/polkadot/primitives/src/v7/signed.rs b/polkadot/primitives/src/v7/signed.rs index 62e4df23850..f819b379a30 100644 --- a/polkadot/primitives/src/v7/signed.rs +++ b/polkadot/primitives/src/v7/signed.rs @@ -17,11 +17,11 @@ use codec::{Decode, Encode}; use scale_info::TypeInfo; +use alloc::vec::Vec; #[cfg(feature = "std")] use sp_application_crypto::AppCrypto; #[cfg(feature = "std")] use sp_keystore::{Error as KeystoreError, KeystorePtr}; -use sp_std::prelude::Vec; use sp_core::RuntimeDebug; use sp_runtime::traits::AppVerify; @@ -57,7 +57,7 @@ pub struct UncheckedSigned { /// The signature by the validator of the signed payload. signature: ValidatorSignature, /// This ensures the real payload is tracked at the typesystem level. - real_payload: sp_std::marker::PhantomData, + real_payload: core::marker::PhantomData, } impl, RealPayload: Encode> Signed { @@ -163,7 +163,7 @@ impl, RealPayload: Encode> Signed, RealPayload: Encode> Signed, RealPayload: Encode> UncheckedSigned, RealPayload: Encode> UncheckedSigned(sp_std::marker::PhantomData); + pub struct VersionUncheckedMigrateToV1(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateToV1 { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { diff --git a/polkadot/runtime/common/src/assigned_slots/mod.rs b/polkadot/runtime/common/src/assigned_slots/mod.rs index d0a531b8b6c..dd39789e10c 100644 --- a/polkadot/runtime/common/src/assigned_slots/mod.rs +++ b/polkadot/runtime/common/src/assigned_slots/mod.rs @@ -30,6 +30,7 @@ use crate::{ slots::{self, Pallet as Slots, WeightInfo as SlotsWeightInfo}, traits::{LeaseError, Leaser, Registrar}, }; +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{pallet_prelude::*, traits::Currency}; use frame_system::pallet_prelude::*; @@ -41,7 +42,6 @@ use polkadot_runtime_parachains::{ }; use scale_info::TypeInfo; use sp_runtime::traits::{One, Saturating, Zero}; -use sp_std::prelude::*; const LOG_TARGET: &str = "runtime::assigned_slots"; diff --git a/polkadot/runtime/common/src/auctions.rs b/polkadot/runtime/common/src/auctions.rs index 19d82ae85d0..78f20d918ba 100644 --- a/polkadot/runtime/common/src/auctions.rs +++ b/polkadot/runtime/common/src/auctions.rs @@ -22,7 +22,9 @@ use crate::{ slot_range::SlotRange, traits::{AuctionStatus, Auctioneer, LeaseError, Leaser, Registrar}, }; +use alloc::{vec, vec::Vec}; use codec::Decode; +use core::mem::swap; use frame_support::{ dispatch::DispatchResult, ensure, @@ -33,7 +35,6 @@ use frame_system::pallet_prelude::BlockNumberFor; pub use pallet::*; use polkadot_primitives::Id as ParaId; use sp_runtime::traits::{CheckedSub, One, Saturating, Zero}; -use sp_std::{mem::swap, prelude::*}; type CurrencyOf = <::Leaser as Leaser>>::Currency; type BalanceOf = <<::Leaser as Leaser>>::Currency as Currency< diff --git a/polkadot/runtime/common/src/claims.rs b/polkadot/runtime/common/src/claims.rs index c12af215a04..162bf01c384 100644 --- a/polkadot/runtime/common/src/claims.rs +++ b/polkadot/runtime/common/src/claims.rs @@ -16,7 +16,11 @@ //! Pallet to process claims from Ethereum addresses. +#[cfg(not(feature = "std"))] +use alloc::{format, string::String}; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; +use core::fmt::Debug; use frame_support::{ ensure, traits::{Currency, Get, IsSubType, VestingSchedule}, @@ -35,9 +39,6 @@ use sp_runtime::{ }, RuntimeDebug, }; -#[cfg(not(feature = "std"))] -use sp_std::alloc::{format, string::String}; -use sp_std::{fmt::Debug, prelude::*}; type CurrencyOf = <::VestingSchedule as VestingSchedule< ::AccountId, @@ -150,8 +151,8 @@ impl PartialEq for EcdsaSignature { } } -impl sp_std::fmt::Debug for EcdsaSignature { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Debug for EcdsaSignature { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { write!(f, "EcdsaSignature({:?})", &self.0[..]) } } @@ -596,12 +597,12 @@ where ::RuntimeCall: IsSubType>, { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "PrevalidateAttests") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -612,7 +613,7 @@ where { /// Create new `SignedExtension` to check runtime version. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } diff --git a/polkadot/runtime/common/src/crowdloan/migration.rs b/polkadot/runtime/common/src/crowdloan/migration.rs index 3afd6b3fbc9..0ee3872a366 100644 --- a/polkadot/runtime/common/src/crowdloan/migration.rs +++ b/polkadot/runtime/common/src/crowdloan/migration.rs @@ -21,7 +21,7 @@ use frame_support::{ Twox64Concat, }; -pub struct MigrateToTrackInactiveV2(sp_std::marker::PhantomData); +pub struct MigrateToTrackInactiveV2(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToTrackInactiveV2 { fn on_runtime_upgrade() -> Weight { let on_chain_version = Pallet::::on_chain_storage_version(); diff --git a/polkadot/runtime/common/src/crowdloan/mod.rs b/polkadot/runtime/common/src/crowdloan/mod.rs index 61d406aa681..8cf288197e3 100644 --- a/polkadot/runtime/common/src/crowdloan/mod.rs +++ b/polkadot/runtime/common/src/crowdloan/mod.rs @@ -55,6 +55,7 @@ use crate::{ slot_range::SlotRange, traits::{Auctioneer, Registrar}, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; use frame_support::{ ensure, @@ -77,7 +78,6 @@ use sp_runtime::{ }, MultiSignature, MultiSigner, RuntimeDebug, }; -use sp_std::vec::Vec; type CurrencyOf = <::Auctioneer as Auctioneer>>::Currency; type LeasePeriodOf = <::Auctioneer as Auctioneer>>::LeasePeriod; @@ -832,16 +832,16 @@ impl Pallet { impl crate::traits::OnSwap for Pallet { fn on_swap(one: ParaId, other: ParaId) { - Funds::::mutate(one, |x| Funds::::mutate(other, |y| sp_std::mem::swap(x, y))) + Funds::::mutate(one, |x| Funds::::mutate(other, |y| core::mem::swap(x, y))) } } #[cfg(any(feature = "runtime-benchmarks", test))] mod crypto { + use alloc::vec::Vec; use sp_core::ed25519; use sp_io::crypto::{ed25519_generate, ed25519_sign}; use sp_runtime::{MultiSignature, MultiSigner}; - use sp_std::vec::Vec; pub fn create_ed25519_pubkey(seed: Vec) -> MultiSigner { ed25519_generate(0.into(), Some(seed)).into() @@ -1968,7 +1968,6 @@ mod benchmarking { use polkadot_runtime_parachains::paras; use sp_core::crypto::UncheckedFrom; use sp_runtime::traits::{Bounded, CheckedSub}; - use sp_std::prelude::*; use frame_benchmarking::{account, benchmarks, whitelisted_caller}; diff --git a/polkadot/runtime/common/src/identity_migrator.rs b/polkadot/runtime/common/src/identity_migrator.rs index 7d02e24b536..126c886280e 100644 --- a/polkadot/runtime/common/src/identity_migrator.rs +++ b/polkadot/runtime/common/src/identity_migrator.rs @@ -172,6 +172,7 @@ impl OnReapIdentity for () { #[benchmarks] mod benchmarks { use super::*; + use alloc::{boxed::Box, vec, vec::Vec}; use codec::Encode; use frame_support::traits::EnsureOrigin; use frame_system::RawOrigin; @@ -180,7 +181,6 @@ mod benchmarks { traits::{Bounded, Hash, StaticLookup}, Saturating, }; - use sp_std::{boxed::Box, vec::Vec, *}; const SEED: u32 = 0; diff --git a/polkadot/runtime/common/src/impls.rs b/polkadot/runtime/common/src/impls.rs index 709cc69cdbe..9d61cd01873 100644 --- a/polkadot/runtime/common/src/impls.rs +++ b/polkadot/runtime/common/src/impls.rs @@ -28,7 +28,7 @@ use sp_runtime::{traits::TryConvert, Perquintill, RuntimeDebug}; use xcm::VersionedLocation; /// Logic for the author to get a portion of fees. -pub struct ToAuthor(sp_std::marker::PhantomData); +pub struct ToAuthor(core::marker::PhantomData); impl OnUnbalanced>> for ToAuthor where R: pallet_balances::Config + pallet_authorship::Config, @@ -44,7 +44,7 @@ where } } -pub struct DealWithFees(sp_std::marker::PhantomData); +pub struct DealWithFees(core::marker::PhantomData); impl OnUnbalanced>> for DealWithFees where R: pallet_balances::Config + pallet_authorship::Config + pallet_treasury::Config, diff --git a/polkadot/runtime/common/src/integration_tests.rs b/polkadot/runtime/common/src/integration_tests.rs index 052fb0389db..7a689a517ea 100644 --- a/polkadot/runtime/common/src/integration_tests.rs +++ b/polkadot/runtime/common/src/integration_tests.rs @@ -24,6 +24,7 @@ use crate::{ slots, traits::{AuctionStatus, Auctioneer, Leaser, Registrar as RegistrarT}, }; +use alloc::sync::Arc; use codec::Encode; use frame_support::{ assert_noop, assert_ok, derive_impl, parameter_types, @@ -50,7 +51,6 @@ use sp_runtime::{ transaction_validity::TransactionPriority, AccountId32, BuildStorage, MultiSignature, }; -use sp_std::sync::Arc; type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlockU32; diff --git a/polkadot/runtime/common/src/lib.rs b/polkadot/runtime/common/src/lib.rs index 6e50384f68c..41e1cdbab80 100644 --- a/polkadot/runtime/common/src/lib.rs +++ b/polkadot/runtime/common/src/lib.rs @@ -41,6 +41,8 @@ mod integration_tests; #[cfg(test)] mod mock; +extern crate alloc; + use frame_support::{ parameter_types, traits::{ConstU32, Currency, OneSessionHandler}, @@ -169,7 +171,7 @@ static_assertions::assert_eq_size!(polkadot_primitives::Balance, u128); /// A placeholder since there is currently no provided session key handler for parachain validator /// keys. -pub struct ParachainSessionKeyPlaceholder(sp_std::marker::PhantomData); +pub struct ParachainSessionKeyPlaceholder(core::marker::PhantomData); impl sp_runtime::BoundToRuntimeAppPublic for ParachainSessionKeyPlaceholder { type Public = ValidatorId; } @@ -198,7 +200,7 @@ impl OneSessionHandler /// A placeholder since there is currently no provided session key handler for parachain validator /// keys. -pub struct AssignmentSessionKeyPlaceholder(sp_std::marker::PhantomData); +pub struct AssignmentSessionKeyPlaceholder(core::marker::PhantomData); impl sp_runtime::BoundToRuntimeAppPublic for AssignmentSessionKeyPlaceholder { type Public = AssignmentId; } diff --git a/polkadot/runtime/common/src/mock.rs b/polkadot/runtime/common/src/mock.rs index 6534110cc21..54170b07fa6 100644 --- a/polkadot/runtime/common/src/mock.rs +++ b/polkadot/runtime/common/src/mock.rs @@ -37,7 +37,7 @@ thread_local! { static MANAGERS: RefCell>> = RefCell::new(HashMap::new()); } -pub struct TestRegistrar(sp_std::marker::PhantomData); +pub struct TestRegistrar(core::marker::PhantomData); impl Registrar for TestRegistrar { type AccountId = T::AccountId; diff --git a/polkadot/runtime/common/src/paras_registrar/migration.rs b/polkadot/runtime/common/src/paras_registrar/migration.rs index 18bb6bbfb55..6b110d2ff5d 100644 --- a/polkadot/runtime/common/src/paras_registrar/migration.rs +++ b/polkadot/runtime/common/src/paras_registrar/migration.rs @@ -25,7 +25,7 @@ pub struct ParaInfoV1 { } pub struct VersionUncheckedMigrateToV1( - sp_std::marker::PhantomData<(T, UnlockParaIds)>, + core::marker::PhantomData<(T, UnlockParaIds)>, ); impl> UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateToV1 diff --git a/polkadot/runtime/common/src/paras_registrar/mod.rs b/polkadot/runtime/common/src/paras_registrar/mod.rs index 606883b7119..07f02e92656 100644 --- a/polkadot/runtime/common/src/paras_registrar/mod.rs +++ b/polkadot/runtime/common/src/paras_registrar/mod.rs @@ -19,6 +19,8 @@ pub mod migration; +use alloc::{vec, vec::Vec}; +use core::result; use frame_support::{ dispatch::DispatchResult, ensure, @@ -34,7 +36,6 @@ use polkadot_runtime_parachains::{ paras::{self, ParaGenesisArgs, UpgradeStrategy}, Origin, ParaLifecycle, }; -use sp_std::{prelude::*, result}; use crate::traits::{OnSwap, Registrar}; use codec::{Decode, Encode}; @@ -210,7 +211,7 @@ pub mod pallet { #[pallet::genesis_config] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, pub next_free_para_id: ParaId, } @@ -717,6 +718,7 @@ mod tests { use crate::{ mock::conclude_pvf_checking, paras_registrar, traits::Registrar as RegistrarTrait, }; + use alloc::collections::btree_map::BTreeMap; use frame_support::{ assert_noop, assert_ok, derive_impl, parameter_types, traits::{OnFinalize, OnInitialize}, @@ -733,7 +735,6 @@ mod tests { transaction_validity::TransactionPriority, BuildStorage, Perbill, }; - use sp_std::collections::btree_map::BTreeMap; type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlockU32; diff --git a/polkadot/runtime/common/src/paras_sudo_wrapper.rs b/polkadot/runtime/common/src/paras_sudo_wrapper.rs index 3ff8d4ac08e..af93c70b478 100644 --- a/polkadot/runtime/common/src/paras_sudo_wrapper.rs +++ b/polkadot/runtime/common/src/paras_sudo_wrapper.rs @@ -16,6 +16,7 @@ //! A simple wrapper allowing `Sudo` to call into `paras` routines. +use alloc::boxed::Box; use codec::Encode; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; @@ -26,7 +27,6 @@ use polkadot_runtime_parachains::{ paras::{self, AssignCoretime, ParaGenesisArgs}, ParaLifecycle, }; -use sp_std::boxed::Box; #[frame_support::pallet] pub mod pallet { diff --git a/polkadot/runtime/common/src/purchase.rs b/polkadot/runtime/common/src/purchase.rs index eb480e4efe1..d650548b8ac 100644 --- a/polkadot/runtime/common/src/purchase.rs +++ b/polkadot/runtime/common/src/purchase.rs @@ -16,6 +16,7 @@ //! Pallet to process purchase of DOTs. +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::{ pallet_prelude::*, @@ -29,7 +30,6 @@ use sp_runtime::{ traits::{CheckedAdd, Saturating, Verify, Zero}, AnySignature, DispatchError, DispatchResult, Permill, RuntimeDebug, }; -use sp_std::prelude::*; type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; diff --git a/polkadot/runtime/common/src/slots/mod.rs b/polkadot/runtime/common/src/slots/mod.rs index 747b7b5ca63..333f14c6608 100644 --- a/polkadot/runtime/common/src/slots/mod.rs +++ b/polkadot/runtime/common/src/slots/mod.rs @@ -25,6 +25,7 @@ pub mod migration; use crate::traits::{LeaseError, Leaser, Registrar}; +use alloc::{vec, vec::Vec}; use frame_support::{ pallet_prelude::*, traits::{Currency, ReservableCurrency}, @@ -34,7 +35,6 @@ use frame_system::pallet_prelude::*; pub use pallet::*; use polkadot_primitives::Id as ParaId; use sp_runtime::traits::{CheckedConversion, CheckedSub, Saturating, Zero}; -use sp_std::prelude::*; type BalanceOf = <::Currency as Currency<::AccountId>>::Balance; @@ -309,7 +309,7 @@ impl Pallet { // Useful when trying to clean up a parachain leases, as this would tell // you all the balances you need to unreserve. fn all_deposits_held(para: ParaId) -> Vec<(T::AccountId, BalanceOf)> { - let mut tracker = sp_std::collections::btree_map::BTreeMap::new(); + let mut tracker = alloc::collections::btree_map::BTreeMap::new(); Leases::::get(para).into_iter().for_each(|lease| match lease { Some((who, amount)) => match tracker.get(&who) { Some(prev_amount) => @@ -329,7 +329,7 @@ impl Pallet { impl crate::traits::OnSwap for Pallet { fn on_swap(one: ParaId, other: ParaId) { - Leases::::mutate(one, |x| Leases::::mutate(other, |y| sp_std::mem::swap(x, y))) + Leases::::mutate(one, |x| Leases::::mutate(other, |y| core::mem::swap(x, y))) } } diff --git a/polkadot/runtime/common/src/traits.rs b/polkadot/runtime/common/src/traits.rs index eadeac74fcd..6e49abcee98 100644 --- a/polkadot/runtime/common/src/traits.rs +++ b/polkadot/runtime/common/src/traits.rs @@ -16,12 +16,12 @@ //! Traits used across pallets for Polkadot. +use alloc::vec::*; use frame_support::{ dispatch::DispatchResult, traits::{Currency, ReservableCurrency}, }; use polkadot_primitives::{HeadData, Id as ParaId, ValidationCode}; -use sp_std::vec::*; /// Parachain registration API. pub trait Registrar { diff --git a/polkadot/runtime/common/src/try_runtime.rs b/polkadot/runtime/common/src/try_runtime.rs index 81aa34317bf..b22e1703292 100644 --- a/polkadot/runtime/common/src/try_runtime.rs +++ b/polkadot/runtime/common/src/try_runtime.rs @@ -16,13 +16,13 @@ //! Common try-runtime only tests for runtimes. +use alloc::{collections::btree_set::BTreeSet, vec::Vec}; use frame_support::{ dispatch::RawOrigin, traits::{Get, Hooks}, }; use pallet_fast_unstake::{Pallet as FastUnstake, *}; use pallet_staking::*; -use sp_std::{collections::btree_set::BTreeSet, prelude::*}; /// register all inactive nominators for fast-unstake, and progress until they have all been /// processed. diff --git a/polkadot/runtime/common/src/xcm_sender.rs b/polkadot/runtime/common/src/xcm_sender.rs index 5858a0ac3ca..dace785a535 100644 --- a/polkadot/runtime/common/src/xcm_sender.rs +++ b/polkadot/runtime/common/src/xcm_sender.rs @@ -16,7 +16,9 @@ //! XCM sender for relay chain. +use alloc::vec::Vec; use codec::{Decode, Encode}; +use core::marker::PhantomData; use frame_support::traits::Get; use frame_system::pallet_prelude::BlockNumberFor; use polkadot_primitives::Id as ParaId; @@ -25,7 +27,6 @@ use polkadot_runtime_parachains::{ dmp, FeeTracker, }; use sp_runtime::FixedPointNumber; -use sp_std::{marker::PhantomData, prelude::*}; use xcm::prelude::*; use xcm_builder::InspectMessageQueues; use SendError::*; @@ -56,7 +57,7 @@ impl PriceForMessageDelivery for NoPriceForMessageDelivery { } /// Implementation of [`PriceForMessageDelivery`] which returns a fixed price. -pub struct ConstantPrice(sp_std::marker::PhantomData); +pub struct ConstantPrice(core::marker::PhantomData); impl> PriceForMessageDelivery for ConstantPrice { type Id = (); @@ -79,7 +80,7 @@ impl> PriceForMessageDelivery for ConstantPrice { /// - `B`: The base fee to pay for message delivery. /// - `M`: The fee to pay for each and every byte of the message after encoding it. /// - `F`: A fee factor multiplier. It can be understood as the exponent term in the formula. -pub struct ExponentialPrice(sp_std::marker::PhantomData<(A, B, M, F)>); +pub struct ExponentialPrice(core::marker::PhantomData<(A, B, M, F)>); impl, B: Get, M: Get, F: FeeTracker> PriceForMessageDelivery for ExponentialPrice { @@ -169,7 +170,7 @@ pub struct ToParachainDeliveryHelper< ParaId, ToParaIdHelper, >( - sp_std::marker::PhantomData<( + core::marker::PhantomData<( XcmConfig, ExistentialDeposit, PriceForDelivery, @@ -223,7 +224,7 @@ impl< } // overestimate delivery fee - let overestimated_xcm = vec![ClearOrigin; 128].into(); + let overestimated_xcm = alloc::vec![ClearOrigin; 128].into(); let overestimated_fees = PriceForDelivery::price_for_delivery(Parachain::get(), &overestimated_xcm); @@ -258,6 +259,7 @@ impl EnsureForParachain for () { mod tests { use super::*; use crate::integration_tests::new_test_ext; + use alloc::vec; use frame_support::{assert_ok, parameter_types}; use polkadot_runtime_parachains::FeeTracker; use sp_runtime::FixedU128; diff --git a/polkadot/runtime/metrics/Cargo.toml b/polkadot/runtime/metrics/Cargo.toml index 54c685effc1..3709e1eb697 100644 --- a/polkadot/runtime/metrics/Cargo.toml +++ b/polkadot/runtime/metrics/Cargo.toml @@ -10,7 +10,6 @@ description = "Runtime metric interface for the Polkadot node" workspace = true [dependencies] -sp-std = { workspace = true } sp-tracing = { workspace = true } codec = { workspace = true } polkadot-primitives = { workspace = true } @@ -25,7 +24,6 @@ std = [ "codec/std", "frame-benchmarking?/std", "polkadot-primitives/std", - "sp-std/std", "sp-tracing/std", ] runtime-metrics = ["frame-benchmarking", "sp-tracing/with-tracing"] diff --git a/polkadot/runtime/metrics/src/lib.rs b/polkadot/runtime/metrics/src/lib.rs index 6164d71f112..479ec7a69c3 100644 --- a/polkadot/runtime/metrics/src/lib.rs +++ b/polkadot/runtime/metrics/src/lib.rs @@ -22,6 +22,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(feature = "runtime-metrics")] mod with_runtime_metrics; #[cfg(feature = "runtime-metrics")] diff --git a/polkadot/runtime/metrics/src/with_runtime_metrics.rs b/polkadot/runtime/metrics/src/with_runtime_metrics.rs index 1339df9ff68..979d5eda9af 100644 --- a/polkadot/runtime/metrics/src/with_runtime_metrics.rs +++ b/polkadot/runtime/metrics/src/with_runtime_metrics.rs @@ -22,14 +22,13 @@ const TRACING_TARGET: &'static str = "metrics"; +use alloc::vec::Vec; use codec::Encode; use polkadot_primitives::{ metric_definitions::{CounterDefinition, CounterVecDefinition, HistogramDefinition}, RuntimeMetricLabelValues, RuntimeMetricOp, RuntimeMetricUpdate, }; -use sp_std::prelude::*; - /// Holds a set of counters that have different values for their labels, /// like Prometheus `CounterVec`. pub struct CounterVec { diff --git a/polkadot/runtime/parachains/Cargo.toml b/polkadot/runtime/parachains/Cargo.toml index 82ba22a70f3..7afdf49fe55 100644 --- a/polkadot/runtime/parachains/Cargo.toml +++ b/polkadot/runtime/parachains/Cargo.toml @@ -21,7 +21,6 @@ bitflags = { workspace = true } sp-api = { workspace = true } sp-inherents = { workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-session = { workspace = true } @@ -110,7 +109,6 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", - "sp-std/std", "xcm-executor/std", "xcm/std", ] diff --git a/polkadot/runtime/parachains/src/assigner_coretime/mod.rs b/polkadot/runtime/parachains/src/assigner_coretime/mod.rs index e68ac2664b8..9ed007919b8 100644 --- a/polkadot/runtime/parachains/src/assigner_coretime/mod.rs +++ b/polkadot/runtime/parachains/src/assigner_coretime/mod.rs @@ -34,14 +34,13 @@ use crate::{ ParaId, }; +use alloc::{vec, vec::Vec}; use frame_support::{defensive, pallet_prelude::*}; use frame_system::pallet_prelude::*; use pallet_broker::CoreAssignment; use polkadot_primitives::CoreIndex; use sp_runtime::traits::{One, Saturating}; -use sp_std::prelude::*; - pub use pallet::*; /// Fraction expressed as a nominator with an assumed denominator of 57,600. diff --git a/polkadot/runtime/parachains/src/assigner_coretime/tests.rs b/polkadot/runtime/parachains/src/assigner_coretime/tests.rs index bab09eda52c..9b0cbcb2d7d 100644 --- a/polkadot/runtime/parachains/src/assigner_coretime/tests.rs +++ b/polkadot/runtime/parachains/src/assigner_coretime/tests.rs @@ -26,10 +26,10 @@ use crate::{ paras::{ParaGenesisArgs, ParaKind}, scheduler::common::Assignment, }; +use alloc::collections::btree_map::BTreeMap; use frame_support::{assert_noop, assert_ok, pallet_prelude::*, traits::Currency}; use pallet_broker::TaskId; use polkadot_primitives::{BlockNumber, Id as ParaId, SessionIndex, ValidationCode}; -use sp_std::collections::btree_map::BTreeMap; fn schedule_blank_para(id: ParaId, parakind: ParaKind) { let validation_code: ValidationCode = vec![1, 2, 3].into(); diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/benchmarking.rs b/polkadot/runtime/parachains/src/assigner_on_demand/benchmarking.rs index ba6951a1469..b0ebfe77a96 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/benchmarking.rs +++ b/polkadot/runtime/parachains/src/assigner_on_demand/benchmarking.rs @@ -25,6 +25,7 @@ use crate::{ shared::Pallet as ParasShared, }; +use alloc::vec; use frame_benchmarking::v2::*; use frame_system::RawOrigin; use sp_runtime::traits::Bounded; diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs b/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs index 314be11adbe..03f63d7333b 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs +++ b/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs @@ -23,7 +23,7 @@ use frame_support::{ mod v0 { use super::*; - use sp_std::collections::vec_deque::VecDeque; + use alloc::collections::vec_deque::VecDeque; #[derive(Encode, Decode, TypeInfo, Debug, PartialEq, Clone)] pub(super) struct EnqueuedOrder { @@ -50,7 +50,7 @@ mod v1 { use crate::assigner_on_demand::LOG_TARGET; /// Migration to V1 - pub struct UncheckedMigrateToV1(sp_std::marker::PhantomData); + pub struct UncheckedMigrateToV1(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for UncheckedMigrateToV1 { fn on_runtime_upgrade() -> Weight { let mut weight: Weight = Weight::zero(); @@ -88,7 +88,7 @@ mod v1 { } #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { let n: u32 = v0::OnDemandQueue::::get().len() as u32; log::info!( @@ -100,7 +100,7 @@ mod v1 { } #[cfg(feature = "try-runtime")] - fn post_upgrade(state: Vec) -> Result<(), sp_runtime::TryRuntimeError> { + fn post_upgrade(state: alloc::vec::Vec) -> Result<(), sp_runtime::TryRuntimeError> { log::info!(target: LOG_TARGET, "Running post_upgrade()"); ensure!( diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs b/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs index 03f05842bca..f045e957a69 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs +++ b/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs @@ -61,7 +61,6 @@ use sp_runtime::{ traits::{AccountIdConversion, One, SaturatedConversion}, FixedPointNumber, FixedPointOperand, FixedU128, Perbill, Saturating, }; -use sp_std::prelude::*; use types::{ BalanceOf, CoreAffinityCount, EnqueuedOrder, QueuePushDirection, QueueStatusType, SpotTrafficCalculationErr, diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs b/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs index a6074b305b4..0bad4346cfd 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs +++ b/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs @@ -30,16 +30,14 @@ use crate::{ }, paras::{ParaGenesisArgs, ParaKind}, }; +use alloc::collections::btree_map::BTreeMap; +use core::cmp::{Ord, Ordering}; use frame_support::{assert_noop, assert_ok}; use pallet_balances::Error as BalancesError; use polkadot_primitives::{ BlockNumber, SessionIndex, ValidationCode, ON_DEMAND_MAX_QUEUE_MAX_SIZE, }; use sp_runtime::traits::BadOrigin; -use sp_std::{ - cmp::{Ord, Ordering}, - collections::btree_map::BTreeMap, -}; fn schedule_blank_para(id: ParaId, parakind: ParaKind) { let validation_code: ValidationCode = vec![1, 2, 3].into(); diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/types.rs b/polkadot/runtime/parachains/src/assigner_on_demand/types.rs index 51d586a77a1..96367b971fe 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/types.rs +++ b/polkadot/runtime/parachains/src/assigner_on_demand/types.rs @@ -18,16 +18,13 @@ use super::{alloc, pallet::Config}; use alloc::collections::BinaryHeap; +use core::cmp::{Ord, Ordering, PartialOrd}; use frame_support::{ pallet_prelude::{Decode, Encode, RuntimeDebug, TypeInfo}, traits::Currency, }; use polkadot_primitives::{CoreIndex, Id as ParaId, ON_DEMAND_MAX_QUEUE_MAX_SIZE}; use sp_runtime::FixedU128; -use sp_std::{ - cmp::{Ord, Ordering, PartialOrd}, - prelude::*, -}; /// Shorthand for the Balance type the runtime is using. pub type BalanceOf = diff --git a/polkadot/runtime/parachains/src/assigner_parachains/tests.rs b/polkadot/runtime/parachains/src/assigner_parachains/tests.rs index 14cb1a89786..817e43a7138 100644 --- a/polkadot/runtime/parachains/src/assigner_parachains/tests.rs +++ b/polkadot/runtime/parachains/src/assigner_parachains/tests.rs @@ -23,9 +23,9 @@ use crate::{ }, paras::{ParaGenesisArgs, ParaKind}, }; +use alloc::collections::btree_map::BTreeMap; use frame_support::{assert_ok, pallet_prelude::*}; use polkadot_primitives::{BlockNumber, Id as ParaId, SessionIndex, ValidationCode}; -use sp_std::collections::btree_map::BTreeMap; fn schedule_blank_para(id: ParaId, parakind: ParaKind) { let validation_code: ValidationCode = vec![1, 2, 3].into(); diff --git a/polkadot/runtime/parachains/src/builder.rs b/polkadot/runtime/parachains/src/builder.rs index c046526ba37..ec07cca2107 100644 --- a/polkadot/runtime/parachains/src/builder.rs +++ b/polkadot/runtime/parachains/src/builder.rs @@ -21,6 +21,11 @@ use crate::{ scheduler::{self, common::AssignmentProvider, CoreOccupied, ParasEntry}, session_info, shared, }; +use alloc::{ + collections::{btree_map::BTreeMap, btree_set::BTreeSet, vec_deque::VecDeque}, + vec, + vec::Vec, +}; use bitvec::{order::Lsb0 as BitOrderLsb0, vec::BitVec}; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; @@ -39,11 +44,6 @@ use sp_runtime::{ traits::{Header as HeaderT, One, TrailingZeroInput, Zero}, RuntimeAppPublic, }; -use sp_std::{ - collections::{btree_map::BTreeMap, btree_set::BTreeSet, vec_deque::VecDeque}, - prelude::Vec, - vec, -}; fn mock_validation_code() -> ValidationCode { ValidationCode(vec![1, 2, 3]) @@ -112,7 +112,7 @@ pub(crate) struct BenchBuilder { fill_claimqueue: bool, /// Cores which should not be available when being populated with pending candidates. unavailable_cores: Vec, - _phantom: sp_std::marker::PhantomData, + _phantom: core::marker::PhantomData, } /// Paras inherent `enter` benchmark scenario. @@ -143,7 +143,7 @@ impl BenchBuilder { code_upgrade: None, fill_claimqueue: true, unavailable_cores: vec![], - _phantom: sp_std::marker::PhantomData::, + _phantom: core::marker::PhantomData::, } } diff --git a/polkadot/runtime/parachains/src/configuration.rs b/polkadot/runtime/parachains/src/configuration.rs index bffeab4a0d2..d09962ef2b4 100644 --- a/polkadot/runtime/parachains/src/configuration.rs +++ b/polkadot/runtime/parachains/src/configuration.rs @@ -19,6 +19,7 @@ //! Configuration can change only at session boundaries and is buffered until then. use crate::{inclusion::MAX_UPWARD_MESSAGE_SIZE_BOUND, shared}; +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::{pallet_prelude::*, DefaultNoBound}; use frame_system::pallet_prelude::*; @@ -31,7 +32,6 @@ use polkadot_primitives::{ MAX_POV_SIZE, ON_DEMAND_MAX_QUEUE_MAX_SIZE, }; use sp_runtime::{traits::Zero, Perbill, Percent}; -use sp_std::prelude::*; #[cfg(test)] mod tests; @@ -345,7 +345,7 @@ pub enum InconsistentError { impl HostConfiguration where - BlockNumber: Zero + PartialOrd + sp_std::fmt::Debug + Clone + From, + BlockNumber: Zero + PartialOrd + core::fmt::Debug + Clone + From, { /// Checks that this instance is consistent with the requirements on each individual member. /// @@ -1469,7 +1469,7 @@ impl Pallet { /// The implementation of `Get<(u32, u32)>` which reads `ActiveConfig` and returns `P` percent of /// `hrmp_channel_max_message_size` / `hrmp_channel_max_capacity`. -pub struct ActiveConfigHrmpChannelSizeAndCapacityRatio(sp_std::marker::PhantomData<(T, P)>); +pub struct ActiveConfigHrmpChannelSizeAndCapacityRatio(core::marker::PhantomData<(T, P)>); impl> Get<(u32, u32)> for ActiveConfigHrmpChannelSizeAndCapacityRatio { diff --git a/polkadot/runtime/parachains/src/configuration/migration/v10.rs b/polkadot/runtime/parachains/src/configuration/migration/v10.rs index c53f58faaf0..9375af88306 100644 --- a/polkadot/runtime/parachains/src/configuration/migration/v10.rs +++ b/polkadot/runtime/parachains/src/configuration/migration/v10.rs @@ -17,6 +17,7 @@ //! A module that is responsible for migration of storage. use crate::configuration::{Config, Pallet}; +use alloc::vec::Vec; use frame_support::{ pallet_prelude::*, traits::{Defensive, UncheckedOnRuntimeUpgrade}, @@ -28,7 +29,6 @@ use polkadot_primitives::{ LEGACY_MIN_BACKING_VOTES, ON_DEMAND_DEFAULT_QUEUE_MAX_SIZE, }; use sp_runtime::Perbill; -use sp_std::vec::Vec; use super::v9::V9HostConfiguration; // All configuration of the runtime with respect to paras. @@ -164,7 +164,7 @@ mod v10 { >; } -pub struct VersionUncheckedMigrateToV10(sp_std::marker::PhantomData); +pub struct VersionUncheckedMigrateToV10(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateToV10 { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { diff --git a/polkadot/runtime/parachains/src/configuration/migration/v11.rs b/polkadot/runtime/parachains/src/configuration/migration/v11.rs index 4d1bfc26196..4dce48fe52b 100644 --- a/polkadot/runtime/parachains/src/configuration/migration/v11.rs +++ b/polkadot/runtime/parachains/src/configuration/migration/v11.rs @@ -17,6 +17,7 @@ //! A module that is responsible for migration of storage. use crate::configuration::{self, Config, Pallet}; +use alloc::vec::Vec; use frame_support::{ migrations::VersionedMigration, pallet_prelude::*, @@ -28,7 +29,6 @@ use polkadot_primitives::{ ApprovalVotingParams, AsyncBackingParams, ExecutorParams, NodeFeatures, SessionIndex, LEGACY_MIN_BACKING_VOTES, ON_DEMAND_DEFAULT_QUEUE_MAX_SIZE, }; -use sp_std::vec::Vec; use polkadot_core_primitives::Balance; use sp_arithmetic::Perbill; @@ -177,7 +177,7 @@ pub type MigrateToV11 = VersionedMigration< ::DbWeight, >; -pub struct UncheckedMigrateToV11(sp_std::marker::PhantomData); +pub struct UncheckedMigrateToV11(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for UncheckedMigrateToV11 { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { diff --git a/polkadot/runtime/parachains/src/configuration/migration/v12.rs b/polkadot/runtime/parachains/src/configuration/migration/v12.rs index 126597ed845..6b77655687f 100644 --- a/polkadot/runtime/parachains/src/configuration/migration/v12.rs +++ b/polkadot/runtime/parachains/src/configuration/migration/v12.rs @@ -17,6 +17,7 @@ //! A module that is responsible for migration of storage. use crate::configuration::{self, migration::v11::V11HostConfiguration, Config, Pallet}; +use alloc::vec::Vec; use frame_support::{ migrations::VersionedMigration, pallet_prelude::*, @@ -26,7 +27,6 @@ use frame_system::pallet_prelude::BlockNumberFor; use polkadot_primitives::vstaging::SchedulerParams; use sp_core::Get; use sp_staking::SessionIndex; -use sp_std::vec::Vec; type V12HostConfiguration = configuration::HostConfiguration; @@ -68,7 +68,7 @@ pub type MigrateToV12 = VersionedMigration< ::DbWeight, >; -pub struct UncheckedMigrateToV12(sp_std::marker::PhantomData); +pub struct UncheckedMigrateToV12(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for UncheckedMigrateToV12 { #[cfg(feature = "try-runtime")] diff --git a/polkadot/runtime/parachains/src/configuration/migration/v6.rs b/polkadot/runtime/parachains/src/configuration/migration/v6.rs index bec41d3ea0d..468bf78692a 100644 --- a/polkadot/runtime/parachains/src/configuration/migration/v6.rs +++ b/polkadot/runtime/parachains/src/configuration/migration/v6.rs @@ -17,13 +17,11 @@ //! Contains the V6 storage definition of the host configuration. use crate::configuration::{Config, Pallet}; +use alloc::vec::Vec; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::BlockNumberFor; -use sp_std::vec::Vec; use polkadot_primitives::{AsyncBackingParams, Balance, ExecutorParams, SessionIndex}; -#[cfg(feature = "try-runtime")] -use sp_std::prelude::*; #[derive(codec::Encode, codec::Decode, Debug, Clone)] pub struct V6HostConfiguration { diff --git a/polkadot/runtime/parachains/src/configuration/migration/v7.rs b/polkadot/runtime/parachains/src/configuration/migration/v7.rs index 8fe4087cf9b..9acd28d0f76 100644 --- a/polkadot/runtime/parachains/src/configuration/migration/v7.rs +++ b/polkadot/runtime/parachains/src/configuration/migration/v7.rs @@ -17,6 +17,7 @@ //! A module that is responsible for migration of storage. use crate::configuration::{self, Config, Pallet}; +use alloc::vec::Vec; use frame_support::{ pallet_prelude::*, traits::{Defensive, StorageVersion}, @@ -24,7 +25,6 @@ use frame_support::{ }; use frame_system::pallet_prelude::BlockNumberFor; use polkadot_primitives::{AsyncBackingParams, Balance, ExecutorParams, SessionIndex}; -use sp_std::vec::Vec; use frame_support::traits::OnRuntimeUpgrade; @@ -154,7 +154,7 @@ mod v7 { >; } -pub struct MigrateToV7(sp_std::marker::PhantomData); +pub struct MigrateToV7(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV7 { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { diff --git a/polkadot/runtime/parachains/src/configuration/migration/v8.rs b/polkadot/runtime/parachains/src/configuration/migration/v8.rs index 0aa7f550b10..81ced74bebb 100644 --- a/polkadot/runtime/parachains/src/configuration/migration/v8.rs +++ b/polkadot/runtime/parachains/src/configuration/migration/v8.rs @@ -17,6 +17,7 @@ //! A module that is responsible for migration of storage. use crate::configuration::{self, Config, Pallet}; +use alloc::vec::Vec; use frame_support::{ pallet_prelude::*, traits::{Defensive, StorageVersion}, @@ -27,7 +28,6 @@ use polkadot_primitives::{ AsyncBackingParams, Balance, ExecutorParams, SessionIndex, ON_DEMAND_DEFAULT_QUEUE_MAX_SIZE, }; use sp_runtime::Perbill; -use sp_std::vec::Vec; use frame_support::traits::OnRuntimeUpgrade; @@ -161,7 +161,7 @@ mod v8 { >; } -pub struct MigrateToV8(sp_std::marker::PhantomData); +pub struct MigrateToV8(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV8 { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { diff --git a/polkadot/runtime/parachains/src/configuration/migration/v9.rs b/polkadot/runtime/parachains/src/configuration/migration/v9.rs index 6afdd3cec29..dff5fdb17a6 100644 --- a/polkadot/runtime/parachains/src/configuration/migration/v9.rs +++ b/polkadot/runtime/parachains/src/configuration/migration/v9.rs @@ -17,6 +17,7 @@ //! A module that is responsible for migration of storage. use crate::configuration::{self, Config, Pallet}; +use alloc::vec::Vec; use frame_support::{ pallet_prelude::*, traits::{Defensive, StorageVersion}, @@ -28,7 +29,6 @@ use polkadot_primitives::{ ON_DEMAND_DEFAULT_QUEUE_MAX_SIZE, }; use sp_runtime::Perbill; -use sp_std::vec::Vec; use frame_support::traits::OnRuntimeUpgrade; @@ -164,7 +164,7 @@ mod v9 { >; } -pub struct MigrateToV9(sp_std::marker::PhantomData); +pub struct MigrateToV9(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV9 { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { diff --git a/polkadot/runtime/parachains/src/coretime/migration.rs b/polkadot/runtime/parachains/src/coretime/migration.rs index 3f82472da8a..4e750886755 100644 --- a/polkadot/runtime/parachains/src/coretime/migration.rs +++ b/polkadot/runtime/parachains/src/coretime/migration.rs @@ -26,10 +26,12 @@ mod v_coretime { coretime::{mk_coretime_call, Config, PartsOf57600, WeightInfo}, paras, }; + use alloc::{vec, vec::Vec}; #[cfg(feature = "try-runtime")] use codec::Decode; #[cfg(feature = "try-runtime")] use codec::Encode; + use core::{iter, result}; #[cfg(feature = "try-runtime")] use frame_support::ensure; use frame_support::{ @@ -43,9 +45,6 @@ mod v_coretime { use sp_arithmetic::traits::SaturatedConversion; use sp_core::Get; use sp_runtime::BoundedVec; - #[cfg(feature = "try-runtime")] - use sp_std::vec::Vec; - use sp_std::{iter, prelude::*, result}; use xcm::prelude::{send_xcm, Instruction, Junction, Location, SendError, WeightLimit, Xcm}; /// Return information about a legacy lease of a parachain. @@ -59,7 +58,7 @@ mod v_coretime { /// This assumes that the `Coretime` and the `AssignerCoretime` pallets are added at the same /// time to a runtime. pub struct MigrateToCoretime( - sp_std::marker::PhantomData<(T, SendXcm, LegacyLease)>, + core::marker::PhantomData<(T, SendXcm, LegacyLease)>, ); impl>> diff --git a/polkadot/runtime/parachains/src/coretime/mod.rs b/polkadot/runtime/parachains/src/coretime/mod.rs index fc8a3c7d9d2..1c38b398923 100644 --- a/polkadot/runtime/parachains/src/coretime/mod.rs +++ b/polkadot/runtime/parachains/src/coretime/mod.rs @@ -18,6 +18,8 @@ //! //! +use alloc::{vec, vec::Vec}; +use core::result; use frame_support::{ pallet_prelude::*, traits::{defensive_prelude::*, Currency}, @@ -28,7 +30,6 @@ use pallet_broker::{CoreAssignment, CoreIndex as BrokerCoreIndex}; use polkadot_primitives::{Balance, BlockNumber, CoreIndex, Id as ParaId}; use sp_arithmetic::traits::SaturatedConversion; use sp_runtime::traits::TryConvert; -use sp_std::{prelude::*, result}; use xcm::{ prelude::{send_xcm, Instruction, Junction, Location, OriginKind, SendXcm, WeightLimit, Xcm}, v4::{ diff --git a/polkadot/runtime/parachains/src/disputes.rs b/polkadot/runtime/parachains/src/disputes.rs index 4a0f2390b45..f86573dadf5 100644 --- a/polkadot/runtime/parachains/src/disputes.rs +++ b/polkadot/runtime/parachains/src/disputes.rs @@ -19,8 +19,10 @@ use crate::{ configuration, initializer::SessionChangeNotification, metrics::METRICS, session_info, }; +use alloc::{collections::btree_set::BTreeSet, vec::Vec}; use bitvec::{bitvec, order::Lsb0 as BitOrderLsb0}; use codec::{Decode, Encode}; +use core::cmp::Ordering; use frame_support::{ensure, weights::Weight}; use frame_system::pallet_prelude::*; use polkadot_primitives::{ @@ -36,7 +38,6 @@ use sp_runtime::{ traits::{AppVerify, One, Saturating, Zero}, DispatchError, RuntimeDebug, SaturatedConversion, }; -use sp_std::{cmp::Ordering, collections::btree_set::BTreeSet, prelude::*}; #[cfg(test)] #[allow(unused_imports)] diff --git a/polkadot/runtime/parachains/src/disputes/migration.rs b/polkadot/runtime/parachains/src/disputes/migration.rs index e12edffb51b..dd32340c9f6 100644 --- a/polkadot/runtime/parachains/src/disputes/migration.rs +++ b/polkadot/runtime/parachains/src/disputes/migration.rs @@ -21,16 +21,16 @@ use frame_support::traits::StorageVersion; pub mod v1 { use super::*; use crate::disputes::{Config, Pallet}; + use alloc::vec::Vec; use frame_support::{ pallet_prelude::*, storage_alias, traits::OnRuntimeUpgrade, weights::Weight, }; use polkadot_primitives::SessionIndex; - use sp_std::prelude::*; #[storage_alias] type SpamSlots = StorageMap, Twox64Concat, SessionIndex, Vec>; - pub struct MigrateToV1(sp_std::marker::PhantomData); + pub struct MigrateToV1(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV1 { fn on_runtime_upgrade() -> Weight { let mut weight: Weight = Weight::zero(); diff --git a/polkadot/runtime/parachains/src/disputes/slashing.rs b/polkadot/runtime/parachains/src/disputes/slashing.rs index b50853ecc69..4b76fb47e1f 100644 --- a/polkadot/runtime/parachains/src/disputes/slashing.rs +++ b/polkadot/runtime/parachains/src/disputes/slashing.rs @@ -50,6 +50,12 @@ use frame_support::{ }; use frame_system::pallet_prelude::BlockNumberFor; +use alloc::{ + boxed::Box, + collections::{btree_map::Entry, btree_set::BTreeSet}, + vec, + vec::Vec, +}; use polkadot_primitives::{ slashing::{DisputeProof, DisputesTimeSlot, PendingSlashes, SlashingOffenceKind}, CandidateHash, SessionIndex, ValidatorId, ValidatorIndex, @@ -65,10 +71,6 @@ use sp_runtime::{ }; use sp_session::{GetSessionNumber, GetValidatorCount}; use sp_staking::offence::{Kind, Offence, OffenceError, ReportOffence}; -use sp_std::{ - collections::{btree_map::Entry, btree_set::BTreeSet}, - prelude::*, -}; const LOG_TARGET: &str = "runtime::parachains::slashing"; @@ -158,7 +160,7 @@ impl SlashingOffence { /// This type implements `SlashingHandler`. pub struct SlashValidatorsForDisputes { - _phantom: sp_std::marker::PhantomData, + _phantom: core::marker::PhantomData, } impl Default for SlashValidatorsForDisputes { @@ -640,7 +642,7 @@ fn is_known_offence( /// When configured properly, should be instantiated with /// `T::KeyOwnerIdentification, Offences, ReportLongevity` parameters. pub struct SlashingReportHandler { - _phantom: sp_std::marker::PhantomData<(I, R, L)>, + _phantom: core::marker::PhantomData<(I, R, L)>, } impl Default for SlashingReportHandler { diff --git a/polkadot/runtime/parachains/src/dmp.rs b/polkadot/runtime/parachains/src/dmp.rs index c0e1635ba16..54e112d1b8b 100644 --- a/polkadot/runtime/parachains/src/dmp.rs +++ b/polkadot/runtime/parachains/src/dmp.rs @@ -46,6 +46,8 @@ use crate::{ configuration::{self, HostConfiguration}, initializer, FeeTracker, }; +use alloc::vec::Vec; +use core::fmt; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::BlockNumberFor; use polkadot_primitives::{DownwardMessage, Hash, Id as ParaId, InboundDownwardMessage}; @@ -54,7 +56,6 @@ use sp_runtime::{ traits::{BlakeTwo256, Hash as HashT, SaturatedConversion}, FixedU128, Saturating, }; -use sp_std::{fmt, prelude::*}; use xcm::latest::SendError; pub use pallet::*; diff --git a/polkadot/runtime/parachains/src/hrmp.rs b/polkadot/runtime/parachains/src/hrmp.rs index e34e4a03e71..8b01a755c3c 100644 --- a/polkadot/runtime/parachains/src/hrmp.rs +++ b/polkadot/runtime/parachains/src/hrmp.rs @@ -18,7 +18,13 @@ use crate::{ configuration::{self, HostConfiguration}, dmp, ensure_parachain, initializer, paras, }; +use alloc::{ + collections::{btree_map::BTreeMap, btree_set::BTreeSet}, + vec, + vec::Vec, +}; use codec::{Decode, Encode}; +use core::{fmt, mem}; use frame_support::{pallet_prelude::*, traits::ReservableCurrency, DefaultNoBound}; use frame_system::pallet_prelude::*; use polkadot_parachain_primitives::primitives::{HorizontalMessages, IsSystem}; @@ -31,11 +37,6 @@ use sp_runtime::{ traits::{AccountIdConversion, BlakeTwo256, Hash as HashT, UniqueSaturatedInto, Zero}, ArithmeticError, }; -use sp_std::{ - collections::{btree_map::BTreeMap, btree_set::BTreeSet}, - fmt, mem, - prelude::*, -}; pub use pallet::*; @@ -487,7 +488,7 @@ pub mod pallet { #[derive(DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - _config: sp_std::marker::PhantomData, + _config: core::marker::PhantomData, preopen_hrmp_channels: Vec<(ParaId, ParaId, u32, u32)>, } diff --git a/polkadot/runtime/parachains/src/inclusion/migration.rs b/polkadot/runtime/parachains/src/inclusion/migration.rs index a340d52643e..36a810d341c 100644 --- a/polkadot/runtime/parachains/src/inclusion/migration.rs +++ b/polkadot/runtime/parachains/src/inclusion/migration.rs @@ -73,9 +73,9 @@ mod v1 { CandidatePendingAvailability as V1CandidatePendingAvailability, Config, Pallet, PendingAvailability as V1PendingAvailability, }; + use alloc::{collections::vec_deque::VecDeque, vec::Vec}; use frame_support::{traits::UncheckedOnRuntimeUpgrade, weights::Weight}; use sp_core::Get; - use sp_std::{collections::vec_deque::VecDeque, vec::Vec}; #[cfg(feature = "try-runtime")] use codec::{Decode, Encode}; @@ -85,7 +85,7 @@ mod v1 { traits::{GetStorageVersion, StorageVersion}, }; - pub struct VersionUncheckedMigrateToV1(sp_std::marker::PhantomData); + pub struct VersionUncheckedMigrateToV1(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateToV1 { #[cfg(feature = "try-runtime")] diff --git a/polkadot/runtime/parachains/src/inclusion/mod.rs b/polkadot/runtime/parachains/src/inclusion/mod.rs index a86941a1a0b..281dc5d0c5f 100644 --- a/polkadot/runtime/parachains/src/inclusion/mod.rs +++ b/polkadot/runtime/parachains/src/inclusion/mod.rs @@ -27,8 +27,15 @@ use crate::{ shared::{self, AllowedRelayParentsTracker}, util::make_persisted_validation_data_with_parent, }; +use alloc::{ + collections::{btree_map::BTreeMap, btree_set::BTreeSet, vec_deque::VecDeque}, + vec, + vec::Vec, +}; use bitvec::{order::Lsb0 as BitOrderLsb0, vec::BitVec}; use codec::{Decode, Encode}; +#[cfg(feature = "std")] +use core::fmt; use frame_support::{ defensive, pallet_prelude::*, @@ -46,12 +53,6 @@ use polkadot_primitives::{ }; use scale_info::TypeInfo; use sp_runtime::{traits::One, DispatchError, SaturatedConversion, Saturating}; -#[cfg(feature = "std")] -use sp_std::fmt; -use sp_std::{ - collections::{btree_map::BTreeMap, btree_set::BTreeSet, vec_deque::VecDeque}, - prelude::*, -}; pub use pallet::*; diff --git a/polkadot/runtime/parachains/src/initializer.rs b/polkadot/runtime/parachains/src/initializer.rs index fd0f1c3c065..340f727097b 100644 --- a/polkadot/runtime/parachains/src/initializer.rs +++ b/polkadot/runtime/parachains/src/initializer.rs @@ -25,6 +25,7 @@ use crate::{ disputes::{self, DisputesHandler as _, SlashingHandler as _}, dmp, hrmp, inclusion, paras, scheduler, session_info, shared, }; +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::{ traits::{OneSessionHandler, Randomness}, @@ -33,7 +34,6 @@ use frame_support::{ use frame_system::limits::BlockWeights; use polkadot_primitives::{BlockNumber, ConsensusLog, SessionIndex, ValidatorId}; use scale_info::TypeInfo; -use sp_std::prelude::*; #[cfg(test)] mod tests; @@ -249,7 +249,7 @@ impl Pallet { // TODO: audit usage of randomness API // https://github.com/paritytech/polkadot/issues/2601 let (random_hash, _) = T::Randomness::random(&b"paras"[..]); - let len = sp_std::cmp::min(32, random_hash.as_ref().len()); + let len = core::cmp::min(32, random_hash.as_ref().len()); buf[..len].copy_from_slice(&random_hash.as_ref()[..len]); buf }; diff --git a/polkadot/runtime/parachains/src/lib.rs b/polkadot/runtime/parachains/src/lib.rs index 51110e89416..f2995d770e7 100644 --- a/polkadot/runtime/parachains/src/lib.rs +++ b/polkadot/runtime/parachains/src/lib.rs @@ -53,6 +53,8 @@ mod mock; #[cfg(test)] mod ump_tests; +extern crate alloc; + pub use origin::{ensure_parachain, Origin}; pub use paras::{ParaLifecycle, UpgradeStrategy}; use polkadot_primitives::{HeadData, Id as ParaId, ValidationCode}; diff --git a/polkadot/runtime/parachains/src/mock.rs b/polkadot/runtime/parachains/src/mock.rs index 9c23347ebb5..45576668f6d 100644 --- a/polkadot/runtime/parachains/src/mock.rs +++ b/polkadot/runtime/parachains/src/mock.rs @@ -51,11 +51,10 @@ use sp_runtime::{ transaction_validity::TransactionPriority, BuildStorage, FixedU128, Perbill, Permill, }; -use sp_std::{ +use std::{ cell::RefCell, - collections::{btree_map::BTreeMap, vec_deque::VecDeque}, + collections::{btree_map::BTreeMap, vec_deque::VecDeque, HashMap}, }; -use std::collections::HashMap; use xcm::{ prelude::XcmVersion, v4::{Assets, InteriorLocation, Location, SendError, SendResult, SendXcm, Xcm, XcmHash}, @@ -677,7 +676,7 @@ impl inclusion::RewardValidators for TestRewardValidators { /// Create a new set of test externalities. pub fn new_test_ext(state: MockGenesisConfig) -> TestExternalities { use sp_keystore::{testing::MemoryKeystore, KeystoreExt, KeystorePtr}; - use sp_std::sync::Arc; + use std::sync::Arc; sp_tracing::try_init_simple(); diff --git a/polkadot/runtime/parachains/src/origin.rs b/polkadot/runtime/parachains/src/origin.rs index 5202cba232d..fd22929b08f 100644 --- a/polkadot/runtime/parachains/src/origin.rs +++ b/polkadot/runtime/parachains/src/origin.rs @@ -16,9 +16,9 @@ //! Declaration of the parachain specific origin and a pallet that hosts it. +use core::result; use polkadot_primitives::Id as ParaId; use sp_runtime::traits::BadOrigin; -use sp_std::result; pub use pallet::*; diff --git a/polkadot/runtime/parachains/src/paras/benchmarking.rs b/polkadot/runtime/parachains/src/paras/benchmarking.rs index 0f3318612a7..630b86132ab 100644 --- a/polkadot/runtime/parachains/src/paras/benchmarking.rs +++ b/polkadot/runtime/parachains/src/paras/benchmarking.rs @@ -16,6 +16,7 @@ use super::*; use crate::configuration::HostConfiguration; +use alloc::vec; use frame_benchmarking::benchmarks; use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin}; use polkadot_primitives::{ diff --git a/polkadot/runtime/parachains/src/paras/benchmarking/pvf_check.rs b/polkadot/runtime/parachains/src/paras/benchmarking/pvf_check.rs index 0bf5fe783a0..80443c7626e 100644 --- a/polkadot/runtime/parachains/src/paras/benchmarking/pvf_check.rs +++ b/polkadot/runtime/parachains/src/paras/benchmarking/pvf_check.rs @@ -17,6 +17,7 @@ //! This module focuses on the benchmarking of the `include_pvf_check_statement` dispatchable. use crate::{configuration, paras::*, shared::Pallet as ParasShared}; +use alloc::{vec, vec::Vec}; use frame_support::assert_ok; use frame_system::RawOrigin; use polkadot_primitives::{HeadData, Id as ParaId, ValidationCode, ValidatorId, ValidatorIndex}; diff --git a/polkadot/runtime/parachains/src/paras/mod.rs b/polkadot/runtime/parachains/src/paras/mod.rs index 8cffcbbbb02..3f0b8659b15 100644 --- a/polkadot/runtime/parachains/src/paras/mod.rs +++ b/polkadot/runtime/parachains/src/paras/mod.rs @@ -113,8 +113,10 @@ use crate::{ initializer::SessionChangeNotification, shared, }; +use alloc::{collections::btree_set::BTreeSet, vec::Vec}; use bitvec::{order::Lsb0 as BitOrderLsb0, vec::BitVec}; use codec::{Decode, Encode}; +use core::{cmp, mem}; use frame_support::{pallet_prelude::*, traits::EstimateNextSessionRotation, DefaultNoBound}; use frame_system::pallet_prelude::*; use polkadot_primitives::{ @@ -127,7 +129,6 @@ use sp_runtime::{ traits::{AppVerify, One, Saturating}, DispatchResult, SaturatedConversion, }; -use sp_std::{cmp, collections::btree_set::BTreeSet, mem, prelude::*}; use serde::{Deserialize, Serialize}; @@ -863,7 +864,7 @@ pub mod pallet { #[derive(DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, pub paras: Vec<(ParaId, ParaGenesisArgs)>, } diff --git a/polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs b/polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs index 4c8b093451e..c5284ba1dd1 100644 --- a/polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs +++ b/polkadot/runtime/parachains/src/paras_inherent/benchmarking.rs @@ -16,9 +16,10 @@ use super::*; use crate::{inclusion, ParaId}; +use alloc::collections::btree_map::BTreeMap; +use core::cmp::min; use frame_benchmarking::{benchmarks, impl_benchmark_test_suite}; use frame_system::RawOrigin; -use sp_std::{cmp::min, collections::btree_map::BTreeMap}; use polkadot_primitives::v7::GroupIndex; diff --git a/polkadot/runtime/parachains/src/paras_inherent/misc.rs b/polkadot/runtime/parachains/src/paras_inherent/misc.rs index dac9e6e256d..2858c3f95de 100644 --- a/polkadot/runtime/parachains/src/paras_inherent/misc.rs +++ b/polkadot/runtime/parachains/src/paras_inherent/misc.rs @@ -14,7 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -use sp_std::{cmp::Ordering, vec::Vec}; +use alloc::vec::Vec; +use core::cmp::Ordering; /// A helper trait to allow calling retain while getting access /// to the index of the item in the `vec`. diff --git a/polkadot/runtime/parachains/src/paras_inherent/mod.rs b/polkadot/runtime/parachains/src/paras_inherent/mod.rs index 8b527c09490..fe4eef16f02 100644 --- a/polkadot/runtime/parachains/src/paras_inherent/mod.rs +++ b/polkadot/runtime/parachains/src/paras_inherent/mod.rs @@ -32,6 +32,11 @@ use crate::{ shared::{self, AllowedRelayParentsTracker}, ParaId, }; +use alloc::{ + collections::{btree_map::BTreeMap, btree_set::BTreeSet}, + vec, + vec::Vec, +}; use bitvec::prelude::BitVec; use frame_support::{ defensive, @@ -53,11 +58,6 @@ use polkadot_primitives::{ use rand::{seq::SliceRandom, SeedableRng}; use scale_info::TypeInfo; use sp_runtime::traits::{Header as HeaderT, One}; -use sp_std::{ - collections::{btree_map::BTreeMap, btree_set::BTreeSet}, - prelude::*, - vec::Vec, -}; mod misc; mod weights; @@ -295,7 +295,7 @@ impl Pallet { fn process_inherent_data( data: ParachainsInherentData>, context: ProcessInherentDataContext, - ) -> sp_std::result::Result< + ) -> core::result::Result< (ParachainsInherentData>, PostDispatchInfo), DispatchErrorWithPostInfo, > { @@ -762,7 +762,7 @@ pub(crate) fn apply_weight_limit( let mut chained_candidates: Vec> = Vec::new(); let mut current_para_id = None; - for candidate in sp_std::mem::take(candidates).into_iter() { + for candidate in core::mem::take(candidates).into_iter() { let candidate_para_id = candidate.descriptor().para_id; if Some(candidate_para_id) == current_para_id { let chain = chained_candidates diff --git a/polkadot/runtime/parachains/src/paras_inherent/tests.rs b/polkadot/runtime/parachains/src/paras_inherent/tests.rs index abf1c1a56b2..0d5653eb729 100644 --- a/polkadot/runtime/parachains/src/paras_inherent/tests.rs +++ b/polkadot/runtime/parachains/src/paras_inherent/tests.rs @@ -53,13 +53,13 @@ mod enter { }, session_info, }; + use alloc::collections::btree_map::BTreeMap; use assert_matches::assert_matches; use core::panic; use frame_support::assert_ok; use frame_system::limits; use polkadot_primitives::{vstaging::SchedulerParams, AvailabilityBitfield, UncheckedSigned}; use sp_runtime::Perbill; - use sp_std::collections::btree_map::BTreeMap; struct TestConfig { dispute_statements: BTreeMap, @@ -1744,8 +1744,8 @@ mod sanitizers { scheduler::{common::Assignment, ParasEntry}, util::{make_persisted_validation_data, make_persisted_validation_data_with_parent}, }; + use alloc::collections::vec_deque::VecDeque; use polkadot_primitives::ValidationCode; - use sp_std::collections::vec_deque::VecDeque; use super::*; diff --git a/polkadot/runtime/parachains/src/reward_points.rs b/polkadot/runtime/parachains/src/reward_points.rs index 5f45445b0ba..69ef2db756c 100644 --- a/polkadot/runtime/parachains/src/reward_points.rs +++ b/polkadot/runtime/parachains/src/reward_points.rs @@ -22,9 +22,9 @@ //! for the time being, although we will build schemes to do so in the future. use crate::{session_info, shared}; +use alloc::collections::btree_set::BTreeSet; use frame_support::traits::{Defensive, ValidatorSet}; use polkadot_primitives::{SessionIndex, ValidatorIndex}; -use sp_std::collections::btree_set::BTreeSet; /// The amount of era points given by backing a candidate that is included. pub const BACKING_POINTS: u32 = 20; @@ -32,7 +32,7 @@ pub const BACKING_POINTS: u32 = 20; pub const DISPUTE_STATEMENT_POINTS: u32 = 20; /// Rewards validators for participating in parachains with era points in pallet-staking. -pub struct RewardValidatorsWithEraPoints(sp_std::marker::PhantomData); +pub struct RewardValidatorsWithEraPoints(core::marker::PhantomData); impl RewardValidatorsWithEraPoints where diff --git a/polkadot/runtime/parachains/src/runtime_api_impl/v10.rs b/polkadot/runtime/parachains/src/runtime_api_impl/v10.rs index 4417ec75abd..69789023221 100644 --- a/polkadot/runtime/parachains/src/runtime_api_impl/v10.rs +++ b/polkadot/runtime/parachains/src/runtime_api_impl/v10.rs @@ -22,6 +22,7 @@ use crate::{ scheduler::{self, CoreOccupied}, session_info, shared, }; +use alloc::{collections::btree_map::BTreeMap, vec, vec::Vec}; use frame_support::traits::{GetStorageVersion, StorageVersion}; use frame_system::pallet_prelude::*; use polkadot_primitives::{ @@ -37,7 +38,6 @@ use polkadot_primitives::{ ValidatorId, ValidatorIndex, ValidatorSignature, }; use sp_runtime::traits::One; -use sp_std::{collections::btree_map::BTreeMap, prelude::*}; /// Implementation for the `validators` function of the runtime API. pub fn validators() -> Vec { diff --git a/polkadot/runtime/parachains/src/runtime_api_impl/vstaging.rs b/polkadot/runtime/parachains/src/runtime_api_impl/vstaging.rs index f4e3db185fe..4aa381e33b1 100644 --- a/polkadot/runtime/parachains/src/runtime_api_impl/vstaging.rs +++ b/polkadot/runtime/parachains/src/runtime_api_impl/vstaging.rs @@ -17,12 +17,12 @@ //! Put implementations of functions from staging APIs here. use crate::{configuration, inclusion, initializer, scheduler}; -use polkadot_primitives::{CommittedCandidateReceipt, CoreIndex, Id as ParaId}; -use sp_runtime::traits::One; -use sp_std::{ +use alloc::{ collections::{btree_map::BTreeMap, vec_deque::VecDeque}, vec::Vec, }; +use polkadot_primitives::{CommittedCandidateReceipt, CoreIndex, Id as ParaId}; +use sp_runtime::traits::One; /// Returns the claimqueue from the scheduler pub fn claim_queue() -> BTreeMap> { diff --git a/polkadot/runtime/parachains/src/scheduler.rs b/polkadot/runtime/parachains/src/scheduler.rs index d7fe5c06863..445583d929a 100644 --- a/polkadot/runtime/parachains/src/scheduler.rs +++ b/polkadot/runtime/parachains/src/scheduler.rs @@ -39,6 +39,13 @@ use core::iter::Peekable; use crate::{configuration, initializer::SessionChangeNotification, paras}; +use alloc::{ + collections::{ + btree_map::{self, BTreeMap}, + vec_deque::VecDeque, + }, + vec::Vec, +}; use frame_support::{pallet_prelude::*, traits::Defensive}; use frame_system::pallet_prelude::BlockNumberFor; pub use polkadot_core_primitives::v2::BlockNumber; @@ -46,13 +53,6 @@ use polkadot_primitives::{ CoreIndex, GroupIndex, GroupRotationInfo, Id as ParaId, ScheduledCore, ValidatorIndex, }; use sp_runtime::traits::One; -use sp_std::{ - collections::{ - btree_map::{self, BTreeMap}, - vec_deque::VecDeque, - }, - prelude::*, -}; pub mod common; @@ -314,10 +314,8 @@ impl Pallet { .into_iter() .filter(|(freed_index, _)| (freed_index.0 as usize) < c_len) .for_each(|(freed_index, freed_reason)| { - match sp_std::mem::replace( - &mut cores[freed_index.0 as usize], - CoreOccupied::Free, - ) { + match core::mem::replace(&mut cores[freed_index.0 as usize], CoreOccupied::Free) + { CoreOccupied::Free => {}, CoreOccupied::Paras(entry) => { match freed_reason { @@ -569,7 +567,7 @@ impl Pallet { fn push_occupied_cores_to_assignment_provider() { AvailabilityCores::::mutate(|cores| { for core in cores.iter_mut() { - match sp_std::mem::replace(core, CoreOccupied::Free) { + match core::mem::replace(core, CoreOccupied::Free) { CoreOccupied::Free => continue, CoreOccupied::Paras(entry) => { Self::maybe_push_assignment(entry); diff --git a/polkadot/runtime/parachains/src/scheduler/migration.rs b/polkadot/runtime/parachains/src/scheduler/migration.rs index 84d7d4b5671..125f105ef70 100644 --- a/polkadot/runtime/parachains/src/scheduler/migration.rs +++ b/polkadot/runtime/parachains/src/scheduler/migration.rs @@ -17,6 +17,7 @@ //! A module that is responsible for migration of storage. use super::*; +use alloc::vec::Vec; use frame_support::{ migrations::VersionedMigration, pallet_prelude::ValueQuery, storage_alias, traits::UncheckedOnRuntimeUpgrade, weights::Weight, @@ -164,7 +165,7 @@ mod v1 { } /// Migration to V1 - pub struct UncheckedMigrateToV1(sp_std::marker::PhantomData); + pub struct UncheckedMigrateToV1(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for UncheckedMigrateToV1 { fn on_runtime_upgrade() -> Weight { let mut weight: Weight = Weight::zero(); @@ -301,7 +302,7 @@ mod v2 { } /// Migration to V2 - pub struct UncheckedMigrateToV2(sp_std::marker::PhantomData); + pub struct UncheckedMigrateToV2(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for UncheckedMigrateToV2 { fn on_runtime_upgrade() -> Weight { diff --git a/polkadot/runtime/parachains/src/scheduler/tests.rs b/polkadot/runtime/parachains/src/scheduler/tests.rs index 32811241e17..f3866146e81 100644 --- a/polkadot/runtime/parachains/src/scheduler/tests.rs +++ b/polkadot/runtime/parachains/src/scheduler/tests.rs @@ -16,12 +16,12 @@ use super::*; +use alloc::collections::{btree_map::BTreeMap, btree_set::BTreeSet}; use frame_support::assert_ok; use polkadot_primitives::{ vstaging::SchedulerParams, BlockNumber, SessionIndex, ValidationCode, ValidatorId, }; use sp_keyring::Sr25519Keyring; -use sp_std::collections::{btree_map::BTreeMap, btree_set::BTreeSet}; use crate::{ configuration::HostConfiguration, diff --git a/polkadot/runtime/parachains/src/session_info.rs b/polkadot/runtime/parachains/src/session_info.rs index ff032f7e34d..ea05c1aacaa 100644 --- a/polkadot/runtime/parachains/src/session_info.rs +++ b/polkadot/runtime/parachains/src/session_info.rs @@ -24,6 +24,7 @@ use crate::{ configuration, paras, scheduler, shared, util::{take_active_subset, take_active_subset_and_inactive}, }; +use alloc::vec::Vec; use frame_support::{ pallet_prelude::*, traits::{OneSessionHandler, ValidatorSet, ValidatorSetWithIdentification}, @@ -32,7 +33,6 @@ use frame_system::pallet_prelude::BlockNumberFor; use polkadot_primitives::{ AssignmentId, AuthorityDiscoveryId, ExecutorParams, SessionIndex, SessionInfo, }; -use sp_std::vec::Vec; pub use pallet::*; diff --git a/polkadot/runtime/parachains/src/shared.rs b/polkadot/runtime/parachains/src/shared.rs index 417de1fa3fb..154b7cfefc3 100644 --- a/polkadot/runtime/parachains/src/shared.rs +++ b/polkadot/runtime/parachains/src/shared.rs @@ -19,14 +19,14 @@ //! To avoid cyclic dependencies, it is important that this pallet is not //! dependent on any of the other pallets. +use alloc::{ + collections::{btree_map::BTreeMap, vec_deque::VecDeque}, + vec::Vec, +}; use frame_support::{pallet_prelude::*, traits::DisabledValidators}; use frame_system::pallet_prelude::BlockNumberFor; use polkadot_primitives::{SessionIndex, ValidatorId, ValidatorIndex}; use sp_runtime::traits::AtLeast32BitUnsigned; -use sp_std::{ - collections::{btree_map::BTreeMap, vec_deque::VecDeque}, - vec::Vec, -}; use rand::{seq::SliceRandom, SeedableRng}; use rand_chacha::ChaCha20Rng; diff --git a/polkadot/runtime/parachains/src/ump_tests.rs b/polkadot/runtime/parachains/src/ump_tests.rs index 4d6da8c9e3c..d914bf8b666 100644 --- a/polkadot/runtime/parachains/src/ump_tests.rs +++ b/polkadot/runtime/parachains/src/ump_tests.rs @@ -34,7 +34,6 @@ use frame_support::{ use polkadot_primitives::{well_known_keys, Id as ParaId, UpwardMessage}; use sp_crypto_hashing::{blake2_256, twox_64}; use sp_runtime::traits::Bounded; -use sp_std::prelude::*; pub(super) struct GenesisConfigBuilder { max_upward_message_size: u32, diff --git a/polkadot/runtime/parachains/src/util.rs b/polkadot/runtime/parachains/src/util.rs index cb2deffd7f6..3588e494438 100644 --- a/polkadot/runtime/parachains/src/util.rs +++ b/polkadot/runtime/parachains/src/util.rs @@ -17,9 +17,9 @@ //! Utilities that don't belong to any particular module but may draw //! on all modules. +use alloc::{collections::btree_set::BTreeSet, vec::Vec}; use frame_system::pallet_prelude::BlockNumberFor; use polkadot_primitives::{HeadData, Id as ParaId, PersistedValidationData, ValidatorIndex}; -use sp_std::{collections::btree_set::BTreeSet, vec::Vec}; use crate::{configuration, hrmp, paras}; @@ -118,7 +118,7 @@ pub fn take_active_subset(active: &[ValidatorIndex], set: &[T]) -> Vec #[cfg(test)] mod tests { - use sp_std::vec::Vec; + use alloc::vec::Vec; use crate::util::{split_active_subset, take_active_subset}; use polkadot_primitives::ValidatorIndex; diff --git a/polkadot/runtime/rococo/Cargo.toml b/polkadot/runtime/rococo/Cargo.toml index c4fbd461a63..f93a3ad6575 100644 --- a/polkadot/runtime/rococo/Cargo.toml +++ b/polkadot/runtime/rococo/Cargo.toml @@ -32,7 +32,6 @@ sp-genesis-builder = { workspace = true } sp-inherents = { workspace = true } sp-offchain = { workspace = true } sp-arithmetic = { workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } sp-mmr-primitives = { workspace = true } sp-runtime = { workspace = true } @@ -209,7 +208,6 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", - "sp-std/std", "sp-storage/std", "sp-tracing/std", "sp-transaction-pool/std", diff --git a/polkadot/runtime/rococo/src/genesis_config_presets.rs b/polkadot/runtime/rococo/src/genesis_config_presets.rs index 1c70c94ce04..67dcd6cd7a5 100644 --- a/polkadot/runtime/rococo/src/genesis_config_presets.rs +++ b/polkadot/runtime/rococo/src/genesis_config_presets.rs @@ -17,6 +17,9 @@ //! Genesis configs presets for the Rococo runtime use crate::{SessionKeys, BABE_GENESIS_EPOCH_CONFIG}; +#[cfg(not(feature = "std"))] +use alloc::format; +use alloc::vec::Vec; use polkadot_primitives::{ vstaging::SchedulerParams, AccountId, AccountPublic, AssignmentId, ValidatorId, }; @@ -27,9 +30,6 @@ use sp_consensus_beefy::ecdsa_crypto::AuthorityId as BeefyId; use sp_consensus_grandpa::AuthorityId as GrandpaId; use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::IdentifyAccount; -#[cfg(not(feature = "std"))] -use sp_std::alloc::format; -use sp_std::vec::Vec; /// Helper function to generate a crypto pair from seed fn get_from_seed(seed: &str) -> ::Public { @@ -530,7 +530,7 @@ fn wococo_local_testnet_genesis() -> serde_json::Value { } /// Provides the JSON representation of predefined genesis config for given `id`. -pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { +pub fn get_preset(id: &sp_genesis_builder::PresetId) -> Option> { let patch = match id.try_into() { Ok("local_testnet") => rococo_local_testnet_genesis(), Ok("development") => rococo_development_config_genesis(), diff --git a/polkadot/runtime/rococo/src/impls.rs b/polkadot/runtime/rococo/src/impls.rs index 7b5c7b1fb4a..a4440a1c6e0 100644 --- a/polkadot/runtime/rococo/src/impls.rs +++ b/polkadot/runtime/rococo/src/impls.rs @@ -15,13 +15,14 @@ // along with Polkadot. If not, see . use crate::xcm_config; +use alloc::{boxed::Box, vec}; use codec::{Decode, Encode}; +use core::marker::PhantomData; use frame_support::pallet_prelude::DispatchResult; use frame_system::RawOrigin; use polkadot_primitives::Balance; use polkadot_runtime_common::identity_migrator::{OnReapIdentity, WeightInfo}; use rococo_runtime_constants::currency::*; -use sp_std::{marker::PhantomData, prelude::*}; use xcm::{latest::prelude::*, VersionedLocation, VersionedXcm}; use xcm_executor::traits::TransactAsset; diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs index ef629c7dad1..5adffbd7422 100644 --- a/polkadot/runtime/rococo/src/lib.rs +++ b/polkadot/runtime/rococo/src/lib.rs @@ -20,7 +20,15 @@ // `construct_runtime!` does a lot of recursion and requires us to increase the limit. #![recursion_limit = "512"] +extern crate alloc; + +use alloc::{ + collections::{btree_map::BTreeMap, vec_deque::VecDeque}, + vec, + vec::Vec, +}; use codec::{Decode, Encode, MaxEncodedLen}; +use core::cmp::Ordering; use frame_support::{ dynamic_params::{dynamic_pallet_params, dynamic_params}, traits::FromContains, @@ -68,11 +76,6 @@ use sp_consensus_beefy::{ mmr::{BeefyDataProvider, MmrLeafVersion}, }; use sp_genesis_builder::PresetId; -use sp_std::{ - cmp::Ordering, - collections::{btree_map::BTreeMap, vec_deque::VecDeque}, - prelude::*, -}; use frame_support::{ construct_runtime, derive_impl, @@ -1845,7 +1848,7 @@ sp_api::impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -2389,7 +2392,7 @@ sp_api::impl_runtime_apis! { } fn set_up_complex_asset_transfer( - ) -> Option<(Assets, u32, Location, Box)> { + ) -> Option<(Assets, u32, Location, alloc::boxed::Box)> { // Relay supports only native token, either reserve transfer it to non-system parachains, // or teleport it to system parachain. Use the teleport case for benchmarking as it's // slightly heavier. diff --git a/polkadot/runtime/rococo/src/validator_manager.rs b/polkadot/runtime/rococo/src/validator_manager.rs index 0677ba7fbb2..ecfbff4fa06 100644 --- a/polkadot/runtime/rococo/src/validator_manager.rs +++ b/polkadot/runtime/rococo/src/validator_manager.rs @@ -16,8 +16,8 @@ //! A pallet for managing validators on Rococo. +use alloc::vec::Vec; use sp_staking::SessionIndex; -use sp_std::vec::Vec; pub use pallet::*; diff --git a/polkadot/runtime/rococo/src/weights/pallet_session.rs b/polkadot/runtime/rococo/src/weights/pallet_session.rs index dbeca534add..7f573d4e395 100644 --- a/polkadot/runtime/rococo/src/weights/pallet_session.rs +++ b/polkadot/runtime/rococo/src/weights/pallet_session.rs @@ -38,7 +38,7 @@ #![allow(unused_imports)] use frame_support::{traits::Get, weights::Weight}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Weight functions for `pallet_session`. pub struct WeightInfo(PhantomData); diff --git a/polkadot/runtime/rococo/src/weights/xcm/mod.rs b/polkadot/runtime/rococo/src/weights/xcm/mod.rs index 12f3df897b1..bd2b0fbb8c0 100644 --- a/polkadot/runtime/rococo/src/weights/xcm/mod.rs +++ b/polkadot/runtime/rococo/src/weights/xcm/mod.rs @@ -18,8 +18,8 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::Runtime; +use alloc::vec::Vec; use frame_support::weights::Weight; -use sp_std::prelude::*; use xcm::{latest::prelude::*, DoubleEncoded}; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmBalancesWeight; diff --git a/polkadot/runtime/test-runtime/Cargo.toml b/polkadot/runtime/test-runtime/Cargo.toml index a66fceedae3..ac379b69e3f 100644 --- a/polkadot/runtime/test-runtime/Cargo.toml +++ b/polkadot/runtime/test-runtime/Cargo.toml @@ -22,7 +22,6 @@ sp-consensus-beefy = { workspace = true } sp-api = { workspace = true } sp-inherents = { workspace = true } sp-offchain = { workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } sp-staking = { workspace = true } @@ -125,7 +124,6 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", - "sp-std/std", "sp-transaction-pool/std", "sp-version/std", "test-runtime-constants/std", diff --git a/polkadot/runtime/test-runtime/src/lib.rs b/polkadot/runtime/test-runtime/src/lib.rs index 96392c026d5..a8a369a68e6 100644 --- a/polkadot/runtime/test-runtime/src/lib.rs +++ b/polkadot/runtime/test-runtime/src/lib.rs @@ -20,12 +20,15 @@ // `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. #![recursion_limit = "256"] -use codec::Encode; -use pallet_transaction_payment::FungibleAdapter; -use sp_std::{ +extern crate alloc; + +use alloc::{ collections::{btree_map::BTreeMap, vec_deque::VecDeque}, - prelude::*, + vec, + vec::Vec, }; +use codec::Encode; +use pallet_transaction_payment::FungibleAdapter; use polkadot_runtime_parachains::{ assigner_parachains as parachains_assigner_parachains, @@ -793,7 +796,7 @@ sp_api::impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> Vec { Runtime::metadata_versions() } } diff --git a/polkadot/runtime/test-runtime/src/xcm_config.rs b/polkadot/runtime/test-runtime/src/xcm_config.rs index b1d86ff9a85..b424b9a3ee5 100644 --- a/polkadot/runtime/test-runtime/src/xcm_config.rs +++ b/polkadot/runtime/test-runtime/src/xcm_config.rs @@ -54,7 +54,7 @@ pub type LocalOriginToLocation = ( /// This implementation ensures that messages with non-reanchored assets return higher /// prices than messages with reanchored assets. /// Useful for `deposit_reserve_asset_works_for_any_xcm_sender` integration test. -pub struct TestDeliveryPrice(sp_std::marker::PhantomData<(A, F)>); +pub struct TestDeliveryPrice(core::marker::PhantomData<(A, F)>); impl, F: FeeTracker> PriceForMessageDelivery for TestDeliveryPrice { type Id = F::Id; diff --git a/polkadot/runtime/westend/Cargo.toml b/polkadot/runtime/westend/Cargo.toml index 5a7805c0516..9e739f4c7fe 100644 --- a/polkadot/runtime/westend/Cargo.toml +++ b/polkadot/runtime/westend/Cargo.toml @@ -28,7 +28,6 @@ sp-offchain = { workspace = true } sp-api = { workspace = true } sp-application-crypto = { workspace = true } sp-arithmetic = { workspace = true } -sp-std = { workspace = true } sp-genesis-builder = { workspace = true } sp-io = { workspace = true } sp-mmr-primitives = { workspace = true } @@ -220,7 +219,6 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", - "sp-std/std", "sp-storage/std", "sp-tracing/std", "sp-transaction-pool/std", diff --git a/polkadot/runtime/westend/src/impls.rs b/polkadot/runtime/westend/src/impls.rs index d7ca677a762..11665953bd8 100644 --- a/polkadot/runtime/westend/src/impls.rs +++ b/polkadot/runtime/westend/src/impls.rs @@ -15,12 +15,13 @@ // along with Polkadot. If not, see . use crate::xcm_config; +use alloc::{boxed::Box, vec}; use codec::{Decode, Encode}; +use core::marker::PhantomData; use frame_support::pallet_prelude::DispatchResult; use frame_system::RawOrigin; use polkadot_primitives::Balance; use polkadot_runtime_common::identity_migrator::{OnReapIdentity, WeightInfo}; -use sp_std::{marker::PhantomData, prelude::*}; use westend_runtime_constants::currency::*; use xcm::{latest::prelude::*, VersionedLocation, VersionedXcm}; use xcm_executor::traits::TransactAsset; diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index 0d7a8a6a4ac..f0b16e731d9 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -20,6 +20,13 @@ // `#[frame_support::runtime]!` does a lot of recursion and requires us to increase the limit. #![recursion_limit = "512"] +extern crate alloc; + +use alloc::{ + collections::{btree_map::BTreeMap, vec_deque::VecDeque}, + vec, + vec::Vec, +}; use codec::{Decode, Encode, MaxEncodedLen}; use frame_election_provider_support::{bounds::ElectionBoundsBuilder, onchain, SequentialPhragmen}; use frame_support::{ @@ -95,10 +102,6 @@ use sp_runtime::{ ApplyExtrinsicResult, FixedU128, KeyTypeId, Perbill, Percent, Permill, }; use sp_staking::SessionIndex; -use sp_std::{ - collections::{btree_map::BTreeMap, vec_deque::VecDeque}, - prelude::*, -}; #[cfg(any(feature = "std", test))] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -1802,7 +1805,7 @@ sp_api::impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } @@ -2420,6 +2423,8 @@ sp_api::impl_runtime_apis! { use xcm_config::{AssetHub, TokenLocation}; + use alloc::boxed::Box; + parameter_types! { pub ExistentialDepositAsset: Option = Some(( TokenLocation::get(), diff --git a/polkadot/runtime/westend/src/weights/xcm/mod.rs b/polkadot/runtime/westend/src/weights/xcm/mod.rs index 09e883a9f7a..cb5894ea51e 100644 --- a/polkadot/runtime/westend/src/weights/xcm/mod.rs +++ b/polkadot/runtime/westend/src/weights/xcm/mod.rs @@ -18,8 +18,8 @@ mod pallet_xcm_benchmarks_fungible; mod pallet_xcm_benchmarks_generic; use crate::Runtime; +use alloc::vec::Vec; use frame_support::weights::Weight; -use sp_std::prelude::*; use xcm::{ latest::{prelude::*, QueryResponseInfo}, DoubleEncoded, diff --git a/polkadot/xcm/docs/src/cookbook/relay_token_transactor/parachain/mod.rs b/polkadot/xcm/docs/src/cookbook/relay_token_transactor/parachain/mod.rs index e7d00ac7103..23d6664bdaf 100644 --- a/polkadot/xcm/docs/src/cookbook/relay_token_transactor/parachain/mod.rs +++ b/polkadot/xcm/docs/src/cookbook/relay_token_transactor/parachain/mod.rs @@ -16,7 +16,7 @@ //! # Runtime -use frame::{deps::frame_system, prelude::*, runtime::prelude::*, traits::IdentityLookup}; +use frame::{deps::frame_system, runtime::prelude::*, traits::IdentityLookup}; use xcm_executor::XcmExecutor; use xcm_simulator::mock_message_queue; diff --git a/polkadot/xcm/pallet-xcm-benchmarks/Cargo.toml b/polkadot/xcm/pallet-xcm-benchmarks/Cargo.toml index 1177d094c6c..b07bdfdca3d 100644 --- a/polkadot/xcm/pallet-xcm-benchmarks/Cargo.toml +++ b/polkadot/xcm/pallet-xcm-benchmarks/Cargo.toml @@ -18,7 +18,6 @@ scale-info = { features = ["derive"], workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } xcm-executor = { workspace = true } frame-benchmarking = { workspace = true } @@ -48,7 +47,6 @@ std = [ "scale-info/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm-builder/std", "xcm-executor/std", ] diff --git a/polkadot/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs b/polkadot/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs index d99da9184b5..6ce49074a6e 100644 --- a/polkadot/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs +++ b/polkadot/xcm/pallet-xcm-benchmarks/src/fungible/benchmarking.rs @@ -16,6 +16,7 @@ use super::*; use crate::{account_and_location, new_executor, AssetTransactorOf, EnsureDelivery, XcmCallOf}; +use alloc::{vec, vec::Vec}; use frame_benchmarking::{benchmarks_instance_pallet, BenchmarkError, BenchmarkResult}; use frame_support::{ pallet_prelude::Get, @@ -23,7 +24,6 @@ use frame_support::{ weights::Weight, }; use sp_runtime::traits::{Bounded, Zero}; -use sp_std::{prelude::*, vec}; use xcm::latest::{prelude::*, MAX_ITEMS_IN_ASSETS}; use xcm_executor::traits::{ConvertLocation, FeeReason, TransactAsset}; @@ -37,7 +37,7 @@ benchmarks_instance_pallet! { >::Balance as TryInto - >::Error: sp_std::fmt::Debug, + >::Error: core::fmt::Debug, } withdraw_asset { diff --git a/polkadot/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs b/polkadot/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs index 760b21f9356..40a7da58a68 100644 --- a/polkadot/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs +++ b/polkadot/xcm/pallet-xcm-benchmarks/src/generic/benchmarking.rs @@ -16,10 +16,10 @@ use super::*; use crate::{account_and_location, new_executor, EnsureDelivery, XcmCallOf}; +use alloc::{vec, vec::Vec}; use codec::Encode; use frame_benchmarking::{benchmarks, BenchmarkError}; use frame_support::{dispatch::GetDispatchInfo, traits::fungible::Inspect}; -use sp_std::{prelude::*, vec}; use xcm::{ latest::{prelude::*, MaxDispatchErrorLen, MaybeErrorCode, Weight, MAX_ITEMS_IN_ASSETS}, DoubleEncoded, diff --git a/polkadot/xcm/pallet-xcm-benchmarks/src/lib.rs b/polkadot/xcm/pallet-xcm-benchmarks/src/lib.rs index a43f27bf47e..4a12bb7f47c 100644 --- a/polkadot/xcm/pallet-xcm-benchmarks/src/lib.rs +++ b/polkadot/xcm/pallet-xcm-benchmarks/src/lib.rs @@ -18,9 +18,11 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use codec::Encode; use frame_benchmarking::{account, BenchmarkError}; -use sp_std::prelude::*; use xcm::latest::prelude::*; use xcm_builder::EnsureDelivery; use xcm_executor::{traits::ConvertLocation, Config as XcmConfig}; diff --git a/polkadot/xcm/pallet-xcm/Cargo.toml b/polkadot/xcm/pallet-xcm/Cargo.toml index 0cce7a34493..ed4b441d7c3 100644 --- a/polkadot/xcm/pallet-xcm/Cargo.toml +++ b/polkadot/xcm/pallet-xcm/Cargo.toml @@ -21,7 +21,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } xcm = { workspace = true } xcm-executor = { workspace = true } @@ -52,7 +51,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "xcm-builder/std", "xcm-executor/std", "xcm-runtime-apis/std", diff --git a/polkadot/xcm/pallet-xcm/src/benchmarking.rs b/polkadot/xcm/pallet-xcm/src/benchmarking.rs index da46a6a37c0..d09c81bf434 100644 --- a/polkadot/xcm/pallet-xcm/src/benchmarking.rs +++ b/polkadot/xcm/pallet-xcm/src/benchmarking.rs @@ -18,7 +18,6 @@ use super::*; use frame_benchmarking::{benchmarks, whitelisted_caller, BenchmarkError, BenchmarkResult}; use frame_support::{assert_ok, weights::Weight}; use frame_system::RawOrigin; -use sp_std::prelude::*; use xcm::latest::prelude::*; use xcm_builder::EnsureDelivery; use xcm_executor::traits::FeeReason; diff --git a/polkadot/xcm/pallet-xcm/src/lib.rs b/polkadot/xcm/pallet-xcm/src/lib.rs index 668f07c52ce..6451901279b 100644 --- a/polkadot/xcm/pallet-xcm/src/lib.rs +++ b/polkadot/xcm/pallet-xcm/src/lib.rs @@ -27,7 +27,11 @@ mod tests; pub mod migration; +extern crate alloc; + +use alloc::{boxed::Box, vec, vec::Vec}; use codec::{Decode, Encode, EncodeLike, MaxEncodedLen}; +use core::{marker::PhantomData, result::Result}; use frame_support::{ dispatch::{ DispatchErrorWithPostInfo, GetDispatchInfo, PostDispatchInfo, WithPostDispatchInfo, @@ -49,7 +53,6 @@ use sp_runtime::{ }, Either, RuntimeDebug, }; -use sp_std::{boxed::Box, marker::PhantomData, prelude::*, result::Result, vec}; use xcm::{latest::QueryResponseInfo, prelude::*}; use xcm_builder::{ ExecuteController, ExecuteControllerWeightInfo, InspectMessageQueues, QueryController, @@ -792,7 +795,7 @@ pub mod pallet { #[pallet::genesis_config] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, /// The default version to encode outgoing XCM messages with. pub safe_xcm_version: Option, } @@ -1438,8 +1441,8 @@ enum FeesHandling { Separate { local_xcm: Xcm<::RuntimeCall>, remote_xcm: Xcm<()> }, } -impl sp_std::fmt::Debug for FeesHandling { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Debug for FeesHandling { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { Self::Batched { fees } => write!(f, "FeesHandling::Batched({:?})", fees), Self::Separate { local_xcm, remote_xcm } => write!( @@ -1840,8 +1843,8 @@ impl Pallet { FeesHandling::Separate { local_xcm: mut local_fees, remote_xcm: mut remote_fees } => { // fees are handled by separate XCM instructions, prepend fees instructions (for // remote XCM they have to be prepended instead of appended to pass barriers). - sp_std::mem::swap(local, &mut local_fees); - sp_std::mem::swap(remote, &mut remote_fees); + core::mem::swap(local, &mut local_fees); + core::mem::swap(remote, &mut remote_fees); // these are now swapped so fees actually go first local.inner_mut().append(&mut local_fees.into_inner()); remote.inner_mut().append(&mut remote_fees.into_inner()); diff --git a/polkadot/xcm/pallet-xcm/src/migration.rs b/polkadot/xcm/pallet-xcm/src/migration.rs index b157e6b5c3d..0aec97ab410 100644 --- a/polkadot/xcm/pallet-xcm/src/migration.rs +++ b/polkadot/xcm/pallet-xcm/src/migration.rs @@ -34,7 +34,7 @@ pub mod v1 { /// enacted on-chain. /// /// Use experimental [`MigrateToV1`] instead. - pub struct VersionUncheckedMigrateToV1(sp_std::marker::PhantomData); + pub struct VersionUncheckedMigrateToV1(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateToV1 { fn on_runtime_upgrade() -> Weight { let mut weight = T::DbWeight::get().reads(1); @@ -81,7 +81,7 @@ pub mod v1 { /// `XCM_VERSION`. /// /// NOTE: This migration can be permanently added to the runtime migrations. -pub struct MigrateToLatestXcmVersion(sp_std::marker::PhantomData); +pub struct MigrateToLatestXcmVersion(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToLatestXcmVersion { fn on_runtime_upgrade() -> Weight { CurrentMigration::::put(VersionMigrationStage::default()); diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index 2be6f301f85..3941d104b81 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -15,6 +15,7 @@ // along with Polkadot. If not, see . use codec::Encode; +pub use core::cell::RefCell; use frame_support::{ construct_runtime, derive_impl, parameter_types, traits::{ @@ -28,7 +29,6 @@ use polkadot_parachain_primitives::primitives::Id as ParaId; use polkadot_runtime_parachains::origin; use sp_core::H256; use sp_runtime::{traits::IdentityLookup, AccountId32, BuildStorage}; -pub use sp_std::cell::RefCell; use xcm::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, diff --git a/polkadot/xcm/xcm-builder/Cargo.toml b/polkadot/xcm/xcm-builder/Cargo.toml index d43506aa651..7702e2f9be0 100644 --- a/polkadot/xcm/xcm-builder/Cargo.toml +++ b/polkadot/xcm/xcm-builder/Cargo.toml @@ -15,7 +15,6 @@ codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive"], workspace = true } xcm = { workspace = true } xcm-executor = { workspace = true } -sp-std = { workspace = true } sp-arithmetic = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } @@ -66,7 +65,6 @@ std = [ "sp-arithmetic/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-weights/std", "xcm-executor/std", "xcm/std", diff --git a/polkadot/xcm/xcm-builder/src/asset_conversion.rs b/polkadot/xcm/xcm-builder/src/asset_conversion.rs index 520ce87448e..16ae05c2079 100644 --- a/polkadot/xcm/xcm-builder/src/asset_conversion.rs +++ b/polkadot/xcm/xcm-builder/src/asset_conversion.rs @@ -16,9 +16,9 @@ //! Adapters to work with [`frame_support::traits::fungibles`] through XCM. +use core::{marker::PhantomData, result}; use frame_support::traits::{Contains, Get}; use sp_runtime::traits::MaybeEquivalence; -use sp_std::{marker::PhantomData, prelude::*, result}; use xcm::latest::prelude::*; use xcm_executor::traits::{Error as MatchError, MatchesFungibles, MatchesNonFungibles}; diff --git a/polkadot/xcm/xcm-builder/src/barriers.rs b/polkadot/xcm/xcm-builder/src/barriers.rs index 11e9122f9a1..5d95005eb66 100644 --- a/polkadot/xcm/xcm-builder/src/barriers.rs +++ b/polkadot/xcm/xcm-builder/src/barriers.rs @@ -17,12 +17,12 @@ //! Various implementations for `ShouldExecute`. use crate::{CreateMatcher, MatchXcm}; +use core::{cell::Cell, marker::PhantomData, ops::ControlFlow, result::Result}; use frame_support::{ ensure, traits::{Contains, Get, ProcessMessageError}, }; use polkadot_parachain_primitives::primitives::IsSystem; -use sp_std::{cell::Cell, marker::PhantomData, ops::ControlFlow, result::Result}; use xcm::prelude::*; use xcm_executor::traits::{CheckSuspension, OnResponse, Properties, ShouldExecute}; diff --git a/polkadot/xcm/xcm-builder/src/controller.rs b/polkadot/xcm/xcm-builder/src/controller.rs index 04b19eaa587..d4ce2ca5b35 100644 --- a/polkadot/xcm/xcm-builder/src/controller.rs +++ b/polkadot/xcm/xcm-builder/src/controller.rs @@ -18,11 +18,11 @@ //! Controller traits defined in this module are high-level traits that will rely on other traits //! from `xcm-executor` to perform their tasks. +use alloc::boxed::Box; use frame_support::{ dispatch::{DispatchErrorWithPostInfo, WithPostDispatchInfo}, pallet_prelude::DispatchError, }; -use sp_std::boxed::Box; use xcm::prelude::*; pub use xcm_executor::traits::QueryHandler; diff --git a/polkadot/xcm/xcm-builder/src/currency_adapter.rs b/polkadot/xcm/xcm-builder/src/currency_adapter.rs index 99a736d6ac1..355d6ad8538 100644 --- a/polkadot/xcm/xcm-builder/src/currency_adapter.rs +++ b/polkadot/xcm/xcm-builder/src/currency_adapter.rs @@ -19,9 +19,9 @@ #![allow(deprecated)] use super::MintLocation; +use core::{marker::PhantomData, result}; use frame_support::traits::{ExistenceRequirement::AllowDeath, Get, WithdrawReasons}; use sp_runtime::traits::CheckedSub; -use sp_std::{marker::PhantomData, result}; use xcm::latest::{Asset, Error as XcmError, Location, Result, XcmContext}; use xcm_executor::{ traits::{ConvertLocation, MatchesFungible, TransactAsset}, diff --git a/polkadot/xcm/xcm-builder/src/filter_asset_location.rs b/polkadot/xcm/xcm-builder/src/filter_asset_location.rs index d80c5d70dee..16b7be7f3ba 100644 --- a/polkadot/xcm/xcm-builder/src/filter_asset_location.rs +++ b/polkadot/xcm/xcm-builder/src/filter_asset_location.rs @@ -17,8 +17,9 @@ //! Various implementations of `ContainsPair` or //! `Contains<(Location, Vec)>`. +use alloc::vec::Vec; +use core::marker::PhantomData; use frame_support::traits::{Contains, ContainsPair, Get}; -use sp_std::{marker::PhantomData, vec::Vec}; use xcm::latest::{Asset, AssetFilter, AssetId, Location, WildAsset}; /// Accepts an asset iff it is a native asset. @@ -44,7 +45,7 @@ impl> ContainsPair for Case /// implementation of the given `Location` and if every asset from `assets` matches at least one of /// the `AssetFilter` instances provided by the `Get` implementation of `AssetFilters`. pub struct LocationWithAssetFilters( - sp_std::marker::PhantomData<(LocationFilter, AssetFilters)>, + core::marker::PhantomData<(LocationFilter, AssetFilters)>, ); impl, AssetFilters: Get>> Contains<(Location, Vec)> for LocationWithAssetFilters @@ -75,7 +76,7 @@ impl, AssetFilters: Get>> pub struct AllAssets; impl Get> for AllAssets { fn get() -> Vec { - sp_std::vec![AssetFilter::Wild(WildAsset::All)] + alloc::vec![AssetFilter::Wild(WildAsset::All)] } } @@ -96,11 +97,11 @@ mod tests { pub AssetYLocation: Location = Location::new(1, [GeneralIndex(2222)]); pub AssetZLocation: Location = Location::new(1, [GeneralIndex(3333)]); - pub OnlyAssetXOrAssetY: sp_std::vec::Vec = sp_std::vec![ + pub OnlyAssetXOrAssetY: alloc::vec::Vec = alloc::vec![ Wild(AllOf { fun: WildFungible, id: AssetId(AssetXLocation::get()) }), Wild(AllOf { fun: WildFungible, id: AssetId(AssetYLocation::get()) }), ]; - pub OnlyAssetZ: sp_std::vec::Vec = sp_std::vec![ + pub OnlyAssetZ: alloc::vec::Vec = alloc::vec![ Wild(AllOf { fun: WildFungible, id: AssetId(AssetZLocation::get()) }) ]; } diff --git a/polkadot/xcm/xcm-builder/src/fungible_adapter.rs b/polkadot/xcm/xcm-builder/src/fungible_adapter.rs index 45a0e2bdca2..25a705a39eb 100644 --- a/polkadot/xcm/xcm-builder/src/fungible_adapter.rs +++ b/polkadot/xcm/xcm-builder/src/fungible_adapter.rs @@ -17,6 +17,7 @@ //! Adapters to work with [`frame_support::traits::fungible`] through XCM. use super::MintLocation; +use core::{marker::PhantomData, result}; use frame_support::traits::{ tokens::{ fungible, @@ -27,7 +28,6 @@ use frame_support::traits::{ }, Get, }; -use sp_std::{marker::PhantomData, prelude::*, result}; use xcm::latest::prelude::*; use xcm_executor::{ traits::{ConvertLocation, Error as MatchError, MatchesFungible, TransactAsset}, diff --git a/polkadot/xcm/xcm-builder/src/fungibles_adapter.rs b/polkadot/xcm/xcm-builder/src/fungibles_adapter.rs index 88bbf01d9e1..a259afc6e68 100644 --- a/polkadot/xcm/xcm-builder/src/fungibles_adapter.rs +++ b/polkadot/xcm/xcm-builder/src/fungibles_adapter.rs @@ -16,6 +16,7 @@ //! Adapters to work with [`frame_support::traits::fungibles`] through XCM. +use core::{marker::PhantomData, result}; use frame_support::traits::{ tokens::{ fungibles, @@ -26,7 +27,6 @@ use frame_support::traits::{ }, Contains, Get, }; -use sp_std::{marker::PhantomData, prelude::*, result}; use xcm::latest::prelude::*; use xcm_executor::traits::{ConvertLocation, Error as MatchError, MatchesFungibles, TransactAsset}; @@ -101,7 +101,7 @@ impl AssetChecking for NoChecking { /// Implementation of `AssetChecking` which subjects a given set of assets `T` to having their /// teleportations recorded with a `MintLocation::Local`. -pub struct LocalMint(sp_std::marker::PhantomData); +pub struct LocalMint(core::marker::PhantomData); impl> AssetChecking for LocalMint { fn asset_checking(asset: &AssetId) -> Option { match T::contains(asset) { @@ -113,7 +113,7 @@ impl> AssetChecking for LocalMint { /// Implementation of `AssetChecking` which subjects a given set of assets `T` to having their /// teleportations recorded with a `MintLocation::NonLocal`. -pub struct NonLocalMint(sp_std::marker::PhantomData); +pub struct NonLocalMint(core::marker::PhantomData); impl> AssetChecking for NonLocalMint { fn asset_checking(asset: &AssetId) -> Option { match T::contains(asset) { @@ -126,7 +126,7 @@ impl> AssetChecking for NonLocalMint { /// Implementation of `AssetChecking` which subjects a given set of assets `L` to having their /// teleportations recorded with a `MintLocation::Local` and a second set of assets `R` to having /// their teleportations recorded with a `MintLocation::NonLocal`. -pub struct DualMint(sp_std::marker::PhantomData<(L, R)>); +pub struct DualMint(core::marker::PhantomData<(L, R)>); impl, R: Contains> AssetChecking for DualMint { diff --git a/polkadot/xcm/xcm-builder/src/lib.rs b/polkadot/xcm/xcm-builder/src/lib.rs index cc06c298a41..c3495601cd8 100644 --- a/polkadot/xcm/xcm-builder/src/lib.rs +++ b/polkadot/xcm/xcm-builder/src/lib.rs @@ -20,6 +20,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(test)] mod tests; diff --git a/polkadot/xcm/xcm-builder/src/location_conversion.rs b/polkadot/xcm/xcm-builder/src/location_conversion.rs index f9525849238..1d840e9c0dd 100644 --- a/polkadot/xcm/xcm-builder/src/location_conversion.rs +++ b/polkadot/xcm/xcm-builder/src/location_conversion.rs @@ -15,11 +15,12 @@ // along with Polkadot. If not, see . use crate::universal_exports::ensure_is_remote; +use alloc::vec::Vec; use codec::{Compact, Decode, Encode}; +use core::marker::PhantomData; use frame_support::traits::Get; use sp_io::hashing::blake2_256; use sp_runtime::traits::{AccountIdConversion, TrailingZeroInput, TryConvert}; -use sp_std::{marker::PhantomData, prelude::*}; use xcm::latest::prelude::*; use xcm_executor::traits::ConvertLocation; @@ -460,7 +461,9 @@ impl #[cfg(test)] mod tests { use super::*; + use alloc::vec; use polkadot_primitives::AccountId; + pub type ForeignChainAliasAccount = HashedDescription; diff --git a/polkadot/xcm/xcm-builder/src/matches_location.rs b/polkadot/xcm/xcm-builder/src/matches_location.rs index b6c2807e6b2..71c5ec1efd6 100644 --- a/polkadot/xcm/xcm-builder/src/matches_location.rs +++ b/polkadot/xcm/xcm-builder/src/matches_location.rs @@ -17,14 +17,14 @@ //! Various implementations and utilities for matching and filtering `Location` and //! `InteriorLocation` types. +use core::marker::PhantomData; use frame_support::traits::{Contains, Get}; use sp_runtime::traits::MaybeEquivalence; -use sp_std::marker::PhantomData; use xcm::latest::{InteriorLocation, Location, NetworkId}; /// An implementation of `Contains` that checks for `Location` or /// `InteriorLocation` if starts with the provided type `T`. -pub struct StartsWith(sp_std::marker::PhantomData<(T, L)>); +pub struct StartsWith(core::marker::PhantomData<(T, L)>); impl, L: TryInto + Clone> Contains for StartsWith { fn contains(location: &L) -> bool { let latest_location: Location = @@ -42,7 +42,7 @@ impl> Contains for StartsWith { /// An implementation of `Contains` that checks for `Location` or /// `InteriorLocation` if starts with expected `GlobalConsensus(NetworkId)` provided as type /// `T`. -pub struct StartsWithExplicitGlobalConsensus(sp_std::marker::PhantomData); +pub struct StartsWithExplicitGlobalConsensus(core::marker::PhantomData); impl> Contains for StartsWithExplicitGlobalConsensus { fn contains(location: &Location) -> bool { matches!(location.interior().global_consensus(), Ok(requested_network) if requested_network.eq(&T::get())) diff --git a/polkadot/xcm/xcm-builder/src/matches_token.rs b/polkadot/xcm/xcm-builder/src/matches_token.rs index e49fd18f88d..095c50a5a25 100644 --- a/polkadot/xcm/xcm-builder/src/matches_token.rs +++ b/polkadot/xcm/xcm-builder/src/matches_token.rs @@ -16,8 +16,8 @@ //! Various implementations for the `MatchesFungible` trait. +use core::marker::PhantomData; use frame_support::traits::Get; -use sp_std::marker::PhantomData; use xcm::latest::{ Asset, AssetId, AssetInstance, Fungibility::{Fungible, NonFungible}, diff --git a/polkadot/xcm/xcm-builder/src/nonfungible_adapter.rs b/polkadot/xcm/xcm-builder/src/nonfungible_adapter.rs index b69002eafc5..8e6232ea64d 100644 --- a/polkadot/xcm/xcm-builder/src/nonfungible_adapter.rs +++ b/polkadot/xcm/xcm-builder/src/nonfungible_adapter.rs @@ -17,11 +17,11 @@ //! Adapters to work with [`frame_support::traits::tokens::nonfungible`] through XCM. use crate::MintLocation; +use core::{marker::PhantomData, result}; use frame_support::{ ensure, traits::{tokens::nonfungible, Get}, }; -use sp_std::{marker::PhantomData, prelude::*, result}; use xcm::latest::prelude::*; use xcm_executor::traits::{ ConvertLocation, Error as MatchError, MatchesNonFungible, TransactAsset, diff --git a/polkadot/xcm/xcm-builder/src/nonfungibles_adapter.rs b/polkadot/xcm/xcm-builder/src/nonfungibles_adapter.rs index 3fce953848e..b111a05a4f1 100644 --- a/polkadot/xcm/xcm-builder/src/nonfungibles_adapter.rs +++ b/polkadot/xcm/xcm-builder/src/nonfungibles_adapter.rs @@ -17,11 +17,11 @@ //! Adapters to work with [`frame_support::traits::tokens::nonfungibles`] through XCM. use crate::{AssetChecking, MintLocation}; +use core::{marker::PhantomData, result}; use frame_support::{ ensure, traits::{tokens::nonfungibles, Get}, }; -use sp_std::{marker::PhantomData, prelude::*, result}; use xcm::latest::prelude::*; use xcm_executor::traits::{ ConvertLocation, Error as MatchError, MatchesNonFungibles, TransactAsset, diff --git a/polkadot/xcm/xcm-builder/src/origin_aliases.rs b/polkadot/xcm/xcm-builder/src/origin_aliases.rs index bbf810463a7..d568adc3127 100644 --- a/polkadot/xcm/xcm-builder/src/origin_aliases.rs +++ b/polkadot/xcm/xcm-builder/src/origin_aliases.rs @@ -16,8 +16,8 @@ //! Implementation for `ContainsPair`. +use core::marker::PhantomData; use frame_support::traits::{Contains, ContainsPair}; -use sp_std::marker::PhantomData; use xcm::latest::prelude::*; /// Alias a Foreign `AccountId32` with a local `AccountId32` if the foreign `AccountId32` matches diff --git a/polkadot/xcm/xcm-builder/src/origin_conversion.rs b/polkadot/xcm/xcm-builder/src/origin_conversion.rs index f64b5660f66..6e73c0dae7b 100644 --- a/polkadot/xcm/xcm-builder/src/origin_conversion.rs +++ b/polkadot/xcm/xcm-builder/src/origin_conversion.rs @@ -16,11 +16,11 @@ //! Various implementations for `ConvertOrigin`. +use core::marker::PhantomData; use frame_support::traits::{EnsureOrigin, Get, GetBacking, OriginTrait}; use frame_system::RawOrigin as SystemRawOrigin; use polkadot_parachain_primitives::primitives::IsSystem; use sp_runtime::traits::TryConvert; -use sp_std::marker::PhantomData; use xcm::latest::{BodyId, BodyPart, Junction, Junctions::*, Location, NetworkId, OriginKind}; use xcm_executor::traits::{ConvertLocation, ConvertOrigin}; diff --git a/polkadot/xcm/xcm-builder/src/pay.rs b/polkadot/xcm/xcm-builder/src/pay.rs index 35b624b0415..978c6870cda 100644 --- a/polkadot/xcm/xcm-builder/src/pay.rs +++ b/polkadot/xcm/xcm-builder/src/pay.rs @@ -16,12 +16,13 @@ //! `PayOverXcm` struct for paying through XCM and getting the status back. +use alloc::vec; +use core::marker::PhantomData; use frame_support::traits::{ tokens::{Pay, PaymentStatus}, Get, }; use sp_runtime::traits::TryConvert; -use sp_std::{marker::PhantomData, vec}; use xcm::{opaque::lts::Weight, prelude::*}; use xcm_executor::traits::{QueryHandler, QueryResponseStatus}; @@ -199,7 +200,7 @@ pub struct LocatableAssetId { /// Adapter `struct` which implements a conversion from any `AssetKind` into a [`LocatableAssetId`] /// value using a fixed `Location` for the `location` field. -pub struct FixedLocation(sp_std::marker::PhantomData); +pub struct FixedLocation(core::marker::PhantomData); impl, AssetKind: Into> TryConvert for FixedLocation { diff --git a/polkadot/xcm/xcm-builder/src/process_xcm_message.rs b/polkadot/xcm/xcm-builder/src/process_xcm_message.rs index ef8c71fc249..2e6f8c5fb56 100644 --- a/polkadot/xcm/xcm-builder/src/process_xcm_message.rs +++ b/polkadot/xcm/xcm-builder/src/process_xcm_message.rs @@ -17,9 +17,9 @@ //! Implementation of `ProcessMessage` for an `ExecuteXcm` implementation. use codec::{Decode, FullCodec, MaxEncodedLen}; +use core::{fmt::Debug, marker::PhantomData}; use frame_support::traits::{ProcessMessage, ProcessMessageError}; use scale_info::TypeInfo; -use sp_std::{fmt::Debug, marker::PhantomData}; use sp_weights::{Weight, WeightMeter}; use xcm::prelude::*; @@ -118,6 +118,7 @@ impl< #[cfg(test)] mod tests { use super::*; + use alloc::vec; use codec::Encode; use frame_support::{ assert_err, assert_ok, diff --git a/polkadot/xcm/xcm-builder/src/routing.rs b/polkadot/xcm/xcm-builder/src/routing.rs index 543aef97c34..03ef780ef03 100644 --- a/polkadot/xcm/xcm-builder/src/routing.rs +++ b/polkadot/xcm/xcm-builder/src/routing.rs @@ -16,9 +16,10 @@ //! Various implementations for `SendXcm`. +use alloc::vec::Vec; use codec::Encode; +use core::{marker::PhantomData, result::Result}; use frame_system::unique; -use sp_std::{marker::PhantomData, result::Result, vec::Vec}; use xcm::prelude::*; use xcm_executor::{traits::FeeReason, FeesMode}; @@ -173,7 +174,7 @@ impl InspectMessageQueues for Tuple { /// `Inner::Ticket`. Therefore, this router aims to validate at least the passed `message`. /// /// NOTE: For use in mock runtimes which don't have the DMP/UMP/HRMP XCM validations. -pub struct EnsureDecodableXcm(sp_std::marker::PhantomData); +pub struct EnsureDecodableXcm(core::marker::PhantomData); impl SendXcm for EnsureDecodableXcm { type Ticket = Inner::Ticket; diff --git a/polkadot/xcm/xcm-builder/src/test_utils.rs b/polkadot/xcm/xcm-builder/src/test_utils.rs index 3131dece375..37a49a1b3dc 100644 --- a/polkadot/xcm/xcm-builder/src/test_utils.rs +++ b/polkadot/xcm/xcm-builder/src/test_utils.rs @@ -16,11 +16,11 @@ // Shared test utilities and implementations for the XCM Builder. +use alloc::vec::Vec; use frame_support::{ parameter_types, traits::{Contains, CrateVersion, PalletInfoData, PalletsInfoAccess}, }; -use sp_std::vec::Vec; pub use xcm::latest::{prelude::*, Weight}; use xcm_executor::traits::{ClaimAssets, DropAssets, VersionChangeNotifier}; pub use xcm_executor::{ diff --git a/polkadot/xcm/xcm-builder/src/tests/mock.rs b/polkadot/xcm/xcm-builder/src/tests/mock.rs index f35c73bdb68..ac43d217ff3 100644 --- a/polkadot/xcm/xcm-builder/src/tests/mock.rs +++ b/polkadot/xcm/xcm-builder/src/tests/mock.rs @@ -26,7 +26,12 @@ pub use crate::{ AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, FixedRateOfFungible, FixedWeightBounds, TakeWeightCredit, }; +pub use alloc::collections::{btree_map::BTreeMap, btree_set::BTreeSet}; pub use codec::{Decode, Encode}; +pub use core::{ + cell::{Cell, RefCell}, + fmt::Debug, +}; use frame_support::traits::{ContainsPair, Everything}; pub use frame_support::{ dispatch::{DispatchInfo, DispatchResultWithPostInfo, GetDispatchInfo, PostDispatchInfo}, @@ -34,11 +39,6 @@ pub use frame_support::{ sp_runtime::{traits::Dispatchable, DispatchError, DispatchErrorWithPostInfo}, traits::{Contains, Get, IsInVec}, }; -pub use sp_std::{ - cell::{Cell, RefCell}, - collections::{btree_map::BTreeMap, btree_set::BTreeSet}, - fmt::Debug, -}; pub use xcm::latest::{prelude::*, QueryId, Weight}; use xcm_executor::traits::{Properties, QueryHandler, QueryResponseStatus}; pub use xcm_executor::{ diff --git a/polkadot/xcm/xcm-builder/src/tests/mod.rs b/polkadot/xcm/xcm-builder/src/tests/mod.rs index 16ce3d2cf8f..379baaf5e37 100644 --- a/polkadot/xcm/xcm-builder/src/tests/mod.rs +++ b/polkadot/xcm/xcm-builder/src/tests/mod.rs @@ -15,6 +15,7 @@ // along with Polkadot. If not, see . use super::{test_utils::*, *}; +use alloc::{vec, vec::Vec}; use frame_support::{ assert_err, traits::{ConstU32, ContainsPair, ProcessMessageError}, diff --git a/polkadot/xcm/xcm-builder/src/universal_exports.rs b/polkadot/xcm/xcm-builder/src/universal_exports.rs index 9820d535f7e..8aa9602fcc2 100644 --- a/polkadot/xcm/xcm-builder/src/universal_exports.rs +++ b/polkadot/xcm/xcm-builder/src/universal_exports.rs @@ -17,9 +17,10 @@ //! Traits and utilities to help with origin mutation and bridging. use crate::InspectMessageQueues; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; +use core::{convert::TryInto, marker::PhantomData}; use frame_support::{ensure, traits::Get}; -use sp_std::{convert::TryInto, marker::PhantomData, prelude::*}; use xcm::prelude::*; use xcm_executor::traits::{validate_export, ExportXcm}; use SendError::*; @@ -149,7 +150,7 @@ impl NetworkExportTableItem { /// An adapter for the implementation of `ExporterFor`, which attempts to find the /// `(bridge_location, payment)` for the requested `network` and `remote_location` in the provided /// `T` table containing various exporters. -pub struct NetworkExportTable(sp_std::marker::PhantomData); +pub struct NetworkExportTable(core::marker::PhantomData); impl>> ExporterFor for NetworkExportTable { fn exporter_for( network: &NetworkId, @@ -649,7 +650,7 @@ mod tests { pub PaymentForNetworkAAndParachain2000: Asset = (Location::parent(), 150).into(); - pub BridgeTable: sp_std::vec::Vec = sp_std::vec![ + pub BridgeTable: alloc::vec::Vec = alloc::vec![ // NetworkA allows `Parachain(1000)` as remote location WITHOUT payment. NetworkExportTableItem::new( NetworkA::get(), diff --git a/polkadot/xcm/xcm-builder/src/weight.rs b/polkadot/xcm/xcm-builder/src/weight.rs index 1efa42ce956..7861fdcc2e5 100644 --- a/polkadot/xcm/xcm-builder/src/weight.rs +++ b/polkadot/xcm/xcm-builder/src/weight.rs @@ -15,6 +15,7 @@ // along with Polkadot. If not, see . use codec::Decode; +use core::{marker::PhantomData, result::Result}; use frame_support::{ dispatch::GetDispatchInfo, traits::{ @@ -27,7 +28,6 @@ use frame_support::{ }, }; use sp_runtime::traits::{SaturatedConversion, Saturating, Zero}; -use sp_std::{marker::PhantomData, result::Result}; use xcm::latest::{prelude::*, GetWeight, Weight}; use xcm_executor::{ traits::{WeightBounds, WeightTrader}, diff --git a/polkadot/xcm/xcm-builder/tests/mock/mod.rs b/polkadot/xcm/xcm-builder/tests/mock/mod.rs index 582d596b78f..0468b0a5410 100644 --- a/polkadot/xcm/xcm-builder/tests/mock/mod.rs +++ b/polkadot/xcm/xcm-builder/tests/mock/mod.rs @@ -15,6 +15,7 @@ // along with Polkadot. If not, see . use codec::Encode; +use core::cell::RefCell; use frame_support::{ construct_runtime, derive_impl, parameter_types, traits::{Everything, Nothing}, @@ -23,7 +24,6 @@ use frame_support::{ use frame_system::EnsureRoot; use primitive_types::H256; use sp_runtime::{traits::IdentityLookup, AccountId32, BuildStorage}; -use sp_std::cell::RefCell; use polkadot_parachain_primitives::primitives::Id as ParaId; use polkadot_runtime_parachains::{configuration, origin, shared}; diff --git a/polkadot/xcm/xcm-executor/Cargo.toml b/polkadot/xcm/xcm-executor/Cargo.toml index 7d1fc48692f..cc966f91fe4 100644 --- a/polkadot/xcm/xcm-executor/Cargo.toml +++ b/polkadot/xcm/xcm-executor/Cargo.toml @@ -15,7 +15,6 @@ environmental = { workspace = true } codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive", "serde"], workspace = true } xcm = { workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } sp-arithmetic = { workspace = true } sp-core = { workspace = true } @@ -42,7 +41,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-weights/std", "tracing/std", "xcm/std", diff --git a/polkadot/xcm/xcm-executor/src/assets.rs b/polkadot/xcm/xcm-executor/src/assets.rs index 4407752f702..09e7535ebf8 100644 --- a/polkadot/xcm/xcm-executor/src/assets.rs +++ b/polkadot/xcm/xcm-executor/src/assets.rs @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -use sp_runtime::{traits::Saturating, RuntimeDebug}; -use sp_std::{ +use alloc::{ collections::{btree_map::BTreeMap, btree_set::BTreeSet}, - mem, - prelude::*, + vec::Vec, }; +use core::mem; +use sp_runtime::{traits::Saturating, RuntimeDebug}; use xcm::latest::{ Asset, AssetFilter, AssetId, AssetInstance, Assets, Fungibility::{Fungible, NonFungible}, @@ -520,7 +520,9 @@ impl AssetsInHolding { #[cfg(test)] mod tests { use super::*; + use alloc::vec; use xcm::latest::prelude::*; + #[allow(non_snake_case)] /// Concrete fungible constructor fn CF(amount: u128) -> Asset { diff --git a/polkadot/xcm/xcm-executor/src/lib.rs b/polkadot/xcm/xcm-executor/src/lib.rs index aeeb24dcf81..1daf5ae750c 100644 --- a/polkadot/xcm/xcm-executor/src/lib.rs +++ b/polkadot/xcm/xcm-executor/src/lib.rs @@ -16,7 +16,11 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; +use core::{fmt::Debug, marker::PhantomData}; use frame_support::{ dispatch::GetDispatchInfo, ensure, @@ -24,7 +28,6 @@ use frame_support::{ }; use sp_core::defer; use sp_io::hashing::blake2_128; -use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; use sp_weights::Weight; use xcm::latest::prelude::*; @@ -392,7 +395,7 @@ impl XcmExecutor { /// Remove the registered error handler and return it. Do not refund its weight. fn take_error_handler(&mut self) -> Xcm { let mut r = Xcm::(vec![]); - sp_std::mem::swap(&mut self.error_handler, &mut r); + core::mem::swap(&mut self.error_handler, &mut r); self.error_handler_weight = Weight::zero(); r } @@ -407,7 +410,7 @@ impl XcmExecutor { /// Remove the registered appendix and return it. fn take_appendix(&mut self) -> Xcm { let mut r = Xcm::(vec![]); - sp_std::mem::swap(&mut self.appendix, &mut r); + core::mem::swap(&mut self.appendix, &mut r); self.appendix_weight = Weight::zero(); r } diff --git a/polkadot/xcm/xcm-executor/src/traits/asset_lock.rs b/polkadot/xcm/xcm-executor/src/traits/asset_lock.rs index b6270c52945..b4e9f32983f 100644 --- a/polkadot/xcm/xcm-executor/src/traits/asset_lock.rs +++ b/polkadot/xcm/xcm-executor/src/traits/asset_lock.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -use sp_std::convert::Infallible; +use core::convert::Infallible; use xcm::prelude::*; #[derive(Debug)] diff --git a/polkadot/xcm/xcm-executor/src/traits/conversion.rs b/polkadot/xcm/xcm-executor/src/traits/conversion.rs index 1efe138b8c2..bc62ad65566 100644 --- a/polkadot/xcm/xcm-executor/src/traits/conversion.rs +++ b/polkadot/xcm/xcm-executor/src/traits/conversion.rs @@ -14,9 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +use core::{marker::PhantomData, result::Result}; use frame_support::traits::{Contains, OriginTrait}; use sp_runtime::{traits::Dispatchable, DispatchErrorWithPostInfo}; -use sp_std::{marker::PhantomData, result::Result}; use xcm::latest::prelude::*; /// Means of converting a location into an account identifier. diff --git a/polkadot/xcm/xcm-executor/src/traits/on_response.rs b/polkadot/xcm/xcm-executor/src/traits/on_response.rs index 5d2412d6137..a4ed6014b4f 100644 --- a/polkadot/xcm/xcm-executor/src/traits/on_response.rs +++ b/polkadot/xcm/xcm-executor/src/traits/on_response.rs @@ -16,10 +16,9 @@ use crate::{Junctions::Here, Xcm}; use codec::{Decode, Encode}; -use core::result; +use core::{fmt::Debug, result}; use frame_support::{pallet_prelude::Get, parameter_types}; use sp_arithmetic::traits::Zero; -use sp_std::fmt::Debug; use xcm::latest::{ Error as XcmError, InteriorLocation, Location, QueryId, Response, Result as XcmResult, Weight, XcmContext, diff --git a/polkadot/xcm/xcm-executor/src/traits/should_execute.rs b/polkadot/xcm/xcm-executor/src/traits/should_execute.rs index 2e3acf5960e..ec9ef70cc81 100644 --- a/polkadot/xcm/xcm-executor/src/traits/should_execute.rs +++ b/polkadot/xcm/xcm-executor/src/traits/should_execute.rs @@ -14,8 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +use core::result::Result; use frame_support::traits::ProcessMessageError; -use sp_std::result::Result; use xcm::latest::{Instruction, Location, Weight, XcmHash}; /// Properties of an XCM message and its imminent execution. diff --git a/polkadot/xcm/xcm-executor/src/traits/token_matching.rs b/polkadot/xcm/xcm-executor/src/traits/token_matching.rs index 45f3dc062a6..aa44aee4f9d 100644 --- a/polkadot/xcm/xcm-executor/src/traits/token_matching.rs +++ b/polkadot/xcm/xcm-executor/src/traits/token_matching.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -use sp_std::result; +use core::result; use xcm::latest::prelude::*; pub trait MatchesFungible { diff --git a/polkadot/xcm/xcm-executor/src/traits/transact_asset.rs b/polkadot/xcm/xcm-executor/src/traits/transact_asset.rs index eb85af0b80f..c2331f805b4 100644 --- a/polkadot/xcm/xcm-executor/src/traits/transact_asset.rs +++ b/polkadot/xcm/xcm-executor/src/traits/transact_asset.rs @@ -15,7 +15,7 @@ // along with Polkadot. If not, see . use crate::AssetsInHolding; -use sp_std::result::Result; +use core::result::Result; use xcm::latest::{Asset, Error as XcmError, Location, Result as XcmResult, XcmContext}; /// Facility for asset transacting. diff --git a/polkadot/xcm/xcm-executor/src/traits/weight.rs b/polkadot/xcm/xcm-executor/src/traits/weight.rs index 985dfcd0cf2..72de3e0f433 100644 --- a/polkadot/xcm/xcm-executor/src/traits/weight.rs +++ b/polkadot/xcm/xcm-executor/src/traits/weight.rs @@ -15,7 +15,7 @@ // along with Polkadot. If not, see . use crate::AssetsInHolding; -use sp_std::result::Result; +use core::result::Result; use xcm::latest::{prelude::*, Weight}; /// Determine the weight of an XCM message. diff --git a/polkadot/xcm/xcm-runtime-apis/Cargo.toml b/polkadot/xcm/xcm-runtime-apis/Cargo.toml index 7d3f1a20b63..748d5af68a1 100644 --- a/polkadot/xcm/xcm-runtime-apis/Cargo.toml +++ b/polkadot/xcm/xcm-runtime-apis/Cargo.toml @@ -16,7 +16,6 @@ scale-info = { features = ["derive", "serde"], workspace = true } frame-support = { workspace = true } sp-api = { workspace = true } -sp-std = { workspace = true } sp-weights = { workspace = true } xcm = { workspace = true } xcm-executor = { workspace = true } @@ -48,7 +47,6 @@ std = [ "scale-info/std", "sp-api/std", "sp-io/std", - "sp-std/std", "sp-weights/std", "xcm-builder/std", "xcm-executor/std", diff --git a/polkadot/xcm/xcm-runtime-apis/src/conversions.rs b/polkadot/xcm/xcm-runtime-apis/src/conversions.rs index d422664557e..e5eeac013fe 100644 --- a/polkadot/xcm/xcm-runtime-apis/src/conversions.rs +++ b/polkadot/xcm/xcm-runtime-apis/src/conversions.rs @@ -44,7 +44,7 @@ pub enum Error { /// It is useful when you already have a `ConvertLocation` implementation and a default /// `Ss58Prefix`. pub struct LocationToAccountHelper( - sp_std::marker::PhantomData<(AccountId, Conversion)>, + core::marker::PhantomData<(AccountId, Conversion)>, ); impl> LocationToAccountHelper diff --git a/polkadot/xcm/xcm-runtime-apis/src/dry_run.rs b/polkadot/xcm/xcm-runtime-apis/src/dry_run.rs index 9828acab402..2a1a0daf0d5 100644 --- a/polkadot/xcm/xcm-runtime-apis/src/dry_run.rs +++ b/polkadot/xcm/xcm-runtime-apis/src/dry_run.rs @@ -18,9 +18,9 @@ //! This API can be used to simulate XCMs and, for example, find the fees //! that need to be paid. +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::pallet_prelude::{DispatchResultWithPostInfo, TypeInfo}; -use sp_std::vec::Vec; use xcm::prelude::*; /// Effects of dry-running an extrinsic. diff --git a/polkadot/xcm/xcm-runtime-apis/src/fees.rs b/polkadot/xcm/xcm-runtime-apis/src/fees.rs index 572d4edf533..3445d42ecab 100644 --- a/polkadot/xcm/xcm-runtime-apis/src/fees.rs +++ b/polkadot/xcm/xcm-runtime-apis/src/fees.rs @@ -16,9 +16,9 @@ //! Runtime API definition for getting XCM fees. +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::pallet_prelude::TypeInfo; -use sp_std::vec::Vec; use sp_weights::Weight; use xcm::{Version, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm}; diff --git a/polkadot/xcm/xcm-runtime-apis/src/lib.rs b/polkadot/xcm/xcm-runtime-apis/src/lib.rs index 7b3b86214b3..b106836c113 100644 --- a/polkadot/xcm/xcm-runtime-apis/src/lib.rs +++ b/polkadot/xcm/xcm-runtime-apis/src/lib.rs @@ -18,6 +18,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + /// Exposes runtime APIs for various XCM-related conversions. pub mod conversions; diff --git a/polkadot/xcm/xcm-runtime-apis/tests/mock.rs b/polkadot/xcm/xcm-runtime-apis/tests/mock.rs index e723e254635..c76b26fcd2a 100644 --- a/polkadot/xcm/xcm-runtime-apis/tests/mock.rs +++ b/polkadot/xcm/xcm-runtime-apis/tests/mock.rs @@ -18,6 +18,7 @@ //! Implements both runtime APIs for fee estimation and getting the messages for transfers. use codec::Encode; +use core::{cell::RefCell, marker::PhantomData}; use frame_support::{ construct_runtime, derive_impl, parameter_types, sp_runtime, sp_runtime::{ @@ -32,7 +33,6 @@ use frame_support::{ }; use frame_system::{EnsureRoot, RawOrigin as SystemRawOrigin}; use pallet_xcm::TestWeightInfo; -use sp_std::{cell::RefCell, marker::PhantomData}; use xcm::{prelude::*, Version as XcmVersion}; use xcm_builder::{ AllowTopLevelPaidExecutionFrom, ConvertedConcreteId, EnsureXcmOrigin, FixedRateOfFungible, diff --git a/polkadot/xcm/xcm-simulator/example/src/parachain/mod.rs b/polkadot/xcm/xcm-simulator/example/src/parachain/mod.rs index 93c8302757c..bfb455aba3f 100644 --- a/polkadot/xcm/xcm-simulator/example/src/parachain/mod.rs +++ b/polkadot/xcm/xcm-simulator/example/src/parachain/mod.rs @@ -31,7 +31,6 @@ use sp_runtime::{ traits::{Get, IdentityLookup}, AccountId32, }; -use sp_std::prelude::*; use xcm::latest::prelude::*; use xcm_builder::{EnsureXcmOrigin, SignedToAccountId32}; use xcm_executor::{traits::ConvertLocation, XcmExecutor}; @@ -101,7 +100,7 @@ impl EnsureOriginWithArg for ForeignCreators { fn try_origin( o: RuntimeOrigin, a: &Location, - ) -> sp_std::result::Result { + ) -> core::result::Result { let origin_location = pallet_xcm::EnsureXcm::::try_origin(o.clone())?; if !a.starts_with(&origin_location) { return Err(o); diff --git a/polkadot/xcm/xcm-simulator/fuzzer/src/parachain.rs b/polkadot/xcm/xcm-simulator/fuzzer/src/parachain.rs index 11435868d46..616329a2f06 100644 --- a/polkadot/xcm/xcm-simulator/fuzzer/src/parachain.rs +++ b/polkadot/xcm/xcm-simulator/fuzzer/src/parachain.rs @@ -29,7 +29,6 @@ use sp_runtime::{ traits::{AccountIdLookup, BlakeTwo256, Hash, IdentifyAccount, Verify}, MultiAddress, MultiSignature, }; -use sp_std::prelude::*; use pallet_xcm::XcmPassthrough; use polkadot_core_primitives::BlockNumber as RelayBlockNumber; diff --git a/polkadot/xcm/xcm-simulator/src/lib.rs b/polkadot/xcm/xcm-simulator/src/lib.rs index a6747a4789e..59df394406e 100644 --- a/polkadot/xcm/xcm-simulator/src/lib.rs +++ b/polkadot/xcm/xcm-simulator/src/lib.rs @@ -20,15 +20,18 @@ /// Used for sending messages. pub mod mock_message_queue; +extern crate alloc; + pub use codec::Encode; pub use paste; +pub use alloc::collections::vec_deque::VecDeque; +pub use core::{cell::RefCell, marker::PhantomData}; pub use frame_support::{ traits::{EnqueueMessage, Get, ProcessMessage, ProcessMessageError, ServiceQueues}, weights::{Weight, WeightMeter}, }; pub use sp_io::{hashing::blake2_256, TestExternalities}; -pub use sp_std::{cell::RefCell, collections::vec_deque::VecDeque, marker::PhantomData}; pub use polkadot_core_primitives::BlockNumber as RelayBlockNumber; pub use polkadot_parachain_primitives::primitives::{ diff --git a/polkadot/xcm/xcm-simulator/src/mock_message_queue.rs b/polkadot/xcm/xcm-simulator/src/mock_message_queue.rs index 96b47999fe9..bf7b0e15967 100644 --- a/polkadot/xcm/xcm-simulator/src/mock_message_queue.rs +++ b/polkadot/xcm/xcm-simulator/src/mock_message_queue.rs @@ -24,7 +24,6 @@ use polkadot_parachain_primitives::primitives::{ use polkadot_primitives::BlockNumber as RelayBlockNumber; use sp_runtime::traits::{Get, Hash}; -use sp_std::prelude::*; use xcm::{latest::prelude::*, VersionedXcm}; pub use pallet::*; diff --git a/substrate/bin/node/runtime/src/assets_api.rs b/substrate/bin/node/runtime/src/assets_api.rs index 38ec5650711..98187e7391f 100644 --- a/substrate/bin/node/runtime/src/assets_api.rs +++ b/substrate/bin/node/runtime/src/assets_api.rs @@ -20,8 +20,8 @@ use polkadot_sdk::*; +use alloc::vec::Vec; use codec::Codec; -use sp_std::vec::Vec; sp_api::decl_runtime_apis! { pub trait AssetsApi diff --git a/substrate/bin/node/runtime/src/impls.rs b/substrate/bin/node/runtime/src/impls.rs index dbe562857c9..6c121fad624 100644 --- a/substrate/bin/node/runtime/src/impls.rs +++ b/substrate/bin/node/runtime/src/impls.rs @@ -17,8 +17,7 @@ //! Some configurable implementations as associated type for the substrate runtime. -use polkadot_sdk::*; - +use alloc::boxed::Box; use frame_support::{ pallet_prelude::*, traits::{ @@ -29,7 +28,7 @@ use frame_support::{ use pallet_alliance::{IdentityVerifier, ProposalIndex, ProposalProvider}; use pallet_asset_tx_payment::HandleCredit; use pallet_identity::legacy::IdentityField; -use sp_std::prelude::*; +use polkadot_sdk::*; use crate::{ AccountId, AllianceCollective, AllianceMotion, Assets, Authorship, Balances, Hash, diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index fc87fea57ba..2d1f52066f8 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -22,8 +22,11 @@ // `construct_runtime!` does a lot of recursion and requires us to increase the limits. #![recursion_limit = "1024"] +extern crate alloc; + use polkadot_sdk::*; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use frame_election_provider_support::{ bounds::{ElectionBounds, ElectionBoundsBuilder}, @@ -100,7 +103,6 @@ use sp_runtime::{ ApplyExtrinsicResult, FixedPointNumber, FixedU128, Perbill, Percent, Permill, Perquintill, RuntimeDebug, }; -use sp_std::prelude::*; #[cfg(any(feature = "std", test))] use sp_version::NativeVersion; use sp_version::RuntimeVersion; @@ -2660,7 +2662,7 @@ impl_runtime_apis! { Runtime::metadata_at_version(version) } - fn metadata_versions() -> sp_std::vec::Vec { + fn metadata_versions() -> alloc::vec::Vec { Runtime::metadata_versions() } } diff --git a/substrate/client/executor/runtime-test/Cargo.toml b/substrate/client/executor/runtime-test/Cargo.toml index 5f5e7eb46d6..d132f47ff87 100644 --- a/substrate/client/executor/runtime-test/Cargo.toml +++ b/substrate/client/executor/runtime-test/Cargo.toml @@ -20,7 +20,6 @@ sp-core = { workspace = true } sp-io = { features = ["improved_panic_error_reporting"], workspace = true } sp-runtime = { workspace = true } sp-runtime-interface = { workspace = true } -sp-std = { workspace = true } [build-dependencies] substrate-wasm-builder = { optional = true, workspace = true, default-features = true } @@ -32,6 +31,5 @@ std = [ "sp-io/std", "sp-runtime-interface/std", "sp-runtime/std", - "sp-std/std", "substrate-wasm-builder", ] diff --git a/substrate/client/executor/runtime-test/src/lib.rs b/substrate/client/executor/runtime-test/src/lib.rs index 40683fbb664..08a5e39dff2 100644 --- a/substrate/client/executor/runtime-test/src/lib.rs +++ b/substrate/client/executor/runtime-test/src/lib.rs @@ -32,7 +32,10 @@ pub fn wasm_binary_unwrap() -> &'static [u8] { } #[cfg(not(feature = "std"))] -use sp_std::{vec, vec::Vec}; +extern crate alloc; + +#[cfg(not(feature = "std"))] +use alloc::{vec, vec::Vec}; #[cfg(not(feature = "std"))] use sp_core::{ed25519, sr25519}; @@ -332,7 +335,7 @@ sp_core::wasm_export_functions! { let test_message = b"Hello invalid heap memory"; let ptr = (heap_base + offset) as *mut u8; - let message_slice = unsafe { sp_std::slice::from_raw_parts_mut(ptr, test_message.len()) }; + let message_slice = unsafe { alloc::slice::from_raw_parts_mut(ptr, test_message.len()) }; assert_ne!(test_message, message_slice); message_slice.copy_from_slice(test_message); diff --git a/substrate/client/sysinfo/src/sysinfo.rs b/substrate/client/sysinfo/src/sysinfo.rs index 3fa583cf7ac..37b35fcb910 100644 --- a/substrate/client/sysinfo/src/sysinfo.rs +++ b/substrate/client/sysinfo/src/sysinfo.rs @@ -21,13 +21,13 @@ use crate::{ExecutionLimit, HwBench}; use sc_telemetry::SysInfo; use sp_core::{sr25519, Pair}; use sp_io::crypto::sr25519_verify; -use sp_std::{fmt, fmt::Formatter, prelude::*}; use derive_more::From; use rand::{seq::SliceRandom, Rng, RngCore}; use serde::{de::Visitor, Deserialize, Deserializer, Serialize, Serializer}; use std::{ - fmt::Display, + fmt, + fmt::{Display, Formatter}, fs::File, io::{Seek, SeekFrom, Write}, ops::{Deref, DerefMut}, diff --git a/substrate/frame/Cargo.toml b/substrate/frame/Cargo.toml index 594cb505cd6..41ece6c9a27 100644 --- a/substrate/frame/Cargo.toml +++ b/substrate/frame/Cargo.toml @@ -27,7 +27,6 @@ scale-info = { features = [ # primitive deps, used for developing FRAME pallets. sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } sp-core = { workspace = true } sp-arithmetic = { workspace = true } @@ -104,7 +103,6 @@ std = [ "sp-offchain?/std", "sp-runtime/std", "sp-session?/std", - "sp-std/std", "sp-storage/std", "sp-transaction-pool?/std", "sp-version?/std", diff --git a/substrate/frame/alliance/Cargo.toml b/substrate/frame/alliance/Cargo.toml index 7ad9961d9b8..451b86b35dd 100644 --- a/substrate/frame/alliance/Cargo.toml +++ b/substrate/frame/alliance/Cargo.toml @@ -22,7 +22,6 @@ log = { workspace = true } codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive"], workspace = true } -sp-std = { workspace = true } sp-core = { workspace = true } sp-crypto-hashing = { optional = true, workspace = true } sp-io = { workspace = true } @@ -57,7 +56,6 @@ std = [ "sp-crypto-hashing?/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "array-bytes", diff --git a/substrate/frame/alliance/src/lib.rs b/substrate/frame/alliance/src/lib.rs index ed771c7226e..be65f49e6e4 100644 --- a/substrate/frame/alliance/src/lib.rs +++ b/substrate/frame/alliance/src/lib.rs @@ -94,6 +94,9 @@ pub mod migration; mod types; pub mod weights; +extern crate alloc; + +use alloc::{boxed::Box, vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; @@ -101,7 +104,6 @@ use sp_runtime::{ traits::{Dispatchable, Saturating, StaticLookup, Zero}, DispatchError, RuntimeDebug, }; -use sp_std::prelude::*; use frame_support::{ dispatch::{DispatchResult, DispatchResultWithPostInfo, GetDispatchInfo, PostDispatchInfo}, diff --git a/substrate/frame/alliance/src/types.rs b/substrate/frame/alliance/src/types.rs index 149030b52c6..75b949c19b3 100644 --- a/substrate/frame/alliance/src/types.rs +++ b/substrate/frame/alliance/src/types.rs @@ -15,11 +15,11 @@ // See the License for the specific language governing permissions and // limitations under the License. +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{traits::ConstU32, BoundedVec}; use scale_info::TypeInfo; use sp_runtime::RuntimeDebug; -use sp_std::prelude::*; /// A Multihash instance that only supports the basic functionality and no hashing. #[derive( diff --git a/substrate/frame/asset-conversion/Cargo.toml b/substrate/frame/asset-conversion/Cargo.toml index 27d86bf6710..4e867ece1bd 100644 --- a/substrate/frame/asset-conversion/Cargo.toml +++ b/substrate/frame/asset-conversion/Cargo.toml @@ -25,7 +25,6 @@ scale-info = { features = ["derive"], workspace = true } sp-api = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } sp-arithmetic = { workspace = true } @@ -51,7 +50,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/asset-conversion/ops/Cargo.toml b/substrate/frame/asset-conversion/ops/Cargo.toml index 0dc6cd5b167..97a676fde10 100644 --- a/substrate/frame/asset-conversion/ops/Cargo.toml +++ b/substrate/frame/asset-conversion/ops/Cargo.toml @@ -24,7 +24,6 @@ pallet-asset-conversion = { workspace = true } scale-info = { features = ["derive"], workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } sp-arithmetic = { workspace = true } @@ -50,7 +49,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/asset-conversion/ops/src/benchmarking.rs b/substrate/frame/asset-conversion/ops/src/benchmarking.rs index a7370f38bc4..384e17c9f0a 100644 --- a/substrate/frame/asset-conversion/ops/src/benchmarking.rs +++ b/substrate/frame/asset-conversion/ops/src/benchmarking.rs @@ -28,7 +28,6 @@ use frame_system::RawOrigin as SystemOrigin; use pallet_asset_conversion::{BenchmarkHelper, Pallet as AssetConversion}; use sp_core::Get; use sp_runtime::traits::One; -use sp_std::prelude::*; /// Provides a pair of amounts expected to serve as sufficient initial liquidity for a pool. fn valid_liquidity_amount(ed1: T::Balance, ed2: T::Balance) -> (T::Balance, T::Balance) diff --git a/substrate/frame/asset-conversion/ops/src/lib.rs b/substrate/frame/asset-conversion/ops/src/lib.rs index a655a9cb445..58c15b47a3e 100644 --- a/substrate/frame/asset-conversion/ops/src/lib.rs +++ b/substrate/frame/asset-conversion/ops/src/lib.rs @@ -42,6 +42,9 @@ pub mod weights; pub use pallet::*; pub use weights::WeightInfo; +extern crate alloc; + +use alloc::boxed::Box; use frame_support::traits::{ fungible::{Inspect as FungibleInspect, Mutate as FungibleMutate}, fungibles::{roles::ResetTeam, Inspect, Mutate, Refund}, @@ -50,7 +53,6 @@ use frame_support::traits::{ }; use pallet_asset_conversion::{PoolLocator, Pools}; use sp_runtime::traits::{TryConvert, Zero}; -use sp_std::boxed::Box; #[frame_support::pallet] pub mod pallet { diff --git a/substrate/frame/asset-conversion/ops/src/mock.rs b/substrate/frame/asset-conversion/ops/src/mock.rs index 91c18b2e794..5c05faa6aa8 100644 --- a/substrate/frame/asset-conversion/ops/src/mock.rs +++ b/substrate/frame/asset-conversion/ops/src/mock.rs @@ -17,7 +17,6 @@ //! Test environment for Asset Conversion Ops pallet. -use super::*; use crate as pallet_asset_conversion_ops; use core::default::Default; use frame_support::{ diff --git a/substrate/frame/asset-conversion/src/benchmarking.rs b/substrate/frame/asset-conversion/src/benchmarking.rs index c5f68476b1d..b003fe48288 100644 --- a/substrate/frame/asset-conversion/src/benchmarking.rs +++ b/substrate/frame/asset-conversion/src/benchmarking.rs @@ -19,6 +19,8 @@ use super::*; use crate::Pallet as AssetConversion; +use alloc::vec; +use core::marker::PhantomData; use frame_benchmarking::{v2::*, whitelisted_caller}; use frame_support::{ assert_ok, @@ -29,7 +31,6 @@ use frame_support::{ }; use frame_system::RawOrigin as SystemOrigin; use sp_core::Get; -use sp_std::{marker::PhantomData, prelude::*}; /// Benchmark Helper pub trait BenchmarkHelper { diff --git a/substrate/frame/asset-conversion/src/lib.rs b/substrate/frame/asset-conversion/src/lib.rs index 62acb693efb..a9dc30375e5 100644 --- a/substrate/frame/asset-conversion/src/lib.rs +++ b/substrate/frame/asset-conversion/src/lib.rs @@ -70,6 +70,9 @@ pub use swap::*; pub use types::*; pub use weights::WeightInfo; +extern crate alloc; + +use alloc::{boxed::Box, collections::btree_set::BTreeSet, vec::Vec}; use codec::Codec; use frame_support::{ storage::{with_storage_layer, with_transaction}, @@ -93,7 +96,6 @@ use sp_runtime::{ }, DispatchError, Saturating, TokenError, TransactionOutcome, }; -use sp_std::{boxed::Box, collections::btree_set::BTreeSet, vec::Vec}; #[frame_support::pallet] pub mod pallet { diff --git a/substrate/frame/asset-rate/Cargo.toml b/substrate/frame/asset-rate/Cargo.toml index 96c87020684..4aeb6a39e82 100644 --- a/substrate/frame/asset-rate/Cargo.toml +++ b/substrate/frame/asset-rate/Cargo.toml @@ -23,7 +23,6 @@ frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-core = { optional = true, workspace = true } [dev-dependencies] @@ -43,7 +42,6 @@ std = [ "sp-core?/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/asset-rate/src/lib.rs b/substrate/frame/asset-rate/src/lib.rs index 69f8267a4f2..cfb013a73f5 100644 --- a/substrate/frame/asset-rate/src/lib.rs +++ b/substrate/frame/asset-rate/src/lib.rs @@ -59,6 +59,9 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::boxed::Box; use frame_support::traits::{ fungible::Inspect, tokens::{ConversionFromAssetBalance, ConversionToAssetBalance}, @@ -67,7 +70,6 @@ use sp_runtime::{ traits::{CheckedDiv, Zero}, FixedPointNumber, FixedU128, }; -use sp_std::boxed::Box; pub use pallet::*; pub use weights::WeightInfo; diff --git a/substrate/frame/assets/Cargo.toml b/substrate/frame/assets/Cargo.toml index d0b5dc77789..802b8b9f39d 100644 --- a/substrate/frame/assets/Cargo.toml +++ b/substrate/frame/assets/Cargo.toml @@ -20,7 +20,6 @@ codec = { workspace = true } impl-trait-for-tuples = "0.2.2" log = { workspace = true } scale-info = { features = ["derive"], workspace = true } -sp-std = { workspace = true } # Needed for various traits. In our case, `OnFinalize`. sp-runtime = { workspace = true } # Needed for type-safe access to storage DB. @@ -48,7 +47,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/assets/src/benchmarking.rs b/substrate/frame/assets/src/benchmarking.rs index 1b65bb953d7..97cc04174a0 100644 --- a/substrate/frame/assets/src/benchmarking.rs +++ b/substrate/frame/assets/src/benchmarking.rs @@ -20,13 +20,13 @@ #![cfg(feature = "runtime-benchmarks")] use super::*; +use alloc::vec; use frame_benchmarking::v1::{ account, benchmarks_instance_pallet, whitelist_account, whitelisted_caller, BenchmarkError, }; use frame_support::traits::{EnsureOrigin, Get, UnfilteredDispatchable}; use frame_system::RawOrigin as SystemOrigin; use sp_runtime::traits::Bounded; -use sp_std::prelude::*; use crate::Pallet as Assets; @@ -76,7 +76,7 @@ fn swap_is_sufficient, I: 'static>(s: &mut bool) { let asset_id = default_asset_id::(); Asset::::mutate(&asset_id.into(), |maybe_a| { if let Some(ref mut a) = maybe_a { - sp_std::mem::swap(s, &mut a.is_sufficient) + core::mem::swap(s, &mut a.is_sufficient) } }); } diff --git a/substrate/frame/assets/src/functions.rs b/substrate/frame/assets/src/functions.rs index 1e4a9522759..c218c4ddc95 100644 --- a/substrate/frame/assets/src/functions.rs +++ b/substrate/frame/assets/src/functions.rs @@ -18,6 +18,7 @@ //! Functions for the Assets pallet. use super::*; +use alloc::vec; use frame_support::{defensive, traits::Get, BoundedVec}; #[must_use] @@ -35,20 +36,20 @@ impl, I: 'static> Pallet { /// Return the extra "sid-car" data for `id`/`who`, or `None` if the account doesn't exist. pub fn adjust_extra( id: T::AssetId, - who: impl sp_std::borrow::Borrow, + who: impl core::borrow::Borrow, ) -> Option> { ExtraMutator::maybe_new(id, who) } /// Get the asset `id` balance of `who`, or zero if the asset-account doesn't exist. - pub fn balance(id: T::AssetId, who: impl sp_std::borrow::Borrow) -> T::Balance { + pub fn balance(id: T::AssetId, who: impl core::borrow::Borrow) -> T::Balance { Self::maybe_balance(id, who).unwrap_or_default() } /// Get the asset `id` balance of `who` if the asset-account exists. pub fn maybe_balance( id: T::AssetId, - who: impl sp_std::borrow::Borrow, + who: impl core::borrow::Borrow, ) -> Option { Account::::get(id, who.borrow()).map(|a| a.balance) } diff --git a/substrate/frame/assets/src/impl_fungibles.rs b/substrate/frame/assets/src/impl_fungibles.rs index 30122f6d788..578fa08c4e6 100644 --- a/substrate/frame/assets/src/impl_fungibles.rs +++ b/substrate/frame/assets/src/impl_fungibles.rs @@ -17,6 +17,7 @@ //! Implementations for fungibles trait. +use alloc::vec::Vec; use frame_support::{ defensive, traits::tokens::{ diff --git a/substrate/frame/assets/src/lib.rs b/substrate/frame/assets/src/lib.rs index 6dbce717a8e..b9b5b2388df 100644 --- a/substrate/frame/assets/src/lib.rs +++ b/substrate/frame/assets/src/lib.rs @@ -167,13 +167,15 @@ mod impl_stored_map; mod types; pub use types::*; +extern crate alloc; + use scale_info::TypeInfo; use sp_runtime::{ traits::{AtLeast32BitUnsigned, CheckedAdd, CheckedSub, Saturating, StaticLookup, Zero}, ArithmeticError, DispatchError, TokenError, }; -use sp_std::prelude::*; +use alloc::vec::Vec; use core::marker::PhantomData; use frame_support::{ dispatch::DispatchResult, diff --git a/substrate/frame/atomic-swap/Cargo.toml b/substrate/frame/atomic-swap/Cargo.toml index 7e2f5fc74ab..03310063012 100644 --- a/substrate/frame/atomic-swap/Cargo.toml +++ b/substrate/frame/atomic-swap/Cargo.toml @@ -23,7 +23,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -39,7 +38,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/atomic-swap/src/lib.rs b/substrate/frame/atomic-swap/src/lib.rs index dc0300dc1a5..c3010f5c9c0 100644 --- a/substrate/frame/atomic-swap/src/lib.rs +++ b/substrate/frame/atomic-swap/src/lib.rs @@ -42,6 +42,9 @@ mod tests; +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode}; use core::{ marker::PhantomData, @@ -58,7 +61,6 @@ use frame_system::pallet_prelude::BlockNumberFor; use scale_info::TypeInfo; use sp_io::hashing::blake2_256; use sp_runtime::RuntimeDebug; -use sp_std::vec::Vec; /// Pending atomic swap operation. #[derive(Clone, Eq, PartialEq, RuntimeDebugNoBound, Encode, Decode, TypeInfo, MaxEncodedLen)] diff --git a/substrate/frame/aura/Cargo.toml b/substrate/frame/aura/Cargo.toml index 97582e7d2e9..f9d74592763 100644 --- a/substrate/frame/aura/Cargo.toml +++ b/substrate/frame/aura/Cargo.toml @@ -25,7 +25,6 @@ pallet-timestamp = { workspace = true } sp-application-crypto = { workspace = true } sp-consensus-aura = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true } @@ -45,7 +44,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/aura/src/lib.rs b/substrate/frame/aura/src/lib.rs index 3ca1444aaae..f829578fb28 100644 --- a/substrate/frame/aura/src/lib.rs +++ b/substrate/frame/aura/src/lib.rs @@ -38,6 +38,9 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ traits::{DisabledValidators, FindAuthor, Get, OnTimestampSet, OneSessionHandler}, @@ -50,7 +53,6 @@ use sp_runtime::{ traits::{IsMember, Member, SaturatedConversion, Saturating, Zero}, RuntimeAppPublic, }; -use sp_std::prelude::*; pub mod migrations; mod mock; @@ -66,7 +68,7 @@ const LOG_TARGET: &str = "runtime::aura"; /// /// This was the default behavior of the Aura pallet and may be used for /// backwards compatibility. -pub struct MinimumPeriodTimesTwo(sp_std::marker::PhantomData); +pub struct MinimumPeriodTimesTwo(core::marker::PhantomData); impl Get for MinimumPeriodTimesTwo { fn get() -> T::Moment { @@ -119,7 +121,7 @@ pub mod pallet { } #[pallet::pallet] - pub struct Pallet(sp_std::marker::PhantomData); + pub struct Pallet(core::marker::PhantomData); #[pallet::hooks] impl Hooks> for Pallet { @@ -362,7 +364,7 @@ impl FindAuthor for Pallet { /// We can not implement `FindAuthor` twice, because the compiler does not know if /// `u32 == T::AuthorityId` and thus, prevents us to implement the trait twice. #[doc(hidden)] -pub struct FindAccountFromAuthorIndex(sp_std::marker::PhantomData<(T, Inner)>); +pub struct FindAccountFromAuthorIndex(core::marker::PhantomData<(T, Inner)>); impl> FindAuthor for FindAccountFromAuthorIndex diff --git a/substrate/frame/authority-discovery/Cargo.toml b/substrate/frame/authority-discovery/Cargo.toml index 79057d94107..9d55a7fd5dc 100644 --- a/substrate/frame/authority-discovery/Cargo.toml +++ b/substrate/frame/authority-discovery/Cargo.toml @@ -28,7 +28,6 @@ pallet-session = { features = [ sp-application-crypto = { workspace = true } sp-authority-discovery = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true, default-features = true } @@ -47,7 +46,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/authority-discovery/src/lib.rs b/substrate/frame/authority-discovery/src/lib.rs index 16f71960d69..220b39292b5 100644 --- a/substrate/frame/authority-discovery/src/lib.rs +++ b/substrate/frame/authority-discovery/src/lib.rs @@ -23,12 +23,14 @@ // Ensure we're `no_std` when compiling for Wasm. #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use frame_support::{ traits::{Get, OneSessionHandler}, WeakBoundedVec, }; use sp_authority_discovery::AuthorityId; -use sp_std::prelude::*; pub use pallet::*; @@ -62,7 +64,7 @@ pub mod pallet { pub struct GenesisConfig { pub keys: Vec, #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -168,6 +170,7 @@ impl OneSessionHandler for Pallet { mod tests { use super::*; use crate as pallet_authority_discovery; + use alloc::vec; use frame_support::{derive_impl, parameter_types, traits::ConstU32}; use sp_application_crypto::Pair; use sp_authority_discovery::AuthorityPair; diff --git a/substrate/frame/authorship/Cargo.toml b/substrate/frame/authorship/Cargo.toml index 58292c0eba3..8ecacca93e0 100644 --- a/substrate/frame/authorship/Cargo.toml +++ b/substrate/frame/authorship/Cargo.toml @@ -24,7 +24,6 @@ scale-info = { features = ["derive"], workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true, default-features = true } @@ -40,7 +39,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/authorship/src/lib.rs b/substrate/frame/authorship/src/lib.rs index d8f1baab23c..a0cca806e78 100644 --- a/substrate/frame/authorship/src/lib.rs +++ b/substrate/frame/authorship/src/lib.rs @@ -22,7 +22,6 @@ #![cfg_attr(not(feature = "std"), no_std)] use frame_support::traits::FindAuthor; -use sp_std::prelude::*; pub use pallet::*; diff --git a/substrate/frame/babe/Cargo.toml b/substrate/frame/babe/Cargo.toml index 68638798e79..3dfda3b618b 100644 --- a/substrate/frame/babe/Cargo.toml +++ b/substrate/frame/babe/Cargo.toml @@ -32,7 +32,6 @@ sp-io = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-session = { workspace = true } sp-staking = { features = ["serde"], workspace = true } -sp-std = { workspace = true } [dev-dependencies] frame-election-provider-support = { workspace = true, default-features = true } @@ -65,7 +64,6 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/babe/src/equivocation.rs b/substrate/frame/babe/src/equivocation.rs index ed1df640583..4be07bdae1f 100644 --- a/substrate/frame/babe/src/equivocation.rs +++ b/substrate/frame/babe/src/equivocation.rs @@ -33,6 +33,7 @@ //! that the `ValidateUnsigned` for the BABE pallet is used in the runtime //! definition. +use alloc::{boxed::Box, vec, vec::Vec}; use frame_support::traits::{Get, KeyOwnerProofSystem}; use frame_system::pallet_prelude::HeaderFor; use log::{error, info}; @@ -50,7 +51,6 @@ use sp_staking::{ offence::{Kind, Offence, OffenceReportSystem, ReportOffence}, SessionIndex, }; -use sp_std::prelude::*; use crate::{Call, Config, Error, Pallet, LOG_TARGET}; @@ -104,7 +104,7 @@ impl Offence for EquivocationOffence { /// - On-chain validity checks and processing are mostly delegated to the user provided generic /// types implementing `KeyOwnerProofSystem` and `ReportOffence` traits. /// - Offence reporter for unsigned transactions is fetched via the the authorship pallet. -pub struct EquivocationReportSystem(sp_std::marker::PhantomData<(T, R, P, L)>); +pub struct EquivocationReportSystem(core::marker::PhantomData<(T, R, P, L)>); impl OffenceReportSystem, (EquivocationProof>, T::KeyOwnerProof)> diff --git a/substrate/frame/babe/src/lib.rs b/substrate/frame/babe/src/lib.rs index 9e16f1d0951..3e33d5627c4 100644 --- a/substrate/frame/babe/src/lib.rs +++ b/substrate/frame/babe/src/lib.rs @@ -21,6 +21,9 @@ #![cfg_attr(not(feature = "std"), no_std)] #![warn(unused_must_use, unsafe_code, unused_variables, unused_must_use)] +extern crate alloc; + +use alloc::{boxed::Box, vec, vec::Vec}; use codec::{Decode, Encode}; use frame_support::{ dispatch::{DispatchResultWithPostInfo, Pays}, @@ -44,7 +47,6 @@ use sp_runtime::{ }; use sp_session::{GetSessionNumber, GetValidatorCount}; use sp_staking::{offence::OffenceReportSystem, SessionIndex}; -use sp_std::prelude::*; pub use sp_consensus_babe::AuthorityId; @@ -315,7 +317,7 @@ pub mod pallet { pub authorities: Vec<(AuthorityId, BabeAuthorityWeight)>, pub epoch_config: BabeEpochConfiguration, #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -687,7 +689,7 @@ impl Pallet { // Update the start blocks of the previous and new current epoch. EpochStart::::mutate(|(previous_epoch_start_block, current_epoch_start_block)| { - *previous_epoch_start_block = sp_std::mem::take(current_epoch_start_block); + *previous_epoch_start_block = core::mem::take(current_epoch_start_block); *current_epoch_start_block = >::block_number(); }); @@ -868,7 +870,7 @@ impl Pallet { /// randomness. Returns the new randomness. fn randomness_change_epoch(next_epoch_index: u64) -> BabeRandomness { let this_randomness = NextRandomness::::get(); - let segment_idx: u32 = SegmentIndex::::mutate(|s| sp_std::mem::replace(s, 0)); + let segment_idx: u32 = SegmentIndex::::mutate(|s| core::mem::replace(s, 0)); // overestimate to the segment being full. let rho_size = (segment_idx.saturating_add(1) * UNDER_CONSTRUCTION_SEGMENT_LENGTH) as usize; @@ -1055,7 +1057,7 @@ pub mod migrations { fn pallet_prefix() -> &'static str; } - struct __OldNextEpochConfig(sp_std::marker::PhantomData); + struct __OldNextEpochConfig(core::marker::PhantomData); impl frame_support::traits::StorageInstance for __OldNextEpochConfig { fn pallet_prefix() -> &'static str { T::pallet_prefix() diff --git a/substrate/frame/bags-list/Cargo.toml b/substrate/frame/bags-list/Cargo.toml index bf57bd2af53..549c4334b55 100644 --- a/substrate/frame/bags-list/Cargo.toml +++ b/substrate/frame/bags-list/Cargo.toml @@ -25,7 +25,6 @@ scale-info = { features = [ # primitives sp-runtime = { workspace = true } -sp-std = { workspace = true } # FRAME frame-support = { workspace = true } @@ -66,7 +65,6 @@ std = [ "sp-core?/std", "sp-io?/std", "sp-runtime/std", - "sp-std/std", "sp-tracing?/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/bags-list/remote-tests/src/lib.rs b/substrate/frame/bags-list/remote-tests/src/lib.rs index 9f7c22d99da..1f0584fa07e 100644 --- a/substrate/frame/bags-list/remote-tests/src/lib.rs +++ b/substrate/frame/bags-list/remote-tests/src/lib.rs @@ -19,7 +19,6 @@ use frame_election_provider_support::ScoreProvider; use pallet_bags_list::Instance1; -use sp_std::prelude::*; /// A common log target to use. pub const LOG_TARGET: &str = "runtime::bags-list::remote-tests"; diff --git a/substrate/frame/bags-list/src/benchmarks.rs b/substrate/frame/bags-list/src/benchmarks.rs index 0c3955c0d7b..55f4c24835e 100644 --- a/substrate/frame/bags-list/src/benchmarks.rs +++ b/substrate/frame/bags-list/src/benchmarks.rs @@ -19,6 +19,7 @@ use super::*; use crate::list::List; +use alloc::{vec, vec::Vec}; use frame_benchmarking::v1::{ account, benchmarks_instance_pallet, whitelist_account, whitelisted_caller, }; diff --git a/substrate/frame/bags-list/src/lib.rs b/substrate/frame/bags-list/src/lib.rs index 8e3d4cc1f01..f6af1da5e7b 100644 --- a/substrate/frame/bags-list/src/lib.rs +++ b/substrate/frame/bags-list/src/lib.rs @@ -122,11 +122,13 @@ #[doc = docify::embed!("src/tests.rs", examples_work)] pub mod example {} +extern crate alloc; + +use alloc::boxed::Box; use codec::FullCodec; use frame_election_provider_support::{ScoreProvider, SortedListProvider}; use frame_system::ensure_signed; use sp_runtime::traits::{AtLeast32BitUnsigned, Bounded, StaticLookup}; -use sp_std::prelude::*; #[cfg(any(test, feature = "try-runtime", feature = "fuzz"))] use sp_runtime::TryRuntimeError; @@ -238,7 +240,7 @@ pub mod pallet { + Eq + Ord + PartialOrd - + sp_std::fmt::Debug + + core::fmt::Debug + Copy + AtLeast32BitUnsigned + Bounded @@ -465,7 +467,7 @@ impl, I: 'static> SortedListProvider for Pallet let node = list::Node::::get(who).unwrap(); let current_bag_idx = thresholds .iter() - .chain(sp_std::iter::once(&T::Score::max_value())) + .chain(core::iter::once(&T::Score::max_value())) .position(|w| w == &node.bag_upper) .unwrap(); diff --git a/substrate/frame/bags-list/src/list/mod.rs b/substrate/frame/bags-list/src/list/mod.rs index e90530341a1..696b64d40e9 100644 --- a/substrate/frame/bags-list/src/list/mod.rs +++ b/substrate/frame/bags-list/src/list/mod.rs @@ -25,7 +25,12 @@ //! interface. use crate::Config; +use alloc::{ + boxed::Box, + collections::{btree_map::BTreeMap, btree_set::BTreeSet}, +}; use codec::{Decode, Encode, MaxEncodedLen}; +use core::{iter, marker::PhantomData}; use frame_election_provider_support::ScoreProvider; use frame_support::{ defensive, ensure, @@ -34,14 +39,15 @@ use frame_support::{ }; use scale_info::TypeInfo; use sp_runtime::traits::{Bounded, Zero}; -use sp_std::{ - boxed::Box, - collections::{btree_map::BTreeMap, btree_set::BTreeSet}, - iter, - marker::PhantomData, - prelude::*, -}; +#[cfg(any( + test, + feature = "try-runtime", + feature = "fuzz", + feature = "std", + feature = "runtime-benchmarks" +))] +use alloc::vec::Vec; #[cfg(any(test, feature = "try-runtime", feature = "fuzz"))] use sp_runtime::TryRuntimeError; @@ -274,7 +280,7 @@ impl, I: 'static> List { let start_node = Node::::get(start).ok_or(ListError::NodeNotFound)?; let start_node_upper = start_node.bag_upper; - let start_bag = sp_std::iter::successors(start_node.next(), |prev| prev.next()); + let start_bag = core::iter::successors(start_node.next(), |prev| prev.next()); let thresholds = T::BagThresholds::get(); let idx = thresholds.partition_point(|&threshold| start_node_upper > threshold); @@ -341,7 +347,7 @@ impl, I: 'static> List { if !Self::contains(id) { return Err(ListError::NodeNotFound) } - let _ = Self::remove_many(sp_std::iter::once(id)); + let _ = Self::remove_many(core::iter::once(id)); Ok(()) } @@ -591,7 +597,7 @@ impl, I: 'static> List { Box::new(iter) } else { // otherwise, insert it here. - Box::new(iter.chain(sp_std::iter::once(T::Score::max_value()))) + Box::new(iter.chain(core::iter::once(T::Score::max_value()))) }; iter.filter_map(|t| { @@ -673,7 +679,7 @@ impl, I: 'static> Bag { /// Iterate over the nodes in this bag. pub(crate) fn iter(&self) -> impl Iterator> { - sp_std::iter::successors(self.head(), |prev| prev.next()) + core::iter::successors(self.head(), |prev| prev.next()) } /// Insert a new id into this bag. @@ -804,7 +810,7 @@ impl, I: 'static> Bag { #[cfg(feature = "std")] #[allow(dead_code)] pub fn std_iter(&self) -> impl Iterator> { - sp_std::iter::successors(self.head(), |prev| prev.next()) + core::iter::successors(self.head(), |prev| prev.next()) } } diff --git a/substrate/frame/bags-list/src/migrations.rs b/substrate/frame/bags-list/src/migrations.rs index 7df63a6a44c..bfc70fef370 100644 --- a/substrate/frame/bags-list/src/migrations.rs +++ b/substrate/frame/bags-list/src/migrations.rs @@ -28,10 +28,10 @@ use frame_support::ensure; use sp_runtime::TryRuntimeError; #[cfg(feature = "try-runtime")] -use sp_std::vec::Vec; +use alloc::vec::Vec; /// A struct that does not migration, but only checks that the counter prefix exists and is correct. -pub struct CheckCounterPrefix, I: 'static>(sp_std::marker::PhantomData<(T, I)>); +pub struct CheckCounterPrefix, I: 'static>(core::marker::PhantomData<(T, I)>); impl, I: 'static> OnRuntimeUpgrade for CheckCounterPrefix { fn on_runtime_upgrade() -> frame_support::weights::Weight { frame_support::weights::Weight::zero() @@ -88,7 +88,7 @@ mod old { } /// A struct that migrates all bags lists to contain a score value. -pub struct AddScore, I: 'static = ()>(sp_std::marker::PhantomData<(T, I)>); +pub struct AddScore, I: 'static = ()>(core::marker::PhantomData<(T, I)>); impl, I: 'static> OnRuntimeUpgrade for AddScore { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, TryRuntimeError> { diff --git a/substrate/frame/balances/Cargo.toml b/substrate/frame/balances/Cargo.toml index 5fa8fa84bf5..85734dce9e9 100644 --- a/substrate/frame/balances/Cargo.toml +++ b/substrate/frame/balances/Cargo.toml @@ -23,7 +23,6 @@ frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } docify = { workspace = true } [dev-dependencies] @@ -46,7 +45,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] # Enable support for setting the existential deposit to zero. insecure_zero_ed = [] diff --git a/substrate/frame/balances/src/impl_currency.rs b/substrate/frame/balances/src/impl_currency.rs index d5fe9934e23..454aead1773 100644 --- a/substrate/frame/balances/src/impl_currency.rs +++ b/substrate/frame/balances/src/impl_currency.rs @@ -39,8 +39,8 @@ pub use imbalances::{NegativeImbalance, PositiveImbalance}; // of the inner member. mod imbalances { use super::{result, Config, Imbalance, RuntimeDebug, Saturating, TryDrop, Zero}; + use core::mem; use frame_support::traits::SameOrOther; - use sp_std::mem; /// Opaque, move-only struct with private fields that serves as a token denoting that /// funds have been created without any equal and opposite accounting. diff --git a/substrate/frame/balances/src/lib.rs b/substrate/frame/balances/src/lib.rs index d01884293c0..0aaf618b303 100644 --- a/substrate/frame/balances/src/lib.rs +++ b/substrate/frame/balances/src/lib.rs @@ -150,7 +150,11 @@ mod tests; mod types; pub mod weights; +extern crate alloc; + +use alloc::vec::Vec; use codec::{Codec, MaxEncodedLen}; +use core::{cmp, fmt::Debug, mem, result}; use frame_support::{ ensure, pallet_prelude::DispatchResult, @@ -176,7 +180,6 @@ use sp_runtime::{ }, ArithmeticError, DispatchError, FixedPointOperand, Perbill, RuntimeDebug, TokenError, }; -use sp_std::{cmp, fmt::Debug, mem, prelude::*, result}; pub use types::{ AccountData, AdjustmentDirection, BalanceLock, DustCleaner, ExtraFlags, Reasons, ReserveData, }; @@ -525,7 +528,7 @@ pub mod pallet { .iter() .map(|(x, _)| x) .cloned() - .collect::>(); + .collect::>(); assert!( endowed_accounts.len() == self.balances.len(), @@ -856,13 +859,13 @@ pub mod pallet { } /// Get the free balance of an account. - pub fn free_balance(who: impl sp_std::borrow::Borrow) -> T::Balance { + pub fn free_balance(who: impl core::borrow::Borrow) -> T::Balance { Self::account(who.borrow()).free } /// Get the balance of an account that can be used for transfers, reservations, or any other /// non-locking, non-transaction-fee activity. Will be at most `free_balance`. - pub fn usable_balance(who: impl sp_std::borrow::Borrow) -> T::Balance { + pub fn usable_balance(who: impl core::borrow::Borrow) -> T::Balance { >::reducible_balance(who.borrow(), Expendable, Polite) } @@ -870,14 +873,12 @@ pub mod pallet { /// or any other kind of fees, though). Will be at most `free_balance`. /// /// This requires that the account stays alive. - pub fn usable_balance_for_fees( - who: impl sp_std::borrow::Borrow, - ) -> T::Balance { + pub fn usable_balance_for_fees(who: impl core::borrow::Borrow) -> T::Balance { >::reducible_balance(who.borrow(), Protect, Polite) } /// Get the reserved balance of an account. - pub fn reserved_balance(who: impl sp_std::borrow::Borrow) -> T::Balance { + pub fn reserved_balance(who: impl core::borrow::Borrow) -> T::Balance { Self::account(who.borrow()).reserved } diff --git a/substrate/frame/beefy-mmr/Cargo.toml b/substrate/frame/beefy-mmr/Cargo.toml index b46998a8574..11a7b281e87 100644 --- a/substrate/frame/beefy-mmr/Cargo.toml +++ b/substrate/frame/beefy-mmr/Cargo.toml @@ -27,7 +27,6 @@ sp-consensus-beefy = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-api = { workspace = true } sp-state-machine = { workspace = true } @@ -56,7 +55,6 @@ std = [ "sp-runtime/std", "sp-staking/std", "sp-state-machine/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/beefy-mmr/src/lib.rs b/substrate/frame/beefy-mmr/src/lib.rs index 18ebc9d8f38..ec341cad208 100644 --- a/substrate/frame/beefy-mmr/src/lib.rs +++ b/substrate/frame/beefy-mmr/src/lib.rs @@ -33,9 +33,11 @@ //! //! and thanks to versioning can be easily updated in the future. +extern crate alloc; + use sp_runtime::traits::{Convert, Header, Member}; -use sp_std::prelude::*; +use alloc::vec::Vec; use codec::Decode; use pallet_mmr::{primitives::AncestryProof, LeafDataProvider, ParentNumberAndHash}; use sp_consensus_beefy::{ @@ -56,7 +58,7 @@ mod mock; mod tests; /// A BEEFY consensus digest item with MMR root hash. -pub struct DepositBeefyDigest(sp_std::marker::PhantomData); +pub struct DepositBeefyDigest(core::marker::PhantomData); impl pallet_mmr::primitives::OnNewRoot for DepositBeefyDigest where diff --git a/substrate/frame/beefy/Cargo.toml b/substrate/frame/beefy/Cargo.toml index 8ce3a05985b..089b817e226 100644 --- a/substrate/frame/beefy/Cargo.toml +++ b/substrate/frame/beefy/Cargo.toml @@ -24,7 +24,6 @@ sp-consensus-beefy = { features = ["serde"], workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-session = { workspace = true } sp-staking = { features = ["serde"], workspace = true } -sp-std = { workspace = true } [dev-dependencies] frame-election-provider-support = { workspace = true, default-features = true } @@ -61,7 +60,6 @@ std = [ "sp-session/std", "sp-staking/std", "sp-state-machine/std", - "sp-std/std", ] try-runtime = [ "frame-election-provider-support/try-runtime", diff --git a/substrate/frame/beefy/src/equivocation.rs b/substrate/frame/beefy/src/equivocation.rs index a1526e78111..15345e6ae19 100644 --- a/substrate/frame/beefy/src/equivocation.rs +++ b/substrate/frame/beefy/src/equivocation.rs @@ -34,6 +34,7 @@ //! that the `ValidateUnsigned` for the BEEFY pallet is used in the runtime //! definition. +use alloc::{vec, vec::Vec}; use codec::{self as codec, Decode, Encode}; use frame_support::traits::{Get, KeyOwnerProofSystem}; use frame_system::pallet_prelude::{BlockNumberFor, HeaderFor}; @@ -54,7 +55,6 @@ use sp_staking::{ offence::{Kind, Offence, OffenceReportSystem, ReportOffence}, SessionIndex, }; -use sp_std::prelude::*; use super::{Call, Config, Error, Pallet, LOG_TARGET}; @@ -122,7 +122,7 @@ where /// - On-chain validity checks and processing are mostly delegated to the user provided generic /// types implementing `KeyOwnerProofSystem` and `ReportOffence` traits. /// - Offence reporter for unsigned transactions is fetched via the authorship pallet. -pub struct EquivocationReportSystem(sp_std::marker::PhantomData<(T, R, P, L)>); +pub struct EquivocationReportSystem(core::marker::PhantomData<(T, R, P, L)>); /// Equivocation evidence convenience alias. pub enum EquivocationEvidenceFor { diff --git a/substrate/frame/beefy/src/lib.rs b/substrate/frame/beefy/src/lib.rs index a49f5d28f45..fd9a0027c6f 100644 --- a/substrate/frame/beefy/src/lib.rs +++ b/substrate/frame/beefy/src/lib.rs @@ -17,6 +17,9 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{boxed::Box, vec::Vec}; use codec::{Encode, MaxEncodedLen}; use frame_support::{ @@ -38,7 +41,6 @@ use sp_runtime::{ }; use sp_session::{GetSessionNumber, GetValidatorCount}; use sp_staking::{offence::OffenceReportSystem, SessionIndex}; -use sp_std::prelude::*; use sp_consensus_beefy::{ AncestryHelper, AuthorityIndex, BeefyAuthorityId, ConsensusLog, DoubleVotingProof, diff --git a/substrate/frame/benchmarking/Cargo.toml b/substrate/frame/benchmarking/Cargo.toml index a2c15951a59..61bc706963b 100644 --- a/substrate/frame/benchmarking/Cargo.toml +++ b/substrate/frame/benchmarking/Cargo.toml @@ -31,7 +31,6 @@ sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } sp-runtime-interface = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } static_assertions = { workspace = true, default-features = true } @@ -58,7 +57,6 @@ std = [ "sp-keystore/std", "sp-runtime-interface/std", "sp-runtime/std", - "sp-std/std", "sp-storage/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/benchmarking/pov/Cargo.toml b/substrate/frame/benchmarking/pov/Cargo.toml index 4341f011fcb..6a449fb597d 100644 --- a/substrate/frame/benchmarking/pov/Cargo.toml +++ b/substrate/frame/benchmarking/pov/Cargo.toml @@ -22,7 +22,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -34,7 +33,6 @@ std = [ "scale-info/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/benchmarking/pov/src/benchmarking.rs b/substrate/frame/benchmarking/pov/src/benchmarking.rs index 7e6aa8e6bf6..bf3d406d0b2 100644 --- a/substrate/frame/benchmarking/pov/src/benchmarking.rs +++ b/substrate/frame/benchmarking/pov/src/benchmarking.rs @@ -247,7 +247,7 @@ mod benchmarks { #[benchmark(pov_mode = Measured)] fn measured_storage_value_read_linear_size(l: Linear<0, { 1 << 22 }>) { - let v: sp_runtime::BoundedVec = sp_std::vec![0u8; l as usize].try_into().unwrap(); + let v: sp_runtime::BoundedVec = alloc::vec![0u8; l as usize].try_into().unwrap(); LargeValue::::put(&v); #[block] { @@ -257,7 +257,7 @@ mod benchmarks { #[benchmark(pov_mode = MaxEncodedLen)] fn mel_storage_value_read_linear_size(l: Linear<0, { 1 << 22 }>) { - let v: sp_runtime::BoundedVec = sp_std::vec![0u8; l as usize].try_into().unwrap(); + let v: sp_runtime::BoundedVec = alloc::vec![0u8; l as usize].try_into().unwrap(); LargeValue::::put(&v); #[block] { @@ -267,7 +267,7 @@ mod benchmarks { #[benchmark(pov_mode = Measured)] fn measured_storage_double_value_read_linear_size(l: Linear<0, { 1 << 22 }>) { - let v: sp_runtime::BoundedVec = sp_std::vec![0u8; l as usize].try_into().unwrap(); + let v: sp_runtime::BoundedVec = alloc::vec![0u8; l as usize].try_into().unwrap(); LargeValue::::put(&v); LargeValue2::::put(&v); #[block] @@ -279,7 +279,7 @@ mod benchmarks { #[benchmark(pov_mode = MaxEncodedLen)] fn mel_storage_double_value_read_linear_size(l: Linear<0, { 1 << 22 }>) { - let v: sp_runtime::BoundedVec = sp_std::vec![0u8; l as usize].try_into().unwrap(); + let v: sp_runtime::BoundedVec = alloc::vec![0u8; l as usize].try_into().unwrap(); LargeValue::::put(&v); LargeValue2::::put(&v); #[block] @@ -293,7 +293,7 @@ mod benchmarks { Pov::LargeValue2: Measured })] fn mel_mixed_storage_double_value_read_linear_size(l: Linear<0, { 1 << 22 }>) { - let v: sp_runtime::BoundedVec = sp_std::vec![0u8; l as usize].try_into().unwrap(); + let v: sp_runtime::BoundedVec = alloc::vec![0u8; l as usize].try_into().unwrap(); LargeValue::::put(&v); LargeValue2::::put(&v); #[block] @@ -307,7 +307,7 @@ mod benchmarks { Pov::LargeValue2: MaxEncodedLen })] fn measured_mixed_storage_double_value_read_linear_size(l: Linear<0, { 1 << 22 }>) { - let v: sp_runtime::BoundedVec = sp_std::vec![0u8; l as usize].try_into().unwrap(); + let v: sp_runtime::BoundedVec = alloc::vec![0u8; l as usize].try_into().unwrap(); LargeValue::::put(&v); LargeValue2::::put(&v); #[block] @@ -319,8 +319,8 @@ mod benchmarks { #[benchmark(pov_mode = Measured)] fn storage_map_unbounded_both_measured_read(i: Linear<0, 1000>) { - UnboundedMap::::insert(i, sp_std::vec![0; i as usize]); - UnboundedMap2::::insert(i, sp_std::vec![0; i as usize]); + UnboundedMap::::insert(i, alloc::vec![0; i as usize]); + UnboundedMap2::::insert(i, alloc::vec![0; i as usize]); #[block] { assert!(UnboundedMap::::get(i).is_some()); @@ -333,7 +333,7 @@ mod benchmarks { })] fn storage_map_partial_unbounded_read(i: Linear<0, 1000>) { Map1M::::insert(i, 0); - UnboundedMap::::insert(i, sp_std::vec![0; i as usize]); + UnboundedMap::::insert(i, alloc::vec![0; i as usize]); #[block] { assert!(Map1M::::get(i).is_some()); @@ -346,7 +346,7 @@ mod benchmarks { })] fn storage_map_partial_unbounded_ignored_read(i: Linear<0, 1000>) { Map1M::::insert(i, 0); - UnboundedMap::::insert(i, sp_std::vec![0; i as usize]); + UnboundedMap::::insert(i, alloc::vec![0; i as usize]); #[block] { assert!(Map1M::::get(i).is_some()); @@ -379,7 +379,7 @@ mod benchmarks { #[benchmark] fn storage_iteration() { for i in 0..65000 { - UnboundedMapTwox::::insert(i, sp_std::vec![0; 64]); + UnboundedMapTwox::::insert(i, alloc::vec![0; 64]); } #[block] { diff --git a/substrate/frame/benchmarking/pov/src/lib.rs b/substrate/frame/benchmarking/pov/src/lib.rs index eb02ccc983c..4cdbaec2305 100644 --- a/substrate/frame/benchmarking/pov/src/lib.rs +++ b/substrate/frame/benchmarking/pov/src/lib.rs @@ -23,13 +23,15 @@ mod benchmarking; mod tests; mod weights; +extern crate alloc; + pub use pallet::*; #[frame_support::pallet] pub mod pallet { + use alloc::vec::Vec; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; - use sp_std::prelude::*; #[pallet::pallet] pub struct Pallet(_); diff --git a/substrate/frame/benchmarking/src/baseline.rs b/substrate/frame/benchmarking/src/baseline.rs index e76d5aed7b8..711d2123ca8 100644 --- a/substrate/frame/benchmarking/src/baseline.rs +++ b/substrate/frame/benchmarking/src/baseline.rs @@ -21,12 +21,12 @@ #![cfg(feature = "runtime-benchmarks")] use crate::benchmarks; +use alloc::{vec, vec::Vec}; use frame_system::Pallet as System; use sp_runtime::{ traits::{AppVerify, Hash}, RuntimeAppPublic, }; -use sp_std::{vec, vec::Vec}; mod crypto { use sp_application_crypto::{app_crypto, sr25519, KeyTypeId}; diff --git a/substrate/frame/benchmarking/src/lib.rs b/substrate/frame/benchmarking/src/lib.rs index d4ee0abbecc..625da2a24bd 100644 --- a/substrate/frame/benchmarking/src/lib.rs +++ b/substrate/frame/benchmarking/src/lib.rs @@ -19,6 +19,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(feature = "std")] mod analysis; #[cfg(test)] @@ -35,6 +37,7 @@ pub mod v1; /// The exports are not stable and should not be relied on. #[doc(hidden)] pub mod __private { + pub use alloc::{boxed::Box, str, vec, vec::Vec}; pub use codec; pub use frame_support::{storage, traits}; pub use log; @@ -42,7 +45,6 @@ pub mod __private { pub use sp_core::defer; pub use sp_io::storage::root as storage_root; pub use sp_runtime::{traits::Zero, StateVersion}; - pub use sp_std::{self, boxed::Box, str, vec, vec::Vec}; pub use sp_storage::{well_known_keys, TrackedStorageKey}; } diff --git a/substrate/frame/benchmarking/src/tests.rs b/substrate/frame/benchmarking/src/tests.rs index bcca5fe7c2f..09011eadb03 100644 --- a/substrate/frame/benchmarking/src/tests.rs +++ b/substrate/frame/benchmarking/src/tests.rs @@ -25,7 +25,6 @@ use sp_runtime::{ traits::{BlakeTwo256, IdentityLookup}, BuildStorage, }; -use sp_std::prelude::*; use std::cell::RefCell; #[frame_support::pallet(dev_mode)] @@ -130,7 +129,6 @@ mod benchmarks { use frame_support::{assert_err, assert_ok, ensure, traits::Get}; use frame_system::RawOrigin; use rusty_fork::rusty_fork_test; - use sp_std::prelude::*; // Additional used internally by the benchmark macro. use super::pallet_test::{Call, Config, Pallet}; diff --git a/substrate/frame/benchmarking/src/tests_instance.rs b/substrate/frame/benchmarking/src/tests_instance.rs index d6e1cf99ef7..ecffbd1a018 100644 --- a/substrate/frame/benchmarking/src/tests_instance.rs +++ b/substrate/frame/benchmarking/src/tests_instance.rs @@ -25,7 +25,6 @@ use sp_runtime::{ traits::{BlakeTwo256, IdentityLookup}, BuildStorage, }; -use sp_std::prelude::*; #[frame_support::pallet] mod pallet_test { @@ -131,7 +130,6 @@ mod benchmarks { use crate::account; use frame_support::ensure; use frame_system::RawOrigin; - use sp_std::prelude::*; // Additional used internally by the benchmark macro. use super::pallet_test::{Call, Config, Pallet}; diff --git a/substrate/frame/benchmarking/src/utils.rs b/substrate/frame/benchmarking/src/utils.rs index bfa25f63ef3..ca362f7aa7e 100644 --- a/substrate/frame/benchmarking/src/utils.rs +++ b/substrate/frame/benchmarking/src/utils.rs @@ -16,6 +16,7 @@ // limitations under the License. //! Interfaces, types and utils for benchmarking a FRAME runtime. +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::{dispatch::DispatchErrorWithPostInfo, pallet_prelude::*, traits::StorageInfo}; use scale_info::TypeInfo; @@ -23,7 +24,6 @@ use scale_info::TypeInfo; use serde::{Deserialize, Serialize}; use sp_io::hashing::blake2_256; use sp_runtime::{traits::TrailingZeroInput, DispatchError}; -use sp_std::vec::Vec; use sp_storage::TrackedStorageKey; /// An alphabet of possible parameters to use for benchmarking. diff --git a/substrate/frame/benchmarking/src/v1.rs b/substrate/frame/benchmarking/src/v1.rs index 07778646237..d687f9fdfa1 100644 --- a/substrate/frame/benchmarking/src/v1.rs +++ b/substrate/frame/benchmarking/src/v1.rs @@ -1741,9 +1741,9 @@ pub fn show_benchmark_debug_info( * Components: {:?}\n\ * Verify: {:?}\n\ * Error message: {}", - sp_std::str::from_utf8(instance_string) + alloc::str::from_utf8(instance_string) .expect("it's all just strings ran through the wasm interface. qed"), - sp_std::str::from_utf8(benchmark) + alloc::str::from_utf8(benchmark) .expect("it's all just strings ran through the wasm interface. qed"), components, verify, diff --git a/substrate/frame/bounties/Cargo.toml b/substrate/frame/bounties/Cargo.toml index 4b242a1a577..cb9fa1f964b 100644 --- a/substrate/frame/bounties/Cargo.toml +++ b/substrate/frame/bounties/Cargo.toml @@ -28,7 +28,6 @@ pallet-treasury = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -47,7 +46,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/bounties/src/benchmarking.rs b/substrate/frame/bounties/src/benchmarking.rs index f53d95d919d..de93ba5c4ce 100644 --- a/substrate/frame/bounties/src/benchmarking.rs +++ b/substrate/frame/bounties/src/benchmarking.rs @@ -21,6 +21,7 @@ use super::*; +use alloc::{vec, vec::Vec}; use frame_benchmarking::v1::{ account, benchmarks_instance_pallet, whitelisted_caller, BenchmarkError, }; diff --git a/substrate/frame/bounties/src/lib.rs b/substrate/frame/bounties/src/lib.rs index c04bec2d12a..7b89a6e3e76 100644 --- a/substrate/frame/bounties/src/lib.rs +++ b/substrate/frame/bounties/src/lib.rs @@ -87,7 +87,9 @@ pub mod migrations; mod tests; pub mod weights; -use sp_std::prelude::*; +extern crate alloc; + +use alloc::vec::Vec; use frame_support::traits::{ Currency, ExistenceRequirement::AllowDeath, Get, Imbalance, OnUnbalanced, ReservableCurrency, diff --git a/substrate/frame/broker/Cargo.toml b/substrate/frame/broker/Cargo.toml index 77c4883e4a4..7593a4e8da1 100644 --- a/substrate/frame/broker/Cargo.toml +++ b/substrate/frame/broker/Cargo.toml @@ -20,7 +20,6 @@ codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive"], workspace = true } bitvec = { workspace = true } sp-api = { workspace = true } -sp-std = { workspace = true } sp-arithmetic = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } @@ -49,7 +48,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/broker/src/benchmarking.rs b/substrate/frame/broker/src/benchmarking.rs index 3c9ea4cdba4..33df56c95f6 100644 --- a/substrate/frame/broker/src/benchmarking.rs +++ b/substrate/frame/broker/src/benchmarking.rs @@ -20,6 +20,7 @@ use super::*; use crate::{CoreAssignment::Task, Pallet as Broker}; +use alloc::{vec, vec::Vec}; use frame_benchmarking::v2::*; use frame_support::{ storage::bounded_vec::BoundedVec, @@ -32,7 +33,6 @@ use frame_system::{Pallet as System, RawOrigin}; use sp_arithmetic::{traits::Zero, Perbill}; use sp_core::Get; use sp_runtime::{traits::BlockNumberProvider, Saturating}; -use sp_std::{vec, vec::Vec}; const SEED: u32 = 0; const MAX_CORE_COUNT: u16 = 1_000; diff --git a/substrate/frame/broker/src/coretime_interface.rs b/substrate/frame/broker/src/coretime_interface.rs index f92f8b22091..9c18e2c4ff0 100644 --- a/substrate/frame/broker/src/coretime_interface.rs +++ b/substrate/frame/broker/src/coretime_interface.rs @@ -17,13 +17,14 @@ #![deny(missing_docs)] +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; +use core::fmt::Debug; use frame_support::Parameter; use scale_info::TypeInfo; use sp_arithmetic::traits::AtLeast32BitUnsigned; use sp_core::RuntimeDebug; use sp_runtime::traits::BlockNumberProvider; -use sp_std::{fmt::Debug, vec::Vec}; use crate::Timeslice; diff --git a/substrate/frame/broker/src/lib.rs b/substrate/frame/broker/src/lib.rs index 4cb380bae91..45c33c1bfa6 100644 --- a/substrate/frame/broker/src/lib.rs +++ b/substrate/frame/broker/src/lib.rs @@ -47,12 +47,15 @@ pub use core_mask::*; pub use coretime_interface::*; pub use types::*; +extern crate alloc; + /// The log target for this pallet. const LOG_TARGET: &str = "runtime::broker"; #[frame_support::pallet] pub mod pallet { use super::*; + use alloc::vec::Vec; use frame_support::{ pallet_prelude::{DispatchResult, DispatchResultWithPostInfo, *}, traits::{ @@ -63,7 +66,6 @@ pub mod pallet { }; use frame_system::pallet_prelude::*; use sp_runtime::traits::{Convert, ConvertBack}; - use sp_std::vec::Vec; const STORAGE_VERSION: StorageVersion = StorageVersion::new(3); @@ -496,7 +498,7 @@ pub mod pallet { #[pallet::genesis_config] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] diff --git a/substrate/frame/broker/src/migration.rs b/substrate/frame/broker/src/migration.rs index 917f44a134c..c2a243d6f0e 100644 --- a/substrate/frame/broker/src/migration.rs +++ b/substrate/frame/broker/src/migration.rs @@ -23,9 +23,9 @@ use frame_support::traits::{Get, UncheckedOnRuntimeUpgrade}; use sp_runtime::Saturating; #[cfg(feature = "try-runtime")] -use frame_support::ensure; +use alloc::vec::Vec; #[cfg(feature = "try-runtime")] -use sp_std::vec::Vec; +use frame_support::ensure; mod v1 { use super::*; diff --git a/substrate/frame/broker/src/mock.rs b/substrate/frame/broker/src/mock.rs index f29651abff7..6b1d2bbf701 100644 --- a/substrate/frame/broker/src/mock.rs +++ b/substrate/frame/broker/src/mock.rs @@ -18,6 +18,7 @@ #![cfg(test)] use crate::{test_fungibles::TestFungibles, *}; +use alloc::collections::btree_map::BTreeMap; use frame_support::{ assert_ok, derive_impl, ensure, ord_parameter_types, parameter_types, traits::{ @@ -34,7 +35,6 @@ use sp_runtime::{ traits::{BlockNumberProvider, Identity}, BuildStorage, Saturating, }; -use sp_std::collections::btree_map::BTreeMap; type Block = frame_system::mocking::MockBlock; diff --git a/substrate/frame/broker/src/nonfungible_impl.rs b/substrate/frame/broker/src/nonfungible_impl.rs index 80dcc175df5..e272ecbe008 100644 --- a/substrate/frame/broker/src/nonfungible_impl.rs +++ b/substrate/frame/broker/src/nonfungible_impl.rs @@ -16,11 +16,11 @@ // limitations under the License. use super::*; +use alloc::vec::Vec; use frame_support::{ pallet_prelude::{DispatchResult, *}, traits::nonfungible::{Inspect, Mutate, Transfer}, }; -use sp_std::vec::Vec; impl Inspect for Pallet { type ItemId = u128; diff --git a/substrate/frame/broker/src/test_fungibles.rs b/substrate/frame/broker/src/test_fungibles.rs index d18bff14953..b0a06fc1a32 100644 --- a/substrate/frame/broker/src/test_fungibles.rs +++ b/substrate/frame/broker/src/test_fungibles.rs @@ -15,6 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +use alloc::collections::btree_map::BTreeMap; use codec::{Decode, Encode}; use frame_support::{ parameter_types, @@ -29,7 +30,6 @@ use scale_info::TypeInfo; use sp_arithmetic::traits::Zero; use sp_core::{Get, TypedGet}; use sp_runtime::{DispatchError, DispatchResult}; -use sp_std::collections::btree_map::BTreeMap; parameter_types! { static TestAssetOf: BTreeMap<(u32, Vec), Vec> = Default::default(); diff --git a/substrate/frame/broker/src/tick_impls.rs b/substrate/frame/broker/src/tick_impls.rs index 3292faa4eb7..71a1286d739 100644 --- a/substrate/frame/broker/src/tick_impls.rs +++ b/substrate/frame/broker/src/tick_impls.rs @@ -16,10 +16,10 @@ // limitations under the License. use super::*; +use alloc::{vec, vec::Vec}; use frame_support::{pallet_prelude::*, traits::defensive_prelude::*, weights::WeightMeter}; use sp_arithmetic::traits::{One, SaturatedConversion, Saturating, Zero}; use sp_runtime::traits::ConvertBack; -use sp_std::{vec, vec::Vec}; use CompletionStatus::Complete; impl Pallet { diff --git a/substrate/frame/child-bounties/Cargo.toml b/substrate/frame/child-bounties/Cargo.toml index d0072e3a476..9c979b41462 100644 --- a/substrate/frame/child-bounties/Cargo.toml +++ b/substrate/frame/child-bounties/Cargo.toml @@ -29,7 +29,6 @@ pallet-treasury = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -49,7 +48,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking", diff --git a/substrate/frame/child-bounties/src/benchmarking.rs b/substrate/frame/child-bounties/src/benchmarking.rs index 947cfcfaa96..b1f6370f334 100644 --- a/substrate/frame/child-bounties/src/benchmarking.rs +++ b/substrate/frame/child-bounties/src/benchmarking.rs @@ -21,6 +21,8 @@ use super::*; +use alloc::{vec, vec::Vec}; + use frame_benchmarking::v1::{account, benchmarks, whitelisted_caller, BenchmarkError}; use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin}; diff --git a/substrate/frame/child-bounties/src/lib.rs b/substrate/frame/child-bounties/src/lib.rs index 04a1f9799cb..911fd4c4c49 100644 --- a/substrate/frame/child-bounties/src/lib.rs +++ b/substrate/frame/child-bounties/src/lib.rs @@ -56,7 +56,9 @@ mod benchmarking; mod tests; pub mod weights; -use sp_std::prelude::*; +extern crate alloc; + +use alloc::vec::Vec; use frame_support::traits::{ Currency, diff --git a/substrate/frame/collective/Cargo.toml b/substrate/frame/collective/Cargo.toml index 6fc4bb77829..7d9a4c41c81 100644 --- a/substrate/frame/collective/Cargo.toml +++ b/substrate/frame/collective/Cargo.toml @@ -25,7 +25,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -39,7 +38,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/collective/src/lib.rs b/substrate/frame/collective/src/lib.rs index d0009d02f68..3544a8cddb4 100644 --- a/substrate/frame/collective/src/lib.rs +++ b/substrate/frame/collective/src/lib.rs @@ -41,14 +41,17 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{boxed::Box, vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; +use core::{marker::PhantomData, result}; use scale_info::TypeInfo; use sp_io::storage; use sp_runtime::{ traits::{Dispatchable, Hash}, DispatchError, RuntimeDebug, }; -use sp_std::{marker::PhantomData, prelude::*, result}; use frame_support::{ dispatch::{ @@ -239,7 +242,7 @@ pub mod pallet { #[pallet::genesis_build] impl, I: 'static> BuildGenesisConfig for GenesisConfig { fn build(&self) { - use sp_std::collections::btree_set::BTreeSet; + use alloc::collections::btree_set::BTreeSet; let members_set: BTreeSet<_> = self.members.iter().collect(); assert_eq!( members_set.len(), diff --git a/substrate/frame/contracts/mock-network/Cargo.toml b/substrate/frame/contracts/mock-network/Cargo.toml index 7df5d304c34..85d98206ea5 100644 --- a/substrate/frame/contracts/mock-network/Cargo.toml +++ b/substrate/frame/contracts/mock-network/Cargo.toml @@ -36,7 +36,6 @@ sp-core = { workspace = true } sp-io = { workspace = true } sp-keystore = { workspace = true, default-features = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-tracing = { workspace = true, default-features = true } xcm = { workspace = true } xcm-builder = { workspace = true, default-features = true } @@ -67,7 +66,6 @@ std = [ "sp-io/std", "sp-keystore/std", "sp-runtime/std", - "sp-std/std", "xcm-executor/std", "xcm/std", ] diff --git a/substrate/frame/contracts/mock-network/src/mocks/msg_queue.rs b/substrate/frame/contracts/mock-network/src/mocks/msg_queue.rs index bfdf6dd97ea..6e922c16c29 100644 --- a/substrate/frame/contracts/mock-network/src/mocks/msg_queue.rs +++ b/substrate/frame/contracts/mock-network/src/mocks/msg_queue.rs @@ -25,7 +25,6 @@ use polkadot_parachain_primitives::primitives::{ use polkadot_primitives::BlockNumber as RelayBlockNumber; use sp_runtime::traits::{Get, Hash}; -use sp_std::prelude::*; use xcm::{latest::prelude::*, VersionedXcm}; #[frame_support::pallet] diff --git a/substrate/frame/contracts/mock-network/src/parachain.rs b/substrate/frame/contracts/mock-network/src/parachain.rs index f35846ba32c..3579b46ea6e 100644 --- a/substrate/frame/contracts/mock-network/src/parachain.rs +++ b/substrate/frame/contracts/mock-network/src/parachain.rs @@ -35,7 +35,6 @@ use pallet_xcm::XcmPassthrough; use sp_core::{ConstU32, ConstU64, H256}; use sp_runtime::traits::{Get, IdentityLookup, MaybeEquivalence}; -use sp_std::prelude::*; use xcm::latest::prelude::*; use xcm_builder::{ AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, diff --git a/substrate/frame/contracts/proc-macro/src/lib.rs b/substrate/frame/contracts/proc-macro/src/lib.rs index f91f8660cd3..84ea7de00a2 100644 --- a/substrate/frame/contracts/proc-macro/src/lib.rs +++ b/substrate/frame/contracts/proc-macro/src/lib.rs @@ -649,7 +649,7 @@ fn expand_functions(def: &EnvDef, expand_mode: ExpandMode) -> TokenStream2 { quote! { let result = #body; if ::log::log_enabled!(target: "runtime::contracts::strace", ::log::Level::Trace) { - use sp_std::fmt::Write; + use core::fmt::Write; let mut w = sp_std::Writer::default(); let _ = core::write!(&mut w, #trace_fmt_str, #( #trace_fmt_args, )* result); let msg = core::str::from_utf8(&w.inner()).unwrap_or_default(); diff --git a/substrate/frame/contracts/src/benchmarking/call_builder.rs b/substrate/frame/contracts/src/benchmarking/call_builder.rs index 5d73d825fca..d87eaba7343 100644 --- a/substrate/frame/contracts/src/benchmarking/call_builder.rs +++ b/substrate/frame/contracts/src/benchmarking/call_builder.rs @@ -23,11 +23,11 @@ use crate::{ BalanceOf, Config, DebugBufferVec, Determinism, ExecReturnValue, GasMeter, Origin, Schedule, TypeInfo, WasmBlob, Weight, }; +use alloc::{vec, vec::Vec}; use codec::{Encode, HasCompact}; use core::fmt::Debug; use frame_benchmarking::benchmarking; use sp_core::Get; -use sp_std::prelude::*; type StackExt<'a, T> = Stack<'a, T, WasmBlob>; diff --git a/substrate/frame/contracts/src/benchmarking/code.rs b/substrate/frame/contracts/src/benchmarking/code.rs index 65bcf30683c..1473022b553 100644 --- a/substrate/frame/contracts/src/benchmarking/code.rs +++ b/substrate/frame/contracts/src/benchmarking/code.rs @@ -25,9 +25,9 @@ //! compiles it down into a `WasmModule` that can be used as a contract's code. use crate::Config; +use alloc::{borrow::ToOwned, vec, vec::Vec}; use frame_support::traits::Get; use sp_runtime::{traits::Hash, Saturating}; -use sp_std::{borrow::ToOwned, prelude::*}; use wasm_instrument::parity_wasm::{ builder, elements::{ @@ -338,7 +338,7 @@ pub mod body { .cycle() .take(instructions.len() * usize::try_from(repetitions).unwrap()) .cloned() - .chain(sp_std::iter::once(Instruction::End)) + .chain(core::iter::once(Instruction::End)) .collect(), ); FuncBody::new(locals.to_vec(), instructions) diff --git a/substrate/frame/contracts/src/benchmarking/mod.rs b/substrate/frame/contracts/src/benchmarking/mod.rs index 80c7e863d29..612f929e8b1 100644 --- a/substrate/frame/contracts/src/benchmarking/mod.rs +++ b/substrate/frame/contracts/src/benchmarking/mod.rs @@ -34,6 +34,7 @@ use crate::{ wasm::BenchEnv, Pallet as Contracts, *, }; +use alloc::{vec, vec::Vec}; use codec::{Encode, MaxEncodedLen}; use frame_benchmarking::v2::*; use frame_support::{ @@ -46,7 +47,6 @@ use frame_system::RawOrigin; use pallet_balances; use pallet_contracts_uapi::{CallFlags, ReturnErrorCode}; use sp_runtime::traits::{Bounded, Hash}; -use sp_std::prelude::*; use wasm_instrument::parity_wasm::elements::{Instruction, Local, ValueType}; /// How many runs we do per API benchmark. @@ -186,7 +186,7 @@ fn caller_funding() -> BalanceOf { #[benchmarks( where - as codec::HasCompact>::Type: Clone + Eq + PartialEq + sp_std::fmt::Debug + scale_info::TypeInfo + codec::Encode, + as codec::HasCompact>::Type: Clone + Eq + PartialEq + core::fmt::Debug + scale_info::TypeInfo + codec::Encode, T: Config + pallet_balances::Config, BalanceOf: From< as Currency>::Balance>, as Currency>::Balance: From>, diff --git a/substrate/frame/contracts/src/chain_extension.rs b/substrate/frame/contracts/src/chain_extension.rs index f3a67fcb09a..b9bb451fd73 100644 --- a/substrate/frame/contracts/src/chain_extension.rs +++ b/substrate/frame/contracts/src/chain_extension.rs @@ -74,17 +74,18 @@ use crate::{ wasm::{Runtime, RuntimeCosts}, Error, }; +use alloc::vec::Vec; use codec::{Decode, MaxEncodedLen}; +use core::marker::PhantomData; use frame_support::weights::Weight; use sp_runtime::DispatchError; -use sp_std::{marker::PhantomData, vec::Vec}; pub use crate::{exec::Ext, gas::ChargedAmount, storage::meter::Diff, Config}; pub use frame_system::Config as SysConfig; pub use pallet_contracts_uapi::ReturnFlags; /// Result that returns a [`DispatchError`] on error. -pub type Result = sp_std::result::Result; +pub type Result = core::result::Result; /// A trait used to extend the set of contract callable functions. /// diff --git a/substrate/frame/contracts/src/exec.rs b/substrate/frame/contracts/src/exec.rs index 84a3f7dc2a1..0cc4844166f 100644 --- a/substrate/frame/contracts/src/exec.rs +++ b/substrate/frame/contracts/src/exec.rs @@ -24,6 +24,8 @@ use crate::{ DebugBufferVec, Determinism, Error, Event, Nonce, Origin, Pallet as Contracts, Schedule, LOG_TARGET, }; +use alloc::vec::Vec; +use core::{fmt::Debug, marker::PhantomData, mem}; use frame_support::{ crypto::ecdsa::ECDSAExt, dispatch::{DispatchResult, DispatchResultWithPostInfo}, @@ -49,7 +51,6 @@ use sp_runtime::{ traits::{Convert, Dispatchable, Zero}, DispatchError, }; -use sp_std::{fmt::Debug, marker::PhantomData, mem, prelude::*, vec::Vec}; pub type AccountIdOf = ::AccountId; pub type MomentOf = <::Time as Time>::Moment; @@ -1185,12 +1186,12 @@ where /// /// The iterator starts with the top frame and ends with the root frame. fn frames(&self) -> impl Iterator> { - sp_std::iter::once(&self.first_frame).chain(&self.frames).rev() + core::iter::once(&self.first_frame).chain(&self.frames).rev() } /// Same as `frames` but with a mutable reference as iterator item. fn frames_mut(&mut self) -> impl Iterator> { - sp_std::iter::once(&mut self.first_frame).chain(&mut self.frames).rev() + core::iter::once(&mut self.first_frame).chain(&mut self.frames).rev() } /// Returns whether the current contract is on the stack multiple times. diff --git a/substrate/frame/contracts/src/lib.rs b/substrate/frame/contracts/src/lib.rs index 33083c7ebe7..ed00fdca62f 100644 --- a/substrate/frame/contracts/src/lib.rs +++ b/substrate/frame/contracts/src/lib.rs @@ -87,6 +87,7 @@ #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr(feature = "runtime-benchmarks", recursion_limit = "1024")] +extern crate alloc; mod address; mod benchmarking; mod exec; @@ -115,6 +116,7 @@ use crate::{ wasm::{CodeInfo, WasmBlob}, }; use codec::{Codec, Decode, Encode, HasCompact, MaxEncodedLen}; +use core::fmt::Debug; use environmental::*; use frame_support::{ dispatch::{GetDispatchInfo, Pays, PostDispatchInfo, RawOrigin, WithPostDispatchInfo}, @@ -137,7 +139,6 @@ use sp_runtime::{ traits::{BadOrigin, Convert, Dispatchable, Saturating, StaticLookup, Zero}, DispatchError, RuntimeDebug, }; -use sp_std::{fmt::Debug, prelude::*}; pub use crate::{ address::{AddressGenerator, DefaultAddressGenerator}, diff --git a/substrate/frame/contracts/src/migration.rs b/substrate/frame/contracts/src/migration.rs index c633ba9c2d5..29ac74d0d50 100644 --- a/substrate/frame/contracts/src/migration.rs +++ b/substrate/frame/contracts/src/migration.rs @@ -69,17 +69,16 @@ include!(concat!(env!("OUT_DIR"), "/migration_codegen.rs")); use crate::{weights::WeightInfo, Config, Error, MigrationInProgress, Pallet, Weight, LOG_TARGET}; use codec::{Codec, Decode}; +use core::marker::PhantomData; use frame_support::{ pallet_prelude::*, traits::{ConstU32, OnRuntimeUpgrade}, weights::WeightMeter, }; use sp_runtime::Saturating; -use sp_std::marker::PhantomData; #[cfg(feature = "try-runtime")] -use sp_std::prelude::*; - +use alloc::vec::Vec; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; @@ -604,7 +603,7 @@ mod test { let mut meter = WeightMeter::with_limit(Weight::from_all(1)); let result = Migrations::steps(version, &cursor, &mut meter); - cursor = vec![1u8, 0].try_into().unwrap(); + cursor = alloc::vec![1u8, 0].try_into().unwrap(); assert_eq!(result, StepResult::InProgress { cursor: cursor.clone(), steps_done: 1 }); assert_eq!(meter.consumed(), Weight::from_all(1)); diff --git a/substrate/frame/contracts/src/migration/v09.rs b/substrate/frame/contracts/src/migration/v09.rs index 7e84191910d..6a67395174f 100644 --- a/substrate/frame/contracts/src/migration/v09.rs +++ b/substrate/frame/contracts/src/migration/v09.rs @@ -22,13 +22,13 @@ use crate::{ weights::WeightInfo, CodeHash, Config, Determinism, Pallet, Weight, LOG_TARGET, }; +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::{ pallet_prelude::*, storage_alias, weights::WeightMeter, DefaultNoBound, Identity, }; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; -use sp_std::prelude::*; mod v8 { use super::*; @@ -56,7 +56,7 @@ pub fn store_old_dummy_code(len: usize) { instruction_weights_version: 0, initial: 0, maximum: 0, - code: vec![42u8; len], + code: alloc::vec![42u8; len], }; let hash = T::Hashing::hash(&module.code); v8::CodeStorage::::insert(hash, module); diff --git a/substrate/frame/contracts/src/migration/v10.rs b/substrate/frame/contracts/src/migration/v10.rs index 61632a1fd1b..23e7fd238bb 100644 --- a/substrate/frame/contracts/src/migration/v10.rs +++ b/substrate/frame/contracts/src/migration/v10.rs @@ -40,13 +40,15 @@ use frame_support::{ DefaultNoBound, }; use sp_core::hexdisplay::HexDisplay; -#[cfg(feature = "try-runtime")] -use sp_runtime::TryRuntimeError; use sp_runtime::{ traits::{Hash, TrailingZeroInput, Zero}, Perbill, Saturating, }; -use sp_std::prelude::*; + +#[cfg(feature = "try-runtime")] +use alloc::vec::Vec; +#[cfg(feature = "try-runtime")] +use sp_runtime::TryRuntimeError; mod v9 { use super::*; diff --git a/substrate/frame/contracts/src/migration/v11.rs b/substrate/frame/contracts/src/migration/v11.rs index 9b4316162ca..bd128e22869 100644 --- a/substrate/frame/contracts/src/migration/v11.rs +++ b/substrate/frame/contracts/src/migration/v11.rs @@ -23,11 +23,13 @@ use crate::{ weights::WeightInfo, Config, Pallet, TrieId, Weight, LOG_TARGET, }; +use alloc::vec::Vec; use codec::{Decode, Encode}; +use core::marker::PhantomData; use frame_support::{pallet_prelude::*, storage_alias, weights::WeightMeter, DefaultNoBound}; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; -use sp_std::{marker::PhantomData, prelude::*}; + mod v10 { use super::*; diff --git a/substrate/frame/contracts/src/migration/v12.rs b/substrate/frame/contracts/src/migration/v12.rs index aad51a9edca..3c33591e435 100644 --- a/substrate/frame/contracts/src/migration/v12.rs +++ b/substrate/frame/contracts/src/migration/v12.rs @@ -23,6 +23,7 @@ use crate::{ weights::WeightInfo, AccountIdOf, BalanceOf, CodeHash, Config, Determinism, Pallet, Weight, LOG_TARGET, }; +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::{ pallet_prelude::*, storage_alias, traits::ReservableCurrency, weights::WeightMeter, @@ -33,7 +34,6 @@ use sp_core::hexdisplay::HexDisplay; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; use sp_runtime::{traits::Zero, FixedPointNumber, FixedU128, Saturating}; -use sp_std::prelude::*; mod v11 { use super::*; @@ -109,7 +109,7 @@ where { use sp_runtime::traits::Hash; - let code = vec![42u8; len]; + let code = alloc::vec![42u8; len]; let hash = T::Hashing::hash(&code); PristineCode::::insert(hash, code.clone()); diff --git a/substrate/frame/contracts/src/migration/v13.rs b/substrate/frame/contracts/src/migration/v13.rs index 6929bbce28e..d1888b338da 100644 --- a/substrate/frame/contracts/src/migration/v13.rs +++ b/substrate/frame/contracts/src/migration/v13.rs @@ -26,7 +26,6 @@ use crate::{ use codec::{Decode, Encode}; use frame_support::{pallet_prelude::*, storage_alias, weights::WeightMeter, DefaultNoBound}; use sp_runtime::BoundedBTreeMap; -use sp_std::prelude::*; mod v12 { use super::*; diff --git a/substrate/frame/contracts/src/migration/v14.rs b/substrate/frame/contracts/src/migration/v14.rs index 017fd6d0c15..11336fe2e7d 100644 --- a/substrate/frame/contracts/src/migration/v14.rs +++ b/substrate/frame/contracts/src/migration/v14.rs @@ -26,6 +26,8 @@ use crate::{ weights::WeightInfo, BalanceOf, CodeHash, Config, Determinism, HoldReason, Pallet, Weight, LOG_TARGET, }; +#[cfg(feature = "try-runtime")] +use alloc::collections::btree_map::BTreeMap; use codec::{Decode, Encode}; #[cfg(feature = "try-runtime")] use environmental::Vec; @@ -42,8 +44,6 @@ use sp_core::hexdisplay::HexDisplay; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; use sp_runtime::{traits::Zero, Saturating}; -#[cfg(feature = "try-runtime")] -use sp_std::collections::btree_map::BTreeMap; mod v13 { use super::*; @@ -80,8 +80,8 @@ where T: Config, OldCurrency: ReservableCurrency<::AccountId> + 'static, { + use alloc::vec; use sp_runtime::traits::Hash; - use sp_std::vec; let len = T::MaxCodeLen::get(); let code = vec![42u8; len as usize]; diff --git a/substrate/frame/contracts/src/migration/v15.rs b/substrate/frame/contracts/src/migration/v15.rs index 3c700d1c0b0..11f07282d56 100644 --- a/substrate/frame/contracts/src/migration/v15.rs +++ b/substrate/frame/contracts/src/migration/v15.rs @@ -28,6 +28,8 @@ use crate::{ AccountIdOf, BalanceOf, CodeHash, Config, HoldReason, Pallet, TrieId, Weight, LOG_TARGET, }; #[cfg(feature = "try-runtime")] +use alloc::vec::Vec; +#[cfg(feature = "try-runtime")] use frame_support::traits::fungible::InspectHold; use frame_support::{ pallet_prelude::*, @@ -44,8 +46,6 @@ use sp_core::hexdisplay::HexDisplay; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; use sp_runtime::{traits::Zero, Saturating}; -#[cfg(feature = "try-runtime")] -use sp_std::vec::Vec; mod v14 { use super::*; diff --git a/substrate/frame/contracts/src/migration/v16.rs b/substrate/frame/contracts/src/migration/v16.rs index 74fbc997718..3d5b2d2a85f 100644 --- a/substrate/frame/contracts/src/migration/v16.rs +++ b/substrate/frame/contracts/src/migration/v16.rs @@ -26,7 +26,6 @@ use crate::{ use codec::{Decode, Encode}; use frame_support::{pallet_prelude::*, storage_alias, DefaultNoBound}; use sp_runtime::{BoundedBTreeMap, Saturating}; -use sp_std::prelude::*; #[cfg(feature = "runtime-benchmarks")] pub fn store_old_contract_info( diff --git a/substrate/frame/contracts/src/primitives.rs b/substrate/frame/contracts/src/primitives.rs index ab73b28e8c4..622a69f529f 100644 --- a/substrate/frame/contracts/src/primitives.rs +++ b/substrate/frame/contracts/src/primitives.rs @@ -17,6 +17,7 @@ //! A crate that hosts a common definitions that are relevant for the pallet-contracts. +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::weights::Weight; use pallet_contracts_uapi::ReturnFlags; @@ -25,7 +26,6 @@ use sp_runtime::{ traits::{Saturating, Zero}, DispatchError, RuntimeDebug, }; -use sp_std::prelude::*; /// Result type of a `bare_call` or `bare_instantiate` call as well as `ContractsApi::call` and /// `ContractsApi::instantiate`. diff --git a/substrate/frame/contracts/src/storage.rs b/substrate/frame/contracts/src/storage.rs index 1e9739a1599..23b5a2514eb 100644 --- a/substrate/frame/contracts/src/storage.rs +++ b/substrate/frame/contracts/src/storage.rs @@ -25,7 +25,9 @@ use crate::{ BalanceOf, CodeHash, CodeInfo, Config, ContractInfoOf, DeletionQueue, DeletionQueueCounter, Error, TrieId, SENTINEL, }; +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; +use core::marker::PhantomData; use frame_support::{ storage::child::{self, ChildInfo}, weights::{Weight, WeightMeter}, @@ -38,7 +40,6 @@ use sp_runtime::{ traits::{Hash, Saturating, Zero}, BoundedBTreeMap, DispatchError, DispatchResult, RuntimeDebug, }; -use sp_std::{marker::PhantomData, prelude::*}; use self::meter::Diff; diff --git a/substrate/frame/contracts/src/storage/meter.rs b/substrate/frame/contracts/src/storage/meter.rs index 7c55ce5d3f0..951cb25994e 100644 --- a/substrate/frame/contracts/src/storage/meter.rs +++ b/substrate/frame/contracts/src/storage/meter.rs @@ -22,6 +22,8 @@ use crate::{ Inspect, Origin, Pallet, StorageDeposit as Deposit, System, LOG_TARGET, }; +use alloc::vec::Vec; +use core::{fmt::Debug, marker::PhantomData}; use frame_support::{ ensure, traits::{ @@ -37,7 +39,6 @@ use sp_runtime::{ traits::{Saturating, Zero}, DispatchError, FixedPointNumber, FixedU128, }; -use sp_std::{fmt::Debug, marker::PhantomData, vec::Vec}; /// Deposit that uses the native fungible's balance type. pub type DepositOf = Deposit>; diff --git a/substrate/frame/contracts/src/tests.rs b/substrate/frame/contracts/src/tests.rs index c20577a3f64..3f608d90bea 100644 --- a/substrate/frame/contracts/src/tests.rs +++ b/substrate/frame/contracts/src/tests.rs @@ -458,7 +458,7 @@ parameter_types! { pub static InstantiateAccount: Option<::AccountId> = None; } -pub struct EnsureAccount(sp_std::marker::PhantomData<(T, A)>); +pub struct EnsureAccount(core::marker::PhantomData<(T, A)>); impl>>> EnsureOrigin<::RuntimeOrigin> for EnsureAccount where diff --git a/substrate/frame/contracts/src/wasm/mod.rs b/substrate/frame/contracts/src/wasm/mod.rs index 0d65d696758..2fef07f8b7a 100644 --- a/substrate/frame/contracts/src/wasm/mod.rs +++ b/substrate/frame/contracts/src/wasm/mod.rs @@ -48,6 +48,7 @@ use crate::{ AccountIdOf, BadOrigin, BalanceOf, CodeHash, CodeInfoOf, CodeVec, Config, Error, Event, HoldReason, Pallet, PristineCode, Schedule, Weight, LOG_TARGET, }; +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ dispatch::DispatchResult, @@ -56,7 +57,6 @@ use frame_support::{ }; use sp_core::Get; use sp_runtime::{DispatchError, RuntimeDebug}; -use sp_std::prelude::*; use wasmi::{CompilationMode, InstancePre, Linker, Memory, MemoryType, StackLimits, Store}; const BYTES_PER_PAGE: usize = 64 * 1024; diff --git a/substrate/frame/contracts/src/wasm/prepare.rs b/substrate/frame/contracts/src/wasm/prepare.rs index 50eb6d62532..93fe3080d22 100644 --- a/substrate/frame/contracts/src/wasm/prepare.rs +++ b/substrate/frame/contracts/src/wasm/prepare.rs @@ -28,10 +28,10 @@ use crate::{ }, AccountIdOf, CodeVec, Config, Error, Schedule, LOG_TARGET, }; +#[cfg(any(test, feature = "runtime-benchmarks"))] +use alloc::vec::Vec; use codec::MaxEncodedLen; use sp_runtime::{traits::Hash, DispatchError}; -#[cfg(any(test, feature = "runtime-benchmarks"))] -use sp_std::prelude::Vec; use wasmi::{ core::ValType as WasmiValueType, CompilationMode, Config as WasmiConfig, Engine, ExternType, Module, StackLimits, @@ -56,7 +56,7 @@ pub enum LoadingMode { #[cfg(test)] pub mod tracker { - use sp_std::cell::RefCell; + use core::cell::RefCell; thread_local! { pub static LOADED_MODULE: RefCell> = RefCell::new(Vec::new()); } diff --git a/substrate/frame/contracts/src/wasm/runtime.rs b/substrate/frame/contracts/src/wasm/runtime.rs index 5f50dbf391a..50b06de080c 100644 --- a/substrate/frame/contracts/src/wasm/runtime.rs +++ b/substrate/frame/contracts/src/wasm/runtime.rs @@ -24,7 +24,9 @@ use crate::{ weights::WeightInfo, BalanceOf, CodeHash, Config, DebugBufferVec, Error, SENTINEL, }; +use alloc::{boxed::Box, vec, vec::Vec}; use codec::{Decode, DecodeLimit, Encode, MaxEncodedLen}; +use core::fmt; use frame_support::{ dispatch::DispatchInfo, ensure, pallet_prelude::DispatchResultWithPostInfo, parameter_types, traits::Get, weights::Weight, @@ -36,7 +38,6 @@ use sp_runtime::{ traits::{Bounded, Zero}, DispatchError, RuntimeDebug, }; -use sp_std::{fmt, prelude::*}; use wasmi::{core::HostError, errors::LinkerError, Linker, Memory, Store}; type CallOf = ::RuntimeCall; @@ -1900,7 +1901,7 @@ pub mod env { data_len: u32, ) -> Result<(), TrapReason> { let num_topic = topics_len - .checked_div(sp_std::mem::size_of::>() as u32) + .checked_div(core::mem::size_of::>() as u32) .ok_or("Zero sized topics are not allowed")?; ctx.charge_gas(RuntimeCosts::DepositEvent { num_topic, len: data_len })?; if data_len > ctx.ext.max_value_size() { diff --git a/substrate/frame/conviction-voting/Cargo.toml b/substrate/frame/conviction-voting/Cargo.toml index b96809b8aeb..6184b0ffd6e 100644 --- a/substrate/frame/conviction-voting/Cargo.toml +++ b/substrate/frame/conviction-voting/Cargo.toml @@ -28,7 +28,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -49,7 +48,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/conviction-voting/src/benchmarking.rs b/substrate/frame/conviction-voting/src/benchmarking.rs index 8701ed7ebb0..546ad538535 100644 --- a/substrate/frame/conviction-voting/src/benchmarking.rs +++ b/substrate/frame/conviction-voting/src/benchmarking.rs @@ -19,6 +19,7 @@ use super::*; +use alloc::{collections::btree_map::BTreeMap, vec::Vec}; use assert_matches::assert_matches; use frame_benchmarking::v1::{account, benchmarks_instance_pallet, whitelist_account}; use frame_support::{ @@ -30,7 +31,6 @@ use frame_support::{ }, }; use sp_runtime::traits::Bounded; -use sp_std::collections::btree_map::BTreeMap; use crate::Pallet as ConvictionVoting; diff --git a/substrate/frame/conviction-voting/src/lib.rs b/substrate/frame/conviction-voting/src/lib.rs index 466fc70a619..be7f7f44807 100644 --- a/substrate/frame/conviction-voting/src/lib.rs +++ b/substrate/frame/conviction-voting/src/lib.rs @@ -27,6 +27,8 @@ #![recursion_limit = "256"] #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + use frame_support::{ dispatch::DispatchResult, ensure, @@ -40,7 +42,6 @@ use sp_runtime::{ traits::{AtLeast32BitUnsigned, Saturating, StaticLookup, Zero}, ArithmeticError, DispatchError, Perbill, }; -use sp_std::prelude::*; mod conviction; mod types; @@ -559,7 +560,7 @@ impl, I: 'static> Pallet { ensure!(balance <= T::Currency::total_balance(&who), Error::::InsufficientFunds); let votes = VotingFor::::try_mutate(&who, &class, |voting| -> Result { - let old = sp_std::mem::replace( + let old = core::mem::replace( voting, Voting::Delegating(Delegating { balance, @@ -596,7 +597,7 @@ impl, I: 'static> Pallet { fn try_undelegate(who: T::AccountId, class: ClassOf) -> Result { let votes = VotingFor::::try_mutate(&who, &class, |voting| -> Result { - match sp_std::mem::replace(voting, Voting::default()) { + match core::mem::replace(voting, Voting::default()) { Voting::Delegating(Delegating { balance, target, diff --git a/substrate/frame/conviction-voting/src/types.rs b/substrate/frame/conviction-voting/src/types.rs index 2c45b54485b..d6bbb678a14 100644 --- a/substrate/frame/conviction-voting/src/types.rs +++ b/substrate/frame/conviction-voting/src/types.rs @@ -18,6 +18,7 @@ //! Miscellaneous additional datatypes. use codec::{Codec, Decode, Encode, MaxEncodedLen}; +use core::{fmt::Debug, marker::PhantomData}; use frame_support::{ traits::VoteTally, CloneNoBound, EqNoBound, PartialEqNoBound, RuntimeDebugNoBound, }; @@ -26,7 +27,6 @@ use sp_runtime::{ traits::{Saturating, Zero}, RuntimeDebug, }; -use sp_std::{fmt::Debug, marker::PhantomData}; use super::*; use crate::{AccountVote, Conviction, Vote}; diff --git a/substrate/frame/conviction-voting/src/vote.rs b/substrate/frame/conviction-voting/src/vote.rs index 5ae08f0de65..1c5b742ba12 100644 --- a/substrate/frame/conviction-voting/src/vote.rs +++ b/substrate/frame/conviction-voting/src/vote.rs @@ -25,7 +25,6 @@ use sp_runtime::{ traits::{Saturating, Zero}, RuntimeDebug, }; -use sp_std::prelude::*; /// A number of lock periods, plus a vote, one way or the other. #[derive(Copy, Clone, Eq, PartialEq, Default, RuntimeDebug, MaxEncodedLen)] diff --git a/substrate/frame/core-fellowship/Cargo.toml b/substrate/frame/core-fellowship/Cargo.toml index 44290402594..7ef6f9e11eb 100644 --- a/substrate/frame/core-fellowship/Cargo.toml +++ b/substrate/frame/core-fellowship/Cargo.toml @@ -26,7 +26,6 @@ sp-arithmetic = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } pallet-ranked-collective = { optional = true, workspace = true } [features] @@ -44,7 +43,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/core-fellowship/src/benchmarking.rs b/substrate/frame/core-fellowship/src/benchmarking.rs index 34461e062b3..adb8a4a091b 100644 --- a/substrate/frame/core-fellowship/src/benchmarking.rs +++ b/substrate/frame/core-fellowship/src/benchmarking.rs @@ -22,6 +22,7 @@ use super::*; use crate::Pallet as CoreFellowship; +use alloc::{boxed::Box, vec}; use frame_benchmarking::v2::*; use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin}; use sp_arithmetic::traits::Bounded; diff --git a/substrate/frame/core-fellowship/src/lib.rs b/substrate/frame/core-fellowship/src/lib.rs index 5ed2562d6d0..c61447e3628 100644 --- a/substrate/frame/core-fellowship/src/lib.rs +++ b/substrate/frame/core-fellowship/src/lib.rs @@ -57,11 +57,14 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::boxed::Box; use codec::{Decode, Encode, MaxEncodedLen}; +use core::{fmt::Debug, marker::PhantomData}; use scale_info::TypeInfo; use sp_arithmetic::traits::{Saturating, Zero}; use sp_runtime::RuntimeDebug; -use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; use frame_support::{ defensive, diff --git a/substrate/frame/core-fellowship/src/migration.rs b/substrate/frame/core-fellowship/src/migration.rs index b8b5540a4b4..b1e27d1e793 100644 --- a/substrate/frame/core-fellowship/src/migration.rs +++ b/substrate/frame/core-fellowship/src/migration.rs @@ -24,6 +24,8 @@ use frame_support::{ BoundedVec, }; +#[cfg(feature = "try-runtime")] +use alloc::vec::Vec; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; diff --git a/substrate/frame/delegated-staking/Cargo.toml b/substrate/frame/delegated-staking/Cargo.toml index 0c1bcf0df0c..a7751e1d6c1 100644 --- a/substrate/frame/delegated-staking/Cargo.toml +++ b/substrate/frame/delegated-staking/Cargo.toml @@ -16,7 +16,6 @@ codec = { features = ["derive"], workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } scale-info = { features = ["derive"], workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } sp-staking = { workspace = true } @@ -48,7 +47,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-election-provider-support/runtime-benchmarks", diff --git a/substrate/frame/delegated-staking/src/impls.rs b/substrate/frame/delegated-staking/src/impls.rs index 9f5649672d7..f8df9dfe7b4 100644 --- a/substrate/frame/delegated-staking/src/impls.rs +++ b/substrate/frame/delegated-staking/src/impls.rs @@ -139,7 +139,7 @@ impl OnStakingUpdate> for Pallet { fn on_slash( who: &T::AccountId, _slashed_active: BalanceOf, - _slashed_unlocking: &sp_std::collections::btree_map::BTreeMap>, + _slashed_unlocking: &alloc::collections::btree_map::BTreeMap>, slashed_total: BalanceOf, ) { >::mutate(who, |maybe_register| match maybe_register { diff --git a/substrate/frame/delegated-staking/src/lib.rs b/substrate/frame/delegated-staking/src/lib.rs index f16bb0d1dc0..61809dcb54e 100644 --- a/substrate/frame/delegated-staking/src/lib.rs +++ b/substrate/frame/delegated-staking/src/lib.rs @@ -132,10 +132,13 @@ mod mock; mod tests; mod types; +extern crate alloc; + pub use pallet::*; use types::*; +use core::convert::TryInto; use frame_support::{ pallet_prelude::*, traits::{ @@ -154,7 +157,6 @@ use sp_runtime::{ ArithmeticError, DispatchResult, Perbill, RuntimeDebug, Saturating, }; use sp_staking::{Agent, Delegator, EraIndex, StakingInterface, StakingUnchecked}; -use sp_std::{convert::TryInto, prelude::*}; pub type BalanceOf = <::Currency as FunInspect<::AccountId>>::Balance; @@ -779,7 +781,7 @@ impl Pallet { } #[cfg(any(test, feature = "try-runtime"))] -use sp_std::collections::btree_map::BTreeMap; +use alloc::collections::btree_map::BTreeMap; #[cfg(any(test, feature = "try-runtime"))] impl Pallet { diff --git a/substrate/frame/democracy/Cargo.toml b/substrate/frame/democracy/Cargo.toml index 6a44951e09c..ce5ffa57d57 100644 --- a/substrate/frame/democracy/Cargo.toml +++ b/substrate/frame/democracy/Cargo.toml @@ -26,7 +26,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-core = { workspace = true } log = { workspace = true } @@ -51,7 +50,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/democracy/src/benchmarking.rs b/substrate/frame/democracy/src/benchmarking.rs index 799d614c37f..ee36e9212f5 100644 --- a/substrate/frame/democracy/src/benchmarking.rs +++ b/substrate/frame/democracy/src/benchmarking.rs @@ -85,8 +85,8 @@ fn assert_has_event(generic_event: ::RuntimeEvent) { // note a new preimage. fn note_preimage() -> T::Hash { + use alloc::borrow::Cow; use core::sync::atomic::{AtomicU8, Ordering}; - use sp_std::borrow::Cow; // note a new preimage on every function invoke. static COUNTER: AtomicU8 = AtomicU8::new(0); let data = Cow::from(vec![COUNTER.fetch_add(1, Ordering::Relaxed)]); diff --git a/substrate/frame/democracy/src/lib.rs b/substrate/frame/democracy/src/lib.rs index e3b4696f8b2..27bc36a756e 100644 --- a/substrate/frame/democracy/src/lib.rs +++ b/substrate/frame/democracy/src/lib.rs @@ -152,6 +152,9 @@ #![recursion_limit = "256"] #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; use frame_support::{ ensure, @@ -168,7 +171,6 @@ use sp_runtime::{ traits::{BadOrigin, Bounded as ArithBounded, One, Saturating, StaticLookup, Zero}, ArithmeticError, DispatchError, DispatchResult, }; -use sp_std::prelude::*; mod conviction; mod types; @@ -438,7 +440,7 @@ pub mod pallet { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - _config: sp_std::marker::PhantomData, + _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -1433,7 +1435,7 @@ impl Pallet { delegations: Default::default(), prior: Default::default(), }; - sp_std::mem::swap(&mut old, voting); + core::mem::swap(&mut old, voting); match old { Voting::Delegating { balance, target, conviction, delegations, mut prior, .. @@ -1474,7 +1476,7 @@ impl Pallet { fn try_undelegate(who: T::AccountId) -> Result { let votes = VotingOf::::try_mutate(&who, |voting| -> Result { let mut old = Voting::default(); - sp_std::mem::swap(&mut old, voting); + core::mem::swap(&mut old, voting); match old { Voting::Delegating { balance, target, conviction, delegations, mut prior } => { // remove any delegation votes to our current target. diff --git a/substrate/frame/democracy/src/migrations/unlock_and_unreserve_all_funds.rs b/substrate/frame/democracy/src/migrations/unlock_and_unreserve_all_funds.rs index 1cb50a157b1..ca0e0f7a091 100644 --- a/substrate/frame/democracy/src/migrations/unlock_and_unreserve_all_funds.rs +++ b/substrate/frame/democracy/src/migrations/unlock_and_unreserve_all_funds.rs @@ -19,6 +19,7 @@ //! pallet. use crate::{PropIndex, Voting, DEMOCRACY_ID}; +use alloc::{collections::btree_map::BTreeMap, vec::Vec}; use core::iter::Sum; use frame_support::{ pallet_prelude::ValueQuery, @@ -29,7 +30,6 @@ use frame_support::{ }; use sp_core::Get; use sp_runtime::{traits::Zero, BoundedVec, Saturating}; -use sp_std::{collections::btree_map::BTreeMap, vec::Vec}; const LOG_TARGET: &str = "runtime::democracy::migrations::unlock_and_unreserve_all_funds"; @@ -87,7 +87,7 @@ type VotingOf = StorageMap< /// The pallet should be made inoperable before this migration is run. /// /// (See also [`RemovePallet`][frame_support::migrations::RemovePallet]) -pub struct UnlockAndUnreserveAllFunds(sp_std::marker::PhantomData); +pub struct UnlockAndUnreserveAllFunds(core::marker::PhantomData); impl UnlockAndUnreserveAllFunds { /// Calculates and returns the total amounts reserved by each account by this pallet, and all @@ -170,8 +170,8 @@ where /// the actual total reserved amount for any accounts. #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + use alloc::collections::btree_set::BTreeSet; use codec::Encode; - use sp_std::collections::btree_set::BTreeSet; // Get staked and deposited balances as reported by this pallet. let (account_deposits, account_locks, _) = Self::get_account_deposits_and_locks(); diff --git a/substrate/frame/democracy/src/vote.rs b/substrate/frame/democracy/src/vote.rs index b3fe9aa28e1..779f7ecd570 100644 --- a/substrate/frame/democracy/src/vote.rs +++ b/substrate/frame/democracy/src/vote.rs @@ -25,7 +25,6 @@ use sp_runtime::{ traits::{Saturating, Zero}, BoundedVec, RuntimeDebug, }; -use sp_std::prelude::*; /// A number of lock periods, plus a vote, one way or the other. #[derive(Copy, Clone, Eq, PartialEq, Default, RuntimeDebug)] diff --git a/substrate/frame/election-provider-multi-phase/Cargo.toml b/substrate/frame/election-provider-multi-phase/Cargo.toml index 941d720f2c6..4d1f521d726 100644 --- a/substrate/frame/election-provider-multi-phase/Cargo.toml +++ b/substrate/frame/election-provider-multi-phase/Cargo.toml @@ -27,7 +27,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } -sp-std = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } sp-npos-elections = { workspace = true } @@ -68,7 +67,6 @@ std = [ "sp-io/std", "sp-npos-elections/std", "sp-runtime/std", - "sp-std/std", "sp-tracing/std", "strum/std", ] diff --git a/substrate/frame/election-provider-multi-phase/src/helpers.rs b/substrate/frame/election-provider-multi-phase/src/helpers.rs index a3f27fc18f0..8269b2cb73b 100644 --- a/substrate/frame/election-provider-multi-phase/src/helpers.rs +++ b/substrate/frame/election-provider-multi-phase/src/helpers.rs @@ -21,7 +21,7 @@ use crate::{ unsigned::{MinerConfig, MinerVoterOf}, SolutionTargetIndexOf, SolutionVoterIndexOf, VoteWeight, }; -use sp_std::{collections::btree_map::BTreeMap, prelude::*}; +use alloc::{collections::btree_map::BTreeMap, vec::Vec}; #[macro_export] macro_rules! log { diff --git a/substrate/frame/election-provider-multi-phase/src/lib.rs b/substrate/frame/election-provider-multi-phase/src/lib.rs index 63b4c49cdfe..9ce8b3890a6 100644 --- a/substrate/frame/election-provider-multi-phase/src/lib.rs +++ b/substrate/frame/election-provider-multi-phase/src/lib.rs @@ -229,6 +229,9 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{boxed::Box, vec::Vec}; use codec::{Decode, Encode}; use frame_election_provider_support::{ bounds::{CountBound, ElectionBounds, ElectionBoundsBuilder, SizeBound}, @@ -256,7 +259,6 @@ use sp_runtime::{ }, DispatchError, ModuleError, PerThing, Perbill, RuntimeDebug, SaturatedConversion, }; -use sp_std::prelude::*; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; @@ -837,7 +839,7 @@ pub mod pallet { } fn integrity_test() { - use sp_std::mem::size_of; + use core::mem::size_of; // The index type of both voters and targets need to be smaller than that of usize (very // unlikely to be the case, but anyhow).. assert!(size_of::>() <= size_of::()); @@ -1354,7 +1356,7 @@ pub mod pallet { /// This wrapper is created for handling the synchronization of [`Snapshot`], [`SnapshotMetadata`] /// and [`DesiredTargets`] storage items. -pub struct SnapshotWrapper(sp_std::marker::PhantomData); +pub struct SnapshotWrapper(core::marker::PhantomData); impl SnapshotWrapper { /// Kill all snapshot related storage items at the same time. diff --git a/substrate/frame/election-provider-multi-phase/src/migrations.rs b/substrate/frame/election-provider-multi-phase/src/migrations.rs index 156f1c02e27..73a2d878f15 100644 --- a/substrate/frame/election-provider-multi-phase/src/migrations.rs +++ b/substrate/frame/election-provider-multi-phase/src/migrations.rs @@ -16,15 +16,15 @@ // limitations under the License. pub mod v1 { + use alloc::collections::btree_map::BTreeMap; use frame_support::{ storage::unhashed, traits::{Defensive, GetStorageVersion, OnRuntimeUpgrade}, BoundedVec, }; - use sp_std::collections::btree_map::BTreeMap; use crate::*; - pub struct MigrateToV1(sp_std::marker::PhantomData); + pub struct MigrateToV1(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV1 { fn on_runtime_upgrade() -> Weight { let current = Pallet::::in_code_storage_version(); diff --git a/substrate/frame/election-provider-multi-phase/src/signed.rs b/substrate/frame/election-provider-multi-phase/src/signed.rs index ae830ed0382..fe07e477e1d 100644 --- a/substrate/frame/election-provider-multi-phase/src/signed.rs +++ b/substrate/frame/election-provider-multi-phase/src/signed.rs @@ -24,7 +24,12 @@ use crate::{ ReadySolution, SignedSubmissionIndices, SignedSubmissionNextIndex, SignedSubmissionsMap, SolutionOf, SolutionOrSnapshotSize, Weight, WeightInfo, }; +use alloc::{ + collections::{btree_map::BTreeMap, btree_set::BTreeSet}, + vec::Vec, +}; use codec::{Decode, Encode, HasCompact}; +use core::cmp::Ordering; use frame_election_provider_support::NposSolution; use frame_support::traits::{ defensive_prelude::*, Currency, Get, OnUnbalanced, ReservableCurrency, @@ -37,11 +42,6 @@ use sp_runtime::{ traits::{Convert, Saturating, Zero}, FixedPointNumber, FixedPointOperand, FixedU128, Percent, RuntimeDebug, }; -use sp_std::{ - cmp::Ordering, - collections::{btree_map::BTreeMap, btree_set::BTreeSet}, - vec::Vec, -}; /// A raw, unchecked signed submission. /// diff --git a/substrate/frame/election-provider-multi-phase/src/unsigned.rs b/substrate/frame/election-provider-multi-phase/src/unsigned.rs index 8b25815eca1..728ab930238 100644 --- a/substrate/frame/election-provider-multi-phase/src/unsigned.rs +++ b/substrate/frame/election-provider-multi-phase/src/unsigned.rs @@ -21,6 +21,7 @@ use crate::{ helpers, Call, Config, ElectionCompute, Error, FeasibilityError, Pallet, RawSolution, ReadySolution, RoundSnapshot, SolutionAccuracyOf, SolutionOf, SolutionOrSnapshotSize, Weight, }; +use alloc::{boxed::Box, vec::Vec}; use codec::Encode; use frame_election_provider_support::{NposSolution, NposSolver, PerThing128, VoteWeight}; use frame_support::{ @@ -39,7 +40,6 @@ use sp_runtime::{ offchain::storage::{MutateStorageError, StorageValueRef}, DispatchError, SaturatedConversion, }; -use sp_std::prelude::*; /// Storage key used to store the last block number at which offchain worker ran. pub(crate) const OFFCHAIN_LAST_BLOCK: &[u8] = b"parity/multi-phase-unsigned-election"; @@ -396,14 +396,14 @@ impl Pallet { /// Configurations for a miner that comes with this pallet. pub trait MinerConfig { /// The account id type. - type AccountId: Ord + Clone + codec::Codec + sp_std::fmt::Debug; + type AccountId: Ord + Clone + codec::Codec + core::fmt::Debug; /// The solution that the miner is mining. type Solution: codec::Codec + Default + PartialEq + Eq + Clone - + sp_std::fmt::Debug + + core::fmt::Debug + Ord + NposSolution + TypeInfo; @@ -428,7 +428,7 @@ pub trait MinerConfig { } /// A base miner, suitable to be used for both signed and unsigned submissions. -pub struct Miner(sp_std::marker::PhantomData); +pub struct Miner(core::marker::PhantomData); impl Miner { /// Same as [`Pallet::mine_solution`], but the input snapshot data must be given. pub fn mine_solution_with_snapshot( @@ -505,7 +505,7 @@ impl Miner { stake }) .unwrap_or_default(); - sp_std::cmp::Reverse(stake) + core::cmp::Reverse(stake) }, ); @@ -1016,6 +1016,7 @@ mod tests { Event, InvalidTransaction, Phase, QueuedSolution, TransactionSource, TransactionValidityError, }; + use alloc::vec; use codec::Decode; use frame_election_provider_support::IndexAssignment; use frame_support::{assert_noop, assert_ok, traits::OffchainWorker}; diff --git a/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs b/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs index bb1bdb31420..5c64f2a0bc2 100644 --- a/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs +++ b/substrate/frame/election-provider-multi-phase/test-staking-e2e/src/mock.rs @@ -38,7 +38,6 @@ use sp_staking::{ offence::{OffenceDetails, OnOffenceHandler}, EraIndex, SessionIndex, }; -use sp_std::prelude::*; use std::collections::BTreeMap; use codec::Decode; diff --git a/substrate/frame/election-provider-support/Cargo.toml b/substrate/frame/election-provider-support/Cargo.toml index 012392ffc59..80fea6c5ca9 100644 --- a/substrate/frame/election-provider-support/Cargo.toml +++ b/substrate/frame/election-provider-support/Cargo.toml @@ -23,7 +23,6 @@ frame-system = { workspace = true } sp-arithmetic = { workspace = true } sp-npos-elections = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-core = { workspace = true } [dev-dependencies] @@ -44,7 +43,6 @@ std = [ "sp-io/std", "sp-npos-elections/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-support/runtime-benchmarks", diff --git a/substrate/frame/election-provider-support/benchmarking/Cargo.toml b/substrate/frame/election-provider-support/benchmarking/Cargo.toml index ecf41ff9663..dcfcb9c35cd 100644 --- a/substrate/frame/election-provider-support/benchmarking/Cargo.toml +++ b/substrate/frame/election-provider-support/benchmarking/Cargo.toml @@ -23,7 +23,6 @@ frame-election-provider-support = { workspace = true } frame-system = { workspace = true } sp-npos-elections = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -34,7 +33,6 @@ std = [ "frame-system/std", "sp-npos-elections/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/election-provider-support/benchmarking/src/inner.rs b/substrate/frame/election-provider-support/benchmarking/src/inner.rs index 4722680cfcc..8cca0d459ea 100644 --- a/substrate/frame/election-provider-support/benchmarking/src/inner.rs +++ b/substrate/frame/election-provider-support/benchmarking/src/inner.rs @@ -18,10 +18,10 @@ //! Election provider support pallet benchmarking. //! This is separated into its own crate to avoid bloating the size of the runtime. +use alloc::vec::Vec; use codec::Decode; use frame_benchmarking::v1::benchmarks; use frame_election_provider_support::{NposSolver, PhragMMS, SequentialPhragmen}; -use sp_std::vec::Vec; pub struct Pallet(frame_system::Pallet); pub trait Config: frame_system::Config {} diff --git a/substrate/frame/election-provider-support/benchmarking/src/lib.rs b/substrate/frame/election-provider-support/benchmarking/src/lib.rs index 78b226e52af..d092483f938 100644 --- a/substrate/frame/election-provider-support/benchmarking/src/lib.rs +++ b/substrate/frame/election-provider-support/benchmarking/src/lib.rs @@ -19,6 +19,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(feature = "runtime-benchmarks")] pub mod inner; diff --git a/substrate/frame/election-provider-support/solution-type/src/codec.rs b/substrate/frame/election-provider-support/solution-type/src/codec.rs index 17a256c228e..16d5f17469b 100644 --- a/substrate/frame/election-provider-support/solution-type/src/codec.rs +++ b/substrate/frame/election-provider-support/solution-type/src/codec.rs @@ -51,14 +51,14 @@ fn decode_impl( quote! { let #name = < - _fepsp::sp_std::prelude::Vec<(_fepsp::codec::Compact<#voter_type>, _fepsp::codec::Compact<#target_type>)> + _fepsp::Vec<(_fepsp::codec::Compact<#voter_type>, _fepsp::codec::Compact<#target_type>)> as _fepsp::codec::Decode >::decode(value)?; let #name = #name .into_iter() .map(|(v, t)| (v.0, t.0)) - .collect::<_fepsp::sp_std::prelude::Vec<_>>(); + .collect::<_fepsp::Vec<_>>(); } }; @@ -73,7 +73,7 @@ fn decode_impl( quote! { let #name = < - _fepsp::sp_std::prelude::Vec<( + _fepsp::Vec<( _fepsp::codec::Compact<#voter_type>, [(_fepsp::codec::Compact<#target_type>, _fepsp::codec::Compact<#weight_type>); #c-1], _fepsp::codec::Compact<#target_type>, @@ -87,7 +87,7 @@ fn decode_impl( [ #inner_impl ], t_last.0, )) - .collect::<_fepsp::sp_std::prelude::Vec<_>>(); + .collect::<_fepsp::Vec<_>>(); } }) .collect::(); @@ -126,7 +126,7 @@ fn encode_impl(ident: &syn::Ident, count: usize) -> TokenStream2 { _fepsp::codec::Compact(v.clone()), _fepsp::codec::Compact(t.clone()), )) - .collect::<_fepsp::sp_std::prelude::Vec<_>>(); + .collect::<_fepsp::Vec<_>>(); #name.encode_to(&mut r); } }; @@ -153,7 +153,7 @@ fn encode_impl(ident: &syn::Ident, count: usize) -> TokenStream2 { [ #inners_solution_array ], _fepsp::codec::Compact(t_last.clone()), )) - .collect::<_fepsp::sp_std::prelude::Vec<_>>(); + .collect::<_fepsp::Vec<_>>(); #name.encode_to(&mut r); } }) @@ -161,7 +161,7 @@ fn encode_impl(ident: &syn::Ident, count: usize) -> TokenStream2 { quote!( impl _fepsp::codec::Encode for #ident { - fn encode(&self) -> _fepsp::sp_std::prelude::Vec { + fn encode(&self) -> _fepsp::Vec { let mut r = vec![]; #encode_impl_single #encode_impl_rest @@ -182,7 +182,7 @@ fn scale_info_impl( let name = format!("{}", vote_field(1)); quote! { .field(|f| - f.ty::<_fepsp::sp_std::prelude::Vec< + f.ty::<_fepsp::Vec< (_fepsp::codec::Compact<#voter_type>, _fepsp::codec::Compact<#target_type>) >>() .name(#name) @@ -194,7 +194,7 @@ fn scale_info_impl( let name = format!("{}", vote_field(2)); quote! { .field(|f| - f.ty::<_fepsp::sp_std::prelude::Vec<( + f.ty::<_fepsp::Vec<( _fepsp::codec::Compact<#voter_type>, (_fepsp::codec::Compact<#target_type>, _fepsp::codec::Compact<#weight_type>), _fepsp::codec::Compact<#target_type> @@ -209,7 +209,7 @@ fn scale_info_impl( let name = format!("{}", vote_field(c)); quote! { .field(|f| - f.ty::<_fepsp::sp_std::prelude::Vec<( + f.ty::<_fepsp::Vec<( _fepsp::codec::Compact<#voter_type>, [ (_fepsp::codec::Compact<#target_type>, _fepsp::codec::Compact<#weight_type>); diff --git a/substrate/frame/election-provider-support/solution-type/src/single_page.rs b/substrate/frame/election-provider-support/solution-type/src/single_page.rs index 161631ee83f..de59df162c8 100644 --- a/substrate/frame/election-provider-support/solution-type/src/single_page.rs +++ b/substrate/frame/election-provider-support/solution-type/src/single_page.rs @@ -40,7 +40,7 @@ pub(crate) fn generate(def: crate::SolutionDef) -> Result { let name = vote_field(1); // NOTE: we use the visibility of the struct for the fields as well.. could be made better. quote!( - #vis #name: _fepsp::sp_std::prelude::Vec<(#voter_type, #target_type)>, + #vis #name: _fepsp::Vec<(#voter_type, #target_type)>, ) }; @@ -49,7 +49,7 @@ pub(crate) fn generate(def: crate::SolutionDef) -> Result { let field_name = vote_field(c); let array_len = c - 1; quote!( - #vis #field_name: _fepsp::sp_std::prelude::Vec<( + #vis #field_name: _fepsp::Vec<( #voter_type, [(#target_type, #weight_type); #array_len], #target_type @@ -147,8 +147,8 @@ pub(crate) fn generate(def: crate::SolutionDef) -> Result { self, voter_at: impl Fn(Self::VoterIndex) -> Option, target_at: impl Fn(Self::TargetIndex) -> Option, - ) -> Result<_fepsp::sp_std::prelude::Vec<_feps::Assignment>, _feps::Error> { - let mut #assignment_name: _fepsp::sp_std::prelude::Vec<_feps::Assignment> = Default::default(); + ) -> Result<_fepsp::Vec<_feps::Assignment>, _feps::Error> { + let mut #assignment_name: _fepsp::Vec<_feps::Assignment> = Default::default(); #into_impl Ok(#assignment_name) } @@ -165,10 +165,10 @@ pub(crate) fn generate(def: crate::SolutionDef) -> Result { all_edges } - fn unique_targets(&self) -> _fepsp::sp_std::prelude::Vec { + fn unique_targets(&self) -> _fepsp::Vec { // NOTE: this implementation returns the targets sorted, but we don't use it yet per // se, nor is the API enforcing it. - use _fepsp::sp_std::collections::btree_set::BTreeSet; + use _fepsp::BTreeSet; let mut all_targets: BTreeSet = BTreeSet::new(); let mut maybe_insert_target = |t: Self::TargetIndex| { all_targets.insert(t); @@ -206,7 +206,7 @@ pub(crate) fn generate(def: crate::SolutionDef) -> Result { .saturating_add((s as usize).saturating_mul(max_element_size)) } } - impl<'a> _fepsp::sp_std::convert::TryFrom<&'a [__IndexAssignment]> for #ident { + impl<'a> core::convert::TryFrom<&'a [__IndexAssignment]> for #ident { type Error = _feps::Error; fn try_from(index_assignments: &'a [__IndexAssignment]) -> Result { let mut #struct_name = #ident::default(); @@ -361,7 +361,7 @@ pub(crate) fn into_impl( let target = target_at(*t_idx).or_invalid_index()?; Ok((target, *p)) }) - .collect::, _feps::Error>>()?; + .collect::, _feps::Error>>()?; if sum >= #per_thing::one() { return Err(_feps::Error::SolutionWeightOverflow); diff --git a/substrate/frame/election-provider-support/src/lib.rs b/substrate/frame/election-provider-support/src/lib.rs index 2e9ee3b8a48..394f58a3844 100644 --- a/substrate/frame/election-provider-support/src/lib.rs +++ b/substrate/frame/election-provider-support/src/lib.rs @@ -177,11 +177,14 @@ pub mod bounds; pub mod onchain; pub mod traits; +extern crate alloc; + +use alloc::{boxed::Box, vec::Vec}; +use core::fmt::Debug; use sp_runtime::{ traits::{Bounded, Saturating, Zero}, RuntimeDebug, }; -use sp_std::{fmt::Debug, prelude::*}; pub use bounds::DataProviderBounds; pub use codec::{Decode, Encode}; @@ -202,10 +205,10 @@ use sp_runtime::TryRuntimeError; // re-export for the solution macro, with the dependencies of the macro. #[doc(hidden)] pub mod private { + pub use alloc::{collections::btree_set::BTreeSet, vec::Vec}; pub use codec; pub use scale_info; pub use sp_arithmetic; - pub use sp_std; // Simple Extension trait to easily convert `None` from index closures to `Err`. // @@ -276,7 +279,7 @@ pub type IndexAssignmentOf = IndexAssignment< /// Types that are used by the data provider trait. pub mod data_provider { /// Alias for the result type of the election data provider. - pub type Result = sp_std::result::Result; + pub type Result = core::result::Result; } /// Something that can provide the data to an [`ElectionProvider`]. @@ -431,7 +434,7 @@ pub trait InstantElectionProvider: ElectionProviderBase { } /// An election provider that does nothing whatsoever. -pub struct NoElection(sp_std::marker::PhantomData); +pub struct NoElection(core::marker::PhantomData); impl ElectionProviderBase for NoElection<(AccountId, BlockNumber, DataProvider, MaxWinners)> @@ -486,7 +489,7 @@ where /// used on the implementing side of [`ElectionDataProvider`]. pub trait SortedListProvider { /// The list's error type. - type Error: sp_std::fmt::Debug; + type Error: core::fmt::Debug; /// The type used by the list to compare nodes for ordering. type Score: Bounded + Saturating + Zero; @@ -597,7 +600,7 @@ pub trait NposSolver { /// The accuracy of this solver. This will affect the accuracy of the output. type Accuracy: PerThing128; /// The error type of this implementation. - type Error: sp_std::fmt::Debug + sp_std::cmp::PartialEq; + type Error: core::fmt::Debug + core::cmp::PartialEq; /// Solve an NPoS solution with the given `voters`, `targets`, and select `to_elect` count /// of `targets`. @@ -617,7 +620,7 @@ pub trait NposSolver { /// A wrapper for [`sp_npos_elections::seq_phragmen`] that implements [`NposSolver`]. See the /// documentation of [`sp_npos_elections::seq_phragmen`] for more info. pub struct SequentialPhragmen( - sp_std::marker::PhantomData<(AccountId, Accuracy, Balancing)>, + core::marker::PhantomData<(AccountId, Accuracy, Balancing)>, ); impl>> @@ -642,7 +645,7 @@ impl( - sp_std::marker::PhantomData<(AccountId, Accuracy, Balancing)>, + core::marker::PhantomData<(AccountId, Accuracy, Balancing)>, ); impl>> diff --git a/substrate/frame/election-provider-support/src/onchain.rs b/substrate/frame/election-provider-support/src/onchain.rs index ee4f6992a08..1063d5d35ae 100644 --- a/substrate/frame/election-provider-support/src/onchain.rs +++ b/substrate/frame/election-provider-support/src/onchain.rs @@ -24,11 +24,12 @@ use crate::{ BoundedSupportsOf, Debug, ElectionDataProvider, ElectionProvider, ElectionProviderBase, InstantElectionProvider, NposSolver, WeightInfo, }; +use alloc::collections::btree_map::BTreeMap; +use core::marker::PhantomData; use frame_support::{dispatch::DispatchClass, traits::Get}; use sp_npos_elections::{ assignment_ratio_to_staked_normalized, to_supports, BoundedSupports, ElectionResult, VoteWeight, }; -use sp_std::{collections::btree_map::BTreeMap, marker::PhantomData, prelude::*}; /// Errors of the on-chain election. #[derive(Eq, PartialEq, Debug)] diff --git a/substrate/frame/election-provider-support/src/traits.rs b/substrate/frame/election-provider-support/src/traits.rs index 43d183b338e..84fd57992d3 100644 --- a/substrate/frame/election-provider-support/src/traits.rs +++ b/substrate/frame/election-provider-support/src/traits.rs @@ -18,11 +18,12 @@ //! Traits for the election operations. use crate::{Assignment, IdentifierT, IndexAssignmentOf, PerThing128, VoteWeight}; +use alloc::vec::Vec; use codec::Encode; +use core::fmt::Debug; use scale_info::TypeInfo; use sp_arithmetic::traits::{Bounded, UniqueSaturatedInto}; use sp_npos_elections::{ElectionScore, Error, EvaluateSupport}; -use sp_std::{fmt::Debug, prelude::*}; /// An opaque index-based, NPoS solution type. pub trait NposSolution diff --git a/substrate/frame/elections-phragmen/Cargo.toml b/substrate/frame/elections-phragmen/Cargo.toml index b53118b6b6f..6d1ecbd0735 100644 --- a/substrate/frame/elections-phragmen/Cargo.toml +++ b/substrate/frame/elections-phragmen/Cargo.toml @@ -28,7 +28,6 @@ sp-core = { workspace = true } sp-io = { workspace = true } sp-npos-elections = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-staking = { workspace = true } [dev-dependencies] @@ -52,7 +51,6 @@ std = [ "sp-npos-elections/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", "sp-tracing/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/elections-phragmen/src/lib.rs b/substrate/frame/elections-phragmen/src/lib.rs index c6eca40c471..565ead4059d 100644 --- a/substrate/frame/elections-phragmen/src/lib.rs +++ b/substrate/frame/elections-phragmen/src/lib.rs @@ -98,7 +98,11 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; +use core::cmp::Ordering; use frame_support::{ traits::{ defensive_prelude::*, ChangeMembers, Contains, ContainsLengthBound, Currency, Get, @@ -115,7 +119,6 @@ use sp_runtime::{ DispatchError, Perbill, RuntimeDebug, }; use sp_staking::currency_to_vote::CurrencyToVote; -use sp_std::{cmp::Ordering, prelude::*}; #[cfg(any(feature = "try-runtime", test))] use sp_runtime::TryRuntimeError; diff --git a/substrate/frame/elections-phragmen/src/migrations/unlock_and_unreserve_all_funds.rs b/substrate/frame/elections-phragmen/src/migrations/unlock_and_unreserve_all_funds.rs index 482766ee97f..ed4569aa25e 100644 --- a/substrate/frame/elections-phragmen/src/migrations/unlock_and_unreserve_all_funds.rs +++ b/substrate/frame/elections-phragmen/src/migrations/unlock_and_unreserve_all_funds.rs @@ -18,6 +18,7 @@ //! A migration that unreserves all deposit and unlocks all stake held in the context of this //! pallet. +use alloc::{collections::btree_map::BTreeMap, vec::Vec}; use core::iter::Sum; use frame_support::{ pallet_prelude::ValueQuery, @@ -28,7 +29,6 @@ use frame_support::{ }; use sp_core::Get; use sp_runtime::traits::Zero; -use sp_std::{collections::btree_map::BTreeMap, vec::Vec}; const LOG_TARGET: &str = "elections_phragmen::migrations::unlock_and_unreserve_all_funds"; @@ -93,7 +93,7 @@ type Voting = StorageMap< /// The pallet should be made inoperable before this migration is run. /// /// (See also [`RemovePallet`][frame_support::migrations::RemovePallet]) -pub struct UnlockAndUnreserveAllFunds(sp_std::marker::PhantomData); +pub struct UnlockAndUnreserveAllFunds(core::marker::PhantomData); impl UnlockAndUnreserveAllFunds { /// Calculates and returns the total amounts deposited and staked by each account in the context @@ -187,8 +187,8 @@ where /// reported as staked by the pallet and the amount actually locked in `Balances`. #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + use alloc::collections::btree_set::BTreeSet; use codec::Encode; - use sp_std::collections::btree_set::BTreeSet; // Get staked and deposited balances as reported by this pallet. let (account_deposited_sums, account_staked_sums, _) = diff --git a/substrate/frame/elections-phragmen/src/migrations/v3.rs b/substrate/frame/elections-phragmen/src/migrations/v3.rs index b0092d6c07b..82f82f23e71 100644 --- a/substrate/frame/elections-phragmen/src/migrations/v3.rs +++ b/substrate/frame/elections-phragmen/src/migrations/v3.rs @@ -19,12 +19,12 @@ use super::super::LOG_TARGET; use crate::{Config, Pallet}; +use alloc::vec::Vec; use codec::{Decode, Encode, FullCodec}; use frame_support::{ pallet_prelude::ValueQuery, traits::StorageVersion, weights::Weight, Twox64Concat, }; use sp_runtime::RuntimeDebug; -use sp_std::prelude::*; #[derive(Encode, Decode, Clone, Default, RuntimeDebug, PartialEq)] struct SeatHolder { diff --git a/substrate/frame/elections-phragmen/src/migrations/v5.rs b/substrate/frame/elections-phragmen/src/migrations/v5.rs index 6e360aa8b8c..150a4c4fa6c 100644 --- a/substrate/frame/elections-phragmen/src/migrations/v5.rs +++ b/substrate/frame/elections-phragmen/src/migrations/v5.rs @@ -16,6 +16,7 @@ // limitations under the License. use super::super::*; +use alloc::{boxed::Box, vec::Vec}; /// Migrate the locks and vote stake on accounts (as specified with param `to_migrate`) that have /// more than their free balance locked. diff --git a/substrate/frame/examples/basic/Cargo.toml b/substrate/frame/examples/basic/Cargo.toml index b34d9efc15b..af547c7eeb2 100644 --- a/substrate/frame/examples/basic/Cargo.toml +++ b/substrate/frame/examples/basic/Cargo.toml @@ -26,7 +26,6 @@ frame-system = { workspace = true } pallet-balances = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true } @@ -44,7 +43,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/examples/basic/src/lib.rs b/substrate/frame/examples/basic/src/lib.rs index 12cadc969fd..fea04cb447a 100644 --- a/substrate/frame/examples/basic/src/lib.rs +++ b/substrate/frame/examples/basic/src/lib.rs @@ -53,6 +53,9 @@ // Ensure we're `no_std` when compiling for Wasm. #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode}; use core::marker::PhantomData; use frame_support::{ @@ -69,7 +72,6 @@ use sp_runtime::{ InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction, }, }; -use sp_std::vec::Vec; // Re-export pallet items so that they can be accessed from the crate namespace. pub use pallet::*; diff --git a/substrate/frame/examples/basic/src/tests.rs b/substrate/frame/examples/basic/src/tests.rs index 505cd6f906d..d7095eb3c94 100644 --- a/substrate/frame/examples/basic/src/tests.rs +++ b/substrate/frame/examples/basic/src/tests.rs @@ -92,7 +92,7 @@ pub fn new_test_ext() -> sp_io::TestExternalities { example: pallet_example_basic::GenesisConfig { dummy: 42, // we configure the map with (key, value) pairs. - bar: vec![(1, 2), (2, 3)], + bar: alloc::vec![(1, 2), (2, 3)], foo: 24, }, } diff --git a/substrate/frame/examples/default-config/Cargo.toml b/substrate/frame/examples/default-config/Cargo.toml index 8a0d14edbdb..81509c782a3 100644 --- a/substrate/frame/examples/default-config/Cargo.toml +++ b/substrate/frame/examples/default-config/Cargo.toml @@ -25,7 +25,6 @@ frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -37,7 +36,6 @@ std = [ "scale-info/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/examples/default-config/src/lib.rs b/substrate/frame/examples/default-config/src/lib.rs index 5b66c78e062..ccdcd496859 100644 --- a/substrate/frame/examples/default-config/src/lib.rs +++ b/substrate/frame/examples/default-config/src/lib.rs @@ -32,6 +32,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[frame_support::pallet] pub mod pallet { use frame_support::pallet_prelude::*; @@ -189,7 +191,7 @@ pub mod tests { } parameter_types! { - pub const SomeCall: RuntimeCall = RuntimeCall::System(frame_system::Call::::remark { remark: vec![] }); + pub const SomeCall: RuntimeCall = RuntimeCall::System(frame_system::Call::::remark { remark: alloc::vec![] }); } #[derive_impl(TestDefaultConfig as pallet::DefaultConfig)] diff --git a/substrate/frame/examples/dev-mode/Cargo.toml b/substrate/frame/examples/dev-mode/Cargo.toml index 1dd033d7e07..c3dd7f26f21 100644 --- a/substrate/frame/examples/dev-mode/Cargo.toml +++ b/substrate/frame/examples/dev-mode/Cargo.toml @@ -24,7 +24,6 @@ frame-system = { workspace = true } pallet-balances = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true } @@ -41,7 +40,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/examples/dev-mode/src/lib.rs b/substrate/frame/examples/dev-mode/src/lib.rs index 15f1a4b5d61..eb94c024280 100644 --- a/substrate/frame/examples/dev-mode/src/lib.rs +++ b/substrate/frame/examples/dev-mode/src/lib.rs @@ -28,9 +28,11 @@ // Ensure we're `no_std` when compiling for Wasm. #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{vec, vec::Vec}; use frame_support::dispatch::DispatchResult; use frame_system::ensure_signed; -use sp_std::{vec, vec::Vec}; // Re-export pallet items so that they can be accessed from the crate namespace. pub use pallet::*; diff --git a/substrate/frame/examples/kitchensink/Cargo.toml b/substrate/frame/examples/kitchensink/Cargo.toml index b3869dff941..f1f9fdb492d 100644 --- a/substrate/frame/examples/kitchensink/Cargo.toml +++ b/substrate/frame/examples/kitchensink/Cargo.toml @@ -25,7 +25,6 @@ frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } frame-benchmarking = { optional = true, workspace = true } @@ -47,7 +46,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/examples/kitchensink/src/lib.rs b/substrate/frame/examples/kitchensink/src/lib.rs index b7425b0c084..44231856542 100644 --- a/substrate/frame/examples/kitchensink/src/lib.rs +++ b/substrate/frame/examples/kitchensink/src/lib.rs @@ -42,6 +42,8 @@ use sp_runtime::TryRuntimeError; pub mod weights; pub use weights::*; +extern crate alloc; + #[frame_support::pallet] pub mod pallet { use super::*; diff --git a/substrate/frame/examples/offchain-worker/Cargo.toml b/substrate/frame/examples/offchain-worker/Cargo.toml index f8ccd1f04e4..179a658de31 100644 --- a/substrate/frame/examples/offchain-worker/Cargo.toml +++ b/substrate/frame/examples/offchain-worker/Cargo.toml @@ -27,7 +27,6 @@ sp-core = { workspace = true } sp-io = { workspace = true } sp-keystore = { optional = true, workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -42,7 +41,6 @@ std = [ "sp-io/std", "sp-keystore/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/examples/offchain-worker/src/lib.rs b/substrate/frame/examples/offchain-worker/src/lib.rs index 0a90e896188..add014f6b34 100644 --- a/substrate/frame/examples/offchain-worker/src/lib.rs +++ b/substrate/frame/examples/offchain-worker/src/lib.rs @@ -45,6 +45,9 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::traits::Get; use frame_system::{ @@ -67,7 +70,6 @@ use sp_runtime::{ transaction_validity::{InvalidTransaction, TransactionValidity, ValidTransaction}, RuntimeDebug, }; -use sp_std::vec::Vec; #[cfg(test)] mod tests; @@ -606,7 +608,7 @@ impl Pallet { let body = response.body().collect::>(); // Create a str slice from the body. - let body_str = sp_std::str::from_utf8(&body).map_err(|_| { + let body_str = alloc::str::from_utf8(&body).map_err(|_| { log::warn!("No UTF8 body"); http::Error::Unknown })?; diff --git a/substrate/frame/examples/offchain-worker/src/tests.rs b/substrate/frame/examples/offchain-worker/src/tests.rs index e2c57a8c1e1..b665cbbb62a 100644 --- a/substrate/frame/examples/offchain-worker/src/tests.rs +++ b/substrate/frame/examples/offchain-worker/src/tests.rs @@ -375,7 +375,7 @@ fn price_oracle_response(state: &mut testing::OffchainState) { #[test] fn parse_price_works() { - let test_data = vec![ + let test_data = alloc::vec![ ("{\"USD\":6536.92}", Some(653692)), ("{\"USD\":65.92}", Some(6592)), ("{\"USD\":6536.924565}", Some(653692)), diff --git a/substrate/frame/examples/single-block-migrations/Cargo.toml b/substrate/frame/examples/single-block-migrations/Cargo.toml index a6cf020ce53..2d524f2caa2 100644 --- a/substrate/frame/examples/single-block-migrations/Cargo.toml +++ b/substrate/frame/examples/single-block-migrations/Cargo.toml @@ -22,7 +22,6 @@ frame-executive = { workspace = true } frame-system = { workspace = true } frame-try-runtime = { optional = true, workspace = true } pallet-balances = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } @@ -42,7 +41,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-version/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/examples/single-block-migrations/src/lib.rs b/substrate/frame/examples/single-block-migrations/src/lib.rs index 411537aa8c6..07c7199b932 100644 --- a/substrate/frame/examples/single-block-migrations/src/lib.rs +++ b/substrate/frame/examples/single-block-migrations/src/lib.rs @@ -156,6 +156,9 @@ pub use pallet::*; pub mod migrations; #[doc(hidden)] mod mock; + +extern crate alloc; + use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::traits::StorageVersion; use sp_runtime::RuntimeDebug; diff --git a/substrate/frame/examples/single-block-migrations/src/migrations/v1.rs b/substrate/frame/examples/single-block-migrations/src/migrations/v1.rs index 7b543d72c98..55cf7cef9a7 100644 --- a/substrate/frame/examples/single-block-migrations/src/migrations/v1.rs +++ b/substrate/frame/examples/single-block-migrations/src/migrations/v1.rs @@ -21,7 +21,7 @@ use frame_support::{ }; #[cfg(feature = "try-runtime")] -use sp_std::vec::Vec; +use alloc::vec::Vec; /// Collection of storage item formats from the previous storage version. /// @@ -41,7 +41,7 @@ mod v0 { /// /// In this migration, update the on-chain storage for the pallet to reflect the new storage /// layout. -pub struct InnerMigrateV0ToV1(sp_std::marker::PhantomData); +pub struct InnerMigrateV0ToV1(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for InnerMigrateV0ToV1 { /// Return the existing [`crate::Value`] so we can check that it was correctly set in diff --git a/substrate/frame/examples/split/Cargo.toml b/substrate/frame/examples/split/Cargo.toml index d8a8c6869ab..9542902bae6 100644 --- a/substrate/frame/examples/split/Cargo.toml +++ b/substrate/frame/examples/split/Cargo.toml @@ -25,7 +25,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } -sp-std = { workspace = true } frame-benchmarking = { optional = true, workspace = true } @@ -43,7 +42,6 @@ std = [ "scale-info/std", "sp-core/std", "sp-io/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/examples/tasks/Cargo.toml b/substrate/frame/examples/tasks/Cargo.toml index 1ca62fd8994..00695ceddf1 100644 --- a/substrate/frame/examples/tasks/Cargo.toml +++ b/substrate/frame/examples/tasks/Cargo.toml @@ -24,7 +24,6 @@ frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-core = { workspace = true } frame-benchmarking = { optional = true, workspace = true } @@ -41,7 +40,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/executive/Cargo.toml b/substrate/frame/executive/Cargo.toml index 0f9741eec18..78d9ea6fa49 100644 --- a/substrate/frame/executive/Cargo.toml +++ b/substrate/frame/executive/Cargo.toml @@ -28,7 +28,6 @@ frame-try-runtime = { optional = true, workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-tracing = { workspace = true } [dev-dependencies] @@ -57,7 +56,6 @@ std = [ "sp-inherents/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-tracing/std", "sp-version/std", ] diff --git a/substrate/frame/executive/src/lib.rs b/substrate/frame/executive/src/lib.rs index 3028eaf318e..1e7bac64e18 100644 --- a/substrate/frame/executive/src/lib.rs +++ b/substrate/frame/executive/src/lib.rs @@ -151,7 +151,10 @@ pub mod block_flowchart {} #[cfg(test)] mod tests; +extern crate alloc; + use codec::{Codec, Encode}; +use core::marker::PhantomData; use frame_support::{ defensive_assert, dispatch::{DispatchClass, DispatchInfo, GetDispatchInfo, PostDispatchInfo}, @@ -174,7 +177,6 @@ use sp_runtime::{ transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, ExtrinsicInclusionMode, }; -use sp_std::{marker::PhantomData, prelude::*}; #[cfg(feature = "try-runtime")] use ::{ @@ -467,7 +469,7 @@ where /// Logs the result of trying to decode the entire state. fn log_decode_result( - res: Result>, + res: Result>, ) -> Result<(), TryRuntimeError> { match res { Ok(bytes) => { diff --git a/substrate/frame/fast-unstake/Cargo.toml b/substrate/frame/fast-unstake/Cargo.toml index 59676ad3995..2b188bad1df 100644 --- a/substrate/frame/fast-unstake/Cargo.toml +++ b/substrate/frame/fast-unstake/Cargo.toml @@ -24,7 +24,6 @@ frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-staking = { workspace = true } frame-election-provider-support = { workspace = true } @@ -58,7 +57,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", "sp-tracing/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/fast-unstake/src/benchmarking.rs b/substrate/frame/fast-unstake/src/benchmarking.rs index 4828dcb9b42..d01ff715ca4 100644 --- a/substrate/frame/fast-unstake/src/benchmarking.rs +++ b/substrate/frame/fast-unstake/src/benchmarking.rs @@ -20,6 +20,7 @@ #![cfg(feature = "runtime-benchmarks")] use crate::{types::*, Pallet as FastUnstake, *}; +use alloc::{vec, vec::Vec}; use frame_benchmarking::v1::{benchmarks, whitelist_account, BenchmarkError}; use frame_support::{ assert_ok, @@ -28,7 +29,6 @@ use frame_support::{ use frame_system::RawOrigin; use sp_runtime::traits::Zero; use sp_staking::{EraIndex, StakingInterface}; -use sp_std::prelude::*; const USER_SEED: u32 = 0; diff --git a/substrate/frame/fast-unstake/src/lib.rs b/substrate/frame/fast-unstake/src/lib.rs index f31c9c64026..41920907bd5 100644 --- a/substrate/frame/fast-unstake/src/lib.rs +++ b/substrate/frame/fast-unstake/src/lib.rs @@ -112,6 +112,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + pub use pallet::*; #[cfg(test)] @@ -150,6 +152,7 @@ macro_rules! log { pub mod pallet { use super::*; use crate::types::*; + use alloc::vec::Vec; use frame_support::{ pallet_prelude::*, traits::{Defensive, ReservableCurrency, StorageVersion}, @@ -157,7 +160,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; use sp_runtime::{traits::Zero, DispatchResult}; use sp_staking::{EraIndex, StakingInterface}; - use sp_std::{prelude::*, vec::Vec}; pub use weights::WeightInfo; #[cfg(feature = "try-runtime")] diff --git a/substrate/frame/fast-unstake/src/migrations.rs b/substrate/frame/fast-unstake/src/migrations.rs index 97ad86bfff4..1a873534ac8 100644 --- a/substrate/frame/fast-unstake/src/migrations.rs +++ b/substrate/frame/fast-unstake/src/migrations.rs @@ -17,20 +17,20 @@ pub mod v1 { use crate::{types::BalanceOf, *}; + use alloc::vec::Vec; use frame_support::{ storage::unhashed, traits::{Defensive, Get, GetStorageVersion, OnRuntimeUpgrade}, weights::Weight, }; use sp_staking::EraIndex; - use sp_std::prelude::*; #[cfg(feature = "try-runtime")] use frame_support::ensure; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; - pub struct MigrateToV1(sp_std::marker::PhantomData); + pub struct MigrateToV1(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV1 { fn on_runtime_upgrade() -> Weight { let current = Pallet::::in_code_storage_version(); diff --git a/substrate/frame/fast-unstake/src/mock.rs b/substrate/frame/fast-unstake/src/mock.rs index 7ce7fee1410..757052e230a 100644 --- a/substrate/frame/fast-unstake/src/mock.rs +++ b/substrate/frame/fast-unstake/src/mock.rs @@ -26,7 +26,6 @@ use frame_support::{ use sp_runtime::{traits::IdentityLookup, BuildStorage}; use pallet_staking::{Exposure, IndividualExposure, StakerStatus}; -use sp_std::prelude::*; pub type AccountId = u128; pub type BlockNumber = u64; diff --git a/substrate/frame/fast-unstake/src/types.rs b/substrate/frame/fast-unstake/src/types.rs index 3fb5720861f..2a2319ef612 100644 --- a/substrate/frame/fast-unstake/src/types.rs +++ b/substrate/frame/fast-unstake/src/types.rs @@ -24,7 +24,6 @@ use frame_support::{ }; use scale_info::TypeInfo; use sp_staking::{EraIndex, StakingInterface}; -use sp_std::prelude::*; /// Maximum number of eras that we might check for a single staker. /// @@ -32,7 +31,7 @@ use sp_std::prelude::*; #[derive(scale_info::TypeInfo, codec::Encode, codec::Decode, codec::MaxEncodedLen)] #[codec(mel_bound(T: Config))] #[scale_info(skip_type_params(T))] -pub struct MaxChecking(sp_std::marker::PhantomData); +pub struct MaxChecking(core::marker::PhantomData); impl frame_support::traits::Get for MaxChecking { fn get() -> u32 { T::Staking::bonding_duration() + 1 diff --git a/substrate/frame/glutton/Cargo.toml b/substrate/frame/glutton/Cargo.toml index 58faecde629..5a73e8caef8 100644 --- a/substrate/frame/glutton/Cargo.toml +++ b/substrate/frame/glutton/Cargo.toml @@ -26,7 +26,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-inherents = { workspace = true } [dev-dependencies] @@ -47,7 +46,6 @@ std = [ "sp-inherents/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/glutton/src/lib.rs b/substrate/frame/glutton/src/lib.rs index 5427173b486..c8d2981ebfe 100644 --- a/substrate/frame/glutton/src/lib.rs +++ b/substrate/frame/glutton/src/lib.rs @@ -35,12 +35,14 @@ mod mock; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use blake2::{Blake2b512, Digest}; use frame_support::{pallet_prelude::*, weights::WeightMeter, DefaultNoBound}; use frame_system::pallet_prelude::*; use sp_io::hashing::twox_256; use sp_runtime::{traits::Zero, FixedPointNumber, FixedU64}; -use sp_std::{vec, vec::Vec}; pub use pallet::*; pub use weights::WeightInfo; @@ -162,7 +164,7 @@ pub mod pallet { pub block_length: FixedU64, #[serde(skip)] /// The required configuration field. - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] diff --git a/substrate/frame/grandpa/Cargo.toml b/substrate/frame/grandpa/Cargo.toml index e08af3a5e91..e24f9a51db8 100644 --- a/substrate/frame/grandpa/Cargo.toml +++ b/substrate/frame/grandpa/Cargo.toml @@ -31,7 +31,6 @@ sp-io = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-session = { workspace = true } sp-staking = { features = ["serde"], workspace = true } -sp-std = { workspace = true } [dev-dependencies] finality-grandpa = { features = ["derive-codec"], workspace = true, default-features = true } @@ -67,7 +66,6 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/grandpa/src/equivocation.rs b/substrate/frame/grandpa/src/equivocation.rs index 16727f79a58..b213c1ceb72 100644 --- a/substrate/frame/grandpa/src/equivocation.rs +++ b/substrate/frame/grandpa/src/equivocation.rs @@ -35,6 +35,7 @@ //! that the `ValidateUnsigned` for the GRANDPA pallet is used in the runtime //! definition. +use alloc::{boxed::Box, vec, vec::Vec}; use codec::{self as codec, Decode, Encode}; use frame_support::traits::{Get, KeyOwnerProofSystem}; use frame_system::pallet_prelude::BlockNumberFor; @@ -52,7 +53,6 @@ use sp_staking::{ offence::{Kind, Offence, OffenceReportSystem, ReportOffence}, SessionIndex, }; -use sp_std::prelude::*; use super::{Call, Config, Error, Pallet, LOG_TARGET}; @@ -114,7 +114,7 @@ impl Offence for EquivocationOffence { /// - On-chain validity checks and processing are mostly delegated to the user provided generic /// types implementing `KeyOwnerProofSystem` and `ReportOffence` traits. /// - Offence reporter for unsigned transactions is fetched via the the authorship pallet. -pub struct EquivocationReportSystem(sp_std::marker::PhantomData<(T, R, P, L)>); +pub struct EquivocationReportSystem(core::marker::PhantomData<(T, R, P, L)>); impl OffenceReportSystem< diff --git a/substrate/frame/grandpa/src/lib.rs b/substrate/frame/grandpa/src/lib.rs index 90bcd8721df..4f69aeaef52 100644 --- a/substrate/frame/grandpa/src/lib.rs +++ b/substrate/frame/grandpa/src/lib.rs @@ -28,11 +28,14 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + // Re-export since this is necessary for `impl_apis` in runtime. pub use sp_consensus_grandpa::{ self as fg_primitives, AuthorityId, AuthorityList, AuthorityWeight, }; +use alloc::{boxed::Box, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ dispatch::{DispatchResultWithPostInfo, Pays}, @@ -50,7 +53,6 @@ use sp_consensus_grandpa::{ use sp_runtime::{generic::DigestItem, traits::Zero, DispatchResult}; use sp_session::{GetSessionNumber, GetValidatorCount}; use sp_staking::{offence::OffenceReportSystem, SessionIndex}; -use sp_std::prelude::*; mod default_weights; mod equivocation; @@ -351,7 +353,7 @@ pub mod pallet { pub struct GenesisConfig { pub authorities: AuthorityList, #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] diff --git a/substrate/frame/grandpa/src/migrations/v5.rs b/substrate/frame/grandpa/src/migrations/v5.rs index a0865a3f2bf..f1af0af42dd 100644 --- a/substrate/frame/grandpa/src/migrations/v5.rs +++ b/substrate/frame/grandpa/src/migrations/v5.rs @@ -16,7 +16,9 @@ // limitations under the License. use crate::{BoundedAuthorityList, Pallet}; +use alloc::vec::Vec; use codec::Decode; +use core::marker::PhantomData; use frame_support::{ migrations::VersionedMigration, storage, @@ -24,7 +26,6 @@ use frame_support::{ weights::Weight, }; use sp_consensus_grandpa::AuthorityList; -use sp_std::{marker::PhantomData, vec::Vec}; const GRANDPA_AUTHORITIES_KEY: &[u8] = b":grandpa_authorities"; diff --git a/substrate/frame/identity/Cargo.toml b/substrate/frame/identity/Cargo.toml index d0b796cd75d..6794fbfbbf4 100644 --- a/substrate/frame/identity/Cargo.toml +++ b/substrate/frame/identity/Cargo.toml @@ -25,7 +25,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -48,7 +47,6 @@ std = [ "sp-io/std", "sp-keystore/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/identity/src/benchmarking.rs b/substrate/frame/identity/src/benchmarking.rs index 957549b19f8..ab04000c228 100644 --- a/substrate/frame/identity/src/benchmarking.rs +++ b/substrate/frame/identity/src/benchmarking.rs @@ -22,6 +22,7 @@ use super::*; use crate::Pallet as Identity; +use alloc::{vec, vec::Vec}; use frame_benchmarking::{account, v2::*, whitelisted_caller, BenchmarkError}; use frame_support::{ assert_ok, ensure, diff --git a/substrate/frame/identity/src/legacy.rs b/substrate/frame/identity/src/legacy.rs index 60e812c2238..c2107e92903 100644 --- a/substrate/frame/identity/src/legacy.rs +++ b/substrate/frame/identity/src/legacy.rs @@ -15,6 +15,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +#[cfg(feature = "runtime-benchmarks")] +use alloc::vec; use codec::{Decode, Encode, MaxEncodedLen}; #[cfg(feature = "runtime-benchmarks")] use enumflags2::BitFlag; @@ -22,7 +24,6 @@ use enumflags2::{bitflags, BitFlags}; use frame_support::{traits::Get, CloneNoBound, EqNoBound, PartialEqNoBound, RuntimeDebugNoBound}; use scale_info::{build::Variants, Path, Type, TypeInfo}; use sp_runtime::{BoundedVec, RuntimeDebug}; -use sp_std::prelude::*; use crate::types::{Data, IdentityInformationProvider}; diff --git a/substrate/frame/identity/src/lib.rs b/substrate/frame/identity/src/lib.rs index 50d6de32ac6..776a08f5e9e 100644 --- a/substrate/frame/identity/src/lib.rs +++ b/substrate/frame/identity/src/lib.rs @@ -101,7 +101,10 @@ mod tests; mod types; pub mod weights; +extern crate alloc; + use crate::types::{AuthorityPropertiesOf, Suffix, Username}; +use alloc::{boxed::Box, vec::Vec}; use codec::Encode; use frame_support::{ ensure, @@ -113,7 +116,6 @@ pub use pallet::*; use sp_runtime::traits::{ AppendZerosInput, Hash, IdentifyAccount, Saturating, StaticLookup, Verify, Zero, }; -use sp_std::prelude::*; pub use types::{ Data, IdentityInformationProvider, Judgement, RegistrarIndex, RegistrarInfo, Registration, }; diff --git a/substrate/frame/identity/src/types.rs b/substrate/frame/identity/src/types.rs index 10f0db8c25d..45401d53e9e 100644 --- a/substrate/frame/identity/src/types.rs +++ b/substrate/frame/identity/src/types.rs @@ -16,7 +16,9 @@ // limitations under the License. use super::*; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; +use core::{fmt::Debug, iter::once, ops::Add}; use frame_support::{ traits::{ConstU32, Get}, BoundedVec, CloneNoBound, PartialEqNoBound, RuntimeDebugNoBound, @@ -29,7 +31,6 @@ use sp_runtime::{ traits::{Member, Zero}, RuntimeDebug, }; -use sp_std::{fmt::Debug, iter::once, ops::Add, prelude::*}; /// An identifier for a single name registrar/identity verification service. pub type RegistrarIndex = u32; @@ -65,7 +66,7 @@ impl Data { } impl Decode for Data { - fn decode(input: &mut I) -> sp_std::result::Result { + fn decode(input: &mut I) -> core::result::Result { let b = input.read_byte()?; Ok(match b { 0 => Data::None, @@ -295,7 +296,7 @@ impl< IdentityInfo: IdentityInformationProvider, > Decode for Registration { - fn decode(input: &mut I) -> sp_std::result::Result { + fn decode(input: &mut I) -> core::result::Result { let (judgements, deposit, info) = Decode::decode(&mut AppendZerosInput::new(input))?; Ok(Self { judgements, deposit, info }) } diff --git a/substrate/frame/im-online/Cargo.toml b/substrate/frame/im-online/Cargo.toml index 85cbcb3941b..2cb03b57d6c 100644 --- a/substrate/frame/im-online/Cargo.toml +++ b/substrate/frame/im-online/Cargo.toml @@ -28,7 +28,6 @@ sp-core = { features = ["serde"], workspace = true } sp-io = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-staking = { features = ["serde"], workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-session = { workspace = true, default-features = true } @@ -49,7 +48,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/im-online/src/lib.rs b/substrate/frame/im-online/src/lib.rs index f91a473e53d..ee2a8451d6f 100644 --- a/substrate/frame/im-online/src/lib.rs +++ b/substrate/frame/im-online/src/lib.rs @@ -82,6 +82,9 @@ mod mock; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ pallet_prelude::*, @@ -107,7 +110,6 @@ use sp_staking::{ offence::{Kind, Offence, ReportOffence}, SessionIndex, }; -use sp_std::prelude::*; pub use weights::WeightInfo; pub mod sr25519 { @@ -196,8 +198,8 @@ enum OffchainErr { SubmitTransaction, } -impl sp_std::fmt::Debug for OffchainErr { - fn fmt(&self, fmt: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { +impl core::fmt::Debug for OffchainErr { + fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::fmt::Result { match *self { OffchainErr::TooEarly => write!(fmt, "Too early to send heartbeat."), OffchainErr::WaitingForInclusion(ref block) => { diff --git a/substrate/frame/im-online/src/migration.rs b/substrate/frame/im-online/src/migration.rs index 754a2e672e6..6d3a5cda697 100644 --- a/substrate/frame/im-online/src/migration.rs +++ b/substrate/frame/im-online/src/migration.rs @@ -18,6 +18,7 @@ //! Storage migrations for the im-online pallet. use super::*; +use alloc::vec::Vec; use frame_support::{storage_alias, traits::OnRuntimeUpgrade}; #[cfg(feature = "try-runtime")] diff --git a/substrate/frame/indices/Cargo.toml b/substrate/frame/indices/Cargo.toml index 20c3863ff99..ea170481531 100644 --- a/substrate/frame/indices/Cargo.toml +++ b/substrate/frame/indices/Cargo.toml @@ -25,7 +25,6 @@ sp-core = { workspace = true } sp-io = { workspace = true } sp-keyring = { optional = true, workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -44,7 +43,6 @@ std = [ "sp-keyring", "sp-keyring?/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/indices/src/lib.rs b/substrate/frame/indices/src/lib.rs index ff12d092cfb..740d69365df 100644 --- a/substrate/frame/indices/src/lib.rs +++ b/substrate/frame/indices/src/lib.rs @@ -25,13 +25,15 @@ mod mock; mod tests; pub mod weights; +extern crate alloc; + +use alloc::vec::Vec; use codec::Codec; use frame_support::traits::{BalanceStatus::Reserved, Currency, ReservableCurrency}; use sp_runtime::{ traits::{AtLeast32Bit, LookupError, Saturating, StaticLookup, Zero}, MultiAddress, }; -use sp_std::prelude::*; pub use weights::WeightInfo; type BalanceOf = diff --git a/substrate/frame/insecure-randomness-collective-flip/Cargo.toml b/substrate/frame/insecure-randomness-collective-flip/Cargo.toml index 0da0d537395..977b9fdb6f6 100644 --- a/substrate/frame/insecure-randomness-collective-flip/Cargo.toml +++ b/substrate/frame/insecure-randomness-collective-flip/Cargo.toml @@ -22,7 +22,6 @@ scale-info = { features = ["derive"], workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true, default-features = true } @@ -39,7 +38,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/lottery/Cargo.toml b/substrate/frame/lottery/Cargo.toml index 34d1728e42e..0a33e54a825 100644 --- a/substrate/frame/lottery/Cargo.toml +++ b/substrate/frame/lottery/Cargo.toml @@ -23,7 +23,6 @@ frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] frame-support-test = { workspace = true } @@ -44,7 +43,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/lottery/src/benchmarking.rs b/substrate/frame/lottery/src/benchmarking.rs index 123b425b976..046bc0acbb6 100644 --- a/substrate/frame/lottery/src/benchmarking.rs +++ b/substrate/frame/lottery/src/benchmarking.rs @@ -22,6 +22,7 @@ use super::*; use crate::Pallet as Lottery; +use alloc::{boxed::Box, vec}; use frame_benchmarking::{ v1::{account, whitelisted_caller, BenchmarkError}, v2::*, diff --git a/substrate/frame/lottery/src/lib.rs b/substrate/frame/lottery/src/lib.rs index 54a8edd3860..0071b258fc4 100644 --- a/substrate/frame/lottery/src/lib.rs +++ b/substrate/frame/lottery/src/lib.rs @@ -54,6 +54,9 @@ mod mock; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{boxed::Box, vec::Vec}; use codec::{Decode, Encode}; use frame_support::{ dispatch::{DispatchResult, GetDispatchInfo}, @@ -68,7 +71,6 @@ use sp_runtime::{ traits::{AccountIdConversion, Dispatchable, Saturating, Zero}, ArithmeticError, DispatchError, RuntimeDebug, }; -use sp_std::prelude::*; pub use weights::WeightInfo; type BalanceOf = diff --git a/substrate/frame/membership/Cargo.toml b/substrate/frame/membership/Cargo.toml index 35b0eeaa714..0fc5ce02809 100644 --- a/substrate/frame/membership/Cargo.toml +++ b/substrate/frame/membership/Cargo.toml @@ -25,7 +25,6 @@ frame-system = { workspace = true } sp-core = { features = ["serde"], workspace = true } sp-io = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -39,7 +38,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/membership/src/lib.rs b/substrate/frame/membership/src/lib.rs index d5dad68e811..e38a6ba5d93 100644 --- a/substrate/frame/membership/src/lib.rs +++ b/substrate/frame/membership/src/lib.rs @@ -23,12 +23,14 @@ // Ensure we're `no_std` when compiling for Wasm. #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use frame_support::{ traits::{ChangeMembers, Contains, ContainsLengthBound, Get, InitializeMembers, SortedMembers}, BoundedVec, }; use sp_runtime::traits::{StaticLookup, UniqueSaturatedInto}; -use sp_std::prelude::*; pub mod migrations; pub mod weights; @@ -113,7 +115,7 @@ pub mod pallet { #[pallet::genesis_build] impl, I: 'static> BuildGenesisConfig for GenesisConfig { fn build(&self) { - use sp_std::collections::btree_set::BTreeSet; + use alloc::collections::btree_set::BTreeSet; let members_set: BTreeSet<_> = self.members.iter().collect(); assert_eq!( members_set.len(), diff --git a/substrate/frame/merkle-mountain-range/Cargo.toml b/substrate/frame/merkle-mountain-range/Cargo.toml index 27ba77e5a62..b8a9b6065c6 100644 --- a/substrate/frame/merkle-mountain-range/Cargo.toml +++ b/substrate/frame/merkle-mountain-range/Cargo.toml @@ -25,7 +25,6 @@ sp-core = { workspace = true } sp-io = { workspace = true } sp-mmr-primitives = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] array-bytes = { workspace = true, default-features = true } @@ -45,7 +44,6 @@ std = [ "sp-io/std", "sp-mmr-primitives/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/merkle-mountain-range/src/lib.rs b/substrate/frame/merkle-mountain-range/src/lib.rs index 47a325db605..cacb33b5043 100644 --- a/substrate/frame/merkle-mountain-range/src/lib.rs +++ b/substrate/frame/merkle-mountain-range/src/lib.rs @@ -56,6 +56,9 @@ //! NOTE This pallet is experimental and not proven to work in production. #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use frame_support::weights::Weight; use frame_system::pallet_prelude::{BlockNumberFor, HeaderFor}; use log; @@ -64,7 +67,6 @@ use sp_runtime::{ traits::{self, One, Saturating}, SaturatedConversion, }; -use sp_std::prelude::*; pub use pallet::*; pub use sp_mmr_primitives::{ @@ -89,7 +91,7 @@ mod tests; /// is not available (since the block is not finished yet), /// we use the `parent_hash` here along with parent block number. pub struct ParentNumberAndHash { - _phantom: sp_std::marker::PhantomData, + _phantom: core::marker::PhantomData, } impl LeafDataProvider for ParentNumberAndHash { @@ -110,7 +112,7 @@ pub trait BlockHashProvider { /// Default implementation of BlockHashProvider using frame_system. pub struct DefaultBlockHashProvider { - _phantom: sp_std::marker::PhantomData, + _phantom: core::marker::PhantomData, } impl BlockHashProvider, T::Hash> @@ -302,7 +304,7 @@ impl, I: 'static> Pallet { fn node_temp_offchain_key( pos: NodeIndex, parent_hash: ::Hash, - ) -> sp_std::prelude::Vec { + ) -> Vec { NodesUtils::node_temp_offchain_key::>(&T::INDEXING_PREFIX, pos, parent_hash) } @@ -311,7 +313,7 @@ impl, I: 'static> Pallet { /// Used for nodes added by now finalized blocks. /// Never read keys using `node_canon_offchain_key` unless you sure that /// there's no `node_offchain_key` key in the storage. - fn node_canon_offchain_key(pos: NodeIndex) -> sp_std::prelude::Vec { + fn node_canon_offchain_key(pos: NodeIndex) -> Vec { NodesUtils::node_canon_offchain_key(&T::INDEXING_PREFIX, pos) } diff --git a/substrate/frame/merkle-mountain-range/src/mmr/mmr.rs b/substrate/frame/merkle-mountain-range/src/mmr/mmr.rs index 8a99f4d87de..2b46357c507 100644 --- a/substrate/frame/merkle-mountain-range/src/mmr/mmr.rs +++ b/substrate/frame/merkle-mountain-range/src/mmr/mmr.rs @@ -23,8 +23,8 @@ use crate::{ primitives::{self, Error, NodeIndex}, Config, HashOf, HashingOf, }; +use alloc::vec::Vec; use sp_mmr_primitives::{mmr_lib, mmr_lib::MMRStoreReadOps, utils::NodesUtils, LeafIndex}; -use sp_std::prelude::*; /// Stateless verification of the proof for a batch of leaves. /// Note, the leaves should be sorted such that corresponding leaves and leaf indices have the diff --git a/substrate/frame/merkle-mountain-range/src/mmr/storage.rs b/substrate/frame/merkle-mountain-range/src/mmr/storage.rs index e27440be35c..a3908980148 100644 --- a/substrate/frame/merkle-mountain-range/src/mmr/storage.rs +++ b/substrate/frame/merkle-mountain-range/src/mmr/storage.rs @@ -17,14 +17,13 @@ //! An MMR storage implementation. +use alloc::{vec, vec::Vec}; use codec::Encode; +use core::iter::Peekable; use log::{debug, trace}; use sp_core::offchain::StorageKind; use sp_io::offchain_index; use sp_mmr_primitives::{mmr_lib, mmr_lib::helper, utils::NodesUtils}; -use sp_std::iter::Peekable; -#[cfg(not(feature = "std"))] -use sp_std::prelude::*; use crate::{ mmr::{Node, NodeOf}, @@ -52,7 +51,7 @@ pub struct OffchainStorage; /// /// There are two different implementations depending on the use case. /// See docs for [RuntimeStorage] and [OffchainStorage]. -pub struct Storage(sp_std::marker::PhantomData<(StorageType, T, I, L)>); +pub struct Storage(core::marker::PhantomData<(StorageType, T, I, L)>); impl Default for Storage { fn default() -> Self { diff --git a/substrate/frame/message-queue/Cargo.toml b/substrate/frame/message-queue/Cargo.toml index 5ced1a4e08f..0c3bbb2c883 100644 --- a/substrate/frame/message-queue/Cargo.toml +++ b/substrate/frame/message-queue/Cargo.toml @@ -21,7 +21,6 @@ environmental = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-arithmetic = { workspace = true } sp-weights = { workspace = true } @@ -49,7 +48,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-tracing/std", "sp-weights/std", ] diff --git a/substrate/frame/message-queue/src/benchmarking.rs b/substrate/frame/message-queue/src/benchmarking.rs index 7e99bc05858..8f0712acc5f 100644 --- a/substrate/frame/message-queue/src/benchmarking.rs +++ b/substrate/frame/message-queue/src/benchmarking.rs @@ -26,7 +26,6 @@ use frame_benchmarking::v2::*; use frame_support::traits::Get; use frame_system::RawOrigin; use sp_io::hashing::blake2_256; -use sp_std::prelude::*; #[benchmarks( where diff --git a/substrate/frame/message-queue/src/lib.rs b/substrate/frame/message-queue/src/lib.rs index ef3420d21be..2dbffef7e5a 100644 --- a/substrate/frame/message-queue/src/lib.rs +++ b/substrate/frame/message-queue/src/lib.rs @@ -203,7 +203,11 @@ pub mod mock_helpers; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{vec, vec::Vec}; use codec::{Codec, Decode, Encode, MaxEncodedLen}; +use core::{fmt::Debug, ops::Deref}; use frame_support::{ defensive, pallet_prelude::*, @@ -223,7 +227,6 @@ use sp_runtime::{ traits::{One, Zero}, SaturatedConversion, Saturating, }; -use sp_std::{fmt::Debug, ops::Deref, prelude::*, vec}; use sp_weights::WeightMeter; pub use weights::WeightInfo; @@ -307,7 +310,7 @@ impl< return Err(()) } - let mut heap = sp_std::mem::take(&mut self.heap).into_inner(); + let mut heap = core::mem::take(&mut self.heap).into_inner(); header.using_encoded(|h| heap.extend_from_slice(h)); heap.extend_from_slice(message.deref()); self.heap = BoundedVec::defensive_truncate_from(heap); @@ -1509,7 +1512,7 @@ pub(crate) fn with_service_mutex R, R>(f: F) -> Result { } /// Provides a [`sp_core::Get`] to access the `MEL` of a [`codec::MaxEncodedLen`] type. -pub struct MaxEncodedLenOf(sp_std::marker::PhantomData); +pub struct MaxEncodedLenOf(core::marker::PhantomData); impl Get for MaxEncodedLenOf { fn get() -> u32 { T::max_encoded_len() as u32 @@ -1518,7 +1521,7 @@ impl Get for MaxEncodedLenOf { /// Calculates the maximum message length and exposed it through the [`codec::MaxEncodedLen`] trait. pub struct MaxMessageLen( - sp_std::marker::PhantomData<(Origin, Size, HeapSize)>, + core::marker::PhantomData<(Origin, Size, HeapSize)>, ); impl, HeapSize: Get> Get for MaxMessageLen @@ -1544,7 +1547,7 @@ pub type BookStateOf = BookState>; /// Converts a [`sp_core::Get`] with returns a type that can be cast into an `u32` into a `Get` /// which returns an `u32`. -pub struct IntoU32(sp_std::marker::PhantomData<(T, O)>); +pub struct IntoU32(core::marker::PhantomData<(T, O)>); impl, O: Into> Get for IntoU32 { fn get() -> u32 { T::get().into() diff --git a/substrate/frame/message-queue/src/mock.rs b/substrate/frame/message-queue/src/mock.rs index 66a242d5a18..26533cc7c33 100644 --- a/substrate/frame/message-queue/src/mock.rs +++ b/substrate/frame/message-queue/src/mock.rs @@ -23,9 +23,9 @@ pub use super::mock_helpers::*; use super::*; use crate as pallet_message_queue; +use alloc::collections::btree_map::BTreeMap; use frame_support::{derive_impl, parameter_types}; use sp_runtime::BuildStorage; -use sp_std::collections::btree_map::BTreeMap; type Block = frame_system::mocking::MockBlock; diff --git a/substrate/frame/message-queue/src/mock_helpers.rs b/substrate/frame/message-queue/src/mock_helpers.rs index 28395e27cdd..873add776e2 100644 --- a/substrate/frame/message-queue/src/mock_helpers.rs +++ b/substrate/frame/message-queue/src/mock_helpers.rs @@ -22,6 +22,7 @@ //! Cannot be put into mock.rs since benchmarks require no-std and mock.rs is std. use crate::*; +use alloc::vec::Vec; use frame_support::traits::Defensive; /// Converts `Self` into a `Weight` by using `Self` for all components. diff --git a/substrate/frame/migrations/Cargo.toml b/substrate/frame/migrations/Cargo.toml index 5a946d3aa05..5fbed74a440 100644 --- a/substrate/frame/migrations/Cargo.toml +++ b/substrate/frame/migrations/Cargo.toml @@ -21,7 +21,6 @@ frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } [dev-dependencies] @@ -46,7 +45,6 @@ std = [ "scale-info/std", "sp-core/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/migrations/src/lib.rs b/substrate/frame/migrations/src/lib.rs index 649bc314a12..68041a57eaa 100644 --- a/substrate/frame/migrations/src/lib.rs +++ b/substrate/frame/migrations/src/lib.rs @@ -69,22 +69,22 @@ //! either be [`MigrationCursor::Active`] or [`MigrationCursor::Stuck`]. In the active case it //! points to the currently active migration and stores its inner cursor. The inner cursor can then //! be used by the migration to store its inner state and advance. Each time when the migration -//! returns `Some(cursor)`, it signals the pallet that it is not done yet. +//! returns `Some(cursor)`, it signals the pallet that it is not done yet. //! The cursor is reset on each runtime upgrade. This ensures that it starts to execute at the //! first migration in the vector. The pallets cursor is only ever incremented or set to `Stuck` //! once it encounters an error (Goal 4). Once in the stuck state, the pallet will stay stuck until -//! it is fixed through manual governance intervention. +//! it is fixed through manual governance intervention. //! As soon as the cursor of the pallet becomes `Some(_)`; [`MultiStepMigrator::ongoing`] returns //! `true` (Goal 2). This can be used by upstream code to possibly pause transactions. //! In `on_initialize` the pallet will load the current migration and check whether it was already //! executed in the past by checking for membership of its ID in the [`Historic`] set. Historic //! migrations are skipped without causing an error. Each successfully executed migration is added -//! to this set (Goal 5). +//! to this set (Goal 5). //! This proceeds until no more migrations remain. At that point, the event `UpgradeCompleted` is -//! emitted (Goal 1). +//! emitted (Goal 1). //! The execution of each migration happens by calling [`SteppedMigration::transactional_step`]. //! This function wraps the inner `step` function into a transactional layer to allow rollback in -//! the error case (Goal 6). +//! the error case (Goal 6). //! Weight limits must be checked by the migration itself. The pallet provides a [`WeightMeter`] for //! that purpose. The pallet may return [`SteppedMigrationError::InsufficientWeight`] at any point. //! In that scenario, one of two things will happen: if that migration was exclusively executed @@ -145,9 +145,12 @@ pub mod mock_helpers; mod tests; pub mod weights; +extern crate alloc; + pub use pallet::*; pub use weights::WeightInfo; +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; use core::ops::ControlFlow; use frame_support::{ @@ -159,7 +162,6 @@ use frame_support::{ }; use frame_system::{pallet_prelude::BlockNumberFor, Pallet as System}; use sp_runtime::Saturating; -use sp_std::vec::Vec; /// Points to the next migration to execute. #[derive(Debug, Clone, Eq, PartialEq, Encode, Decode, scale_info::TypeInfo, MaxEncodedLen)] diff --git a/substrate/frame/migrations/src/mock_helpers.rs b/substrate/frame/migrations/src/mock_helpers.rs index d230417d12e..9d3b4d1193f 100644 --- a/substrate/frame/migrations/src/mock_helpers.rs +++ b/substrate/frame/migrations/src/mock_helpers.rs @@ -19,6 +19,7 @@ #![allow(missing_docs)] +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; use frame_support::{ migrations::*, @@ -26,7 +27,6 @@ use frame_support::{ }; use sp_core::ConstU32; use sp_runtime::BoundedVec; -use sp_std::{vec, vec::Vec}; /// Opaque identifier of a migration. pub type MockedIdentifier = BoundedVec>; diff --git a/substrate/frame/mixnet/Cargo.toml b/substrate/frame/mixnet/Cargo.toml index f3bea3d2914..a9980ac268b 100644 --- a/substrate/frame/mixnet/Cargo.toml +++ b/substrate/frame/mixnet/Cargo.toml @@ -28,7 +28,6 @@ sp-arithmetic = { workspace = true } sp-io = { workspace = true } sp-mixnet = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -45,7 +44,6 @@ std = [ "sp-io/std", "sp-mixnet/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/mixnet/src/lib.rs b/substrate/frame/mixnet/src/lib.rs index c7a5b624157..c0505a4f010 100644 --- a/substrate/frame/mixnet/src/lib.rs +++ b/substrate/frame/mixnet/src/lib.rs @@ -21,7 +21,11 @@ #![warn(missing_docs)] #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; +use core::cmp::Ordering; use frame_support::{ traits::{EstimateNextSessionRotation, Get, OneSessionHandler}, BoundedVec, @@ -41,7 +45,6 @@ use sp_mixnet::types::{ SessionPhase, SessionStatus, KX_PUBLIC_SIZE, }; use sp_runtime::RuntimeDebug; -use sp_std::{cmp::Ordering, vec::Vec}; const LOG_TARGET: &str = "runtime::mixnet"; diff --git a/substrate/frame/multisig/Cargo.toml b/substrate/frame/multisig/Cargo.toml index 329b2e8824e..c1571c6c030 100644 --- a/substrate/frame/multisig/Cargo.toml +++ b/substrate/frame/multisig/Cargo.toml @@ -23,7 +23,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } # third party log = { workspace = true } @@ -43,7 +42,6 @@ std = [ "scale-info/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/multisig/src/lib.rs b/substrate/frame/multisig/src/lib.rs index a83b78e316f..51c36773bda 100644 --- a/substrate/frame/multisig/src/lib.rs +++ b/substrate/frame/multisig/src/lib.rs @@ -48,6 +48,9 @@ pub mod migrations; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{boxed::Box, vec, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ dispatch::{ @@ -66,7 +69,6 @@ use sp_runtime::{ traits::{Dispatchable, TrailingZeroInput, Zero}, DispatchError, RuntimeDebug, }; -use sp_std::prelude::*; pub use weights::WeightInfo; pub use pallet::*; diff --git a/substrate/frame/nft-fractionalization/Cargo.toml b/substrate/frame/nft-fractionalization/Cargo.toml index f0613581257..ca2e70cbe6c 100644 --- a/substrate/frame/nft-fractionalization/Cargo.toml +++ b/substrate/frame/nft-fractionalization/Cargo.toml @@ -25,7 +25,6 @@ frame-system = { workspace = true } pallet-assets = { workspace = true } pallet-nfts = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -48,7 +47,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/nft-fractionalization/src/benchmarking.rs b/substrate/frame/nft-fractionalization/src/benchmarking.rs index 0b54acdab49..811b5fe1b31 100644 --- a/substrate/frame/nft-fractionalization/src/benchmarking.rs +++ b/substrate/frame/nft-fractionalization/src/benchmarking.rs @@ -32,7 +32,6 @@ use frame_support::{ use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin as SystemOrigin}; use pallet_nfts::{CollectionConfig, CollectionSettings, ItemConfig, MintSettings}; use sp_runtime::traits::StaticLookup; -use sp_std::prelude::*; use crate::Pallet as NftFractionalization; diff --git a/substrate/frame/nft-fractionalization/src/lib.rs b/substrate/frame/nft-fractionalization/src/lib.rs index cb269f464c4..5fa990ecebe 100644 --- a/substrate/frame/nft-fractionalization/src/lib.rs +++ b/substrate/frame/nft-fractionalization/src/lib.rs @@ -56,6 +56,7 @@ pub use weights::WeightInfo; #[frame_support::pallet] pub mod pallet { use super::*; + use core::fmt::Display; use frame_support::{ dispatch::DispatchResult, ensure, @@ -83,7 +84,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; use scale_info::prelude::{format, string::String}; use sp_runtime::traits::{One, Zero}; - use sp_std::{fmt::Display, prelude::*}; #[pallet::pallet] pub struct Pallet(_); diff --git a/substrate/frame/nfts/Cargo.toml b/substrate/frame/nfts/Cargo.toml index a1eef3226ec..e3ffd971a2b 100644 --- a/substrate/frame/nfts/Cargo.toml +++ b/substrate/frame/nfts/Cargo.toml @@ -26,7 +26,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -47,7 +46,6 @@ std = [ "sp-io/std", "sp-keystore/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/nfts/runtime-api/Cargo.toml b/substrate/frame/nfts/runtime-api/Cargo.toml index 731f5f5ae77..4125aa1aab0 100644 --- a/substrate/frame/nfts/runtime-api/Cargo.toml +++ b/substrate/frame/nfts/runtime-api/Cargo.toml @@ -19,8 +19,7 @@ targets = ["x86_64-unknown-linux-gnu"] codec = { features = ["derive"], workspace = true } pallet-nfts = { workspace = true } sp-api = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] -std = ["codec/std", "pallet-nfts/std", "sp-api/std", "sp-std/std"] +std = ["codec/std", "pallet-nfts/std", "sp-api/std"] diff --git a/substrate/frame/nfts/runtime-api/src/lib.rs b/substrate/frame/nfts/runtime-api/src/lib.rs index 816088f1b71..87faa790985 100644 --- a/substrate/frame/nfts/runtime-api/src/lib.rs +++ b/substrate/frame/nfts/runtime-api/src/lib.rs @@ -19,8 +19,10 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode}; -use sp_std::vec::Vec; sp_api::decl_runtime_apis! { pub trait NftsApi diff --git a/substrate/frame/nfts/src/benchmarking.rs b/substrate/frame/nfts/src/benchmarking.rs index 80860bc5a53..bc81096b459 100644 --- a/substrate/frame/nfts/src/benchmarking.rs +++ b/substrate/frame/nfts/src/benchmarking.rs @@ -31,7 +31,6 @@ use frame_support::{ }; use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin as SystemOrigin}; use sp_runtime::traits::{Bounded, One}; -use sp_std::prelude::*; use crate::Pallet as Nfts; diff --git a/substrate/frame/nfts/src/common_functions.rs b/substrate/frame/nfts/src/common_functions.rs index 1ad523d664c..2c4778c1444 100644 --- a/substrate/frame/nfts/src/common_functions.rs +++ b/substrate/frame/nfts/src/common_functions.rs @@ -18,6 +18,7 @@ //! Various pieces of common functionality. use crate::*; +use alloc::vec::Vec; use frame_support::pallet_prelude::*; impl, I: 'static> Pallet { diff --git a/substrate/frame/nfts/src/features/metadata.rs b/substrate/frame/nfts/src/features/metadata.rs index 85edd294d50..260061603e9 100644 --- a/substrate/frame/nfts/src/features/metadata.rs +++ b/substrate/frame/nfts/src/features/metadata.rs @@ -18,6 +18,7 @@ //! This module contains helper methods to configure the metadata of collections and items. use crate::*; +use alloc::vec::Vec; use frame_support::pallet_prelude::*; impl, I: 'static> Pallet { diff --git a/substrate/frame/nfts/src/features/roles.rs b/substrate/frame/nfts/src/features/roles.rs index f6d2785fd9c..aa6394f70bf 100644 --- a/substrate/frame/nfts/src/features/roles.rs +++ b/substrate/frame/nfts/src/features/roles.rs @@ -18,8 +18,8 @@ //! This module contains helper methods to configure account roles for existing collections. use crate::*; +use alloc::{collections::btree_map::BTreeMap, vec::Vec}; use frame_support::pallet_prelude::*; -use sp_std::collections::btree_map::BTreeMap; impl, I: 'static> Pallet { /// Set the team roles for a specific collection. diff --git a/substrate/frame/nfts/src/impl_nonfungibles.rs b/substrate/frame/nfts/src/impl_nonfungibles.rs index ee7f42cfc68..c90655aadbf 100644 --- a/substrate/frame/nfts/src/impl_nonfungibles.rs +++ b/substrate/frame/nfts/src/impl_nonfungibles.rs @@ -25,7 +25,6 @@ use frame_support::{ BoundedSlice, }; use sp_runtime::{DispatchError, DispatchResult}; -use sp_std::prelude::*; impl, I: 'static> Inspect<::AccountId> for Pallet { type ItemId = T::ItemId; diff --git a/substrate/frame/nfts/src/lib.rs b/substrate/frame/nfts/src/lib.rs index 0406cac6e2c..4e5493a3c75 100644 --- a/substrate/frame/nfts/src/lib.rs +++ b/substrate/frame/nfts/src/lib.rs @@ -48,6 +48,9 @@ mod types; pub mod macros; pub mod weights; +extern crate alloc; + +use alloc::{boxed::Box, vec, vec::Vec}; use codec::{Decode, Encode}; use frame_support::traits::{ tokens::Locker, BalanceStatus::Reserved, Currency, EnsureOriginWithArg, Incrementable, @@ -58,7 +61,6 @@ use sp_runtime::{ traits::{IdentifyAccount, Saturating, StaticLookup, Verify, Zero}, RuntimeDebug, }; -use sp_std::prelude::*; pub use pallet::*; pub use types::*; diff --git a/substrate/frame/nfts/src/tests.rs b/substrate/frame/nfts/src/tests.rs index 4d23aca64ce..e1b598ca426 100644 --- a/substrate/frame/nfts/src/tests.rs +++ b/substrate/frame/nfts/src/tests.rs @@ -32,7 +32,6 @@ use sp_runtime::{ traits::{Dispatchable, IdentifyAccount}, MultiSignature, MultiSigner, }; -use sp_std::prelude::*; type AccountIdOf = ::AccountId; diff --git a/substrate/frame/nfts/src/types.rs b/substrate/frame/nfts/src/types.rs index 5a9f6ae2f0e..1687a03520a 100644 --- a/substrate/frame/nfts/src/types.rs +++ b/substrate/frame/nfts/src/types.rs @@ -19,6 +19,7 @@ use super::*; use crate::macros::*; +use alloc::{vec, vec::Vec}; use codec::EncodeLike; use enumflags2::{bitflags, BitFlags}; use frame_support::{ diff --git a/substrate/frame/nis/Cargo.toml b/substrate/frame/nis/Cargo.toml index 418c906e2b6..fb6c25789b2 100644 --- a/substrate/frame/nis/Cargo.toml +++ b/substrate/frame/nis/Cargo.toml @@ -24,7 +24,6 @@ frame-system = { workspace = true } sp-arithmetic = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -43,7 +42,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/nis/src/benchmarking.rs b/substrate/frame/nis/src/benchmarking.rs index f6a83b78d51..2c7ad651f99 100644 --- a/substrate/frame/nis/src/benchmarking.rs +++ b/substrate/frame/nis/src/benchmarking.rs @@ -30,7 +30,6 @@ use sp_runtime::{ traits::{Bounded, One, Zero}, DispatchError, PerThing, }; -use sp_std::prelude::*; use crate::Pallet as Nis; diff --git a/substrate/frame/nis/src/lib.rs b/substrate/frame/nis/src/lib.rs index d815ea6ac11..016daa4cb78 100644 --- a/substrate/frame/nis/src/lib.rs +++ b/substrate/frame/nis/src/lib.rs @@ -76,6 +76,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + use frame_support::traits::{ fungible::{self, Inspect as FunInspect, Mutate as FunMutate}, tokens::{DepositConsequence, Fortitude, Preservation, Provenance, WithdrawConsequence}, @@ -95,7 +97,7 @@ mod mock; mod tests; pub mod weights; -pub struct WithMaximumOf(sp_std::marker::PhantomData); +pub struct WithMaximumOf(core::marker::PhantomData); impl Convert for WithMaximumOf where A::Type: Clone + Unsigned + From, @@ -116,7 +118,7 @@ where } } -pub struct NoCounterpart(sp_std::marker::PhantomData); +pub struct NoCounterpart(core::marker::PhantomData); impl FunInspect for NoCounterpart { type Balance = u32; fn total_issuance() -> u32 { @@ -171,6 +173,7 @@ impl BenchmarkSetup for () { pub mod pallet { use super::{FunInspect, FunMutate}; pub use crate::weights::WeightInfo; + use alloc::{vec, vec::Vec}; use frame_support::{ pallet_prelude::*, traits::{ @@ -193,7 +196,6 @@ pub mod pallet { traits::{AccountIdConversion, Bounded, Convert, ConvertBack, Saturating, Zero}, Rounding, TokenError, }; - use sp_std::prelude::*; type BalanceOf = <::Currency as FunInspect<::AccountId>>::Balance; @@ -372,7 +374,7 @@ pub mod pallet { pub receipts_on_hold: Balance, } - pub struct OnEmptyQueueTotals(sp_std::marker::PhantomData); + pub struct OnEmptyQueueTotals(core::marker::PhantomData); impl Get> for OnEmptyQueueTotals { fn get() -> QueueTotalsTypeOf { BoundedVec::truncate_from(vec![ @@ -573,7 +575,7 @@ pub mod pallet { // queue is let mut bid = Bid { amount, who: who.clone() }; let net = if queue_full { - sp_std::mem::swap(&mut q[0], &mut bid); + core::mem::swap(&mut q[0], &mut bid); let _ = T::Currency::release( &HoldReason::NftReceipt.into(), &bid.who, diff --git a/substrate/frame/node-authorization/Cargo.toml b/substrate/frame/node-authorization/Cargo.toml index d16e9bc6ead..b56a76ce641 100644 --- a/substrate/frame/node-authorization/Cargo.toml +++ b/substrate/frame/node-authorization/Cargo.toml @@ -23,7 +23,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -36,7 +35,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/node-authorization/src/lib.rs b/substrate/frame/node-authorization/src/lib.rs index a7967536079..7682b54ea0f 100644 --- a/substrate/frame/node-authorization/src/lib.rs +++ b/substrate/frame/node-authorization/src/lib.rs @@ -44,10 +44,12 @@ mod tests; pub mod weights; +extern crate alloc; + +use alloc::{collections::btree_set::BTreeSet, vec::Vec}; pub use pallet::*; use sp_core::OpaquePeerId as PeerId; use sp_runtime::traits::StaticLookup; -use sp_std::{collections::btree_set::BTreeSet, prelude::*}; pub use weights::WeightInfo; type AccountIdLookupOf = <::Lookup as StaticLookup>::Source; diff --git a/substrate/frame/nomination-pools/Cargo.toml b/substrate/frame/nomination-pools/Cargo.toml index 535d5252435..bfcc92edb7e 100644 --- a/substrate/frame/nomination-pools/Cargo.toml +++ b/substrate/frame/nomination-pools/Cargo.toml @@ -27,7 +27,6 @@ scale-info = { features = [ frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-staking = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } @@ -55,7 +54,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", "sp-tracing?/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/nomination-pools/benchmarking/Cargo.toml b/substrate/frame/nomination-pools/benchmarking/Cargo.toml index 1516f0154b8..e73a208926e 100644 --- a/substrate/frame/nomination-pools/benchmarking/Cargo.toml +++ b/substrate/frame/nomination-pools/benchmarking/Cargo.toml @@ -34,7 +34,6 @@ pallet-nomination-pools = { workspace = true } sp-runtime = { workspace = true } sp-runtime-interface = { workspace = true } sp-staking = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true } @@ -64,7 +63,6 @@ std = [ "sp-runtime-interface/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/nomination-pools/benchmarking/src/inner.rs b/substrate/frame/nomination-pools/benchmarking/src/inner.rs index b8c978945e9..2a455942511 100644 --- a/substrate/frame/nomination-pools/benchmarking/src/inner.rs +++ b/substrate/frame/nomination-pools/benchmarking/src/inner.rs @@ -17,6 +17,7 @@ //! Benchmarks for the nomination pools coupled with the staking and bags list pallets. +use alloc::{vec, vec::Vec}; use frame_benchmarking::v1::{account, whitelist_account}; use frame_election_provider_support::SortedListProvider; use frame_support::{ @@ -41,7 +42,6 @@ use sp_runtime::{ Perbill, }; use sp_staking::EraIndex; -use sp_std::{vec, vec::Vec}; // `frame_benchmarking::benchmarks!` macro needs this use pallet_nomination_pools::Call; diff --git a/substrate/frame/nomination-pools/benchmarking/src/lib.rs b/substrate/frame/nomination-pools/benchmarking/src/lib.rs index 910cdf2e3df..feb73be7168 100644 --- a/substrate/frame/nomination-pools/benchmarking/src/lib.rs +++ b/substrate/frame/nomination-pools/benchmarking/src/lib.rs @@ -20,6 +20,8 @@ #![cfg_attr(not(feature = "std"), no_std)] #![recursion_limit = "256"] +extern crate alloc; + #[cfg(feature = "runtime-benchmarks")] pub mod inner; diff --git a/substrate/frame/nomination-pools/runtime-api/Cargo.toml b/substrate/frame/nomination-pools/runtime-api/Cargo.toml index 2b217e02145..2f91e550bc0 100644 --- a/substrate/frame/nomination-pools/runtime-api/Cargo.toml +++ b/substrate/frame/nomination-pools/runtime-api/Cargo.toml @@ -18,9 +18,8 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] codec = { features = ["derive"], workspace = true } sp-api = { workspace = true } -sp-std = { workspace = true } pallet-nomination-pools = { workspace = true } [features] default = ["std"] -std = ["codec/std", "pallet-nomination-pools/std", "sp-api/std", "sp-std/std"] +std = ["codec/std", "pallet-nomination-pools/std", "sp-api/std"] diff --git a/substrate/frame/nomination-pools/src/adapter.rs b/substrate/frame/nomination-pools/src/adapter.rs index 4809fbc0e9d..4d571855e4f 100644 --- a/substrate/frame/nomination-pools/src/adapter.rs +++ b/substrate/frame/nomination-pools/src/adapter.rs @@ -83,7 +83,7 @@ impl Member { /// [`DelegateStake`] for more detail. pub trait StakeStrategy { type Balance: frame_support::traits::tokens::Balance; - type AccountId: Clone + sp_std::fmt::Debug; + type AccountId: Clone + core::fmt::Debug; type CoreStaking: StakingInterface; /// The type of staking strategy of the current adapter. diff --git a/substrate/frame/nomination-pools/src/lib.rs b/substrate/frame/nomination-pools/src/lib.rs index 641f2b14577..472f0affcc7 100644 --- a/substrate/frame/nomination-pools/src/lib.rs +++ b/substrate/frame/nomination-pools/src/lib.rs @@ -351,8 +351,12 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + use adapter::{Member, Pool, StakeStrategy}; +use alloc::{collections::btree_map::BTreeMap, vec::Vec}; use codec::Codec; +use core::{fmt::Debug, ops::Div}; use frame_support::{ defensive, defensive_assert, ensure, pallet_prelude::{MaxEncodedLen, *}, @@ -375,7 +379,6 @@ use sp_runtime::{ FixedPointNumber, Perbill, }; use sp_staking::{EraIndex, StakingInterface}; -use sp_std::{collections::btree_map::BTreeMap, fmt::Debug, ops::Div, vec::Vec}; #[cfg(any(feature = "try-runtime", feature = "fuzzing", test, debug_assertions))] use sp_runtime::TryRuntimeError; @@ -949,14 +952,14 @@ pub struct BondedPool { inner: BondedPoolInner, } -impl sp_std::ops::Deref for BondedPool { +impl core::ops::Deref for BondedPool { type Target = BondedPoolInner; fn deref(&self) -> &Self::Target { &self.inner } } -impl sp_std::ops::DerefMut for BondedPool { +impl core::ops::DerefMut for BondedPool { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.inner } diff --git a/substrate/frame/nomination-pools/src/migration.rs b/substrate/frame/nomination-pools/src/migration.rs index a9222ea53d7..d8697364a76 100644 --- a/substrate/frame/nomination-pools/src/migration.rs +++ b/substrate/frame/nomination-pools/src/migration.rs @@ -17,8 +17,8 @@ use super::*; use crate::log; +use alloc::{collections::btree_map::BTreeMap, vec::Vec}; use frame_support::traits::{OnRuntimeUpgrade, UncheckedOnRuntimeUpgrade}; -use sp_std::{collections::btree_map::BTreeMap, vec::Vec}; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; @@ -60,7 +60,7 @@ pub mod unversioned { use super::*; /// Checks and updates `TotalValueLocked` if out of sync. - pub struct TotalValueLockedSync(sp_std::marker::PhantomData); + pub struct TotalValueLockedSync(core::marker::PhantomData); impl OnRuntimeUpgrade for TotalValueLockedSync { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, TryRuntimeError> { @@ -125,7 +125,7 @@ pub mod unversioned { /// /// If there are pools that fail to migrate or did not fit in the bounds, the remaining pools /// can be migrated via the permission-less extrinsic [`Call::migrate_pool_to_delegate_stake`]. - pub struct DelegationStakeMigration(sp_std::marker::PhantomData<(T, MaxPools)>); + pub struct DelegationStakeMigration(core::marker::PhantomData<(T, MaxPools)>); impl> OnRuntimeUpgrade for DelegationStakeMigration { fn on_runtime_upgrade() -> Weight { @@ -262,7 +262,7 @@ pub mod v8 { } } - pub struct VersionUncheckedMigrateV7ToV8(sp_std::marker::PhantomData); + pub struct VersionUncheckedMigrateV7ToV8(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateV7ToV8 { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, TryRuntimeError> { @@ -341,7 +341,7 @@ pub(crate) mod v7 { pub type BondedPools = CountedStorageMap, Twox64Concat, PoolId, V7BondedPoolInner>; - pub struct VersionUncheckedMigrateV6ToV7(sp_std::marker::PhantomData); + pub struct VersionUncheckedMigrateV6ToV7(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateV6ToV7 { fn on_runtime_upgrade() -> Weight { let migrated = BondedPools::::count(); @@ -402,7 +402,7 @@ mod v6 { /// This migration would restrict reward account of pools to go below ED by doing a named /// freeze on all the existing pools. - pub struct MigrateToV6(sp_std::marker::PhantomData); + pub struct MigrateToV6(core::marker::PhantomData); impl MigrateToV6 { fn freeze_ed(pool_id: PoolId) -> Result<(), ()> { @@ -470,7 +470,7 @@ pub mod v5 { /// This migration adds `total_commission_pending` and `total_commission_claimed` field to every /// `RewardPool`, if any. - pub struct MigrateToV5(sp_std::marker::PhantomData); + pub struct MigrateToV5(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV5 { fn on_runtime_upgrade() -> Weight { let in_code = Pallet::::in_code_storage_version(); @@ -625,7 +625,7 @@ pub mod v4 { #[deprecated( note = "To avoid mangled storage please use `MigrateV3ToV5` instead. See: github.com/paritytech/substrate/pull/13715" )] - pub struct MigrateToV4(sp_std::marker::PhantomData<(T, U)>); + pub struct MigrateToV4(core::marker::PhantomData<(T, U)>); #[allow(deprecated)] impl> OnRuntimeUpgrade for MigrateToV4 { fn on_runtime_upgrade() -> Weight { @@ -707,7 +707,7 @@ pub mod v3 { use super::*; /// This migration removes stale bonded-pool metadata, if any. - pub struct MigrateToV3(sp_std::marker::PhantomData); + pub struct MigrateToV3(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV3 { fn on_runtime_upgrade() -> Weight { let current = Pallet::::in_code_storage_version(); @@ -845,7 +845,7 @@ pub mod v2 { /// Migrate the pool reward scheme to the new version, as per /// . - pub struct MigrateToV2(sp_std::marker::PhantomData); + pub struct MigrateToV2(core::marker::PhantomData); impl MigrateToV2 { fn run(current: StorageVersion) -> Weight { let mut reward_pools_translated = 0u64; @@ -1104,7 +1104,7 @@ pub mod v1 { /// Trivial migration which makes the roles of each pool optional. /// /// Note: The depositor is not optional since they can never change. - pub struct MigrateToV1(sp_std::marker::PhantomData); + pub struct MigrateToV1(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV1 { fn on_runtime_upgrade() -> Weight { let current = Pallet::::in_code_storage_version(); diff --git a/substrate/frame/offences/Cargo.toml b/substrate/frame/offences/Cargo.toml index 51eb3e4f438..9cf5e911a9d 100644 --- a/substrate/frame/offences/Cargo.toml +++ b/substrate/frame/offences/Cargo.toml @@ -25,7 +25,6 @@ frame-system = { workspace = true } pallet-balances = { workspace = true } sp-runtime = { workspace = true } sp-staking = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true, default-features = true } @@ -45,7 +44,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-support/runtime-benchmarks", diff --git a/substrate/frame/offences/benchmarking/Cargo.toml b/substrate/frame/offences/benchmarking/Cargo.toml index 037812b3ed1..eb97eb3d413 100644 --- a/substrate/frame/offences/benchmarking/Cargo.toml +++ b/substrate/frame/offences/benchmarking/Cargo.toml @@ -31,7 +31,6 @@ pallet-session = { workspace = true } pallet-staking = { workspace = true } sp-runtime = { workspace = true } sp-staking = { workspace = true } -sp-std = { workspace = true } log = { workspace = true } [dev-dependencies] @@ -62,7 +61,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/offences/benchmarking/src/inner.rs b/substrate/frame/offences/benchmarking/src/inner.rs index 9aa88f7a0d6..b16e5be653d 100644 --- a/substrate/frame/offences/benchmarking/src/inner.rs +++ b/substrate/frame/offences/benchmarking/src/inner.rs @@ -17,7 +17,7 @@ //! Offences pallet benchmarking. -use sp_std::{prelude::*, vec}; +use alloc::{vec, vec::Vec}; use frame_benchmarking::v1::{account, benchmarks}; use frame_support::traits::{Currency, Get}; diff --git a/substrate/frame/offences/benchmarking/src/lib.rs b/substrate/frame/offences/benchmarking/src/lib.rs index b08955a1332..f696546d1f0 100644 --- a/substrate/frame/offences/benchmarking/src/lib.rs +++ b/substrate/frame/offences/benchmarking/src/lib.rs @@ -19,6 +19,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(feature = "runtime-benchmarks")] pub mod inner; diff --git a/substrate/frame/offences/src/lib.rs b/substrate/frame/offences/src/lib.rs index a328b2fee4e..ffea32a1f47 100644 --- a/substrate/frame/offences/src/lib.rs +++ b/substrate/frame/offences/src/lib.rs @@ -26,16 +26,17 @@ pub mod migration; mod mock; mod tests; -use core::marker::PhantomData; +extern crate alloc; +use alloc::vec::Vec; use codec::Encode; +use core::marker::PhantomData; use frame_support::weights::Weight; use sp_runtime::{traits::Hash, Perbill}; use sp_staking::{ offence::{Kind, Offence, OffenceDetails, OffenceError, OnOffenceHandler, ReportOffence}, SessionIndex, }; -use sp_std::prelude::*; pub use pallet::*; diff --git a/substrate/frame/offences/src/migration.rs b/substrate/frame/offences/src/migration.rs index 199f4749136..abf8acd9487 100644 --- a/substrate/frame/offences/src/migration.rs +++ b/substrate/frame/offences/src/migration.rs @@ -16,6 +16,7 @@ // limitations under the License. use super::{Config, Kind, OffenceDetails, Pallet, Perbill, SessionIndex, LOG_TARGET}; +use alloc::vec::Vec; use frame_support::{ pallet_prelude::ValueQuery, storage_alias, @@ -24,7 +25,6 @@ use frame_support::{ Twox64Concat, }; use sp_staking::offence::OnOffenceHandler; -use sp_std::vec::Vec; #[cfg(feature = "try-runtime")] use frame_support::ensure; @@ -49,7 +49,7 @@ pub mod v1 { use super::*; - pub struct MigrateToV1(sp_std::marker::PhantomData); + pub struct MigrateToV1(core::marker::PhantomData); impl OnRuntimeUpgrade for MigrateToV1 { #[cfg(feature = "try-runtime")] fn pre_upgrade() -> Result, TryRuntimeError> { diff --git a/substrate/frame/paged-list/Cargo.toml b/substrate/frame/paged-list/Cargo.toml index f5a3a2e5bae..597bdd37f57 100644 --- a/substrate/frame/paged-list/Cargo.toml +++ b/substrate/frame/paged-list/Cargo.toml @@ -24,7 +24,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-metadata-ir = { optional = true, workspace = true } @@ -42,7 +41,6 @@ std = [ "sp-io/std", "sp-metadata-ir/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/paged-list/src/lib.rs b/substrate/frame/paged-list/src/lib.rs index ddeed174f34..ed68dac63be 100644 --- a/substrate/frame/paged-list/src/lib.rs +++ b/substrate/frame/paged-list/src/lib.rs @@ -58,7 +58,7 @@ //! //! ## Low Level / Implementation Details //! -//! Implementation details are documented in [`paged_list::StoragePagedList`]. +//! Implementation details are documented in [`paged_list::StoragePagedList`]. //! All storage entries are prefixed with a unique prefix that is generated by [`ListPrefix`]. #![cfg_attr(not(feature = "std"), no_std)] @@ -69,6 +69,8 @@ pub mod mock; mod paged_list; mod tests; +extern crate alloc; + use codec::FullCodec; use frame_support::{ pallet_prelude::StorageList, diff --git a/substrate/frame/paged-list/src/paged_list.rs b/substrate/frame/paged-list/src/paged_list.rs index eecc728cd62..bbd889e2521 100644 --- a/substrate/frame/paged-list/src/paged_list.rs +++ b/substrate/frame/paged-list/src/paged_list.rs @@ -23,6 +23,7 @@ #![deny(missing_docs)] #![deny(unsafe_code)] +use alloc::vec::Vec; use codec::{Decode, Encode, EncodeLike, FullCodec}; use core::marker::PhantomData; use frame_support::{ @@ -32,7 +33,6 @@ use frame_support::{ CloneNoBound, DebugNoBound, DefaultNoBound, EqNoBound, PartialEqNoBound, }; use sp_runtime::traits::Saturating; -use sp_std::prelude::*; pub type PageIndex = u32; pub type ValueIndex = u32; @@ -177,7 +177,7 @@ pub struct Page { /// The index of the page. index: PageIndex, /// The remaining values of the page, to be drained by [`Page::next`]. - values: sp_std::iter::Skip>, + values: core::iter::Skip>, } impl Page { @@ -188,7 +188,7 @@ impl Page { ) -> Option { let key = page_key::(index); let values = sp_io::storage::get(&key) - .and_then(|raw| sp_std::vec::Vec::::decode(&mut &raw[..]).ok())?; + .and_then(|raw| alloc::vec::Vec::::decode(&mut &raw[..]).ok())?; if values.is_empty() { // Don't create empty pages. return None diff --git a/substrate/frame/parameters/Cargo.toml b/substrate/frame/parameters/Cargo.toml index b993347d246..a97ba1172a5 100644 --- a/substrate/frame/parameters/Cargo.toml +++ b/substrate/frame/parameters/Cargo.toml @@ -18,7 +18,6 @@ frame-support = { features = ["experimental"], workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } frame-benchmarking = { optional = true, workspace = true } [dev-dependencies] @@ -38,7 +37,6 @@ std = [ "serde", "sp-core/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/preimage/Cargo.toml b/substrate/frame/preimage/Cargo.toml index ee572b189b2..425c4e81aa7 100644 --- a/substrate/frame/preimage/Cargo.toml +++ b/substrate/frame/preimage/Cargo.toml @@ -20,7 +20,6 @@ frame-system = { workspace = true } sp-core = { optional = true, workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } log = { workspace = true } [dev-dependencies] @@ -48,7 +47,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/preimage/src/benchmarking.rs b/substrate/frame/preimage/src/benchmarking.rs index f2b76a7999d..2d3bec16b81 100644 --- a/substrate/frame/preimage/src/benchmarking.rs +++ b/substrate/frame/preimage/src/benchmarking.rs @@ -18,11 +18,11 @@ //! Preimage pallet benchmarking. use super::*; +use alloc::vec; use frame_benchmarking::v1::{account, benchmarks, whitelisted_caller, BenchmarkError}; use frame_support::assert_ok; use frame_system::RawOrigin; use sp_runtime::traits::Bounded; -use sp_std::{prelude::*, vec}; use crate::Pallet as Preimage; diff --git a/substrate/frame/preimage/src/lib.rs b/substrate/frame/preimage/src/lib.rs index dd323a12b8f..30056fc6d9a 100644 --- a/substrate/frame/preimage/src/lib.rs +++ b/substrate/frame/preimage/src/lib.rs @@ -37,11 +37,13 @@ mod mock; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{borrow::Cow, vec::Vec}; use sp_runtime::{ traits::{BadOrigin, Hash, Saturating}, Perbill, }; -use sp_std::{borrow::Cow, prelude::*}; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ diff --git a/substrate/frame/preimage/src/migration.rs b/substrate/frame/preimage/src/migration.rs index a86109f892a..e38483ee68c 100644 --- a/substrate/frame/preimage/src/migration.rs +++ b/substrate/frame/preimage/src/migration.rs @@ -18,11 +18,11 @@ //! Storage migrations for the preimage pallet. use super::*; +use alloc::collections::btree_map::BTreeMap; use frame_support::{ storage_alias, traits::{ConstU32, OnRuntimeUpgrade}, }; -use sp_std::collections::btree_map::BTreeMap; #[cfg(feature = "try-runtime")] use frame_support::ensure; @@ -79,7 +79,7 @@ pub mod v1 { /// /// Note: This needs to be run with the same hashing algorithm as before /// since it is not re-hashing the preimages. - pub struct Migration(sp_std::marker::PhantomData); + pub struct Migration(core::marker::PhantomData); impl OnRuntimeUpgrade for Migration { #[cfg(feature = "try-runtime")] diff --git a/substrate/frame/proxy/Cargo.toml b/substrate/frame/proxy/Cargo.toml index 6b4251e1bcc..af2427da380 100644 --- a/substrate/frame/proxy/Cargo.toml +++ b/substrate/frame/proxy/Cargo.toml @@ -23,7 +23,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -43,7 +42,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/proxy/src/benchmarking.rs b/substrate/frame/proxy/src/benchmarking.rs index e0d14163d21..4081af49c24 100644 --- a/substrate/frame/proxy/src/benchmarking.rs +++ b/substrate/frame/proxy/src/benchmarking.rs @@ -21,6 +21,7 @@ use super::*; use crate::Pallet as Proxy; +use alloc::{boxed::Box, vec}; use frame_benchmarking::v1::{account, benchmarks, whitelisted_caller}; use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin}; use sp_runtime::traits::Bounded; diff --git a/substrate/frame/proxy/src/lib.rs b/substrate/frame/proxy/src/lib.rs index 2b3fac5f59e..d681088165c 100644 --- a/substrate/frame/proxy/src/lib.rs +++ b/substrate/frame/proxy/src/lib.rs @@ -33,6 +33,9 @@ mod benchmarking; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{boxed::Box, vec}; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ dispatch::GetDispatchInfo, @@ -47,7 +50,6 @@ use sp_runtime::{ traits::{Dispatchable, Hash, Saturating, StaticLookup, TrailingZeroInput, Zero}, DispatchError, DispatchResult, RuntimeDebug, }; -use sp_std::prelude::*; pub use weights::WeightInfo; type CallHashOf = <::CallHasher as Hash>::Output; diff --git a/substrate/frame/proxy/src/tests.rs b/substrate/frame/proxy/src/tests.rs index 3ed61fbedaa..3edb96026a8 100644 --- a/substrate/frame/proxy/src/tests.rs +++ b/substrate/frame/proxy/src/tests.rs @@ -22,6 +22,7 @@ use super::*; use crate as proxy; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; use frame_support::{ assert_noop, assert_ok, derive_impl, diff --git a/substrate/frame/ranked-collective/Cargo.toml b/substrate/frame/ranked-collective/Cargo.toml index be48d5cad40..dd9b466e0f9 100644 --- a/substrate/frame/ranked-collective/Cargo.toml +++ b/substrate/frame/ranked-collective/Cargo.toml @@ -26,7 +26,6 @@ sp-arithmetic = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } impl-trait-for-tuples = { workspace = true } [features] @@ -42,7 +41,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/ranked-collective/src/benchmarking.rs b/substrate/frame/ranked-collective/src/benchmarking.rs index 462f55a238d..dc7f4aaca77 100644 --- a/substrate/frame/ranked-collective/src/benchmarking.rs +++ b/substrate/frame/ranked-collective/src/benchmarking.rs @@ -20,6 +20,7 @@ use super::*; #[allow(unused_imports)] use crate::Pallet as RankedCollective; +use alloc::vec::Vec; use frame_benchmarking::v1::{ account, benchmarks_instance_pallet, whitelisted_caller, BenchmarkError, diff --git a/substrate/frame/ranked-collective/src/lib.rs b/substrate/frame/ranked-collective/src/lib.rs index 53d5f0c6662..e34cf3d8df7 100644 --- a/substrate/frame/ranked-collective/src/lib.rs +++ b/substrate/frame/ranked-collective/src/lib.rs @@ -40,7 +40,10 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + use codec::{Decode, Encode, MaxEncodedLen}; +use core::marker::PhantomData; use scale_info::TypeInfo; use sp_arithmetic::traits::Saturating; use sp_runtime::{ @@ -48,7 +51,6 @@ use sp_runtime::{ ArithmeticError::Overflow, DispatchError, Perbill, RuntimeDebug, }; -use sp_std::{marker::PhantomData, prelude::*}; use frame_support::{ dispatch::{DispatchResultWithPostInfo, PostDispatchInfo}, diff --git a/substrate/frame/recovery/Cargo.toml b/substrate/frame/recovery/Cargo.toml index 3b3a382fe6d..42493b43510 100644 --- a/substrate/frame/recovery/Cargo.toml +++ b/substrate/frame/recovery/Cargo.toml @@ -23,7 +23,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -49,7 +48,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/recovery/src/benchmarking.rs b/substrate/frame/recovery/src/benchmarking.rs index 72f77336212..b7639742a62 100644 --- a/substrate/frame/recovery/src/benchmarking.rs +++ b/substrate/frame/recovery/src/benchmarking.rs @@ -20,6 +20,7 @@ use super::*; use crate::Pallet; +use alloc::{boxed::Box, vec, vec::Vec}; use frame_benchmarking::v1::{account, benchmarks, whitelisted_caller}; use frame_support::traits::{Currency, Get}; use frame_system::RawOrigin; diff --git a/substrate/frame/recovery/src/lib.rs b/substrate/frame/recovery/src/lib.rs index 5673147c8e0..69be4df971b 100644 --- a/substrate/frame/recovery/src/lib.rs +++ b/substrate/frame/recovery/src/lib.rs @@ -150,13 +150,15 @@ // Ensure we're `no_std` when compiling for Wasm. #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{boxed::Box, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; use sp_runtime::{ traits::{CheckedAdd, CheckedMul, Dispatchable, SaturatedConversion, StaticLookup}, RuntimeDebug, }; -use sp_std::prelude::*; use frame_support::{ dispatch::{GetDispatchInfo, PostDispatchInfo}, diff --git a/substrate/frame/referenda/Cargo.toml b/substrate/frame/referenda/Cargo.toml index eb30fef7894..578486714d6 100644 --- a/substrate/frame/referenda/Cargo.toml +++ b/substrate/frame/referenda/Cargo.toml @@ -28,7 +28,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } log = { workspace = true } [dev-dependencies] @@ -55,7 +54,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "assert_matches", diff --git a/substrate/frame/referenda/src/benchmarking.rs b/substrate/frame/referenda/src/benchmarking.rs index 47d43cc0600..67ac82787d3 100644 --- a/substrate/frame/referenda/src/benchmarking.rs +++ b/substrate/frame/referenda/src/benchmarking.rs @@ -19,6 +19,7 @@ use super::*; use crate::Pallet as Referenda; +use alloc::{vec, vec::Vec}; use assert_matches::assert_matches; use frame_benchmarking::v1::{ account, benchmarks_instance_pallet, whitelist_account, BenchmarkError, @@ -632,7 +633,7 @@ benchmarks_instance_pallet! { } set_some_metadata { - use sp_std::borrow::Cow; + use alloc::borrow::Cow; let origin = T::SubmitOrigin::try_successful_origin(&RawOrigin::Root.into()) .expect("SubmitOrigin has no successful origin required for the benchmark"); let index = create_referendum::(origin.clone()); @@ -643,7 +644,7 @@ benchmarks_instance_pallet! { } clear_metadata { - use sp_std::borrow::Cow; + use alloc::borrow::Cow; let origin = T::SubmitOrigin::try_successful_origin(&RawOrigin::Root.into()) .expect("SubmitOrigin has no successful origin required for the benchmark"); let index = create_referendum::(origin.clone()); diff --git a/substrate/frame/referenda/src/lib.rs b/substrate/frame/referenda/src/lib.rs index 0cdf450d3b6..e72dd7f11cb 100644 --- a/substrate/frame/referenda/src/lib.rs +++ b/substrate/frame/referenda/src/lib.rs @@ -64,7 +64,11 @@ #![recursion_limit = "256"] #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::boxed::Box; use codec::{Codec, Encode}; +use core::fmt::Debug; use frame_support::{ dispatch::DispatchResult, ensure, @@ -84,7 +88,6 @@ use sp_runtime::{ traits::{AtLeast32BitUnsigned, Bounded, Dispatchable, One, Saturating, Zero}, DispatchError, Perbill, }; -use sp_std::{fmt::Debug, prelude::*}; mod branch; pub mod migration; @@ -102,6 +105,7 @@ pub use self::{ }, weights::WeightInfo, }; +pub use alloc::vec::Vec; #[cfg(test)] mod mock; @@ -112,7 +116,6 @@ mod tests; pub mod benchmarking; pub use frame_support::traits::Get; -pub use sp_std::vec::Vec; #[macro_export] macro_rules! impl_tracksinfo_get { diff --git a/substrate/frame/referenda/src/types.rs b/substrate/frame/referenda/src/types.rs index b3c583322cc..1039b288b2a 100644 --- a/substrate/frame/referenda/src/types.rs +++ b/substrate/frame/referenda/src/types.rs @@ -515,7 +515,7 @@ impl Curve { #[cfg(feature = "std")] impl Debug for Curve { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { Self::LinearDecreasing { length, floor, ceil } => { write!( diff --git a/substrate/frame/remark/Cargo.toml b/substrate/frame/remark/Cargo.toml index 44cf5ebc3b4..efc9917428c 100644 --- a/substrate/frame/remark/Cargo.toml +++ b/substrate/frame/remark/Cargo.toml @@ -25,7 +25,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-core = { workspace = true } @@ -48,7 +47,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/remark/src/benchmarking.rs b/substrate/frame/remark/src/benchmarking.rs index 83194683496..15b72b4748d 100644 --- a/substrate/frame/remark/src/benchmarking.rs +++ b/substrate/frame/remark/src/benchmarking.rs @@ -20,9 +20,9 @@ #![cfg(feature = "runtime-benchmarks")] use super::*; +use alloc::vec; use frame_benchmarking::v1::{benchmarks, whitelisted_caller}; use frame_system::{EventRecord, Pallet as System, RawOrigin}; -use sp_std::*; #[cfg(test)] use crate::Pallet as Remark; diff --git a/substrate/frame/remark/src/lib.rs b/substrate/frame/remark/src/lib.rs index 8ca3cd395af..eae8e0b83f5 100644 --- a/substrate/frame/remark/src/lib.rs +++ b/substrate/frame/remark/src/lib.rs @@ -28,7 +28,9 @@ mod mock; #[cfg(test)] mod tests; -use sp_std::prelude::*; +extern crate alloc; + +use alloc::vec::Vec; // Re-export pallet items so that they can be accessed from the crate namespace. pub use pallet::*; diff --git a/substrate/frame/root-offences/src/mock.rs b/substrate/frame/root-offences/src/mock.rs index 3c758b91d52..ab43b723e8a 100644 --- a/substrate/frame/root-offences/src/mock.rs +++ b/substrate/frame/root-offences/src/mock.rs @@ -18,6 +18,7 @@ use super::*; use crate as root_offences; +use alloc::collections::btree_map::BTreeMap; use frame_election_provider_support::{ bounds::{ElectionBounds, ElectionBoundsBuilder}, onchain, SequentialPhragmen, @@ -29,7 +30,6 @@ use frame_support::{ use pallet_staking::StakerStatus; use sp_runtime::{curve::PiecewiseLinear, testing::UintAuthorityId, traits::Zero, BuildStorage}; use sp_staking::{EraIndex, SessionIndex}; -use sp_std::collections::btree_map::BTreeMap; type Block = frame_system::mocking::MockBlock; type AccountId = u64; diff --git a/substrate/frame/root-testing/Cargo.toml b/substrate/frame/root-testing/Cargo.toml index 38d91c8104b..96d86136262 100644 --- a/substrate/frame/root-testing/Cargo.toml +++ b/substrate/frame/root-testing/Cargo.toml @@ -23,7 +23,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] try-runtime = [ @@ -40,5 +39,4 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] diff --git a/substrate/frame/safe-mode/Cargo.toml b/substrate/frame/safe-mode/Cargo.toml index 749c4bcdc70..b704818f1ad 100644 --- a/substrate/frame/safe-mode/Cargo.toml +++ b/substrate/frame/safe-mode/Cargo.toml @@ -23,7 +23,6 @@ frame-system = { workspace = true } scale-info = { features = ["derive"], workspace = true } sp-arithmetic = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } pallet-balances = { optional = true, workspace = true } pallet-utility = { optional = true, workspace = true } pallet-proxy = { optional = true, workspace = true } @@ -51,7 +50,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/salary/Cargo.toml b/substrate/frame/salary/Cargo.toml index c9b72da2e64..9121f59ff46 100644 --- a/substrate/frame/salary/Cargo.toml +++ b/substrate/frame/salary/Cargo.toml @@ -26,7 +26,6 @@ sp-arithmetic = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } pallet-ranked-collective = { optional = true, workspace = true } [features] @@ -44,7 +43,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/sassafras/Cargo.toml b/substrate/frame/sassafras/Cargo.toml index ecd03c47db6..0eefca57849 100644 --- a/substrate/frame/sassafras/Cargo.toml +++ b/substrate/frame/sassafras/Cargo.toml @@ -26,7 +26,6 @@ log = { workspace = true } sp-consensus-sassafras = { features = ["serde"], workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] array-bytes = { workspace = true, default-features = true } @@ -45,7 +44,6 @@ std = [ "sp-consensus-sassafras/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/sassafras/src/lib.rs b/substrate/frame/sassafras/src/lib.rs index d521ed9dd91..285758afbe6 100644 --- a/substrate/frame/sassafras/src/lib.rs +++ b/substrate/frame/sassafras/src/lib.rs @@ -47,10 +47,13 @@ #![warn(unused_must_use, unsafe_code, unused_variables, unused_imports, missing_docs)] #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + use codec::{Decode, Encode, MaxEncodedLen}; use log::{debug, error, trace, warn}; use scale_info::TypeInfo; +use alloc::vec::Vec; use frame_support::{ dispatch::{DispatchResultWithPostInfo, Pays}, traits::{Defensive, Get}, @@ -72,7 +75,6 @@ use sp_runtime::{ traits::{One, Zero}, BoundToRuntimeAppPublic, }; -use sp_std::prelude::Vec; #[cfg(feature = "runtime-benchmarks")] mod benchmarking; @@ -288,7 +290,7 @@ pub mod pallet { pub epoch_config: EpochConfiguration, /// Phantom config #[serde(skip)] - pub _phantom: sp_std::marker::PhantomData, + pub _phantom: core::marker::PhantomData, } #[pallet::genesis_build] diff --git a/substrate/frame/scheduler/Cargo.toml b/substrate/frame/scheduler/Cargo.toml index 0a6b646fc8c..29aaaec9aa4 100644 --- a/substrate/frame/scheduler/Cargo.toml +++ b/substrate/frame/scheduler/Cargo.toml @@ -21,7 +21,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-weights = { workspace = true } docify = { workspace = true } @@ -51,7 +50,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-weights/std", ] try-runtime = [ diff --git a/substrate/frame/scheduler/src/benchmarking.rs b/substrate/frame/scheduler/src/benchmarking.rs index 884f7800038..d0a14fc73d6 100644 --- a/substrate/frame/scheduler/src/benchmarking.rs +++ b/substrate/frame/scheduler/src/benchmarking.rs @@ -18,6 +18,7 @@ //! Scheduler pallet benchmarking. use super::*; +use alloc::vec; use frame_benchmarking::v1::{account, benchmarks, BenchmarkError}; use frame_support::{ ensure, @@ -25,7 +26,6 @@ use frame_support::{ weights::WeightMeter, }; use frame_system::{pallet_prelude::BlockNumberFor, RawOrigin}; -use sp_std::{prelude::*, vec}; use crate::Pallet as Scheduler; use frame_system::{Call as SystemCall, EventRecord}; diff --git a/substrate/frame/scheduler/src/lib.rs b/substrate/frame/scheduler/src/lib.rs index d19a1e0001d..3eecf6d6f9e 100644 --- a/substrate/frame/scheduler/src/lib.rs +++ b/substrate/frame/scheduler/src/lib.rs @@ -85,7 +85,11 @@ mod mock; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{boxed::Box, vec::Vec}; use codec::{Decode, Encode, MaxEncodedLen}; +use core::{borrow::Borrow, cmp::Ordering, marker::PhantomData}; use frame_support::{ dispatch::{DispatchResult, GetDispatchInfo, Parameter, RawOrigin}, ensure, @@ -106,7 +110,6 @@ use sp_runtime::{ traits::{BadOrigin, Dispatchable, One, Saturating, Zero}, BoundedVec, DispatchError, RuntimeDebug, }; -use sp_std::{borrow::Borrow, cmp::Ordering, marker::PhantomData, prelude::*}; pub use pallet::*; pub use weights::WeightInfo; diff --git a/substrate/frame/scheduler/src/migration.rs b/substrate/frame/scheduler/src/migration.rs index c2e956035a7..a304689a120 100644 --- a/substrate/frame/scheduler/src/migration.rs +++ b/substrate/frame/scheduler/src/migration.rs @@ -305,8 +305,8 @@ pub mod v4 { mod test { use super::*; use crate::mock::*; + use alloc::borrow::Cow; use frame_support::Hashable; - use sp_std::borrow::Cow; use substrate_test_utils::assert_eq_uvec; #[test] diff --git a/substrate/frame/scored-pool/Cargo.toml b/substrate/frame/scored-pool/Cargo.toml index 69ecd527eb7..132799ead62 100644 --- a/substrate/frame/scored-pool/Cargo.toml +++ b/substrate/frame/scored-pool/Cargo.toml @@ -22,7 +22,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -39,7 +38,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/scored-pool/src/lib.rs b/substrate/frame/scored-pool/src/lib.rs index 2bf70cbc574..c4464bbbfac 100644 --- a/substrate/frame/scored-pool/src/lib.rs +++ b/substrate/frame/scored-pool/src/lib.rs @@ -98,7 +98,11 @@ mod mock; #[cfg(test)] mod tests; +extern crate alloc; + +use alloc::vec::Vec; use codec::{FullCodec, MaxEncodedLen}; +use core::{cmp::Reverse, fmt::Debug}; use frame_support::{ ensure, traits::{ChangeMembers, Currency, Get, InitializeMembers, ReservableCurrency}, @@ -106,7 +110,6 @@ use frame_support::{ }; pub use pallet::*; use sp_runtime::traits::{AtLeast32Bit, StaticLookup, Zero}; -use sp_std::{fmt::Debug, prelude::*}; type BalanceOf = <>::Currency as Currency<::AccountId>>::Balance; diff --git a/substrate/frame/session/Cargo.toml b/substrate/frame/session/Cargo.toml index c7b499548bd..09bb93d8c1d 100644 --- a/substrate/frame/session/Cargo.toml +++ b/substrate/frame/session/Cargo.toml @@ -28,7 +28,6 @@ sp-io = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-session = { workspace = true } sp-staking = { features = ["serde"], workspace = true } -sp-std = { workspace = true } sp-trie = { optional = true, workspace = true } sp-state-machine = { workspace = true } @@ -48,7 +47,6 @@ std = [ "sp-session/std", "sp-staking/std", "sp-state-machine/std", - "sp-std/std", "sp-trie/std", ] try-runtime = [ diff --git a/substrate/frame/session/benchmarking/Cargo.toml b/substrate/frame/session/benchmarking/Cargo.toml index ba7f7acfd99..9ca3549f681 100644 --- a/substrate/frame/session/benchmarking/Cargo.toml +++ b/substrate/frame/session/benchmarking/Cargo.toml @@ -25,7 +25,6 @@ pallet-session = { workspace = true } pallet-staking = { workspace = true } sp-runtime = { workspace = true } sp-session = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] codec = { features = ["derive"], workspace = true, default-features = true } @@ -53,7 +52,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-session/std", - "sp-std/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/session/benchmarking/src/inner.rs b/substrate/frame/session/benchmarking/src/inner.rs index d86c5d9ad27..f08e10f0786 100644 --- a/substrate/frame/session/benchmarking/src/inner.rs +++ b/substrate/frame/session/benchmarking/src/inner.rs @@ -18,8 +18,8 @@ //! Benchmarks for the Session Pallet. // This is separated into its own crate due to cyclic dependency issues. +use alloc::{vec, vec::Vec}; use sp_runtime::traits::{One, StaticLookup, TrailingZeroInput}; -use sp_std::{prelude::*, vec}; use codec::Decode; use frame_benchmarking::v1::benchmarks; diff --git a/substrate/frame/session/benchmarking/src/lib.rs b/substrate/frame/session/benchmarking/src/lib.rs index b08955a1332..f696546d1f0 100644 --- a/substrate/frame/session/benchmarking/src/lib.rs +++ b/substrate/frame/session/benchmarking/src/lib.rs @@ -19,6 +19,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(feature = "runtime-benchmarks")] pub mod inner; diff --git a/substrate/frame/session/src/historical/mod.rs b/substrate/frame/session/src/historical/mod.rs index 618497e3d54..fac580b49b3 100644 --- a/substrate/frame/session/src/historical/mod.rs +++ b/substrate/frame/session/src/historical/mod.rs @@ -30,14 +30,15 @@ pub mod offchain; pub mod onchain; mod shared; +use alloc::vec::Vec; use codec::{Decode, Encode}; +use core::fmt::Debug; use sp_runtime::{ traits::{Convert, OpaqueKeys}, KeyTypeId, }; use sp_session::{MembershipProof, ValidatorCount}; use sp_staking::SessionIndex; -use sp_std::{fmt::Debug, prelude::*}; use sp_trie::{ trie_types::{TrieDBBuilder, TrieDBMutBuilderV0}, LayoutV0, MemoryDB, Recorder, StorageProof, Trie, TrieMut, TrieRecorder, @@ -103,7 +104,7 @@ impl Pallet { None => return, // nothing to prune. }; - let up_to = sp_std::cmp::min(up_to, end); + let up_to = core::cmp::min(up_to, end); if up_to < start { return // out of bounds. harmless. @@ -168,7 +169,7 @@ pub trait SessionManager: /// An `SessionManager` implementation that wraps an inner `I` and also /// sets the historical trie root of the ending session. -pub struct NoteHistoricalRoot(sp_std::marker::PhantomData<(T, I)>); +pub struct NoteHistoricalRoot(core::marker::PhantomData<(T, I)>); impl> NoteHistoricalRoot { fn do_new_session(new_index: SessionIndex, is_genesis: bool) -> Option> { @@ -374,6 +375,7 @@ pub(crate) mod tests { use crate::mock::{ force_new_session, set_next_validators, NextValidators, Session, System, Test, }; + use alloc::vec; use sp_runtime::{key_types::DUMMY, testing::UintAuthorityId, BuildStorage}; use sp_state_machine::BasicExternalities; diff --git a/substrate/frame/session/src/historical/offchain.rs b/substrate/frame/session/src/historical/offchain.rs index 95f4d762949..685a0be8e19 100644 --- a/substrate/frame/session/src/historical/offchain.rs +++ b/substrate/frame/session/src/historical/offchain.rs @@ -23,12 +23,12 @@ //! required data to the offchain validator set. This is used in conjunction with [`ProvingTrie`] //! and the off-chain indexing API. +use alloc::vec::Vec; use sp_runtime::{ offchain::storage::{MutateStorageError, StorageRetrievalError, StorageValueRef}, KeyTypeId, }; use sp_session::MembershipProof; -use sp_std::prelude::*; use super::{shared, Config, IdentificationTuple, ProvingTrie}; use crate::{Pallet as SessionModule, SessionIndex}; @@ -60,9 +60,9 @@ impl ValidatorSet { /// Implement conversion into iterator for usage /// with [ProvingTrie](super::ProvingTrie::generate_for). -impl sp_std::iter::IntoIterator for ValidatorSet { +impl core::iter::IntoIterator for ValidatorSet { type Item = (T::ValidatorId, T::FullIdentification); - type IntoIter = sp_std::vec::IntoIter; + type IntoIter = alloc::vec::IntoIter; fn into_iter(self) -> Self::IntoIter { self.validator_set.into_iter() } diff --git a/substrate/frame/session/src/historical/onchain.rs b/substrate/frame/session/src/historical/onchain.rs index 97a7f02bd09..a9eb18474b8 100644 --- a/substrate/frame/session/src/historical/onchain.rs +++ b/substrate/frame/session/src/historical/onchain.rs @@ -17,9 +17,9 @@ //! On-chain logic to store a validator-set for deferred validation using an off-chain worker. +use alloc::vec::Vec; use codec::Encode; use sp_runtime::traits::Convert; -use sp_std::prelude::*; use super::{shared, Config as HistoricalConfig}; use crate::{Config as SessionConfig, Pallet as SessionModule, SessionIndex}; diff --git a/substrate/frame/session/src/historical/shared.rs b/substrate/frame/session/src/historical/shared.rs index 297385dfb42..06b25ec99a4 100644 --- a/substrate/frame/session/src/historical/shared.rs +++ b/substrate/frame/session/src/historical/shared.rs @@ -18,9 +18,9 @@ //! Shared logic between on-chain and off-chain components used for slashing using an off-chain //! worker. +use alloc::{borrow::ToOwned, vec::Vec}; use codec::Encode; use sp_staking::SessionIndex; -use sp_std::prelude::*; pub(super) const PREFIX: &[u8] = b"session_historical"; pub(super) const LAST_PRUNE: &[u8] = b"session_historical_last_prune"; diff --git a/substrate/frame/session/src/lib.rs b/substrate/frame/session/src/lib.rs index 9506e98adf7..45f70dfa258 100644 --- a/substrate/frame/session/src/lib.rs +++ b/substrate/frame/session/src/lib.rs @@ -115,7 +115,14 @@ mod mock; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{boxed::Box, vec::Vec}; use codec::{Decode, MaxEncodedLen}; +use core::{ + marker::PhantomData, + ops::{Rem, Sub}, +}; use frame_support::{ dispatch::DispatchResult, ensure, @@ -132,11 +139,6 @@ use sp_runtime::{ ConsensusEngineId, DispatchError, KeyTypeId, Permill, RuntimeAppPublic, }; use sp_staking::SessionIndex; -use sp_std::{ - marker::PhantomData, - ops::{Rem, Sub}, - prelude::*, -}; pub use pallet::*; pub use weights::WeightInfo; @@ -917,7 +919,7 @@ impl frame_support::traits::DisabledValidators for Pallet { /// Wraps the author-scraping logic for consensus engines that can recover /// the canonical index of an author. This then transforms it into the /// registering account-ID of that session key index. -pub struct FindAccountFromAuthorIndex(sp_std::marker::PhantomData<(T, Inner)>); +pub struct FindAccountFromAuthorIndex(core::marker::PhantomData<(T, Inner)>); impl> FindAuthor for FindAccountFromAuthorIndex diff --git a/substrate/frame/society/Cargo.toml b/substrate/frame/society/Cargo.toml index 6582d47f194..b6fa70c42ef 100644 --- a/substrate/frame/society/Cargo.toml +++ b/substrate/frame/society/Cargo.toml @@ -21,7 +21,6 @@ rand_chacha = { workspace = true } scale-info = { features = ["derive"], workspace = true } codec = { features = ["derive"], workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } sp-arithmetic = { workspace = true } sp-runtime = { workspace = true } @@ -52,7 +51,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking", diff --git a/substrate/frame/society/src/benchmarking.rs b/substrate/frame/society/src/benchmarking.rs index 20af6e35ada..8c3d2bf32ce 100644 --- a/substrate/frame/society/src/benchmarking.rs +++ b/substrate/frame/society/src/benchmarking.rs @@ -24,6 +24,7 @@ use super::*; use frame_benchmarking::{account, benchmarks_instance_pallet, whitelisted_caller}; use frame_system::RawOrigin; +use alloc::vec; use sp_runtime::traits::Bounded; use crate::Pallet as Society; diff --git a/substrate/frame/society/src/lib.rs b/substrate/frame/society/src/lib.rs index 5bce245f73f..b4c5c88af3d 100644 --- a/substrate/frame/society/src/lib.rs +++ b/substrate/frame/society/src/lib.rs @@ -257,6 +257,9 @@ pub mod weights; pub mod migrations; +extern crate alloc; + +use alloc::vec::Vec; use frame_support::{ impl_ensure_origin_with_arg_ignoring_arg, pallet_prelude::*, @@ -282,7 +285,6 @@ use sp_runtime::{ ArithmeticError::Overflow, Percent, RuntimeDebug, }; -use sp_std::prelude::*; pub use weights::WeightInfo; @@ -1362,7 +1364,7 @@ pub mod pallet { } /// Simple ensure origin struct to filter for the founder account. -pub struct EnsureFounder(sp_std::marker::PhantomData); +pub struct EnsureFounder(core::marker::PhantomData); impl EnsureOrigin<::RuntimeOrigin> for EnsureFounder { type Success = T::AccountId; fn try_origin(o: T::RuntimeOrigin) -> Result { diff --git a/substrate/frame/society/src/migrations.rs b/substrate/frame/society/src/migrations.rs index 7ded1f84f58..396ed787c78 100644 --- a/substrate/frame/society/src/migrations.rs +++ b/substrate/frame/society/src/migrations.rs @@ -18,6 +18,7 @@ //! # Migrations for Society Pallet use super::*; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; use frame_support::traits::{Defensive, DefensiveOption, Instance, UncheckedOnRuntimeUpgrade}; diff --git a/substrate/frame/src/lib.rs b/substrate/frame/src/lib.rs index e09d8fc4fa1..3836e71cb00 100644 --- a/substrate/frame/src/lib.rs +++ b/substrate/frame/src/lib.rs @@ -132,10 +132,6 @@ pub mod prelude { #[doc(no_inline)] pub use frame_system::pallet_prelude::*; - /// All of the std alternative types. - #[doc(no_inline)] - pub use sp_std::prelude::*; - /// All FRAME-relevant derive macros. #[doc(no_inline)] pub use super::derive::*; @@ -164,7 +160,6 @@ pub mod testing_prelude { pub use frame_system::{self, mocking::*}; pub use sp_io::TestExternalities as TestState; - pub use sp_std::if_std; } /// All of the types and tools needed to build FRAME-based runtimes. @@ -347,13 +342,13 @@ pub mod primitives { /// This is already part of the [`prelude`]. pub mod derive { pub use codec::{Decode, Encode}; + pub use core::fmt::Debug; pub use frame_support::{ CloneNoBound, DebugNoBound, DefaultNoBound, EqNoBound, OrdNoBound, PartialEqNoBound, PartialOrdNoBound, RuntimeDebugNoBound, }; pub use scale_info::TypeInfo; pub use sp_runtime::RuntimeDebug; - pub use sp_std::fmt::Debug; } /// Access to all of the dependencies of this crate. In case the re-exports are not enough, this @@ -373,7 +368,6 @@ pub mod deps { pub use sp_core; pub use sp_io; pub use sp_runtime; - pub use sp_std; pub use codec; pub use scale_info; diff --git a/substrate/frame/staking/Cargo.toml b/substrate/frame/staking/Cargo.toml index afae4652a4e..57eeec54363 100644 --- a/substrate/frame/staking/Cargo.toml +++ b/substrate/frame/staking/Cargo.toml @@ -24,7 +24,6 @@ scale-info = { features = ["derive", "serde"], workspace = true } sp-io = { workspace = true } sp-runtime = { features = ["serde"], workspace = true } sp-staking = { features = ["serde"], workspace = true } -sp-std = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-session = { features = [ @@ -74,7 +73,6 @@ std = [ "sp-npos-elections/std", "sp-runtime/std", "sp-staking/std", - "sp-std/std", "sp-tracing/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/staking/src/benchmarking.rs b/substrate/frame/staking/src/benchmarking.rs index 3ed33ffea42..1f8580d7a3e 100644 --- a/substrate/frame/staking/src/benchmarking.rs +++ b/substrate/frame/staking/src/benchmarking.rs @@ -33,7 +33,6 @@ use sp_runtime::{ Perbill, Percent, Saturating, }; use sp_staking::{currency_to_vote::CurrencyToVote, SessionIndex}; -use sp_std::prelude::*; pub use frame_benchmarking::v1::{ account, benchmarks, impl_benchmark_test_suite, whitelist_account, whitelisted_caller, @@ -169,7 +168,7 @@ impl ListScenario { // burn the entire issuance. let i = T::Currency::burn(T::Currency::total_issuance()); - sp_std::mem::forget(i); + core::mem::forget(i); // create accounts with the origin weight diff --git a/substrate/frame/staking/src/ledger.rs b/substrate/frame/staking/src/ledger.rs index 294918376d8..dc4b4fc326b 100644 --- a/substrate/frame/staking/src/ledger.rs +++ b/substrate/frame/staking/src/ledger.rs @@ -36,7 +36,6 @@ use frame_support::{ traits::{Defensive, LockableCurrency}, }; use sp_staking::{StakingAccount, StakingInterface}; -use sp_std::prelude::*; use crate::{ BalanceOf, Bonded, Config, Error, Ledger, Pallet, Payee, RewardDestination, StakingLedger, diff --git a/substrate/frame/staking/src/lib.rs b/substrate/frame/staking/src/lib.rs index 053ecdef2b0..9e59cbd3d0c 100644 --- a/substrate/frame/staking/src/lib.rs +++ b/substrate/frame/staking/src/lib.rs @@ -304,6 +304,9 @@ pub mod weights; mod pallet; +extern crate alloc; + +use alloc::{collections::btree_map::BTreeMap, vec, vec::Vec}; use codec::{Decode, Encode, HasCompact, MaxEncodedLen}; use frame_support::{ defensive, defensive_assert, @@ -325,7 +328,6 @@ use sp_staking::{ StakingAccount, }; pub use sp_staking::{Exposure, IndividualExposure, StakerStatus}; -use sp_std::{collections::btree_map::BTreeMap, prelude::*}; pub use weights::WeightInfo; pub use pallet::{pallet::*, UseNominatorsAndValidatorsMap, UseValidatorsMap}; @@ -674,7 +676,7 @@ impl StakingLedger { // slightly under-slashed, by at most `MaxUnlockingChunks * ED`, which is not a big // deal. slash_from_target = - sp_std::mem::replace(target, Zero::zero()).saturating_add(slash_from_target) + core::mem::replace(target, Zero::zero()).saturating_add(slash_from_target) } self.total = self.total.saturating_sub(slash_from_target); @@ -916,7 +918,7 @@ impl EraPayout for () { /// Adaptor to turn a `PiecewiseLinear` curve definition into an `EraPayout` impl, used for /// backwards compatibility. -pub struct ConvertCurve(sp_std::marker::PhantomData); +pub struct ConvertCurve(core::marker::PhantomData); impl EraPayout for ConvertCurve where Balance: AtLeast32BitUnsigned + Clone + Copy, @@ -974,7 +976,7 @@ impl Default for Forcing { /// A `Convert` implementation that finds the stash of the given controller account, /// if any. -pub struct StashOf(sp_std::marker::PhantomData); +pub struct StashOf(core::marker::PhantomData); impl Convert> for StashOf { fn convert(controller: T::AccountId) -> Option { @@ -987,7 +989,7 @@ impl Convert> for StashOf { /// /// Active exposure is the exposure of the validator set currently validating, i.e. in /// `active_era`. It can differ from the latest planned exposure in `current_era`. -pub struct ExposureOf(sp_std::marker::PhantomData); +pub struct ExposureOf(core::marker::PhantomData); impl Convert>>> for ExposureOf @@ -1000,7 +1002,7 @@ impl Convert /// Filter historical offences out and only allow those from the bonding period. pub struct FilterHistoricalOffences { - _inner: sp_std::marker::PhantomData<(T, R)>, + _inner: core::marker::PhantomData<(T, R)>, } impl ReportOffence @@ -1033,7 +1035,7 @@ where /// Wrapper struct for Era related information. It is not a pure encapsulation as these storage /// items can be accessed directly but nevertheless, its recommended to use `EraInfo` where we /// can and add more functions to it as needed. -pub struct EraInfo(sp_std::marker::PhantomData); +pub struct EraInfo(core::marker::PhantomData); impl EraInfo { /// Returns true if validator has one or more page of era rewards not claimed yet. // Also looks at legacy storage that can be cleaned up after #433. diff --git a/substrate/frame/staking/src/migrations.rs b/substrate/frame/staking/src/migrations.rs index b2ddf77004f..5c9cf861321 100644 --- a/substrate/frame/staking/src/migrations.rs +++ b/substrate/frame/staking/src/migrations.rs @@ -67,7 +67,7 @@ pub mod v15 { // The disabling strategy used by staking pallet type DefaultDisablingStrategy = UpToLimitDisablingStrategy; - pub struct VersionUncheckedMigrateV14ToV15(sp_std::marker::PhantomData); + pub struct VersionUncheckedMigrateV14ToV15(core::marker::PhantomData); impl UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateV14ToV15 { fn on_runtime_upgrade() -> Weight { let mut migrated = v14::OffendingValidators::::take() @@ -382,14 +382,14 @@ pub mod v10 { pub mod v9 { use super::*; #[cfg(feature = "try-runtime")] - use codec::{Decode, Encode}; + use alloc::vec::Vec; #[cfg(feature = "try-runtime")] - use sp_std::vec::Vec; + use codec::{Decode, Encode}; /// Migration implementation that injects all validators into sorted list. /// /// This is only useful for chains that started their `VoterList` just based on nominators. - pub struct InjectValidatorsIntoVoterList(sp_std::marker::PhantomData); + pub struct InjectValidatorsIntoVoterList(core::marker::PhantomData); impl OnRuntimeUpgrade for InjectValidatorsIntoVoterList { fn on_runtime_upgrade() -> Weight { if StorageVersion::::get() == ObsoleteReleases::V8_0_0 { diff --git a/substrate/frame/staking/src/pallet/impls.rs b/substrate/frame/staking/src/pallet/impls.rs index 90374451a3a..b19a127d13c 100644 --- a/substrate/frame/staking/src/pallet/impls.rs +++ b/substrate/frame/staking/src/pallet/impls.rs @@ -48,7 +48,6 @@ use sp_staking::{ StakingAccount::{self, Controller, Stash}, StakingInterface, }; -use sp_std::prelude::*; use crate::{ election_size_tracker::StaticTracker, log, slashing, weights::WeightInfo, ActiveEraInfo, @@ -56,6 +55,7 @@ use crate::{ LedgerIntegrityState, MaxNominationsOf, MaxWinnersOf, Nominations, NominationsQuota, PositiveImbalanceOf, RewardDestination, SessionInterface, StakingLedger, ValidatorPrefs, }; +use alloc::{boxed::Box, vec, vec::Vec}; use super::pallet::*; @@ -1584,14 +1584,14 @@ impl ScoreProvider for Pallet { let imbalance = T::Currency::burn(T::Currency::total_issuance()); // kinda ugly, but gets the job done. The fact that this works here is a HUGE exception. // Don't try this pattern in other places. - sp_std::mem::forget(imbalance); + core::mem::forget(imbalance); } } /// A simple sorted list implementation that does not require any additional pallets. Note, this /// does not provide validators in sorted order. If you desire nominators in a sorted order take /// a look at [`pallet-bags-list`]. -pub struct UseValidatorsMap(sp_std::marker::PhantomData); +pub struct UseValidatorsMap(core::marker::PhantomData); impl SortedListProvider for UseValidatorsMap { type Score = BalanceOf; type Error = (); @@ -1657,7 +1657,7 @@ impl SortedListProvider for UseValidatorsMap { /// A simple voter list implementation that does not require any additional pallets. Note, this /// does not provided nominators in sorted ordered. If you desire nominators in a sorted order take /// a look at [`pallet-bags-list]. -pub struct UseNominatorsAndValidatorsMap(sp_std::marker::PhantomData); +pub struct UseNominatorsAndValidatorsMap(core::marker::PhantomData); impl SortedListProvider for UseNominatorsAndValidatorsMap { type Error = (); type Score = VoteWeight; @@ -1995,7 +1995,7 @@ impl Pallet { /// is resolved, turn warns into check /// failures. fn check_bonded_consistency() -> Result<(), TryRuntimeError> { - use sp_std::collections::btree_set::BTreeSet; + use alloc::collections::btree_set::BTreeSet; let mut count_controller_double = 0; let mut count_double = 0; @@ -2159,8 +2159,8 @@ impl Pallet { /// = exposure.own + exposure.own). /// * Paged exposures metadata (`ErasStakersOverview`) matches the paged exposures state. fn check_paged_exposures() -> Result<(), TryRuntimeError> { + use alloc::collections::btree_map::BTreeMap; use sp_staking::PagedExposureMetadata; - use sp_std::collections::btree_map::BTreeMap; // Sanity check for the paged exposure of the active era. let mut exposures: BTreeMap>> = diff --git a/substrate/frame/staking/src/pallet/mod.rs b/substrate/frame/staking/src/pallet/mod.rs index a76e47edf38..79f9d298ada 100644 --- a/substrate/frame/staking/src/pallet/mod.rs +++ b/substrate/frame/staking/src/pallet/mod.rs @@ -17,6 +17,7 @@ //! Staking FRAME Pallet. +use alloc::vec::Vec; use codec::Codec; use frame_election_provider_support::{ ElectionProvider, ElectionProviderBase, SortedListProvider, VoteWeight, @@ -41,7 +42,6 @@ use sp_staking::{ StakingAccount::{self, Controller, Stash}, StakingInterface, }; -use sp_std::prelude::*; mod impls; @@ -101,7 +101,7 @@ pub mod pallet { + codec::FullCodec + Copy + MaybeSerializeDeserialize - + sp_std::fmt::Debug + + core::fmt::Debug + Default + From + TypeInfo diff --git a/substrate/frame/staking/src/slashing.rs b/substrate/frame/staking/src/slashing.rs index 1fe608cd335..9bc8197c50b 100644 --- a/substrate/frame/staking/src/slashing.rs +++ b/substrate/frame/staking/src/slashing.rs @@ -54,6 +54,7 @@ use crate::{ NominatorSlashInEra, Pallet, Perbill, SessionInterface, SpanSlash, UnappliedSlash, ValidatorSlashInEra, }; +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ ensure, @@ -65,7 +66,6 @@ use sp_runtime::{ DispatchResult, RuntimeDebug, }; use sp_staking::{EraIndex, StakingInterface}; -use sp_std::vec::Vec; /// The proportion of the slashing reward to be paid out on the first slashing detection. /// This is f_1 in the paper. @@ -148,7 +148,7 @@ impl SlashingSpans { SlashingSpan { index, start, length: Some(length) } }); - sp_std::iter::once(last).chain(prior) + core::iter::once(last).chain(prior) } /// Yields the era index where the most recent non-zero slash occurred. @@ -182,7 +182,7 @@ impl SlashingSpans { }; // readjust the ongoing span, if it started before the beginning of the window. - self.last_start = sp_std::cmp::max(self.last_start, window_start); + self.last_start = core::cmp::max(self.last_start, window_start); pruned } } @@ -408,7 +408,7 @@ struct InspectingSpans<'a, T: Config + 'a> { paid_out: &'a mut BalanceOf, slash_of: &'a mut BalanceOf, reward_proportion: Perbill, - _marker: sp_std::marker::PhantomData, + _marker: core::marker::PhantomData, } // fetches the slashing spans record for a stash account, initializing it if necessary. @@ -433,7 +433,7 @@ fn fetch_spans<'a, T: Config + 'a>( slash_of, paid_out, reward_proportion, - _marker: sp_std::marker::PhantomData, + _marker: core::marker::PhantomData, } } @@ -451,7 +451,7 @@ impl<'a, T: 'a + Config> InspectingSpans<'a, T> { // although `amount` may be zero, as it is only a difference. fn add_slash(&mut self, amount: BalanceOf, slash_era: EraIndex) { *self.slash_of += amount; - self.spans.last_nonzero_slash = sp_std::cmp::max(self.spans.last_nonzero_slash, slash_era); + self.spans.last_nonzero_slash = core::cmp::max(self.spans.last_nonzero_slash, slash_era); } // find the span index of the given era, if covered. diff --git a/substrate/frame/staking/src/testing_utils.rs b/substrate/frame/staking/src/testing_utils.rs index d4938ea43eb..65aaa5f09de 100644 --- a/substrate/frame/staking/src/testing_utils.rs +++ b/substrate/frame/staking/src/testing_utils.rs @@ -30,7 +30,6 @@ use sp_io::hashing::blake2_256; use frame_election_provider_support::SortedListProvider; use frame_support::{pallet_prelude::*, traits::Currency}; use sp_runtime::{traits::StaticLookup, Perbill}; -use sp_std::prelude::*; const SEED: u32 = 0; diff --git a/substrate/frame/staking/src/tests.rs b/substrate/frame/staking/src/tests.rs index 825b03b8eca..c35e5e8a06c 100644 --- a/substrate/frame/staking/src/tests.rs +++ b/substrate/frame/staking/src/tests.rs @@ -41,7 +41,6 @@ use sp_staking::{ offence::{OffenceDetails, OnOffenceHandler}, SessionIndex, }; -use sp_std::prelude::*; use substrate_test_utils::assert_eq_uvec; #[test] diff --git a/substrate/frame/state-trie-migration/Cargo.toml b/substrate/frame/state-trie-migration/Cargo.toml index 8bb4079715e..db8d10dabfd 100644 --- a/substrate/frame/state-trie-migration/Cargo.toml +++ b/substrate/frame/state-trie-migration/Cargo.toml @@ -28,7 +28,6 @@ remote-externalities = { optional = true, workspace = true, default-features = t sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } substrate-state-trie-migration-rpc = { optional = true, workspace = true, default-features = true } [dev-dependencies] @@ -50,7 +49,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-tracing/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/state-trie-migration/src/lib.rs b/substrate/frame/state-trie-migration/src/lib.rs index 22ad640d3bd..3fe5abb8103 100644 --- a/substrate/frame/state-trie-migration/src/lib.rs +++ b/substrate/frame/state-trie-migration/src/lib.rs @@ -55,6 +55,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + pub use pallet::*; pub mod weights; @@ -75,6 +77,8 @@ pub mod pallet { pub use crate::weights::WeightInfo; + use alloc::{vec, vec::Vec}; + use core::ops::Deref; use frame_support::{ dispatch::{DispatchErrorWithPostInfo, PostDispatchInfo}, ensure, @@ -93,7 +97,6 @@ pub mod pallet { self, traits::{Saturating, Zero}, }; - use sp_std::{ops::Deref, prelude::*}; pub(crate) type BalanceOf = <::Currency as Inspect<::AccountId>>::Balance; @@ -169,11 +172,11 @@ pub mod pallet { pub(crate) child_items: u32, #[codec(skip)] - pub(crate) _ph: sp_std::marker::PhantomData, + pub(crate) _ph: core::marker::PhantomData, } - impl> sp_std::fmt::Debug for Progress { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { + impl> core::fmt::Debug for Progress { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { Progress::ToStart => f.write_str("To start"), Progress::LastKey(key) => write!(f, "Last: {:?}", HexDisplay::from(key.deref())), @@ -182,8 +185,8 @@ pub mod pallet { } } - impl sp_std::fmt::Debug for MigrationTask { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { + impl core::fmt::Debug for MigrationTask { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { f.debug_struct("MigrationTask") .field("top", &self.progress_top) .field("child", &self.progress_child) @@ -953,8 +956,8 @@ pub mod pallet { #[cfg(feature = "runtime-benchmarks")] mod benchmarks { use super::{pallet::Pallet as StateTrieMigration, *}; + use alloc::vec; use frame_support::traits::fungible::{Inspect, Mutate}; - use sp_std::prelude::*; // The size of the key seemingly makes no difference in the read/write time, so we make it // constant. @@ -1080,7 +1083,7 @@ mod benchmarks { process_top_key { let v in 1 .. (4 * 1024 * 1024); - let value = sp_std::vec![1u8; v as usize]; + let value = alloc::vec![1u8; v as usize]; sp_io::storage::set(KEY, &value); }: { let data = sp_io::storage::get(KEY).unwrap(); @@ -1101,6 +1104,7 @@ mod benchmarks { mod mock { use super::*; use crate as pallet_state_trie_migration; + use alloc::{vec, vec::Vec}; use frame_support::{derive_impl, parameter_types, traits::Hooks, weights::Weight}; use frame_system::{EnsureRoot, EnsureSigned}; use sp_core::{ diff --git a/substrate/frame/statement/Cargo.toml b/substrate/frame/statement/Cargo.toml index 233b7255fc5..000e5033d8f 100644 --- a/substrate/frame/statement/Cargo.toml +++ b/substrate/frame/statement/Cargo.toml @@ -22,7 +22,6 @@ frame-system = { workspace = true } sp-statement-store = { workspace = true } sp-api = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } sp-core = { workspace = true } log = { workspace = true } @@ -44,7 +43,6 @@ std = [ "sp-io/std", "sp-runtime/std", "sp-statement-store/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/statement/src/lib.rs b/substrate/frame/statement/src/lib.rs index c68dac2d297..6a7f577ab08 100644 --- a/substrate/frame/statement/src/lib.rs +++ b/substrate/frame/statement/src/lib.rs @@ -92,7 +92,7 @@ pub mod pallet { } #[pallet::pallet] - pub struct Pallet(sp_std::marker::PhantomData); + pub struct Pallet(core::marker::PhantomData); #[pallet::event] #[pallet::generate_deposit(pub(super) fn deposit_event)] diff --git a/substrate/frame/sudo/Cargo.toml b/substrate/frame/sudo/Cargo.toml index 5d5d09d6923..1a94753728b 100644 --- a/substrate/frame/sudo/Cargo.toml +++ b/substrate/frame/sudo/Cargo.toml @@ -23,7 +23,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } docify = { workspace = true } @@ -41,7 +40,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/sudo/src/benchmarking.rs b/substrate/frame/sudo/src/benchmarking.rs index e64233fe748..dee7d09c9d0 100644 --- a/substrate/frame/sudo/src/benchmarking.rs +++ b/substrate/frame/sudo/src/benchmarking.rs @@ -19,6 +19,7 @@ use super::*; use crate::Pallet; +use alloc::{boxed::Box, vec}; use frame_benchmarking::v2::*; use frame_system::RawOrigin; diff --git a/substrate/frame/sudo/src/extension.rs b/substrate/frame/sudo/src/extension.rs index e90286e5a7c..fb7eaf78948 100644 --- a/substrate/frame/sudo/src/extension.rs +++ b/substrate/frame/sudo/src/extension.rs @@ -17,6 +17,7 @@ use crate::{Config, Key}; use codec::{Decode, Encode}; +use core::{fmt, marker::PhantomData}; use frame_support::{dispatch::DispatchInfo, ensure}; use scale_info::TypeInfo; use sp_runtime::{ @@ -26,7 +27,6 @@ use sp_runtime::{ UnknownTransaction, ValidTransaction, }, }; -use sp_std::{fmt, marker::PhantomData}; /// Ensure that signed transactions are only valid if they are signed by sudo account. /// diff --git a/substrate/frame/sudo/src/lib.rs b/substrate/frame/sudo/src/lib.rs index 63b68e69430..07296e90b64 100644 --- a/substrate/frame/sudo/src/lib.rs +++ b/substrate/frame/sudo/src/lib.rs @@ -121,8 +121,11 @@ #![deny(missing_docs)] #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::boxed::Box; + use sp_runtime::{traits::StaticLookup, DispatchResult}; -use sp_std::prelude::*; use frame_support::{dispatch::GetDispatchInfo, traits::UnfilteredDispatchable}; diff --git a/substrate/frame/support/procedural/src/construct_runtime/expand/inherent.rs b/substrate/frame/support/procedural/src/construct_runtime/expand/inherent.rs index da483fa6cf0..c5fe8440d21 100644 --- a/substrate/frame/support/procedural/src/construct_runtime/expand/inherent.rs +++ b/substrate/frame/support/procedural/src/construct_runtime/expand/inherent.rs @@ -58,17 +58,17 @@ pub fn expand_outer_inherent( trait InherentDataExt { fn create_extrinsics(&self) -> - #scrate::__private::sp_std::vec::Vec<<#block as #scrate::sp_runtime::traits::Block>::Extrinsic>; + #scrate::__private::Vec<<#block as #scrate::sp_runtime::traits::Block>::Extrinsic>; fn check_extrinsics(&self, block: &#block) -> #scrate::inherent::CheckInherentsResult; } impl InherentDataExt for #scrate::inherent::InherentData { fn create_extrinsics(&self) -> - #scrate::__private::sp_std::vec::Vec<<#block as #scrate::sp_runtime::traits::Block>::Extrinsic> + #scrate::__private::Vec<<#block as #scrate::sp_runtime::traits::Block>::Extrinsic> { use #scrate::inherent::ProvideInherent; - let mut inherents = #scrate::__private::sp_std::vec::Vec::new(); + let mut inherents = #scrate::__private::Vec::new(); #( #pallet_attrs diff --git a/substrate/frame/support/procedural/src/construct_runtime/expand/metadata.rs b/substrate/frame/support/procedural/src/construct_runtime/expand/metadata.rs index 0e76f9a9246..daef1b17161 100644 --- a/substrate/frame/support/procedural/src/construct_runtime/expand/metadata.rs +++ b/substrate/frame/support/procedural/src/construct_runtime/expand/metadata.rs @@ -111,7 +111,7 @@ pub fn expand_runtime_metadata( >(); #scrate::__private::metadata_ir::MetadataIR { - pallets: #scrate::__private::sp_std::vec![ #(#pallets),* ], + pallets: #scrate::__private::vec![ #(#pallets),* ], extrinsic: #scrate::__private::metadata_ir::ExtrinsicMetadataIR { ty, version: <#extrinsic as #scrate::sp_runtime::traits::ExtrinsicMetadata>::VERSION, @@ -156,7 +156,7 @@ pub fn expand_runtime_metadata( }) } - pub fn metadata_versions() -> #scrate::__private::sp_std::vec::Vec { + pub fn metadata_versions() -> #scrate::__private::Vec { #scrate::__private::metadata_ir::supported_versions() } } diff --git a/substrate/frame/support/procedural/src/construct_runtime/expand/origin.rs b/substrate/frame/support/procedural/src/construct_runtime/expand/origin.rs index 83049919d01..4a14853c04e 100644 --- a/substrate/frame/support/procedural/src/construct_runtime/expand/origin.rs +++ b/substrate/frame/support/procedural/src/construct_runtime/expand/origin.rs @@ -105,25 +105,25 @@ pub fn expand_outer_origin( #[derive(Clone)] pub struct RuntimeOrigin { pub caller: OriginCaller, - filter: #scrate::__private::sp_std::rc::Rc::RuntimeCall) -> bool>>, + filter: #scrate::__private::Rc<#scrate::__private::Box::RuntimeCall) -> bool>>, } #[cfg(not(feature = "std"))] - impl #scrate::__private::sp_std::fmt::Debug for RuntimeOrigin { + impl core::fmt::Debug for RuntimeOrigin { fn fmt( &self, - fmt: &mut #scrate::__private::sp_std::fmt::Formatter, - ) -> #scrate::__private::sp_std::result::Result<(), #scrate::__private::sp_std::fmt::Error> { + fmt: &mut core::fmt::Formatter, + ) -> core::result::Result<(), core::fmt::Error> { fmt.write_str("") } } #[cfg(feature = "std")] - impl #scrate::__private::sp_std::fmt::Debug for RuntimeOrigin { + impl core::fmt::Debug for RuntimeOrigin { fn fmt( &self, - fmt: &mut #scrate::__private::sp_std::fmt::Formatter, - ) -> #scrate::__private::sp_std::result::Result<(), #scrate::__private::sp_std::fmt::Error> { + fmt: &mut core::fmt::Formatter, + ) -> core::result::Result<(), core::fmt::Error> { fmt.debug_struct("Origin") .field("caller", &self.caller) .field("filter", &"[function ptr]") @@ -139,7 +139,7 @@ pub fn expand_outer_origin( fn add_filter(&mut self, filter: impl Fn(&Self::Call) -> bool + 'static) { let f = self.filter.clone(); - self.filter = #scrate::__private::sp_std::rc::Rc::new(Box::new(move |call| { + self.filter = #scrate::__private::Rc::new(#scrate::__private::Box::new(move |call| { f(call) && filter(call) })); } @@ -150,7 +150,7 @@ pub fn expand_outer_origin( as #scrate::traits::Contains<<#runtime as #system_path::Config>::RuntimeCall> >::contains; - self.filter = #scrate::__private::sp_std::rc::Rc::new(Box::new(filter)); + self.filter = #scrate::__private::Rc::new(#scrate::__private::Box::new(filter)); } fn set_caller_from(&mut self, other: impl Into) { @@ -252,7 +252,7 @@ pub fn expand_outer_origin( impl TryFrom for #system_path::Origin<#runtime> { type Error = OriginCaller; fn try_from(x: OriginCaller) - -> #scrate::__private::sp_std::result::Result<#system_path::Origin<#runtime>, OriginCaller> + -> core::result::Result<#system_path::Origin<#runtime>, OriginCaller> { if let OriginCaller::system(l) = x { Ok(l) @@ -275,7 +275,7 @@ pub fn expand_outer_origin( fn from(x: OriginCaller) -> Self { let mut o = RuntimeOrigin { caller: x, - filter: #scrate::__private::sp_std::rc::Rc::new(Box::new(|_| true)), + filter: #scrate::__private::Rc::new(#scrate::__private::Box::new(|_| true)), }; #scrate::traits::OriginTrait::reset_filter(&mut o); @@ -284,7 +284,7 @@ pub fn expand_outer_origin( } } - impl From for #scrate::__private::sp_std::result::Result<#system_path::Origin<#runtime>, RuntimeOrigin> { + impl From for core::result::Result<#system_path::Origin<#runtime>, RuntimeOrigin> { /// NOTE: converting to pallet origin loses the origin filter information. fn from(val: RuntimeOrigin) -> Self { if let OriginCaller::system(l) = val.caller { @@ -349,7 +349,7 @@ fn expand_origin_caller_variant( } fn expand_origin_pallet_conversions( - scrate: &TokenStream, + _scrate: &TokenStream, runtime: &Ident, pallet: &Pallet, instance: Option<&Ident>, @@ -394,7 +394,7 @@ fn expand_origin_pallet_conversions( } #attr - impl From for #scrate::__private::sp_std::result::Result<#pallet_origin, RuntimeOrigin> { + impl From for core::result::Result<#pallet_origin, RuntimeOrigin> { /// NOTE: converting to pallet origin loses the origin filter information. fn from(val: RuntimeOrigin) -> Self { if let OriginCaller::#variant_name(l) = val.caller { @@ -410,7 +410,7 @@ fn expand_origin_pallet_conversions( type Error = OriginCaller; fn try_from( x: OriginCaller, - ) -> #scrate::__private::sp_std::result::Result<#pallet_origin, OriginCaller> { + ) -> core::result::Result<#pallet_origin, OriginCaller> { if let OriginCaller::#variant_name(l) = x { Ok(l) } else { @@ -424,7 +424,7 @@ fn expand_origin_pallet_conversions( type Error = (); fn try_from( x: &'a OriginCaller, - ) -> #scrate::__private::sp_std::result::Result<&'a #pallet_origin, ()> { + ) -> core::result::Result<&'a #pallet_origin, ()> { if let OriginCaller::#variant_name(l) = x { Ok(&l) } else { @@ -438,7 +438,7 @@ fn expand_origin_pallet_conversions( type Error = (); fn try_from( x: &'a RuntimeOrigin, - ) -> #scrate::__private::sp_std::result::Result<&'a #pallet_origin, ()> { + ) -> core::result::Result<&'a #pallet_origin, ()> { if let OriginCaller::#variant_name(l) = &x.caller { Ok(&l) } else { diff --git a/substrate/frame/support/procedural/src/construct_runtime/mod.rs b/substrate/frame/support/procedural/src/construct_runtime/mod.rs index 1505d158895..17042c24878 100644 --- a/substrate/frame/support/procedural/src/construct_runtime/mod.rs +++ b/substrate/frame/support/procedural/src/construct_runtime/mod.rs @@ -470,7 +470,7 @@ fn construct_runtime_final_expansion( #[doc(hidden)] trait InternalConstructRuntime { #[inline(always)] - fn runtime_metadata(&self) -> #scrate::__private::sp_std::vec::Vec<#scrate::__private::metadata_ir::RuntimeApiMetadataIR> { + fn runtime_metadata(&self) -> #scrate::__private::Vec<#scrate::__private::metadata_ir::RuntimeApiMetadataIR> { Default::default() } } @@ -669,10 +669,10 @@ pub(crate) fn decl_pallet_runtime_setup( impl #scrate::traits::PalletInfo for PalletInfo { fn index() -> Option { - let type_id = #scrate::__private::sp_std::any::TypeId::of::

(); + let type_id = core::any::TypeId::of::

(); #( #pallet_attrs - if type_id == #scrate::__private::sp_std::any::TypeId::of::<#names>() { + if type_id == core::any::TypeId::of::<#names>() { return Some(#indices) } )* @@ -681,10 +681,10 @@ pub(crate) fn decl_pallet_runtime_setup( } fn name() -> Option<&'static str> { - let type_id = #scrate::__private::sp_std::any::TypeId::of::

(); + let type_id = core::any::TypeId::of::

(); #( #pallet_attrs - if type_id == #scrate::__private::sp_std::any::TypeId::of::<#names>() { + if type_id == core::any::TypeId::of::<#names>() { return Some(#name_strings) } )* @@ -693,10 +693,10 @@ pub(crate) fn decl_pallet_runtime_setup( } fn name_hash() -> Option<[u8; 16]> { - let type_id = #scrate::__private::sp_std::any::TypeId::of::

(); + let type_id = core::any::TypeId::of::

(); #( #pallet_attrs - if type_id == #scrate::__private::sp_std::any::TypeId::of::<#names>() { + if type_id == core::any::TypeId::of::<#names>() { return Some(#name_hashes) } )* @@ -705,10 +705,10 @@ pub(crate) fn decl_pallet_runtime_setup( } fn module_name() -> Option<&'static str> { - let type_id = #scrate::__private::sp_std::any::TypeId::of::

(); + let type_id = core::any::TypeId::of::

(); #( #pallet_attrs - if type_id == #scrate::__private::sp_std::any::TypeId::of::<#names>() { + if type_id == core::any::TypeId::of::<#names>() { return Some(#module_names) } )* @@ -717,10 +717,10 @@ pub(crate) fn decl_pallet_runtime_setup( } fn crate_version() -> Option<#scrate::traits::CrateVersion> { - let type_id = #scrate::__private::sp_std::any::TypeId::of::

(); + let type_id = core::any::TypeId::of::

(); #( #pallet_attrs - if type_id == #scrate::__private::sp_std::any::TypeId::of::<#names>() { + if type_id == core::any::TypeId::of::<#names>() { return Some( <#pallet_structs as #scrate::traits::PalletInfoAccess>::crate_version() ) diff --git a/substrate/frame/support/procedural/src/pallet/expand/constants.rs b/substrate/frame/support/procedural/src/pallet/expand/constants.rs index d7fbb5a7189..a36df790bd2 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/constants.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/constants.rs @@ -88,7 +88,7 @@ pub fn expand_constants(def: &mut Def) -> proc_macro2::TokenStream { name: #ident_str, ty: #frame_support::__private::scale_info::meta_type::<#const_type>(), value: { #default_byte_impl }, - docs: #frame_support::__private::sp_std::vec![ #( #doc ),* ], + docs: #frame_support::__private::vec![ #( #doc ),* ], } }) }); @@ -98,9 +98,9 @@ pub fn expand_constants(def: &mut Def) -> proc_macro2::TokenStream { #[doc(hidden)] pub fn pallet_constants_metadata() - -> #frame_support::__private::sp_std::vec::Vec<#frame_support::__private::metadata_ir::PalletConstantMetadataIR> + -> #frame_support::__private::Vec<#frame_support::__private::metadata_ir::PalletConstantMetadataIR> { - #frame_support::__private::sp_std::vec![ #( #consts ),* ] + #frame_support::__private::vec![ #( #consts ),* ] } } ) diff --git a/substrate/frame/support/procedural/src/pallet/expand/documentation.rs b/substrate/frame/support/procedural/src/pallet/expand/documentation.rs index ec19f889a9f..e2c72ee921c 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/documentation.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/documentation.rs @@ -163,9 +163,9 @@ pub fn expand_documentation(def: &mut Def) -> proc_macro2::TokenStream { #[doc(hidden)] pub fn pallet_documentation_metadata() - -> #frame_support::__private::sp_std::vec::Vec<&'static str> + -> #frame_support::__private::Vec<&'static str> { - #frame_support::__private::sp_std::vec![ #( #docs ),* ] + #frame_support::__private::vec![ #( #docs ),* ] } } ) diff --git a/substrate/frame/support/procedural/src/pallet/expand/error.rs b/substrate/frame/support/procedural/src/pallet/expand/error.rs index b921d66ff9e..05478ee3908 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/error.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/error.rs @@ -66,7 +66,7 @@ pub fn expand_error(def: &mut Def) -> proc_macro2::TokenStream { #[doc(hidden)] #[codec(skip)] __Ignore( - #frame_support::__private::sp_std::marker::PhantomData<(#type_use_gen)>, + core::marker::PhantomData<(#type_use_gen)>, #frame_support::Never, ) ); @@ -124,11 +124,11 @@ pub fn expand_error(def: &mut Def) -> proc_macro2::TokenStream { } quote::quote_spanned!(error.attr_span => - impl<#type_impl_gen> #frame_support::__private::sp_std::fmt::Debug for #error_ident<#type_use_gen> + impl<#type_impl_gen> core::fmt::Debug for #error_ident<#type_use_gen> #config_where_clause { - fn fmt(&self, f: &mut #frame_support::__private::sp_std::fmt::Formatter<'_>) - -> #frame_support::__private::sp_std::fmt::Result + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) + -> core::fmt::Result { f.write_str(self.as_str()) } diff --git a/substrate/frame/support/procedural/src/pallet/expand/hooks.rs b/substrate/frame/support/procedural/src/pallet/expand/hooks.rs index 3623b595268..d7b1ca14f57 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/hooks.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/hooks.rs @@ -255,7 +255,7 @@ pub fn expand_hooks(def: &mut Def) -> proc_macro2::TokenStream { } #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result<#frame_support::__private::sp_std::vec::Vec, #frame_support::sp_runtime::TryRuntimeError> { + fn pre_upgrade() -> Result<#frame_support::__private::Vec, #frame_support::sp_runtime::TryRuntimeError> { < Self as @@ -264,7 +264,7 @@ pub fn expand_hooks(def: &mut Def) -> proc_macro2::TokenStream { } #[cfg(feature = "try-runtime")] - fn post_upgrade(state: #frame_support::__private::sp_std::vec::Vec) -> Result<(), #frame_support::sp_runtime::TryRuntimeError> { + fn post_upgrade(state: #frame_support::__private::Vec) -> Result<(), #frame_support::sp_runtime::TryRuntimeError> { #post_storage_version_check < diff --git a/substrate/frame/support/procedural/src/pallet/expand/pallet_struct.rs b/substrate/frame/support/procedural/src/pallet/expand/pallet_struct.rs index 7cdf6bde9de..7ebc4bb2e9d 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/pallet_struct.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/pallet_struct.rs @@ -54,7 +54,7 @@ pub fn expand_pallet_struct(def: &mut Def) -> proc_macro2::TokenStream { if let Some(field) = pallet_item.fields.iter_mut().next() { if field.ty == syn::parse_quote!(_) { field.ty = syn::parse_quote!( - #frame_support::__private::sp_std::marker::PhantomData<(#type_use_gen)> + core::marker::PhantomData<(#type_use_gen)> ); } } @@ -139,10 +139,10 @@ pub fn expand_pallet_struct(def: &mut Def) -> proc_macro2::TokenStream { #storages_where_clauses { fn storage_info() - -> #frame_support::__private::sp_std::vec::Vec<#frame_support::traits::StorageInfo> + -> #frame_support::__private::Vec<#frame_support::traits::StorageInfo> { #[allow(unused_mut)] - let mut res = #frame_support::__private::sp_std::vec![]; + let mut res = #frame_support::__private::vec![]; #( #(#storage_cfg_attrs)* @@ -179,8 +179,8 @@ pub fn expand_pallet_struct(def: &mut Def) -> proc_macro2::TokenStream { let whitelisted_storage_keys_impl = quote::quote![ use #frame_support::traits::{StorageInfoTrait, TrackedStorageKey, WhitelistedStorageKeys}; impl<#type_impl_gen> WhitelistedStorageKeys for #pallet_ident<#type_use_gen> #storages_where_clauses { - fn whitelisted_storage_keys() -> #frame_support::__private::sp_std::vec::Vec { - use #frame_support::__private::sp_std::vec; + fn whitelisted_storage_keys() -> #frame_support::__private::Vec { + use #frame_support::__private::vec; vec![#( TrackedStorageKey::new(#whitelisted_storage_idents::<#type_use_gen>::hashed_key().to_vec()) ),*] @@ -272,7 +272,7 @@ pub fn expand_pallet_struct(def: &mut Def) -> proc_macro2::TokenStream { #config_where_clause { fn count() -> usize { 1 } - fn infos() -> #frame_support::__private::sp_std::vec::Vec<#frame_support::traits::PalletInfoData> { + fn infos() -> #frame_support::__private::Vec<#frame_support::traits::PalletInfoData> { use #frame_support::traits::PalletInfoAccess; let item = #frame_support::traits::PalletInfoData { index: Self::index(), @@ -280,7 +280,7 @@ pub fn expand_pallet_struct(def: &mut Def) -> proc_macro2::TokenStream { module_name: Self::module_name(), crate_version: Self::crate_version(), }; - #frame_support::__private::sp_std::vec![item] + #frame_support::__private::vec![item] } } diff --git a/substrate/frame/support/procedural/src/pallet/expand/storage.rs b/substrate/frame/support/procedural/src/pallet/expand/storage.rs index 3cc8a843e3b..267b0f2dd3b 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/storage.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/storage.rs @@ -423,7 +423,7 @@ pub fn expand_storages(def: &mut Def) -> proc_macro2::TokenStream { #(#cfg_attrs)* { <#full_ident as #frame_support::storage::StorageEntryMetadataBuilder>::build_metadata( - #frame_support::__private::sp_std::vec![ + #frame_support::__private::vec![ #( #docs, )* ], &mut entries, @@ -853,7 +853,7 @@ pub fn expand_storages(def: &mut Def) -> proc_macro2::TokenStream { impl<#type_impl_gen> #frame_support::traits::TryDecodeEntireStorage for #pallet_ident<#type_use_gen> #completed_where_clause { - fn try_decode_entire_state() -> Result> { + fn try_decode_entire_state() -> Result> { let pallet_name = <::PalletInfo as #frame_support::traits::PalletInfo> ::name::<#pallet_ident<#type_use_gen>>() .expect("Every active pallet has a name in the runtime; qed"); @@ -861,7 +861,7 @@ pub fn expand_storages(def: &mut Def) -> proc_macro2::TokenStream { #frame_support::__private::log::debug!(target: "runtime::try-decode-state", "trying to decode pallet: {pallet_name}"); // NOTE: for now, we have to exclude storage items that are feature gated. - let mut errors = #frame_support::__private::sp_std::vec::Vec::new(); + let mut errors = #frame_support::__private::Vec::new(); let mut decoded = 0usize; #( @@ -902,7 +902,7 @@ pub fn expand_storages(def: &mut Def) -> proc_macro2::TokenStream { .expect("No name found for the pallet in the runtime! This usually means that the pallet wasn't added to `construct_runtime!`."), entries: { #[allow(unused_mut)] - let mut entries = #frame_support::__private::sp_std::vec![]; + let mut entries = #frame_support::__private::vec![]; #( #entries_builder )* entries }, diff --git a/substrate/frame/support/procedural/src/pallet/expand/tasks.rs b/substrate/frame/support/procedural/src/pallet/expand/tasks.rs index 6697e5c822a..7201c352d92 100644 --- a/substrate/frame/support/procedural/src/pallet/expand/tasks.rs +++ b/substrate/frame/support/procedural/src/pallet/expand/tasks.rs @@ -159,7 +159,6 @@ impl ToTokens for TasksDef { let task_fn_names = self.tasks.iter().map(|task| &task.item.sig.ident); let task_arg_names = self.tasks.iter().map(|task| &task.arg_names).collect::>(); - let sp_std = quote!(#scrate::__private::sp_std); let impl_generics = &self.item_impl.generics; tokens.extend(quote! { impl #impl_generics #enum_use @@ -169,13 +168,13 @@ impl ToTokens for TasksDef { impl #impl_generics #scrate::traits::Task for #enum_use { - type Enumeration = #sp_std::vec::IntoIter<#enum_use>; + type Enumeration = #scrate::__private::IntoIter<#enum_use>; fn iter() -> Self::Enumeration { - let mut all_tasks = #sp_std::vec![]; + let mut all_tasks = #scrate::__private::vec![]; #(all_tasks .extend(#task_iters.map(|(#(#task_arg_names),*)| #enum_ident::#task_fn_idents { #(#task_arg_names: #task_arg_names.clone()),* }) - .collect::<#sp_std::vec::Vec<_>>()); + .collect::<#scrate::__private::Vec<_>>()); )* all_tasks.into_iter() } diff --git a/substrate/frame/support/procedural/src/pallet/parse/tests/tasks.rs b/substrate/frame/support/procedural/src/pallet/parse/tests/tasks.rs index 9f143628404..7df91ae777d 100644 --- a/substrate/frame/support/procedural/src/pallet/parse/tests/tasks.rs +++ b/substrate/frame/support/procedural/src/pallet/parse/tests/tasks.rs @@ -124,10 +124,10 @@ fn test_parse_pallet_manual_tasks_impl_without_manual_tasks_enum() { where T: TypeInfo, { - type Enumeration = sp_std::vec::IntoIter>; + type Enumeration = alloc::vec::IntoIter>; fn iter() -> Self::Enumeration { - sp_std::vec![Task::increment, Task::decrement].into_iter() + alloc::vec![Task::increment, Task::decrement].into_iter() } } diff --git a/substrate/frame/support/procedural/src/runtime/expand/mod.rs b/substrate/frame/support/procedural/src/runtime/expand/mod.rs index 3cdfb06cb6e..f34ab1cef54 100644 --- a/substrate/frame/support/procedural/src/runtime/expand/mod.rs +++ b/substrate/frame/support/procedural/src/runtime/expand/mod.rs @@ -280,7 +280,7 @@ fn construct_runtime_final_expansion( #[doc(hidden)] trait InternalConstructRuntime { #[inline(always)] - fn runtime_metadata(&self) -> #scrate::__private::sp_std::vec::Vec<#scrate::__private::metadata_ir::RuntimeApiMetadataIR> { + fn runtime_metadata(&self) -> #scrate::__private::Vec<#scrate::__private::metadata_ir::RuntimeApiMetadataIR> { Default::default() } } diff --git a/substrate/frame/support/src/dispatch.rs b/substrate/frame/support/src/dispatch.rs index 4a313551aca..351ba3a15ef 100644 --- a/substrate/frame/support/src/dispatch.rs +++ b/substrate/frame/support/src/dispatch.rs @@ -20,6 +20,7 @@ use crate::traits::UnfilteredDispatchable; use codec::{Codec, Decode, Encode, EncodeLike, MaxEncodedLen}; +use core::fmt; use scale_info::TypeInfo; #[cfg(feature = "std")] use serde::{Deserialize, Serialize}; @@ -28,7 +29,6 @@ use sp_runtime::{ traits::SignedExtension, DispatchError, RuntimeDebug, }; -use sp_std::fmt; use sp_weights::Weight; /// The return type of a `Dispatchable` in frame. When returned explicitly from @@ -220,14 +220,14 @@ pub trait OneOrMany { } impl OneOrMany for DispatchClass { - type Iter = sp_std::iter::Once; + type Iter = core::iter::Once; fn into_iter(self) -> Self::Iter { - sp_std::iter::once(self) + core::iter::once(self) } } impl<'a> OneOrMany for &'a [DispatchClass] { - type Iter = sp_std::iter::Cloned>; + type Iter = core::iter::Cloned>; fn into_iter(self) -> Self::Iter { self.iter().cloned() } diff --git a/substrate/frame/support/src/dispatch_context.rs b/substrate/frame/support/src/dispatch_context.rs index 254302c8f14..b34c6bdada3 100644 --- a/substrate/frame/support/src/dispatch_context.rs +++ b/substrate/frame/support/src/dispatch_context.rs @@ -81,11 +81,11 @@ //! In your pallet you will only have to use [`with_context`], because as described above //! [`run_in_context`] will be handled by FRAME for you. -use sp_std::{ - any::{Any, TypeId}, +use alloc::{ boxed::Box, collections::btree_map::{BTreeMap, Entry}, }; +use core::any::{Any, TypeId}; environmental::environmental!(DISPATCH_CONTEXT: BTreeMap>); @@ -158,7 +158,7 @@ pub fn with_context(callback: impl FnOnce(&mut Value) -> R) -> if value.is_none() { log::error!( "Failed to downcast value for type {} in dispatch context!", - sp_std::any::type_name::(), + core::any::type_name::(), ); } diff --git a/substrate/frame/support/src/genesis_builder_helper.rs b/substrate/frame/support/src/genesis_builder_helper.rs index 7389c5a787d..662ea2cb186 100644 --- a/substrate/frame/support/src/genesis_builder_helper.rs +++ b/substrate/frame/support/src/genesis_builder_helper.rs @@ -41,7 +41,7 @@ pub fn build_state(json: Vec) -> BuildResult { /// to [`sp_genesis_builder::GenesisBuilder::get_preset`]. pub fn get_preset( name: &Option, - preset_for_name: impl FnOnce(&sp_genesis_builder::PresetId) -> Option>, + preset_for_name: impl FnOnce(&sp_genesis_builder::PresetId) -> Option>, ) -> Option> where GC: BuildGenesisConfig + Default, diff --git a/substrate/frame/support/src/hash.rs b/substrate/frame/support/src/hash.rs index 9c48f4b187a..a09890560c6 100644 --- a/substrate/frame/support/src/hash.rs +++ b/substrate/frame/support/src/hash.rs @@ -17,10 +17,10 @@ //! Hash utilities. +use alloc::vec::Vec; use codec::{Codec, MaxEncodedLen}; use sp_io::hashing::{blake2_128, blake2_256, twox_128, twox_256, twox_64}; use sp_metadata_ir as metadata_ir; -use sp_std::prelude::Vec; // This trait must be kept coherent with frame-support-procedural HasherKind usage pub trait Hashable: Sized { diff --git a/substrate/frame/support/src/lib.rs b/substrate/frame/support/src/lib.rs index 94f4b9dd4bd..3ad8c5fabaa 100644 --- a/substrate/frame/support/src/lib.rs +++ b/substrate/frame/support/src/lib.rs @@ -33,11 +33,20 @@ #[doc(hidden)] extern crate self as frame_support; +#[doc(hidden)] +extern crate alloc; + /// Private exports that are being used by macros. /// /// The exports are not stable and should not be relied on. #[doc(hidden)] pub mod __private { + pub use alloc::{ + boxed::Box, + rc::Rc, + vec, + vec::{IntoIter, Vec}, + }; pub use codec; pub use frame_metadata as metadata; pub use log; @@ -261,7 +270,7 @@ macro_rules! parameter_types { ) => ( $( #[ $attr ] )* $vis struct $name $( - < $($ty_params),* >( $($crate::__private::sp_std::marker::PhantomData<$ty_params>),* ) + < $($ty_params),* >( $(core::marker::PhantomData<$ty_params>),* ) )?; $crate::parameter_types!(IMPL_CONST $name , $type , $value $( $(, $ty_params)* )?); $crate::parameter_types!( $( $rest )* ); @@ -273,7 +282,7 @@ macro_rules! parameter_types { ) => ( $( #[ $attr ] )* $vis struct $name $( - < $($ty_params),* >( $($crate::__private::sp_std::marker::PhantomData<$ty_params>),* ) + < $($ty_params),* >( $(core::marker::PhantomData<$ty_params>),* ) )?; $crate::parameter_types!(IMPL $name, $type, $value $( $(, $ty_params)* )?); $crate::parameter_types!( $( $rest )* ); @@ -285,7 +294,7 @@ macro_rules! parameter_types { ) => ( $( #[ $attr ] )* $vis struct $name $( - < $($ty_params),* >( $($crate::__private::sp_std::marker::PhantomData<$ty_params>),* ) + < $($ty_params),* >( $(core::marker::PhantomData<$ty_params>),* ) )?; $crate::parameter_types!(IMPL_STORAGE $name, $type, $value $( $(, $ty_params)* )?); $crate::parameter_types!( $( $rest )* ); @@ -468,7 +477,7 @@ macro_rules! ord_parameter_types { (IMPL $name:ident , $type:ty , $value:expr) => { impl $crate::traits::SortedMembers<$type> for $name { fn contains(t: &$type) -> bool { &$value == t } - fn sorted_members() -> $crate::__private::sp_std::prelude::Vec<$type> { vec![$value] } + fn sorted_members() -> $crate::__private::Vec<$type> { vec![$value] } fn count() -> usize { 1 } #[cfg(feature = "runtime-benchmarks")] fn add(_: &$type) {} @@ -499,7 +508,7 @@ macro_rules! runtime_print { } /// Print out the debuggable type. -pub fn debug(data: &impl sp_std::fmt::Debug) { +pub fn debug(data: &impl core::fmt::Debug) { runtime_print!("{:?}", data); } @@ -926,6 +935,7 @@ pub mod pallet_prelude { pub use codec::{Decode, Encode, MaxEncodedLen}; pub use frame_support::pallet_macros::*; + pub use core::marker::PhantomData; /// The optional attribute `#[inject_runtime_type]` can be attached to `RuntimeCall`, /// `RuntimeEvent`, `RuntimeOrigin` or `PalletInfo` in an impl statement that has /// `#[register_default_impl]` attached to indicate that this item is generated by @@ -954,7 +964,6 @@ pub mod pallet_prelude { }, DispatchError, RuntimeDebug, MAX_MODULE_ERROR_ENCODED_SIZE, }; - pub use sp_std::marker::PhantomData; pub use sp_weights::Weight; } @@ -1285,7 +1294,7 @@ pub mod pallet_macros { /// # use frame_support::pallet_prelude::*; /// # use frame_support::inherent::IsFatalError; /// # use sp_timestamp::InherentError; - /// # use sp_std::result; + /// # use core::result; /// # /// // Example inherent identifier /// pub const INHERENT_IDENTIFIER: InherentIdentifier = *b"timstap0"; @@ -1911,7 +1920,7 @@ pub mod pallet_macros { /// Field types in enum variants must also implement [`frame_support::PalletError`], /// otherwise the pallet will fail to compile. Rust primitive types have already /// implemented the [`frame_support::PalletError`] trait along with some commonly used - /// stdlib types such as [`Option`] and [`sp_std::marker::PhantomData`], and hence + /// stdlib types such as [`Option`] and [`core::marker::PhantomData`], and hence /// in most use cases, a manual implementation is not necessary and is discouraged. /// /// The generic `T` must not bound anything and a `where` clause is not allowed. That said, diff --git a/substrate/frame/support/src/migrations.rs b/substrate/frame/support/src/migrations.rs index fa018d74365..7f746146956 100644 --- a/substrate/frame/support/src/migrations.rs +++ b/substrate/frame/support/src/migrations.rs @@ -24,13 +24,14 @@ use crate::{ }, weights::{RuntimeDbWeight, Weight, WeightMeter}, }; +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; +use core::marker::PhantomData; use impl_trait_for_tuples::impl_for_tuples; use sp_arithmetic::traits::Bounded; use sp_core::Get; use sp_io::{hashing::twox_128, storage::clear_prefix, KillStorageResult}; use sp_runtime::traits::Zero; -use sp_std::{marker::PhantomData, vec::Vec}; /// Handles storage migration pallet versioning. /// @@ -71,7 +72,7 @@ use sp_std::{marker::PhantomData, vec::Vec}; /// /// - https://internals.rust-lang.org/t/lang-team-minutes-private-in-public-rules/4504/40 /// mod version_unchecked { /// use super::*; -/// pub struct VersionUncheckedMigrateV5ToV6(sp_std::marker::PhantomData); +/// pub struct VersionUncheckedMigrateV5ToV6(core::marker::PhantomData); /// impl UncheckedOnRuntimeUpgrade for VersionUncheckedMigrateV5ToV6 { /// // `UncheckedOnRuntimeUpgrade` implementation... /// } @@ -102,7 +103,7 @@ pub struct VersionedMigration), + MigrationExecuted(alloc::vec::Vec), /// This migration is a noop, do not run post_upgrade checks. Noop, } @@ -125,7 +126,7 @@ impl< /// [`VersionedPostUpgradeData`] before passing them to post_upgrade, so it knows whether the /// migration ran or not. #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { let on_chain_version = Pallet::on_chain_storage_version(); if on_chain_version == FROM { Ok(VersionedPostUpgradeData::MigrationExecuted(Inner::pre_upgrade()?).encode()) @@ -175,7 +176,7 @@ impl< /// the migration ran, and [`VersionedPostUpgradeData::Noop`] otherwise. #[cfg(feature = "try-runtime")] fn post_upgrade( - versioned_post_upgrade_data_bytes: sp_std::vec::Vec, + versioned_post_upgrade_data_bytes: alloc::vec::Vec, ) -> Result<(), sp_runtime::TryRuntimeError> { use codec::DecodeAll; match ::decode_all(&mut &versioned_post_upgrade_data_bytes[..]) @@ -339,7 +340,7 @@ impl, DbWeight: Get> frame_support::traits } #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { use crate::storage::unhashed::contains_prefixed_key; let hashed_prefix = twox_128(P::get().as_bytes()); @@ -350,11 +351,11 @@ impl, DbWeight: Get> frame_support::traits P::get() ), }; - Ok(sp_std::vec::Vec::new()) + Ok(alloc::vec::Vec::new()) } #[cfg(feature = "try-runtime")] - fn post_upgrade(_state: sp_std::vec::Vec) -> Result<(), sp_runtime::TryRuntimeError> { + fn post_upgrade(_state: alloc::vec::Vec) -> Result<(), sp_runtime::TryRuntimeError> { use crate::storage::unhashed::contains_prefixed_key; let hashed_prefix = twox_128(P::get().as_bytes()); @@ -450,7 +451,7 @@ impl, S: Get<&'static str>, DbWeight: Get> } #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { use crate::storage::unhashed::contains_prefixed_key; let hashed_prefix = storage_prefix(P::get().as_bytes(), S::get().as_bytes()); @@ -466,7 +467,7 @@ impl, S: Get<&'static str>, DbWeight: Get> } #[cfg(feature = "try-runtime")] - fn post_upgrade(_state: sp_std::vec::Vec) -> Result<(), sp_runtime::TryRuntimeError> { + fn post_upgrade(_state: alloc::vec::Vec) -> Result<(), sp_runtime::TryRuntimeError> { use crate::storage::unhashed::contains_prefixed_key; let hashed_prefix = storage_prefix(P::get().as_bytes(), S::get().as_bytes()); diff --git a/substrate/frame/support/src/storage/bounded_btree_map.rs b/substrate/frame/support/src/storage/bounded_btree_map.rs index 91196be9e80..d3560dd5f0d 100644 --- a/substrate/frame/support/src/storage/bounded_btree_map.rs +++ b/substrate/frame/support/src/storage/bounded_btree_map.rs @@ -26,9 +26,9 @@ impl StorageDecodeLength for BoundedBTreeMap {} pub mod test { use super::*; use crate::Twox128; + use alloc::collections::btree_map::BTreeMap; use frame_support::traits::{ConstU32, Get}; use sp_io::TestExternalities; - use sp_std::collections::btree_map::BTreeMap; #[crate::storage_alias] type Foo = StorageValue>>; diff --git a/substrate/frame/support/src/storage/bounded_btree_set.rs b/substrate/frame/support/src/storage/bounded_btree_set.rs index cf801eb4787..70ab2304cab 100644 --- a/substrate/frame/support/src/storage/bounded_btree_set.rs +++ b/substrate/frame/support/src/storage/bounded_btree_set.rs @@ -26,9 +26,9 @@ impl StorageDecodeNonDedupLength for BoundedBTreeSet {} pub mod test { use super::*; use crate::Twox128; + use alloc::collections::btree_set::BTreeSet; use frame_support::traits::{ConstU32, Get}; use sp_io::TestExternalities; - use sp_std::collections::btree_set::BTreeSet; #[crate::storage_alias] type Foo = StorageValue>>; diff --git a/substrate/frame/support/src/storage/child.rs b/substrate/frame/support/src/storage/child.rs index 76e6f4ee402..5ebba269365 100644 --- a/substrate/frame/support/src/storage/child.rs +++ b/substrate/frame/support/src/storage/child.rs @@ -21,10 +21,10 @@ // NOTE: could replace unhashed by having only one kind of storage (top trie being the child info // of null length parent storage key). +use alloc::vec::Vec; use codec::{Codec, Decode, Encode}; pub use sp_core::storage::{ChildInfo, ChildType, StateVersion}; pub use sp_io::{KillStorageResult, MultiRemovalResults}; -use sp_std::prelude::*; /// Return the value of the item in storage under `key`, or `None` if there is no explicit entry. pub fn get(child_info: &ChildInfo, key: &[u8]) -> Option { diff --git a/substrate/frame/support/src/storage/generator/double_map.rs b/substrate/frame/support/src/storage/generator/double_map.rs index a4c1f58203e..b68f3fa495f 100644 --- a/substrate/frame/support/src/storage/generator/double_map.rs +++ b/substrate/frame/support/src/storage/generator/double_map.rs @@ -20,8 +20,8 @@ use crate::{ storage::{self, storage_prefix, unhashed, KeyPrefixIterator, PrefixIterator, StorageAppend}, Never, }; +use alloc::vec::Vec; use codec::{Decode, Encode, EncodeLike, FullCodec, FullEncode}; -use sp_std::prelude::*; /// Generator for `StorageDoubleMap` used by `decl_storage`. /// @@ -516,6 +516,7 @@ mod test_iterators { unhashed, }, }; + use alloc::vec; use codec::Encode; #[test] diff --git a/substrate/frame/support/src/storage/generator/map.rs b/substrate/frame/support/src/storage/generator/map.rs index 257aa7e7bcf..b41f9c71716 100644 --- a/substrate/frame/support/src/storage/generator/map.rs +++ b/substrate/frame/support/src/storage/generator/map.rs @@ -20,9 +20,8 @@ use crate::{ storage::{self, storage_prefix, unhashed, KeyPrefixIterator, PrefixIterator, StorageAppend}, Never, }; +use alloc::vec::Vec; use codec::{Decode, Encode, EncodeLike, FullCodec, FullEncode}; -#[cfg(not(feature = "std"))] -use sp_std::prelude::*; /// Generator for `StorageMap` used by `decl_storage`. /// @@ -80,7 +79,7 @@ pub struct StorageMapIterator { prefix: Vec, previous_key: Vec, drain: bool, - _phantom: ::sp_std::marker::PhantomData<(K, V, Hasher)>, + _phantom: ::core::marker::PhantomData<(K, V, Hasher)>, } impl Iterator @@ -370,6 +369,7 @@ mod test_iterators { unhashed, }, }; + use alloc::vec; use codec::Encode; #[test] diff --git a/substrate/frame/support/src/storage/generator/mod.rs b/substrate/frame/support/src/storage/generator/mod.rs index dd6d622852d..b0b1bda24bb 100644 --- a/substrate/frame/support/src/storage/generator/mod.rs +++ b/substrate/frame/support/src/storage/generator/mod.rs @@ -36,6 +36,7 @@ pub use value::StorageValue; #[cfg(test)] mod tests { + use alloc::vec::Vec; use codec::Encode; use sp_io::TestExternalities; use sp_runtime::{generic, traits::BlakeTwo256, BuildStorage}; diff --git a/substrate/frame/support/src/storage/generator/nmap.rs b/substrate/frame/support/src/storage/generator/nmap.rs index 4b49ad3eb38..0466583a279 100755 --- a/substrate/frame/support/src/storage/generator/nmap.rs +++ b/substrate/frame/support/src/storage/generator/nmap.rs @@ -40,9 +40,8 @@ use crate::{ }, Never, }; +use alloc::vec::Vec; use codec::{Decode, Encode, EncodeLike, FullCodec}; -#[cfg(not(feature = "std"))] -use sp_std::prelude::*; /// Generator for `StorageNMap` used by `decl_storage` and storage types. /// @@ -464,6 +463,7 @@ mod test_iterators { unhashed, }, }; + use alloc::vec; use codec::Encode; #[test] diff --git a/substrate/frame/support/src/storage/hashed.rs b/substrate/frame/support/src/storage/hashed.rs index 6633adce8ff..d823eb98879 100644 --- a/substrate/frame/support/src/storage/hashed.rs +++ b/substrate/frame/support/src/storage/hashed.rs @@ -18,8 +18,8 @@ //! Operation on runtime storage using hashed keys. use super::unhashed; +use alloc::vec::Vec; use codec::{Decode, Encode}; -use sp_std::prelude::*; /// Return the value of the item in storage under `key`, or `None` if there is no explicit entry. pub fn get(hash: &HashFn, key: &[u8]) -> Option diff --git a/substrate/frame/support/src/storage/migration.rs b/substrate/frame/support/src/storage/migration.rs index 252625cf4f7..1dd690c3ed6 100644 --- a/substrate/frame/support/src/storage/migration.rs +++ b/substrate/frame/support/src/storage/migration.rs @@ -22,8 +22,8 @@ use crate::{ storage::{storage_prefix, unhashed}, StorageHasher, Twox128, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; -use sp_std::prelude::*; use super::PrefixIterator; @@ -32,7 +32,7 @@ pub struct StorageIterator { prefix: Vec, previous_key: Vec, drain: bool, - _phantom: ::sp_std::marker::PhantomData, + _phantom: ::core::marker::PhantomData, } impl StorageIterator { @@ -95,7 +95,7 @@ pub struct StorageKeyIterator { prefix: Vec, previous_key: Vec, drain: bool, - _phantom: ::sp_std::marker::PhantomData<(K, T, H)>, + _phantom: ::core::marker::PhantomData<(K, T, H)>, } impl StorageKeyIterator { diff --git a/substrate/frame/support/src/storage/mod.rs b/substrate/frame/support/src/storage/mod.rs index f7d7447482d..7fb991d3779 100644 --- a/substrate/frame/support/src/storage/mod.rs +++ b/substrate/frame/support/src/storage/mod.rs @@ -24,10 +24,11 @@ use crate::{ ReversibleKeyGenerator, TupleToEncodedIter, }, }; +use alloc::{collections::btree_set::BTreeSet, vec::Vec}; use codec::{Decode, Encode, EncodeLike, FullCodec, FullEncode}; +use core::marker::PhantomData; use sp_core::storage::ChildInfo; use sp_runtime::generic::{Digest, DigestItem}; -use sp_std::{collections::btree_set::BTreeSet, marker::PhantomData, prelude::*}; pub use self::{ stream_iter::StorageStreamIter, diff --git a/substrate/frame/support/src/storage/storage_noop_guard.rs b/substrate/frame/support/src/storage/storage_noop_guard.rs index c4d40fa99a3..23201e58db5 100644 --- a/substrate/frame/support/src/storage/storage_noop_guard.rs +++ b/substrate/frame/support/src/storage/storage_noop_guard.rs @@ -38,7 +38,7 @@ /// ``` #[must_use] pub struct StorageNoopGuard<'a> { - storage_root: sp_std::vec::Vec, + storage_root: alloc::vec::Vec, error_message: &'a str, } @@ -71,7 +71,8 @@ impl<'a> StorageNoopGuard<'a> { impl<'a> Drop for StorageNoopGuard<'a> { fn drop(&mut self) { // No need to double panic, eg. inside a test assertion failure. - if sp_std::thread::panicking() { + #[cfg(feature = "std")] + if std::thread::panicking() { return } assert_eq!( @@ -85,9 +86,10 @@ impl<'a> Drop for StorageNoopGuard<'a> { #[cfg(test)] mod tests { - use super::*; use sp_io::TestExternalities; + use super::*; + #[test] #[should_panic(expected = "`StorageNoopGuard` detected an attempted storage change.")] fn storage_noop_guard_panics_on_changed() { @@ -112,7 +114,7 @@ mod tests { TestExternalities::default().execute_with(|| { let guard = StorageNoopGuard::default(); frame_support::storage::unhashed::put(b"key", b"value"); - sp_std::mem::drop(guard); + std::mem::drop(guard); frame_support::storage::unhashed::kill(b"key"); }); } @@ -122,7 +124,7 @@ mod tests { TestExternalities::default().execute_with(|| { let guard = StorageNoopGuard::default(); frame_support::storage::unhashed::put(b"key", b"value"); - sp_std::mem::forget(guard); + std::mem::forget(guard); }); } diff --git a/substrate/frame/support/src/storage/stream_iter.rs b/substrate/frame/support/src/storage/stream_iter.rs index 529b2f387c7..0d1e5582f84 100644 --- a/substrate/frame/support/src/storage/stream_iter.rs +++ b/substrate/frame/support/src/storage/stream_iter.rs @@ -16,8 +16,8 @@ // limitations under the License. use crate::{BoundedBTreeMap, BoundedBTreeSet, BoundedVec, WeakBoundedVec}; +use alloc::vec::Vec; use codec::Decode; -use sp_std::vec::Vec; /// Provides the sealed trait `StreamIter`. mod private { @@ -26,7 +26,7 @@ mod private { /// Used as marker trait for types that support stream iteration. pub trait StreamIter { /// The actual iterator implementation. - type Iterator: sp_std::iter::Iterator; + type Iterator: core::iter::Iterator; /// Create the stream iterator for the value found at `key`. fn stream_iter(key: Vec) -> Self::Iterator; @@ -40,7 +40,7 @@ mod private { } } - impl StreamIter for sp_std::collections::btree_set::BTreeSet { + impl StreamIter for alloc::collections::btree_set::BTreeSet { type Iterator = ScaleContainerStreamIter; fn stream_iter(key: Vec) -> Self::Iterator { @@ -49,7 +49,7 @@ mod private { } impl StreamIter - for sp_std::collections::btree_map::BTreeMap + for alloc::collections::btree_map::BTreeMap { type Iterator = ScaleContainerStreamIter<(K, V)>; @@ -116,14 +116,14 @@ impl(len) ++ data`. -/// This type provides an [`Iterator`](sp_std::iter::Iterator) implementation that decodes +/// This type provides an [`Iterator`](core::iter::Iterator) implementation that decodes /// one item after another with each call to [`next`](Self::next). The bytes representing /// the container are also not read at once into memory and instead being read in chunks. As long /// as individual items are smaller than these chunks the memory usage of this iterator should /// be constant. On decoding errors [`next`](Self::next) will return `None` to signal that the /// iterator is finished. pub struct ScaleContainerStreamIter { - marker: sp_std::marker::PhantomData, + marker: core::marker::PhantomData, input: StorageInput, length: u32, read: u32, @@ -156,7 +156,7 @@ impl ScaleContainerStreamIter { 0 }; - Self { marker: sp_std::marker::PhantomData, input, length, read: 0 } + Self { marker: core::marker::PhantomData, input, length, read: 0 } } /// Creates a new instance of the stream iterator. @@ -168,11 +168,11 @@ impl ScaleContainerStreamIter { let mut input = StorageInput::new(key); let length = if input.exists() { codec::Compact::::decode(&mut input)?.0 } else { 0 }; - Ok(Self { marker: sp_std::marker::PhantomData, input, length, read: 0 }) + Ok(Self { marker: core::marker::PhantomData, input, length, read: 0 }) } } -impl sp_std::iter::Iterator for ScaleContainerStreamIter { +impl core::iter::Iterator for ScaleContainerStreamIter { type Item = T; fn next(&mut self) -> Option { @@ -235,7 +235,7 @@ impl StorageInput { /// /// - `key`: The storage key of the storage item that this input will read. fn new(key: Vec) -> Self { - let mut buffer = sp_std::vec![0; STORAGE_INPUT_BUFFER_CAPACITY]; + let mut buffer = alloc::vec![0; STORAGE_INPUT_BUFFER_CAPACITY]; unsafe { buffer.set_len(buffer.capacity()); } @@ -270,7 +270,7 @@ impl StorageInput { sp_io::storage::read(&self.key, &mut self.buffer[present_bytes..], self.offset) { let bytes_read = - sp_std::cmp::min(length_minus_offset as usize, self.buffer.len() - present_bytes); + core::cmp::min(length_minus_offset as usize, self.buffer.len() - present_bytes); let buffer_len = present_bytes + bytes_read; unsafe { self.buffer.set_len(buffer_len); diff --git a/substrate/frame/support/src/storage/types/counted_map.rs b/substrate/frame/support/src/storage/types/counted_map.rs index 0444e269928..9adcb33ae07 100644 --- a/substrate/frame/support/src/storage/types/counted_map.rs +++ b/substrate/frame/support/src/storage/types/counted_map.rs @@ -29,11 +29,11 @@ use crate::{ traits::{Get, GetDefault, StorageInfo, StorageInfoTrait, StorageInstance}, Never, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen, Ref}; use sp_io::MultiRemovalResults; use sp_metadata_ir::StorageEntryMetadataIR; use sp_runtime::traits::Saturating; -use sp_std::prelude::*; /// A wrapper around a [`StorageMap`] and a [`StorageValue`] (with the value being `u32`) to keep /// track of how many items are in a map, without needing to iterate all the values. diff --git a/substrate/frame/support/src/storage/types/counted_nmap.rs b/substrate/frame/support/src/storage/types/counted_nmap.rs index 51cde93f28c..13c1b10be39 100644 --- a/substrate/frame/support/src/storage/types/counted_nmap.rs +++ b/substrate/frame/support/src/storage/types/counted_nmap.rs @@ -28,10 +28,10 @@ use crate::{ traits::{Get, GetDefault, StorageInfo, StorageInstance}, Never, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen, Ref}; use sp_metadata_ir::StorageEntryMetadataIR; use sp_runtime::traits::Saturating; -use sp_std::prelude::*; /// A wrapper around a [`StorageNMap`] and a [`StorageValue`] (with the value being `u32`) to keep /// track of how many items are in a map, without needing to iterate all the values. @@ -683,6 +683,7 @@ mod test { hash::{StorageHasher as _, *}, storage::types::{Key as NMapKey, ValueQuery}, }; + use alloc::boxed::Box; use sp_io::{hashing::twox_128, TestExternalities}; use sp_metadata_ir::{StorageEntryModifierIR, StorageEntryTypeIR, StorageHasherIR}; diff --git a/substrate/frame/support/src/storage/types/double_map.rs b/substrate/frame/support/src/storage/types/double_map.rs index 2a7af7a9846..3d227feb902 100644 --- a/substrate/frame/support/src/storage/types/double_map.rs +++ b/substrate/frame/support/src/storage/types/double_map.rs @@ -26,11 +26,11 @@ use crate::{ traits::{Get, GetDefault, StorageInfo, StorageInstance}, StorageHasher, Twox128, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen}; use frame_support::storage::StorageDecodeNonDedupLength; use sp_arithmetic::traits::SaturatedConversion; use sp_metadata_ir::{StorageEntryMetadataIR, StorageEntryTypeIR}; -use sp_std::prelude::*; /// A type representing a *double map* in storage. This structure associates a pair of keys with a /// value of a specified type stored on-chain. diff --git a/substrate/frame/support/src/storage/types/key.rs b/substrate/frame/support/src/storage/types/key.rs index 90cf09dd1d3..b9b497b61d9 100755 --- a/substrate/frame/support/src/storage/types/key.rs +++ b/substrate/frame/support/src/storage/types/key.rs @@ -18,10 +18,10 @@ //! Storage key type. use crate::hash::{ReversibleStorageHasher, StorageHasher}; +use alloc::{boxed::Box, vec::Vec}; use codec::{Encode, EncodeLike, FullCodec, MaxEncodedLen}; use paste::paste; use scale_info::StaticTypeInfo; -use sp_std::prelude::*; /// A type used exclusively by storage maps as their key type. /// @@ -203,19 +203,19 @@ impl<'a, T: EncodeLike + EncodeLikeTuple, U: Encode> EncodeLikeTuple /// Trait to indicate that a tuple can be converted into an iterator of a vector of encoded bytes. pub trait TupleToEncodedIter { - fn to_encoded_iter(&self) -> sp_std::vec::IntoIter>; + fn to_encoded_iter(&self) -> alloc::vec::IntoIter>; } #[impl_trait_for_tuples::impl_for_tuples(1, 18)] #[tuple_types_custom_trait_bound(Encode)] impl TupleToEncodedIter for Tuple { - fn to_encoded_iter(&self) -> sp_std::vec::IntoIter> { + fn to_encoded_iter(&self) -> alloc::vec::IntoIter> { [for_tuples!( #(self.Tuple.encode()),* )].to_vec().into_iter() } } impl TupleToEncodedIter for &T { - fn to_encoded_iter(&self) -> sp_std::vec::IntoIter> { + fn to_encoded_iter(&self) -> alloc::vec::IntoIter> { (*self).to_encoded_iter() } } @@ -223,7 +223,7 @@ impl TupleToEncodedIter for &T { impl<'a, T: EncodeLike + TupleToEncodedIter, U: Encode> TupleToEncodedIter for codec::Ref<'a, T, U> { - fn to_encoded_iter(&self) -> sp_std::vec::IntoIter> { + fn to_encoded_iter(&self) -> alloc::vec::IntoIter> { use core::ops::Deref as _; self.deref().to_encoded_iter() } diff --git a/substrate/frame/support/src/storage/types/map.rs b/substrate/frame/support/src/storage/types/map.rs index b79a6ae9b84..b70026eea50 100644 --- a/substrate/frame/support/src/storage/types/map.rs +++ b/substrate/frame/support/src/storage/types/map.rs @@ -26,11 +26,11 @@ use crate::{ traits::{Get, GetDefault, StorageInfo, StorageInstance}, StorageHasher, Twox128, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen}; use frame_support::storage::StorageDecodeNonDedupLength; use sp_arithmetic::traits::SaturatedConversion; use sp_metadata_ir::{StorageEntryMetadataIR, StorageEntryTypeIR}; -use sp_std::prelude::*; /// A type representing a *map* in storage. A *storage map* is a mapping of keys to values of a /// given type stored on-chain. diff --git a/substrate/frame/support/src/storage/types/mod.rs b/substrate/frame/support/src/storage/types/mod.rs index 631410f425d..b063e11621d 100644 --- a/substrate/frame/support/src/storage/types/mod.rs +++ b/substrate/frame/support/src/storage/types/mod.rs @@ -18,9 +18,9 @@ //! Storage types to build abstraction on storage, they implements storage traits such as //! StorageMap and others. +use alloc::vec::Vec; use codec::FullCodec; use sp_metadata_ir::{StorageEntryMetadataIR, StorageEntryModifierIR}; -use sp_std::prelude::*; mod counted_map; mod counted_nmap; @@ -93,7 +93,7 @@ where } /// Implements [`QueryKindTrait`] with `Query` type being `Result`. -pub struct ResultQuery(sp_std::marker::PhantomData); +pub struct ResultQuery(core::marker::PhantomData); impl QueryKindTrait for ResultQuery where Value: FullCodec + 'static, diff --git a/substrate/frame/support/src/storage/types/nmap.rs b/substrate/frame/support/src/storage/types/nmap.rs index 253f02a14f0..c3dfd5b3e48 100755 --- a/substrate/frame/support/src/storage/types/nmap.rs +++ b/substrate/frame/support/src/storage/types/nmap.rs @@ -28,10 +28,10 @@ use crate::{ }, traits::{Get, GetDefault, StorageInfo, StorageInstance}, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen}; use sp_metadata_ir::{StorageEntryMetadataIR, StorageEntryTypeIR}; use sp_runtime::SaturatedConversion; -use sp_std::prelude::*; /// A type representing an *NMap* in storage. This structure associates an arbitrary number of keys /// with a value of a specified type stored on-chain. @@ -655,6 +655,7 @@ mod test { hash::{StorageHasher as _, *}, storage::types::{Key as NMapKey, ValueQuery}, }; + use alloc::boxed::Box; use sp_io::{hashing::twox_128, TestExternalities}; use sp_metadata_ir::{StorageEntryModifierIR, StorageHasherIR}; diff --git a/substrate/frame/support/src/storage/types/value.rs b/substrate/frame/support/src/storage/types/value.rs index a2d93a6a165..9cc985b36d8 100644 --- a/substrate/frame/support/src/storage/types/value.rs +++ b/substrate/frame/support/src/storage/types/value.rs @@ -25,11 +25,11 @@ use crate::{ }, traits::{Get, GetDefault, StorageInfo, StorageInstance}, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen}; use frame_support::storage::StorageDecodeNonDedupLength; use sp_arithmetic::traits::SaturatedConversion; use sp_metadata_ir::{StorageEntryMetadataIR, StorageEntryTypeIR}; -use sp_std::prelude::*; /// A type representing a *value* in storage. A *storage value* is a single value of a given type /// stored on-chain. diff --git a/substrate/frame/support/src/storage/unhashed.rs b/substrate/frame/support/src/storage/unhashed.rs index 776c7d0f3c3..7f9bc93d7d8 100644 --- a/substrate/frame/support/src/storage/unhashed.rs +++ b/substrate/frame/support/src/storage/unhashed.rs @@ -17,8 +17,8 @@ //! Operation on unhashed runtime storage. +use alloc::vec::Vec; use codec::{Decode, Encode}; -use sp_std::prelude::*; /// Return the value of the item in storage under `key`, or `None` if there is no explicit entry. pub fn get(key: &[u8]) -> Option { diff --git a/substrate/frame/support/src/traits/dynamic_params.rs b/substrate/frame/support/src/traits/dynamic_params.rs index 32dae6799ea..3ef298fc5a5 100644 --- a/substrate/frame/support/src/traits/dynamic_params.rs +++ b/substrate/frame/support/src/traits/dynamic_params.rs @@ -85,7 +85,7 @@ impl AggregatedKeyValue for () { /// /// This concretization is useful when configuring pallets, since a pallet will require a parameter /// store for its own KV type and not the aggregated runtime-wide KV type. -pub struct ParameterStoreAdapter(sp_std::marker::PhantomData<(PS, KV)>); +pub struct ParameterStoreAdapter(core::marker::PhantomData<(PS, KV)>); impl ParameterStore for ParameterStoreAdapter where diff --git a/substrate/frame/support/src/traits/filter.rs b/substrate/frame/support/src/traits/filter.rs index 44f9f136cfc..ff62449847d 100644 --- a/substrate/frame/support/src/traits/filter.rs +++ b/substrate/frame/support/src/traits/filter.rs @@ -18,7 +18,7 @@ //! Traits and associated utilities for dealing with abstract constraint filters. pub use super::members::Contains; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; /// Trait to add a constraint onto the filter. pub trait FilterStack: Contains { @@ -103,7 +103,7 @@ macro_rules! impl_filter_stack { mod $module { #[allow(unused_imports)] use super::*; - use $crate::__private::sp_std::{boxed::Box, cell::RefCell, mem::{swap, take}, vec::Vec}; + use std::{boxed::Box, cell::RefCell, mem::{swap, take}, vec::Vec}; use $crate::traits::filter::{Contains, FilterStack}; thread_local! { diff --git a/substrate/frame/support/src/traits/hooks.rs b/substrate/frame/support/src/traits/hooks.rs index 1a687cade79..012a74d0ae9 100644 --- a/substrate/frame/support/src/traits/hooks.rs +++ b/substrate/frame/support/src/traits/hooks.rs @@ -24,9 +24,10 @@ use crate::weights::Weight; use impl_trait_for_tuples::impl_for_tuples; use sp_runtime::traits::AtLeast32BitUnsigned; -use sp_std::prelude::*; use sp_weights::WeightMeter; +#[cfg(feature = "try-runtime")] +use alloc::vec::Vec; #[cfg(feature = "try-runtime")] use sp_runtime::TryRuntimeError; @@ -707,7 +708,7 @@ mod tests { #[test] fn on_idle_round_robin_works() { - static mut ON_IDLE_INVOCATION_ORDER: sp_std::vec::Vec<&str> = sp_std::vec::Vec::new(); + static mut ON_IDLE_INVOCATION_ORDER: alloc::vec::Vec<&str> = alloc::vec::Vec::new(); struct Test1; struct Test2; diff --git a/substrate/frame/support/src/traits/members.rs b/substrate/frame/support/src/traits/members.rs index 53de84ab224..89b6b6cdfad 100644 --- a/substrate/frame/support/src/traits/members.rs +++ b/substrate/frame/support/src/traits/members.rs @@ -17,10 +17,11 @@ //! Traits for dealing with the idea of membership. +use alloc::vec::Vec; +use core::marker::PhantomData; use impl_trait_for_tuples::impl_for_tuples; use sp_arithmetic::traits::AtLeast16BitUnsigned; use sp_runtime::DispatchResult; -use sp_std::{marker::PhantomData, prelude::*}; /// A trait for querying whether a type can be said to "contain" a value. pub trait Contains { diff --git a/substrate/frame/support/src/traits/messages.rs b/substrate/frame/support/src/traits/messages.rs index 3f8d80f5c6b..d2871623711 100644 --- a/substrate/frame/support/src/traits/messages.rs +++ b/substrate/frame/support/src/traits/messages.rs @@ -19,10 +19,10 @@ use super::storage::Footprint; use codec::{Decode, Encode, FullCodec, MaxEncodedLen}; +use core::{fmt::Debug, marker::PhantomData}; use scale_info::TypeInfo; use sp_core::{ConstU32, Get, TypedGet}; use sp_runtime::{traits::Convert, BoundedSlice, RuntimeDebug}; -use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; use sp_weights::{Weight, WeightMeter}; /// Errors that can happen when attempting to process a message with diff --git a/substrate/frame/support/src/traits/metadata.rs b/substrate/frame/support/src/traits/metadata.rs index 8bda4186bc9..1e46470a391 100644 --- a/substrate/frame/support/src/traits/metadata.rs +++ b/substrate/frame/support/src/traits/metadata.rs @@ -17,10 +17,11 @@ //! Traits for managing information attached to pallets and their constituents. +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; +use core::ops::Add; use impl_trait_for_tuples::impl_for_tuples; use sp_runtime::RuntimeDebug; -use sp_std::{ops::Add, prelude::*}; /// Provides information about the pallet itself and its setup in the runtime. /// @@ -146,16 +147,16 @@ impl CrateVersion { } } -impl sp_std::cmp::Ord for CrateVersion { - fn cmp(&self, other: &Self) -> sp_std::cmp::Ordering { +impl Ord for CrateVersion { + fn cmp(&self, other: &Self) -> core::cmp::Ordering { self.major .cmp(&other.major) .then_with(|| self.minor.cmp(&other.minor).then_with(|| self.patch.cmp(&other.patch))) } } -impl sp_std::cmp::PartialOrd for CrateVersion { - fn partial_cmp(&self, other: &Self) -> Option { +impl PartialOrd for CrateVersion { + fn partial_cmp(&self, other: &Self) -> Option { Some(::cmp(self, other)) } } @@ -248,7 +249,7 @@ impl PartialEq for StorageVersion { } impl PartialOrd for StorageVersion { - fn partial_cmp(&self, other: &u16) -> Option { + fn partial_cmp(&self, other: &u16) -> Option { Some(self.0.cmp(other)) } } diff --git a/substrate/frame/support/src/traits/misc.rs b/substrate/frame/support/src/traits/misc.rs index bc7407a7be6..7c8c22d1ae5 100644 --- a/substrate/frame/support/src/traits/misc.rs +++ b/substrate/frame/support/src/traits/misc.rs @@ -18,19 +18,20 @@ //! Smaller traits used in FRAME which don't need their own file. use crate::dispatch::{DispatchResult, Parameter}; +use alloc::{vec, vec::Vec}; use codec::{CompactLen, Decode, DecodeLimit, Encode, EncodeLike, Input, MaxEncodedLen}; use impl_trait_for_tuples::impl_for_tuples; use scale_info::{build::Fields, meta_type, Path, Type, TypeInfo, TypeParameter}; use sp_arithmetic::traits::{CheckedAdd, CheckedMul, CheckedSub, One, Saturating}; use sp_core::bounded::bounded_vec::TruncateFrom; +use core::cmp::Ordering; #[doc(hidden)] pub use sp_runtime::traits::{ ConstBool, ConstI128, ConstI16, ConstI32, ConstI64, ConstI8, ConstU128, ConstU16, ConstU32, ConstU64, ConstU8, Get, GetDefault, TryCollect, TypedGet, }; use sp_runtime::{traits::Block as BlockT, DispatchError}; -use sp_std::{cmp::Ordering, prelude::*}; #[doc(hidden)] pub const DEFENSIVE_OP_PUBLIC_ERROR: &str = "a defensive failure has been triggered; please report the block number at https://github.com/paritytech/substrate/issues"; @@ -48,7 +49,7 @@ impl VariantCount for () { } /// Adapter for `Get` to access `VARIANT_COUNT` from `trait pub trait VariantCount {`. -pub struct VariantCountOf(sp_std::marker::PhantomData); +pub struct VariantCountOf(core::marker::PhantomData); impl Get for VariantCountOf { fn get() -> u32 { T::VARIANT_COUNT @@ -190,10 +191,10 @@ pub trait DefensiveOption { /// Defensively transform this option to a result, mapping `None` to the return value of an /// error closure. - fn defensive_ok_or_else E>(self, err: F) -> Result; + fn defensive_ok_or_else E>(self, err: F) -> Result; /// Defensively transform this option to a result, mapping `None` to a default value. - fn defensive_ok_or(self, err: E) -> Result; + fn defensive_ok_or(self, err: E) -> Result; /// Exactly the same as `map`, but it prints the appropriate warnings if the value being mapped /// is `None`. @@ -252,7 +253,7 @@ impl Defensive for Option { } } -impl Defensive for Result { +impl Defensive for Result { fn defensive_unwrap_or(self, or: T) -> T { match self { Ok(inner) => inner, @@ -307,7 +308,7 @@ impl Defensive for Result { } } -impl DefensiveResult for Result { +impl DefensiveResult for Result { fn defensive_map_err F>(self, o: O) -> Result { self.map_err(|e| { defensive!(e); @@ -357,7 +358,7 @@ impl DefensiveOption for Option { ) } - fn defensive_ok_or_else E>(self, err: F) -> Result { + fn defensive_ok_or_else E>(self, err: F) -> Result { self.ok_or_else(|| { let err_value = err(); defensive!(err_value); @@ -365,7 +366,7 @@ impl DefensiveOption for Option { }) } - fn defensive_ok_or(self, err: E) -> Result { + fn defensive_ok_or(self, err: E) -> Result { self.ok_or_else(|| { defensive!(err); err @@ -416,11 +417,11 @@ impl DefensiveSatura } fn defensive_saturating_accrue(&mut self, other: Self) { // Use `replace` here since `take` would require `T: Default`. - *self = sp_std::mem::replace(self, One::one()).defensive_saturating_add(other); + *self = core::mem::replace(self, One::one()).defensive_saturating_add(other); } fn defensive_saturating_reduce(&mut self, other: Self) { // Use `replace` here since `take` would require `T: Default`. - *self = sp_std::mem::replace(self, One::one()).defensive_saturating_sub(other); + *self = core::mem::replace(self, One::one()).defensive_saturating_sub(other); } fn defensive_saturating_inc(&mut self) { self.defensive_saturating_accrue(One::one()); @@ -510,7 +511,7 @@ pub trait DefensiveMin { impl DefensiveMin for T where - T: sp_std::cmp::PartialOrd, + T: PartialOrd, { fn defensive_min(self, other: T) -> Self { if self <= other { @@ -574,7 +575,7 @@ pub trait DefensiveMax { impl DefensiveMax for T where - T: sp_std::cmp::PartialOrd, + T: PartialOrd, { fn defensive_max(self, other: T) -> Self { if self >= other { @@ -1050,7 +1051,7 @@ impl TypeInfo for WrapperOpaque { #[derive(Debug, Eq, PartialEq, Default, Clone)] pub struct WrapperKeepOpaque { data: Vec, - _phantom: sp_std::marker::PhantomData, + _phantom: core::marker::PhantomData, } impl WrapperKeepOpaque { @@ -1073,7 +1074,7 @@ impl WrapperKeepOpaque { /// Create from the given encoded `data`. pub fn from_encoded(data: Vec) -> Self { - Self { data, _phantom: sp_std::marker::PhantomData } + Self { data, _phantom: core::marker::PhantomData } } } @@ -1100,7 +1101,7 @@ impl Encode for WrapperKeepOpaque { impl Decode for WrapperKeepOpaque { fn decode(input: &mut I) -> Result { - Ok(Self { data: Vec::::decode(input)?, _phantom: sp_std::marker::PhantomData }) + Ok(Self { data: Vec::::decode(input)?, _phantom: core::marker::PhantomData }) } fn skip(input: &mut I) -> Result<(), codec::Error> { @@ -1212,8 +1213,8 @@ pub trait AccountTouch { #[cfg(test)] mod test { use super::*; + use core::marker::PhantomData; use sp_core::bounded::{BoundedSlice, BoundedVec}; - use sp_std::marker::PhantomData; #[test] fn defensive_assert_works() { diff --git a/substrate/frame/support/src/traits/preimages.rs b/substrate/frame/support/src/traits/preimages.rs index 647af029c16..80020d8d008 100644 --- a/substrate/frame/support/src/traits/preimages.rs +++ b/substrate/frame/support/src/traits/preimages.rs @@ -17,6 +17,7 @@ //! Stuff for dealing with hashed preimages. +use alloc::borrow::Cow; use codec::{Decode, Encode, EncodeLike, MaxEncodedLen}; use scale_info::TypeInfo; use sp_core::RuntimeDebug; @@ -24,7 +25,6 @@ use sp_runtime::{ traits::{ConstU32, Hash}, DispatchError, }; -use sp_std::borrow::Cow; pub type BoundedInline = crate::BoundedVec>; @@ -37,7 +37,7 @@ pub enum Bounded { /// A hash with no preimage length. We do not support creation of this except /// for transitioning from legacy state. In the future we will make this a pure /// `Dummy` item storing only the final `dummy` field. - Legacy { hash: H::Output, dummy: sp_std::marker::PhantomData }, + Legacy { hash: H::Output, dummy: core::marker::PhantomData }, /// A an bounded `Call`. Its encoding must be at most 128 bytes. Inline(BoundedInline), /// A hash of the call together with an upper limit for its size.` @@ -61,7 +61,7 @@ impl Bounded { { use Bounded::*; match self { - Legacy { hash, .. } => Legacy { hash, dummy: sp_std::marker::PhantomData }, + Legacy { hash, .. } => Legacy { hash, dummy: core::marker::PhantomData }, Inline(x) => Inline(x), Lookup { hash, len } => Lookup { hash, len }, } @@ -123,7 +123,7 @@ impl Bounded { /// Constructs a `Legacy` bounded item. #[deprecated = "This API is only for transitioning to Scheduler v3 API"] pub fn from_legacy_hash(hash: impl Into) -> Self { - Self::Legacy { hash: hash.into(), dummy: sp_std::marker::PhantomData } + Self::Legacy { hash: hash.into(), dummy: core::marker::PhantomData } } } diff --git a/substrate/frame/support/src/traits/schedule.rs b/substrate/frame/support/src/traits/schedule.rs index f41c73fe69a..a302e28d4ce 100644 --- a/substrate/frame/support/src/traits/schedule.rs +++ b/substrate/frame/support/src/traits/schedule.rs @@ -19,10 +19,11 @@ #[allow(deprecated)] use super::PreimageProvider; +use alloc::vec::Vec; use codec::{Codec, Decode, Encode, EncodeLike, MaxEncodedLen}; +use core::{fmt::Debug, result::Result}; use scale_info::TypeInfo; use sp_runtime::{traits::Saturating, DispatchError, RuntimeDebug}; -use sp_std::{fmt::Debug, prelude::*, result::Result}; /// Information relating to the period of a scheduled task. First item is the length of the /// period and the second is the number of times it should be executed in total before the task @@ -182,7 +183,7 @@ pub mod v1 { /// A type that can be used as a scheduler. pub trait Named { /// An address which can be used for removing a scheduled task. - type Address: Codec + Clone + Eq + EncodeLike + sp_std::fmt::Debug + MaxEncodedLen; + type Address: Codec + Clone + Eq + EncodeLike + core::fmt::Debug + MaxEncodedLen; /// Schedule a dispatch to happen at the beginning of some block in the future. /// @@ -353,7 +354,7 @@ pub mod v2 { /// A type that can be used as a scheduler. pub trait Named { /// An address which can be used for removing a scheduled task. - type Address: Codec + Clone + Eq + EncodeLike + sp_std::fmt::Debug + MaxEncodedLen; + type Address: Codec + Clone + Eq + EncodeLike + core::fmt::Debug + MaxEncodedLen; /// A means of expressing a call by the hash of its encoded data. type Hash; @@ -448,7 +449,7 @@ pub mod v3 { /// A type that can be used as a scheduler. pub trait Named { /// An address which can be used for removing a scheduled task. - type Address: Codec + MaxEncodedLen + Clone + Eq + EncodeLike + sp_std::fmt::Debug; + type Address: Codec + MaxEncodedLen + Clone + Eq + EncodeLike + core::fmt::Debug; /// The hasher used in the runtime. type Hasher: sp_runtime::traits::Hash; diff --git a/substrate/frame/support/src/traits/storage.rs b/substrate/frame/support/src/traits/storage.rs index 875ff56bea1..22fb28e4c0e 100644 --- a/substrate/frame/support/src/traits/storage.rs +++ b/substrate/frame/support/src/traits/storage.rs @@ -17,6 +17,7 @@ //! Traits for encoding data related to pallet's storage items. +use alloc::{collections::btree_set::BTreeSet, vec, vec::Vec}; use codec::{Encode, FullCodec, MaxEncodedLen}; use core::marker::PhantomData; use impl_trait_for_tuples::impl_for_tuples; @@ -27,7 +28,6 @@ use sp_runtime::{ traits::{Convert, Member, Saturating}, DispatchError, RuntimeDebug, }; -use sp_std::{collections::btree_set::BTreeSet, prelude::*}; /// An instance of a pallet in the storage. /// diff --git a/substrate/frame/support/src/traits/tasks.rs b/substrate/frame/support/src/traits/tasks.rs index 42b837e5597..0b5d0c08250 100644 --- a/substrate/frame/support/src/traits/tasks.rs +++ b/substrate/frame/support/src/traits/tasks.rs @@ -18,20 +18,22 @@ //! Contains the [`Task`] trait, which defines a general-purpose way for defining and executing //! service work, and supporting types. +use alloc::{vec, vec::IntoIter}; use codec::FullCodec; +use core::{fmt::Debug, iter::Iterator}; use scale_info::TypeInfo; use sp_runtime::DispatchError; -use sp_std::{fmt::Debug, iter::Iterator, vec, vec::IntoIter}; use sp_weights::Weight; /// Contain's re-exports of all the supporting types for the [`Task`] trait. Used in the macro /// expansion of `RuntimeTask`. #[doc(hidden)] pub mod __private { + pub use alloc::{vec, vec::IntoIter}; pub use codec::FullCodec; + pub use core::{fmt::Debug, iter::Iterator}; pub use scale_info::TypeInfo; pub use sp_runtime::DispatchError; - pub use sp_std::{fmt::Debug, iter::Iterator, vec, vec::IntoIter}; pub use sp_weights::Weight; } diff --git a/substrate/frame/support/src/traits/tokens/currency/reservable.rs b/substrate/frame/support/src/traits/tokens/currency/reservable.rs index ff8b0c6eea8..60ea9a71805 100644 --- a/substrate/frame/support/src/traits/tokens/currency/reservable.rs +++ b/substrate/frame/support/src/traits/tokens/currency/reservable.rs @@ -242,7 +242,7 @@ pub trait NamedReservableCurrency: ReservableCurrency { /// /// All "anonymous" operations are then implemented as their named counterparts with the given `Id`. pub struct WithName( - sp_std::marker::PhantomData<(NamedReservable, Id, AccountId)>, + core::marker::PhantomData<(NamedReservable, Id, AccountId)>, ); impl< NamedReservable: NamedReservableCurrency, diff --git a/substrate/frame/support/src/traits/tokens/fungible/imbalance.rs b/substrate/frame/support/src/traits/tokens/fungible/imbalance.rs index 020dffe28c8..41907b2aa00 100644 --- a/substrate/frame/support/src/traits/tokens/fungible/imbalance.rs +++ b/substrate/frame/support/src/traits/tokens/fungible/imbalance.rs @@ -26,9 +26,9 @@ use crate::traits::{ misc::{SameOrOther, TryDrop}, tokens::{AssetId, Balance}, }; +use core::marker::PhantomData; use frame_support_procedural::{EqNoBound, PartialEqNoBound, RuntimeDebugNoBound}; use sp_runtime::traits::Zero; -use sp_std::marker::PhantomData; /// Handler for when an imbalance gets dropped. This could handle either a credit (negative) or /// debt (positive) imbalance. @@ -93,7 +93,7 @@ impl, OppositeOnDrop: HandleImbalance /// Forget the imbalance without invoking the on-drop handler. pub(crate) fn forget(imbalance: Self) { - sp_std::mem::forget(imbalance); + core::mem::forget(imbalance); } } @@ -108,7 +108,7 @@ impl, OppositeOnDrop: HandleImbalance fn drop_zero(self) -> Result<(), Self> { if self.amount.is_zero() { - sp_std::mem::forget(self); + core::mem::forget(self); Ok(()) } else { Err(self) @@ -118,7 +118,7 @@ impl, OppositeOnDrop: HandleImbalance fn split(self, amount: B) -> (Self, Self) { let first = self.amount.min(amount); let second = self.amount - first; - sp_std::mem::forget(self); + core::mem::forget(self); (Imbalance::new(first), Imbalance::new(second)) } @@ -130,19 +130,19 @@ impl, OppositeOnDrop: HandleImbalance fn merge(mut self, other: Self) -> Self { self.amount = self.amount.saturating_add(other.amount); - sp_std::mem::forget(other); + core::mem::forget(other); self } fn subsume(&mut self, other: Self) { self.amount = self.amount.saturating_add(other.amount); - sp_std::mem::forget(other); + core::mem::forget(other); } fn offset( self, other: Imbalance, ) -> SameOrOther> { let (a, b) = (self.amount, other.amount); - sp_std::mem::forget((self, other)); + core::mem::forget((self, other)); if a == b { SameOrOther::None diff --git a/substrate/frame/support/src/traits/tokens/fungible/item_of.rs b/substrate/frame/support/src/traits/tokens/fungible/item_of.rs index 2aa53d622db..c9f366911a8 100644 --- a/substrate/frame/support/src/traits/tokens/fungible/item_of.rs +++ b/substrate/frame/support/src/traits/tokens/fungible/item_of.rs @@ -39,7 +39,7 @@ pub struct ItemOf< F: fungibles::Inspect, A: Get<>::AssetId>, AccountId, ->(sp_std::marker::PhantomData<(F, A, AccountId)>); +>(core::marker::PhantomData<(F, A, AccountId)>); impl< F: fungibles::Inspect, @@ -361,7 +361,7 @@ impl< } pub struct ConvertImbalanceDropHandler( - sp_std::marker::PhantomData<(AccountId, Balance, AssetIdType, AssetId, Handler)>, + core::marker::PhantomData<(AccountId, Balance, AssetIdType, AssetId, Handler)>, ); impl< diff --git a/substrate/frame/support/src/traits/tokens/fungible/mod.rs b/substrate/frame/support/src/traits/tokens/fungible/mod.rs index a113cb01c98..f40e494b930 100644 --- a/substrate/frame/support/src/traits/tokens/fungible/mod.rs +++ b/substrate/frame/support/src/traits/tokens/fungible/mod.rs @@ -65,7 +65,7 @@ //! "stack". This means that if an account has 3 freezes for 100 units, the account can spend its //! funds for any reason down to 100 units, at which point the freezes will start to come into //! play. -//! +//! //! It's important to note that the frozen balance can exceed the total balance of the account. //! This is useful, eg, in cases where you want to prevent a user from transferring any fund. In //! such a case, setting the frozen balance to `Balance::MAX` would serve that purpose @@ -161,9 +161,9 @@ mod regular; mod union_of; use codec::{Decode, Encode, MaxEncodedLen}; +use core::marker::PhantomData; use frame_support_procedural::{CloneNoBound, EqNoBound, PartialEqNoBound, RuntimeDebugNoBound}; use scale_info::TypeInfo; -use sp_std::marker::PhantomData; use super::{ Fortitude::{Force, Polite}, diff --git a/substrate/frame/support/src/traits/tokens/fungible/regular.rs b/substrate/frame/support/src/traits/tokens/fungible/regular.rs index c46614be473..54a04444649 100644 --- a/substrate/frame/support/src/traits/tokens/fungible/regular.rs +++ b/substrate/frame/support/src/traits/tokens/fungible/regular.rs @@ -36,9 +36,9 @@ use crate::{ SameOrOther, TryDrop, }, }; +use core::marker::PhantomData; use sp_arithmetic::traits::{CheckedAdd, CheckedSub, One}; use sp_runtime::{traits::Saturating, ArithmeticError, DispatchError, TokenError}; -use sp_std::marker::PhantomData; use super::{Credit, Debt, HandleImbalanceDrop, Imbalance}; diff --git a/substrate/frame/support/src/traits/tokens/fungible/union_of.rs b/substrate/frame/support/src/traits/tokens/fungible/union_of.rs index 63791b05223..3adbbdda314 100644 --- a/substrate/frame/support/src/traits/tokens/fungible/union_of.rs +++ b/substrate/frame/support/src/traits/tokens/fungible/union_of.rs @@ -21,6 +21,7 @@ //! See the [`crate::traits::fungible`] doc for more information about fungible traits. use codec::{Decode, Encode, MaxEncodedLen}; +use core::cmp::Ordering; use frame_support::traits::{ fungible::imbalance, tokens::{ @@ -36,7 +37,6 @@ use sp_runtime::{ Either::{Left, Right}, RuntimeDebug, }; -use sp_std::cmp::Ordering; /// The `NativeOrWithId` enum classifies an asset as either `Native` to the current chain or as an /// asset with a specific ID. @@ -101,7 +101,7 @@ impl Convert, Either<(), AssetId>> for Nat /// - `AssetKind` is a superset type encompassing asset kinds from `Left` and `Right` sets. /// - `AccountId` is an account identifier type. pub struct UnionOf( - sp_std::marker::PhantomData<(Left, Right, Criterion, AssetKind, AccountId)>, + core::marker::PhantomData<(Left, Right, Criterion, AssetKind, AccountId)>, ); impl< @@ -664,7 +664,7 @@ pub struct ConvertImbalanceDropHandler< Balance, AssetId, AccountId, ->(sp_std::marker::PhantomData<(Left, Right, Criterion, AssetKind, Balance, AssetId, AccountId)>); +>(core::marker::PhantomData<(Left, Right, Criterion, AssetKind, Balance, AssetId, AccountId)>); impl< Left: fungible::HandleImbalanceDrop, diff --git a/substrate/frame/support/src/traits/tokens/fungibles/imbalance.rs b/substrate/frame/support/src/traits/tokens/fungibles/imbalance.rs index bb0d83721a4..c3b213cc8fc 100644 --- a/substrate/frame/support/src/traits/tokens/fungibles/imbalance.rs +++ b/substrate/frame/support/src/traits/tokens/fungibles/imbalance.rs @@ -26,9 +26,9 @@ use crate::traits::{ misc::{SameOrOther, TryDrop}, tokens::{imbalance::Imbalance as ImbalanceT, AssetId, Balance}, }; +use core::marker::PhantomData; use frame_support_procedural::{EqNoBound, PartialEqNoBound, RuntimeDebugNoBound}; use sp_runtime::traits::Zero; -use sp_std::marker::PhantomData; /// Handler for when an imbalance gets dropped. This could handle either a credit (negative) or /// debt (positive) imbalance. @@ -98,12 +98,12 @@ impl< /// Forget the imbalance without invoking the on-drop handler. pub(crate) fn forget(imbalance: Self) { - sp_std::mem::forget(imbalance); + core::mem::forget(imbalance); } pub fn drop_zero(self) -> Result<(), Self> { if self.amount.is_zero() { - sp_std::mem::forget(self); + core::mem::forget(self); Ok(()) } else { Err(self) @@ -114,7 +114,7 @@ impl< let first = self.amount.min(amount); let second = self.amount - first; let asset = self.asset.clone(); - sp_std::mem::forget(self); + core::mem::forget(self); (Imbalance::new(asset.clone(), first), Imbalance::new(asset, second)) } @@ -129,7 +129,7 @@ impl< pub fn merge(mut self, other: Self) -> Result { if self.asset == other.asset { self.amount = self.amount.saturating_add(other.amount); - sp_std::mem::forget(other); + core::mem::forget(other); Ok(self) } else { Err((self, other)) @@ -138,7 +138,7 @@ impl< pub fn subsume(&mut self, other: Self) -> Result<(), Self> { if self.asset == other.asset { self.amount = self.amount.saturating_add(other.amount); - sp_std::mem::forget(other); + core::mem::forget(other); Ok(()) } else { Err(other) @@ -154,7 +154,7 @@ impl< if self.asset == other.asset { let (a, b) = (self.amount, other.amount); let asset = self.asset.clone(); - sp_std::mem::forget((self, other)); + core::mem::forget((self, other)); if a == b { Ok(SameOrOther::None) diff --git a/substrate/frame/support/src/traits/tokens/fungibles/metadata.rs b/substrate/frame/support/src/traits/tokens/fungibles/metadata.rs index ab722426dad..27f663e5750 100644 --- a/substrate/frame/support/src/traits/tokens/fungibles/metadata.rs +++ b/substrate/frame/support/src/traits/tokens/fungibles/metadata.rs @@ -20,7 +20,7 @@ //! See the [`crate::traits::fungibles`] doc for more information about fungibles traits. use crate::dispatch::DispatchResult; -use sp_std::vec::Vec; +use alloc::vec::Vec; pub trait Inspect: super::Inspect { // Get name for an AssetId. diff --git a/substrate/frame/support/src/traits/tokens/fungibles/regular.rs b/substrate/frame/support/src/traits/tokens/fungibles/regular.rs index 946c4756cff..3985da7856d 100644 --- a/substrate/frame/support/src/traits/tokens/fungibles/regular.rs +++ b/substrate/frame/support/src/traits/tokens/fungibles/regular.rs @@ -19,7 +19,7 @@ //! //! See the [`crate::traits::fungibles`] doc for more information about fungibles traits. -use sp_std::marker::PhantomData; +use core::marker::PhantomData; use crate::{ ensure, diff --git a/substrate/frame/support/src/traits/tokens/fungibles/union_of.rs b/substrate/frame/support/src/traits/tokens/fungibles/union_of.rs index f4259a78f0a..77047150e00 100644 --- a/substrate/frame/support/src/traits/tokens/fungibles/union_of.rs +++ b/substrate/frame/support/src/traits/tokens/fungibles/union_of.rs @@ -41,7 +41,7 @@ use sp_runtime::{ /// - `AssetKind` is a superset type encompassing asset kinds from `Left` and `Right` sets. /// - `AccountId` is an account identifier type. pub struct UnionOf( - sp_std::marker::PhantomData<(Left, Right, Criterion, AssetKind, AccountId)>, + core::marker::PhantomData<(Left, Right, Criterion, AssetKind, AccountId)>, ); impl< @@ -622,7 +622,7 @@ pub struct ConvertImbalanceDropHandler< Balance, AccountId, >( - sp_std::marker::PhantomData<( + core::marker::PhantomData<( Left, Right, LeftAssetId, diff --git a/substrate/frame/support/src/traits/tokens/imbalance/on_unbalanced.rs b/substrate/frame/support/src/traits/tokens/imbalance/on_unbalanced.rs index ecb8de8841f..4bf9af3fbb1 100644 --- a/substrate/frame/support/src/traits/tokens/imbalance/on_unbalanced.rs +++ b/substrate/frame/support/src/traits/tokens/imbalance/on_unbalanced.rs @@ -17,9 +17,9 @@ //! Trait for handling imbalances. +use core::marker::PhantomData; use frame_support::traits::{fungible, fungibles, misc::TryDrop}; use sp_core::TypedGet; -use sp_std::marker::PhantomData; /// Handler for when some currency "account" decreased in balance for /// some reason. diff --git a/substrate/frame/support/src/traits/tokens/imbalance/signed_imbalance.rs b/substrate/frame/support/src/traits/tokens/imbalance/signed_imbalance.rs index 03e821b161b..eec892cc311 100644 --- a/substrate/frame/support/src/traits/tokens/imbalance/signed_imbalance.rs +++ b/substrate/frame/support/src/traits/tokens/imbalance/signed_imbalance.rs @@ -20,8 +20,8 @@ use super::super::imbalance::Imbalance; use crate::traits::misc::SameOrOther; use codec::FullCodec; +use core::fmt::Debug; use sp_runtime::traits::{AtLeast32BitUnsigned, MaybeSerializeDeserialize}; -use sp_std::fmt::Debug; /// Either a positive or a negative imbalance. pub enum SignedImbalance> { diff --git a/substrate/frame/support/src/traits/tokens/imbalance/split_two_ways.rs b/substrate/frame/support/src/traits/tokens/imbalance/split_two_ways.rs index 59a582389ba..d79ae562ec6 100644 --- a/substrate/frame/support/src/traits/tokens/imbalance/split_two_ways.rs +++ b/substrate/frame/support/src/traits/tokens/imbalance/split_two_ways.rs @@ -18,8 +18,8 @@ //! Means for splitting an imbalance into two and handling them differently. use super::super::imbalance::{Imbalance, OnUnbalanced}; +use core::{marker::PhantomData, ops::Div}; use sp_runtime::traits::Saturating; -use sp_std::{marker::PhantomData, ops::Div}; /// Split an unbalanced amount two ways between a common divisor. pub struct SplitTwoWays( diff --git a/substrate/frame/support/src/traits/tokens/misc.rs b/substrate/frame/support/src/traits/tokens/misc.rs index e1ff1e058ae..9fa1df86209 100644 --- a/substrate/frame/support/src/traits/tokens/misc.rs +++ b/substrate/frame/support/src/traits/tokens/misc.rs @@ -19,13 +19,13 @@ use crate::{traits::Contains, TypeInfo}; use codec::{Decode, Encode, FullCodec, MaxEncodedLen}; +use core::fmt::Debug; use sp_arithmetic::traits::{AtLeast32BitUnsigned, Zero}; use sp_core::RuntimeDebug; use sp_runtime::{ traits::{Convert, MaybeSerializeDeserialize}, ArithmeticError, DispatchError, TokenError, }; -use sp_std::fmt::Debug; /// The origin of funds to be used for a deposit operation. #[derive(Copy, Clone, RuntimeDebug, Eq, PartialEq)] @@ -351,7 +351,7 @@ pub trait GetSalary { } /// Adapter for a rank-to-salary `Convert` implementation into a `GetSalary` implementation. -pub struct ConvertRank(sp_std::marker::PhantomData); +pub struct ConvertRank(core::marker::PhantomData); impl> GetSalary for ConvertRank { fn get_salary(rank: R, _: &A) -> B { C::convert(rank) diff --git a/substrate/frame/support/src/traits/tokens/nonfungible.rs b/substrate/frame/support/src/traits/tokens/nonfungible.rs index e3fc84f1d57..249f84b2275 100644 --- a/substrate/frame/support/src/traits/tokens/nonfungible.rs +++ b/substrate/frame/support/src/traits/tokens/nonfungible.rs @@ -26,9 +26,9 @@ use super::nonfungibles; use crate::{dispatch::DispatchResult, traits::Get}; +use alloc::vec::Vec; use codec::{Decode, Encode}; use sp_runtime::TokenError; -use sp_std::prelude::*; /// Trait for providing an interface to a read-only NFT-like set of items. pub trait Inspect { @@ -125,7 +125,7 @@ pub struct ItemOf< F: nonfungibles::Inspect, A: Get<>::CollectionId>, AccountId, ->(sp_std::marker::PhantomData<(F, A, AccountId)>); +>(core::marker::PhantomData<(F, A, AccountId)>); impl< F: nonfungibles::Inspect, diff --git a/substrate/frame/support/src/traits/tokens/nonfungible_v2.rs b/substrate/frame/support/src/traits/tokens/nonfungible_v2.rs index 05f76e2859d..5775162e34e 100644 --- a/substrate/frame/support/src/traits/tokens/nonfungible_v2.rs +++ b/substrate/frame/support/src/traits/tokens/nonfungible_v2.rs @@ -29,9 +29,9 @@ use crate::{ dispatch::{DispatchResult, Parameter}, traits::Get, }; +use alloc::vec::Vec; use codec::{Decode, Encode}; use sp_runtime::TokenError; -use sp_std::prelude::*; /// Trait for providing an interface to a read-only NFT-like item. pub trait Inspect { @@ -207,7 +207,7 @@ pub struct ItemOf< F: nonfungibles::Inspect, A: Get<>::CollectionId>, AccountId, ->(sp_std::marker::PhantomData<(F, A, AccountId)>); +>(core::marker::PhantomData<(F, A, AccountId)>); impl< F: nonfungibles::Inspect, diff --git a/substrate/frame/support/src/traits/tokens/nonfungibles.rs b/substrate/frame/support/src/traits/tokens/nonfungibles.rs index 615e79c29c8..22358cf806f 100644 --- a/substrate/frame/support/src/traits/tokens/nonfungibles.rs +++ b/substrate/frame/support/src/traits/tokens/nonfungibles.rs @@ -28,9 +28,9 @@ //! `nonfungible` traits by using the `nonfungible::ItemOf` type adapter. use crate::dispatch::DispatchResult; +use alloc::vec::Vec; use codec::{Decode, Encode}; use sp_runtime::{DispatchError, TokenError}; -use sp_std::prelude::*; /// Trait for providing an interface to many read-only NFT-like sets of items. pub trait Inspect { diff --git a/substrate/frame/support/src/traits/tokens/nonfungibles_v2.rs b/substrate/frame/support/src/traits/tokens/nonfungibles_v2.rs index c0209b6d512..edf1c2b8023 100644 --- a/substrate/frame/support/src/traits/tokens/nonfungibles_v2.rs +++ b/substrate/frame/support/src/traits/tokens/nonfungibles_v2.rs @@ -28,9 +28,9 @@ //! `nonfungible` traits by using the `nonfungible::ItemOf` type adapter. use crate::dispatch::{DispatchResult, Parameter}; +use alloc::vec::Vec; use codec::{Decode, Encode}; use sp_runtime::{DispatchError, TokenError}; -use sp_std::prelude::*; /// Trait for providing an interface to many read-only NFT-like sets of items. pub trait Inspect { diff --git a/substrate/frame/support/src/traits/tokens/pay.rs b/substrate/frame/support/src/traits/tokens/pay.rs index 62d7a056a3f..5a7ed4d6aa1 100644 --- a/substrate/frame/support/src/traits/tokens/pay.rs +++ b/substrate/frame/support/src/traits/tokens/pay.rs @@ -18,10 +18,10 @@ //! The Pay trait and associated types. use codec::{Decode, Encode, FullCodec, MaxEncodedLen}; +use core::fmt::Debug; use scale_info::TypeInfo; use sp_core::{RuntimeDebug, TypedGet}; use sp_runtime::DispatchError; -use sp_std::fmt::Debug; use super::{fungible, fungibles, Balance, Preservation::Expendable}; diff --git a/substrate/frame/support/src/traits/try_runtime/decode_entire_state.rs b/substrate/frame/support/src/traits/try_runtime/decode_entire_state.rs index d5dc93fcf28..8dbeecd8e86 100644 --- a/substrate/frame/support/src/traits/try_runtime/decode_entire_state.rs +++ b/substrate/frame/support/src/traits/try_runtime/decode_entire_state.rs @@ -26,10 +26,10 @@ use crate::{ traits::{PartialStorageInfoTrait, StorageInfo}, StorageHasher, }; +use alloc::{vec, vec::Vec}; use codec::{Decode, DecodeAll, FullCodec}; use impl_trait_for_tuples::impl_for_tuples; use sp_core::Get; -use sp_std::prelude::*; /// Decode the entire data under the given storage type. /// @@ -82,8 +82,8 @@ impl core::fmt::Display for TryDecodeEntireStorageError { write!( f, "`{}::{}` key `{}` is undecodable", - &sp_std::str::from_utf8(&self.info.pallet_name).unwrap_or(""), - &sp_std::str::from_utf8(&self.info.storage_name).unwrap_or(""), + &alloc::str::from_utf8(&self.info.pallet_name).unwrap_or(""), + &alloc::str::from_utf8(&self.info.storage_name).unwrap_or(""), array_bytes::bytes2hex("0x", &self.key) ) } diff --git a/substrate/frame/support/src/traits/try_runtime/mod.rs b/substrate/frame/support/src/traits/try_runtime/mod.rs index c1bf1feb19e..09c33c01440 100644 --- a/substrate/frame/support/src/traits/try_runtime/mod.rs +++ b/substrate/frame/support/src/traits/try_runtime/mod.rs @@ -22,10 +22,10 @@ pub use decode_entire_state::{TryDecodeEntireStorage, TryDecodeEntireStorageErro use super::StorageInstance; +use alloc::vec::Vec; use impl_trait_for_tuples::impl_for_tuples; use sp_arithmetic::traits::AtLeast32BitUnsigned; use sp_runtime::TryRuntimeError; -use sp_std::prelude::*; /// Which state tests to execute. #[derive(codec::Encode, codec::Decode, Clone, scale_info::TypeInfo)] @@ -55,15 +55,15 @@ impl Default for Select { } } -impl sp_std::fmt::Debug for Select { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Debug for Select { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { Select::RoundRobin(x) => write!(f, "RoundRobin({})", x), Select::Only(x) => write!( f, "Only({:?})", x.iter() - .map(|x| sp_std::str::from_utf8(x).unwrap_or("")) + .map(|x| alloc::str::from_utf8(x).unwrap_or("")) .collect::>(), ), Select::All => write!(f, "All"), @@ -73,7 +73,7 @@ impl sp_std::fmt::Debug for Select { } #[cfg(feature = "std")] -impl sp_std::str::FromStr for Select { +impl std::str::FromStr for Select { type Err = &'static str; fn from_str(s: &str) -> Result { match s { @@ -153,9 +153,7 @@ pub trait TryState { #[cfg_attr(all(not(feature = "tuples-96"), not(feature = "tuples-128")), impl_for_tuples(64))] #[cfg_attr(all(feature = "tuples-96", not(feature = "tuples-128")), impl_for_tuples(96))] #[cfg_attr(all(feature = "tuples-128"), impl_for_tuples(128))] -impl TryState - for Tuple -{ +impl TryState for Tuple { for_tuples!( where #( Tuple: crate::traits::PalletInfoAccess )* ); fn try_state(n: BlockNumber, targets: Select) -> Result<(), TryRuntimeError> { match targets { @@ -221,7 +219,7 @@ impl TryState { /// Initializes a new tally. @@ -74,7 +74,7 @@ impl PollStatus { } } -pub struct ClassCountOf(sp_std::marker::PhantomData<(P, T)>); +pub struct ClassCountOf(core::marker::PhantomData<(P, T)>); impl> sp_runtime::traits::Get for ClassCountOf { fn get() -> u32 { P::classes().len() as u32 diff --git a/substrate/frame/support/test/Cargo.toml b/substrate/frame/support/test/Cargo.toml index 697e14ae1d3..82ac1d2c747 100644 --- a/substrate/frame/support/test/Cargo.toml +++ b/substrate/frame/support/test/Cargo.toml @@ -28,7 +28,6 @@ frame-support = { features = ["experimental"], workspace = true } frame-benchmarking = { workspace = true } sp-runtime = { workspace = true } sp-core = { workspace = true } -sp-std = { workspace = true } sp-version = { workspace = true } sp-metadata-ir = { workspace = true } trybuild = { features = ["diff"], workspace = true } @@ -57,7 +56,6 @@ std = [ "sp-metadata-ir/std", "sp-runtime/std", "sp-state-machine/std", - "sp-std/std", "sp-version/std", "test-pallet/std", ] diff --git a/substrate/frame/support/test/src/lib.rs b/substrate/frame/support/test/src/lib.rs index a8a72337503..b080740b0a4 100644 --- a/substrate/frame/support/test/src/lib.rs +++ b/substrate/frame/support/test/src/lib.rs @@ -127,7 +127,7 @@ pub mod pallet_prelude { /// Provides an implementation of [`frame_support::traits::Randomness`] that should only be used in /// tests! -pub struct TestRandomness(sp_std::marker::PhantomData); +pub struct TestRandomness(core::marker::PhantomData); impl frame_support::traits::Randomness> for TestRandomness diff --git a/substrate/frame/support/test/tests/issue2219.rs b/substrate/frame/support/test/tests/issue2219.rs index 20c2773406f..7a2138d056a 100644 --- a/substrate/frame/support/test/tests/issue2219.rs +++ b/substrate/frame/support/test/tests/issue2219.rs @@ -139,7 +139,7 @@ mod module { pub enable_storage_role: bool, pub request_life_time: u64, #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] diff --git a/substrate/frame/support/test/tests/origin.rs b/substrate/frame/support/test/tests/origin.rs index 4f14bda184c..e6dd0cfc0e3 100644 --- a/substrate/frame/support/test/tests/origin.rs +++ b/substrate/frame/support/test/tests/origin.rs @@ -65,7 +65,7 @@ mod nested { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -135,7 +135,7 @@ pub mod module { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] diff --git a/substrate/frame/support/test/tests/pallet.rs b/substrate/frame/support/test/tests/pallet.rs index c441d4c371a..6f8af949cc3 100644 --- a/substrate/frame/support/test/tests/pallet.rs +++ b/substrate/frame/support/test/tests/pallet.rs @@ -446,7 +446,7 @@ pub mod pallet { T::AccountId: From + SomeAssociation1 + From, { #[serde(skip)] - _config: sp_std::marker::PhantomData, + _config: core::marker::PhantomData, _myfield: u32, } diff --git a/substrate/frame/support/test/tests/pallet_instance.rs b/substrate/frame/support/test/tests/pallet_instance.rs index dfe4caa476d..09a49617044 100644 --- a/substrate/frame/support/test/tests/pallet_instance.rs +++ b/substrate/frame/support/test/tests/pallet_instance.rs @@ -15,6 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +use core::any::TypeId; use frame_support::{ derive_impl, dispatch::{DispatchClass, DispatchInfo, GetDispatchInfo, Pays}, @@ -33,7 +34,6 @@ use sp_io::{ TestExternalities, }; use sp_runtime::{DispatchError, ModuleError}; -use sp_std::any::TypeId; #[frame_support::pallet(dev_mode)] pub mod pallet { @@ -194,7 +194,7 @@ pub mod pallet { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig, I: 'static = ()> { #[serde(skip)] - _config: sp_std::marker::PhantomData<(T, I)>, + _config: core::marker::PhantomData<(T, I)>, _myfield: u32, } diff --git a/substrate/frame/support/test/tests/runtime.rs b/substrate/frame/support/test/tests/runtime.rs index 1f4d9110a24..06c2b5b7071 100644 --- a/substrate/frame/support/test/tests/runtime.rs +++ b/substrate/frame/support/test/tests/runtime.rs @@ -169,7 +169,7 @@ mod nested { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -251,7 +251,7 @@ pub mod module3 { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -871,7 +871,7 @@ fn test_metadata() { PalletMetadata { name: "Module3", storage: Some(PalletStorageMetadata { - prefix: "Module3", + prefix: "Module3", entries: vec![ StorageEntryMetadata { name: "Storage", diff --git a/substrate/frame/support/test/tests/runtime_legacy_ordering.rs b/substrate/frame/support/test/tests/runtime_legacy_ordering.rs index 6330a138e2f..4233db21e20 100644 --- a/substrate/frame/support/test/tests/runtime_legacy_ordering.rs +++ b/substrate/frame/support/test/tests/runtime_legacy_ordering.rs @@ -169,7 +169,7 @@ mod nested { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -251,7 +251,7 @@ pub mod module3 { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -808,7 +808,7 @@ fn test_metadata() { PalletMetadata { name: "Module3", storage: Some(PalletStorageMetadata { - prefix: "Module3", + prefix: "Module3", entries: vec![ StorageEntryMetadata { name: "Storage", diff --git a/substrate/frame/support/test/tests/versioned_migration.rs b/substrate/frame/support/test/tests/versioned_migration.rs index c83dd6b71de..58c9e4ce93b 100644 --- a/substrate/frame/support/test/tests/versioned_migration.rs +++ b/substrate/frame/support/test/tests/versioned_migration.rs @@ -51,7 +51,7 @@ mod dummy_pallet { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig { #[serde(skip)] - _config: sp_std::marker::PhantomData, + _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -90,7 +90,7 @@ pub(crate) fn new_test_ext() -> sp_io::TestExternalities { /// A dummy migration for testing the `VersionedMigration` trait. /// Sets SomeStorage to S. -struct SomeUnversionedMigration(sp_std::marker::PhantomData); +struct SomeUnversionedMigration(core::marker::PhantomData); parameter_types! { const UpgradeReads: u64 = 4; diff --git a/substrate/frame/system/benchmarking/Cargo.toml b/substrate/frame/system/benchmarking/Cargo.toml index 47a6721b93f..dec68d20b69 100644 --- a/substrate/frame/system/benchmarking/Cargo.toml +++ b/substrate/frame/system/benchmarking/Cargo.toml @@ -23,7 +23,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-core = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] sp-io = { workspace = true, default-features = true } @@ -42,7 +41,6 @@ std = [ "sp-externalities/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-version/std", ] diff --git a/substrate/frame/system/benchmarking/src/inner.rs b/substrate/frame/system/benchmarking/src/inner.rs index c1631b0a2e3..0fb592f3dbb 100644 --- a/substrate/frame/system/benchmarking/src/inner.rs +++ b/substrate/frame/system/benchmarking/src/inner.rs @@ -17,13 +17,13 @@ //! Frame System benchmarks. +use alloc::{vec, vec::Vec}; use codec::Encode; use frame_benchmarking::v2::*; use frame_support::{dispatch::DispatchClass, storage, traits::Get}; use frame_system::{Call, Pallet as System, RawOrigin}; use sp_core::storage::well_known_keys; use sp_runtime::traits::Hash; -use sp_std::{prelude::*, vec}; pub struct Pallet(System); pub trait Config: frame_system::Config { diff --git a/substrate/frame/system/benchmarking/src/lib.rs b/substrate/frame/system/benchmarking/src/lib.rs index e55038aeb95..f66d20ac8ae 100644 --- a/substrate/frame/system/benchmarking/src/lib.rs +++ b/substrate/frame/system/benchmarking/src/lib.rs @@ -19,6 +19,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(feature = "runtime-benchmarks")] pub mod inner; diff --git a/substrate/frame/system/src/extensions/check_genesis.rs b/substrate/frame/system/src/extensions/check_genesis.rs index 76a711a823e..000ec56da64 100644 --- a/substrate/frame/system/src/extensions/check_genesis.rs +++ b/substrate/frame/system/src/extensions/check_genesis.rs @@ -31,16 +31,16 @@ use sp_runtime::{ /// the extension does not affect any other fields of `TransactionValidity` directly. #[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckGenesis(sp_std::marker::PhantomData); +pub struct CheckGenesis(core::marker::PhantomData); -impl sp_std::fmt::Debug for CheckGenesis { +impl core::fmt::Debug for CheckGenesis { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckGenesis") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -48,7 +48,7 @@ impl sp_std::fmt::Debug for CheckGenesis { impl CheckGenesis { /// Creates new `SignedExtension` to check genesis hash. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } diff --git a/substrate/frame/system/src/extensions/check_mortality.rs b/substrate/frame/system/src/extensions/check_mortality.rs index 31fdbba5950..6666c4812fb 100644 --- a/substrate/frame/system/src/extensions/check_mortality.rs +++ b/substrate/frame/system/src/extensions/check_mortality.rs @@ -36,23 +36,23 @@ use sp_runtime::{ /// The extension affects `longevity` of the transaction according to the [`Era`] definition. #[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckMortality(pub Era, sp_std::marker::PhantomData); +pub struct CheckMortality(pub Era, core::marker::PhantomData); impl CheckMortality { /// utility constructor. Used only in client/factory code. pub fn from(era: Era) -> Self { - Self(era, sp_std::marker::PhantomData) + Self(era, core::marker::PhantomData) } } -impl sp_std::fmt::Debug for CheckMortality { +impl core::fmt::Debug for CheckMortality { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckMortality({:?})", self.0) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } diff --git a/substrate/frame/system/src/extensions/check_non_zero_sender.rs b/substrate/frame/system/src/extensions/check_non_zero_sender.rs index 92eed60fc66..06dc2bf177a 100644 --- a/substrate/frame/system/src/extensions/check_non_zero_sender.rs +++ b/substrate/frame/system/src/extensions/check_non_zero_sender.rs @@ -17,6 +17,7 @@ use crate::Config; use codec::{Decode, Encode}; +use core::marker::PhantomData; use frame_support::{dispatch::DispatchInfo, DefaultNoBound}; use scale_info::TypeInfo; use sp_runtime::{ @@ -25,21 +26,20 @@ use sp_runtime::{ InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction, }, }; -use sp_std::{marker::PhantomData, prelude::*}; /// Check to ensure that the sender is not the zero address. #[derive(Encode, Decode, DefaultNoBound, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] pub struct CheckNonZeroSender(PhantomData); -impl sp_std::fmt::Debug for CheckNonZeroSender { +impl core::fmt::Debug for CheckNonZeroSender { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckNonZeroSender") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -47,7 +47,7 @@ impl sp_std::fmt::Debug for CheckNonZeroSender { impl CheckNonZeroSender { /// Create new `SignedExtension` to check runtime version. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } @@ -61,7 +61,7 @@ where type Pre = (); const IDENTIFIER: &'static str = "CheckNonZeroSender"; - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } diff --git a/substrate/frame/system/src/extensions/check_nonce.rs b/substrate/frame/system/src/extensions/check_nonce.rs index 894ab72eb59..3535870d1b5 100644 --- a/substrate/frame/system/src/extensions/check_nonce.rs +++ b/substrate/frame/system/src/extensions/check_nonce.rs @@ -16,6 +16,7 @@ // limitations under the License. use crate::Config; +use alloc::vec; use codec::{Decode, Encode}; use frame_support::dispatch::DispatchInfo; use scale_info::TypeInfo; @@ -26,7 +27,6 @@ use sp_runtime::{ ValidTransaction, }, }; -use sp_std::vec; /// Nonce check and increment to give replay protection for transactions. /// @@ -46,14 +46,14 @@ impl CheckNonce { } } -impl sp_std::fmt::Debug for CheckNonce { +impl core::fmt::Debug for CheckNonce { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckNonce({})", self.0) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -68,7 +68,7 @@ where type Pre = (); const IDENTIFIER: &'static str = "CheckNonce"; - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } diff --git a/substrate/frame/system/src/extensions/check_spec_version.rs b/substrate/frame/system/src/extensions/check_spec_version.rs index 24d5ef9cafb..ee7e6f2efd0 100644 --- a/substrate/frame/system/src/extensions/check_spec_version.rs +++ b/substrate/frame/system/src/extensions/check_spec_version.rs @@ -31,16 +31,16 @@ use sp_runtime::{ /// is not affected in any other way. #[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckSpecVersion(sp_std::marker::PhantomData); +pub struct CheckSpecVersion(core::marker::PhantomData); -impl sp_std::fmt::Debug for CheckSpecVersion { +impl core::fmt::Debug for CheckSpecVersion { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckSpecVersion") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -48,7 +48,7 @@ impl sp_std::fmt::Debug for CheckSpecVersion { impl CheckSpecVersion { /// Create new `SignedExtension` to check runtime version. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } diff --git a/substrate/frame/system/src/extensions/check_tx_version.rs b/substrate/frame/system/src/extensions/check_tx_version.rs index 3f9d6a1903f..15983c2cd08 100644 --- a/substrate/frame/system/src/extensions/check_tx_version.rs +++ b/substrate/frame/system/src/extensions/check_tx_version.rs @@ -31,16 +31,16 @@ use sp_runtime::{ /// is not affected in any other way. #[derive(Encode, Decode, Clone, Eq, PartialEq, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckTxVersion(sp_std::marker::PhantomData); +pub struct CheckTxVersion(core::marker::PhantomData); -impl sp_std::fmt::Debug for CheckTxVersion { +impl core::fmt::Debug for CheckTxVersion { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckTxVersion") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -48,7 +48,7 @@ impl sp_std::fmt::Debug for CheckTxVersion { impl CheckTxVersion { /// Create new `SignedExtension` to check transaction version. pub fn new() -> Self { - Self(sp_std::marker::PhantomData) + Self(core::marker::PhantomData) } } diff --git a/substrate/frame/system/src/extensions/check_weight.rs b/substrate/frame/system/src/extensions/check_weight.rs index d4705f200ef..22da2a5b987 100644 --- a/substrate/frame/system/src/extensions/check_weight.rs +++ b/substrate/frame/system/src/extensions/check_weight.rs @@ -37,7 +37,7 @@ use sp_weights::Weight; /// transaction is valid. #[derive(Encode, Decode, Clone, Eq, PartialEq, Default, TypeInfo)] #[scale_info(skip_type_params(T))] -pub struct CheckWeight(sp_std::marker::PhantomData); +pub struct CheckWeight(core::marker::PhantomData); impl CheckWeight where @@ -211,7 +211,7 @@ where type Pre = (); const IDENTIFIER: &'static str = "CheckWeight"; - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } @@ -281,14 +281,14 @@ where } } -impl sp_std::fmt::Debug for CheckWeight { +impl core::fmt::Debug for CheckWeight { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "CheckWeight") } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -300,8 +300,8 @@ mod tests { mock::{new_test_ext, System, Test, CALL}, AllExtrinsicsLen, BlockWeight, DispatchClass, }; + use core::marker::PhantomData; use frame_support::{assert_err, assert_ok, dispatch::Pays, weights::Weight}; - use sp_std::marker::PhantomData; fn block_weights() -> crate::limits::BlockWeights { ::BlockWeights::get() diff --git a/substrate/frame/system/src/lib.rs b/substrate/frame/system/src/lib.rs index 84d00a1e917..0c6ff2cb8dd 100644 --- a/substrate/frame/system/src/lib.rs +++ b/substrate/frame/system/src/lib.rs @@ -97,6 +97,10 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +use alloc::{boxed::Box, vec, vec::Vec}; +use core::{fmt::Debug, marker::PhantomData}; use pallet_prelude::{BlockNumberFor, HeaderFor}; #[cfg(feature = "std")] use serde::Serialize; @@ -118,7 +122,6 @@ use sp_runtime::{ }; #[cfg(any(feature = "std", test))] use sp_std::map; -use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; use sp_version::RuntimeVersion; use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen}; @@ -269,7 +272,7 @@ pub mod pallet { /// /// NOTE: Avoids overriding `BlockHashCount` when using `mocking::{MockBlock, MockBlockU32, /// MockBlockU128}`. - pub struct TestBlockHashCount>(sp_std::marker::PhantomData); + pub struct TestBlockHashCount>(core::marker::PhantomData); impl, C: Get> Get for TestBlockHashCount { fn get() -> I { C::get().into() @@ -511,7 +514,7 @@ pub mod pallet { + Default + Copy + CheckEqual - + sp_std::hash::Hash + + core::hash::Hash + AsRef<[u8]> + AsMut<[u8]> + MaxEncodedLen; @@ -1011,7 +1014,7 @@ pub mod pallet { #[pallet::genesis_config] pub struct GenesisConfig { #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } #[pallet::genesis_build] @@ -1153,7 +1156,7 @@ impl From for LastRuntimeUpgradeInfo { } /// Ensure the origin is Root. -pub struct EnsureRoot(sp_std::marker::PhantomData); +pub struct EnsureRoot(core::marker::PhantomData); impl, O>> + From>, AccountId> EnsureOrigin for EnsureRoot { @@ -1179,7 +1182,7 @@ impl_ensure_origin_with_arg_ignoring_arg! { /// Ensure the origin is Root and return the provided `Success` value. pub struct EnsureRootWithSuccess( - sp_std::marker::PhantomData<(AccountId, Success)>, + core::marker::PhantomData<(AccountId, Success)>, ); impl< O: Into, O>> + From>, @@ -1209,7 +1212,7 @@ impl_ensure_origin_with_arg_ignoring_arg! { /// Ensure the origin is provided `Ensure` origin and return the provided `Success` value. pub struct EnsureWithSuccess( - sp_std::marker::PhantomData<(Ensure, AccountId, Success)>, + core::marker::PhantomData<(Ensure, AccountId, Success)>, ); impl< @@ -1232,7 +1235,7 @@ impl< } /// Ensure the origin is any `Signed` origin. -pub struct EnsureSigned(sp_std::marker::PhantomData); +pub struct EnsureSigned(core::marker::PhantomData); impl, O>> + From>, AccountId: Decode> EnsureOrigin for EnsureSigned { @@ -1259,7 +1262,7 @@ impl_ensure_origin_with_arg_ignoring_arg! { } /// Ensure the origin is `Signed` origin from the given `AccountId`. -pub struct EnsureSignedBy(sp_std::marker::PhantomData<(Who, AccountId)>); +pub struct EnsureSignedBy(core::marker::PhantomData<(Who, AccountId)>); impl< O: Into, O>> + From>, Who: SortedMembers, @@ -1291,7 +1294,7 @@ impl_ensure_origin_with_arg_ignoring_arg! { } /// Ensure the origin is `None`. i.e. unsigned transaction. -pub struct EnsureNone(sp_std::marker::PhantomData); +pub struct EnsureNone(core::marker::PhantomData); impl, O>> + From>, AccountId> EnsureOrigin for EnsureNone { @@ -1316,7 +1319,7 @@ impl_ensure_origin_with_arg_ignoring_arg! { } /// Always fail. -pub struct EnsureNever(sp_std::marker::PhantomData); +pub struct EnsureNever(core::marker::PhantomData); impl EnsureOrigin for EnsureNever { type Success = Success; fn try_origin(o: O) -> Result { @@ -1906,7 +1909,7 @@ impl Pallet { /// Should only be called if you know what you are doing and outside of the runtime block /// execution else it can have a large impact on the PoV size of a block. pub fn read_events_no_consensus( - ) -> impl sp_std::iter::Iterator>> { + ) -> impl Iterator>> { Events::::stream_iter() } diff --git a/substrate/frame/system/src/migrations/mod.rs b/substrate/frame/system/src/migrations/mod.rs index 945bbc53955..7c69843d73f 100644 --- a/substrate/frame/system/src/migrations/mod.rs +++ b/substrate/frame/system/src/migrations/mod.rs @@ -24,7 +24,6 @@ use frame_support::{ pallet_prelude::ValueQuery, traits::PalletInfoAccess, weights::Weight, Blake2_128Concat, }; use sp_runtime::RuntimeDebug; -use sp_std::prelude::*; /// Type used to encode the number of references an account has. type RefCount = u32; diff --git a/substrate/frame/system/src/offchain.rs b/substrate/frame/system/src/offchain.rs index a64b3261964..1f72ea2d374 100644 --- a/substrate/frame/system/src/offchain.rs +++ b/substrate/frame/system/src/offchain.rs @@ -56,13 +56,13 @@ #![warn(missing_docs)] +use alloc::{boxed::Box, collections::btree_set::BTreeSet, vec::Vec}; use codec::Encode; use sp_runtime::{ app_crypto::RuntimeAppPublic, traits::{Extrinsic as ExtrinsicT, IdentifyAccount, One}, RuntimeDebug, }; -use sp_std::{collections::btree_set::BTreeSet, prelude::*}; /// Marker struct used to flag using all supported keys to sign a payload. pub struct ForAll {} @@ -76,7 +76,7 @@ pub struct ForAny {} /// utility function can be used. However, this struct is used by `Signer` /// to submit a signed transactions providing the signature along with the call. pub struct SubmitTransaction, OverarchingCall> { - _phantom: sp_std::marker::PhantomData<(T, OverarchingCall)>, + _phantom: core::marker::PhantomData<(T, OverarchingCall)>, } impl SubmitTransaction @@ -115,7 +115,7 @@ where #[derive(RuntimeDebug)] pub struct Signer, X = ForAny> { accounts: Option>, - _phantom: sp_std::marker::PhantomData<(X, C)>, + _phantom: core::marker::PhantomData<(X, C)>, } impl, X> Default for Signer { diff --git a/substrate/frame/timestamp/Cargo.toml b/substrate/frame/timestamp/Cargo.toml index 2da6e2d5a95..25aecea7b79 100644 --- a/substrate/frame/timestamp/Cargo.toml +++ b/substrate/frame/timestamp/Cargo.toml @@ -26,7 +26,6 @@ frame-system = { workspace = true } sp-inherents = { workspace = true } sp-io = { optional = true, workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-storage = { workspace = true } sp-timestamp = { workspace = true } @@ -49,7 +48,6 @@ std = [ "sp-inherents/std", "sp-io?/std", "sp-runtime/std", - "sp-std/std", "sp-storage/std", "sp-timestamp/std", ] diff --git a/substrate/frame/timestamp/src/lib.rs b/substrate/frame/timestamp/src/lib.rs index 6a22ab1cd5e..ca495c5e24e 100644 --- a/substrate/frame/timestamp/src/lib.rs +++ b/substrate/frame/timestamp/src/lib.rs @@ -133,9 +133,9 @@ mod mock; mod tests; pub mod weights; +use core::{cmp, result}; use frame_support::traits::{OnTimestampSet, Time, UnixTime}; use sp_runtime::traits::{AtLeast32Bit, SaturatedConversion, Scale, Zero}; -use sp_std::{cmp, result}; use sp_timestamp::{InherentError, InherentType, INHERENT_IDENTIFIER}; pub use weights::WeightInfo; @@ -367,14 +367,12 @@ impl UnixTime for Pallet { // now is duration since unix epoch in millisecond as documented in // `sp_timestamp::InherentDataProvider`. let now = Now::::get(); - sp_std::if_std! { - if now == T::Moment::zero() { - log::error!( - target: "runtime::timestamp", - "`pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0", - ); - } - } + + log::error!( + target: "runtime::timestamp", + "`pallet_timestamp::UnixTime::now` is called at genesis, invalid value returned: 0", + ); + core::time::Duration::from_millis(now.saturated_into::()) } } diff --git a/substrate/frame/tips/Cargo.toml b/substrate/frame/tips/Cargo.toml index abebaa19aed..bec2ce0a47b 100644 --- a/substrate/frame/tips/Cargo.toml +++ b/substrate/frame/tips/Cargo.toml @@ -27,7 +27,6 @@ pallet-treasury = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -48,7 +47,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-storage/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/tips/src/lib.rs b/substrate/frame/tips/src/lib.rs index a75aed89d0b..67bcdfa0685 100644 --- a/substrate/frame/tips/src/lib.rs +++ b/substrate/frame/tips/src/lib.rs @@ -60,12 +60,14 @@ mod tests; pub mod migrations; pub mod weights; +extern crate alloc; + use sp_runtime::{ traits::{AccountIdConversion, BadOrigin, Hash, StaticLookup, TrailingZeroInput, Zero}, Percent, RuntimeDebug, }; -use sp_std::prelude::*; +use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; use frame_support::{ ensure, diff --git a/substrate/frame/tips/src/migrations/unreserve_deposits.rs b/substrate/frame/tips/src/migrations/unreserve_deposits.rs index 16cb1a80e81..afc424309bf 100644 --- a/substrate/frame/tips/src/migrations/unreserve_deposits.rs +++ b/substrate/frame/tips/src/migrations/unreserve_deposits.rs @@ -18,6 +18,7 @@ //! A migration that unreserves all deposit and unlocks all stake held in the context of this //! pallet. +use alloc::collections::btree_map::BTreeMap; use core::iter::Sum; use frame_support::{ pallet_prelude::OptionQuery, @@ -27,7 +28,6 @@ use frame_support::{ Parameter, Twox64Concat, }; use sp_runtime::{traits::Zero, Saturating}; -use sp_std::collections::btree_map::BTreeMap; #[cfg(feature = "try-runtime")] const LOG_TARGET: &str = "runtime::tips::migrations::unreserve_deposits"; @@ -85,7 +85,7 @@ type Tips, I: 'static> = StorageMap< /// The pallet should be made inoperable before or immediately after this migration is run. /// /// (See also the `RemovePallet` migration in `frame/support/src/migrations.rs`) -pub struct UnreserveDeposits, I: 'static>(sp_std::marker::PhantomData<(T, I)>); +pub struct UnreserveDeposits, I: 'static>(core::marker::PhantomData<(T, I)>); impl, I: 'static> UnreserveDeposits { /// Calculates and returns the total amount reserved by each account by this pallet from open @@ -133,7 +133,7 @@ where /// Fails with a `TryRuntimeError` if somehow the amount reserved by this pallet is greater than /// the actual total reserved amount for any accounts. #[cfg(feature = "try-runtime")] - fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { + fn pre_upgrade() -> Result, sp_runtime::TryRuntimeError> { use codec::Encode; use frame_support::ensure; @@ -189,7 +189,7 @@ where /// Verifies that the account reserved balances were reduced by the actual expected amounts. #[cfg(feature = "try-runtime")] fn post_upgrade( - account_reserved_before_bytes: sp_std::vec::Vec, + account_reserved_before_bytes: alloc::vec::Vec, ) -> Result<(), sp_runtime::TryRuntimeError> { use codec::Decode; diff --git a/substrate/frame/transaction-payment/Cargo.toml b/substrate/frame/transaction-payment/Cargo.toml index 3e890a8f7b6..c405ea1e943 100644 --- a/substrate/frame/transaction-payment/Cargo.toml +++ b/substrate/frame/transaction-payment/Cargo.toml @@ -26,7 +26,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] serde_json = { workspace = true, default-features = true } @@ -44,7 +43,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = [ "frame-support/try-runtime", diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/Cargo.toml b/substrate/frame/transaction-payment/asset-conversion-tx-payment/Cargo.toml index 02ce212deb6..b87d780b967 100644 --- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/Cargo.toml +++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/Cargo.toml @@ -18,7 +18,6 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] # Substrate dependencies sp-runtime = { workspace = true } -sp-std = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } pallet-asset-conversion = { workspace = true } @@ -47,7 +46,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-storage/std", ] try-runtime = [ diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/lib.rs b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/lib.rs index ed0ed56e6e0..538d88bfacf 100644 --- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/lib.rs +++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/lib.rs @@ -42,7 +42,7 @@ #![cfg_attr(not(feature = "std"), no_std)] -use sp_std::prelude::*; +extern crate alloc; use codec::{Decode, Encode}; use frame_support::{ @@ -214,13 +214,13 @@ where } } -impl sp_std::fmt::Debug for ChargeAssetTxPayment { +impl core::fmt::Debug for ChargeAssetTxPayment { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "ChargeAssetTxPayment<{:?}, {:?}>", self.tip, self.asset_id.encode()) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -252,7 +252,7 @@ where Option>, ); - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/payment.rs b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/payment.rs index f2f2c57bb37..0ef3fb11114 100644 --- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/payment.rs +++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/payment.rs @@ -17,6 +17,8 @@ use super::*; use crate::Config; +use alloc::vec; +use core::marker::PhantomData; use frame_support::{ ensure, traits::{fungible::Inspect, tokens::Balance}, @@ -28,7 +30,6 @@ use sp_runtime::{ transaction_validity::InvalidTransaction, Saturating, }; -use sp_std::marker::PhantomData; /// Handle withdrawing, refunding and depositing of transaction fees. pub trait OnChargeAssetTransaction { diff --git a/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml b/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml index 1b92ecf53c0..ec8fb38dda3 100644 --- a/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml +++ b/substrate/frame/transaction-payment/asset-tx-payment/Cargo.toml @@ -20,7 +20,6 @@ targets = ["x86_64-unknown-linux-gnu"] sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } @@ -57,7 +56,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-storage/std", ] runtime-benchmarks = [ diff --git a/substrate/frame/transaction-payment/asset-tx-payment/src/lib.rs b/substrate/frame/transaction-payment/asset-tx-payment/src/lib.rs index 753fae747a3..97f1116993f 100644 --- a/substrate/frame/transaction-payment/asset-tx-payment/src/lib.rs +++ b/substrate/frame/transaction-payment/asset-tx-payment/src/lib.rs @@ -35,8 +35,6 @@ #![cfg_attr(not(feature = "std"), no_std)] -use sp_std::prelude::*; - use codec::{Decode, Encode}; use frame_support::{ dispatch::{DispatchInfo, DispatchResult, PostDispatchInfo}, @@ -198,13 +196,13 @@ where } } -impl sp_std::fmt::Debug for ChargeAssetTxPayment { +impl core::fmt::Debug for ChargeAssetTxPayment { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "ChargeAssetTxPayment<{:?}, {:?}>", self.tip, self.asset_id.encode()) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -232,7 +230,7 @@ where Option>, ); - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } diff --git a/substrate/frame/transaction-payment/asset-tx-payment/src/payment.rs b/substrate/frame/transaction-payment/asset-tx-payment/src/payment.rs index 717114ab6bd..2486474bad4 100644 --- a/substrate/frame/transaction-payment/asset-tx-payment/src/payment.rs +++ b/substrate/frame/transaction-payment/asset-tx-payment/src/payment.rs @@ -18,6 +18,7 @@ use super::*; use crate::Config; use codec::FullCodec; +use core::{fmt::Debug, marker::PhantomData}; use frame_support::{ traits::{ fungibles::{Balanced, Credit, Inspect}, @@ -33,7 +34,6 @@ use sp_runtime::{ traits::{DispatchInfoOf, MaybeSerializeDeserialize, One, PostDispatchInfoOf}, transaction_validity::InvalidTransaction, }; -use sp_std::{fmt::Debug, marker::PhantomData}; /// Handle withdrawing, refunding and depositing of transaction fees. pub trait OnChargeAssetTransaction { diff --git a/substrate/frame/transaction-payment/skip-feeless-payment/Cargo.toml b/substrate/frame/transaction-payment/skip-feeless-payment/Cargo.toml index 7265979cedc..b5bc7719def 100644 --- a/substrate/frame/transaction-payment/skip-feeless-payment/Cargo.toml +++ b/substrate/frame/transaction-payment/skip-feeless-payment/Cargo.toml @@ -16,7 +16,6 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] # Substrate dependencies sp-runtime = { workspace = true } -sp-std = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } @@ -33,7 +32,6 @@ std = [ "frame-system/std", "scale-info/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-support/runtime-benchmarks", diff --git a/substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs b/substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs index 682fb320356..3ab38743baf 100644 --- a/substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs +++ b/substrate/frame/transaction-payment/skip-feeless-payment/src/lib.rs @@ -77,7 +77,7 @@ pub mod pallet { /// A [`SignedExtension`] that skips the wrapped extension if the dispatchable is feeless. #[derive(Encode, Decode, Clone, Eq, PartialEq)] -pub struct SkipCheckIfFeeless(pub S, sp_std::marker::PhantomData); +pub struct SkipCheckIfFeeless(pub S, core::marker::PhantomData); // Make this extension "invisible" from the outside (ie metadata type information) impl TypeInfo for SkipCheckIfFeeless { @@ -87,20 +87,20 @@ impl TypeInfo for SkipCheckIfFeeless { } } -impl sp_std::fmt::Debug for SkipCheckIfFeeless { +impl core::fmt::Debug for SkipCheckIfFeeless { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "SkipCheckIfFeeless<{:?}>", self.0.encode()) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } impl From for SkipCheckIfFeeless { fn from(s: S) -> Self { - Self(s, sp_std::marker::PhantomData) + Self(s, core::marker::PhantomData) } } diff --git a/substrate/frame/transaction-payment/skip-feeless-payment/src/mock.rs b/substrate/frame/transaction-payment/skip-feeless-payment/src/mock.rs index 4ddeae11fca..d6d600f24e7 100644 --- a/substrate/frame/transaction-payment/skip-feeless-payment/src/mock.rs +++ b/substrate/frame/transaction-payment/skip-feeless-payment/src/mock.rs @@ -45,7 +45,7 @@ impl SignedExtension for DummyExtension { type AdditionalSigned = (); type Pre = (); const IDENTIFIER: &'static str = "DummyExtension"; - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } diff --git a/substrate/frame/transaction-payment/src/lib.rs b/substrate/frame/transaction-payment/src/lib.rs index 0e440ee4e9f..69fad6e0e32 100644 --- a/substrate/frame/transaction-payment/src/lib.rs +++ b/substrate/frame/transaction-payment/src/lib.rs @@ -69,7 +69,6 @@ use sp_runtime::{ }, FixedPointNumber, FixedU128, Perbill, Perquintill, RuntimeDebug, }; -use sp_std::prelude::*; pub use types::{FeeDetails, InclusionFee, RuntimeDispatchInfo}; #[cfg(test)] @@ -137,7 +136,7 @@ type BalanceOf = <::OnChargeTransaction as OnChargeTransaction -pub struct TargetedFeeAdjustment(sp_std::marker::PhantomData<(T, S, V, M, X)>); +pub struct TargetedFeeAdjustment(core::marker::PhantomData<(T, S, V, M, X)>); /// Something that can convert the current multiplier to the next one. pub trait MultiplierUpdate: Convert { @@ -264,7 +263,7 @@ where } /// A struct to make the fee multiplier a constant -pub struct ConstFeeMultiplier>(sp_std::marker::PhantomData); +pub struct ConstFeeMultiplier>(core::marker::PhantomData); impl> MultiplierUpdate for ConstFeeMultiplier { fn min() -> Multiplier { @@ -406,7 +405,7 @@ pub mod pallet { pub struct GenesisConfig { pub multiplier: Multiplier, #[serde(skip)] - pub _config: sp_std::marker::PhantomData, + pub _config: core::marker::PhantomData, } impl Default for GenesisConfig { @@ -806,13 +805,13 @@ where } } -impl sp_std::fmt::Debug for ChargeTransactionPayment { +impl core::fmt::Debug for ChargeTransactionPayment { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "ChargeTransactionPayment<{:?}>", self.0) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -834,7 +833,7 @@ where // imbalance resulting from withdrawing the fee <::OnChargeTransaction as OnChargeTransaction>::LiquidityInfo, ); - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } diff --git a/substrate/frame/transaction-payment/src/types.rs b/substrate/frame/transaction-payment/src/types.rs index 25cecc58a63..67c7311d0ca 100644 --- a/substrate/frame/transaction-payment/src/types.rs +++ b/substrate/frame/transaction-payment/src/types.rs @@ -24,7 +24,6 @@ use serde::{Deserialize, Serialize}; use scale_info::TypeInfo; use sp_runtime::traits::{AtLeast32BitUnsigned, Zero}; -use sp_std::prelude::*; use frame_support::dispatch::DispatchClass; diff --git a/substrate/frame/transaction-storage/Cargo.toml b/substrate/frame/transaction-storage/Cargo.toml index 3bb97e0cd01..e57ee1e729c 100644 --- a/substrate/frame/transaction-storage/Cargo.toml +++ b/substrate/frame/transaction-storage/Cargo.toml @@ -27,7 +27,6 @@ pallet-balances = { workspace = true } sp-inherents = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-transaction-storage-proof = { workspace = true } log = { workspace = true } @@ -58,7 +57,6 @@ std = [ "sp-inherents/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", "sp-transaction-storage-proof/std", ] try-runtime = [ diff --git a/substrate/frame/transaction-storage/src/benchmarking.rs b/substrate/frame/transaction-storage/src/benchmarking.rs index 8d485d9f3ca..f360e9847a1 100644 --- a/substrate/frame/transaction-storage/src/benchmarking.rs +++ b/substrate/frame/transaction-storage/src/benchmarking.rs @@ -20,11 +20,11 @@ #![cfg(feature = "runtime-benchmarks")] use super::*; +use alloc::{vec, vec::Vec}; use frame_benchmarking::v1::{benchmarks, whitelisted_caller}; use frame_support::traits::{Get, OnFinalize, OnInitialize}; use frame_system::{pallet_prelude::BlockNumberFor, EventRecord, Pallet as System, RawOrigin}; use sp_runtime::traits::{Bounded, CheckedDiv, One, Zero}; -use sp_std::*; use sp_transaction_storage_proof::TransactionStorageProof; use crate::Pallet as TransactionStorage; diff --git a/substrate/frame/transaction-storage/src/lib.rs b/substrate/frame/transaction-storage/src/lib.rs index 6e58ee3e585..68f24526300 100644 --- a/substrate/frame/transaction-storage/src/lib.rs +++ b/substrate/frame/transaction-storage/src/lib.rs @@ -28,7 +28,11 @@ mod mock; #[cfg(test)] mod tests; +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; +use core::result; use frame_support::{ dispatch::GetDispatchInfo, traits::{ @@ -38,7 +42,6 @@ use frame_support::{ }, }; use sp_runtime::traits::{BlakeTwo256, Dispatchable, Hash, One, Saturating, Zero}; -use sp_std::{prelude::*, result}; use sp_transaction_storage_proof::{ encode_index, random_chunk, InherentError, TransactionStorageProof, CHUNK_SIZE, INHERENT_IDENTIFIER, diff --git a/substrate/frame/treasury/Cargo.toml b/substrate/frame/treasury/Cargo.toml index 33e74b0a4aa..2727ab80932 100644 --- a/substrate/frame/treasury/Cargo.toml +++ b/substrate/frame/treasury/Cargo.toml @@ -29,7 +29,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } pallet-balances = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } sp-core = { optional = true, workspace = true } [dev-dependencies] @@ -51,7 +50,6 @@ std = [ "sp-core?/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "dep:sp-core", diff --git a/substrate/frame/treasury/src/lib.rs b/substrate/frame/treasury/src/lib.rs index b437e5ef137..3954489a2d1 100644 --- a/substrate/frame/treasury/src/lib.rs +++ b/substrate/frame/treasury/src/lib.rs @@ -81,14 +81,16 @@ use core::marker::PhantomData; #[cfg(feature = "runtime-benchmarks")] pub use benchmarking::ArgumentsFactory; +extern crate alloc; + use codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; +use alloc::{boxed::Box, collections::btree_map::BTreeMap}; use sp_runtime::{ traits::{AccountIdConversion, CheckedAdd, Saturating, StaticLookup, Zero}, Permill, RuntimeDebug, }; -use sp_std::{collections::btree_map::BTreeMap, prelude::*}; use frame_support::{ dispatch::{DispatchResult, DispatchResultWithPostInfo}, @@ -326,7 +328,7 @@ pub mod pallet { #[derive(frame_support::DefaultNoBound)] pub struct GenesisConfig, I: 'static = ()> { #[serde(skip)] - _config: sp_std::marker::PhantomData<(T, I)>, + _config: core::marker::PhantomData<(T, I)>, } #[pallet::genesis_build] diff --git a/substrate/frame/try-runtime/Cargo.toml b/substrate/frame/try-runtime/Cargo.toml index 16e815975b5..228d96095ac 100644 --- a/substrate/frame/try-runtime/Cargo.toml +++ b/substrate/frame/try-runtime/Cargo.toml @@ -19,7 +19,6 @@ codec = { features = ["derive"], workspace = true } frame-support = { workspace = true } sp-api = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [features] default = ["std"] @@ -28,6 +27,5 @@ std = [ "frame-support/std", "sp-api/std", "sp-runtime/std", - "sp-std/std", ] try-runtime = ["frame-support/try-runtime", "sp-runtime/try-runtime"] diff --git a/substrate/frame/tx-pause/Cargo.toml b/substrate/frame/tx-pause/Cargo.toml index fbb71513c6a..861a85881f2 100644 --- a/substrate/frame/tx-pause/Cargo.toml +++ b/substrate/frame/tx-pause/Cargo.toml @@ -22,7 +22,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } scale-info = { features = ["derive"], workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } pallet-balances = { optional = true, workspace = true } pallet-utility = { optional = true, workspace = true } pallet-proxy = { optional = true, workspace = true } @@ -48,7 +47,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/tx-pause/src/benchmarking.rs b/substrate/frame/tx-pause/src/benchmarking.rs index 126c0837949..95ae250eff7 100644 --- a/substrate/frame/tx-pause/src/benchmarking.rs +++ b/substrate/frame/tx-pause/src/benchmarking.rs @@ -18,6 +18,7 @@ #![cfg(feature = "runtime-benchmarks")] use super::{Pallet as TxPause, *}; +use alloc::vec; use frame_benchmarking::v2::*; #[benchmarks] diff --git a/substrate/frame/tx-pause/src/lib.rs b/substrate/frame/tx-pause/src/lib.rs index 5904b5ed316..68f7a031255 100644 --- a/substrate/frame/tx-pause/src/lib.rs +++ b/substrate/frame/tx-pause/src/lib.rs @@ -79,6 +79,9 @@ pub mod mock; mod tests; pub mod weights; +extern crate alloc; + +use alloc::vec::Vec; use frame_support::{ dispatch::GetDispatchInfo, pallet_prelude::*, @@ -87,7 +90,6 @@ use frame_support::{ }; use frame_system::pallet_prelude::*; use sp_runtime::{traits::Dispatchable, DispatchResult}; -use sp_std::prelude::*; pub use pallet::*; pub use weights::*; diff --git a/substrate/frame/uniques/Cargo.toml b/substrate/frame/uniques/Cargo.toml index d41d322bb63..2b1794aa60f 100644 --- a/substrate/frame/uniques/Cargo.toml +++ b/substrate/frame/uniques/Cargo.toml @@ -23,7 +23,6 @@ frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -44,7 +43,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/uniques/src/benchmarking.rs b/substrate/frame/uniques/src/benchmarking.rs index 80d02f13621..a8a83010c51 100644 --- a/substrate/frame/uniques/src/benchmarking.rs +++ b/substrate/frame/uniques/src/benchmarking.rs @@ -20,6 +20,7 @@ #![cfg(feature = "runtime-benchmarks")] use super::*; +use alloc::{vec, vec::Vec}; use frame_benchmarking::v1::{ account, benchmarks_instance_pallet, whitelist_account, whitelisted_caller, BenchmarkError, }; @@ -29,7 +30,6 @@ use frame_support::{ }; use frame_system::RawOrigin as SystemOrigin; use sp_runtime::traits::Bounded; -use sp_std::prelude::*; use crate::Pallet as Uniques; diff --git a/substrate/frame/uniques/src/impl_nonfungibles.rs b/substrate/frame/uniques/src/impl_nonfungibles.rs index 0ae055a98d8..8e4af723f80 100644 --- a/substrate/frame/uniques/src/impl_nonfungibles.rs +++ b/substrate/frame/uniques/src/impl_nonfungibles.rs @@ -18,13 +18,13 @@ //! Implementations for `nonfungibles` traits. use super::*; +use alloc::vec::Vec; use frame_support::{ storage::KeyPrefixIterator, traits::{tokens::nonfungibles::*, Get}, BoundedSlice, }; use sp_runtime::{DispatchError, DispatchResult}; -use sp_std::prelude::*; impl, I: 'static> Inspect<::AccountId> for Pallet { type ItemId = T::ItemId; diff --git a/substrate/frame/uniques/src/lib.rs b/substrate/frame/uniques/src/lib.rs index 2291d19de2b..dc27c335623 100644 --- a/substrate/frame/uniques/src/lib.rs +++ b/substrate/frame/uniques/src/lib.rs @@ -42,6 +42,9 @@ mod types; pub mod migration; pub mod weights; +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode}; use frame_support::traits::{ tokens::Locker, BalanceStatus::Reserved, Currency, EnsureOriginWithArg, ReservableCurrency, @@ -51,7 +54,6 @@ use sp_runtime::{ traits::{Saturating, StaticLookup, Zero}, ArithmeticError, RuntimeDebug, }; -use sp_std::prelude::*; pub use pallet::*; pub use types::*; diff --git a/substrate/frame/uniques/src/tests.rs b/substrate/frame/uniques/src/tests.rs index 5dfe43c9688..a8428c420b3 100644 --- a/substrate/frame/uniques/src/tests.rs +++ b/substrate/frame/uniques/src/tests.rs @@ -21,7 +21,6 @@ use crate::{mock::*, Event, *}; use frame_support::{assert_noop, assert_ok, traits::Currency}; use pallet_balances::Error as BalancesError; use sp_runtime::traits::Dispatchable; -use sp_std::prelude::*; fn items() -> Vec<(u64, u32, u32)> { let mut r: Vec<_> = Account::::iter().map(|x| x.0).collect(); diff --git a/substrate/frame/utility/Cargo.toml b/substrate/frame/utility/Cargo.toml index 0ccdac6be62..f08232de9cd 100644 --- a/substrate/frame/utility/Cargo.toml +++ b/substrate/frame/utility/Cargo.toml @@ -24,7 +24,6 @@ frame-system = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -48,7 +47,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/utility/src/benchmarking.rs b/substrate/frame/utility/src/benchmarking.rs index 78911fd310e..467055ecd80 100644 --- a/substrate/frame/utility/src/benchmarking.rs +++ b/substrate/frame/utility/src/benchmarking.rs @@ -20,6 +20,7 @@ #![cfg(feature = "runtime-benchmarks")] use super::*; +use alloc::{vec, vec::Vec}; use frame_benchmarking::v1::{account, benchmarks, whitelisted_caller}; use frame_system::RawOrigin; diff --git a/substrate/frame/utility/src/lib.rs b/substrate/frame/utility/src/lib.rs index 7f963e3637d..3ce5b4ff864 100644 --- a/substrate/frame/utility/src/lib.rs +++ b/substrate/frame/utility/src/lib.rs @@ -56,6 +56,9 @@ mod benchmarking; mod tests; pub mod weights; +extern crate alloc; + +use alloc::{boxed::Box, vec::Vec}; use codec::{Decode, Encode}; use frame_support::{ dispatch::{extract_actual_weight, GetDispatchInfo, PostDispatchInfo}, @@ -64,7 +67,6 @@ use frame_support::{ use sp_core::TypeId; use sp_io::hashing::blake2_256; use sp_runtime::traits::{BadOrigin, Dispatchable, TrailingZeroInput}; -use sp_std::prelude::*; pub use weights::WeightInfo; pub use pallet::*; @@ -131,7 +133,7 @@ pub mod pallet { /// The limit on the number of batched calls. fn batched_calls_limit() -> u32 { let allocator_limit = sp_core::MAX_POSSIBLE_ALLOCATION; - let call_size = ((sp_std::mem::size_of::<::RuntimeCall>() as u32 + + let call_size = ((core::mem::size_of::<::RuntimeCall>() as u32 + CALL_ALIGN - 1) / CALL_ALIGN) * CALL_ALIGN; // The margin to take into account vec doubling capacity. @@ -146,7 +148,7 @@ pub mod pallet { fn integrity_test() { // If you hit this error, you need to try to `Box` big dispatchable parameters. assert!( - sp_std::mem::size_of::<::RuntimeCall>() as u32 <= CALL_ALIGN, + core::mem::size_of::<::RuntimeCall>() as u32 <= CALL_ALIGN, "Call enum size should be smaller than {} bytes.", CALL_ALIGN, ); diff --git a/substrate/frame/vesting/Cargo.toml b/substrate/frame/vesting/Cargo.toml index 3aca5683465..64c26174cfd 100644 --- a/substrate/frame/vesting/Cargo.toml +++ b/substrate/frame/vesting/Cargo.toml @@ -25,7 +25,6 @@ frame-benchmarking = { optional = true, workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -45,7 +44,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", diff --git a/substrate/frame/vesting/src/lib.rs b/substrate/frame/vesting/src/lib.rs index 3868f1a8592..bfc10efeed7 100644 --- a/substrate/frame/vesting/src/lib.rs +++ b/substrate/frame/vesting/src/lib.rs @@ -56,7 +56,11 @@ mod vesting_info; pub mod migrations; pub mod weights; +extern crate alloc; + +use alloc::vec::Vec; use codec::{Decode, Encode, MaxEncodedLen}; +use core::{fmt::Debug, marker::PhantomData}; use frame_support::{ dispatch::DispatchResult, ensure, @@ -76,7 +80,6 @@ use sp_runtime::{ }, DispatchError, RuntimeDebug, }; -use sp_std::{fmt::Debug, marker::PhantomData, prelude::*}; pub use pallet::*; pub use vesting_info::*; diff --git a/substrate/frame/vesting/src/migrations.rs b/substrate/frame/vesting/src/migrations.rs index 6fe82312b63..33fa5d0df88 100644 --- a/substrate/frame/vesting/src/migrations.rs +++ b/substrate/frame/vesting/src/migrations.rs @@ -18,6 +18,7 @@ //! Storage migrations for the vesting pallet. use super::*; +use alloc::vec; // Migration from single schedule to multiple schedules. pub mod v1 { diff --git a/substrate/frame/whitelist/Cargo.toml b/substrate/frame/whitelist/Cargo.toml index 922f9124d91..c48a15f2163 100644 --- a/substrate/frame/whitelist/Cargo.toml +++ b/substrate/frame/whitelist/Cargo.toml @@ -22,7 +22,6 @@ frame-support = { workspace = true } frame-system = { workspace = true } sp-api = { workspace = true } sp-runtime = { workspace = true } -sp-std = { workspace = true } [dev-dependencies] pallet-balances = { workspace = true, default-features = true } @@ -44,7 +43,6 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime/std", - "sp-std/std", ] runtime-benchmarks = [ "frame-benchmarking", diff --git a/substrate/frame/whitelist/src/benchmarking.rs b/substrate/frame/whitelist/src/benchmarking.rs index 7fb5632fc00..cbe6ee4becd 100644 --- a/substrate/frame/whitelist/src/benchmarking.rs +++ b/substrate/frame/whitelist/src/benchmarking.rs @@ -73,7 +73,7 @@ mod benchmarks { ) -> Result<(), BenchmarkError> { let origin = T::DispatchWhitelistedOrigin::try_successful_origin() .map_err(|_| BenchmarkError::Weightless)?; - let remark = sp_std::vec![1u8; n as usize]; + let remark = alloc::vec![1u8; n as usize]; let call: ::RuntimeCall = frame_system::Call::remark { remark }.into(); let call_weight = call.get_dispatch_info().weight; let encoded_call = call.encode(); @@ -97,7 +97,7 @@ mod benchmarks { fn dispatch_whitelisted_call_with_preimage(n: Linear<1, 10_000>) -> Result<(), BenchmarkError> { let origin = T::DispatchWhitelistedOrigin::try_successful_origin() .map_err(|_| BenchmarkError::Weightless)?; - let remark = sp_std::vec![1u8; n as usize]; + let remark = alloc::vec![1u8; n as usize]; let call: ::RuntimeCall = frame_system::Call::remark { remark }.into(); let call_hash = T::Hashing::hash_of(&call); diff --git a/substrate/frame/whitelist/src/lib.rs b/substrate/frame/whitelist/src/lib.rs index 44551abd107..de16c2c2da8 100644 --- a/substrate/frame/whitelist/src/lib.rs +++ b/substrate/frame/whitelist/src/lib.rs @@ -40,6 +40,9 @@ mod tests; pub mod weights; pub use weights::WeightInfo; +extern crate alloc; + +use alloc::boxed::Box; use codec::{DecodeLimit, Encode, FullCodec}; use frame_support::{ dispatch::{GetDispatchInfo, PostDispatchInfo}, @@ -49,7 +52,6 @@ use frame_support::{ }; use scale_info::TypeInfo; use sp_runtime::traits::{Dispatchable, Hash}; -use sp_std::prelude::*; pub use pallet::*; diff --git a/substrate/primitives/api/Cargo.toml b/substrate/primitives/api/Cargo.toml index f8cbad8e31f..d6c64a0ada2 100644 --- a/substrate/primitives/api/Cargo.toml +++ b/substrate/primitives/api/Cargo.toml @@ -19,7 +19,6 @@ targets = ["x86_64-unknown-linux-gnu"] codec = { workspace = true } sp-api-proc-macro = { workspace = true } sp-core = { workspace = true } -sp-std = { workspace = true } sp-runtime = { workspace = true } sp-runtime-interface = { workspace = true } sp-externalities = { optional = true, workspace = true } @@ -53,7 +52,6 @@ std = [ "sp-runtime-interface/std", "sp-runtime/std", "sp-state-machine/std", - "sp-std/std", "sp-test-primitives/std", "sp-trie/std", "sp-version/std", diff --git a/substrate/primitives/api/src/lib.rs b/substrate/primitives/api/src/lib.rs index cd8da8ba237..d254bf20601 100644 --- a/substrate/primitives/api/src/lib.rs +++ b/substrate/primitives/api/src/lib.rs @@ -70,6 +70,8 @@ // Make doc tests happy extern crate self as sp_api; +extern crate alloc; + /// Private exports used by the macros. /// /// This is seen as internal API and can change at any point. @@ -90,7 +92,9 @@ pub mod __private { pub use std_imports::*; pub use crate::*; + pub use alloc::vec; pub use codec::{self, Decode, DecodeLimit, Encode}; + pub use core::{mem, slice}; pub use scale_info; pub use sp_core::offchain; #[cfg(not(feature = "std"))] @@ -103,7 +107,6 @@ pub mod __private { transaction_validity::TransactionValidity, ExtrinsicInclusionMode, RuntimeString, TransactionOutcome, }; - pub use sp_std::{mem, slice, vec}; pub use sp_version::{create_apis_vec, ApiId, ApisVec, RuntimeVersion}; #[cfg(all(any(target_arch = "riscv32", target_arch = "riscv64"), substrate_runtime))] @@ -833,7 +836,7 @@ decl_runtime_apis! { /// Returns the supported metadata versions. /// /// This can be used to call `metadata_at_version`. - fn metadata_versions() -> sp_std::vec::Vec; + fn metadata_versions() -> alloc::vec::Vec; } } diff --git a/substrate/primitives/application-crypto/Cargo.toml b/substrate/primitives/application-crypto/Cargo.toml index fbf9def20fc..c0508d377f8 100644 --- a/substrate/primitives/application-crypto/Cargo.toml +++ b/substrate/primitives/application-crypto/Cargo.toml @@ -22,7 +22,6 @@ sp-core = { workspace = true } codec = { features = ["derive"], workspace = true } scale-info = { features = ["derive"], workspace = true } serde = { optional = true, features = ["alloc", "derive"], workspace = true } -sp-std = { workspace = true } sp-io = { workspace = true } [features] @@ -34,7 +33,6 @@ std = [ "serde/std", "sp-core/std", "sp-io/std", - "sp-std/std", ] # Serde support without relying on std features. diff --git a/substrate/primitives/application-crypto/src/bandersnatch.rs b/substrate/primitives/application-crypto/src/bandersnatch.rs index fc7383815d7..0e21e5d3bce 100644 --- a/substrate/primitives/application-crypto/src/bandersnatch.rs +++ b/substrate/primitives/application-crypto/src/bandersnatch.rs @@ -18,8 +18,8 @@ //! Bandersnatch VRF application crypto types. use crate::{KeyTypeId, RuntimePublic}; +use alloc::vec::Vec; pub use sp_core::bandersnatch::*; -use sp_std::vec::Vec; mod app { crate::app_crypto!(super, sp_core::testing::BANDERSNATCH); diff --git a/substrate/primitives/application-crypto/src/bls377.rs b/substrate/primitives/application-crypto/src/bls377.rs index 3bd01de139c..9d346ea6183 100644 --- a/substrate/primitives/application-crypto/src/bls377.rs +++ b/substrate/primitives/application-crypto/src/bls377.rs @@ -18,8 +18,8 @@ //! BLS12-377 crypto applications. use crate::{KeyTypeId, RuntimePublic}; +use alloc::vec::Vec; pub use sp_core::bls::bls377::*; -use sp_std::vec::Vec; mod app { crate::app_crypto!(super, sp_core::testing::BLS377); diff --git a/substrate/primitives/application-crypto/src/ecdsa.rs b/substrate/primitives/application-crypto/src/ecdsa.rs index 439b51dc604..94d5288584c 100644 --- a/substrate/primitives/application-crypto/src/ecdsa.rs +++ b/substrate/primitives/application-crypto/src/ecdsa.rs @@ -19,7 +19,7 @@ use crate::{KeyTypeId, RuntimePublic}; -use sp_std::vec::Vec; +use alloc::vec::Vec; pub use sp_core::ecdsa::*; diff --git a/substrate/primitives/application-crypto/src/ecdsa_bls377.rs b/substrate/primitives/application-crypto/src/ecdsa_bls377.rs index 8dee73095fb..443d214d677 100644 --- a/substrate/primitives/application-crypto/src/ecdsa_bls377.rs +++ b/substrate/primitives/application-crypto/src/ecdsa_bls377.rs @@ -18,7 +18,7 @@ //! ECDSA and BLS12-377 paired crypto applications. use crate::{KeyTypeId, RuntimePublic}; -use sp_std::vec::Vec; +use alloc::vec::Vec; pub use sp_core::paired_crypto::ecdsa_bls377::*; diff --git a/substrate/primitives/application-crypto/src/ed25519.rs b/substrate/primitives/application-crypto/src/ed25519.rs index addefe7daf6..6769de4e47c 100644 --- a/substrate/primitives/application-crypto/src/ed25519.rs +++ b/substrate/primitives/application-crypto/src/ed25519.rs @@ -19,7 +19,7 @@ use crate::{KeyTypeId, RuntimePublic}; -use sp_std::vec::Vec; +use alloc::vec::Vec; pub use sp_core::ed25519::*; diff --git a/substrate/primitives/application-crypto/src/lib.rs b/substrate/primitives/application-crypto/src/lib.rs index 2355f1ba527..37949d7c41d 100644 --- a/substrate/primitives/application-crypto/src/lib.rs +++ b/substrate/primitives/application-crypto/src/lib.rs @@ -20,6 +20,8 @@ #![warn(missing_docs)] #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + pub use sp_core::crypto::{key_types, CryptoTypeId, DeriveJunction, KeyTypeId, Ss58Codec}; #[doc(hidden)] pub use sp_core::crypto::{DeriveError, Pair, SecretStringError}; @@ -30,15 +32,17 @@ pub use sp_core::{ RuntimeDebug, }; +#[doc(hidden)] +pub use alloc::vec::Vec; #[doc(hidden)] pub use codec; #[doc(hidden)] +pub use core::ops::Deref; +#[doc(hidden)] pub use scale_info; #[doc(hidden)] #[cfg(feature = "serde")] pub use serde; -#[doc(hidden)] -pub use sp_std::{ops::Deref, vec::Vec}; #[cfg(feature = "bandersnatch-experimental")] pub mod bandersnatch; @@ -357,7 +361,7 @@ macro_rules! app_crypto_public_common { #[doc(hidden)] pub mod module_format_string_prelude { #[cfg(all(not(feature = "std"), feature = "serde"))] - pub use sp_std::alloc::{format, string::String}; + pub use alloc::{format, string::String}; #[cfg(feature = "std")] pub use std::{format, string::String}; } diff --git a/substrate/primitives/application-crypto/src/sr25519.rs b/substrate/primitives/application-crypto/src/sr25519.rs index d411cc253c0..ba6f0e3ae6b 100644 --- a/substrate/primitives/application-crypto/src/sr25519.rs +++ b/substrate/primitives/application-crypto/src/sr25519.rs @@ -19,7 +19,7 @@ use crate::{KeyTypeId, RuntimePublic}; -use sp_std::vec::Vec; +use alloc::vec::Vec; pub use sp_core::sr25519::*; diff --git a/substrate/primitives/application-crypto/src/traits.rs b/substrate/primitives/application-crypto/src/traits.rs index 0b59abf272d..1789d9b96fd 100644 --- a/substrate/primitives/application-crypto/src/traits.rs +++ b/substrate/primitives/application-crypto/src/traits.rs @@ -18,8 +18,9 @@ use codec::Codec; use scale_info::TypeInfo; +use alloc::vec::Vec; +use core::fmt::Debug; use sp_core::crypto::{CryptoType, CryptoTypeId, IsWrappedBy, KeyTypeId, Pair, Public}; -use sp_std::{fmt::Debug, vec::Vec}; /// Application-specific cryptographic object. /// @@ -47,8 +48,8 @@ pub trait AppCrypto: 'static + Sized + CryptoType { } /// Type which implements Hash in std, not when no-std (std variant). -pub trait MaybeHash: sp_std::hash::Hash {} -impl MaybeHash for T {} +pub trait MaybeHash: core::hash::Hash {} +impl MaybeHash for T {} /// Application-specific key pair. pub trait AppPair: diff --git a/substrate/primitives/arithmetic/Cargo.toml b/substrate/primitives/arithmetic/Cargo.toml index a0d80fc9b50..4a9d5ba234b 100644 --- a/substrate/primitives/arithmetic/Cargo.toml +++ b/substrate/primitives/arithmetic/Cargo.toml @@ -26,7 +26,6 @@ num-traits = { workspace = true } scale-info = { features = ["derive"], workspace = true } serde = { features = ["alloc", "derive"], optional = true, workspace = true } static_assertions = { workspace = true, default-features = true } -sp-std = { workspace = true } docify = { workspace = true } [dev-dependencies] @@ -43,7 +42,6 @@ std = [ "scale-info/std", "serde/std", "sp-crypto-hashing/std", - "sp-std/std", ] # Serde support without relying on std features. serde = ["dep:serde", "scale-info/serde"] diff --git a/substrate/primitives/core/src/address_uri.rs b/substrate/primitives/core/src/address_uri.rs index d44f3c0c87c..bbe31b7553b 100644 --- a/substrate/primitives/core/src/address_uri.rs +++ b/substrate/primitives/core/src/address_uri.rs @@ -18,8 +18,8 @@ //! Little util for parsing an address URI. Replaces regular expressions. #[cfg(not(feature = "std"))] -use sp_std::{ - alloc::string::{String, ToString}, +use alloc::{ + string::{String, ToString}, vec::Vec, }; @@ -97,10 +97,10 @@ impl InvalidCharacterInfo { } } -impl sp_std::fmt::Display for InvalidCharacterInfo { - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { +impl core::fmt::Display for InvalidCharacterInfo { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { let (s, pos) = escape_string(&self.0, self.1); - write!(f, "{s}\n{i}^", i = sp_std::iter::repeat(" ").take(pos).collect::()) + write!(f, "{s}\n{i}^", i = core::iter::repeat(" ").take(pos).collect::()) } } diff --git a/substrate/primitives/core/src/bandersnatch.rs b/substrate/primitives/core/src/bandersnatch.rs index 71ee2da5383..25bf4657030 100644 --- a/substrate/primitives/core/src/bandersnatch.rs +++ b/substrate/primitives/core/src/bandersnatch.rs @@ -31,7 +31,7 @@ use bandersnatch_vrfs::{CanonicalSerialize, SecretKey}; use codec::{Decode, Encode, EncodeLike, MaxEncodedLen}; use scale_info::TypeInfo; -use sp_std::{vec, vec::Vec}; +use alloc::{vec, vec::Vec}; /// Identifier used to match public keys against bandersnatch-vrf keys. pub const CRYPTO_ID: CryptoTypeId = CryptoTypeId(*b"band"); diff --git a/substrate/primitives/core/src/bls.rs b/substrate/primitives/core/src/bls.rs index bb04babb3f1..a86f67844da 100644 --- a/substrate/primitives/core/src/bls.rs +++ b/substrate/primitives/core/src/bls.rs @@ -28,7 +28,7 @@ use crate::crypto::{ SignatureBytes, UncheckedFrom, }; -use sp_std::vec::Vec; +use alloc::vec::Vec; use w3f_bls::{ DoublePublicKey, DoublePublicKeyScheme, DoubleSignature, EngineBLS, Keypair, Message, diff --git a/substrate/primitives/core/src/crypto.rs b/substrate/primitives/core/src/crypto.rs index b13899fff51..fd7fe776720 100644 --- a/substrate/primitives/core/src/crypto.rs +++ b/substrate/primitives/core/src/crypto.rs @@ -18,8 +18,14 @@ //! Cryptographic utilities. use crate::{ed25519, sr25519}; +#[cfg(all(not(feature = "std"), feature = "serde"))] +use alloc::{format, string::String, vec}; +use alloc::{str, vec::Vec}; use bip39::{Language, Mnemonic}; use codec::{Decode, Encode, MaxEncodedLen}; +use core::hash::Hash; +#[doc(hidden)] +pub use core::ops::Deref; #[cfg(feature = "std")] use itertools::Itertools; #[cfg(feature = "std")] @@ -27,14 +33,6 @@ use rand::{rngs::OsRng, RngCore}; use scale_info::TypeInfo; pub use secrecy::{ExposeSecret, SecretString}; use sp_runtime_interface::pass_by::PassByInner; -#[doc(hidden)] -pub use sp_std::ops::Deref; -#[cfg(all(not(feature = "std"), feature = "serde"))] -use sp_std::{ - alloc::{format, string::String}, - vec, -}; -use sp_std::{hash::Hash, str, vec::Vec}; pub use ss58_registry::{from_known_address_format, Ss58AddressFormat, Ss58AddressFormatRegistry}; /// Trait to zeroize a memory buffer. pub use zeroize::Zeroize; @@ -245,8 +243,8 @@ pub enum PublicError { } #[cfg(feature = "std")] -impl sp_std::fmt::Debug for PublicError { - fn fmt(&self, f: &mut sp_std::fmt::Formatter<'_>) -> sp_std::fmt::Result { +impl core::fmt::Debug for PublicError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { // Just use the `Display` implementation write!(f, "{}", self) } @@ -587,8 +585,8 @@ impl std::fmt::Display for AccountId32 { } } -impl sp_std::fmt::Debug for AccountId32 { - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { +impl core::fmt::Debug for AccountId32 { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { #[cfg(feature = "serde")] { let s = self.to_ss58check(); @@ -624,7 +622,7 @@ impl<'de> serde::Deserialize<'de> for AccountId32 { } #[cfg(feature = "std")] -impl sp_std::str::FromStr for AccountId32 { +impl std::str::FromStr for AccountId32 { type Err = &'static str; fn from_str(s: &str) -> Result { @@ -786,7 +784,7 @@ pub struct SecretUri { pub junctions: Vec, } -impl sp_std::str::FromStr for SecretUri { +impl alloc::str::FromStr for SecretUri { type Err = SecretStringError; fn from_str(s: &str) -> Result { @@ -925,7 +923,7 @@ pub trait Pair: CryptoType + Sized { s: &str, password_override: Option<&str>, ) -> Result<(Self, Option), SecretStringError> { - use sp_std::str::FromStr; + use alloc::str::FromStr; let SecretUri { junctions, phrase, password } = SecretUri::from_str(s)?; let password = password_override.or_else(|| password.as_ref().map(|p| p.expose_secret().as_str())); diff --git a/substrate/primitives/core/src/crypto_bytes.rs b/substrate/primitives/core/src/crypto_bytes.rs index ee5f3482f74..e5130e6d500 100644 --- a/substrate/primitives/core/src/crypto_bytes.rs +++ b/substrate/primitives/core/src/crypto_bytes.rs @@ -34,7 +34,7 @@ use crate::crypto::Ss58Codec; use serde::{de, Deserialize, Deserializer, Serialize, Serializer}; #[cfg(all(not(feature = "std"), feature = "serde"))] -use sp_std::alloc::{format, string::String}; +use alloc::{format, string::String}; pub use public_bytes::*; pub use signature_bytes::*; @@ -256,7 +256,7 @@ mod public_bytes { impl Public for PublicBytes where Self: CryptoType {} - impl sp_std::fmt::Debug for PublicBytes + impl core::fmt::Debug for PublicBytes where Self: CryptoType, { @@ -267,7 +267,7 @@ mod public_bytes { } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } @@ -362,17 +362,17 @@ mod signature_bytes { } } - impl sp_std::fmt::Debug for SignatureBytes + impl core::fmt::Debug for SignatureBytes where Self: CryptoType, { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { write!(f, "{}", crate::hexdisplay::HexDisplay::from(&&self.0[..])) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } diff --git a/substrate/primitives/core/src/ecdsa.rs b/substrate/primitives/core/src/ecdsa.rs index 9cba8cc3d35..d11811ff2af 100644 --- a/substrate/primitives/core/src/ecdsa.rs +++ b/substrate/primitives/core/src/ecdsa.rs @@ -22,6 +22,8 @@ use crate::crypto::{ SecretStringError, SignatureBytes, }; +#[cfg(not(feature = "std"))] +use alloc::vec::Vec; #[cfg(not(feature = "std"))] use k256::ecdsa::{SigningKey as SecretKey, VerifyingKey}; #[cfg(feature = "std")] @@ -29,8 +31,6 @@ use secp256k1::{ ecdsa::{RecoverableSignature, RecoveryId}, Message, PublicKey, SecretKey, SECP256K1, }; -#[cfg(not(feature = "std"))] -use sp_std::vec::Vec; /// An identifier used to match public keys against ecdsa keys pub const CRYPTO_ID: CryptoTypeId = CryptoTypeId(*b"ecds"); diff --git a/substrate/primitives/core/src/ed25519.rs b/substrate/primitives/core/src/ed25519.rs index 269b6bfcd8d..401f9a39d56 100644 --- a/substrate/primitives/core/src/ed25519.rs +++ b/substrate/primitives/core/src/ed25519.rs @@ -24,7 +24,7 @@ use crate::crypto::{ use ed25519_zebra::{SigningKey, VerificationKey}; -use sp_std::vec::Vec; +use alloc::vec::Vec; /// An identifier used to match public keys against ed25519 keys pub const CRYPTO_ID: CryptoTypeId = CryptoTypeId(*b"ed25"); diff --git a/substrate/primitives/core/src/hexdisplay.rs b/substrate/primitives/core/src/hexdisplay.rs index 72bb24a186e..1902b8cca95 100644 --- a/substrate/primitives/core/src/hexdisplay.rs +++ b/substrate/primitives/core/src/hexdisplay.rs @@ -27,8 +27,8 @@ impl<'a> HexDisplay<'a> { } } -impl<'a> sp_std::fmt::Display for HexDisplay<'a> { - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> Result<(), sp_std::fmt::Error> { +impl<'a> core::fmt::Display for HexDisplay<'a> { + fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error> { if self.0.len() < 1027 { for byte in self.0 { f.write_fmt(format_args!("{:02x}", byte))?; @@ -46,8 +46,8 @@ impl<'a> sp_std::fmt::Display for HexDisplay<'a> { } } -impl<'a> sp_std::fmt::Debug for HexDisplay<'a> { - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> Result<(), sp_std::fmt::Error> { +impl<'a> core::fmt::Debug for HexDisplay<'a> { + fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error> { for byte in self.0 { f.write_fmt(format_args!("{:02x}", byte))?; } @@ -73,7 +73,7 @@ impl AsBytesRef for [u8] { } } -impl AsBytesRef for sp_std::vec::Vec { +impl AsBytesRef for alloc::vec::Vec { fn as_bytes_ref(&self) -> &[u8] { self } diff --git a/substrate/primitives/core/src/lib.rs b/substrate/primitives/core/src/lib.rs index 78ec92e4be9..46503921453 100644 --- a/substrate/primitives/core/src/lib.rs +++ b/substrate/primitives/core/src/lib.rs @@ -31,15 +31,18 @@ macro_rules! map { ); } +extern crate alloc; + +use alloc::vec::Vec; #[doc(hidden)] pub use codec::{Decode, Encode, MaxEncodedLen}; +use core::ops::Deref; use scale_info::TypeInfo; #[cfg(feature = "serde")] pub use serde; #[cfg(feature = "serde")] use serde::{Deserialize, Serialize}; use sp_runtime_interface::pass_by::{PassByEnum, PassByInner}; -use sp_std::{ops::Deref, prelude::*}; pub use sp_debug_derive::RuntimeDebug; @@ -137,7 +140,7 @@ impl codec::WrapperTypeDecode for Bytes { } #[cfg(feature = "std")] -impl sp_std::str::FromStr for Bytes { +impl alloc::str::FromStr for Bytes { type Err = bytes::FromHexError; fn from_str(s: &str) -> Result { @@ -156,7 +159,7 @@ impl OpaqueMetadata { } } -impl sp_std::ops::Deref for OpaqueMetadata { +impl Deref for OpaqueMetadata { type Target = Vec; fn deref(&self) -> &Self::Target { @@ -313,7 +316,7 @@ pub fn to_substrate_wasm_fn_return_value(value: &impl Encode) -> u64 { // Leak the output vector to avoid it being freed. // This is fine in a WASM context since the heap // will be discarded after the call. - sp_std::mem::forget(encoded); + core::mem::forget(encoded); res } @@ -456,7 +459,7 @@ macro_rules! generate_feature_enabled_macro { /// // Will add the code depending on the feature being enabled or not. #[doc = concat!(stringify!($macro_name), "!( println!(\"Hello\") )")] /// ``` - // https://github.com/rust-lang/rust/pull/52234 + // https://github.com/rust-lang/rust/pull/52234 pub use [<_ $macro_name>] as $macro_name; } }; diff --git a/substrate/primitives/core/src/offchain/mod.rs b/substrate/primitives/core/src/offchain/mod.rs index cef495dfaac..9be86e85d58 100644 --- a/substrate/primitives/core/src/offchain/mod.rs +++ b/substrate/primitives/core/src/offchain/mod.rs @@ -18,10 +18,10 @@ //! Offchain workers types use crate::{OpaquePeerId, RuntimeDebug}; +use alloc::{boxed::Box, vec::Vec}; use codec::{Decode, Encode}; use scale_info::TypeInfo; use sp_runtime_interface::pass_by::{PassByCodec, PassByEnum, PassByInner}; -use sp_std::prelude::{Box, Vec}; pub use crate::crypto::KeyTypeId; diff --git a/substrate/primitives/core/src/paired_crypto.rs b/substrate/primitives/core/src/paired_crypto.rs index 260e86b6ff9..57bc5b00619 100644 --- a/substrate/primitives/core/src/paired_crypto.rs +++ b/substrate/primitives/core/src/paired_crypto.rs @@ -24,7 +24,7 @@ use crate::crypto::{ PublicBytes, SecretStringError, Signature as SignatureT, SignatureBytes, UncheckedFrom, }; -use sp_std::vec::Vec; +use alloc::vec::Vec; /// ECDSA and BLS12-377 paired crypto scheme #[cfg(feature = "bls-experimental")] diff --git a/substrate/primitives/core/src/sr25519.rs b/substrate/primitives/core/src/sr25519.rs index 54b9a98db3d..48780f2ccff 100644 --- a/substrate/primitives/core/src/sr25519.rs +++ b/substrate/primitives/core/src/sr25519.rs @@ -25,25 +25,25 @@ use crate::crypto::Ss58Codec; use crate::crypto::{ CryptoBytes, DeriveError, DeriveJunction, Pair as TraitPair, SecretStringError, }; +use alloc::vec::Vec; #[cfg(feature = "full_crypto")] use schnorrkel::signing_context; use schnorrkel::{ derive::{ChainCode, Derivation, CHAIN_CODE_LENGTH}, ExpansionMode, Keypair, MiniSecretKey, PublicKey, SecretKey, }; -use sp_std::vec::Vec; use crate::crypto::{CryptoType, CryptoTypeId, Derive, Public as TraitPublic, SignatureBytes}; use codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; +#[cfg(all(not(feature = "std"), feature = "serde"))] +use alloc::{format, string::String}; use schnorrkel::keys::{MINI_SECRET_KEY_LENGTH, SECRET_KEY_LENGTH}; #[cfg(feature = "serde")] use serde::{de, Deserialize, Deserializer, Serialize, Serializer}; #[cfg(feature = "std")] use sp_runtime_interface::pass_by::PassByInner; -#[cfg(all(not(feature = "std"), feature = "serde"))] -use sp_std::alloc::{format, string::String}; // signing context const SIGNING_CTX: &[u8] = b"substrate"; @@ -100,15 +100,15 @@ impl std::fmt::Display for Public { } } -impl sp_std::fmt::Debug for Public { +impl core::fmt::Debug for Public { #[cfg(feature = "std")] - fn fmt(&self, f: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { let s = self.to_ss58check(); write!(f, "{} ({}...)", crate::hexdisplay::HexDisplay::from(self.inner()), &s[0..8]) } #[cfg(not(feature = "std"))] - fn fmt(&self, _: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } diff --git a/substrate/primitives/io/Cargo.toml b/substrate/primitives/io/Cargo.toml index 6b58ea70b8e..923efc3b876 100644 --- a/substrate/primitives/io/Cargo.toml +++ b/substrate/primitives/io/Cargo.toml @@ -25,7 +25,6 @@ codec = { features = [ sp-core = { workspace = true } sp-crypto-hashing = { workspace = true } sp-keystore = { optional = true, workspace = true } -sp-std = { workspace = true } libsecp256k1 = { optional = true, workspace = true, default-features = true } sp-state-machine = { optional = true, workspace = true } sp-runtime-interface = { workspace = true } @@ -67,7 +66,6 @@ std = [ "sp-keystore/std", "sp-runtime-interface/std", "sp-state-machine/std", - "sp-std/std", "sp-tracing/std", "sp-trie/std", "tracing-core/std", diff --git a/substrate/primitives/io/src/lib.rs b/substrate/primitives/io/src/lib.rs index 67e822ba7e2..b39a06ed211 100644 --- a/substrate/primitives/io/src/lib.rs +++ b/substrate/primitives/io/src/lib.rs @@ -77,7 +77,9 @@ #![cfg_attr(not(feature = "std"), no_std)] #![cfg_attr(enable_alloc_error_handler, feature(alloc_error_handler))] -use sp_std::vec::Vec; +extern crate alloc; + +use alloc::vec::Vec; #[cfg(feature = "std")] use tracing; @@ -1771,7 +1773,7 @@ pub fn unreachable() -> ! { #[panic_handler] #[no_mangle] pub fn panic(info: &core::panic::PanicInfo) -> ! { - let message = sp_std::alloc::format!("{}", info); + let message = alloc::format!("{}", info); #[cfg(feature = "improved_panic_error_reporting")] { panic_handler::abort_on_panic(&message); diff --git a/substrate/primitives/runtime-interface/proc-macro/src/pass_by/enum_.rs b/substrate/primitives/runtime-interface/proc-macro/src/pass_by/enum_.rs index 0d05dd9aa51..d0eb382cdc5 100644 --- a/substrate/primitives/runtime-interface/proc-macro/src/pass_by/enum_.rs +++ b/substrate/primitives/runtime-interface/proc-macro/src/pass_by/enum_.rs @@ -54,7 +54,7 @@ pub fn derive_impl(input: DeriveInput) -> Result { impl TryFrom for #ident { type Error = (); - fn try_from(inner: u8) -> #crate_::sp_std::result::Result { + fn try_from(inner: u8) -> core::result::Result { match inner { #( #try_from_variants, )* _ => Err(()), diff --git a/substrate/primitives/runtime-interface/src/impls.rs b/substrate/primitives/runtime-interface/src/impls.rs index 3530b62662a..daf5725e7f5 100644 --- a/substrate/primitives/runtime-interface/src/impls.rs +++ b/substrate/primitives/runtime-interface/src/impls.rs @@ -35,10 +35,12 @@ use sp_wasm_interface::{FunctionContext, Result}; use codec::{Decode, Encode}; -use sp_std::{any::TypeId, mem, vec::Vec}; +use core::{any::TypeId, mem}; + +use alloc::vec::Vec; #[cfg(feature = "std")] -use sp_std::borrow::Cow; +use alloc::borrow::Cow; // Make sure that our assumptions for storing a pointer + its size in `u64` is valid. #[cfg(all(not(feature = "std"), not(feature = "disable_target_static_assertions")))] @@ -337,7 +339,7 @@ impl IntoPreallocatedFFIValue for [u8; N] { } } -impl PassBy for sp_std::result::Result { +impl PassBy for core::result::Result { type PassBy = Codec; } diff --git a/substrate/primitives/runtime-interface/src/lib.rs b/substrate/primitives/runtime-interface/src/lib.rs index f6ef27789b3..d6dcb69958a 100644 --- a/substrate/primitives/runtime-interface/src/lib.rs +++ b/substrate/primitives/runtime-interface/src/lib.rs @@ -111,6 +111,8 @@ extern crate self as sp_runtime_interface; +extern crate alloc; + #[doc(hidden)] #[cfg(feature = "std")] pub use sp_wasm_interface; diff --git a/substrate/primitives/runtime-interface/src/pass_by.rs b/substrate/primitives/runtime-interface/src/pass_by.rs index 103e9c16220..dce0b8e4bdd 100644 --- a/substrate/primitives/runtime-interface/src/pass_by.rs +++ b/substrate/primitives/runtime-interface/src/pass_by.rs @@ -33,10 +33,10 @@ use crate::wasm::*; #[cfg(feature = "std")] use sp_wasm_interface::{FunctionContext, Pointer, Result}; -use sp_std::marker::PhantomData; +use core::marker::PhantomData; #[cfg(not(feature = "std"))] -use sp_std::vec::Vec; +use alloc::vec::Vec; /// Derive macro for implementing [`PassBy`] with the [`Codec`] strategy. /// diff --git a/substrate/primitives/runtime-interface/test-wasm/Cargo.toml b/substrate/primitives/runtime-interface/test-wasm/Cargo.toml index 759ab99ceac..77e77c707d9 100644 --- a/substrate/primitives/runtime-interface/test-wasm/Cargo.toml +++ b/substrate/primitives/runtime-interface/test-wasm/Cargo.toml @@ -20,7 +20,6 @@ bytes = { workspace = true } sp-core = { workspace = true } sp-io = { workspace = true } sp-runtime-interface = { workspace = true } -sp-std = { workspace = true } [build-dependencies] substrate-wasm-builder = { optional = true, workspace = true, default-features = true } @@ -32,6 +31,5 @@ std = [ "sp-core/std", "sp-io/std", "sp-runtime-interface/std", - "sp-std/std", "substrate-wasm-builder", ] diff --git a/substrate/primitives/runtime-interface/test-wasm/src/lib.rs b/substrate/primitives/runtime-interface/test-wasm/src/lib.rs index 2b3fc728f6f..545f1ff4a11 100644 --- a/substrate/primitives/runtime-interface/test-wasm/src/lib.rs +++ b/substrate/primitives/runtime-interface/test-wasm/src/lib.rs @@ -19,11 +19,14 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + use sp_runtime_interface::runtime_interface; #[cfg(not(feature = "std"))] -use sp_std::{mem, prelude::*}; +use core::mem; +use alloc::{vec, vec::Vec}; use sp_core::{sr25519::Public, wasm_export_functions}; // Include the WASM binary @@ -229,7 +232,7 @@ wasm_export_functions! { fn test_invalid_utf8_data_should_return_an_error() { let data = vec![0, 159, 146, 150]; // I'm an evil hacker, trying to hack! - let data_str = unsafe { sp_std::str::from_utf8_unchecked(&data) }; + let data_str = unsafe { alloc::str::from_utf8_unchecked(&data) }; test_api::invalid_utf8_data(data_str); } diff --git a/substrate/primitives/runtime/src/generic/block.rs b/substrate/primitives/runtime/src/generic/block.rs index 05146e880cb..8ed79c7c8dc 100644 --- a/substrate/primitives/runtime/src/generic/block.rs +++ b/substrate/primitives/runtime/src/generic/block.rs @@ -31,8 +31,8 @@ use crate::{ }, Justifications, }; +use alloc::vec::Vec; use sp_core::RuntimeDebug; -use sp_std::prelude::*; /// Something to identify a block. #[derive(PartialEq, Eq, Clone, Encode, Decode, RuntimeDebug)] diff --git a/substrate/primitives/runtime/src/generic/digest.rs b/substrate/primitives/runtime/src/generic/digest.rs index d7db0f91a48..c639576a286 100644 --- a/substrate/primitives/runtime/src/generic/digest.rs +++ b/substrate/primitives/runtime/src/generic/digest.rs @@ -17,12 +17,11 @@ //! Generic implementation of a digest. +#[cfg(all(not(feature = "std"), feature = "serde"))] +use alloc::format; +use alloc::vec::Vec; #[cfg(feature = "serde")] use serde::{Deserialize, Serialize}; -#[cfg(all(not(feature = "std"), feature = "serde"))] -use sp_std::alloc::format; - -use sp_std::prelude::*; use crate::{ codec::{Decode, Encode, Error, Input}, diff --git a/substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs b/substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs index df1f5645f04..499b7c5f583 100644 --- a/substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs +++ b/substrate/primitives/runtime/src/generic/unchecked_extrinsic.rs @@ -26,12 +26,13 @@ use crate::{ transaction_validity::{InvalidTransaction, TransactionValidityError}, OpaqueExtrinsic, }; +#[cfg(all(not(feature = "std"), feature = "serde"))] +use alloc::format; +use alloc::{vec, vec::Vec}; use codec::{Compact, Decode, Encode, EncodeLike, Error, Input}; +use core::fmt; use scale_info::{build::Fields, meta_type, Path, StaticTypeInfo, Type, TypeInfo, TypeParameter}; use sp_io::hashing::blake2_256; -#[cfg(all(not(feature = "std"), feature = "serde"))] -use sp_std::alloc::format; -use sp_std::{fmt, prelude::*}; /// Current version of the [`UncheckedExtrinsic`] encoded format. /// @@ -316,7 +317,7 @@ where Extra: SignedExtension, { fn encode(&self) -> Vec { - let mut tmp = Vec::with_capacity(sp_std::mem::size_of::()); + let mut tmp = Vec::with_capacity(core::mem::size_of::()); // 1 byte version id. match self.signature.as_ref() { @@ -437,7 +438,7 @@ mod tests { type AdditionalSigned = (); type Pre = (); - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } diff --git a/substrate/primitives/runtime/src/lib.rs b/substrate/primitives/runtime/src/lib.rs index 046909b9a38..d313d23395a 100644 --- a/substrate/primitives/runtime/src/lib.rs +++ b/substrate/primitives/runtime/src/lib.rs @@ -45,6 +45,11 @@ #![warn(missing_docs)] #![cfg_attr(not(feature = "std"), no_std)] +#[doc(hidden)] +extern crate alloc; + +#[doc(hidden)] +pub use alloc::vec::Vec; #[doc(hidden)] pub use codec; #[doc(hidden)] @@ -73,12 +78,12 @@ use sp_core::{ hash::{H256, H512}, sr25519, }; -use sp_std::prelude::*; +#[cfg(all(not(feature = "std"), feature = "serde"))] +use alloc::format; +use alloc::vec; use codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; -#[cfg(all(not(feature = "std"), feature = "serde"))] -use sp_std::alloc::format; pub mod curve; pub mod generic; @@ -191,7 +196,7 @@ impl Justifications { impl IntoIterator for Justifications { type Item = Justification; - type IntoIter = sp_std::vec::IntoIter; + type IntoIter = alloc::vec::IntoIter; fn into_iter(self) -> Self::IntoIter { self.0.into_iter() @@ -508,11 +513,11 @@ impl From for DispatchOutcome { /// This is the legacy return type of `Dispatchable`. It is still exposed for compatibility reasons. /// The new return type is `DispatchResultWithInfo`. FRAME runtimes should use /// `frame_support::dispatch::DispatchResult`. -pub type DispatchResult = sp_std::result::Result<(), DispatchError>; +pub type DispatchResult = core::result::Result<(), DispatchError>; /// Return type of a `Dispatchable` which contains the `DispatchResult` and additional information /// about the `Dispatchable` that is only known post dispatch. -pub type DispatchResultWithInfo = sp_std::result::Result>; +pub type DispatchResultWithInfo = core::result::Result>; /// Reason why a pallet call failed. #[derive(Eq, Clone, Copy, Encode, Decode, Debug, TypeInfo, MaxEncodedLen)] @@ -911,14 +916,14 @@ impl OpaqueExtrinsic { } } -impl sp_std::fmt::Debug for OpaqueExtrinsic { +impl core::fmt::Debug for OpaqueExtrinsic { #[cfg(feature = "std")] - fn fmt(&self, fmt: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::fmt::Result { write!(fmt, "{}", sp_core::hexdisplay::HexDisplay::from(&self.0)) } #[cfg(not(feature = "std"))] - fn fmt(&self, _fmt: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn fmt(&self, _fmt: &mut core::fmt::Formatter) -> core::fmt::Result { Ok(()) } } diff --git a/substrate/primitives/runtime/src/multiaddress.rs b/substrate/primitives/runtime/src/multiaddress.rs index c435606312e..4382405a8eb 100644 --- a/substrate/primitives/runtime/src/multiaddress.rs +++ b/substrate/primitives/runtime/src/multiaddress.rs @@ -17,8 +17,8 @@ //! MultiAddress type is a wrapper for multiple downstream account formats. +use alloc::vec::Vec; use codec::{Decode, Encode}; -use sp_std::vec::Vec; /// A multi-format address wrapper for on-chain accounts. #[derive(Encode, Decode, PartialEq, Eq, Clone, crate::RuntimeDebug, scale_info::TypeInfo)] diff --git a/substrate/primitives/runtime/src/offchain/http.rs b/substrate/primitives/runtime/src/offchain/http.rs index bacc0073825..79899164540 100644 --- a/substrate/primitives/runtime/src/offchain/http.rs +++ b/substrate/primitives/runtime/src/offchain/http.rs @@ -48,15 +48,13 @@ //! assert_eq!(body.error(), &None); //! ``` +use alloc::{str, vec, vec::Vec}; use sp_core::{ offchain::{ HttpError, HttpRequestId as RequestId, HttpRequestStatus as RequestStatus, Timestamp, }, RuntimeDebug, }; -#[cfg(not(feature = "std"))] -use sp_std::prelude::vec; -use sp_std::{prelude::Vec, str}; /// Request method (HTTP verb) #[derive(Clone, PartialEq, Eq, RuntimeDebug)] diff --git a/substrate/primitives/runtime/src/runtime_logger.rs b/substrate/primitives/runtime/src/runtime_logger.rs index 6f1e738eb0e..79984b13567 100644 --- a/substrate/primitives/runtime/src/runtime_logger.rs +++ b/substrate/primitives/runtime/src/runtime_logger.rs @@ -53,7 +53,7 @@ impl log::Log for RuntimeLogger { } fn log(&self, record: &log::Record) { - use sp_std::fmt::Write; + use core::fmt::Write; let mut w = sp_std::Writer::default(); let _ = ::core::write!(&mut w, "{}", record.args()); diff --git a/substrate/primitives/runtime/src/runtime_string.rs b/substrate/primitives/runtime/src/runtime_string.rs index 607ae59db63..71aacf07a76 100644 --- a/substrate/primitives/runtime/src/runtime_string.rs +++ b/substrate/primitives/runtime/src/runtime_string.rs @@ -15,9 +15,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +use alloc::vec::Vec; use codec::{Decode, Encode}; use sp_core::RuntimeDebug; -use sp_std::vec::Vec; /// A string that wraps a `&'static str` in the runtime and `String`/`Vec` on decode. #[derive(Eq, RuntimeDebug, Clone)] @@ -50,7 +50,7 @@ macro_rules! format_runtime_string { } #[cfg(not(feature = "std"))] { - sp_runtime::RuntimeString::Owned(sp_std::alloc::format!($($args)*).as_bytes().to_vec()) + sp_runtime::RuntimeString::Owned(alloc::format!($($args)*).as_bytes().to_vec()) } }}; } diff --git a/substrate/primitives/runtime/src/traits.rs b/substrate/primitives/runtime/src/traits.rs index d023aa045db..25ef15eaf56 100644 --- a/substrate/primitives/runtime/src/traits.rs +++ b/substrate/primitives/runtime/src/traits.rs @@ -26,7 +26,10 @@ use crate::{ }, DispatchResult, }; +use alloc::vec::Vec; use codec::{Codec, Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen}; +#[doc(hidden)] +pub use core::{fmt::Debug, marker::PhantomData}; use impl_trait_for_tuples::impl_for_tuples; #[cfg(feature = "serde")] use serde::{de::DeserializeOwned, Deserialize, Serialize}; @@ -44,9 +47,6 @@ pub use sp_core::{ parameter_types, ConstBool, ConstI128, ConstI16, ConstI32, ConstI64, ConstI8, ConstU128, ConstU16, ConstU32, ConstU64, ConstU8, Get, GetDefault, TryCollect, TypedGet, }; -#[doc(hidden)] -pub use sp_std::marker::PhantomData; -use sp_std::{self, fmt::Debug, prelude::*}; #[cfg(feature = "std")] use std::fmt::Display; #[cfg(feature = "std")] @@ -322,7 +322,7 @@ impl TryMorph for Identity { } /// Implementation of `Morph` which converts between types using `Into`. -pub struct MorphInto(sp_std::marker::PhantomData); +pub struct MorphInto(core::marker::PhantomData); impl> Morph for MorphInto { type Outcome = T; fn morph(a: A) -> T { @@ -331,7 +331,7 @@ impl> Morph for MorphInto { } /// Implementation of `TryMorph` which attempts to convert between types using `TryInto`. -pub struct TryMorphInto(sp_std::marker::PhantomData); +pub struct TryMorphInto(core::marker::PhantomData); impl> TryMorph for TryMorphInto { type Outcome = T; fn try_morph(a: A) -> Result { @@ -692,7 +692,7 @@ impl MaybeEquivalence for Tuple { /// Adapter which turns a [Get] implementation into a [Convert] implementation which always returns /// in the same value no matter the input. -pub struct ConvertToValue(sp_std::marker::PhantomData); +pub struct ConvertToValue(core::marker::PhantomData); impl> Convert for ConvertToValue { fn convert(_: X) -> Y { T::get() @@ -934,17 +934,17 @@ impl Clear for T { pub trait SimpleBitOps: Sized + Clear - + sp_std::ops::BitOr - + sp_std::ops::BitXor - + sp_std::ops::BitAnd + + core::ops::BitOr + + core::ops::BitXor + + core::ops::BitAnd { } impl< T: Sized + Clear - + sp_std::ops::BitOr - + sp_std::ops::BitXor - + sp_std::ops::BitAnd, + + core::ops::BitOr + + core::ops::BitXor + + core::ops::BitAnd, > SimpleBitOps for T { } @@ -988,7 +988,7 @@ pub trait HashOutput: + MaybeDisplay + MaybeFromStr + Debug - + sp_std::hash::Hash + + core::hash::Hash + AsRef<[u8]> + AsMut<[u8]> + Copy @@ -1008,7 +1008,7 @@ impl HashOutput for T where + MaybeDisplay + MaybeFromStr + Debug - + sp_std::hash::Hash + + core::hash::Hash + AsRef<[u8]> + AsMut<[u8]> + Copy @@ -1131,7 +1131,7 @@ sp_core::impl_maybe_marker!( trait MaybeFromStr: FromStr; /// A type that implements Hash when in std environment. - trait MaybeHash: sp_std::hash::Hash; + trait MaybeHash: core::hash::Hash; ); sp_core::impl_maybe_marker_std_or_serde!( @@ -1158,7 +1158,7 @@ pub trait BlockNumber: + MaybeSerializeDeserialize + MaybeFromStr + Debug - + sp_std::hash::Hash + + core::hash::Hash + Copy + MaybeDisplay + AtLeast32BitUnsigned @@ -1176,7 +1176,7 @@ impl< + MaybeSerializeDeserialize + MaybeFromStr + Debug - + sp_std::hash::Hash + + core::hash::Hash + Copy + MaybeDisplay + AtLeast32BitUnsigned @@ -1599,7 +1599,7 @@ pub trait SignedExtension: /// This method provides a default implementation that returns a vec containing a single /// [`SignedExtensionMetadata`]. fn metadata() -> Vec { - sp_std::vec![SignedExtensionMetadata { + alloc::vec![SignedExtensionMetadata { identifier: Self::IDENTIFIER, ty: scale_info::meta_type::(), additional_signed: scale_info::meta_type::() @@ -1702,7 +1702,7 @@ impl SignedExtension for () { type Call = (); type Pre = (); const IDENTIFIER: &'static str = "UnitSignedExtension"; - fn additional_signed(&self) -> sp_std::result::Result<(), TransactionValidityError> { + fn additional_signed(&self) -> core::result::Result<(), TransactionValidityError> { Ok(()) } fn pre_dispatch( @@ -2035,7 +2035,7 @@ macro_rules! impl_opaque_keys_inner { /// The generated key pairs are stored in the keystore. /// /// Returns the concatenated SCALE encoded public keys. - pub fn generate(seed: Option<$crate::sp_std::vec::Vec>) -> $crate::sp_std::vec::Vec { + pub fn generate(seed: Option<$crate::Vec>) -> $crate::Vec { let keys = Self{ $( $field: < @@ -2051,7 +2051,7 @@ macro_rules! impl_opaque_keys_inner { /// Converts `Self` into a `Vec` of `(raw public key, KeyTypeId)`. pub fn into_raw_public_keys( self, - ) -> $crate::sp_std::vec::Vec<($crate::sp_std::vec::Vec, $crate::KeyTypeId)> { + ) -> $crate::Vec<($crate::Vec, $crate::KeyTypeId)> { let mut keys = Vec::new(); $( keys.push(( @@ -2073,7 +2073,7 @@ macro_rules! impl_opaque_keys_inner { /// Returns `None` when the decoding failed, otherwise `Some(_)`. pub fn decode_into_raw_public_keys( encoded: &[u8], - ) -> Option<$crate::sp_std::vec::Vec<($crate::sp_std::vec::Vec, $crate::KeyTypeId)>> { + ) -> Option<$crate::Vec<($crate::Vec, $crate::KeyTypeId)>> { ::decode(&mut &encoded[..]) .ok() .map(|s| s.into_raw_public_keys()) diff --git a/substrate/primitives/runtime/src/transaction_validity.rs b/substrate/primitives/runtime/src/transaction_validity.rs index 83694849382..ffff94e1746 100644 --- a/substrate/primitives/runtime/src/transaction_validity.rs +++ b/substrate/primitives/runtime/src/transaction_validity.rs @@ -21,8 +21,8 @@ use crate::{ codec::{Decode, Encode}, RuntimeDebug, }; +use alloc::{vec, vec::Vec}; use scale_info::TypeInfo; -use sp_std::prelude::*; /// Priority for a transaction. Additive. Higher is better. pub type TransactionPriority = u64; diff --git a/substrate/primitives/version/src/lib.rs b/substrate/primitives/version/src/lib.rs index 789c507742f..55dea364eef 100644 --- a/substrate/primitives/version/src/lib.rs +++ b/substrate/primitives/version/src/lib.rs @@ -33,6 +33,8 @@ #![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + #[cfg(feature = "serde")] use serde::{Deserialize, Serialize}; #[cfg(feature = "std")] @@ -40,6 +42,8 @@ use std::collections::HashSet; #[cfg(feature = "std")] use std::fmt; +#[doc(hidden)] +pub use alloc::borrow::Cow; use codec::{Decode, Encode, Input}; use scale_info::TypeInfo; use sp_runtime::RuntimeString; @@ -139,13 +143,13 @@ pub use sp_version_proc_macro::runtime_version; pub type ApiId = [u8; 8]; /// A vector of pairs of `ApiId` and a `u32` for version. -pub type ApisVec = sp_std::borrow::Cow<'static, [(ApiId, u32)]>; +pub type ApisVec = alloc::borrow::Cow<'static, [(ApiId, u32)]>; /// Create a vector of Api declarations. #[macro_export] macro_rules! create_apis_vec { ( $y:expr ) => { - $crate::sp_std::borrow::Cow::Borrowed(&$y) + $crate::Cow::Borrowed(&$y) }; } @@ -409,9 +413,9 @@ impl GetNativeVersion for std::sync::Arc { #[cfg(feature = "serde")] mod apis_serialize { use super::*; + use alloc::vec::Vec; use impl_serde::serialize as bytes; use serde::{de, ser::SerializeTuple, Serializer}; - use sp_std::vec::Vec; #[derive(Serialize)] struct ApiId<'a>(#[serde(serialize_with = "serialize_bytesref")] &'a super::ApiId, &'a u32); @@ -446,7 +450,7 @@ mod apis_serialize { impl<'de> de::Visitor<'de> for Visitor { type Value = ApisVec; - fn expecting(&self, formatter: &mut sp_std::fmt::Formatter) -> sp_std::fmt::Result { + fn expecting(&self, formatter: &mut core::fmt::Formatter) -> core::fmt::Result { formatter.write_str("a sequence of api id and version tuples") } diff --git a/substrate/test-utils/runtime/src/lib.rs b/substrate/test-utils/runtime/src/lib.rs index a13441302e4..d1a3eaa2daa 100644 --- a/substrate/test-utils/runtime/src/lib.rs +++ b/substrate/test-utils/runtime/src/lib.rs @@ -27,7 +27,6 @@ pub mod extrinsic; pub mod genesismap; pub mod substrate_test_pallet; -use alloc::boxed::Box; #[cfg(not(feature = "std"))] use alloc::{vec, vec::Vec}; use codec::{Decode, Encode}; diff --git a/templates/minimal/runtime/src/lib.rs b/templates/minimal/runtime/src/lib.rs index 8c7867f4cc8..08ad537ecdd 100644 --- a/templates/minimal/runtime/src/lib.rs +++ b/templates/minimal/runtime/src/lib.rs @@ -23,6 +23,9 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +extern crate alloc; + +use alloc::{vec, vec::Vec}; use frame::{ deps::frame_support::{ genesis_builder_helper::{build_state, get_preset}, diff --git a/templates/parachain/runtime/src/lib.rs b/templates/parachain/runtime/src/lib.rs index 012ad1d097b..f53871bb185 100644 --- a/templates/parachain/runtime/src/lib.rs +++ b/templates/parachain/runtime/src/lib.rs @@ -13,7 +13,7 @@ mod configs; mod weights; extern crate alloc; -use alloc::{boxed::Box, vec::Vec}; +use alloc::vec::Vec; use smallvec::smallvec; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, diff --git a/templates/solochain/runtime/src/lib.rs b/templates/solochain/runtime/src/lib.rs index 936ecd1bd38..9de95ac9569 100644 --- a/templates/solochain/runtime/src/lib.rs +++ b/templates/solochain/runtime/src/lib.rs @@ -4,7 +4,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); extern crate alloc; -use alloc::{boxed::Box, vec, vec::Vec}; +use alloc::{vec, vec::Vec}; use pallet_grandpa::AuthorityId as GrandpaId; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -- GitLab From c05b0b970942c2bc298f61be62cc2e2b5d46af19 Mon Sep 17 00:00:00 2001 From: Branislav Kontur Date: Mon, 15 Jul 2024 23:10:03 +0200 Subject: [PATCH 032/252] Updated substrate-relay version for tests (#5017) ## Testing Both Bridges zombienet tests passed, e.g.: https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/6698640 https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/6698641 https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/6700072 https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/6700073 --- docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile b/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile index 634b9f18829..60698de1d6a 100644 --- a/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile +++ b/docker/dockerfiles/bridges_zombienet_tests_injected.Dockerfile @@ -1,7 +1,7 @@ # this image is built on top of existing Zombienet image ARG ZOMBIENET_IMAGE # this image uses substrate-relay image built elsewhere -ARG SUBSTRATE_RELAY_IMAGE=docker.io/paritytech/substrate-relay:v1.6.5 +ARG SUBSTRATE_RELAY_IMAGE=docker.io/paritytech/substrate-relay:v1.6.6 # metadata ARG VCS_REF -- GitLab From 926c1b6adcaa767f4887b5774ef1fdde75156dd9 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Tue, 16 Jul 2024 00:57:08 +0200 Subject: [PATCH 033/252] rpc: add back rpc logger (#4952) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bastian Köcher --- substrate/client/rpc-servers/src/lib.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/substrate/client/rpc-servers/src/lib.rs b/substrate/client/rpc-servers/src/lib.rs index 619498b3333..0bae16b113d 100644 --- a/substrate/client/rpc-servers/src/lib.rs +++ b/substrate/client/rpc-servers/src/lib.rs @@ -224,8 +224,9 @@ where ), }; - let rpc_middleware = - RpcServiceBuilder::new().option_layer(middleware_layer.clone()); + let rpc_middleware = RpcServiceBuilder::new() + .rpc_logger(1024) + .option_layer(middleware_layer.clone()); let mut svc = service_builder.set_rpc_middleware(rpc_middleware).build(methods, stop_handle); -- GitLab From 8d392711f59d60104d0dafba4609d8985a2216e9 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Tue, 16 Jul 2024 11:23:26 +0300 Subject: [PATCH 034/252] net/litep2p: Propagate ValuePut events to the network backend (#5018) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `DhtEvent::ValuePut` was not propagated back to the higher levels. This PR ensures we'll send the ValuePut event similarly to `DhtEvent::ValuePutFailed` ### Next Steps - [ ] A bit more testing Thanks @alexggh for catching this 🙏 cc @paritytech/networking Signed-off-by: Alexandru Vasile --- substrate/client/network/src/litep2p/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/substrate/client/network/src/litep2p/mod.rs b/substrate/client/network/src/litep2p/mod.rs index 824f62082ca..34ca5b71610 100644 --- a/substrate/client/network/src/litep2p/mod.rs +++ b/substrate/client/network/src/litep2p/mod.rs @@ -851,6 +851,10 @@ impl NetworkBackend for Litep2pNetworkBac "`PUT_VALUE` for {key:?} ({query_id:?}) succeeded", ); + self.event_streams.send(Event::Dht( + DhtEvent::ValuePut(libp2p::kad::RecordKey::new(&key)) + )); + if let Some(ref metrics) = self.metrics { metrics .kademlia_query_duration -- GitLab From d8d36a091c9f6387a448aaed0067406c9a2c6416 Mon Sep 17 00:00:00 2001 From: Javier Bullrich Date: Tue, 16 Jul 2024 10:49:11 +0200 Subject: [PATCH 035/252] command-action: added scoped permissions to the github tokens (#5016) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will ensure that malicious code can not access other parts of the project. Co-authored-by: Oliver Tale-Yazdi Co-authored-by: Bastian Köcher --- .github/workflows/command-bench-all.yml | 3 +++ .github/workflows/command-bench-overhead.yml | 3 +++ .github/workflows/command-bench.yml | 3 +++ .github/workflows/command-fmt.yml | 3 +++ .github/workflows/command-sync.yml | 3 +++ .github/workflows/command-update-ui.yml | 3 +++ 6 files changed, 18 insertions(+) diff --git a/.github/workflows/command-bench-all.yml b/.github/workflows/command-bench-all.yml index 6aa4f6f7ff0..4128f86fb7c 100644 --- a/.github/workflows/command-bench-all.yml +++ b/.github/workflows/command-bench-all.yml @@ -66,6 +66,9 @@ jobs: runs-on: arc-runners-polkadot-sdk-weights container: image: ${{ needs.set-image.outputs.IMAGE }} + permissions: + contents: write + pull-requests: write steps: - name: Download repo uses: actions/checkout@v4 diff --git a/.github/workflows/command-bench-overhead.yml b/.github/workflows/command-bench-overhead.yml index 16cbcefcf26..fec8d37bb9e 100644 --- a/.github/workflows/command-bench-overhead.yml +++ b/.github/workflows/command-bench-overhead.yml @@ -45,6 +45,9 @@ jobs: runs-on: arc-runners-polkadot-sdk-benchmark container: image: ${{ needs.set-image.outputs.IMAGE }} + permissions: + contents: write + pull-requests: write steps: - name: Download repo uses: actions/checkout@v4 diff --git a/.github/workflows/command-bench.yml b/.github/workflows/command-bench.yml index b23b06d1b3c..ac879f44375 100644 --- a/.github/workflows/command-bench.yml +++ b/.github/workflows/command-bench.yml @@ -91,6 +91,9 @@ jobs: runs-on: arc-runners-polkadot-sdk-benchmark container: image: ${{ needs.set-image.outputs.IMAGE }} + permissions: + contents: write + pull-requests: write steps: - name: Download repo uses: actions/checkout@v4 diff --git a/.github/workflows/command-fmt.yml b/.github/workflows/command-fmt.yml index c949d0768d7..586b8c77f27 100644 --- a/.github/workflows/command-fmt.yml +++ b/.github/workflows/command-fmt.yml @@ -23,6 +23,9 @@ jobs: timeout-minutes: 20 container: image: ${{ needs.set-image.outputs.IMAGE }} + permissions: + contents: write + pull-requests: write steps: - name: Download repo uses: actions/checkout@v4 diff --git a/.github/workflows/command-sync.yml b/.github/workflows/command-sync.yml index fa5bb9eaf91..c610f4066a8 100644 --- a/.github/workflows/command-sync.yml +++ b/.github/workflows/command-sync.yml @@ -38,6 +38,9 @@ jobs: runs-on: arc-runners-polkadot-sdk-warpsync container: image: ${{ needs.set-image.outputs.IMAGE }} + permissions: + contents: write + pull-requests: write steps: - name: Download repo uses: actions/checkout@v4 diff --git a/.github/workflows/command-update-ui.yml b/.github/workflows/command-update-ui.yml index b6b0420e786..860177adc87 100644 --- a/.github/workflows/command-update-ui.yml +++ b/.github/workflows/command-update-ui.yml @@ -26,6 +26,9 @@ jobs: timeout-minutes: 90 container: image: ${{ needs.set-image.outputs.IMAGE }} + permissions: + contents: write + pull-requests: write steps: - name: Download repo uses: actions/checkout@v4 -- GitLab From 0b3d7607d2f78e9b62d92ccf487f0984f921043e Mon Sep 17 00:00:00 2001 From: Parth Mittal <76661350+mittal-parth@users.noreply.github.com> Date: Tue, 16 Jul 2024 14:23:37 +0530 Subject: [PATCH 036/252] Remove `pallet-getter` usage from pallet-session (#4972) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As per #3326, removes usage of the `pallet::getter` macro from the `session` pallet. The syntax `StorageItem::::get()` should be used instead. Also, adds public functions for compatibility. NOTE: The `./historical` directory has not been modified. cc @muraca polkadot address: 5GsLutpKjbzsbTphebs9Uy4YK6gTN47MAaz6njPktidjR5cp --------- Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by: Bastian Köcher --- prdoc/pr_4972.prdoc | 14 ++++ substrate/frame/session/README.md | 2 +- .../frame/session/benchmarking/src/inner.rs | 2 +- substrate/frame/session/src/lib.rs | 74 +++++++++++-------- substrate/frame/session/src/tests.rs | 44 +++++------ 5 files changed, 83 insertions(+), 53 deletions(-) create mode 100644 prdoc/pr_4972.prdoc diff --git a/prdoc/pr_4972.prdoc b/prdoc/pr_4972.prdoc new file mode 100644 index 00000000000..dd9f1b531aa --- /dev/null +++ b/prdoc/pr_4972.prdoc @@ -0,0 +1,14 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "Remove `pallet::getter` usage from pallet-session" + +doc: + - audience: Runtime Dev + description: | + This PR removes the `pallet::getter`s from `pallet-session`. + The syntax `StorageItem::::get()` should be used instead. + +crates: + - name: pallet-session + bump: minor diff --git a/substrate/frame/session/README.md b/substrate/frame/session/README.md index fa7c9b3f983..5a063bffee0 100644 --- a/substrate/frame/session/README.md +++ b/substrate/frame/session/README.md @@ -70,7 +70,7 @@ set. use pallet_session as session; fn validators() -> Vec<::ValidatorId> { - >::validators() + pallet_session::Validators::::get() } ``` diff --git a/substrate/frame/session/benchmarking/src/inner.rs b/substrate/frame/session/benchmarking/src/inner.rs index f08e10f0786..9ba47b34ed7 100644 --- a/substrate/frame/session/benchmarking/src/inner.rs +++ b/substrate/frame/session/benchmarking/src/inner.rs @@ -152,7 +152,7 @@ fn check_membership_proof_setup( Pallet::::on_initialize(frame_system::pallet_prelude::BlockNumberFor::::one()); // skip sessions until the new validator set is enacted - while Session::::validators().len() < n as usize { + while Validators::::get().len() < n as usize { Session::::rotate_session(); } diff --git a/substrate/frame/session/src/lib.rs b/substrate/frame/session/src/lib.rs index 45f70dfa258..e1a2a31911f 100644 --- a/substrate/frame/session/src/lib.rs +++ b/substrate/frame/session/src/lib.rs @@ -95,7 +95,7 @@ //! use pallet_session as session; //! //! fn validators() -> Vec<::ValidatorId> { -//! >::validators() +//! pallet_session::Validators::::get() //! } //! # fn main(){} //! ``` @@ -447,7 +447,7 @@ pub mod pallet { }); for (account, val, keys) in self.keys.iter().cloned() { - >::inner_set_keys(&val, keys) + Pallet::::inner_set_keys(&val, keys) .expect("genesis config must not contain duplicates; qed"); if frame_system::Pallet::::inc_consumers_without_limit(&account).is_err() { // This will leak a provider reference, however it only happens once (at @@ -479,7 +479,7 @@ pub mod pallet { T::SessionHandler::on_genesis_session::(&queued_keys); Validators::::put(initial_validators_0); - >::put(queued_keys); + QueuedKeys::::put(queued_keys); T::SessionManager::start_session(0); } @@ -487,12 +487,10 @@ pub mod pallet { /// The current set of validators. #[pallet::storage] - #[pallet::getter(fn validators)] pub type Validators = StorageValue<_, Vec, ValueQuery>; /// Current index of the session. #[pallet::storage] - #[pallet::getter(fn current_index)] pub type CurrentIndex = StorageValue<_, SessionIndex, ValueQuery>; /// True if the underlying economic identities or weighting behind the validators @@ -503,7 +501,6 @@ pub mod pallet { /// The queued keys for the next session. When the next session begins, these keys /// will be used to determine the validator's session keys. #[pallet::storage] - #[pallet::getter(fn queued_keys)] pub type QueuedKeys = StorageValue<_, Vec<(T::ValidatorId, T::Keys)>, ValueQuery>; /// Indices of disabled validators. @@ -512,7 +509,6 @@ pub mod pallet { /// disabled using binary search. It gets cleared when `on_session_ending` returns /// a new set of identities. #[pallet::storage] - #[pallet::getter(fn disabled_validators)] pub type DisabledValidators = StorageValue<_, Vec, ValueQuery>; /// The next session keys for a validator. @@ -609,33 +605,53 @@ pub mod pallet { } impl Pallet { + /// Public function to access the current set of validators. + pub fn validators() -> Vec { + Validators::::get() + } + + /// Public function to access the current session index. + pub fn current_index() -> SessionIndex { + CurrentIndex::::get() + } + + /// Public function to access the queued keys. + pub fn queued_keys() -> Vec<(T::ValidatorId, T::Keys)> { + QueuedKeys::::get() + } + + /// Public function to access the disabled validators. + pub fn disabled_validators() -> Vec { + DisabledValidators::::get() + } + /// Move on to next session. Register new validator set and session keys. Changes to the /// validator set have a session of delay to take effect. This allows for equivocation /// punishment after a fork. pub fn rotate_session() { - let session_index = >::get(); + let session_index = CurrentIndex::::get(); log::trace!(target: "runtime::session", "rotating session {:?}", session_index); - let changed = >::get(); + let changed = QueuedChanged::::get(); // Inform the session handlers that a session is going to end. T::SessionHandler::on_before_session_ending(); T::SessionManager::end_session(session_index); // Get queued session keys and validators. - let session_keys = >::get(); + let session_keys = QueuedKeys::::get(); let validators = session_keys.iter().map(|(validator, _)| validator.clone()).collect::>(); Validators::::put(&validators); if changed { // reset disabled validators if active set was changed - >::take(); + DisabledValidators::::take(); } // Increment session index. let session_index = session_index + 1; - >::put(session_index); + CurrentIndex::::put(session_index); T::SessionManager::start_session(session_index); @@ -683,8 +699,8 @@ impl Pallet { (queued_amalgamated, changed) }; - >::put(queued_amalgamated.clone()); - >::put(next_changed); + QueuedKeys::::put(queued_amalgamated.clone()); + QueuedChanged::::put(next_changed); // Record that this happened. Self::deposit_event(Event::NewSession { session_index }); @@ -699,7 +715,7 @@ impl Pallet { return false } - >::mutate(|disabled| { + DisabledValidators::::mutate(|disabled| { if let Err(index) = disabled.binary_search(&i) { disabled.insert(index, i); T::SessionHandler::on_disabled(i); @@ -716,7 +732,7 @@ impl Pallet { /// Returns `false` either if the validator could not be found or it was already /// disabled. pub fn disable(c: &T::ValidatorId) -> bool { - Self::validators() + Validators::::get() .iter() .position(|i| i == c) .map(|i| Self::disable_index(i as u32)) @@ -747,7 +763,7 @@ impl Pallet { let new_ids = T::Keys::key_ids(); // Translate NextKeys, and key ownership relations at the same time. - >::translate::(|val, old_keys| { + NextKeys::::translate::(|val, old_keys| { // Clear all key ownership relations. Typically the overlap should // stay the same, but no guarantees by the upgrade function. for i in old_ids.iter() { @@ -764,7 +780,7 @@ impl Pallet { Some(new_keys) }); - let _ = >::translate::, _>(|k| { + let _ = QueuedKeys::::translate::, _>(|k| { k.map(|k| { k.into_iter() .map(|(val, old_keys)| (val.clone(), upgrade(val, old_keys))) @@ -850,28 +866,28 @@ impl Pallet { } fn load_keys(v: &T::ValidatorId) -> Option { - >::get(v) + NextKeys::::get(v) } fn take_keys(v: &T::ValidatorId) -> Option { - >::take(v) + NextKeys::::take(v) } fn put_keys(v: &T::ValidatorId, keys: &T::Keys) { - >::insert(v, keys); + NextKeys::::insert(v, keys); } /// Query the owner of a session key by returning the owner's validator ID. pub fn key_owner(id: KeyTypeId, key_data: &[u8]) -> Option { - >::get((id, key_data)) + KeyOwner::::get((id, key_data)) } fn put_key_owner(id: KeyTypeId, key_data: &[u8], v: &T::ValidatorId) { - >::insert((id, key_data), v) + KeyOwner::::insert((id, key_data), v) } fn clear_key_owner(id: KeyTypeId, key_data: &[u8]) { - >::remove((id, key_data)); + KeyOwner::::remove((id, key_data)); } } @@ -886,11 +902,11 @@ impl ValidatorSet for Pallet { type ValidatorIdOf = T::ValidatorIdOf; fn session_index() -> sp_staking::SessionIndex { - Pallet::::current_index() + CurrentIndex::::get() } fn validators() -> Vec { - Pallet::::validators() + Validators::::get() } } @@ -908,11 +924,11 @@ impl EstimateNextNewSession> for Pallet { impl frame_support::traits::DisabledValidators for Pallet { fn is_disabled(index: u32) -> bool { - >::disabled_validators().binary_search(&index).is_ok() + DisabledValidators::::get().binary_search(&index).is_ok() } fn disabled_validators() -> Vec { - >::disabled_validators() + DisabledValidators::::get() } } @@ -930,7 +946,7 @@ impl> FindAuthor { let i = Inner::find_author(digests)?; - let validators = >::validators(); + let validators = Validators::::get(); validators.get(i as usize).cloned() } } diff --git a/substrate/frame/session/src/tests.rs b/substrate/frame/session/src/tests.rs index 69337e016ea..f392c2ab766 100644 --- a/substrate/frame/session/src/tests.rs +++ b/substrate/frame/session/src/tests.rs @@ -44,7 +44,7 @@ fn initialize_block(block: u64) { fn simple_setup_should_work() { new_test_ext().execute_with(|| { assert_eq!(authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); - assert_eq!(Session::validators(), vec![1, 2, 3]); + assert_eq!(Validators::::get(), vec![1, 2, 3]); }); } @@ -60,7 +60,7 @@ fn put_get_keys() { fn keys_cleared_on_kill() { let mut ext = new_test_ext(); ext.execute_with(|| { - assert_eq!(Session::validators(), vec![1, 2, 3]); + assert_eq!(Validators::::get(), vec![1, 2, 3]); assert_eq!(Session::load_keys(&1), Some(UintAuthorityId(1).into())); let id = DUMMY; @@ -79,7 +79,7 @@ fn keys_cleared_on_kill() { fn purge_keys_works_for_stash_id() { let mut ext = new_test_ext(); ext.execute_with(|| { - assert_eq!(Session::validators(), vec![1, 2, 3]); + assert_eq!(Validators::::get(), vec![1, 2, 3]); TestValidatorIdOf::set(vec![(10, 1), (20, 2), (3, 3)].into_iter().collect()); assert_eq!(Session::load_keys(&1), Some(UintAuthorityId(1).into())); assert_eq!(Session::load_keys(&2), Some(UintAuthorityId(2).into())); @@ -108,10 +108,10 @@ fn authorities_should_track_validators() { force_new_session(); initialize_block(1); assert_eq!( - Session::queued_keys(), + QueuedKeys::::get(), vec![(1, UintAuthorityId(1).into()), (2, UintAuthorityId(2).into()),] ); - assert_eq!(Session::validators(), vec![1, 2, 3]); + assert_eq!(Validators::::get(), vec![1, 2, 3]); assert_eq!(authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(3)]); assert!(before_session_end_called()); reset_before_session_end_called(); @@ -119,10 +119,10 @@ fn authorities_should_track_validators() { force_new_session(); initialize_block(2); assert_eq!( - Session::queued_keys(), + QueuedKeys::::get(), vec![(1, UintAuthorityId(1).into()), (2, UintAuthorityId(2).into()),] ); - assert_eq!(Session::validators(), vec![1, 2]); + assert_eq!(Validators::::get(), vec![1, 2]); assert_eq!(authorities(), vec![UintAuthorityId(1), UintAuthorityId(2)]); assert!(before_session_end_called()); reset_before_session_end_called(); @@ -132,28 +132,28 @@ fn authorities_should_track_validators() { force_new_session(); initialize_block(3); assert_eq!( - Session::queued_keys(), + QueuedKeys::::get(), vec![ (1, UintAuthorityId(1).into()), (2, UintAuthorityId(2).into()), (4, UintAuthorityId(4).into()), ] ); - assert_eq!(Session::validators(), vec![1, 2]); + assert_eq!(Validators::::get(), vec![1, 2]); assert_eq!(authorities(), vec![UintAuthorityId(1), UintAuthorityId(2)]); assert!(before_session_end_called()); force_new_session(); initialize_block(4); assert_eq!( - Session::queued_keys(), + QueuedKeys::::get(), vec![ (1, UintAuthorityId(1).into()), (2, UintAuthorityId(2).into()), (4, UintAuthorityId(4).into()), ] ); - assert_eq!(Session::validators(), vec![1, 2, 4]); + assert_eq!(Validators::::get(), vec![1, 2, 4]); assert_eq!(authorities(), vec![UintAuthorityId(1), UintAuthorityId(2), UintAuthorityId(4)]); }); } @@ -164,20 +164,20 @@ fn should_work_with_early_exit() { set_session_length(10); initialize_block(1); - assert_eq!(Session::current_index(), 0); + assert_eq!(CurrentIndex::::get(), 0); initialize_block(2); - assert_eq!(Session::current_index(), 0); + assert_eq!(CurrentIndex::::get(), 0); force_new_session(); initialize_block(3); - assert_eq!(Session::current_index(), 1); + assert_eq!(CurrentIndex::::get(), 1); initialize_block(9); - assert_eq!(Session::current_index(), 1); + assert_eq!(CurrentIndex::::get(), 1); initialize_block(10); - assert_eq!(Session::current_index(), 2); + assert_eq!(CurrentIndex::::get(), 2); }); } @@ -402,7 +402,7 @@ fn upgrade_keys() { // Set `QueuedKeys`. { - let storage_key = >::hashed_key(); + let storage_key = super::QueuedKeys::::hashed_key(); assert!(storage::unhashed::exists(&storage_key)); storage::unhashed::put(&storage_key, &val_keys); } @@ -410,7 +410,7 @@ fn upgrade_keys() { // Set `NextKeys`. { for &(i, ref keys) in val_keys.iter() { - let storage_key = >::hashed_key_for(i); + let storage_key = super::NextKeys::::hashed_key_for(i); assert!(storage::unhashed::exists(&storage_key)); storage::unhashed::put(&storage_key, keys); } @@ -446,12 +446,12 @@ fn upgrade_keys() { // Check queued keys. assert_eq!( - Session::queued_keys(), + QueuedKeys::::get(), vec![(1, mock_keys_for(1)), (2, mock_keys_for(2)), (3, mock_keys_for(3)),], ); for i in 1u64..4 { - assert_eq!(>::get(&i), Some(mock_keys_for(i))); + assert_eq!(super::NextKeys::::get(&i), Some(mock_keys_for(i))); } }) } @@ -466,8 +466,8 @@ fn test_migration_v1() { use frame_support::traits::{PalletInfoAccess, StorageVersion}; new_test_ext().execute_with(|| { - assert!(>::iter_values().count() > 0); - assert!(>::exists()); + assert!(HistoricalSessions::::iter_values().count() > 0); + assert!(StoredRange::::exists()); let old_pallet = "Session"; let new_pallet = ::name(); -- GitLab From cde2eb42a6b4ed5e930e59ec4dc03b5fa5059bd5 Mon Sep 17 00:00:00 2001 From: Alexandru Gheorghe <49718502+alexggh@users.noreply.github.com> Date: Tue, 16 Jul 2024 12:51:09 +0300 Subject: [PATCH 037/252] [1 / 5] Optimize logic for gossiping assignments (#4848) This is part of the work to further optimize the approval subsystems, if you want to understand the full context start with reading https://github.com/paritytech/polkadot-sdk/pull/4849#issue-2364261568, however that's not necessary, as this change is self-contained and nodes would benefit from it regardless of subsequent changes landing or not. While testing with 1000 validators I found out that the logic for determining the validators an assignment should be gossiped to is taking a lot of time, because it always iterated through all the peers, to determine which are X and Y neighbours and to which we should randomly gossip(4 samples). This could be actually optimised, so we don't have to iterate through all peers for each new assignment, by fetching the list of X and Y peer ids from the topology first and then stopping the loop once we took the 4 random samples. With this improvements we reduce the total CPU time spent in approval-distribution with 15% on networks with 500 validators and 20% on networks with 1000 validators. ## Test coverage: `propagates_assignments_along_unshared_dimension` and `propagates_locally_generated_assignment_to_both_dimensions` cover already logic and they passed, confirm that there is no breaking change. Additionally, the approval voting benchmark measure the traffic sent to other peers, so I confirmed that for various network size there is no difference in the size of the traffic sent to other peers. --------- Signed-off-by: Alexandru Gheorghe --- .../network/approval-distribution/src/lib.rs | 30 +++++++++++++------ .../approval-distribution/src/tests.rs | 12 +++++--- .../network/protocol/src/grid_topology.rs | 22 ++++++++++++++ prdoc/pr_4848.prdoc | 14 +++++++++ 4 files changed, 65 insertions(+), 13 deletions(-) create mode 100644 prdoc/pr_4848.prdoc diff --git a/polkadot/node/network/approval-distribution/src/lib.rs b/polkadot/node/network/approval-distribution/src/lib.rs index 369d82b45b0..d48fb08a311 100644 --- a/polkadot/node/network/approval-distribution/src/lib.rs +++ b/polkadot/node/network/approval-distribution/src/lib.rs @@ -1431,6 +1431,21 @@ impl State { let required_routing = topology.map_or(RequiredRouting::PendingTopology, |t| { t.local_grid_neighbors().required_routing_by_index(validator_index, local) }); + // Peers that we will send the assignment to. + let mut peers = HashSet::new(); + + let peers_to_route_to = topology + .as_ref() + .map(|t| t.peers_to_route(required_routing)) + .unwrap_or_default(); + + for peer in peers_to_route_to { + if !entry.known_by.contains_key(&peer) { + continue + } + + peers.insert(peer); + } // All the peers that know the relay chain block. let peers_to_filter = entry.known_by(); @@ -1456,20 +1471,13 @@ impl State { let n_peers_total = self.peer_views.len(); let source_peer = source.peer_id(); - // Peers that we will send the assignment to. - let mut peers = Vec::new(); - // Filter destination peers for peer in peers_to_filter.into_iter() { if Some(peer) == source_peer { continue } - if let Some(true) = topology - .as_ref() - .map(|t| t.local_grid_neighbors().route_to_peer(required_routing, &peer)) - { - peers.push(peer); + if peers.contains(&peer) { continue } @@ -1485,7 +1493,11 @@ impl State { if route_random { approval_entry.routing_info_mut().mark_randomly_sent(peer); - peers.push(peer); + peers.insert(peer); + } + + if approval_entry.routing_info().random_routing.is_complete() { + break } } diff --git a/polkadot/node/network/approval-distribution/src/tests.rs b/polkadot/node/network/approval-distribution/src/tests.rs index 5ad03446476..2d08807f97b 100644 --- a/polkadot/node/network/approval-distribution/src/tests.rs +++ b/polkadot/node/network/approval-distribution/src/tests.rs @@ -2404,7 +2404,7 @@ fn propagates_locally_generated_assignment_to_both_dimensions() { let assignments = vec![(cert.clone(), candidate_index)]; let approvals = vec![approval.clone()]; - let assignment_sent_peers = assert_matches!( + let mut assignment_sent_peers = assert_matches!( overseer_recv(overseer).await, AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::SendValidationMessage( sent_peers, @@ -2428,12 +2428,14 @@ fn propagates_locally_generated_assignment_to_both_dimensions() { assert_matches!( overseer_recv(overseer).await, AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::SendValidationMessage( - sent_peers, + mut sent_peers, Versioned::V1(protocol_v1::ValidationProtocol::ApprovalDistribution( protocol_v1::ApprovalDistributionMessage::Approvals(sent_approvals) )) )) => { // Random sampling is reused from the assignment. + sent_peers.sort(); + assignment_sent_peers.sort(); assert_eq!(sent_peers, assignment_sent_peers); assert_eq!(sent_approvals, approvals); } @@ -2678,7 +2680,7 @@ fn propagates_to_required_after_connect() { let assignments = vec![(cert.clone(), candidate_index)]; let approvals = vec![approval.clone()]; - let assignment_sent_peers = assert_matches!( + let mut assignment_sent_peers = assert_matches!( overseer_recv(overseer).await, AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::SendValidationMessage( sent_peers, @@ -2702,12 +2704,14 @@ fn propagates_to_required_after_connect() { assert_matches!( overseer_recv(overseer).await, AllMessages::NetworkBridgeTx(NetworkBridgeTxMessage::SendValidationMessage( - sent_peers, + mut sent_peers, Versioned::V1(protocol_v1::ValidationProtocol::ApprovalDistribution( protocol_v1::ApprovalDistributionMessage::Approvals(sent_approvals) )) )) => { // Random sampling is reused from the assignment. + sent_peers.sort(); + assignment_sent_peers.sort(); assert_eq!(sent_peers, assignment_sent_peers); assert_eq!(sent_approvals, approvals); } diff --git a/polkadot/node/network/protocol/src/grid_topology.rs b/polkadot/node/network/protocol/src/grid_topology.rs index a14d2461072..4dd7d29fc25 100644 --- a/polkadot/node/network/protocol/src/grid_topology.rs +++ b/polkadot/node/network/protocol/src/grid_topology.rs @@ -313,6 +313,23 @@ impl SessionGridTopologyEntry { self.topology.is_validator(peer) } + /// Returns the list of peers to route based on the required routing. + pub fn peers_to_route(&self, required_routing: RequiredRouting) -> Vec { + match required_routing { + RequiredRouting::All => self.topology.peer_ids.iter().copied().collect(), + RequiredRouting::GridX => self.local_neighbors.peers_x.iter().copied().collect(), + RequiredRouting::GridY => self.local_neighbors.peers_y.iter().copied().collect(), + RequiredRouting::GridXY => self + .local_neighbors + .peers_x + .iter() + .chain(self.local_neighbors.peers_y.iter()) + .copied() + .collect(), + RequiredRouting::None | RequiredRouting::PendingTopology => Vec::new(), + } + } + /// Updates the known peer ids for the passed authorities ids. pub fn update_authority_ids( &mut self, @@ -524,6 +541,11 @@ impl RandomRouting { pub fn inc_sent(&mut self) { self.sent += 1 } + + /// Returns `true` if we already took all the necessary samples. + pub fn is_complete(&self) -> bool { + self.sent >= self.target + } } /// Routing mode diff --git a/prdoc/pr_4848.prdoc b/prdoc/pr_4848.prdoc new file mode 100644 index 00000000000..cbc0c8322d7 --- /dev/null +++ b/prdoc/pr_4848.prdoc @@ -0,0 +1,14 @@ +title: Optimize logic for gossiping assignments + +doc: + - audience: Node Dev + description: | + Optimize the logic for gossiping assignments by obtaining the list of peer ids + from the topology instead of iterating through all connected validators, this + gives us a 15% to 20% reduction in cpu usage. + +crates: +- name: polkadot-approval-distribution + bump: minor +- name: polkadot-node-network-protocol + bump: minor \ No newline at end of file -- GitLab From eac2a22a4801e1539a97a7fd5bf5fd3916a4339b Mon Sep 17 00:00:00 2001 From: Sebastian Miasojed Date: Tue, 16 Jul 2024 13:15:53 +0200 Subject: [PATCH 038/252] [pallet_contracts] Add support for transient storage in contracts host functions (#4566) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce transient storage, which behaves identically to regular storage but is kept only in memory and discarded after every transaction. This functionality is similar to the `TSTORE` and `TLOAD` operations used in Ethereum. The following new host functions have been introduced: `get_transient_storage` `set_transient_storage` `take_transient_storage` `clear_transient_storage` `contains_transient_storage` Note: These functions are declared as `unstable` and thus are not activated. --------- Co-authored-by: command-bot <> Co-authored-by: PG Herveou Co-authored-by: Alexander Theißen --- .../contracts-rococo/src/contracts.rs | 1 + prdoc/pr_4566.prdoc | 23 + substrate/bin/node/runtime/src/lib.rs | 1 + .../create_transient_storage_and_call.rs | 56 ++ .../contracts/set_transient_storage.rs | 42 + .../fixtures/contracts/transient_storage.rs | 58 ++ .../src/benchmarking/call_builder.rs | 46 +- .../frame/contracts/src/benchmarking/mod.rs | 291 ++++++ substrate/frame/contracts/src/exec.rs | 319 ++++++ substrate/frame/contracts/src/lib.rs | 24 +- substrate/frame/contracts/src/storage.rs | 2 +- substrate/frame/contracts/src/tests.rs | 64 ++ .../frame/contracts/src/transient_storage.rs | 698 +++++++++++++ substrate/frame/contracts/src/wasm/mod.rs | 353 +++++++ substrate/frame/contracts/src/wasm/runtime.rs | 226 ++++- substrate/frame/contracts/src/weights.rs | 950 +++++++++++------- substrate/frame/contracts/uapi/src/host.rs | 84 +- .../frame/contracts/uapi/src/host/riscv32.rs | 20 + .../frame/contracts/uapi/src/host/wasm32.rs | 81 ++ 19 files changed, 2943 insertions(+), 396 deletions(-) create mode 100644 prdoc/pr_4566.prdoc create mode 100644 substrate/frame/contracts/fixtures/contracts/create_transient_storage_and_call.rs create mode 100644 substrate/frame/contracts/fixtures/contracts/set_transient_storage.rs create mode 100644 substrate/frame/contracts/fixtures/contracts/transient_storage.rs create mode 100644 substrate/frame/contracts/src/transient_storage.rs diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/contracts.rs b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/contracts.rs index fcd786711bb..e8cc9d02fb0 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/contracts.rs +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/contracts.rs @@ -65,6 +65,7 @@ impl Config for Runtime { type AddressGenerator = DefaultAddressGenerator; type MaxCodeLen = ConstU32<{ 123 * 1024 }>; type MaxStorageKeyLen = ConstU32<128>; + type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; type UnsafeUnstableInterface = ConstBool; type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; diff --git a/prdoc/pr_4566.prdoc b/prdoc/pr_4566.prdoc new file mode 100644 index 00000000000..ea2979bb363 --- /dev/null +++ b/prdoc/pr_4566.prdoc @@ -0,0 +1,23 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "[pallet_contracts] Add support for transient storage in contracts host functions" + +doc: + - audience: Runtime User + description: | + This PR implements transient storage, which behaves identically to regular storage + but is kept only in memory and discarded after every transaction. + This functionality is similar to the `TSTORE` and `TLOAD` operations used in Ethereum. + The following new host functions have been introduced: `get_transient_storage`, + `set_transient_storage`, `take_transient_storage`, `clear_transient_storage` and + `contains_transient_storage`. + These functions are declared as unstable and thus are not activated. + +crates: + - name: pallet-contracts + bump: major + - name: pallet-contracts-uapi + bump: major + - name: contracts-rococo-runtime + bump: minor diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 2d1f52066f8..a1896325ee9 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1373,6 +1373,7 @@ impl pallet_contracts::Config for Runtime { type UploadOrigin = EnsureSigned; type InstantiateOrigin = EnsureSigned; type MaxDebugBufferLen = ConstU32<{ 2 * 1024 * 1024 }>; + type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; type RuntimeHoldReason = RuntimeHoldReason; #[cfg(not(feature = "runtime-benchmarks"))] type Migrations = (); diff --git a/substrate/frame/contracts/fixtures/contracts/create_transient_storage_and_call.rs b/substrate/frame/contracts/fixtures/contracts/create_transient_storage_and_call.rs new file mode 100644 index 00000000000..6bafee55577 --- /dev/null +++ b/substrate/frame/contracts/fixtures/contracts/create_transient_storage_and_call.rs @@ -0,0 +1,56 @@ +// This file is part of Substrate. + +// Copyright (C) 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. + +//! This calls another contract as passed as its account id. It also creates some transient storage. +#![no_std] +#![no_main] + +use common::input; +use uapi::{HostFn, HostFnImpl as api}; + +#[no_mangle] +#[polkavm_derive::polkavm_export] +pub extern "C" fn deploy() {} + +#[no_mangle] +#[polkavm_derive::polkavm_export] +pub extern "C" fn call() { + input!( + buffer, + len: u32, + input: [u8; 4], + callee: [u8; 32], + ); + + let data = [0u8; 16 * 1024]; + let value = &data[..len as usize]; + #[allow(deprecated)] + api::set_transient_storage(buffer, value); + + // Call the callee + api::call_v2( + uapi::CallFlags::empty(), + callee, + 0u64, // How much ref_time weight to devote for the execution. 0 = all. + 0u64, // How much proof_size weight to devote for the execution. 0 = all. + None, + &0u64.to_le_bytes(), // Value transferred to the contract. + input, + None, + ) + .unwrap(); +} diff --git a/substrate/frame/contracts/fixtures/contracts/set_transient_storage.rs b/substrate/frame/contracts/fixtures/contracts/set_transient_storage.rs new file mode 100644 index 00000000000..e4fde08314c --- /dev/null +++ b/substrate/frame/contracts/fixtures/contracts/set_transient_storage.rs @@ -0,0 +1,42 @@ +// This file is part of Substrate. + +// Copyright (C) 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. + +#![no_std] +#![no_main] + +use common::input; +use uapi::{HostFn, HostFnImpl as api}; + +#[no_mangle] +#[polkavm_derive::polkavm_export] +pub extern "C" fn deploy() {} + +#[no_mangle] +#[polkavm_derive::polkavm_export] +pub extern "C" fn call() { + input!(len: u32, ); + + let buffer = [0u8; 16 * 1024]; + let data = &buffer[..len as usize]; + + // Place a garbage value in the transient storage, with the size specified by the call input. + let mut key = [0u8; 32]; + key[0] = 1; + + #[allow(deprecated)] + api::set_transient_storage(&key, data); +} diff --git a/substrate/frame/contracts/fixtures/contracts/transient_storage.rs b/substrate/frame/contracts/fixtures/contracts/transient_storage.rs new file mode 100644 index 00000000000..c797e17887b --- /dev/null +++ b/substrate/frame/contracts/fixtures/contracts/transient_storage.rs @@ -0,0 +1,58 @@ +// This file is part of Substrate. + +// Copyright (C) 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. + +//! This contract tests the transient storage APIs. +#![no_std] +#![no_main] + +use common::unwrap_output; +use uapi::{HostFn, HostFnImpl as api}; + +#[no_mangle] +#[polkavm_derive::polkavm_export] +pub extern "C" fn deploy() {} + +#[no_mangle] +#[polkavm_derive::polkavm_export] +pub extern "C" fn call() { + const KEY: [u8; 32] = [1u8; 32]; + const VALUE_1: [u8; 4] = [1u8; 4]; + const VALUE_2: [u8; 4] = [2u8; 4]; + const VALUE_3: [u8; 4] = [3u8; 4]; + + #[allow(deprecated)] + { + let existing = api::set_transient_storage(&KEY, &VALUE_1); + assert_eq!(existing, None); + assert_eq!(api::contains_transient_storage(&KEY), Some(VALUE_1.len() as _)); + unwrap_output!(val, [0u8; 4], api::get_transient_storage, &KEY); + assert_eq!(**val, VALUE_1); + + let existing = api::set_transient_storage(&KEY, &VALUE_2); + assert_eq!(existing, Some(VALUE_1.len() as _)); + unwrap_output!(val, [0u8; 4], api::get_transient_storage, &KEY); + assert_eq!(**val, VALUE_2); + + api::clear_transient_storage(&KEY); + assert_eq!(api::contains_transient_storage(&KEY), None); + + let existing = api::set_transient_storage(&KEY, &VALUE_3); + assert_eq!(existing, None); + unwrap_output!(val, [0u8; 32], api::take_transient_storage, &KEY); + assert_eq!(**val, VALUE_3); + } +} diff --git a/substrate/frame/contracts/src/benchmarking/call_builder.rs b/substrate/frame/contracts/src/benchmarking/call_builder.rs index d87eaba7343..5833639d7ce 100644 --- a/substrate/frame/contracts/src/benchmarking/call_builder.rs +++ b/substrate/frame/contracts/src/benchmarking/call_builder.rs @@ -17,11 +17,12 @@ use crate::{ benchmarking::{Contract, WasmModule}, - exec::Stack, + exec::{Ext, Key, Stack}, storage::meter::Meter, + transient_storage::MeterEntry, wasm::Runtime, - BalanceOf, Config, DebugBufferVec, Determinism, ExecReturnValue, GasMeter, Origin, Schedule, - TypeInfo, WasmBlob, Weight, + BalanceOf, Config, DebugBufferVec, Determinism, Error, ExecReturnValue, GasMeter, Origin, + Schedule, TypeInfo, WasmBlob, Weight, }; use alloc::{vec, vec::Vec}; use codec::{Encode, HasCompact}; @@ -56,6 +57,7 @@ pub struct CallSetup { debug_message: Option>, determinism: Determinism, data: Vec, + transient_storage_size: u32, } impl Default for CallSetup @@ -103,6 +105,7 @@ where debug_message: None, determinism: Determinism::Enforced, data: vec![], + transient_storage_size: 0, } } @@ -126,6 +129,11 @@ where self.data = value; } + /// Set the transient storage size. + pub fn set_transient_storage_size(&mut self, size: u32) { + self.transient_storage_size = size; + } + /// Set the debug message. pub fn enable_debug_message(&mut self) { self.debug_message = Some(Default::default()); @@ -148,7 +156,7 @@ where /// Build the call stack. pub fn ext(&mut self) -> (StackExt<'_, T>, WasmBlob) { - StackExt::bench_new_call( + let mut ext = StackExt::bench_new_call( self.dest.clone(), self.origin.clone(), &mut self.gas_meter, @@ -157,7 +165,11 @@ where self.value, self.debug_message.as_mut(), self.determinism, - ) + ); + if self.transient_storage_size > 0 { + Self::with_transient_storage(&mut ext.0, self.transient_storage_size).unwrap(); + } + ext } /// Prepare a call to the module. @@ -169,6 +181,30 @@ where let (func, store) = module.bench_prepare_call(ext, input); PreparedCall { func, store } } + + /// Add transient_storage + fn with_transient_storage(ext: &mut StackExt, size: u32) -> Result<(), &'static str> { + let &MeterEntry { amount, limit } = ext.transient_storage().meter().current(); + ext.transient_storage().meter().current_mut().limit = size; + for i in 1u32.. { + let mut key_data = i.to_le_bytes().to_vec(); + while key_data.last() == Some(&0) { + key_data.pop(); + } + let key = Key::::try_from_var(key_data).unwrap(); + if let Err(e) = ext.set_transient_storage(&key, Some(Vec::new()), false) { + // Restore previous settings. + ext.transient_storage().meter().current_mut().limit = limit; + ext.transient_storage().meter().current_mut().amount = amount; + if e == Error::::OutOfTransientStorage.into() { + break; + } else { + return Err("Initialization of the transient storage failed"); + } + } + } + Ok(()) + } } #[macro_export] diff --git a/substrate/frame/contracts/src/benchmarking/mod.rs b/substrate/frame/contracts/src/benchmarking/mod.rs index 612f929e8b1..620e6544b08 100644 --- a/substrate/frame/contracts/src/benchmarking/mod.rs +++ b/substrate/frame/contracts/src/benchmarking/mod.rs @@ -31,6 +31,7 @@ use crate::{ migration::{ codegen::LATEST_MIGRATION_VERSION, v09, v10, v11, v12, v13, v14, v15, v16, MigrationStep, }, + storage::WriteOutcome, wasm::BenchEnv, Pallet as Contracts, *, }; @@ -1162,6 +1163,296 @@ mod benchmarks { Ok(()) } + // We use both full and empty benchmarks here instead of benchmarking transient_storage + // (BTreeMap) directly. This approach is necessary because benchmarking this BTreeMap is very + // slow. Additionally, we use linear regression for our benchmarks, and the BTreeMap's log(n) + // complexity can introduce approximation errors. + #[benchmark(pov_mode = Ignored)] + fn set_transient_storage_empty() -> Result<(), BenchmarkError> { + let max_value_len = T::Schedule::get().limits.payload_len; + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + let value = Some(vec![42u8; max_value_len as _]); + let mut setup = CallSetup::::default(); + let (mut ext, _) = setup.ext(); + let mut runtime = crate::wasm::Runtime::new(&mut ext, vec![]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + let result; + #[block] + { + result = runtime.ext().set_transient_storage(&key, value, false); + } + + assert_eq!(result, Ok(WriteOutcome::New)); + assert_eq!(runtime.ext().get_transient_storage(&key), Some(vec![42u8; max_value_len as _])); + Ok(()) + } + + #[benchmark(pov_mode = Ignored)] + fn set_transient_storage_full() -> Result<(), BenchmarkError> { + let max_value_len = T::Schedule::get().limits.payload_len; + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + let value = Some(vec![42u8; max_value_len as _]); + let mut setup = CallSetup::::default(); + setup.set_transient_storage_size(T::MaxTransientStorageSize::get()); + let (mut ext, _) = setup.ext(); + let mut runtime = crate::wasm::Runtime::new(&mut ext, vec![]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + let result; + #[block] + { + result = runtime.ext().set_transient_storage(&key, value, false); + } + + assert_eq!(result, Ok(WriteOutcome::New)); + assert_eq!(runtime.ext().get_transient_storage(&key), Some(vec![42u8; max_value_len as _])); + Ok(()) + } + + #[benchmark(pov_mode = Ignored)] + fn get_transient_storage_empty() -> Result<(), BenchmarkError> { + let max_value_len = T::Schedule::get().limits.payload_len; + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + + let mut setup = CallSetup::::default(); + let (mut ext, _) = setup.ext(); + let mut runtime = crate::wasm::Runtime::new(&mut ext, vec![]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + runtime + .ext() + .set_transient_storage(&key, Some(vec![42u8; max_value_len as _]), false) + .map_err(|_| "Failed to write to transient storage during setup.")?; + let result; + #[block] + { + result = runtime.ext().get_transient_storage(&key); + } + + assert_eq!(result, Some(vec![42u8; max_value_len as _])); + Ok(()) + } + + #[benchmark(pov_mode = Ignored)] + fn get_transient_storage_full() -> Result<(), BenchmarkError> { + let max_value_len = T::Schedule::get().limits.payload_len; + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + + let mut setup = CallSetup::::default(); + setup.set_transient_storage_size(T::MaxTransientStorageSize::get()); + let (mut ext, _) = setup.ext(); + let mut runtime = crate::wasm::Runtime::new(&mut ext, vec![]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + runtime + .ext() + .set_transient_storage(&key, Some(vec![42u8; max_value_len as _]), false) + .map_err(|_| "Failed to write to transient storage during setup.")?; + let result; + #[block] + { + result = runtime.ext().get_transient_storage(&key); + } + + assert_eq!(result, Some(vec![42u8; max_value_len as _])); + Ok(()) + } + + // The weight of journal rollbacks should be taken into account when setting storage. + #[benchmark(pov_mode = Ignored)] + fn rollback_transient_storage() -> Result<(), BenchmarkError> { + let max_value_len = T::Schedule::get().limits.payload_len; + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + + let mut setup = CallSetup::::default(); + setup.set_transient_storage_size(T::MaxTransientStorageSize::get()); + let (mut ext, _) = setup.ext(); + let mut runtime = crate::wasm::Runtime::new(&mut ext, vec![]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + runtime.ext().transient_storage().start_transaction(); + runtime + .ext() + .set_transient_storage(&key, Some(vec![42u8; max_value_len as _]), false) + .map_err(|_| "Failed to write to transient storage during setup.")?; + #[block] + { + runtime.ext().transient_storage().rollback_transaction(); + } + + assert_eq!(runtime.ext().get_transient_storage(&key), None); + Ok(()) + } + + // n: new byte size + // o: old byte size + #[benchmark(pov_mode = Measured)] + fn seal_set_transient_storage( + n: Linear<0, { T::Schedule::get().limits.payload_len }>, + o: Linear<0, { T::Schedule::get().limits.payload_len }>, + ) -> Result<(), BenchmarkError> { + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + let value = vec![1u8; n as usize]; + build_runtime!(runtime, memory: [ key.to_vec(), value.clone(), ]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + runtime + .ext() + .set_transient_storage(&key, Some(vec![42u8; o as usize]), false) + .map_err(|_| "Failed to write to transient storage during setup.")?; + + let result; + #[block] + { + result = BenchEnv::seal0_set_transient_storage( + &mut runtime, + &mut memory, + 0, // key_ptr + max_key_len, // key_len + max_key_len, // value_ptr + n, // value_len + ); + } + + assert_ok!(result); + assert_eq!(runtime.ext().get_transient_storage(&key).unwrap(), value); + Ok(()) + } + + #[benchmark(pov_mode = Measured)] + fn seal_clear_transient_storage( + n: Linear<0, { T::Schedule::get().limits.payload_len }>, + ) -> Result<(), BenchmarkError> { + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + build_runtime!(runtime, memory: [ key.to_vec(), ]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + runtime + .ext() + .set_transient_storage(&key, Some(vec![42u8; n as usize]), false) + .map_err(|_| "Failed to write to transient storage during setup.")?; + + let result; + #[block] + { + result = + BenchEnv::seal0_clear_transient_storage(&mut runtime, &mut memory, 0, max_key_len); + } + + assert_ok!(result); + assert!(runtime.ext().get_transient_storage(&key).is_none()); + Ok(()) + } + + #[benchmark(pov_mode = Measured)] + fn seal_get_transient_storage( + n: Linear<0, { T::Schedule::get().limits.payload_len }>, + ) -> Result<(), BenchmarkError> { + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + build_runtime!(runtime, memory: [ key.to_vec(), n.to_le_bytes(), vec![0u8; n as _], ]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + runtime + .ext() + .set_transient_storage(&key, Some(vec![42u8; n as usize]), false) + .map_err(|_| "Failed to write to transient storage during setup.")?; + + let out_ptr = max_key_len + 4; + let result; + #[block] + { + result = BenchEnv::seal0_get_transient_storage( + &mut runtime, + &mut memory, + 0, // key_ptr + max_key_len, // key_len + out_ptr, // out_ptr + max_key_len, // out_len_ptr + ); + } + + assert_ok!(result); + assert_eq!( + &runtime.ext().get_transient_storage(&key).unwrap(), + &memory[out_ptr as usize..] + ); + Ok(()) + } + + #[benchmark(pov_mode = Measured)] + fn seal_contains_transient_storage( + n: Linear<0, { T::Schedule::get().limits.payload_len }>, + ) -> Result<(), BenchmarkError> { + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + build_runtime!(runtime, memory: [ key.to_vec(), ]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + runtime + .ext() + .set_transient_storage(&key, Some(vec![42u8; n as usize]), false) + .map_err(|_| "Failed to write to transient storage during setup.")?; + + let result; + #[block] + { + result = BenchEnv::seal0_contains_transient_storage( + &mut runtime, + &mut memory, + 0, + max_key_len, + ); + } + + assert_eq!(result.unwrap(), n); + Ok(()) + } + + #[benchmark(pov_mode = Measured)] + fn seal_take_transient_storage( + n: Linear<0, { T::Schedule::get().limits.payload_len }>, + ) -> Result<(), BenchmarkError> { + let n = T::Schedule::get().limits.payload_len; + let max_key_len = T::MaxStorageKeyLen::get(); + let key = Key::::try_from_var(vec![0u8; max_key_len as usize]) + .map_err(|_| "Key has wrong length")?; + build_runtime!(runtime, memory: [ key.to_vec(), n.to_le_bytes(), vec![0u8; n as _], ]); + runtime.ext().transient_storage().meter().current_mut().limit = u32::MAX; + let value = vec![42u8; n as usize]; + runtime + .ext() + .set_transient_storage(&key, Some(value.clone()), false) + .map_err(|_| "Failed to write to transient storage during setup.")?; + + let out_ptr = max_key_len + 4; + let result; + #[block] + { + result = BenchEnv::seal0_take_transient_storage( + &mut runtime, + &mut memory, + 0, // key_ptr + max_key_len, // key_len + out_ptr, // out_ptr + max_key_len, // out_len_ptr + ); + } + + assert_ok!(result); + assert!(&runtime.ext().get_transient_storage(&key).is_none()); + assert_eq!(&value, &memory[out_ptr as usize..]); + Ok(()) + } + // We transfer to unique accounts. #[benchmark(pov_mode = Measured)] fn seal_transfer() { diff --git a/substrate/frame/contracts/src/exec.rs b/substrate/frame/contracts/src/exec.rs index 0cc4844166f..31e0bf50b73 100644 --- a/substrate/frame/contracts/src/exec.rs +++ b/substrate/frame/contracts/src/exec.rs @@ -20,6 +20,7 @@ use crate::{ gas::GasMeter, primitives::{ExecReturnValue, StorageDeposit}, storage::{self, meter::Diff, WriteOutcome}, + transient_storage::TransientStorage, BalanceOf, CodeHash, CodeInfo, CodeInfoOf, Config, ContractInfo, ContractInfoOf, DebugBufferVec, Determinism, Error, Event, Nonce, Origin, Pallet as Contracts, Schedule, LOG_TARGET, @@ -210,6 +211,27 @@ pub trait Ext: sealing::Sealed { take_old: bool, ) -> Result; + /// Returns the transient storage entry of the executing account for the given `key`. + /// + /// Returns `None` if the `key` wasn't previously set by `set_transient_storage` or + /// was deleted. + fn get_transient_storage(&self, key: &Key) -> Option>; + + /// Returns `Some(len)` (in bytes) if a transient storage item exists at `key`. + /// + /// Returns `None` if the `key` wasn't previously set by `set_transient_storage` or + /// was deleted. + fn get_transient_storage_size(&self, key: &Key) -> Option; + + /// Sets the transient storage entry for the given key to the specified value. If `value` is + /// `None` then the storage entry is deleted. + fn set_transient_storage( + &mut self, + key: &Key, + value: Option>, + take_old: bool, + ) -> Result; + /// Returns the caller. fn caller(&self) -> Origin; @@ -308,6 +330,12 @@ pub trait Ext: sealing::Sealed { #[cfg(any(test, feature = "runtime-benchmarks"))] fn contract_info(&mut self) -> &mut ContractInfo; + /// Get a mutable reference to the transient storage. + /// Useful in benchmarks when it is sometimes necessary to modify and inspect the transient + /// storage directly. + #[cfg(feature = "runtime-benchmarks")] + fn transient_storage(&mut self) -> &mut TransientStorage; + /// Sets new code hash for existing contract. fn set_code_hash(&mut self, hash: CodeHash) -> DispatchResult; @@ -474,6 +502,8 @@ pub struct Stack<'a, T: Config, E> { debug_message: Option<&'a mut DebugBufferVec>, /// The determinism requirement of this call stack. determinism: Determinism, + /// Transient storage used to store data, which is kept for the duration of a transaction. + transient_storage: TransientStorage, /// No executable is held by the struct but influences its behaviour. _phantom: PhantomData, } @@ -797,6 +827,7 @@ where frames: Default::default(), debug_message, determinism, + transient_storage: TransientStorage::new(T::MaxTransientStorageSize::get()), _phantom: Default::default(), }; @@ -927,6 +958,9 @@ where let entry_point = frame.entry_point; let delegated_code_hash = if frame.delegate_caller.is_some() { Some(*executable.code_hash()) } else { None }; + + self.transient_storage.start_transaction(); + let do_transaction = || { // We need to charge the storage deposit before the initial transfer so that // it can create the account in case the initial transfer is < ed. @@ -1047,6 +1081,12 @@ where Err(error) => (false, Err(error.into())), }; + if success { + self.transient_storage.commit_transaction(); + } else { + self.transient_storage.rollback_transaction(); + } + self.pop_frame(success); output } @@ -1375,6 +1415,24 @@ where ) } + fn get_transient_storage(&self, key: &Key) -> Option> { + self.transient_storage.read(self.address(), key) + } + + fn get_transient_storage_size(&self, key: &Key) -> Option { + self.transient_storage.read(self.address(), key).map(|value| value.len() as _) + } + + fn set_transient_storage( + &mut self, + key: &Key, + value: Option>, + take_old: bool, + ) -> Result { + let account_id = self.address().clone(); + self.transient_storage.write(&account_id, key, value, take_old) + } + fn address(&self) -> &T::AccountId { &self.top_frame().account_id } @@ -1519,6 +1577,11 @@ where self.top_frame_mut().contract_info() } + #[cfg(feature = "runtime-benchmarks")] + fn transient_storage(&mut self) -> &mut TransientStorage { + &mut self.transient_storage + } + fn set_code_hash(&mut self, hash: CodeHash) -> DispatchResult { let frame = top_frame_mut!(self); if !E::from_storage(hash, &mut frame.nested_gas)?.is_deterministic() { @@ -3827,6 +3890,262 @@ mod tests { }); } + #[test] + fn set_transient_storage_works() { + let code_hash = MockLoader::insert(Call, |ctx, _| { + // Write + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([1; 32]), Some(vec![1, 2, 3]), false), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([2; 32]), Some(vec![4, 5, 6]), true), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([3; 32]), None, false), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([4; 32]), None, true), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([5; 32]), Some(vec![]), false), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([6; 32]), Some(vec![]), true), + Ok(WriteOutcome::New) + ); + + // Overwrite + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([1; 32]), Some(vec![42]), false), + Ok(WriteOutcome::Overwritten(3)) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([2; 32]), Some(vec![48]), true), + Ok(WriteOutcome::Taken(vec![4, 5, 6])) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([3; 32]), None, false), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([4; 32]), None, true), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([5; 32]), Some(vec![]), false), + Ok(WriteOutcome::Overwritten(0)) + ); + assert_eq!( + ctx.ext.set_transient_storage(&Key::Fix([6; 32]), Some(vec![]), true), + Ok(WriteOutcome::Taken(vec![])) + ); + + exec_success() + }); + + ExtBuilder::default().build().execute_with(|| { + let schedule = ::Schedule::get(); + place_contract(&BOB, code_hash); + let contract_origin = Origin::from_account_id(ALICE); + let mut storage_meter = storage::meter::Meter::new(&contract_origin, None, 0).unwrap(); + assert_ok!(MockStack::run_call( + contract_origin, + BOB, + &mut GasMeter::::new(GAS_LIMIT), + &mut storage_meter, + &schedule, + 0, + vec![], + None, + Determinism::Enforced + )); + }); + } + + #[test] + fn get_transient_storage_works() { + // Call stack: BOB -> CHARLIE(success) -> BOB' (success) + let storage_key_1 = &Key::Fix([1; 32]); + let storage_key_2 = &Key::Fix([2; 32]); + let storage_key_3 = &Key::Fix([3; 32]); + let code_bob = MockLoader::insert(Call, |ctx, _| { + if ctx.input_data[0] == 0 { + assert_eq!( + ctx.ext.set_transient_storage(storage_key_1, Some(vec![1, 2]), false), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.call( + Weight::zero(), + BalanceOf::::zero(), + CHARLIE, + 0, + vec![], + true, + false, + ), + exec_success() + ); + assert_eq!(ctx.ext.get_transient_storage(storage_key_1), Some(vec![3])); + assert_eq!(ctx.ext.get_transient_storage(storage_key_2), Some(vec![])); + assert_eq!(ctx.ext.get_transient_storage(storage_key_3), None); + } else { + assert_eq!( + ctx.ext.set_transient_storage(storage_key_1, Some(vec![3]), true), + Ok(WriteOutcome::Taken(vec![1, 2])) + ); + assert_eq!( + ctx.ext.set_transient_storage(storage_key_2, Some(vec![]), false), + Ok(WriteOutcome::New) + ); + } + exec_success() + }); + let code_charlie = MockLoader::insert(Call, |ctx, _| { + assert!(ctx + .ext + .call(Weight::zero(), BalanceOf::::zero(), BOB, 0, vec![99], true, false) + .is_ok()); + // CHARLIE can not read BOB`s storage. + assert_eq!(ctx.ext.get_transient_storage(storage_key_1), None); + exec_success() + }); + + // This one tests passing the input data into a contract via call. + ExtBuilder::default().build().execute_with(|| { + let schedule = ::Schedule::get(); + place_contract(&BOB, code_bob); + place_contract(&CHARLIE, code_charlie); + let contract_origin = Origin::from_account_id(ALICE); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + + let result = MockStack::run_call( + contract_origin, + BOB, + &mut GasMeter::::new(GAS_LIMIT), + &mut storage_meter, + &schedule, + 0, + vec![0], + None, + Determinism::Enforced, + ); + assert_matches!(result, Ok(_)); + }); + } + + #[test] + fn get_transient_storage_size_works() { + let storage_key_1 = &Key::Fix([1; 32]); + let storage_key_2 = &Key::Fix([2; 32]); + let storage_key_3 = &Key::Fix([3; 32]); + let code_hash = MockLoader::insert(Call, |ctx, _| { + assert_eq!( + ctx.ext.set_transient_storage(storage_key_1, Some(vec![1, 2, 3]), false), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.set_transient_storage(storage_key_2, Some(vec![]), false), + Ok(WriteOutcome::New) + ); + assert_eq!(ctx.ext.get_transient_storage_size(storage_key_1), Some(3)); + assert_eq!(ctx.ext.get_transient_storage_size(storage_key_2), Some(0)); + assert_eq!(ctx.ext.get_transient_storage_size(storage_key_3), None); + + exec_success() + }); + + ExtBuilder::default().build().execute_with(|| { + let schedule = ::Schedule::get(); + place_contract(&BOB, code_hash); + let contract_origin = Origin::from_account_id(ALICE); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + assert_ok!(MockStack::run_call( + contract_origin, + BOB, + &mut GasMeter::::new(GAS_LIMIT), + &mut storage_meter, + &schedule, + 0, + vec![], + None, + Determinism::Enforced + )); + }); + } + + #[test] + fn rollback_transient_storage_works() { + // Call stack: BOB -> CHARLIE (trap) -> BOB' (success) + let storage_key = &Key::Fix([1; 32]); + let code_bob = MockLoader::insert(Call, |ctx, _| { + if ctx.input_data[0] == 0 { + assert_eq!( + ctx.ext.set_transient_storage(storage_key, Some(vec![1, 2]), false), + Ok(WriteOutcome::New) + ); + assert_eq!( + ctx.ext.call( + Weight::zero(), + BalanceOf::::zero(), + CHARLIE, + 0, + vec![], + true, + false + ), + exec_trapped() + ); + assert_eq!(ctx.ext.get_transient_storage(storage_key), Some(vec![1, 2])); + } else { + let overwritten_length = ctx.ext.get_transient_storage_size(storage_key).unwrap(); + assert_eq!( + ctx.ext.set_transient_storage(storage_key, Some(vec![3]), false), + Ok(WriteOutcome::Overwritten(overwritten_length)) + ); + assert_eq!(ctx.ext.get_transient_storage(storage_key), Some(vec![3])); + } + exec_success() + }); + let code_charlie = MockLoader::insert(Call, |ctx, _| { + assert!(ctx + .ext + .call(Weight::zero(), BalanceOf::::zero(), BOB, 0, vec![99], true, false) + .is_ok()); + exec_trapped() + }); + + // This one tests passing the input data into a contract via call. + ExtBuilder::default().build().execute_with(|| { + let schedule = ::Schedule::get(); + place_contract(&BOB, code_bob); + place_contract(&CHARLIE, code_charlie); + let contract_origin = Origin::from_account_id(ALICE); + let mut storage_meter = + storage::meter::Meter::new(&contract_origin, Some(0), 0).unwrap(); + + let result = MockStack::run_call( + contract_origin, + BOB, + &mut GasMeter::::new(GAS_LIMIT), + &mut storage_meter, + &schedule, + 0, + vec![0], + None, + Determinism::Enforced, + ); + assert_matches!(result, Ok(_)); + }); + } + #[test] fn ecdsa_to_eth_address_returns_proper_value() { let bob_ch = MockLoader::insert(Call, |ctx, _| { diff --git a/substrate/frame/contracts/src/lib.rs b/substrate/frame/contracts/src/lib.rs index ed00fdca62f..093adc07ab4 100644 --- a/substrate/frame/contracts/src/lib.rs +++ b/substrate/frame/contracts/src/lib.rs @@ -97,6 +97,7 @@ pub use primitives::*; mod schedule; mod storage; +mod transient_storage; mod wasm; pub mod chain_extension; @@ -388,6 +389,11 @@ pub mod pallet { #[pallet::constant] type MaxStorageKeyLen: Get; + /// The maximum size of the transient storage in bytes. + /// This includes keys, values, and previous entries used for storage rollback. + #[pallet::constant] + type MaxTransientStorageSize: Get; + /// The maximum number of delegate_dependencies that a contract can lock with /// [`chain_extension::Ext::lock_delegate_dependency`]. #[pallet::constant] @@ -554,6 +560,7 @@ pub mod pallet { type MaxDebugBufferLen = ConstU32<{ 2 * 1024 * 1024 }>; type MaxDelegateDependencies = MaxDelegateDependencies; type MaxStorageKeyLen = ConstU32<128>; + type MaxTransientStorageSize = ConstU32<{ 1 * 1024 * 1024 }>; type Migrations = (); type Time = Self; type Randomness = Self; @@ -605,7 +612,11 @@ pub mod pallet { // Max call depth is CallStack::size() + 1 let max_call_depth = u32::try_from(T::CallStack::size().saturating_add(1)) .expect("CallStack size is too big"); - + // Transient storage uses a BTreeMap, which has overhead compared to the raw size of + // key-value data. To ensure safety, a margin of 2x the raw key-value size is used. + let max_transient_storage_size = T::MaxTransientStorageSize::get() + .checked_mul(2) + .expect("MaxTransientStorageSize is too large"); // Check that given configured `MaxCodeLen`, runtime heap memory limit can't be broken. // // In worst case, the decoded Wasm contract code would be `x16` times larger than the @@ -615,7 +626,7 @@ pub mod pallet { // Next, the pallet keeps the Wasm blob for each // contract, hence we add up `MaxCodeLen` to the safety margin. // - // Finally, the inefficiencies of the freeing-bump allocator + // The inefficiencies of the freeing-bump allocator // being used in the client for the runtime memory allocations, could lead to possible // memory allocations for contract code grow up to `x4` times in some extreme cases, // which gives us total multiplier of `17*4` for `MaxCodeLen`. @@ -624,17 +635,20 @@ pub mod pallet { // memory should be available. Note that maximum allowed heap memory and stack size per // each contract (stack frame) should also be counted. // + // The pallet holds transient storage with a size up to `max_transient_storage_size`. + // // Finally, we allow 50% of the runtime memory to be utilized by the contracts call // stack, keeping the rest for other facilities, such as PoV, etc. // // This gives us the following formula: // - // `(MaxCodeLen * 17 * 4 + MAX_STACK_SIZE + max_heap_size) * max_call_depth < - // max_runtime_mem/2` + // `(MaxCodeLen * 17 * 4 + MAX_STACK_SIZE + max_heap_size) * max_call_depth + + // max_transient_storage_size < max_runtime_mem/2` // // Hence the upper limit for the `MaxCodeLen` can be defined as follows: let code_len_limit = max_runtime_mem .saturating_div(2) + .saturating_sub(max_transient_storage_size) .saturating_div(max_call_depth) .saturating_sub(max_heap_size) .saturating_sub(MAX_STACK_SIZE) @@ -1235,6 +1249,8 @@ pub mod pallet { DelegateDependencyAlreadyExists, /// Can not add a delegate dependency to the code hash of the contract itself. CannotAddSelfAsDelegateDependency, + /// Can not add more data to transient storage. + OutOfTransientStorage, } /// A reason for the pallet contracts placing a hold on funds. diff --git a/substrate/frame/contracts/src/storage.rs b/substrate/frame/contracts/src/storage.rs index 23b5a2514eb..65e7129cdf8 100644 --- a/substrate/frame/contracts/src/storage.rs +++ b/substrate/frame/contracts/src/storage.rs @@ -335,7 +335,7 @@ impl ContractInfo { } /// Information about what happened to the pre-existing value when calling [`ContractInfo::write`]. -#[cfg_attr(test, derive(Debug, PartialEq))] +#[cfg_attr(any(test, feature = "runtime-benchmarks"), derive(Debug, PartialEq))] pub enum WriteOutcome { /// No value existed at the specified key. New, diff --git a/substrate/frame/contracts/src/tests.rs b/substrate/frame/contracts/src/tests.rs index 3f608d90bea..cc2a69b5c41 100644 --- a/substrate/frame/contracts/src/tests.rs +++ b/substrate/frame/contracts/src/tests.rs @@ -411,6 +411,7 @@ parameter_types! { pub static DepositPerByte: BalanceOf = 1; pub const DepositPerItem: BalanceOf = 2; pub static MaxDelegateDependencies: u32 = 32; + pub static MaxTransientStorageSize: u32 = 4 * 1024; pub static CodeHashLockupDepositPercent: Perbill = Perbill::from_percent(0); // We need this one set high enough for running benchmarks. @@ -504,6 +505,7 @@ impl Config for Test { type Migrations = crate::migration::codegen::BenchMigrations; type CodeHashLockupDepositPercent = CodeHashLockupDepositPercent; type MaxDelegateDependencies = MaxDelegateDependencies; + type MaxTransientStorageSize = MaxTransientStorageSize; type Debug = TestDebug; } @@ -962,6 +964,68 @@ fn storage_max_value_limit() { }); } +#[test] +fn transient_storage_work() { + let (code, _code_hash) = compile_module::("transient_storage").unwrap(); + + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 1_000_000); + let min_balance = Contracts::min_balance(); + let addr = builder::bare_instantiate(Code::Upload(code)) + .value(min_balance * 100) + .build_and_unwrap_account_id(); + + builder::bare_call(addr).build_and_unwrap_result(); + }); +} + +#[test] +fn transient_storage_limit_in_call() { + let (wasm_caller, _code_hash_caller) = + compile_module::("create_transient_storage_and_call").unwrap(); + let (wasm_callee, _code_hash_callee) = compile_module::("set_transient_storage").unwrap(); + ExtBuilder::default().build().execute_with(|| { + let _ = ::Currency::set_balance(&ALICE, 1_000_000); + let min_balance = Contracts::min_balance(); + + // Create both contracts: Constructors do nothing. + let addr_caller = builder::bare_instantiate(Code::Upload(wasm_caller)) + .value(min_balance * 100) + .build_and_unwrap_account_id(); + let addr_callee = builder::bare_instantiate(Code::Upload(wasm_callee)) + .value(min_balance * 100) + .build_and_unwrap_account_id(); + + let storage_value_size = 1000; + MaxTransientStorageSize::set(4 * 1024); + // Call contracts with storage values within the limit. + // Caller and Callee contracts each set a transient storage value of size 1000. + assert_ok!(builder::call(addr_caller.clone()) + .data((storage_value_size, storage_value_size, &addr_callee).encode()) + .build(),); + + MaxTransientStorageSize::set(512); + // Call a contract with a storage value that is too large. + // Limit exceeded in the caller contract. + assert_err_ignore_postinfo!( + builder::call(addr_caller.clone()) + .data((storage_value_size, storage_value_size, &addr_callee).encode()) + .build(), + >::OutOfTransientStorage, + ); + + MaxTransientStorageSize::set(1536); + // Call a contract with a storage value that is too large. + // Limit exceeded in the callee contract. + assert_err_ignore_postinfo!( + builder::call(addr_caller) + .data((storage_value_size, storage_value_size, &addr_callee).encode()) + .build(), + >::ContractTrapped + ); + }); +} + #[test] fn deploy_and_call_other_contract() { let (caller_wasm, _caller_code_hash) = compile_module::("caller_contract").unwrap(); diff --git a/substrate/frame/contracts/src/transient_storage.rs b/substrate/frame/contracts/src/transient_storage.rs new file mode 100644 index 00000000000..c795a966385 --- /dev/null +++ b/substrate/frame/contracts/src/transient_storage.rs @@ -0,0 +1,698 @@ +// This file is part of Substrate. + +// Copyright (C) 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. + +//! This module contains routines for accessing and altering a contract transient storage. + +use crate::{ + exec::{AccountIdOf, Key}, + storage::WriteOutcome, + Config, Error, +}; +use codec::Encode; +use core::marker::PhantomData; +use frame_support::DefaultNoBound; +use sp_runtime::{DispatchError, DispatchResult, Saturating}; +use sp_std::{collections::btree_map::BTreeMap, mem, vec::Vec}; + +/// Meter entry tracks transaction allocations. +#[derive(Default, Debug)] +pub struct MeterEntry { + /// Allocations made in the current transaction. + pub amount: u32, + /// Allocations limit in the current transaction. + pub limit: u32, +} + +impl MeterEntry { + /// Create a new entry. + fn new(limit: u32) -> Self { + Self { limit, amount: Default::default() } + } + + /// Check if the allocated amount exceeds the limit. + fn exceeds_limit(&self, amount: u32) -> bool { + self.amount.saturating_add(amount) > self.limit + } + + /// Absorb the allocation amount of the nested entry into the current entry. + fn absorb(&mut self, rhs: Self) { + self.amount.saturating_accrue(rhs.amount) + } +} + +// The storage meter enforces a limit for each transaction, +// which is calculated as free_storage * (1 - 1/16) for each subsequent frame. +#[derive(DefaultNoBound)] +pub struct StorageMeter { + nested_meters: Vec, + root_meter: MeterEntry, + _phantom: PhantomData, +} + +impl StorageMeter { + const STORAGE_FRACTION_DENOMINATOR: u32 = 16; + /// Create a new storage allocation meter. + fn new(memory_limit: u32) -> Self { + Self { root_meter: MeterEntry::new(memory_limit), ..Default::default() } + } + + /// Charge the allocated amount of transaction storage from the meter. + fn charge(&mut self, amount: u32) -> DispatchResult { + let meter = self.current_mut(); + if meter.exceeds_limit(amount) { + return Err(Error::::OutOfTransientStorage.into()); + } + meter.amount.saturating_accrue(amount); + Ok(()) + } + + /// Revert a transaction meter. + fn revert(&mut self) { + self.nested_meters.pop().expect( + "A call to revert a meter must be preceded by a corresponding call to start a meter; + the code within this crate makes sure that this is always the case; qed", + ); + } + + /// Start a transaction meter. + fn start(&mut self) { + let meter = self.current(); + let mut transaction_limit = meter.limit.saturating_sub(meter.amount); + if !self.nested_meters.is_empty() { + // Allow use of (1 - 1/STORAGE_FRACTION_DENOMINATOR) of free storage for subsequent + // calls. + transaction_limit.saturating_reduce( + transaction_limit.saturating_div(Self::STORAGE_FRACTION_DENOMINATOR), + ); + } + + self.nested_meters.push(MeterEntry::new(transaction_limit)); + } + + /// Commit a transaction meter. + fn commit(&mut self) { + let transaction_meter = self.nested_meters.pop().expect( + "A call to commit a meter must be preceded by a corresponding call to start a meter; + the code within this crate makes sure that this is always the case; qed", + ); + self.current_mut().absorb(transaction_meter) + } + + /// The total allocated amount of memory. + #[cfg(test)] + fn total_amount(&self) -> u32 { + self.nested_meters + .iter() + .fold(self.root_meter.amount, |acc, e| acc.saturating_add(e.amount)) + } + + /// A mutable reference to the current meter entry. + pub fn current_mut(&mut self) -> &mut MeterEntry { + self.nested_meters.last_mut().unwrap_or(&mut self.root_meter) + } + + /// A reference to the current meter entry. + pub fn current(&self) -> &MeterEntry { + self.nested_meters.last().unwrap_or(&self.root_meter) + } +} + +/// An entry representing a journal change. +struct JournalEntry { + key: Vec, + prev_value: Option>, +} + +impl JournalEntry { + /// Create a new change. + fn new(key: Vec, prev_value: Option>) -> Self { + Self { key, prev_value } + } + + /// Revert the change. + fn revert(self, storage: &mut Storage) { + storage.write(&self.key, self.prev_value); + } +} + +/// A journal containing transient storage modifications. +struct Journal(Vec); + +impl Journal { + /// Create a new journal. + fn new() -> Self { + Self(Default::default()) + } + + /// Add a change to the journal. + fn push(&mut self, entry: JournalEntry) { + self.0.push(entry); + } + + /// Length of the journal. + fn len(&self) -> usize { + self.0.len() + } + + /// Roll back all journal changes until the chackpoint + fn rollback(&mut self, storage: &mut Storage, checkpoint: usize) { + self.0.drain(checkpoint..).rev().for_each(|entry| entry.revert(storage)); + } +} + +/// Storage for maintaining the current transaction state. +#[derive(Default)] +struct Storage(BTreeMap, Vec>); + +impl Storage { + /// Read the storage entry. + fn read(&self, key: &Vec) -> Option> { + self.0.get(key).cloned() + } + + /// Write the storage entry. + fn write(&mut self, key: &Vec, value: Option>) -> Option> { + if let Some(value) = value { + // Insert storage entry. + self.0.insert(key.clone(), value) + } else { + // Remove storage entry. + self.0.remove(key) + } + } +} + +/// Transient storage behaves almost identically to regular storage but is discarded after each +/// transaction. It consists of a `BTreeMap` for the current state, a journal of all changes, and a +/// list of checkpoints. On entry to the `start_transaction` function, a marker (checkpoint) is +/// added to the list. New values are written to the current state, and the previous value is +/// recorded in the journal (`write`). When the `commit_transaction` function is called, the marker +/// to the journal index (checkpoint) of when that call was entered is discarded. +/// On `rollback_transaction`, all entries are reverted up to the last checkpoint. +pub struct TransientStorage { + // The storage and journal size is limited by the storage meter. + storage: Storage, + journal: Journal, + // The size of the StorageMeter is limited by the stack depth. + meter: StorageMeter, + // The size of the checkpoints is limited by the stack depth. + checkpoints: Vec, +} + +impl TransientStorage { + /// Create new transient storage with the supplied memory limit. + pub fn new(memory_limit: u32) -> Self { + TransientStorage { + storage: Default::default(), + journal: Journal::new(), + checkpoints: Default::default(), + meter: StorageMeter::new(memory_limit), + } + } + + /// Read the storage value. If the entry does not exist, `None` is returned. + pub fn read(&self, account: &AccountIdOf, key: &Key) -> Option> { + self.storage.read(&Self::storage_key(&account.encode(), &key.hash())) + } + + /// Write a value to storage. + /// + /// If the `value` is `None`, then the entry is removed. If `take` is true, + /// a [`WriteOutcome::Taken`] is returned instead of a [`WriteOutcome::Overwritten`]. + /// If the entry did not exist, [`WriteOutcome::New`] is returned. + pub fn write( + &mut self, + account: &AccountIdOf, + key: &Key, + value: Option>, + take: bool, + ) -> Result { + let key = Self::storage_key(&account.encode(), &key.hash()); + let prev_value = self.storage.read(&key); + // Skip if the same value is being set. + if prev_value != value { + // Calculate the allocation size. + if let Some(value) = &value { + // Charge the key, value and journal entry. + // If a new value is written, a new journal entry is created. The previous value is + // moved to the journal along with its key, and the new value is written to + // storage. + let key_len = key.capacity(); + let mut amount = value + .capacity() + .saturating_add(key_len) + .saturating_add(mem::size_of::()); + if prev_value.is_none() { + // Charge a new storage entry. + // If there was no previous value, a new entry is added to storage (BTreeMap) + // containing a Vec for the key and a Vec for the value. The value was already + // included in the amount. + amount.saturating_accrue(key_len.saturating_add(mem::size_of::>())); + } + self.meter.charge(amount as _)?; + } + self.storage.write(&key, value); + // Update the journal. + self.journal.push(JournalEntry::new(key, prev_value.clone())); + } + + Ok(match (take, prev_value) { + (_, None) => WriteOutcome::New, + (false, Some(prev_value)) => WriteOutcome::Overwritten(prev_value.len() as _), + (true, Some(prev_value)) => WriteOutcome::Taken(prev_value), + }) + } + + /// Start a new nested transaction. + /// + /// This allows to either commit or roll back all changes that are made after this call. + /// For every transaction there must be a matching call to either `rollback_transaction` + /// or `commit_transaction`. + pub fn start_transaction(&mut self) { + self.meter.start(); + self.checkpoints.push(self.journal.len()); + } + + /// Rollback the last transaction started by `start_transaction`. + /// + /// Any changes made during that transaction are discarded. + /// + /// # Panics + /// + /// Will panic if there is no open transaction. + pub fn rollback_transaction(&mut self) { + let checkpoint = self + .checkpoints + .pop() + .expect( + "A call to rollback_transaction must be preceded by a corresponding call to start_transaction; + the code within this crate makes sure that this is always the case; qed" + ); + self.meter.revert(); + self.journal.rollback(&mut self.storage, checkpoint); + } + + /// Commit the last transaction started by `start_transaction`. + /// + /// Any changes made during that transaction are committed. + /// + /// # Panics + /// + /// Will panic if there is no open transaction. + pub fn commit_transaction(&mut self) { + self.checkpoints + .pop() + .expect( + "A call to commit_transaction must be preceded by a corresponding call to start_transaction; + the code within this crate makes sure that this is always the case; qed" + ); + self.meter.commit(); + } + + /// The storage allocation meter used for transaction metering. + #[cfg(any(test, feature = "runtime-benchmarks"))] + pub fn meter(&mut self) -> &mut StorageMeter { + return &mut self.meter + } + + fn storage_key(account: &[u8], key: &[u8]) -> Vec { + let mut storage_key = Vec::with_capacity(account.len() + key.len()); + storage_key.extend_from_slice(&account); + storage_key.extend_from_slice(&key); + storage_key + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::{ + tests::{Test, ALICE, BOB, CHARLIE}, + Error, + }; + use core::u32::MAX; + + // Calculate the allocation size for the given entry. + fn allocation_size( + account: &AccountIdOf, + key: &Key, + value: Option>, + ) -> u32 { + let mut storage: TransientStorage = TransientStorage::::new(MAX); + storage + .write(account, key, value, false) + .expect("Could not write to transient storage."); + storage.meter().current().amount + } + + #[test] + fn read_write_works() { + let mut storage: TransientStorage = TransientStorage::::new(2048); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1]), false), + Ok(WriteOutcome::New) + ); + assert_eq!( + storage.write(&ALICE, &Key::Fix([2; 32]), Some(vec![2]), true), + Ok(WriteOutcome::New) + ); + assert_eq!( + storage.write(&BOB, &Key::Fix([3; 32]), Some(vec![3]), false), + Ok(WriteOutcome::New) + ); + assert_eq!(storage.read(&ALICE, &Key::Fix([1; 32])), Some(vec![1])); + assert_eq!(storage.read(&ALICE, &Key::Fix([2; 32])), Some(vec![2])); + assert_eq!(storage.read(&BOB, &Key::Fix([3; 32])), Some(vec![3])); + // Overwrite values. + assert_eq!( + storage.write(&ALICE, &Key::Fix([2; 32]), Some(vec![4, 5]), false), + Ok(WriteOutcome::Overwritten(1)) + ); + assert_eq!( + storage.write(&BOB, &Key::Fix([3; 32]), Some(vec![6, 7]), true), + Ok(WriteOutcome::Taken(vec![3])) + ); + assert_eq!(storage.read(&ALICE, &Key::Fix([1; 32])), Some(vec![1])); + assert_eq!(storage.read(&ALICE, &Key::Fix([2; 32])), Some(vec![4, 5])); + assert_eq!(storage.read(&BOB, &Key::Fix([3; 32])), Some(vec![6, 7])); + + // Check for an empty value. + assert_eq!( + storage.write(&BOB, &Key::Fix([3; 32]), Some(vec![]), true), + Ok(WriteOutcome::Taken(vec![6, 7])) + ); + assert_eq!(storage.read(&BOB, &Key::Fix([3; 32])), Some(vec![])); + + assert_eq!( + storage.write(&BOB, &Key::Fix([3; 32]), None, true), + Ok(WriteOutcome::Taken(vec![])) + ); + assert_eq!(storage.read(&BOB, &Key::Fix([3; 32])), None); + } + + #[test] + fn read_write_with_var_sized_keys_works() { + let mut storage = TransientStorage::::new(2048); + assert_eq!( + storage.write( + &ALICE, + &Key::::try_from_var([1; 64].to_vec()).unwrap(), + Some(vec![1]), + false + ), + Ok(WriteOutcome::New) + ); + assert_eq!( + storage.write( + &BOB, + &Key::::try_from_var([2; 64].to_vec()).unwrap(), + Some(vec![2, 3]), + false + ), + Ok(WriteOutcome::New) + ); + assert_eq!( + storage.read(&ALICE, &Key::::try_from_var([1; 64].to_vec()).unwrap()), + Some(vec![1]) + ); + assert_eq!( + storage.read(&BOB, &Key::::try_from_var([2; 64].to_vec()).unwrap()), + Some(vec![2, 3]) + ); + // Overwrite values. + assert_eq!( + storage.write( + &ALICE, + &Key::::try_from_var([1; 64].to_vec()).unwrap(), + Some(vec![4, 5]), + false + ), + Ok(WriteOutcome::Overwritten(1)) + ); + assert_eq!( + storage.read(&ALICE, &Key::::try_from_var([1; 64].to_vec()).unwrap()), + Some(vec![4, 5]) + ); + } + + #[test] + fn rollback_transaction_works() { + let mut storage = TransientStorage::::new(1024); + + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1]), false), + Ok(WriteOutcome::New) + ); + storage.rollback_transaction(); + assert_eq!(storage.read(&ALICE, &Key::Fix([1; 32])), None) + } + + #[test] + fn commit_transaction_works() { + let mut storage = TransientStorage::::new(1024); + + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1]), false), + Ok(WriteOutcome::New) + ); + storage.commit_transaction(); + assert_eq!(storage.read(&ALICE, &Key::Fix([1; 32])), Some(vec![1])) + } + + #[test] + fn overwrite_and_commmit_transaction_works() { + let mut storage = TransientStorage::::new(1024); + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1]), false), + Ok(WriteOutcome::New) + ); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1, 2]), false), + Ok(WriteOutcome::Overwritten(1)) + ); + storage.commit_transaction(); + assert_eq!(storage.read(&ALICE, &Key::Fix([1; 32])), Some(vec![1, 2])) + } + + #[test] + fn rollback_in_nested_transaction_works() { + let mut storage = TransientStorage::::new(1024); + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1]), false), + Ok(WriteOutcome::New) + ); + storage.start_transaction(); + assert_eq!( + storage.write(&BOB, &Key::Fix([1; 32]), Some(vec![1]), false), + Ok(WriteOutcome::New) + ); + storage.rollback_transaction(); + storage.commit_transaction(); + assert_eq!(storage.read(&ALICE, &Key::Fix([1; 32])), Some(vec![1])); + assert_eq!(storage.read(&BOB, &Key::Fix([1; 32])), None) + } + + #[test] + fn commit_in_nested_transaction_works() { + let mut storage = TransientStorage::::new(1024); + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1]), false), + Ok(WriteOutcome::New) + ); + storage.start_transaction(); + assert_eq!( + storage.write(&BOB, &Key::Fix([1; 32]), Some(vec![2]), false), + Ok(WriteOutcome::New) + ); + storage.start_transaction(); + assert_eq!( + storage.write(&CHARLIE, &Key::Fix([1; 32]), Some(vec![3]), false), + Ok(WriteOutcome::New) + ); + storage.commit_transaction(); + storage.commit_transaction(); + storage.commit_transaction(); + assert_eq!(storage.read(&ALICE, &Key::Fix([1; 32])), Some(vec![1])); + assert_eq!(storage.read(&BOB, &Key::Fix([1; 32])), Some(vec![2])); + assert_eq!(storage.read(&CHARLIE, &Key::Fix([1; 32])), Some(vec![3])); + } + + #[test] + fn rollback_all_transactions_works() { + let mut storage = TransientStorage::::new(1024); + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1]), false), + Ok(WriteOutcome::New) + ); + storage.start_transaction(); + assert_eq!( + storage.write(&BOB, &Key::Fix([1; 32]), Some(vec![2]), false), + Ok(WriteOutcome::New) + ); + storage.start_transaction(); + assert_eq!( + storage.write(&CHARLIE, &Key::Fix([1; 32]), Some(vec![3]), false), + Ok(WriteOutcome::New) + ); + storage.commit_transaction(); + storage.commit_transaction(); + storage.rollback_transaction(); + assert_eq!(storage.read(&ALICE, &Key::Fix([1; 32])), None); + assert_eq!(storage.read(&BOB, &Key::Fix([1; 32])), None); + assert_eq!(storage.read(&CHARLIE, &Key::Fix([1; 32])), None); + } + + #[test] + fn metering_transactions_works() { + let size = allocation_size(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096])); + let mut storage = TransientStorage::::new(size * 2); + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + let limit = storage.meter().current().limit; + storage.commit_transaction(); + + storage.start_transaction(); + assert_eq!(storage.meter().current().limit, limit - size); + assert_eq!(storage.meter().current().limit - storage.meter().current().amount, size); + assert_eq!( + storage.write(&ALICE, &Key::Fix([2; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + assert_eq!(storage.meter().current().amount, size); + storage.commit_transaction(); + assert_eq!(storage.meter().total_amount(), size * 2); + } + + #[test] + fn metering_nested_transactions_works() { + let size = allocation_size(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096])); + let mut storage = TransientStorage::::new(size * 3); + + storage.start_transaction(); + let limit = storage.meter().current().limit; + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + storage.start_transaction(); + assert_eq!(storage.meter().total_amount(), size); + assert!(storage.meter().current().limit < limit - size); + assert_eq!( + storage.write(&ALICE, &Key::Fix([2; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + storage.commit_transaction(); + assert_eq!(storage.meter().current().limit, limit); + assert_eq!(storage.meter().total_amount(), storage.meter().current().amount); + storage.commit_transaction(); + } + + #[test] + fn metering_transaction_fails() { + let size = allocation_size(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096])); + let mut storage = TransientStorage::::new(size - 1); + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096]), false), + Err(Error::::OutOfTransientStorage.into()) + ); + assert_eq!(storage.meter.current().amount, 0); + storage.commit_transaction(); + assert_eq!(storage.meter.total_amount(), 0); + } + + #[test] + fn metering_nested_transactions_fails() { + let size = allocation_size(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096])); + let mut storage = TransientStorage::::new(size * 2); + + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([2; 32]), Some(vec![1u8; 4096]), false), + Err(Error::::OutOfTransientStorage.into()) + ); + storage.commit_transaction(); + storage.commit_transaction(); + assert_eq!(storage.meter.total_amount(), size); + } + + #[test] + fn metering_nested_transaction_with_rollback_works() { + let size = allocation_size(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096])); + let mut storage = TransientStorage::::new(size * 2); + + storage.start_transaction(); + let limit = storage.meter.current().limit; + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([2; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + storage.rollback_transaction(); + + assert_eq!(storage.meter.total_amount(), 0); + assert_eq!(storage.meter.current().limit, limit); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + let amount = storage.meter().current().amount; + assert_eq!(storage.meter().total_amount(), amount); + storage.commit_transaction(); + } + + #[test] + fn metering_with_rollback_works() { + let size = allocation_size(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096])); + let mut storage = TransientStorage::::new(size * 5); + + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([1; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + let amount = storage.meter.total_amount(); + storage.start_transaction(); + assert_eq!( + storage.write(&ALICE, &Key::Fix([2; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + storage.start_transaction(); + assert_eq!( + storage.write(&BOB, &Key::Fix([1; 32]), Some(vec![1u8; 4096]), false), + Ok(WriteOutcome::New) + ); + storage.commit_transaction(); + storage.rollback_transaction(); + assert_eq!(storage.meter.total_amount(), amount); + storage.commit_transaction(); + } +} diff --git a/substrate/frame/contracts/src/wasm/mod.rs b/substrate/frame/contracts/src/wasm/mod.rs index 2fef07f8b7a..f4ee76459c4 100644 --- a/substrate/frame/contracts/src/wasm/mod.rs +++ b/substrate/frame/contracts/src/wasm/mod.rs @@ -506,6 +506,7 @@ mod tests { primitives::ExecReturnValue, storage::WriteOutcome, tests::{RuntimeCall, Test, ALICE, BOB}, + transient_storage::TransientStorage, BalanceOf, CodeHash, Error, Origin, Pallet as Contracts, }; use assert_matches::assert_matches; @@ -563,6 +564,7 @@ mod tests { pub struct MockExt { storage: HashMap, Vec>, + transient_storage: TransientStorage, instantiates: Vec, terminations: Vec, calls: Vec, @@ -591,6 +593,7 @@ mod tests { Self { code_hashes: Default::default(), storage: Default::default(), + transient_storage: TransientStorage::new(1024 * 1024), instantiates: Default::default(), terminations: Default::default(), calls: Default::default(), @@ -691,6 +694,21 @@ mod tests { } Ok(result) } + fn get_transient_storage(&self, key: &Key) -> Option> { + self.transient_storage.read(self.address(), key) + } + fn get_transient_storage_size(&self, key: &Key) -> Option { + self.transient_storage.read(self.address(), key).map(|value| value.len() as _) + } + fn set_transient_storage( + &mut self, + key: &Key, + value: Option>, + take_old: bool, + ) -> Result { + let account_id = self.address().clone(); + self.transient_storage.write(&account_id, key, value, take_old) + } fn caller(&self) -> Origin { self.caller.clone() } @@ -784,6 +802,10 @@ mod tests { fn contract_info(&mut self) -> &mut crate::ContractInfo { unimplemented!() } + #[cfg(feature = "runtime-benchmarks")] + fn transient_storage(&mut self) -> &mut TransientStorage { + unimplemented!() + } fn ecdsa_to_eth_address(&self, _pk: &[u8; 33]) -> Result<[u8; 20], ()> { Ok([2u8; 20]) } @@ -3046,6 +3068,337 @@ mod tests { assert_eq!(&result.data[4..], &[0u8; 0]); } + #[test] + fn set_transient_storage_works() { + const CODE: &str = r#" +(module + (import "seal0" "seal_input" (func $seal_input (param i32 i32))) + (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) + (import "seal0" "set_transient_storage" (func $set_transient_storage (param i32 i32 i32 i32) (result i32))) + (import "env" "memory" (memory 1 1)) + + ;; [0, 4) size of input buffer + ;; 4k in little endian + (data (i32.const 0) "\00\10") + + ;; [4, 4100) input buffer + + (func (export "call") + ;; Receive (key ++ value_to_write) + (call $seal_input + (i32.const 4) ;; Pointer to the input buffer + (i32.const 0) ;; Size of the input buffer + ) + ;; Store the passed value to the passed key and store result to memory + (i32.store (i32.const 168) + (call $set_transient_storage + (i32.const 8) ;; key_ptr + (i32.load (i32.const 4)) ;; key_len + (i32.add ;; value_ptr = 8 + key_len + (i32.const 8) + (i32.load (i32.const 4))) + (i32.sub ;; value_len (input_size - (key_len + key_len_len)) + (i32.load (i32.const 0)) + (i32.add + (i32.load (i32.const 4)) + (i32.const 4) + ) + ) + ) + ) + (call $seal_return + (i32.const 0) ;; flags + (i32.const 168) ;; ptr to returned value + (i32.const 4) ;; length of returned value + ) + ) + + (func (export "deploy")) +) +"#; + + let mut ext = MockExt::default(); + + // value did not exist before -> sentinel returned + let input = (32, [1u8; 32], [42u8, 48]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!(u32::from_le_bytes(result.data.try_into().unwrap()), crate::SENTINEL); + assert_eq!( + ext.get_transient_storage(&Key::::try_from_var([1u8; 32].to_vec()).unwrap()), + Some(vec![42, 48]) + ); + + // value do exist -> length of old value returned + let input = (32, [1u8; 32], [0u8; 0]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!(u32::from_le_bytes(result.data.try_into().unwrap()), 2); + assert_eq!( + ext.get_transient_storage(&Key::::try_from_var([1u8; 32].to_vec()).unwrap()), + Some(vec![]) + ); + + // value do exist -> length of old value returned (test for zero sized val) + let input = (32, [1u8; 32], [99u8]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!(u32::from_le_bytes(result.data.try_into().unwrap()), 0); + assert_eq!( + ext.get_transient_storage(&Key::::try_from_var([1u8; 32].to_vec()).unwrap()), + Some(vec![99]) + ); + } + + #[test] + fn get_transient_storage_works() { + const CODE: &str = r#" +(module + (import "seal0" "seal_input" (func $seal_input (param i32 i32))) + (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) + (import "seal0" "get_transient_storage" (func $get_transient_storage (param i32 i32 i32 i32) (result i32))) + (import "env" "memory" (memory 1 1)) + + ;; [0, 4) size of input buffer (160 bytes as we copy the key+len here) + (data (i32.const 0) "\A0") + + ;; [4, 8) size of output buffer + ;; 4k in little endian + (data (i32.const 4) "\00\10") + + ;; [8, 168) input buffer + ;; [168, 4264) output buffer + + (func (export "call") + ;; Receive (key ++ value_to_write) + (call $seal_input + (i32.const 8) ;; Pointer to the input buffer + (i32.const 0) ;; Size of the input buffer + ) + ;; Load a storage value and result of this call into the output buffer + (i32.store (i32.const 168) + (call $get_transient_storage + (i32.const 12) ;; key_ptr + (i32.load (i32.const 8)) ;; key_len + (i32.const 172) ;; Pointer to the output buffer + (i32.const 4) ;; Pointer to the size of the buffer + ) + ) + (call $seal_return + (i32.const 0) ;; flags + (i32.const 168) ;; output buffer ptr + (i32.add ;; length: output size + 4 (retval) + (i32.load (i32.const 4)) + (i32.const 4) + ) + ) + ) + + (func (export "deploy")) +) +"#; + + let mut ext = MockExt::default(); + + assert_ok!(ext.set_transient_storage( + &Key::::try_from_var([1u8; 64].to_vec()).unwrap(), + Some(vec![42u8]), + false + )); + assert_ok!(ext.set_transient_storage( + &Key::::try_from_var([2u8; 19].to_vec()).unwrap(), + Some(vec![]), + false + )); + + // value does not exist + let input = (63, [1u8; 64]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!( + u32::from_le_bytes(result.data[0..4].try_into().unwrap()), + ReturnErrorCode::KeyNotFound as u32 + ); + + // value exists + let input = (64, [1u8; 64]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!( + u32::from_le_bytes(result.data[0..4].try_into().unwrap()), + ReturnErrorCode::Success as u32 + ); + assert_eq!(&result.data[4..], &[42u8]); + + // value exists (test for 0 sized) + let input = (19, [2u8; 19]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!( + u32::from_le_bytes(result.data[0..4].try_into().unwrap()), + ReturnErrorCode::Success as u32 + ); + assert_eq!(&result.data[4..], &([] as [u8; 0])); + } + + #[test] + fn clear_transient_storage_works() { + const CODE: &str = r#" +(module + (import "seal0" "seal_input" (func $seal_input (param i32 i32))) + (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) + (import "seal0" "clear_transient_storage" (func $clear_transient_storage (param i32 i32) (result i32))) + (import "env" "memory" (memory 1 1)) + + ;; size of input buffer + ;; [0, 4) size of input buffer (128+32 = 160 bytes = 0xA0) + (data (i32.const 0) "\A0") + + ;; [4, 164) input buffer + + (func (export "call") + ;; Receive key + (call $seal_input + (i32.const 4) ;; Where we take input and store it + (i32.const 0) ;; Where we take and store the length of thedata + ) + ;; Call seal_clear_storage and save what it returns at 0 + (i32.store (i32.const 0) + (call $clear_transient_storage + (i32.const 8) ;; key_ptr + (i32.load (i32.const 4)) ;; key_len + ) + ) + (call $seal_return + (i32.const 0) ;; flags + (i32.const 0) ;; returned value + (i32.const 4) ;; length of returned value + ) + ) + + (func (export "deploy")) +) +"#; + + let mut ext = MockExt::default(); + + assert_ok!(ext.set_transient_storage( + &Key::::try_from_var([1u8; 64].to_vec()).unwrap(), + Some(vec![42u8]), + false + )); + + // value did not exist + let input = (32, [3u8; 32]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + // sentinel returned + assert_eq!(u32::from_le_bytes(result.data.try_into().unwrap()), crate::SENTINEL); + + // value did exist + let input = (64, [1u8; 64]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + // length returned + assert_eq!(u32::from_le_bytes(result.data.try_into().unwrap()), 1); + // value cleared + assert_eq!( + ext.get_transient_storage(&Key::::try_from_var([1u8; 64].to_vec()).unwrap()), + None + ); + } + + #[test] + fn take_transient_storage_works() { + const CODE: &str = r#" +(module + (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) + (import "seal0" "seal_input" (func $seal_input (param i32 i32))) + (import "seal0" "take_transient_storage" (func $take_transient_storage (param i32 i32 i32 i32) (result i32))) + (import "env" "memory" (memory 1 1)) + + ;; [0, 4) size of input buffer (160 bytes as we copy the key+len here) + (data (i32.const 0) "\A0") + + ;; [4, 8) size of output buffer + ;; 4k in little endian + (data (i32.const 4) "\00\10") + + ;; [8, 168) input buffer + ;; [168, 4264) output buffer + + (func (export "call") + ;; Receive key + (call $seal_input + (i32.const 8) ;; Pointer to the input buffer + (i32.const 0) ;; Size of the length buffer + ) + + ;; Load a storage value and result of this call into the output buffer + (i32.store (i32.const 168) + (call $take_transient_storage + (i32.const 12) ;; key_ptr + (i32.load (i32.const 8)) ;; key_len + (i32.const 172) ;; Pointer to the output buffer + (i32.const 4) ;; Pointer to the size of the buffer + ) + ) + + ;; Return the contents of the buffer + (call $seal_return + (i32.const 0) ;; flags + (i32.const 168) ;; output buffer ptr + (i32.add ;; length: storage size + 4 (retval) + (i32.load (i32.const 4)) + (i32.const 4) + ) + ) + ) + + (func (export "deploy")) +) +"#; + + let mut ext = MockExt::default(); + + assert_ok!(ext.set_transient_storage( + &Key::::try_from_var([1u8; 64].to_vec()).unwrap(), + Some(vec![42u8]), + false + )); + assert_ok!(ext.set_transient_storage( + &Key::::try_from_var([2u8; 19].to_vec()).unwrap(), + Some(vec![]), + false + )); + + // value does not exist -> error returned + let input = (63, [1u8; 64]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!( + u32::from_le_bytes(result.data[0..4].try_into().unwrap()), + ReturnErrorCode::KeyNotFound as u32 + ); + + // value did exist -> value returned + let input = (64, [1u8; 64]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!( + u32::from_le_bytes(result.data[0..4].try_into().unwrap()), + ReturnErrorCode::Success as u32 + ); + assert_eq!( + ext.get_transient_storage(&Key::::try_from_var([1u8; 64].to_vec()).unwrap()), + None + ); + assert_eq!(&result.data[4..], &[42u8]); + + // value did exist -> length returned (test for 0 sized) + let input = (19, [2u8; 19]).encode(); + let result = execute(CODE, input, &mut ext).unwrap(); + assert_eq!( + u32::from_le_bytes(result.data[0..4].try_into().unwrap()), + ReturnErrorCode::Success as u32 + ); + assert_eq!( + ext.get_transient_storage(&Key::::try_from_var([2u8; 19].to_vec()).unwrap()), + None + ); + assert_eq!(&result.data[4..], &[0u8; 0]); + } + #[test] fn is_contract_works() { const CODE_IS_CONTRACT: &str = r#" diff --git a/substrate/frame/contracts/src/wasm/runtime.rs b/substrate/frame/contracts/src/wasm/runtime.rs index 50b06de080c..982d28540ec 100644 --- a/substrate/frame/contracts/src/wasm/runtime.rs +++ b/substrate/frame/contracts/src/wasm/runtime.rs @@ -199,6 +199,16 @@ pub enum RuntimeCosts { GetStorage(u32), /// Weight of calling `seal_take_storage` for the given size. TakeStorage(u32), + /// Weight of calling `seal_set_transient_storage` for the given storage item sizes. + SetTransientStorage { old_bytes: u32, new_bytes: u32 }, + /// Weight of calling `seal_clear_transient_storage` per cleared byte. + ClearTransientStorage(u32), + /// Weight of calling `seal_contains_transient_storage` per byte of the checked item. + ContainsTransientStorage(u32), + /// Weight of calling `seal_get_transient_storage` with the specified size in storage. + GetTransientStorage(u32), + /// Weight of calling `seal_take_transient_storage` for the given size. + TakeTransientStorage(u32), /// Weight of calling `seal_transfer`. Transfer, /// Base weight of calling `seal_call`. @@ -245,6 +255,34 @@ pub enum RuntimeCosts { UnlockDelegateDependency, } +// For the function that modifies the storage, the benchmarks are done with one item in the +// transient_storage (BTreeMap). To consider the worst-case scenario, the weight of the overhead of +// writing to a full BTreeMap should be included. On top of that, the rollback weight is added, +// which is the worst scenario. +macro_rules! cost_write { + // cost_write!(name, a, b, c) -> T::WeightInfo::name(a, b, c).saturating_add(T::WeightInfo::rollback_transient_storage()) + // .saturating_add(T::WeightInfo::set_transient_storage_full().saturating_sub(T::WeightInfo::set_transient_storage_empty()) + ($name:ident $(, $arg:expr )*) => { + (T::WeightInfo::$name($( $arg ),*).saturating_add(T::WeightInfo::rollback_transient_storage()).saturating_add(cost_write!(@cost_storage))) + }; + + (@cost_storage) => { + T::WeightInfo::set_transient_storage_full().saturating_sub(T::WeightInfo::set_transient_storage_empty()) + }; +} + +macro_rules! cost_read { + // cost_read!(name, a, b, c) -> T::WeightInfo::name(a, b, c).saturating_add(T::WeightInfo::get_transient_storage_full() + // .saturating_sub(T::WeightInfo::get_transient_storage_empty()) + ($name:ident $(, $arg:expr )*) => { + (T::WeightInfo::$name($( $arg ),*).saturating_add(cost_read!(@cost_storage))) + }; + + (@cost_storage) => { + T::WeightInfo::get_transient_storage_full().saturating_sub(T::WeightInfo::get_transient_storage_empty()) + }; +} + macro_rules! cost_args { // cost_args!(name, a, b, c) -> T::WeightInfo::name(a, b, c).saturating_sub(T::WeightInfo::name(0, 0, 0)) ($name:ident, $( $arg: expr ),+) => { @@ -296,6 +334,12 @@ impl Token for RuntimeCosts { ContainsStorage(len) => T::WeightInfo::seal_contains_storage(len), GetStorage(len) => T::WeightInfo::seal_get_storage(len), TakeStorage(len) => T::WeightInfo::seal_take_storage(len), + SetTransientStorage { new_bytes, old_bytes } => + cost_write!(seal_set_transient_storage, new_bytes, old_bytes), + ClearTransientStorage(len) => cost_write!(seal_clear_transient_storage, len), + ContainsTransientStorage(len) => cost_read!(seal_contains_transient_storage, len), + GetTransientStorage(len) => cost_read!(seal_get_transient_storage, len), + TakeTransientStorage(len) => cost_write!(seal_take_transient_storage, len), Transfer => T::WeightInfo::seal_transfer(), CallBase => T::WeightInfo::seal_call(0, 0), DelegateCallBase => T::WeightInfo::seal_delegate_call(), @@ -792,10 +836,129 @@ impl<'a, E: Ext + 'a> Runtime<'a, E> { let key = self.decode_key(memory, key_type, key_ptr)?; let outcome = self.ext.get_storage_size(&key); - self.adjust_gas(charged, RuntimeCosts::ClearStorage(outcome.unwrap_or(0))); + self.adjust_gas(charged, RuntimeCosts::ContainsStorage(outcome.unwrap_or(0))); Ok(outcome.unwrap_or(SENTINEL)) } + fn set_transient_storage( + &mut self, + memory: &[u8], + key_type: KeyType, + key_ptr: u32, + value_ptr: u32, + value_len: u32, + ) -> Result { + let max_size = self.ext.max_value_size(); + let charged = self.charge_gas(RuntimeCosts::SetTransientStorage { + new_bytes: value_len, + old_bytes: max_size, + })?; + if value_len > max_size { + return Err(Error::::ValueTooLarge.into()) + } + let key = self.decode_key(memory, key_type, key_ptr)?; + let value = Some(self.read_sandbox_memory(memory, value_ptr, value_len)?); + let write_outcome = self.ext.set_transient_storage(&key, value, false)?; + self.adjust_gas( + charged, + RuntimeCosts::SetTransientStorage { + new_bytes: value_len, + old_bytes: write_outcome.old_len(), + }, + ); + Ok(write_outcome.old_len_with_sentinel()) + } + + fn clear_transient_storage( + &mut self, + memory: &[u8], + key_type: KeyType, + key_ptr: u32, + ) -> Result { + let charged = + self.charge_gas(RuntimeCosts::ClearTransientStorage(self.ext.max_value_size()))?; + let key = self.decode_key(memory, key_type, key_ptr)?; + let outcome = self.ext.set_transient_storage(&key, None, false)?; + + self.adjust_gas(charged, RuntimeCosts::ClearTransientStorage(outcome.old_len())); + Ok(outcome.old_len_with_sentinel()) + } + + fn get_transient_storage( + &mut self, + memory: &mut [u8], + key_type: KeyType, + key_ptr: u32, + out_ptr: u32, + out_len_ptr: u32, + ) -> Result { + let charged = + self.charge_gas(RuntimeCosts::GetTransientStorage(self.ext.max_value_size()))?; + let key = self.decode_key(memory, key_type, key_ptr)?; + let outcome = self.ext.get_transient_storage(&key); + + if let Some(value) = outcome { + self.adjust_gas(charged, RuntimeCosts::GetTransientStorage(value.len() as u32)); + self.write_sandbox_output( + memory, + out_ptr, + out_len_ptr, + &value, + false, + already_charged, + )?; + Ok(ReturnErrorCode::Success) + } else { + self.adjust_gas(charged, RuntimeCosts::GetTransientStorage(0)); + Ok(ReturnErrorCode::KeyNotFound) + } + } + + fn contains_transient_storage( + &mut self, + memory: &[u8], + key_type: KeyType, + key_ptr: u32, + ) -> Result { + let charged = + self.charge_gas(RuntimeCosts::ContainsTransientStorage(self.ext.max_value_size()))?; + let key = self.decode_key(memory, key_type, key_ptr)?; + let outcome = self.ext.get_transient_storage_size(&key); + + self.adjust_gas(charged, RuntimeCosts::ContainsTransientStorage(outcome.unwrap_or(0))); + Ok(outcome.unwrap_or(SENTINEL)) + } + + fn take_transient_storage( + &mut self, + memory: &mut [u8], + key_type: KeyType, + key_ptr: u32, + out_ptr: u32, + out_len_ptr: u32, + ) -> Result { + let charged = + self.charge_gas(RuntimeCosts::TakeTransientStorage(self.ext.max_value_size()))?; + let key = self.decode_key(memory, key_type, key_ptr)?; + if let crate::storage::WriteOutcome::Taken(value) = + self.ext.set_transient_storage(&key, None, true)? + { + self.adjust_gas(charged, RuntimeCosts::TakeTransientStorage(value.len() as u32)); + self.write_sandbox_output( + memory, + out_ptr, + out_len_ptr, + &value, + false, + already_charged, + )?; + Ok(ReturnErrorCode::Success) + } else { + self.adjust_gas(charged, RuntimeCosts::TakeTransientStorage(0)); + Ok(ReturnErrorCode::KeyNotFound) + } + } + fn call( &mut self, memory: &mut [u8], @@ -1099,6 +1262,67 @@ pub mod env { } } + /// Set the value at the given key in the contract transient storage. + #[unstable] + fn set_transient_storage( + ctx: _, + memory: _, + key_ptr: u32, + key_len: u32, + value_ptr: u32, + value_len: u32, + ) -> Result { + ctx.set_transient_storage(memory, KeyType::Var(key_len), key_ptr, value_ptr, value_len) + } + + /// Clear the value at the given key in the contract storage. + #[unstable] + fn clear_transient_storage( + ctx: _, + memory: _, + key_ptr: u32, + key_len: u32, + ) -> Result { + ctx.clear_transient_storage(memory, KeyType::Var(key_len), key_ptr) + } + + /// Retrieve the value under the given key from transient storage. + #[unstable] + fn get_transient_storage( + ctx: _, + memory: _, + key_ptr: u32, + key_len: u32, + out_ptr: u32, + out_len_ptr: u32, + ) -> Result { + ctx.get_transient_storage(memory, KeyType::Var(key_len), key_ptr, out_ptr, out_len_ptr) + } + + /// Checks whether there is a value stored under the given key in transient storage. + #[unstable] + fn contains_transient_storage( + ctx: _, + memory: _, + key_ptr: u32, + key_len: u32, + ) -> Result { + ctx.contains_transient_storage(memory, KeyType::Var(key_len), key_ptr) + } + + /// Retrieve and remove the value under the given key from transient storage. + #[unstable] + fn take_transient_storage( + ctx: _, + memory: _, + key_ptr: u32, + key_len: u32, + out_ptr: u32, + out_len_ptr: u32, + ) -> Result { + ctx.take_transient_storage(memory, KeyType::Var(key_len), key_ptr, out_ptr, out_len_ptr) + } + /// Transfer some value to another account. /// See [`pallet_contracts_uapi::HostFn::transfer`]. #[prefixed_alias] diff --git a/substrate/frame/contracts/src/weights.rs b/substrate/frame/contracts/src/weights.rs index 0404a9d3d8e..dc10a8aee77 100644 --- a/substrate/frame/contracts/src/weights.rs +++ b/substrate/frame/contracts/src/weights.rs @@ -18,9 +18,9 @@ //! Autogenerated weights for `pallet_contracts` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 -//! DATE: 2024-06-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2024-07-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` -//! HOSTNAME: `runner-1pho9goo-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! HOSTNAME: `runner-yaoqqom-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("dev")`, DB CACHE: `1024` // Executed Command: @@ -98,6 +98,16 @@ pub trait WeightInfo { fn seal_get_storage(n: u32, ) -> Weight; fn seal_contains_storage(n: u32, ) -> Weight; fn seal_take_storage(n: u32, ) -> Weight; + fn set_transient_storage_empty() -> Weight; + fn set_transient_storage_full() -> Weight; + fn get_transient_storage_empty() -> Weight; + fn get_transient_storage_full() -> Weight; + fn rollback_transient_storage() -> Weight; + fn seal_set_transient_storage(n: u32, o: u32, ) -> Weight; + fn seal_clear_transient_storage(n: u32, ) -> Weight; + fn seal_get_transient_storage(n: u32, ) -> Weight; + fn seal_contains_transient_storage(n: u32, ) -> Weight; + fn seal_take_transient_storage(n: u32, ) -> Weight; fn seal_transfer() -> Weight; fn seal_call(t: u32, i: u32, ) -> Weight; fn seal_delegate_call() -> Weight; @@ -127,8 +137,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 1_896_000 picoseconds. - Weight::from_parts(1_990_000, 1627) + // Minimum execution time: 1_921_000 picoseconds. + Weight::from_parts(2_003_000, 1627) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -138,10 +148,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `452 + k * (69 ±0)` // Estimated: `442 + k * (70 ±0)` - // Minimum execution time: 11_142_000 picoseconds. - Weight::from_parts(11_578_000, 442) - // Standard Error: 1_557 - .saturating_add(Weight::from_parts(1_165_198, 0).saturating_mul(k.into())) + // Minimum execution time: 11_364_000 picoseconds. + Weight::from_parts(11_463_000, 442) + // Standard Error: 2_141 + .saturating_add(Weight::from_parts(1_149_944, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(T::DbWeight::get().writes(2_u64)) @@ -155,10 +165,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `211 + c * (1 ±0)` // Estimated: `6149 + c * (1 ±0)` - // Minimum execution time: 7_649_000 picoseconds. - Weight::from_parts(4_827_445, 6149) + // Minimum execution time: 7_565_000 picoseconds. + Weight::from_parts(5_041_009, 6149) // Standard Error: 5 - .saturating_add(Weight::from_parts(1_630, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_640, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -171,8 +181,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `510` // Estimated: `6450` - // Minimum execution time: 16_096_000 picoseconds. - Weight::from_parts(16_937_000, 6450) + // Minimum execution time: 15_894_000 picoseconds. + Weight::from_parts(16_618_000, 6450) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -185,10 +195,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `171 + k * (1 ±0)` // Estimated: `3635 + k * (1 ±0)` - // Minimum execution time: 3_131_000 picoseconds. - Weight::from_parts(3_209_000, 3635) - // Standard Error: 481 - .saturating_add(Weight::from_parts(1_087_506, 0).saturating_mul(k.into())) + // Minimum execution time: 3_077_000 picoseconds. + Weight::from_parts(3_144_000, 3635) + // Standard Error: 650 + .saturating_add(Weight::from_parts(1_095_835, 0).saturating_mul(k.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -207,10 +217,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `325 + c * (1 ±0)` // Estimated: `6263 + c * (1 ±0)` - // Minimum execution time: 15_289_000 picoseconds. - Weight::from_parts(16_157_168, 6263) + // Minimum execution time: 14_960_000 picoseconds. + Weight::from_parts(15_778_951, 6263) // Standard Error: 1 - .saturating_add(Weight::from_parts(395, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(443, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -221,8 +231,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `440` // Estimated: `6380` - // Minimum execution time: 12_312_000 picoseconds. - Weight::from_parts(12_650_000, 6380) + // Minimum execution time: 11_849_000 picoseconds. + Weight::from_parts(12_273_000, 6380) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -236,8 +246,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `352` // Estimated: `6292` - // Minimum execution time: 47_239_000 picoseconds. - Weight::from_parts(48_617_000, 6292) + // Minimum execution time: 47_862_000 picoseconds. + Weight::from_parts(48_879_000, 6292) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -249,8 +259,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `594` // Estimated: `6534` - // Minimum execution time: 52_084_000 picoseconds. - Weight::from_parts(53_838_000, 6534) + // Minimum execution time: 50_754_000 picoseconds. + Weight::from_parts(52_720_000, 6534) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -260,8 +270,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `409` // Estimated: `6349` - // Minimum execution time: 11_785_000 picoseconds. - Weight::from_parts(12_284_000, 6349) + // Minimum execution time: 11_459_000 picoseconds. + Weight::from_parts(11_921_000, 6349) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -271,8 +281,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 2_136_000 picoseconds. - Weight::from_parts(2_233_000, 1627) + // Minimum execution time: 2_135_000 picoseconds. + Weight::from_parts(2_247_000, 1627) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -284,8 +294,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `166` // Estimated: `3631` - // Minimum execution time: 10_957_000 picoseconds. - Weight::from_parts(11_314_000, 3631) + // Minimum execution time: 10_645_000 picoseconds. + Weight::from_parts(11_107_000, 3631) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -295,8 +305,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 4_354_000 picoseconds. - Weight::from_parts(4_613_000, 3607) + // Minimum execution time: 4_353_000 picoseconds. + Weight::from_parts(4_628_000, 3607) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0) @@ -307,8 +317,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `167` // Estimated: `3632` - // Minimum execution time: 5_541_000 picoseconds. - Weight::from_parts(5_790_000, 3632) + // Minimum execution time: 5_432_000 picoseconds. + Weight::from_parts(5_624_000, 3632) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0) @@ -319,8 +329,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 5_502_000 picoseconds. - Weight::from_parts(5_701_000, 3607) + // Minimum execution time: 5_371_000 picoseconds. + Weight::from_parts(5_794_000, 3607) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -339,12 +349,12 @@ impl WeightInfo for SubstrateWeight { /// The range of component `c` is `[0, 125952]`. fn call_with_code_per_byte(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `801 + c * (1 ±0)` - // Estimated: `4264 + c * (1 ±0)` - // Minimum execution time: 247_884_000 picoseconds. - Weight::from_parts(265_795_781, 4264) + // Measured: `800 + c * (1 ±0)` + // Estimated: `4266 + c * (1 ±0)` + // Minimum execution time: 247_157_000 picoseconds. + Weight::from_parts(269_252_698, 4266) // Standard Error: 4 - .saturating_add(Weight::from_parts(724, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(729, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -372,14 +382,14 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `323` // Estimated: `6262` - // Minimum execution time: 4_500_184_000 picoseconds. - Weight::from_parts(160_729_258, 6262) - // Standard Error: 143 - .saturating_add(Weight::from_parts(52_809, 0).saturating_mul(c.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(2_173, 0).saturating_mul(i.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(2_165, 0).saturating_mul(s.into())) + // Minimum execution time: 4_575_784_000 picoseconds. + Weight::from_parts(207_379_459, 6262) + // Standard Error: 124 + .saturating_add(Weight::from_parts(52_392, 0).saturating_mul(c.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(2_257, 0).saturating_mul(i.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(2_263, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(7_u64)) } @@ -404,13 +414,13 @@ impl WeightInfo for SubstrateWeight { fn instantiate(i: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `560` - // Estimated: `4029` - // Minimum execution time: 2_219_163_000 picoseconds. - Weight::from_parts(2_236_918_000, 4029) - // Standard Error: 32 - .saturating_add(Weight::from_parts(937, 0).saturating_mul(i.into())) - // Standard Error: 32 - .saturating_add(Weight::from_parts(938, 0).saturating_mul(s.into())) + // Estimated: `4017` + // Minimum execution time: 2_306_770_000 picoseconds. + Weight::from_parts(2_462_908_000, 4017) + // Standard Error: 33 + .saturating_add(Weight::from_parts(898, 0).saturating_mul(i.into())) + // Standard Error: 33 + .saturating_add(Weight::from_parts(859, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(8_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -430,8 +440,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `826` // Estimated: `4291` - // Minimum execution time: 164_801_000 picoseconds. - Weight::from_parts(167_250_000, 4291) + // Minimum execution time: 165_499_000 picoseconds. + Weight::from_parts(169_903_000, 4291) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } @@ -448,10 +458,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 225_207_000 picoseconds. - Weight::from_parts(263_665_658, 3607) - // Standard Error: 47 - .saturating_add(Weight::from_parts(50_732, 0).saturating_mul(c.into())) + // Minimum execution time: 227_590_000 picoseconds. + Weight::from_parts(260_045_588, 3607) + // Standard Error: 52 + .saturating_add(Weight::from_parts(51_305, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -468,10 +478,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 230_718_000 picoseconds. - Weight::from_parts(258_359_271, 3607) - // Standard Error: 47 - .saturating_add(Weight::from_parts(51_014, 0).saturating_mul(c.into())) + // Minimum execution time: 239_634_000 picoseconds. + Weight::from_parts(262_040_831, 3607) + // Standard Error: 103 + .saturating_add(Weight::from_parts(51_590, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -487,8 +497,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `315` // Estimated: `3780` - // Minimum execution time: 39_668_000 picoseconds. - Weight::from_parts(41_031_000, 3780) + // Minimum execution time: 39_152_000 picoseconds. + Weight::from_parts(39_970_000, 3780) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -502,8 +512,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `552` // Estimated: `6492` - // Minimum execution time: 25_890_000 picoseconds. - Weight::from_parts(26_603_000, 6492) + // Minimum execution time: 25_143_000 picoseconds. + Weight::from_parts(26_103_000, 6492) .saturating_add(T::DbWeight::get().reads(4_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -512,17 +522,17 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_269_000 picoseconds. - Weight::from_parts(9_227_069, 0) - // Standard Error: 74 - .saturating_add(Weight::from_parts(51_396, 0).saturating_mul(r.into())) + // Minimum execution time: 8_406_000 picoseconds. + Weight::from_parts(9_056_753, 0) + // Standard Error: 98 + .saturating_add(Weight::from_parts(53_110, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 602_000 picoseconds. - Weight::from_parts(664_000, 0) + // Minimum execution time: 659_000 picoseconds. + Weight::from_parts(705_000, 0) } /// Storage: `Contracts::ContractInfoOf` (r:1 w:0) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) @@ -530,8 +540,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `354` // Estimated: `3819` - // Minimum execution time: 6_131_000 picoseconds. - Weight::from_parts(6_468_000, 3819) + // Minimum execution time: 6_165_000 picoseconds. + Weight::from_parts(6_340_000, 3819) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `Contracts::ContractInfoOf` (r:1 w:0) @@ -540,79 +550,79 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `447` // Estimated: `3912` - // Minimum execution time: 7_557_000 picoseconds. - Weight::from_parts(7_704_000, 3912) + // Minimum execution time: 7_398_000 picoseconds. + Weight::from_parts(7_661_000, 3912) .saturating_add(T::DbWeight::get().reads(1_u64)) } fn seal_own_code_hash() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 783_000 picoseconds. - Weight::from_parts(848_000, 0) + // Minimum execution time: 723_000 picoseconds. + Weight::from_parts(793_000, 0) } fn seal_caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 397_000 picoseconds. - Weight::from_parts(435_000, 0) + // Minimum execution time: 398_000 picoseconds. + Weight::from_parts(428_000, 0) } fn seal_caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 351_000 picoseconds. - Weight::from_parts(372_000, 0) + // Minimum execution time: 329_000 picoseconds. + Weight::from_parts(364_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 608_000 picoseconds. - Weight::from_parts(645_000, 0) + // Minimum execution time: 592_000 picoseconds. + Weight::from_parts(624_000, 0) } fn seal_gas_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 661_000 picoseconds. - Weight::from_parts(729_000, 0) + // Minimum execution time: 665_000 picoseconds. + Weight::from_parts(714_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `0` - // Minimum execution time: 4_545_000 picoseconds. - Weight::from_parts(4_663_000, 0) + // Minimum execution time: 4_486_000 picoseconds. + Weight::from_parts(4_668_000, 0) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 614_000 picoseconds. - Weight::from_parts(641_000, 0) + // Minimum execution time: 548_000 picoseconds. + Weight::from_parts(590_000, 0) } fn seal_minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 583_000 picoseconds. - Weight::from_parts(618_000, 0) + // Minimum execution time: 536_000 picoseconds. + Weight::from_parts(578_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 583_000 picoseconds. - Weight::from_parts(617_000, 0) + // Minimum execution time: 552_000 picoseconds. + Weight::from_parts(599_000, 0) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 607_000 picoseconds. - Weight::from_parts(638_000, 0) + // Minimum execution time: 556_000 picoseconds. + Weight::from_parts(600_000, 0) } /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) @@ -620,8 +630,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `67` // Estimated: `1552` - // Minimum execution time: 4_172_000 picoseconds. - Weight::from_parts(4_408_000, 1552) + // Minimum execution time: 4_084_000 picoseconds. + Weight::from_parts(4_321_000, 1552) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// The range of component `n` is `[0, 1048572]`. @@ -629,20 +639,20 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 475_000 picoseconds. - Weight::from_parts(515_000, 0) + // Minimum execution time: 468_000 picoseconds. + Weight::from_parts(492_000, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(298, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(310, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048572]`. fn seal_return(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 289_000 picoseconds. - Weight::from_parts(357_000, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(405, 0).saturating_mul(n.into())) + // Minimum execution time: 377_000 picoseconds. + Weight::from_parts(396_000, 0) + // Standard Error: 9 + .saturating_add(Weight::from_parts(431, 0).saturating_mul(n.into())) } /// Storage: `Contracts::DeletionQueueCounter` (r:1 w:1) /// Proof: `Contracts::DeletionQueueCounter` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) @@ -655,10 +665,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `319 + n * (78 ±0)` // Estimated: `3784 + n * (2553 ±0)` - // Minimum execution time: 13_316_000 picoseconds. - Weight::from_parts(15_855_821, 3784) - // Standard Error: 7_274 - .saturating_add(Weight::from_parts(3_447_246, 0).saturating_mul(n.into())) + // Minimum execution time: 13_028_000 picoseconds. + Weight::from_parts(15_330_917, 3784) + // Standard Error: 8_260 + .saturating_add(Weight::from_parts(3_594_893, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes(3_u64)) @@ -671,8 +681,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `76` // Estimated: `1561` - // Minimum execution time: 3_468_000 picoseconds. - Weight::from_parts(3_608_000, 1561) + // Minimum execution time: 3_367_000 picoseconds. + Weight::from_parts(3_555_000, 1561) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// Storage: `System::EventTopics` (r:4 w:4) @@ -683,12 +693,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `990 + t * (2475 ±0)` - // Minimum execution time: 3_777_000 picoseconds. - Weight::from_parts(4_028_191, 990) - // Standard Error: 5_907 - .saturating_add(Weight::from_parts(2_183_733, 0).saturating_mul(t.into())) + // Minimum execution time: 3_779_000 picoseconds. + Weight::from_parts(4_003_836, 990) + // Standard Error: 5_409 + .saturating_add(Weight::from_parts(2_082_176, 0).saturating_mul(t.into())) // Standard Error: 1 - .saturating_add(Weight::from_parts(18, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(14, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(t.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(t.into())) @@ -698,10 +708,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 400_000 picoseconds. - Weight::from_parts(423_000, 0) + // Minimum execution time: 409_000 picoseconds. + Weight::from_parts(447_000, 0) // Standard Error: 10 - .saturating_add(Weight::from_parts(1_209, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_219, 0).saturating_mul(i.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -711,12 +721,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `250 + o * (1 ±0)` // Estimated: `249 + o * (1 ±0)` - // Minimum execution time: 9_033_000 picoseconds. - Weight::from_parts(8_797_934, 249) + // Minimum execution time: 9_176_000 picoseconds. + Weight::from_parts(9_121_191, 249) // Standard Error: 1 - .saturating_add(Weight::from_parts(257, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(292, 0).saturating_mul(n.into())) // Standard Error: 1 - .saturating_add(Weight::from_parts(51, 0).saturating_mul(o.into())) + .saturating_add(Weight::from_parts(31, 0).saturating_mul(o.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -728,10 +738,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `248 + n * (1 ±0)` - // Minimum execution time: 7_167_000 picoseconds. - Weight::from_parts(8_012_194, 248) + // Minimum execution time: 7_294_000 picoseconds. + Weight::from_parts(7_963_151, 248) // Standard Error: 1 - .saturating_add(Weight::from_parts(90, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(92, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -743,10 +753,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `248 + n * (1 ±0)` - // Minimum execution time: 6_868_000 picoseconds. - Weight::from_parts(7_801_811, 248) + // Minimum execution time: 6_978_000 picoseconds. + Weight::from_parts(7_741_355, 248) // Standard Error: 1 - .saturating_add(Weight::from_parts(605, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(654, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -757,10 +767,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `248 + n * (1 ±0)` - // Minimum execution time: 6_322_000 picoseconds. - Weight::from_parts(7_103_552, 248) + // Minimum execution time: 6_286_000 picoseconds. + Weight::from_parts(7_026_923, 248) // Standard Error: 1 - .saturating_add(Weight::from_parts(79, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(86, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -771,20 +781,106 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `248 + n * (1 ±0)` - // Minimum execution time: 7_702_000 picoseconds. - Weight::from_parts(8_746_305, 248) - // Standard Error: 2 - .saturating_add(Weight::from_parts(604, 0).saturating_mul(n.into())) + // Minimum execution time: 7_597_000 picoseconds. + Weight::from_parts(8_706_785, 248) + // Standard Error: 1 + .saturating_add(Weight::from_parts(653, 0).saturating_mul(n.into())) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } + fn set_transient_storage_empty() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_497_000 picoseconds. + Weight::from_parts(1_564_000, 0) + } + fn set_transient_storage_full() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_670_000 picoseconds. + Weight::from_parts(2_807_000, 0) + } + fn get_transient_storage_empty() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_836_000 picoseconds. + Weight::from_parts(3_878_000, 0) + } + fn get_transient_storage_full() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_537_000 picoseconds. + Weight::from_parts(4_665_000, 0) + } + fn rollback_transient_storage() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_592_000 picoseconds. + Weight::from_parts(1_742_000, 0) + } + /// The range of component `n` is `[0, 16384]`. + /// The range of component `o` is `[0, 16384]`. + fn seal_set_transient_storage(n: u32, o: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_101_000 picoseconds. + Weight::from_parts(2_481_218, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(242, 0).saturating_mul(n.into())) + // Standard Error: 0 + .saturating_add(Weight::from_parts(300, 0).saturating_mul(o.into())) + } + /// The range of component `n` is `[0, 16384]`. + fn seal_clear_transient_storage(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_059_000 picoseconds. + Weight::from_parts(2_426_609, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(307, 0).saturating_mul(n.into())) + } + /// The range of component `n` is `[0, 16384]`. + fn seal_get_transient_storage(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_918_000 picoseconds. + Weight::from_parts(2_114_837, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(302, 0).saturating_mul(n.into())) + } + /// The range of component `n` is `[0, 16384]`. + fn seal_contains_transient_storage(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_759_000 picoseconds. + Weight::from_parts(1_959_995, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(147, 0).saturating_mul(n.into())) + } + /// The range of component `n` is `[0, 16384]`. + fn seal_take_transient_storage(_n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_759_000 picoseconds. + Weight::from_parts(9_952_099, 0) + } fn seal_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `0` - // Minimum execution time: 8_851_000 picoseconds. - Weight::from_parts(9_083_000, 0) + // Minimum execution time: 8_700_000 picoseconds. + Weight::from_parts(8_903_000, 0) } /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) @@ -800,12 +896,12 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `620 + t * (280 ±0)` // Estimated: `4085 + t * (2182 ±0)` - // Minimum execution time: 121_148_000 picoseconds. - Weight::from_parts(119_605_377, 4085) - // Standard Error: 208_337 - .saturating_add(Weight::from_parts(43_153_338, 0).saturating_mul(t.into())) + // Minimum execution time: 123_399_000 picoseconds. + Weight::from_parts(120_909_821, 4085) + // Standard Error: 166_830 + .saturating_add(Weight::from_parts(43_853_642, 0).saturating_mul(t.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(5, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(6, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(3_u64)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(T::DbWeight::get().writes(1_u64)) @@ -820,8 +916,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `430` // Estimated: `3895` - // Minimum execution time: 108_159_000 picoseconds. - Weight::from_parts(110_027_000, 3895) + // Minimum execution time: 112_350_000 picoseconds. + Weight::from_parts(116_003_000, 3895) .saturating_add(T::DbWeight::get().reads(2_u64)) } /// Storage: `Contracts::CodeInfoOf` (r:1 w:1) @@ -839,13 +935,13 @@ impl WeightInfo for SubstrateWeight { fn seal_instantiate(i: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `676` - // Estimated: `4127` - // Minimum execution time: 1_861_874_000 picoseconds. - Weight::from_parts(1_872_926_000, 4127) - // Standard Error: 23 - .saturating_add(Weight::from_parts(557, 0).saturating_mul(i.into())) - // Standard Error: 23 - .saturating_add(Weight::from_parts(920, 0).saturating_mul(s.into())) + // Estimated: `4132` + // Minimum execution time: 1_972_276_000 picoseconds. + Weight::from_parts(1_977_872_000, 4132) + // Standard Error: 24 + .saturating_add(Weight::from_parts(623, 0).saturating_mul(i.into())) + // Standard Error: 24 + .saturating_add(Weight::from_parts(917, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } @@ -854,64 +950,64 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 878_000 picoseconds. - Weight::from_parts(10_993_950, 0) + // Minimum execution time: 899_000 picoseconds. + Weight::from_parts(10_963_972, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_325, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_355, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_261_000 picoseconds. - Weight::from_parts(9_759_497, 0) + // Minimum execution time: 1_396_000 picoseconds. + Weight::from_parts(9_404_986, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(3_594, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_627, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 726_000 picoseconds. - Weight::from_parts(9_795_728, 0) + // Minimum execution time: 834_000 picoseconds. + Weight::from_parts(9_749_716, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_455, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_500, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 739_000 picoseconds. - Weight::from_parts(9_701_202, 0) + // Minimum execution time: 756_000 picoseconds. + Weight::from_parts(8_995_036, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_459, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_495, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 125697]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 43_309_000 picoseconds. - Weight::from_parts(41_405_949, 0) + // Minimum execution time: 45_800_000 picoseconds. + Weight::from_parts(44_676_829, 0) // Standard Error: 8 - .saturating_add(Weight::from_parts(5_336, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(5_315, 0).saturating_mul(n.into())) } fn seal_ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 47_880_000 picoseconds. - Weight::from_parts(49_025_000, 0) + // Minimum execution time: 47_415_000 picoseconds. + Weight::from_parts(48_743_000, 0) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_462_000 picoseconds. - Weight::from_parts(13_631_000, 0) + // Minimum execution time: 13_437_000 picoseconds. + Weight::from_parts(13_588_000, 0) } /// Storage: `Contracts::CodeInfoOf` (r:1 w:1) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) @@ -921,8 +1017,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `430` // Estimated: `3895` - // Minimum execution time: 17_978_000 picoseconds. - Weight::from_parts(18_578_000, 3895) + // Minimum execution time: 17_775_000 picoseconds. + Weight::from_parts(18_332_000, 3895) .saturating_add(T::DbWeight::get().reads(2_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -932,8 +1028,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `355` // Estimated: `3820` - // Minimum execution time: 8_384_000 picoseconds. - Weight::from_parts(8_687_000, 3820) + // Minimum execution time: 8_326_000 picoseconds. + Weight::from_parts(8_656_000, 3820) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -943,8 +1039,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `355` // Estimated: `3558` - // Minimum execution time: 7_547_000 picoseconds. - Weight::from_parts(7_935_000, 3558) + // Minimum execution time: 7_276_000 picoseconds. + Weight::from_parts(7_630_000, 3558) .saturating_add(T::DbWeight::get().reads(1_u64)) .saturating_add(T::DbWeight::get().writes(1_u64)) } @@ -952,15 +1048,15 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 331_000 picoseconds. - Weight::from_parts(363_000, 0) + // Minimum execution time: 330_000 picoseconds. + Weight::from_parts(373_000, 0) } fn seal_account_reentrance_count() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 349_000 picoseconds. - Weight::from_parts(365_000, 0) + // Minimum execution time: 381_000 picoseconds. + Weight::from_parts(418_000, 0) } /// Storage: `Contracts::Nonce` (r:1 w:0) /// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) @@ -968,8 +1064,8 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `219` // Estimated: `1704` - // Minimum execution time: 2_814_000 picoseconds. - Weight::from_parts(3_038_000, 1704) + // Minimum execution time: 2_711_000 picoseconds. + Weight::from_parts(2_941_000, 1704) .saturating_add(T::DbWeight::get().reads(1_u64)) } /// The range of component `r` is `[0, 5000]`. @@ -977,10 +1073,10 @@ impl WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 693_000 picoseconds. - Weight::from_parts(665_431, 0) - // Standard Error: 12 - .saturating_add(Weight::from_parts(7_030, 0).saturating_mul(r.into())) + // Minimum execution time: 720_000 picoseconds. + Weight::from_parts(389_111, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(7_278, 0).saturating_mul(r.into())) } } @@ -992,8 +1088,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 1_896_000 picoseconds. - Weight::from_parts(1_990_000, 1627) + // Minimum execution time: 1_921_000 picoseconds. + Weight::from_parts(2_003_000, 1627) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Skipped::Metadata` (r:0 w:0) @@ -1003,10 +1099,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `452 + k * (69 ±0)` // Estimated: `442 + k * (70 ±0)` - // Minimum execution time: 11_142_000 picoseconds. - Weight::from_parts(11_578_000, 442) - // Standard Error: 1_557 - .saturating_add(Weight::from_parts(1_165_198, 0).saturating_mul(k.into())) + // Minimum execution time: 11_364_000 picoseconds. + Weight::from_parts(11_463_000, 442) + // Standard Error: 2_141 + .saturating_add(Weight::from_parts(1_149_944, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(k.into()))) .saturating_add(RocksDbWeight::get().writes(2_u64)) @@ -1020,10 +1116,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `211 + c * (1 ±0)` // Estimated: `6149 + c * (1 ±0)` - // Minimum execution time: 7_649_000 picoseconds. - Weight::from_parts(4_827_445, 6149) + // Minimum execution time: 7_565_000 picoseconds. + Weight::from_parts(5_041_009, 6149) // Standard Error: 5 - .saturating_add(Weight::from_parts(1_630, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(1_640, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -1036,8 +1132,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `510` // Estimated: `6450` - // Minimum execution time: 16_096_000 picoseconds. - Weight::from_parts(16_937_000, 6450) + // Minimum execution time: 15_894_000 picoseconds. + Weight::from_parts(16_618_000, 6450) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1050,10 +1146,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `171 + k * (1 ±0)` // Estimated: `3635 + k * (1 ±0)` - // Minimum execution time: 3_131_000 picoseconds. - Weight::from_parts(3_209_000, 3635) - // Standard Error: 481 - .saturating_add(Weight::from_parts(1_087_506, 0).saturating_mul(k.into())) + // Minimum execution time: 3_077_000 picoseconds. + Weight::from_parts(3_144_000, 3635) + // Standard Error: 650 + .saturating_add(Weight::from_parts(1_095_835, 0).saturating_mul(k.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(k.into()))) @@ -1072,10 +1168,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `325 + c * (1 ±0)` // Estimated: `6263 + c * (1 ±0)` - // Minimum execution time: 15_289_000 picoseconds. - Weight::from_parts(16_157_168, 6263) + // Minimum execution time: 14_960_000 picoseconds. + Weight::from_parts(15_778_951, 6263) // Standard Error: 1 - .saturating_add(Weight::from_parts(395, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(443, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -1086,8 +1182,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `440` // Estimated: `6380` - // Minimum execution time: 12_312_000 picoseconds. - Weight::from_parts(12_650_000, 6380) + // Minimum execution time: 11_849_000 picoseconds. + Weight::from_parts(12_273_000, 6380) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1101,8 +1197,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `352` // Estimated: `6292` - // Minimum execution time: 47_239_000 picoseconds. - Weight::from_parts(48_617_000, 6292) + // Minimum execution time: 47_862_000 picoseconds. + Weight::from_parts(48_879_000, 6292) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1114,8 +1210,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `594` // Estimated: `6534` - // Minimum execution time: 52_084_000 picoseconds. - Weight::from_parts(53_838_000, 6534) + // Minimum execution time: 50_754_000 picoseconds. + Weight::from_parts(52_720_000, 6534) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1125,8 +1221,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `409` // Estimated: `6349` - // Minimum execution time: 11_785_000 picoseconds. - Weight::from_parts(12_284_000, 6349) + // Minimum execution time: 11_459_000 picoseconds. + Weight::from_parts(11_921_000, 6349) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1136,8 +1232,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `1627` - // Minimum execution time: 2_136_000 picoseconds. - Weight::from_parts(2_233_000, 1627) + // Minimum execution time: 2_135_000 picoseconds. + Weight::from_parts(2_247_000, 1627) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1149,8 +1245,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `166` // Estimated: `3631` - // Minimum execution time: 10_957_000 picoseconds. - Weight::from_parts(11_314_000, 3631) + // Minimum execution time: 10_645_000 picoseconds. + Weight::from_parts(11_107_000, 3631) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1160,8 +1256,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 4_354_000 picoseconds. - Weight::from_parts(4_613_000, 3607) + // Minimum execution time: 4_353_000 picoseconds. + Weight::from_parts(4_628_000, 3607) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0) @@ -1172,8 +1268,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `167` // Estimated: `3632` - // Minimum execution time: 5_541_000 picoseconds. - Weight::from_parts(5_790_000, 3632) + // Minimum execution time: 5_432_000 picoseconds. + Weight::from_parts(5_624_000, 3632) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// Storage: UNKNOWN KEY `0x4342193e496fab7ec59d615ed0dc55304e7b9012096b41c4eb3aaf947f6ea429` (r:1 w:0) @@ -1184,8 +1280,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 5_502_000 picoseconds. - Weight::from_parts(5_701_000, 3607) + // Minimum execution time: 5_371_000 picoseconds. + Weight::from_parts(5_794_000, 3607) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1204,12 +1300,12 @@ impl WeightInfo for () { /// The range of component `c` is `[0, 125952]`. fn call_with_code_per_byte(c: u32, ) -> Weight { // Proof Size summary in bytes: - // Measured: `801 + c * (1 ±0)` - // Estimated: `4264 + c * (1 ±0)` - // Minimum execution time: 247_884_000 picoseconds. - Weight::from_parts(265_795_781, 4264) + // Measured: `800 + c * (1 ±0)` + // Estimated: `4266 + c * (1 ±0)` + // Minimum execution time: 247_157_000 picoseconds. + Weight::from_parts(269_252_698, 4266) // Standard Error: 4 - .saturating_add(Weight::from_parts(724, 0).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(729, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(c.into())) @@ -1237,14 +1333,14 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `323` // Estimated: `6262` - // Minimum execution time: 4_500_184_000 picoseconds. - Weight::from_parts(160_729_258, 6262) - // Standard Error: 143 - .saturating_add(Weight::from_parts(52_809, 0).saturating_mul(c.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(2_173, 0).saturating_mul(i.into())) - // Standard Error: 17 - .saturating_add(Weight::from_parts(2_165, 0).saturating_mul(s.into())) + // Minimum execution time: 4_575_784_000 picoseconds. + Weight::from_parts(207_379_459, 6262) + // Standard Error: 124 + .saturating_add(Weight::from_parts(52_392, 0).saturating_mul(c.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(2_257, 0).saturating_mul(i.into())) + // Standard Error: 15 + .saturating_add(Weight::from_parts(2_263, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(7_u64)) } @@ -1269,13 +1365,13 @@ impl WeightInfo for () { fn instantiate(i: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `560` - // Estimated: `4029` - // Minimum execution time: 2_219_163_000 picoseconds. - Weight::from_parts(2_236_918_000, 4029) - // Standard Error: 32 - .saturating_add(Weight::from_parts(937, 0).saturating_mul(i.into())) - // Standard Error: 32 - .saturating_add(Weight::from_parts(938, 0).saturating_mul(s.into())) + // Estimated: `4017` + // Minimum execution time: 2_306_770_000 picoseconds. + Weight::from_parts(2_462_908_000, 4017) + // Standard Error: 33 + .saturating_add(Weight::from_parts(898, 0).saturating_mul(i.into())) + // Standard Error: 33 + .saturating_add(Weight::from_parts(859, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(8_u64)) .saturating_add(RocksDbWeight::get().writes(5_u64)) } @@ -1295,8 +1391,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `826` // Estimated: `4291` - // Minimum execution time: 164_801_000 picoseconds. - Weight::from_parts(167_250_000, 4291) + // Minimum execution time: 165_499_000 picoseconds. + Weight::from_parts(169_903_000, 4291) .saturating_add(RocksDbWeight::get().reads(6_u64)) .saturating_add(RocksDbWeight::get().writes(2_u64)) } @@ -1313,10 +1409,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 225_207_000 picoseconds. - Weight::from_parts(263_665_658, 3607) - // Standard Error: 47 - .saturating_add(Weight::from_parts(50_732, 0).saturating_mul(c.into())) + // Minimum execution time: 227_590_000 picoseconds. + Weight::from_parts(260_045_588, 3607) + // Standard Error: 52 + .saturating_add(Weight::from_parts(51_305, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1333,10 +1429,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `142` // Estimated: `3607` - // Minimum execution time: 230_718_000 picoseconds. - Weight::from_parts(258_359_271, 3607) - // Standard Error: 47 - .saturating_add(Weight::from_parts(51_014, 0).saturating_mul(c.into())) + // Minimum execution time: 239_634_000 picoseconds. + Weight::from_parts(262_040_831, 3607) + // Standard Error: 103 + .saturating_add(Weight::from_parts(51_590, 0).saturating_mul(c.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1352,8 +1448,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `315` // Estimated: `3780` - // Minimum execution time: 39_668_000 picoseconds. - Weight::from_parts(41_031_000, 3780) + // Minimum execution time: 39_152_000 picoseconds. + Weight::from_parts(39_970_000, 3780) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1367,8 +1463,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `552` // Estimated: `6492` - // Minimum execution time: 25_890_000 picoseconds. - Weight::from_parts(26_603_000, 6492) + // Minimum execution time: 25_143_000 picoseconds. + Weight::from_parts(26_103_000, 6492) .saturating_add(RocksDbWeight::get().reads(4_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1377,17 +1473,17 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 8_269_000 picoseconds. - Weight::from_parts(9_227_069, 0) - // Standard Error: 74 - .saturating_add(Weight::from_parts(51_396, 0).saturating_mul(r.into())) + // Minimum execution time: 8_406_000 picoseconds. + Weight::from_parts(9_056_753, 0) + // Standard Error: 98 + .saturating_add(Weight::from_parts(53_110, 0).saturating_mul(r.into())) } fn seal_caller() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 602_000 picoseconds. - Weight::from_parts(664_000, 0) + // Minimum execution time: 659_000 picoseconds. + Weight::from_parts(705_000, 0) } /// Storage: `Contracts::ContractInfoOf` (r:1 w:0) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) @@ -1395,8 +1491,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `354` // Estimated: `3819` - // Minimum execution time: 6_131_000 picoseconds. - Weight::from_parts(6_468_000, 3819) + // Minimum execution time: 6_165_000 picoseconds. + Weight::from_parts(6_340_000, 3819) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `Contracts::ContractInfoOf` (r:1 w:0) @@ -1405,79 +1501,79 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `447` // Estimated: `3912` - // Minimum execution time: 7_557_000 picoseconds. - Weight::from_parts(7_704_000, 3912) + // Minimum execution time: 7_398_000 picoseconds. + Weight::from_parts(7_661_000, 3912) .saturating_add(RocksDbWeight::get().reads(1_u64)) } fn seal_own_code_hash() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 783_000 picoseconds. - Weight::from_parts(848_000, 0) + // Minimum execution time: 723_000 picoseconds. + Weight::from_parts(793_000, 0) } fn seal_caller_is_origin() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 397_000 picoseconds. - Weight::from_parts(435_000, 0) + // Minimum execution time: 398_000 picoseconds. + Weight::from_parts(428_000, 0) } fn seal_caller_is_root() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 351_000 picoseconds. - Weight::from_parts(372_000, 0) + // Minimum execution time: 329_000 picoseconds. + Weight::from_parts(364_000, 0) } fn seal_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 608_000 picoseconds. - Weight::from_parts(645_000, 0) + // Minimum execution time: 592_000 picoseconds. + Weight::from_parts(624_000, 0) } fn seal_gas_left() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 661_000 picoseconds. - Weight::from_parts(729_000, 0) + // Minimum execution time: 665_000 picoseconds. + Weight::from_parts(714_000, 0) } fn seal_balance() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `0` - // Minimum execution time: 4_545_000 picoseconds. - Weight::from_parts(4_663_000, 0) + // Minimum execution time: 4_486_000 picoseconds. + Weight::from_parts(4_668_000, 0) } fn seal_value_transferred() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 614_000 picoseconds. - Weight::from_parts(641_000, 0) + // Minimum execution time: 548_000 picoseconds. + Weight::from_parts(590_000, 0) } fn seal_minimum_balance() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 583_000 picoseconds. - Weight::from_parts(618_000, 0) + // Minimum execution time: 536_000 picoseconds. + Weight::from_parts(578_000, 0) } fn seal_block_number() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 583_000 picoseconds. - Weight::from_parts(617_000, 0) + // Minimum execution time: 552_000 picoseconds. + Weight::from_parts(599_000, 0) } fn seal_now() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 607_000 picoseconds. - Weight::from_parts(638_000, 0) + // Minimum execution time: 556_000 picoseconds. + Weight::from_parts(600_000, 0) } /// Storage: `TransactionPayment::NextFeeMultiplier` (r:1 w:0) /// Proof: `TransactionPayment::NextFeeMultiplier` (`max_values`: Some(1), `max_size`: Some(16), added: 511, mode: `Measured`) @@ -1485,8 +1581,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `67` // Estimated: `1552` - // Minimum execution time: 4_172_000 picoseconds. - Weight::from_parts(4_408_000, 1552) + // Minimum execution time: 4_084_000 picoseconds. + Weight::from_parts(4_321_000, 1552) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// The range of component `n` is `[0, 1048572]`. @@ -1494,20 +1590,20 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 475_000 picoseconds. - Weight::from_parts(515_000, 0) + // Minimum execution time: 468_000 picoseconds. + Weight::from_parts(492_000, 0) // Standard Error: 3 - .saturating_add(Weight::from_parts(298, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(310, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048572]`. fn seal_return(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 289_000 picoseconds. - Weight::from_parts(357_000, 0) - // Standard Error: 10 - .saturating_add(Weight::from_parts(405, 0).saturating_mul(n.into())) + // Minimum execution time: 377_000 picoseconds. + Weight::from_parts(396_000, 0) + // Standard Error: 9 + .saturating_add(Weight::from_parts(431, 0).saturating_mul(n.into())) } /// Storage: `Contracts::DeletionQueueCounter` (r:1 w:1) /// Proof: `Contracts::DeletionQueueCounter` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) @@ -1520,10 +1616,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `319 + n * (78 ±0)` // Estimated: `3784 + n * (2553 ±0)` - // Minimum execution time: 13_316_000 picoseconds. - Weight::from_parts(15_855_821, 3784) - // Standard Error: 7_274 - .saturating_add(Weight::from_parts(3_447_246, 0).saturating_mul(n.into())) + // Minimum execution time: 13_028_000 picoseconds. + Weight::from_parts(15_330_917, 3784) + // Standard Error: 8_260 + .saturating_add(Weight::from_parts(3_594_893, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(n.into()))) .saturating_add(RocksDbWeight::get().writes(3_u64)) @@ -1536,8 +1632,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `76` // Estimated: `1561` - // Minimum execution time: 3_468_000 picoseconds. - Weight::from_parts(3_608_000, 1561) + // Minimum execution time: 3_367_000 picoseconds. + Weight::from_parts(3_555_000, 1561) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// Storage: `System::EventTopics` (r:4 w:4) @@ -1548,12 +1644,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `990 + t * (2475 ±0)` - // Minimum execution time: 3_777_000 picoseconds. - Weight::from_parts(4_028_191, 990) - // Standard Error: 5_907 - .saturating_add(Weight::from_parts(2_183_733, 0).saturating_mul(t.into())) + // Minimum execution time: 3_779_000 picoseconds. + Weight::from_parts(4_003_836, 990) + // Standard Error: 5_409 + .saturating_add(Weight::from_parts(2_082_176, 0).saturating_mul(t.into())) // Standard Error: 1 - .saturating_add(Weight::from_parts(18, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(14, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes((1_u64).saturating_mul(t.into()))) .saturating_add(Weight::from_parts(0, 2475).saturating_mul(t.into())) @@ -1563,10 +1659,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 400_000 picoseconds. - Weight::from_parts(423_000, 0) + // Minimum execution time: 409_000 picoseconds. + Weight::from_parts(447_000, 0) // Standard Error: 10 - .saturating_add(Weight::from_parts(1_209, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(1_219, 0).saturating_mul(i.into())) } /// Storage: `Skipped::Metadata` (r:0 w:0) /// Proof: `Skipped::Metadata` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -1576,12 +1672,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `250 + o * (1 ±0)` // Estimated: `249 + o * (1 ±0)` - // Minimum execution time: 9_033_000 picoseconds. - Weight::from_parts(8_797_934, 249) + // Minimum execution time: 9_176_000 picoseconds. + Weight::from_parts(9_121_191, 249) // Standard Error: 1 - .saturating_add(Weight::from_parts(257, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(292, 0).saturating_mul(n.into())) // Standard Error: 1 - .saturating_add(Weight::from_parts(51, 0).saturating_mul(o.into())) + .saturating_add(Weight::from_parts(31, 0).saturating_mul(o.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(o.into())) @@ -1593,10 +1689,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `248 + n * (1 ±0)` - // Minimum execution time: 7_167_000 picoseconds. - Weight::from_parts(8_012_194, 248) + // Minimum execution time: 7_294_000 picoseconds. + Weight::from_parts(7_963_151, 248) // Standard Error: 1 - .saturating_add(Weight::from_parts(90, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(92, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) @@ -1608,10 +1704,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `248 + n * (1 ±0)` - // Minimum execution time: 6_868_000 picoseconds. - Weight::from_parts(7_801_811, 248) + // Minimum execution time: 6_978_000 picoseconds. + Weight::from_parts(7_741_355, 248) // Standard Error: 1 - .saturating_add(Weight::from_parts(605, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(654, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1622,10 +1718,10 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `248 + n * (1 ±0)` - // Minimum execution time: 6_322_000 picoseconds. - Weight::from_parts(7_103_552, 248) + // Minimum execution time: 6_286_000 picoseconds. + Weight::from_parts(7_026_923, 248) // Standard Error: 1 - .saturating_add(Weight::from_parts(79, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(86, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } @@ -1636,20 +1732,106 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `248 + n * (1 ±0)` // Estimated: `248 + n * (1 ±0)` - // Minimum execution time: 7_702_000 picoseconds. - Weight::from_parts(8_746_305, 248) - // Standard Error: 2 - .saturating_add(Weight::from_parts(604, 0).saturating_mul(n.into())) + // Minimum execution time: 7_597_000 picoseconds. + Weight::from_parts(8_706_785, 248) + // Standard Error: 1 + .saturating_add(Weight::from_parts(653, 0).saturating_mul(n.into())) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) .saturating_add(Weight::from_parts(0, 1).saturating_mul(n.into())) } + fn set_transient_storage_empty() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_497_000 picoseconds. + Weight::from_parts(1_564_000, 0) + } + fn set_transient_storage_full() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_670_000 picoseconds. + Weight::from_parts(2_807_000, 0) + } + fn get_transient_storage_empty() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_836_000 picoseconds. + Weight::from_parts(3_878_000, 0) + } + fn get_transient_storage_full() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_537_000 picoseconds. + Weight::from_parts(4_665_000, 0) + } + fn rollback_transient_storage() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_592_000 picoseconds. + Weight::from_parts(1_742_000, 0) + } + /// The range of component `n` is `[0, 16384]`. + /// The range of component `o` is `[0, 16384]`. + fn seal_set_transient_storage(n: u32, o: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_101_000 picoseconds. + Weight::from_parts(2_481_218, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(242, 0).saturating_mul(n.into())) + // Standard Error: 0 + .saturating_add(Weight::from_parts(300, 0).saturating_mul(o.into())) + } + /// The range of component `n` is `[0, 16384]`. + fn seal_clear_transient_storage(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_059_000 picoseconds. + Weight::from_parts(2_426_609, 0) + // Standard Error: 2 + .saturating_add(Weight::from_parts(307, 0).saturating_mul(n.into())) + } + /// The range of component `n` is `[0, 16384]`. + fn seal_get_transient_storage(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_918_000 picoseconds. + Weight::from_parts(2_114_837, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(302, 0).saturating_mul(n.into())) + } + /// The range of component `n` is `[0, 16384]`. + fn seal_contains_transient_storage(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 1_759_000 picoseconds. + Weight::from_parts(1_959_995, 0) + // Standard Error: 0 + .saturating_add(Weight::from_parts(147, 0).saturating_mul(n.into())) + } + /// The range of component `n` is `[0, 16384]`. + fn seal_take_transient_storage(_n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_759_000 picoseconds. + Weight::from_parts(9_952_099, 0) + } fn seal_transfer() -> Weight { // Proof Size summary in bytes: // Measured: `140` // Estimated: `0` - // Minimum execution time: 8_851_000 picoseconds. - Weight::from_parts(9_083_000, 0) + // Minimum execution time: 8_700_000 picoseconds. + Weight::from_parts(8_903_000, 0) } /// Storage: `Contracts::ContractInfoOf` (r:1 w:1) /// Proof: `Contracts::ContractInfoOf` (`max_values`: None, `max_size`: Some(1795), added: 4270, mode: `Measured`) @@ -1665,12 +1847,12 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `620 + t * (280 ±0)` // Estimated: `4085 + t * (2182 ±0)` - // Minimum execution time: 121_148_000 picoseconds. - Weight::from_parts(119_605_377, 4085) - // Standard Error: 208_337 - .saturating_add(Weight::from_parts(43_153_338, 0).saturating_mul(t.into())) + // Minimum execution time: 123_399_000 picoseconds. + Weight::from_parts(120_909_821, 4085) + // Standard Error: 166_830 + .saturating_add(Weight::from_parts(43_853_642, 0).saturating_mul(t.into())) // Standard Error: 0 - .saturating_add(Weight::from_parts(5, 0).saturating_mul(i.into())) + .saturating_add(Weight::from_parts(6, 0).saturating_mul(i.into())) .saturating_add(RocksDbWeight::get().reads(3_u64)) .saturating_add(RocksDbWeight::get().reads((1_u64).saturating_mul(t.into()))) .saturating_add(RocksDbWeight::get().writes(1_u64)) @@ -1685,8 +1867,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `430` // Estimated: `3895` - // Minimum execution time: 108_159_000 picoseconds. - Weight::from_parts(110_027_000, 3895) + // Minimum execution time: 112_350_000 picoseconds. + Weight::from_parts(116_003_000, 3895) .saturating_add(RocksDbWeight::get().reads(2_u64)) } /// Storage: `Contracts::CodeInfoOf` (r:1 w:1) @@ -1704,13 +1886,13 @@ impl WeightInfo for () { fn seal_instantiate(i: u32, s: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `676` - // Estimated: `4127` - // Minimum execution time: 1_861_874_000 picoseconds. - Weight::from_parts(1_872_926_000, 4127) - // Standard Error: 23 - .saturating_add(Weight::from_parts(557, 0).saturating_mul(i.into())) - // Standard Error: 23 - .saturating_add(Weight::from_parts(920, 0).saturating_mul(s.into())) + // Estimated: `4132` + // Minimum execution time: 1_972_276_000 picoseconds. + Weight::from_parts(1_977_872_000, 4132) + // Standard Error: 24 + .saturating_add(Weight::from_parts(623, 0).saturating_mul(i.into())) + // Standard Error: 24 + .saturating_add(Weight::from_parts(917, 0).saturating_mul(s.into())) .saturating_add(RocksDbWeight::get().reads(5_u64)) .saturating_add(RocksDbWeight::get().writes(3_u64)) } @@ -1719,64 +1901,64 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 878_000 picoseconds. - Weight::from_parts(10_993_950, 0) + // Minimum execution time: 899_000 picoseconds. + Weight::from_parts(10_963_972, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_325, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_355, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_keccak_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 1_261_000 picoseconds. - Weight::from_parts(9_759_497, 0) + // Minimum execution time: 1_396_000 picoseconds. + Weight::from_parts(9_404_986, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(3_594, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(3_627, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_blake2_256(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 726_000 picoseconds. - Weight::from_parts(9_795_728, 0) + // Minimum execution time: 834_000 picoseconds. + Weight::from_parts(9_749_716, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_455, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_500, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 1048576]`. fn seal_hash_blake2_128(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 739_000 picoseconds. - Weight::from_parts(9_701_202, 0) + // Minimum execution time: 756_000 picoseconds. + Weight::from_parts(8_995_036, 0) // Standard Error: 0 - .saturating_add(Weight::from_parts(1_459, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(1_495, 0).saturating_mul(n.into())) } /// The range of component `n` is `[0, 125697]`. fn seal_sr25519_verify(n: u32, ) -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 43_309_000 picoseconds. - Weight::from_parts(41_405_949, 0) + // Minimum execution time: 45_800_000 picoseconds. + Weight::from_parts(44_676_829, 0) // Standard Error: 8 - .saturating_add(Weight::from_parts(5_336, 0).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(5_315, 0).saturating_mul(n.into())) } fn seal_ecdsa_recover() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 47_880_000 picoseconds. - Weight::from_parts(49_025_000, 0) + // Minimum execution time: 47_415_000 picoseconds. + Weight::from_parts(48_743_000, 0) } fn seal_ecdsa_to_eth_address() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 13_462_000 picoseconds. - Weight::from_parts(13_631_000, 0) + // Minimum execution time: 13_437_000 picoseconds. + Weight::from_parts(13_588_000, 0) } /// Storage: `Contracts::CodeInfoOf` (r:1 w:1) /// Proof: `Contracts::CodeInfoOf` (`max_values`: None, `max_size`: Some(93), added: 2568, mode: `Measured`) @@ -1786,8 +1968,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `430` // Estimated: `3895` - // Minimum execution time: 17_978_000 picoseconds. - Weight::from_parts(18_578_000, 3895) + // Minimum execution time: 17_775_000 picoseconds. + Weight::from_parts(18_332_000, 3895) .saturating_add(RocksDbWeight::get().reads(2_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1797,8 +1979,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `355` // Estimated: `3820` - // Minimum execution time: 8_384_000 picoseconds. - Weight::from_parts(8_687_000, 3820) + // Minimum execution time: 8_326_000 picoseconds. + Weight::from_parts(8_656_000, 3820) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1808,8 +1990,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `355` // Estimated: `3558` - // Minimum execution time: 7_547_000 picoseconds. - Weight::from_parts(7_935_000, 3558) + // Minimum execution time: 7_276_000 picoseconds. + Weight::from_parts(7_630_000, 3558) .saturating_add(RocksDbWeight::get().reads(1_u64)) .saturating_add(RocksDbWeight::get().writes(1_u64)) } @@ -1817,15 +1999,15 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 331_000 picoseconds. - Weight::from_parts(363_000, 0) + // Minimum execution time: 330_000 picoseconds. + Weight::from_parts(373_000, 0) } fn seal_account_reentrance_count() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 349_000 picoseconds. - Weight::from_parts(365_000, 0) + // Minimum execution time: 381_000 picoseconds. + Weight::from_parts(418_000, 0) } /// Storage: `Contracts::Nonce` (r:1 w:0) /// Proof: `Contracts::Nonce` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `Measured`) @@ -1833,8 +2015,8 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `219` // Estimated: `1704` - // Minimum execution time: 2_814_000 picoseconds. - Weight::from_parts(3_038_000, 1704) + // Minimum execution time: 2_711_000 picoseconds. + Weight::from_parts(2_941_000, 1704) .saturating_add(RocksDbWeight::get().reads(1_u64)) } /// The range of component `r` is `[0, 5000]`. @@ -1842,9 +2024,9 @@ impl WeightInfo for () { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 693_000 picoseconds. - Weight::from_parts(665_431, 0) - // Standard Error: 12 - .saturating_add(Weight::from_parts(7_030, 0).saturating_mul(r.into())) + // Minimum execution time: 720_000 picoseconds. + Weight::from_parts(389_111, 0) + // Standard Error: 16 + .saturating_add(Weight::from_parts(7_278, 0).saturating_mul(r.into())) } } diff --git a/substrate/frame/contracts/uapi/src/host.rs b/substrate/frame/contracts/uapi/src/host.rs index 92065eda5d6..51f0cd7eb2d 100644 --- a/substrate/frame/contracts/uapi/src/host.rs +++ b/substrate/frame/contracts/uapi/src/host.rs @@ -67,7 +67,7 @@ fn ptr_or_sentinel(data: &Option<&[u8]>) -> *const u8 { pub enum HostFnImpl {} /// Defines all the host apis implemented by both wasm and RISC-V vms. -pub trait HostFn { +pub trait HostFn: private::Sealed { /// Returns the number of times specified contract exists on the call stack. Delegated calls are /// not counted as separate calls. /// @@ -292,6 +292,20 @@ pub trait HostFn { /// Returns the size of the pre-existing value at the specified key if any. fn clear_storage_v1(key: &[u8]) -> Option; + /// Clear the value at the given key in the contract transient storage. + /// + /// # Parameters + /// + /// - `key`: The storage key. + /// + /// # Return + /// + /// Returns the size of the pre-existing value at the specified key if any. + #[deprecated( + note = "Unstable function. Behaviour can change without further notice. Use only for testing." + )] + fn clear_transient_storage(key: &[u8]) -> Option; + /// Retrieve the code hash for a specified contract address. /// /// # Parameters @@ -324,6 +338,21 @@ pub trait HostFn { /// Returns the size of the pre-existing value at the specified key if any. fn contains_storage_v1(key: &[u8]) -> Option; + /// Checks whether there is a value stored under the given key in transient storage. + /// + /// The key length must not exceed the maximum defined by the contracts module parameter. + /// + /// # Parameters + /// - `key`: The storage key. + /// + /// # Return + /// + /// Returns the size of the pre-existing value at the specified key if any. + #[deprecated( + note = "Unstable function. Behaviour can change without further notice. Use only for testing." + )] + fn contains_transient_storage(key: &[u8]) -> Option; + /// Emit a custom debug message. /// /// No newlines are added to the supplied message. @@ -453,6 +482,22 @@ pub trait HostFn { /// [KeyNotFound][`crate::ReturnErrorCode::KeyNotFound] fn get_storage_v1(key: &[u8], output: &mut &mut [u8]) -> Result; + /// Retrieve the value under the given key from transient storage. + /// + /// The key length must not exceed the maximum defined by the contracts module parameter. + /// + /// # Parameters + /// - `key`: The storage key. + /// - `output`: A reference to the output data buffer to write the storage entry. + /// + /// # Errors + /// + /// [KeyNotFound][`crate::ReturnErrorCode::KeyNotFound] + #[deprecated( + note = "Unstable function. Behaviour can change without further notice. Use only for testing." + )] + fn get_transient_storage(key: &[u8], output: &mut &mut [u8]) -> Result; + hash_fn!(sha2_256, 32); hash_fn!(keccak_256, 32); hash_fn!(blake2_256, 32); @@ -673,6 +718,24 @@ pub trait HostFn { /// Returns the size of the pre-existing value at the specified key if any. fn set_storage_v2(key: &[u8], value: &[u8]) -> Option; + /// Set the value at the given key in the contract transient storage. + /// + /// The key and value lengths must not exceed the maximums defined by the contracts module + /// parameters. + /// + /// # Parameters + /// + /// - `key`: The storage key. + /// - `encoded_value`: The storage value. + /// + /// # Return + /// + /// Returns the size of the pre-existing value at the specified key if any. + #[deprecated( + note = "Unstable function. Behaviour can change without further notice. Use only for testing." + )] + fn set_transient_storage(key: &[u8], value: &[u8]) -> Option; + /// Verify a sr25519 signature /// /// # Parameters @@ -696,6 +759,20 @@ pub trait HostFn { /// [KeyNotFound][`crate::ReturnErrorCode::KeyNotFound] fn take_storage(key: &[u8], output: &mut &mut [u8]) -> Result; + /// Retrieve and remove the value under the given key from transient storage. + /// + /// # Parameters + /// - `key`: The storage key. + /// - `output`: A reference to the output data buffer to write the storage entry. + /// + /// # Errors + /// + /// [KeyNotFound][`crate::ReturnErrorCode::KeyNotFound] + #[deprecated( + note = "Unstable function. Behaviour can change without further notice. Use only for testing." + )] + fn take_transient_storage(key: &[u8], output: &mut &mut [u8]) -> Result; + /// Transfer some amount of funds into the specified account. /// /// # Parameters @@ -804,3 +881,8 @@ pub trait HostFn { )] fn xcm_send(dest: &[u8], msg: &[u8], output: &mut [u8; 32]) -> Result; } + +mod private { + pub trait Sealed {} + impl Sealed for super::HostFnImpl {} +} diff --git a/substrate/frame/contracts/uapi/src/host/riscv32.rs b/substrate/frame/contracts/uapi/src/host/riscv32.rs index 561ab28747d..35552023321 100644 --- a/substrate/frame/contracts/uapi/src/host/riscv32.rs +++ b/substrate/frame/contracts/uapi/src/host/riscv32.rs @@ -172,6 +172,10 @@ impl HostFn for HostFnImpl { todo!() } + fn set_transient_storage(key: &[u8], encoded_value: &[u8]) -> Option { + todo!() + } + fn clear_storage(key: &[u8]) { todo!() } @@ -180,13 +184,25 @@ impl HostFn for HostFnImpl { todo!() } + fn clear_transient_storage(key: &[u8]) -> Option { + todo!() + } + impl_get_storage!(get_storage, sys::get_storage); impl_get_storage!(get_storage_v1, sys::v1::get_storage); + fn get_transient_storage(key: &[u8], output: &mut &mut [u8]) -> Result { + todo!() + } + fn take_storage(key: &[u8], output: &mut &mut [u8]) -> Result { todo!() } + fn take_transient_storage(key: &[u8], output: &mut &mut [u8]) -> Result { + todo!() + } + fn contains_storage(key: &[u8]) -> Option { todo!() } @@ -195,6 +211,10 @@ impl HostFn for HostFnImpl { todo!() } + fn contains_transient_storage(key: &[u8]) -> Option { + todo!() + } + fn terminate(beneficiary: &[u8]) -> ! { todo!() } diff --git a/substrate/frame/contracts/uapi/src/host/wasm32.rs b/substrate/frame/contracts/uapi/src/host/wasm32.rs index cb5435bfc01..55600bc3201 100644 --- a/substrate/frame/contracts/uapi/src/host/wasm32.rs +++ b/substrate/frame/contracts/uapi/src/host/wasm32.rs @@ -61,6 +61,8 @@ mod sys { pub fn clear_storage(key_ptr: *const u8); + pub fn clear_transient_storage(key_ptr: *const u8, key_len: u32) -> ReturnCode; + pub fn code_hash( account_id_ptr: *const u8, output_ptr: *mut u8, @@ -69,6 +71,8 @@ mod sys { pub fn contains_storage(key_ptr: *const u8) -> ReturnCode; + pub fn contains_transient_storage(key_ptr: *const u8, key_len: u32) -> ReturnCode; + pub fn debug_message(str_ptr: *const u8, str_len: u32) -> ReturnCode; pub fn delegate_call( @@ -103,6 +107,13 @@ mod sys { out_len_ptr: *mut u32, ) -> ReturnCode; + pub fn get_transient_storage( + key_ptr: *const u8, + key_len: u32, + out_ptr: *mut u8, + out_len_ptr: *mut u32, + ) -> ReturnCode; + pub fn hash_blake2_128(input_ptr: *const u8, input_len: u32, output_ptr: *mut u8); pub fn hash_blake2_256(input_ptr: *const u8, input_len: u32, output_ptr: *mut u8); @@ -133,6 +144,13 @@ mod sys { pub fn set_storage(key_ptr: *const u8, value_ptr: *const u8, value_len: u32); + pub fn set_transient_storage( + key_ptr: *const u8, + key_len: u32, + value_ptr: *const u8, + value_len: u32, + ) -> ReturnCode; + pub fn sr25519_verify( signature_ptr: *const u8, public_key_ptr: *const u8, @@ -147,6 +165,13 @@ mod sys { out_len_ptr: *mut u32, ) -> ReturnCode; + pub fn take_transient_storage( + key_ptr: *const u8, + key_len: u32, + out_ptr: *mut u8, + out_len_ptr: *mut u32, + ) -> ReturnCode; + pub fn terminate(beneficiary_ptr: *const u8) -> !; pub fn transfer( @@ -598,6 +623,18 @@ impl HostFn for HostFnImpl { ret_code.into() } + fn set_transient_storage(key: &[u8], encoded_value: &[u8]) -> Option { + let ret_code = unsafe { + sys::set_transient_storage( + key.as_ptr(), + key.len() as u32, + encoded_value.as_ptr(), + encoded_value.len() as u32, + ) + }; + ret_code.into() + } + fn clear_storage(key: &[u8]) { unsafe { sys::clear_storage(key.as_ptr()) }; } @@ -607,6 +644,11 @@ impl HostFn for HostFnImpl { ret_code.into() } + fn clear_transient_storage(key: &[u8]) -> Option { + let ret_code = unsafe { sys::clear_transient_storage(key.as_ptr(), key.len() as u32) }; + ret_code.into() + } + #[inline(always)] fn get_storage(key: &[u8], output: &mut &mut [u8]) -> Result { let mut output_len = output.len() as u32; @@ -633,6 +675,23 @@ impl HostFn for HostFnImpl { ret_code.into() } + #[inline(always)] + fn get_transient_storage(key: &[u8], output: &mut &mut [u8]) -> Result { + let mut output_len = output.len() as u32; + let ret_code = { + unsafe { + sys::get_transient_storage( + key.as_ptr(), + key.len() as u32, + output.as_mut_ptr(), + &mut output_len, + ) + } + }; + extract_from_slice(output, output_len as usize); + ret_code.into() + } + #[inline(always)] fn take_storage(key: &[u8], output: &mut &mut [u8]) -> Result { let mut output_len = output.len() as u32; @@ -650,6 +709,23 @@ impl HostFn for HostFnImpl { ret_code.into() } + #[inline(always)] + fn take_transient_storage(key: &[u8], output: &mut &mut [u8]) -> Result { + let mut output_len = output.len() as u32; + let ret_code = { + unsafe { + sys::take_transient_storage( + key.as_ptr(), + key.len() as u32, + output.as_mut_ptr(), + &mut output_len, + ) + } + }; + extract_from_slice(output, output_len as usize); + ret_code.into() + } + fn debug_message(str: &[u8]) -> Result { let ret_code = unsafe { sys::debug_message(str.as_ptr(), str.len() as u32) }; ret_code.into() @@ -665,6 +741,11 @@ impl HostFn for HostFnImpl { ret_code.into() } + fn contains_transient_storage(key: &[u8]) -> Option { + let ret_code = unsafe { sys::contains_transient_storage(key.as_ptr(), key.len() as u32) }; + ret_code.into() + } + fn terminate(beneficiary: &[u8]) -> ! { unsafe { sys::terminate(beneficiary.as_ptr()) } } -- GitLab From 79a3d6c294430a52f00563f8a5e59984680b889f Mon Sep 17 00:00:00 2001 From: Andrei Eres Date: Tue, 16 Jul 2024 13:31:51 +0200 Subject: [PATCH 039/252] Adjust base value for statement-distribution regression tests (#5028) A baseline for the statement-distribution regression test was set only in the beginning and now we see that the actual values a bit lower. image [Source](https://paritytech.github.io/polkadot-sdk/bench/statement-distribution-regression-bench) --- .../benches/statement-distribution-regression-bench.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/polkadot/node/network/statement-distribution/benches/statement-distribution-regression-bench.rs b/polkadot/node/network/statement-distribution/benches/statement-distribution-regression-bench.rs index 9cbe385e3f4..4e7206e0a36 100644 --- a/polkadot/node/network/statement-distribution/benches/statement-distribution-regression-bench.rs +++ b/polkadot/node/network/statement-distribution/benches/statement-distribution-regression-bench.rs @@ -63,7 +63,7 @@ fn main() -> Result<(), String> { ("Received from peers", 106.4000, 0.001), ("Sent to peers", 127.9100, 0.001), ])); - messages.extend(average_usage.check_cpu_usage(&[("statement-distribution", 0.0390, 0.1)])); + messages.extend(average_usage.check_cpu_usage(&[("statement-distribution", 0.0374, 0.1)])); if messages.is_empty() { Ok(()) -- GitLab From 66baa2fb307fe72cb9ddc7c3be16ba57fcb2670a Mon Sep 17 00:00:00 2001 From: Alexander Samusev <41779041+alvicsam@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:48:42 +0200 Subject: [PATCH 040/252] [ci] Update forklift in CI image (#5032) cc https://github.com/paritytech/ci_cd/issues/939 --- .github/env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/env b/.github/env index 162ce8af7c0..2e4d5b48100 100644 --- a/.github/env +++ b/.github/env @@ -1 +1 @@ -IMAGE="docker.io/paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v20240408" \ No newline at end of file +IMAGE="docker.io/paritytech/ci-unified:bullseye-1.77.0-2024-04-10-v202407161507" -- GitLab From 975e04bbb59b643362f918e8521f0cde5c27fbc8 Mon Sep 17 00:00:00 2001 From: Andrei Eres Date: Tue, 16 Jul 2024 19:56:25 +0200 Subject: [PATCH 041/252] Send PeerViewChange with high priority (#4755) Closes https://github.com/paritytech/polkadot-sdk/issues/577 ### Changed - `orchestra` updated to 0.4.0 - `PeerViewChange` sent with high priority and should be processed first in a queue. - To count them in tests added tracker to TestSender and TestOverseer. It acts more like a smoke test though. ### Testing on Versi The changes were tested on Versi with two objectives: 1. Make sure the node functionality does not change. 2. See how the changes affect performance. Test setup: - 2.5 hours for each case - 100 validators - 50 parachains - validatorsPerCore = 2 - neededApprovals = 100 - nDelayTranches = 89 - relayVrfModuloSamples = 50 During the test period, all nodes ran without any crashes, which satisfies the first objective. To estimate the change in performance we used ToF charts. The graphs show that there are no spikes in the top as before. This proves that our hypothesis is correct. ### Normalized charts with ToF ![image](https://github.com/user-attachments/assets/0d49d0db-8302-4a8c-a557-501856805ff5) [Before](https://grafana.teleport.parity.io/goto/ZoR53ClSg?orgId=1) ![image](https://github.com/user-attachments/assets/9cc73784-7e45-49d9-8212-152373c05880) [After](https://grafana.teleport.parity.io/goto/6ux5qC_IR?orgId=1) ### Conclusion The prioritization of subsystem messages reduces the ToF of the networking subsystem, which helps faster propagation of gossip messages. --- Cargo.lock | 24 ++++++-- Cargo.toml | 2 +- polkadot/node/malus/src/interceptor.rs | 13 +++- .../src/tests/state.rs | 2 +- polkadot/node/network/bridge/src/rx/mod.rs | 32 ++++++++-- polkadot/node/network/bridge/src/rx/tests.rs | 17 ++++++ polkadot/node/overseer/src/lib.rs | 17 +++--- .../node/subsystem-test-helpers/src/lib.rs | 61 +++++++++++++++++-- prdoc/pr_4755.prdoc | 24 ++++++++ 9 files changed, 165 insertions(+), 27 deletions(-) create mode 100644 prdoc/pr_4755.prdoc diff --git a/Cargo.lock b/Cargo.lock index 9972285780f..3866a74b3f2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5376,12 +5376,14 @@ dependencies = [ [[package]] name = "expander" -version = "2.0.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" dependencies = [ "blake2 0.10.6", + "file-guard", "fs-err", + "prettyplease 0.2.12", "proc-macro2 1.0.82", "quote 1.0.35", "syn 2.0.61", @@ -5514,6 +5516,16 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +[[package]] +name = "file-guard" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "file-per-thread-logger" version = "0.1.6" @@ -9554,9 +9566,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchestra" -version = "0.3.6" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92829eef0328a3d1cd22a02c0e51deb92a5362df3e7d21a4e9bdc38934694e66" +checksum = "41f6bbacc8c189a3f2e45e0fd0436e5d97f194db888e721bdbc3973e7dbed4c2" dependencies = [ "async-trait", "dyn-clonable", @@ -9571,9 +9583,9 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.3.6" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" +checksum = "f7b1d40dd8f367db3c65bec8d3dd47d4a604ee8874480738f93191bddab4e0e0" dependencies = [ "expander", "indexmap 2.2.3", diff --git a/Cargo.toml b/Cargo.toml index 5c2677fffeb..0999d630401 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -855,7 +855,7 @@ num-rational = { version = "0.4.1" } num-traits = { version = "0.2.17", default-features = false } num_cpus = { version = "1.13.1" } once_cell = { version = "1.19.0" } -orchestra = { version = "0.3.5", default-features = false } +orchestra = { version = "0.4.0", default-features = false } pallet-alliance = { path = "substrate/frame/alliance", default-features = false } pallet-asset-conversion = { path = "substrate/frame/asset-conversion", default-features = false } pallet-asset-conversion-ops = { path = "substrate/frame/asset-conversion/ops", default-features = false } diff --git a/polkadot/node/malus/src/interceptor.rs b/polkadot/node/malus/src/interceptor.rs index b44ffc8956b..2181118646d 100644 --- a/polkadot/node/malus/src/interceptor.rs +++ b/polkadot/node/malus/src/interceptor.rs @@ -90,6 +90,10 @@ where >::Error: std::fmt::Debug, { async fn send_message(&mut self, msg: OutgoingMessage) { + self.send_message_with_priority::(msg).await; + } + + async fn send_message_with_priority(&mut self, msg: OutgoingMessage) { let msg = < <>::Message as overseer::AssociateOutgoing >::OutgoingMessages as From>::from(msg); @@ -103,7 +107,14 @@ where } } - fn try_send_message(&mut self, msg: OutgoingMessage) -> Result<(), TrySendError> { + fn try_send_message( + &mut self, + msg: OutgoingMessage, + ) -> Result<(), polkadot_node_subsystem_util::metered::TrySendError> { + self.try_send_message_with_priority::(msg) + } + + fn try_send_message_with_priority(&mut self, msg: OutgoingMessage) -> Result<(), TrySendError> { let msg = < <>::Message as overseer::AssociateOutgoing >::OutgoingMessages as From>::from(msg); diff --git a/polkadot/node/network/availability-distribution/src/tests/state.rs b/polkadot/node/network/availability-distribution/src/tests/state.rs index befbff0a2f2..97e616f79fb 100644 --- a/polkadot/node/network/availability-distribution/src/tests/state.rs +++ b/polkadot/node/network/availability-distribution/src/tests/state.rs @@ -216,7 +216,7 @@ impl TestState { // Test will fail if this does not happen until timeout. let mut remaining_stores = self.valid_chunks.len(); - let TestSubsystemContextHandle { tx, mut rx } = harness.virtual_overseer; + let TestSubsystemContextHandle { tx, mut rx, .. } = harness.virtual_overseer; // Spawning necessary as incoming queue can only hold a single item, we don't want to dead // lock ;-) diff --git a/polkadot/node/network/bridge/src/rx/mod.rs b/polkadot/node/network/bridge/src/rx/mod.rs index 84e935366d0..56965ce6ba4 100644 --- a/polkadot/node/network/bridge/src/rx/mod.rs +++ b/polkadot/node/network/bridge/src/rx/mod.rs @@ -1135,13 +1135,33 @@ async fn dispatch_validation_events_to_all( I: IntoIterator>, I::IntoIter: Send, { + macro_rules! send_message { + ($event:expr, $message:ident) => { + if let Ok(event) = $event.focus() { + let has_high_priority = matches!( + event, + // NetworkBridgeEvent::OurViewChange(..) must also be here, + // but it is sent via an unbounded channel. + // See https://github.com/paritytech/polkadot-sdk/issues/824 + NetworkBridgeEvent::PeerConnected(..) | + NetworkBridgeEvent::PeerDisconnected(..) | + NetworkBridgeEvent::PeerViewChange(..) + ); + let message = $message::from(event); + if has_high_priority { + sender.send_message_with_priority::(message).await; + } else { + sender.send_message(message).await; + } + } + }; + } + for event in events { - sender - .send_messages(event.focus().map(StatementDistributionMessage::from)) - .await; - sender.send_messages(event.focus().map(BitfieldDistributionMessage::from)).await; - sender.send_messages(event.focus().map(ApprovalDistributionMessage::from)).await; - sender.send_messages(event.focus().map(GossipSupportMessage::from)).await; + send_message!(event, StatementDistributionMessage); + send_message!(event, BitfieldDistributionMessage); + send_message!(event, ApprovalDistributionMessage); + send_message!(event, GossipSupportMessage); } } diff --git a/polkadot/node/network/bridge/src/rx/tests.rs b/polkadot/node/network/bridge/src/rx/tests.rs index 6182bf3d883..392ff7391a1 100644 --- a/polkadot/node/network/bridge/src/rx/tests.rs +++ b/polkadot/node/network/bridge/src/rx/tests.rs @@ -880,6 +880,8 @@ fn peer_view_updates_sent_via_overseer() { &mut virtual_overseer, ) .await; + + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 8); } network_handle @@ -895,6 +897,7 @@ fn peer_view_updates_sent_via_overseer() { &mut virtual_overseer, ) .await; + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 12); virtual_overseer }); } @@ -930,6 +933,8 @@ fn peer_messages_sent_via_overseer() { &mut virtual_overseer, ) .await; + + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 8); } let approval_distribution_message = @@ -970,6 +975,7 @@ fn peer_messages_sent_via_overseer() { &mut virtual_overseer, ) .await; + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 12); virtual_overseer }); } @@ -1008,6 +1014,8 @@ fn peer_disconnect_from_just_one_peerset() { &mut virtual_overseer, ) .await; + + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 8); } { @@ -1036,6 +1044,7 @@ fn peer_disconnect_from_just_one_peerset() { &mut virtual_overseer, ) .await; + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 12); // to show that we're still connected on the collation protocol, send a view update. @@ -1094,6 +1103,8 @@ fn relays_collation_protocol_messages() { &mut virtual_overseer, ) .await; + + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 8); } { @@ -1201,6 +1212,8 @@ fn different_views_on_different_peer_sets() { &mut virtual_overseer, ) .await; + + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 8); } { @@ -1247,6 +1260,8 @@ fn different_views_on_different_peer_sets() { ) .await; + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 12); + assert_sends_collation_event_to_all( NetworkBridgeEvent::PeerViewChange(peer, view_b.clone()), &mut virtual_overseer, @@ -1481,6 +1496,8 @@ fn network_protocol_versioning_subsystem_msg() { &mut virtual_overseer, ) .await; + + assert_eq!(virtual_overseer.message_counter.with_high_priority(), 8); } let approval_distribution_message = diff --git a/polkadot/node/overseer/src/lib.rs b/polkadot/node/overseer/src/lib.rs index 24985a99913..4e13d5eda76 100644 --- a/polkadot/node/overseer/src/lib.rs +++ b/polkadot/node/overseer/src/lib.rs @@ -105,10 +105,11 @@ pub use polkadot_node_metrics::{ pub use orchestra as gen; pub use orchestra::{ - contextbounds, orchestra, subsystem, FromOrchestra, MapSubsystem, MessagePacket, - OrchestraError as OverseerError, SignalsReceived, Spawner, Subsystem, SubsystemContext, - SubsystemIncomingMessages, SubsystemInstance, SubsystemMeterReadouts, SubsystemMeters, - SubsystemSender, TimeoutExt, ToOrchestra, TrySendError, + contextbounds, orchestra, subsystem, FromOrchestra, HighPriority, MapSubsystem, MessagePacket, + NormalPriority, OrchestraError as OverseerError, Priority, PriorityLevel, SignalsReceived, + Spawner, Subsystem, SubsystemContext, SubsystemIncomingMessages, SubsystemInstance, + SubsystemMeterReadouts, SubsystemMeters, SubsystemSender, TimeoutExt, ToOrchestra, + TrySendError, }; #[cfg(any(target_os = "linux", feature = "jemalloc-allocator"))] @@ -495,7 +496,7 @@ pub struct Overseer { RuntimeApiMessage, ProspectiveParachainsMessage, ChainApiMessage, - ])] + ], can_receive_priority_messages)] statement_distribution: StatementDistribution, #[subsystem(AvailabilityDistributionMessage, sends: [ @@ -524,7 +525,7 @@ pub struct Overseer { RuntimeApiMessage, NetworkBridgeTxMessage, ProvisionerMessage, - ])] + ], can_receive_priority_messages)] bitfield_distribution: BitfieldDistribution, #[subsystem(ProvisionerMessage, sends: [ @@ -580,7 +581,7 @@ pub struct Overseer { #[subsystem(blocking, message_capacity: 64000, ApprovalDistributionMessage, sends: [ NetworkBridgeTxMessage, ApprovalVotingMessage, - ])] + ], can_receive_priority_messages)] approval_distribution: ApprovalDistribution, #[subsystem(blocking, ApprovalVotingMessage, sends: [ @@ -599,7 +600,7 @@ pub struct Overseer { NetworkBridgeRxMessage, // TODO RuntimeApiMessage, ChainSelectionMessage, - ])] + ], can_receive_priority_messages)] gossip_support: GossipSupport, #[subsystem(blocking, message_capacity: 32000, DisputeCoordinatorMessage, sends: [ diff --git a/polkadot/node/subsystem-test-helpers/src/lib.rs b/polkadot/node/subsystem-test-helpers/src/lib.rs index 375121c3746..bdb0647fee6 100644 --- a/polkadot/node/subsystem-test-helpers/src/lib.rs +++ b/polkadot/node/subsystem-test-helpers/src/lib.rs @@ -36,7 +36,7 @@ use std::{ convert::Infallible, future::Future, pin::Pin, - sync::Arc, + sync::{atomic::AtomicUsize, Arc}, task::{Context, Poll, Waker}, time::Duration, }; @@ -146,12 +146,13 @@ pub fn single_item_sink() -> (SingleItemSink, SingleItemStream) { #[derive(Clone)] pub struct TestSubsystemSender { tx: mpsc::UnboundedSender, + message_counter: MessageCounter, } /// Construct a sender/receiver pair. pub fn sender_receiver() -> (TestSubsystemSender, mpsc::UnboundedReceiver) { let (tx, rx) = mpsc::unbounded(); - (TestSubsystemSender { tx }, rx) + (TestSubsystemSender { tx, message_counter: MessageCounter::default() }, rx) } #[async_trait::async_trait] @@ -161,6 +162,11 @@ where OutgoingMessage: Send + 'static, { async fn send_message(&mut self, msg: OutgoingMessage) { + self.send_message_with_priority::(msg).await; + } + + async fn send_message_with_priority(&mut self, msg: OutgoingMessage) { + self.message_counter.increment(P::priority()); self.tx.send(msg.into()).await.expect("test overseer no longer live"); } @@ -168,6 +174,14 @@ where &mut self, msg: OutgoingMessage, ) -> Result<(), TrySendError> { + self.try_send_message_with_priority::(msg) + } + + fn try_send_message_with_priority( + &mut self, + msg: OutgoingMessage, + ) -> Result<(), TrySendError> { + self.message_counter.increment(P::priority()); self.tx.unbounded_send(msg.into()).expect("test overseer no longer live"); Ok(()) } @@ -277,6 +291,9 @@ pub struct TestSubsystemContextHandle { /// Direct access to the receiver. pub rx: mpsc::UnboundedReceiver, + + /// Message counter over subsystems. + pub message_counter: MessageCounter, } impl TestSubsystemContextHandle { @@ -322,6 +339,34 @@ pub fn make_subsystem_context( make_buffered_subsystem_context(spawner, 0) } +/// Message counter over subsystems. +#[derive(Default, Clone)] +pub struct MessageCounter { + total: Arc, + with_high_priority: Arc, +} + +impl MessageCounter { + /// Increment the message counter. + pub fn increment(&mut self, priority_level: overseer::PriorityLevel) { + self.total.fetch_add(1, std::sync::atomic::Ordering::SeqCst); + if matches!(priority_level, overseer::PriorityLevel::High) { + self.with_high_priority.fetch_add(1, std::sync::atomic::Ordering::SeqCst); + } + } + + /// Reset the message counter. + pub fn reset(&mut self) { + self.total.store(0, std::sync::atomic::Ordering::SeqCst); + self.with_high_priority.store(0, std::sync::atomic::Ordering::SeqCst); + } + + /// Get the messages with high priority count. + pub fn with_high_priority(&self) -> usize { + self.with_high_priority.load(std::sync::atomic::Ordering::SeqCst) + } +} + /// Make a test subsystem context with buffered overseer channel. Some tests (e.g. /// `dispute-coordinator`) create too many parallel operations and deadlock unless /// the channel is buffered. Usually `buffer_size=1` is enough. @@ -331,15 +376,23 @@ pub fn make_buffered_subsystem_context( ) -> (TestSubsystemContext>, TestSubsystemContextHandle) { let (overseer_tx, overseer_rx) = mpsc::channel(buffer_size); let (all_messages_tx, all_messages_rx) = mpsc::unbounded(); + let message_counter = MessageCounter::default(); ( TestSubsystemContext { - tx: TestSubsystemSender { tx: all_messages_tx }, + tx: TestSubsystemSender { + tx: all_messages_tx, + message_counter: message_counter.clone(), + }, rx: overseer_rx, spawn: SpawnGlue(spawner), message_buffer: VecDeque::new(), }, - TestSubsystemContextHandle { tx: overseer_tx, rx: all_messages_rx }, + TestSubsystemContextHandle { + tx: overseer_tx, + rx: all_messages_rx, + message_counter: message_counter.clone(), + }, ) } diff --git a/prdoc/pr_4755.prdoc b/prdoc/pr_4755.prdoc new file mode 100644 index 00000000000..1018446cb67 --- /dev/null +++ b/prdoc/pr_4755.prdoc @@ -0,0 +1,24 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Send PeerViewChange with high priority + +doc: + - audience: Node Dev + description: | + - orchestra updated to 0.4.0, which introduces support for prioritizing system messages. + - PeerViewChange sent with high priority and should be processed first in a queue. + - To count them in tests added tracker to TestSender and TestOverseer. It acts more like a smoke test though. + + +crates: + - name: polkadot-overseer + bump: minor + - name: polkadot-network-bridge + bump: patch + - name: polkadot-availability-distribution + bump: patch + - name: polkadot-test-malus + bump: patch + - name: polkadot-node-subsystem-test-helpers + bump: patch -- GitLab From 0db509263c18ff011dcb64af0b0e87f6f68a7c16 Mon Sep 17 00:00:00 2001 From: Alin Dima Date: Wed, 17 Jul 2024 12:27:11 +0300 Subject: [PATCH 042/252] add elastic scaling MVP guide (#4663) Resolves https://github.com/paritytech/polkadot-sdk/issues/4468 Gives instructions on how to enable elastic scaling MVP to parachain teams. Still a draft because it depends on further changes we make to the slot-based collator: https://github.com/paritytech/polkadot-sdk/pull/4097 Parachains cannot use this yet because the collator was not released and no relay chain network has been configured for elastic scaling yet --- Cargo.lock | 1 + cumulus/polkadot-parachain/Cargo.toml | 1 + cumulus/polkadot-parachain/src/service.rs | 71 ++++++--- .../src/guides/enable_elastic_scaling_mvp.rs | 142 ++++++++++++++++++ docs/sdk/src/guides/mod.rs | 3 + prdoc/pr_4663.prdoc | 14 ++ 6 files changed, 215 insertions(+), 17 deletions(-) create mode 100644 docs/sdk/src/guides/enable_elastic_scaling_mvp.rs create mode 100644 prdoc/pr_4663.prdoc diff --git a/Cargo.lock b/Cargo.lock index 3866a74b3f2..ad75224fefd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13766,6 +13766,7 @@ dependencies = [ "cumulus-primitives-aura", "cumulus-primitives-core", "cumulus-relay-chain-interface", + "docify", "frame-benchmarking", "frame-benchmarking-cli", "frame-support", diff --git a/cumulus/polkadot-parachain/Cargo.toml b/cumulus/polkadot-parachain/Cargo.toml index 7085211dad2..b20d2a28fa7 100644 --- a/cumulus/polkadot-parachain/Cargo.toml +++ b/cumulus/polkadot-parachain/Cargo.toml @@ -24,6 +24,7 @@ hex-literal = { workspace = true, default-features = true } log = { workspace = true, default-features = true } serde = { features = ["derive"], workspace = true, default-features = true } serde_json = { workspace = true, default-features = true } +docify = { workspace = true } # Local rococo-parachain-runtime = { workspace = true } diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index f5f6189d1f0..6a6cf15635e 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -15,13 +15,16 @@ // along with Cumulus. If not, see . use cumulus_client_cli::{CollatorOptions, ExportGenesisHeadCommand}; -use cumulus_client_collator::service::CollatorService; -use cumulus_client_consensus_aura::collators::{ - lookahead::{self as aura, Params as AuraParams}, - slot_based::{self as slot_based, Params as SlotBasedParams}, +use cumulus_client_collator::service::{ + CollatorService, ServiceInterface as CollatorServiceInterface, +}; +use cumulus_client_consensus_aura::collators::lookahead::{self as aura, Params as AuraParams}; +#[docify::export(slot_based_colator_import)] +use cumulus_client_consensus_aura::collators::slot_based::{ + self as slot_based, Params as SlotBasedParams, }; use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; -use cumulus_client_consensus_proposer::Proposer; +use cumulus_client_consensus_proposer::{Proposer, ProposerInterface}; use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier; #[allow(deprecated)] use cumulus_client_service::old_consensus; @@ -62,6 +65,7 @@ use sc_sysinfo::HwBench; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sc_transaction_pool::FullPool; use sp_api::ProvideRuntimeApi; +use sp_inherents::CreateInherentDataProviders; use sp_keystore::KeystorePtr; use sp_runtime::{app_crypto::AppCrypto, traits::Header as HeaderT}; use std::{marker::PhantomData, pin::Pin, sync::Arc, time::Duration}; @@ -623,6 +627,48 @@ pub(crate) struct StartSlotBasedAuraConsensus( PhantomData<(RuntimeApi, AuraId)>, ); +impl StartSlotBasedAuraConsensus +where + RuntimeApi: ConstructNodeRuntimeApi>, + RuntimeApi::RuntimeApi: AuraRuntimeApi, + AuraId: AuraIdT + Sync, +{ + #[docify::export_content] + fn launch_slot_based_collator( + params: SlotBasedParams< + ParachainBlockImport, + CIDP, + ParachainClient, + ParachainBackend, + Arc, + CHP, + Proposer, + CS, + >, + task_manager: &TaskManager, + ) where + CIDP: CreateInherentDataProviders + 'static, + CIDP::InherentDataProviders: Send, + CHP: cumulus_client_consensus_common::ValidationCodeHashProvider + Send + 'static, + Proposer: ProposerInterface + Send + Sync + 'static, + CS: CollatorServiceInterface + Send + Sync + Clone + 'static, + { + let (collation_future, block_builder_future) = + slot_based::run::::Pair, _, _, _, _, _, _, _, _>(params); + + task_manager.spawn_essential_handle().spawn( + "collation-task", + Some("parachain-block-authoring"), + collation_future, + ); + task_manager.spawn_essential_handle().spawn( + "block-builder-task", + Some("parachain-block-authoring"), + block_builder_future, + ); + } +} + impl StartConsensus for StartSlotBasedAuraConsensus where @@ -683,19 +729,10 @@ where slot_drift: Duration::from_secs(1), }; - let (collation_future, block_builder_future) = - slot_based::run::::Pair, _, _, _, _, _, _, _, _>(params); + // We have a separate function only to be able to use `docify::export` on this piece of + // code. + Self::launch_slot_based_collator(params, task_manager); - task_manager.spawn_essential_handle().spawn( - "collation-task", - Some("parachain-block-authoring"), - collation_future, - ); - task_manager.spawn_essential_handle().spawn( - "block-builder-task", - Some("parachain-block-authoring"), - block_builder_future, - ); Ok(()) } } diff --git a/docs/sdk/src/guides/enable_elastic_scaling_mvp.rs b/docs/sdk/src/guides/enable_elastic_scaling_mvp.rs new file mode 100644 index 00000000000..bc4f36c271f --- /dev/null +++ b/docs/sdk/src/guides/enable_elastic_scaling_mvp.rs @@ -0,0 +1,142 @@ +//! # Enable elastic scaling MVP for a parachain +//! +//!

+//! +//! ## Quick introduction to elastic scaling +//! +//! [Elastic scaling](https://polkadot.network/blog/elastic-scaling-streamling-growth-on-polkadot) +//! is a feature that will enable parachains to seamlessly scale up/down the number of used cores. +//! This can be desirable in order to increase the compute or storage throughput of a parachain or +//! to lower the latency between a transaction being submitted and it getting built in a parachain +//! block. +//! +//! At present, with Asynchronous Backing enabled, a parachain can only include a block on the relay +//! chain every 6 seconds, irregardless of how many cores the parachain acquires. Elastic scaling +//! builds further on the 10x throughput increase of Async Backing, enabling collators to submit up +//! to 3 parachain blocks per relay chain block, resulting in a further 3x throughput increase. +//! +//! ## Current limitations of the MVP +//! +//! The full implementation of elastic scaling spans across the entire relay/parachain stack and is +//! still [work in progress](https://github.com/paritytech/polkadot-sdk/issues/1829). +//! The MVP is still considered experimental software, so stability is not guaranteed. +//! If you encounter any problems, +//! [please open an issue](https://github.com/paritytech/polkadot-sdk/issues). +//! Below are described the current limitations of the MVP: +//! +//! 1. **Limited core count**. Parachain block authoring is sequential, so the second block will +//! start being built only after the previous block is imported. The current block production is +//! capped at 2 seconds of execution. Therefore, assuming the full 2 seconds are used, a +//! parachain can only utilise at most 3 cores in a relay chain slot of 6 seconds. If the full +//! execution time is not being used, higher core counts can be achieved. +//! 2. **Single collator requirement for consistently scaling beyond a core at full authorship +//! duration of 2 seconds per block.** Using the current implementation with multiple collators +//! adds additional latency to the block production pipeline. Assuming block execution takes +//! about the same as authorship, the additional overhead is equal the duration of the authorship +//! plus the block announcement. Each collator must first import the previous block before +//! authoring a new one, so it is clear that the highest throughput can be achieved using a +//! single collator. Experiments show that the peak performance using more than one collator +//! (measured up to 10 collators) is utilising 2 cores with authorship time of 1.3 seconds per +//! block, which leaves 400ms for networking overhead. This would allow for 2.6 seconds of +//! execution, compared to the 2 seconds async backing enabled. +//! [More experiments](https://github.com/paritytech/polkadot-sdk/issues/4696) are being +//! conducted in this space. +//! 3. **Trusted collator set.** The collator set needs to be trusted until there’s a mitigation +//! that would prevent or deter multiple collators from submitting the same collation to multiple +//! backing groups. A solution is being discussed +//! [here](https://github.com/polkadot-fellows/RFCs/issues/92). +//! 4. **Fixed scaling.** For true elasticity, the parachain must be able to seamlessly acquire or +//! sell coretime as the user demand grows and shrinks over time, in an automated manner. This is +//! currently lacking - a parachain can only scale up or down by “manually” acquiring coretime. +//! This is not in the scope of the relay chain functionality. Parachains can already start +//! implementing such autoscaling, but we aim to provide a framework/examples for developing +//! autoscaling strategies. +//! +//! Another hard limitation that is not envisioned to ever be lifted is that parachains which create +//! forks will generally not be able to utilise the full number of cores they acquire. +//! +//! ## Using elastic scaling MVP +//! +//! ### Prerequisites +//! +//! - Ensure Asynchronous Backing is enabled on the network and you have enabled it on the parachain +//! using [`crate::guides::async_backing_guide`]. +//! - Ensure the `AsyncBackingParams.max_candidate_depth` value is configured to a value that is at +//! least double the maximum targeted parachain velocity. For example, if the parachain will build +//! at most 3 candidates per relay chain block, the `max_candidate_depth` should be at least 6. +//! - Use a trusted single collator for maximum throughput. +//! - Ensure enough coretime is assigned to the parachain. For maximum throughput the upper bound is +//! 3 cores. +//! +//!
Phase 1 is not needed if using the `polkadot-parachain` binary built +//! from the latest polkadot-sdk release! Simply pass the `--experimental-use-slot-based` parameter +//! to the command line and jump to Phase 2.
+//! +//! The following steps assume using the cumulus parachain template. +//! +//! ### Phase 1 - (For custom parachain node) Update Parachain Node +//! +//! This assumes you are using +//! [the latest parachain template](https://github.com/paritytech/polkadot-sdk/tree/master/templates/parachain). +//! +//! This phase consists of plugging in the new slot-based collator. +//! +//! 1. In `node/src/service.rs` import the slot based collator instead of the lookahead collator. +#![doc = docify::embed!("../../cumulus/polkadot-parachain/src/service.rs", slot_based_colator_import)] +//! +//! 2. In `start_consensus()` +//! - Remove the `overseer_handle` param (also remove the +//! `OverseerHandle` type import if it’s not used elsewhere). +//! - Rename `AuraParams` to `SlotBasedParams`, remove the `overseer_handle` field and add a +//! `slot_drift` field with a value of `Duration::from_secs(1)`. +//! - Replace the single future returned by `aura::run` with the two futures returned by it and +//! spawn them as separate tasks: +#![doc = docify::embed!("../../cumulus/polkadot-parachain/src/service.rs", launch_slot_based_collator)] +//! +//! 3. In `start_parachain_node()` remove the `overseer_handle` param passed to `start_consensus`. +//! +//! ### Phase 2 - Activate fixed factor scaling in the runtime +//! +//! This phase consists of a couple of changes needed to be made to the parachain’s runtime in order +//! to utilise fixed factor scaling. +//! +//! First of all, you need to decide the upper limit to how many parachain blocks you need to +//! produce per relay chain block (in direct correlation with the number of acquired cores). This +//! should be either 1 (no scaling), 2 or 3. This is called the parachain velocity. +//! +//! If you configure a velocity which is different from the number of assigned cores, the measured +//! velocity in practice will be the minimum of these two. +//! +//! The chosen velocity will also be used to compute: +//! - The slot duration, by dividing the 6000 ms duration of the relay chain slot duration by the +//! velocity. +//! - The unincluded segment capacity, by multiplying the velocity with 2 and adding 1 to +//! it. +//! +//! Let’s assume a desired maximum velocity of 3 parachain blocks per relay chain block. The needed +//! changes would all be done in `runtime/src/lib.rs`: +//! +//! 1. Rename `BLOCK_PROCESSING_VELOCITY` to `MAX_BLOCK_PROCESSING_VELOCITY` and increase it to the +//! desired value. In this example, 3. +//! +//! ```ignore +//! const MAX_BLOCK_PROCESSING_VELOCITY: u32 = 3; +//! ``` +//! +//! 2. Set the `MILLISECS_PER_BLOCK` to the desired value. +//! +//! ```ignore +//! const MILLISECS_PER_BLOCK: u32 = +//! RELAY_CHAIN_SLOT_DURATION_MILLIS / MAX_BLOCK_PROCESSING_VELOCITY; +//! ``` +//! Note: for a parachain which measures time in terms of its own block number, changing block +//! time may cause complications, requiring additional changes. See here more information: +//! [`crate::guides::async_backing_guide#timing-by-block-number`]. +//! +//! 3. Increase the `UNINCLUDED_SEGMENT_CAPACITY` to the desired value. +//! +//! ```ignore +//! const UNINCLUDED_SEGMENT_CAPACITY: u32 = 2 * MAX_BLOCK_PROCESSING_VELOCITY + 1; +//! ``` diff --git a/docs/sdk/src/guides/mod.rs b/docs/sdk/src/guides/mod.rs index 8296ed447e1..9384f4c82ab 100644 --- a/docs/sdk/src/guides/mod.rs +++ b/docs/sdk/src/guides/mod.rs @@ -41,3 +41,6 @@ pub mod async_backing_guide; /// How to enable metadata hash verification in the runtime. pub mod enable_metadata_hash; + +/// How to enable elastic scaling MVP on a parachain. +pub mod enable_elastic_scaling_mvp; diff --git a/prdoc/pr_4663.prdoc b/prdoc/pr_4663.prdoc new file mode 100644 index 00000000000..74b1274828d --- /dev/null +++ b/prdoc/pr_4663.prdoc @@ -0,0 +1,14 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Add elastic scaling MVP guide + +doc: + - audience: Node Operator + description: | + Adds a guide for parachains that want to use the experimental elastic scaling MVP. + Will be viewable at: https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/guides/enable_elastic_scaling_mvp/index.html + +crates: + - name: polkadot-parachain-bin + bump: none -- GitLab From 739951991f14279a7dc05d42c29ccf57d3740a4c Mon Sep 17 00:00:00 2001 From: Egor_P Date: Wed, 17 Jul 2024 13:28:58 +0200 Subject: [PATCH 043/252] Adjust release flows to use those with the new branch model (#5015) This PR contains adjustments of the node release pipelines so that it will be possible to use those to trigger release actions based on the `stable` branch. Previously the whole pipeline of the flows from [creation of the `rc-tag`](https://github.com/paritytech/polkadot-sdk/blob/master/.github/workflows/release-10_rc-automation.yml) (v1.15.0-rc1, v1.15.0-rc2, etc) till [the release draft creation](https://github.com/paritytech/polkadot-sdk/blob/master/.github/workflows/release-30_publish_release_draft.yml) was triggered on push to the node release branch. As we had the node release branch and the crates release branch separately, it worked fine. From now on, as we are switching to the one branch approach, for the first iteration I would like to keep things simple to see how the new release process will work with both parts (crates and node) made from one branch. Changes made: - The first step in the pipeline (rc-tag creation) will be triggered manually instead of the push to the branch - The tag version will be set manually from the input instead of to be taken from the branch name - Docker image will be additionally tagged as `stable` Closes: https://github.com/paritytech/release-engineering/issues/214 --- .github/scripts/common/lib.sh | 13 ++++ .../workflows/release-10_rc-automation.yml | 78 +++++-------------- .../workflows/release-50_publish-docker.yml | 2 + .github/workflows/release-srtool.yml | 5 -- 4 files changed, 36 insertions(+), 62 deletions(-) diff --git a/.github/scripts/common/lib.sh b/.github/scripts/common/lib.sh index f844e962c41..33ef2d3e7ed 100755 --- a/.github/scripts/common/lib.sh +++ b/.github/scripts/common/lib.sh @@ -444,3 +444,16 @@ get_latest_release_tag() { latest_release_tag=$(curl -s -H "$TOKEN" $api_base/paritytech/polkadot-sdk/releases/latest | jq -r '.tag_name') printf $latest_release_tag } + +function get_polkadot_node_version_from_code() { + # list all the files with node version + git grep -e "\(NODE_VERSION[^=]*= \)\".*\"" | + # fetch only the one we need + grep "primitives/src/lib.rs:" | + # Print only the version + awk '{ print $7 }' | + # Remove the quotes + sed 's/"//g' | + # Remove the semicolon + sed 's/;//g' +} diff --git a/.github/workflows/release-10_rc-automation.yml b/.github/workflows/release-10_rc-automation.yml index 7231a8b7588..f5c5de8d0da 100644 --- a/.github/workflows/release-10_rc-automation.yml +++ b/.github/workflows/release-10_rc-automation.yml @@ -1,13 +1,18 @@ name: Release - RC automation on: - push: - branches: - # Catches release-polkadot-v1.2.3, release-v1.2.3-rc1, etc - - release-v[0-9]+.[0-9]+.[0-9]+* - - release-cumulus-v[0-9]+* - - release-polkadot-v[0-9]+* + # TODO: Activate it and delete old branches patterns, when the release process from stable is setteled + #push: + # branches: + # # Catches release-polkadot-v1.2.3, release-v1.2.3-rc1, etc + # - release-v[0-9]+.[0-9]+.[0-9]+* + # - release-cumulus-v[0-9]+* + # - release-polkadot-v[0-9]+* + # - stable workflow_dispatch: + inputs: + version: + description: Current release/rc version in format vX.X.X jobs: tag_rc: @@ -25,28 +30,19 @@ jobs: with: fetch-depth: 0 - - name: Get release product - id: get_rel_product - shell: bash - run: | - current_branch=$(git branch --show-current) - echo "Current branch: $current_branch" - if [[ "$current_branch" =~ "release-polkadot" ]]; then - echo "product=polkadot" >> $GITHUB_OUTPUT - elif [[ "$current_branch" =~ "release-cumulus" ]]; then - echo "product=polkadot-parachain" >> $GITHUB_OUTPUT - fi - - - - name: Compute next rc tag for polkadot - if: ${{ steps.get_rel_product.outputs.product == 'polkadot' }} - id: compute_tag_polkadot + - name: Compute next rc tag + # if: ${{ steps.get_rel_product.outputs.product == 'polkadot' }} + id: compute_tag shell: bash run: | . ./.github/scripts/common/lib.sh # Get last rc tag if exists, else set it to {version}-rc1 - version=$(get_version_from_ghref ${GITHUB_REF}) + if [[ -z "${{ inputs.version }}" ]]; then + version=v$(get_polkadot_node_version_from_code) + else + version=$(filter_version_from_input ${{ inputs.version }}) + fi echo "$version" echo "version=$version" >> $GITHUB_OUTPUT @@ -61,28 +57,6 @@ jobs: echo "first_rc=true" >> $GITHUB_OUTPUT fi - - name: Compute next rc tag for polkadot-parachain - if: ${{ steps.get_rel_product.outputs.product == 'polkadot-parachain' }} - id: compute_tag_cumulus - shell: bash - run: | - . ./.github/scripts/common/lib.sh - - # Get last rc tag if exists, else set it to polkadot-parachains-{version}-rc1 - version=$(get_version_from_ghref ${GITHUB_REF}) - echo "$version" - echo "version=$version" >> $GITHUB_OUTPUT - - last_rc=$(get_latest_rc_tag $version polkadot-parachain) - if [ -n "$last_rc" ]; then - suffix=$(increment_rc_tag $last_rc) - echo "new_tag=polkadot-parachains-$version-rc$suffix" >> $GITHUB_OUTPUT - echo "first_rc=false" >> $GITHUB_OUTPUT - else - echo "new_tag=polkadot-parachain-$version-rc1" >> $GITHUB_OUTPUT - echo "first_rc=true" >> $GITHUB_OUTPUT - fi - - name: Apply new tag uses: tvdias/github-tagger@ed7350546e3e503b5e942dffd65bc8751a95e49d # v0.0.2 with: @@ -90,17 +64,7 @@ jobs: # https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token # RELEASE_BRANCH_TOKEN requires public_repo OAuth scope repo-token: "${{ secrets.RELEASE_BRANCH_TOKEN }}" - tag: ${{ steps.compute_tag_polkadot.outputs.new_tag || steps.compute_tag_cumulus.outputs.new_tag }} - - # - id: create-issue - # uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd # v2.9.1 - # # Only create the issue if it's the first release candidate - # if: steps.compute_tag.outputs.first_rc == 'true' - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # VERSION: ${{ steps.compute_tag.outputs.version }} - # with: - # filename: .github/ISSUE_TEMPLATE/release.md + tag: ${{ steps.compute_tag.outputs.new_tag }} - name: Send Matrix message to ${{ matrix.channel.name }} uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3 @@ -110,4 +74,4 @@ jobs: access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }} server: m.parity.io message: | - Release process for polkadot ${{ steps.compute_tag_polkadot.outputs.new_tag || steps.compute_tag_cumulus.outputs.new_tag }} has been started.
+ Release process for polkadot ${{ steps.compute_tag.outputs.new_tag }} has been started.
diff --git a/.github/workflows/release-50_publish-docker.yml b/.github/workflows/release-50_publish-docker.yml index 4679f58578f..723883eaf64 100644 --- a/.github/workflows/release-50_publish-docker.yml +++ b/.github/workflows/release-50_publish-docker.yml @@ -179,6 +179,7 @@ jobs: release=$( echo $VERSION | cut -f1 -d- ) echo "tag=latest" >> $GITHUB_OUTPUT echo "release=${release}" >> $GITHUB_OUTPUT + echo "stable=stable" >> $GITHUB_OUTPUT - name: Build Injected Container image for polkadot rc or chain-spec-builder if: ${{ env.BINARY == 'polkadot' || env.BINARY == 'chain-spec-builder' }} @@ -294,6 +295,7 @@ jobs: # TODO: The owner should be used below but buildx does not resolve the VARs # TODO: It would be good to get rid of this GHA that we don't really need. tags: | + parity/polkadot:stable parity/polkadot:latest parity/polkadot:${{ needs.fetch-latest-debian-package-version.outputs.polkadot_container_tag }} build-args: | diff --git a/.github/workflows/release-srtool.yml b/.github/workflows/release-srtool.yml index 69a4bdbdda9..e98269fecab 100644 --- a/.github/workflows/release-srtool.yml +++ b/.github/workflows/release-srtool.yml @@ -5,11 +5,6 @@ env: TOML_CLI_VERSION: 0.2.4 on: - push: - branches: - - release-v[0-9]+.[0-9]+.[0-9]+* - - release-cumulus-v[0-9]+* - - release-polkadot-v[0-9]+* workflow_call: inputs: excluded_runtimes: -- GitLab From 1b6292bf7c71d56b793e98b651799f41bb0ef76b Mon Sep 17 00:00:00 2001 From: Sebastian Kunert Date: Wed, 17 Jul 2024 17:41:26 +0200 Subject: [PATCH 044/252] Do not crash on block gap in `displaced_leaves_after_finalizing` (#4997) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After the merge of #4922 we saw failing zombienet tests with the following error: ``` 2024-07-09 10:30:09 Error applying finality to block (0xb9e1d3d9cb2047fe61667e28a0963e0634a7b29781895bc9ca40c898027b4c09, 56685): UnknownBlock: Header was not found in the database: 0x0000000000000000000000000000000000000000000000000000000000000000 2024-07-09 10:30:09 GRANDPA voter error: could not complete a round on disk: UnknownBlock: Header was not found in the database: 0x0000000000000000000000000000000000000000000000000000000000000000 ``` [Example](https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/6662262) The crashing situation is warp-sync related. After warp syncing, it can happen that there are gaps in block ancestry where we don't have the header. At the same time, the genesis hash is in the set of leaves. In `displaced_leaves_after_finalizing` we then iterate from the finalized block backwards until we hit an unknown block, crashing the node. This PR makes the detection of displaced branches resilient against unknown block in the finalized block chain. cc @nazar-pc (github won't let me request a review from you) --------- Co-authored-by: Bastian Köcher Co-authored-by: command-bot <> --- Cargo.lock | 2 +- prdoc/pr_4997.prdoc | 20 +++ substrate/client/db/src/lib.rs | 155 ++++++++++++++++++ substrate/primitives/blockchain/Cargo.toml | 2 +- .../primitives/blockchain/src/backend.rs | 62 +++++-- substrate/primitives/blockchain/src/lib.rs | 2 + 6 files changed, 228 insertions(+), 15 deletions(-) create mode 100644 prdoc/pr_4997.prdoc diff --git a/Cargo.lock b/Cargo.lock index ad75224fefd..aad15fe033d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19855,7 +19855,6 @@ name = "sp-blockchain" version = "28.0.0" dependencies = [ "futures", - "log", "parity-scale-codec", "parking_lot 0.12.3", "schnellru", @@ -19866,6 +19865,7 @@ dependencies = [ "sp-runtime", "sp-state-machine", "thiserror", + "tracing", ] [[package]] diff --git a/prdoc/pr_4997.prdoc b/prdoc/pr_4997.prdoc new file mode 100644 index 00000000000..25620a7e63e --- /dev/null +++ b/prdoc/pr_4997.prdoc @@ -0,0 +1,20 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Do not crash on block gap in displaced_leaves_after_finalizing + +doc: + - audience: + - Node Operator + - Node Dev + description: | + After recent changes, crashes where occuring when calculating displaced branches after a block was finalized. + The reason are block gaps in the finalized chain. When encountering unknown blocks, the node was panicking. + This PR introduces changes to tolerate unknown blocks. Leafs that are separated by a gap from the to-be-finalized + block are not marked as displaced. + +crates: +- name: sc-client-db + bump: none +- name: sp-blockchain + bump: patch diff --git a/substrate/client/db/src/lib.rs b/substrate/client/db/src/lib.rs index e95cd9e4ad5..acd165d9161 100644 --- a/substrate/client/db/src/lib.rs +++ b/substrate/client/db/src/lib.rs @@ -2613,6 +2613,35 @@ pub(crate) mod tests { Ok(header.hash()) } + pub fn insert_disconnected_header( + backend: &Backend, + number: u64, + parent_hash: H256, + extrinsics_root: H256, + best: bool, + ) -> H256 { + use sp_runtime::testing::Digest; + + let digest = Digest::default(); + let header = + Header { number, parent_hash, state_root: Default::default(), digest, extrinsics_root }; + + let mut op = backend.begin_operation().unwrap(); + + op.set_block_data( + header.clone(), + Some(vec![]), + None, + None, + if best { NewBlockState::Best } else { NewBlockState::Normal }, + ) + .unwrap(); + + backend.commit_operation(op).unwrap(); + + header.hash() + } + pub fn insert_header_no_head( backend: &Backend, number: u64, @@ -3112,6 +3141,123 @@ pub(crate) mod tests { } } + #[test] + fn displaced_leaves_after_finalizing_works_with_disconnect() { + // In this test we will create a situation that can typically happen after warp sync. + // The situation looks like this: + // g -> -> a3 -> a4 + // Basically there is a gap of unimported blocks at some point in the chain. + let backend = Backend::::new_test(1000, 100); + let blockchain = backend.blockchain(); + let genesis_number = 0; + let genesis_hash = + insert_header(&backend, genesis_number, Default::default(), None, Default::default()); + + let a3_number = 3; + let a3_hash = insert_disconnected_header( + &backend, + a3_number, + H256::from([200; 32]), + H256::from([1; 32]), + true, + ); + + let a4_number = 4; + let a4_hash = + insert_disconnected_header(&backend, a4_number, a3_hash, H256::from([2; 32]), true); + { + let displaced = + blockchain.displaced_leaves_after_finalizing(a3_hash, a3_number).unwrap(); + assert_eq!(blockchain.leaves().unwrap(), vec![a4_hash, genesis_hash]); + assert_eq!(displaced.displaced_leaves, vec![]); + assert_eq!(displaced.displaced_blocks, vec![]); + } + + { + let displaced = + blockchain.displaced_leaves_after_finalizing(a4_hash, a4_number).unwrap(); + assert_eq!(blockchain.leaves().unwrap(), vec![a4_hash, genesis_hash]); + assert_eq!(displaced.displaced_leaves, vec![]); + assert_eq!(displaced.displaced_blocks, vec![]); + } + + // Import block a1 which has the genesis block as parent. + // g -> a1 -> -> a3(f) -> a4 + let a1_number = 1; + let a1_hash = insert_disconnected_header( + &backend, + a1_number, + genesis_hash, + H256::from([123; 32]), + false, + ); + { + let displaced = + blockchain.displaced_leaves_after_finalizing(a3_hash, a3_number).unwrap(); + assert_eq!(blockchain.leaves().unwrap(), vec![a4_hash, a1_hash]); + assert_eq!(displaced.displaced_leaves, vec![]); + assert_eq!(displaced.displaced_blocks, vec![]); + } + + // Import block b1 which has the genesis block as parent. + // g -> a1 -> -> a3(f) -> a4 + // \-> b1 + let b1_number = 1; + let b1_hash = insert_disconnected_header( + &backend, + b1_number, + genesis_hash, + H256::from([124; 32]), + false, + ); + { + let displaced = + blockchain.displaced_leaves_after_finalizing(a3_hash, a3_number).unwrap(); + assert_eq!(blockchain.leaves().unwrap(), vec![a4_hash, a1_hash, b1_hash]); + assert_eq!(displaced.displaced_leaves, vec![]); + assert_eq!(displaced.displaced_blocks, vec![]); + } + + // If branch of b blocks is higher in number than a branch, we + // should still not prune disconnected leafs. + // g -> a1 -> -> a3(f) -> a4 + // \-> b1 -> b2 ----------> b3 ----> b4 -> b5 + let b2_number = 2; + let b2_hash = + insert_disconnected_header(&backend, b2_number, b1_hash, H256::from([40; 32]), false); + let b3_number = 3; + let b3_hash = + insert_disconnected_header(&backend, b3_number, b2_hash, H256::from([41; 32]), false); + let b4_number = 4; + let b4_hash = + insert_disconnected_header(&backend, b4_number, b3_hash, H256::from([42; 32]), false); + let b5_number = 5; + let b5_hash = + insert_disconnected_header(&backend, b5_number, b4_hash, H256::from([43; 32]), false); + { + let displaced = + blockchain.displaced_leaves_after_finalizing(a3_hash, a3_number).unwrap(); + assert_eq!(blockchain.leaves().unwrap(), vec![b5_hash, a4_hash, a1_hash]); + assert_eq!(displaced.displaced_leaves, vec![]); + assert_eq!(displaced.displaced_blocks, vec![]); + } + + // Even though there is a disconnect, diplace should still detect + // branches above the block gap. + // /-> c4 + // g -> a1 -> -> a3 -> a4(f) + // \-> b1 -> b2 ----------> b3 -> b4 -> b5 + let c4_number = 4; + let c4_hash = + insert_disconnected_header(&backend, c4_number, a3_hash, H256::from([44; 32]), false); + { + let displaced = + blockchain.displaced_leaves_after_finalizing(a4_hash, a4_number).unwrap(); + assert_eq!(blockchain.leaves().unwrap(), vec![b5_hash, a4_hash, c4_hash, a1_hash]); + assert_eq!(displaced.displaced_leaves, vec![(c4_number, c4_hash)]); + assert_eq!(displaced.displaced_blocks, vec![c4_hash]); + } + } #[test] fn displaced_leaves_after_finalizing_works() { let backend = Backend::::new_test(1000, 100); @@ -3156,6 +3302,15 @@ pub(crate) mod tests { assert_eq!(displaced_a3.displaced_leaves, vec![]); assert_eq!(displaced_a3.displaced_blocks, vec![]); } + { + // Finalized block is above leaves and not imported yet. + // We will not be able to make a connection, + // nothing can be marked as displaced. + let displaced = + blockchain.displaced_leaves_after_finalizing(H256::from([57; 32]), 10).unwrap(); + assert_eq!(displaced.displaced_leaves, vec![]); + assert_eq!(displaced.displaced_blocks, vec![]); + } // fork from genesis: 2 prong. let b1_number = 1; diff --git a/substrate/primitives/blockchain/Cargo.toml b/substrate/primitives/blockchain/Cargo.toml index aedd720612c..bd0daaf63c0 100644 --- a/substrate/primitives/blockchain/Cargo.toml +++ b/substrate/primitives/blockchain/Cargo.toml @@ -19,7 +19,6 @@ targets = ["x86_64-unknown-linux-gnu"] [dependencies] codec = { features = ["derive"], workspace = true } futures = { workspace = true } -log = { workspace = true, default-features = true } parking_lot = { workspace = true, default-features = true } schnellru = { workspace = true } thiserror = { workspace = true } @@ -29,3 +28,4 @@ sp-consensus = { workspace = true, default-features = true } sp-database = { workspace = true, default-features = true } sp-runtime = { workspace = true, default-features = true } sp-state-machine = { workspace = true, default-features = true } +tracing = { workspace = true, default-features = true } diff --git a/substrate/primitives/blockchain/src/backend.rs b/substrate/primitives/blockchain/src/backend.rs index a928217d588..2accd4dad12 100644 --- a/substrate/primitives/blockchain/src/backend.rs +++ b/substrate/primitives/blockchain/src/backend.rs @@ -17,7 +17,6 @@ //! Substrate blockchain trait -use log::warn; use parking_lot::RwLock; use sp_runtime::{ generic::BlockId, @@ -25,6 +24,7 @@ use sp_runtime::{ Justifications, }; use std::collections::{btree_set::BTreeSet, HashMap, VecDeque}; +use tracing::{debug, warn}; use crate::{ error::{Error, Result}, @@ -228,6 +228,7 @@ pub trait Backend: // // FIXME #1558 only issue this warning when not on a dead fork warn!( + target: crate::LOG_TARGET, "Block {:?} exists in chain but not found when following all leaves backwards", base_hash, ); @@ -254,16 +255,35 @@ pub trait Backend: ) -> std::result::Result, Error> { let leaves = self.leaves()?; + debug!( + target: crate::LOG_TARGET, + ?leaves, + %finalized_block_hash, + ?finalized_block_number, + "Checking for displaced leaves after finalization." + ); + // If we have only one leaf there are no forks, and we can return early. if finalized_block_number == Zero::zero() || leaves.len() == 1 { return Ok(DisplacedLeavesAfterFinalization::default()) } - // Store hashes of finalized blocks for quick checking later, the last block if the + // Store hashes of finalized blocks for quick checking later, the last block is the // finalized one let mut finalized_chain = VecDeque::new(); - finalized_chain - .push_front(MinimalBlockMetadata::from(&self.header_metadata(finalized_block_hash)?)); + let current_finalized = match self.header_metadata(finalized_block_hash) { + Ok(metadata) => metadata, + Err(Error::UnknownBlock(_)) => { + debug!( + target: crate::LOG_TARGET, + hash = ?finalized_block_hash, + "Tried to fetch unknown block, block ancestry has gaps." + ); + return Ok(DisplacedLeavesAfterFinalization::default()); + }, + Err(e) => Err(e)?, + }; + finalized_chain.push_front(MinimalBlockMetadata::from(¤t_finalized)); // Local cache is a performance optimization in case of finalized block deep below the // tip of the chain with a lot of leaves above finalized block @@ -273,6 +293,7 @@ pub trait Backend: displaced_leaves: Vec::with_capacity(leaves.len()), displaced_blocks: Vec::with_capacity(leaves.len()), }; + let mut displaced_blocks_candidates = Vec::new(); for leaf_hash in leaves { @@ -306,11 +327,11 @@ pub trait Backend: continue; } - // Otherwise the whole leaf branch needs to be pruned, track it all the way to the - // point of branching from the finalized chain - result.displaced_leaves.push((leaf_number, leaf_hash)); - result.displaced_blocks.extend(displaced_blocks_candidates.drain(..)); - result.displaced_blocks.push(current_header_metadata.hash); + // We reuse `displaced_blocks_candidates` to store the current metadata. + // This block is not displaced if there is a gap in the ancestry. We + // check for this gap later. + displaced_blocks_candidates.push(current_header_metadata.hash); + // Collect the rest of the displaced blocks of leaf branch for distance_from_finalized in 1_u32.. { // Find block at `distance_from_finalized` from finalized block @@ -318,9 +339,22 @@ pub trait Backend: match finalized_chain.iter().rev().nth(distance_from_finalized as usize) { Some(header) => (header.number, header.hash), None => { - let metadata = MinimalBlockMetadata::from(&self.header_metadata( - finalized_chain.front().expect("Not empty; qed").parent, - )?); + let to_fetch = finalized_chain.front().expect("Not empty; qed"); + let metadata = match self.header_metadata(to_fetch.parent) { + Ok(metadata) => metadata, + Err(Error::UnknownBlock(_)) => { + debug!( + target: crate::LOG_TARGET, + distance_from_finalized, + hash = ?to_fetch.parent, + number = ?to_fetch.number, + "Tried to fetch unknown block, block ancestry has gaps." + ); + break; + }, + Err(e) => Err(e)?, + }; + let metadata = MinimalBlockMetadata::from(&metadata); let result = (metadata.number, metadata.hash); finalized_chain.push_front(metadata); result @@ -336,11 +370,13 @@ pub trait Backend: let parent_hash = current_header_metadata.parent; if finalized_chain_block_hash == parent_hash { // Reached finalized chain, nothing left to do + result.displaced_blocks.extend(displaced_blocks_candidates.drain(..)); + result.displaced_leaves.push((leaf_number, leaf_hash)); break; } // Store displaced block and look deeper for block on finalized chain - result.displaced_blocks.push(parent_hash); + displaced_blocks_candidates.push(parent_hash); current_header_metadata = MinimalBlockMetadata::from(&self.header_metadata(parent_hash)?); } diff --git a/substrate/primitives/blockchain/src/lib.rs b/substrate/primitives/blockchain/src/lib.rs index eabbbcf50d9..305b7f6afec 100644 --- a/substrate/primitives/blockchain/src/lib.rs +++ b/substrate/primitives/blockchain/src/lib.rs @@ -24,3 +24,5 @@ mod header_metadata; pub use backend::*; pub use error::*; pub use header_metadata::*; + +const LOG_TARGET: &str = "db::blockchain"; -- GitLab From b862b181ec507e1510dff6d78335b184b395d9b2 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:04:37 +0300 Subject: [PATCH 045/252] fix: Update libp2p-websocket to v0.42.2 to fix panics (#5040) This release includes: https://github.com/libp2p/rust-libp2p/pull/5482 Which fixes substrate node crashing with libp2p trace: ``` 0: sp_panic_handler::set::{{closure}} 1: std::panicking::rust_panic_with_hook 2: std::panicking::begin_panic::{{closure}} 3: std::sys_common::backtrace::__rust_end_short_backtrace 4: std::panicking::begin_panic 5: as futures_sink::Sink
>::poll_ready 6: as futures_io::if_std::AsyncWrite>::poll_write 7: as futures_sink::Sink<&alloc::vec::Vec>>::poll_ready 8: as futures_io::if_std::AsyncWrite>::poll_write 9: as futures_sink::Sink>>::poll_ready 10: yamux::connection::Connection::poll_next_inbound 11: as libp2p_core::muxing::StreamMuxer>::poll 12: as libp2p_core::muxing::StreamMuxer>::poll 13: as libp2p_core::muxing::StreamMuxer>::poll 14: libp2p_swarm::connection::pool::task::new_for_established_connection::{{closure}} 15: as core::future::future::Future>::poll 16: as core::future::future::Future>::poll 17: as core::future::future::Future>::poll 18: std::panicking::try 19: tokio::runtime::task::harness::Harness::poll 20: tokio::runtime::scheduler::multi_thread::worker::Context::run_task 21: tokio::runtime::scheduler::multi_thread::worker::Context::run 22: tokio::runtime::context::set_scheduler 23: tokio::runtime::context::runtime::enter_runtime 24: tokio::runtime::scheduler::multi_thread::worker::run 25: tokio::runtime::task::core::Core::poll 26: tokio::runtime::task::harness::Harness::poll 27: std::sys_common::backtrace::__rust_begin_short_backtrace 28: core::ops::function::FnOnce::call_once{{vtable.shim}} 29: std::sys::pal::unix::thread::Thread::new::thread_start 30: 31: Thread 'tokio-runtime-worker' panicked at 'SinkImpl::poll_ready called after error.', /home/ubuntu/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quicksink-0.1.2/src/lib.rs:158 ``` Closes: https://github.com/paritytech/polkadot-sdk/issues/4934 --------- Signed-off-by: Alexandru Vasile --- Cargo.lock | 104 +++++++++++++++++++++----------------------- prdoc/pr_5040.prdoc | 11 +++++ 2 files changed, 60 insertions(+), 55 deletions(-) create mode 100644 prdoc/pr_5040.prdoc diff --git a/Cargo.lock b/Cargo.lock index aad15fe033d..160e7031af7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1206,7 +1206,7 @@ checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ "event-listener 5.2.0", "event-listener-strategy", - "pin-project-lite 0.2.12", + "pin-project-lite", ] [[package]] @@ -1260,7 +1260,7 @@ dependencies = [ "log", "memchr", "once_cell", - "pin-project-lite 0.2.12", + "pin-project-lite", "pin-utils", "slab", "wasm-bindgen-futures", @@ -1274,7 +1274,7 @@ checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" dependencies = [ "async-stream-impl", "futures-core", - "pin-project-lite 0.2.12", + "pin-project-lite", ] [[package]] @@ -1315,7 +1315,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.12", + "pin-project-lite", ] [[package]] @@ -5352,7 +5352,7 @@ checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.12", + "pin-project-lite", ] [[package]] @@ -5362,7 +5362,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ "event-listener 5.2.0", - "pin-project-lite 0.2.12", + "pin-project-lite", ] [[package]] @@ -5659,9 +5659,9 @@ dependencies = [ [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -6231,7 +6231,7 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.12", + "pin-project-lite", "waker-fn", ] @@ -6242,7 +6242,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "futures-core", - "pin-project-lite 0.2.12", + "pin-project-lite", ] [[package]] @@ -6297,7 +6297,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.12", + "pin-project-lite", "pin-utils", "slab", ] @@ -6755,7 +6755,7 @@ checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http 0.2.9", - "pin-project-lite 0.2.12", + "pin-project-lite", ] [[package]] @@ -6778,7 +6778,7 @@ dependencies = [ "futures-util", "http 1.1.0", "http-body 1.0.0", - "pin-project-lite 0.2.12", + "pin-project-lite", ] [[package]] @@ -6815,7 +6815,7 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.12", + "pin-project-lite", "socket2 0.5.7", "tokio", "tower-service", @@ -6838,7 +6838,7 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.12", + "pin-project-lite", "smallvec", "tokio", "want", @@ -6890,7 +6890,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.0", "hyper 1.3.1", - "pin-project-lite 0.2.12", + "pin-project-lite", "socket2 0.5.7", "tokio", "tower", @@ -6942,6 +6942,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "if-addrs" version = "0.10.2" @@ -8059,9 +8069,9 @@ dependencies = [ [[package]] name = "libp2p-websocket" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3facf0691bab65f571bc97c6c65ffa836248ca631d631b7691ac91deb7fceb5f" +checksum = "004ee9c4a4631435169aee6aad2f62e3984dc031c43b6d29731e8e82a016c538" dependencies = [ "either", "futures", @@ -8070,9 +8080,10 @@ dependencies = [ "libp2p-identity", "log", "parking_lot 0.12.3", - "quicksink", + "pin-project-lite", "rw-stream-sink", - "soketto 0.7.1", + "soketto 0.8.0", + "thiserror", "url", "webpki-roots 0.25.2", ] @@ -12589,9 +12600,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" @@ -12669,15 +12680,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -15072,7 +15077,7 @@ dependencies = [ "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.12", + "pin-project-lite", "windows-sys 0.48.0", ] @@ -15084,7 +15089,7 @@ checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" dependencies = [ "cfg-if", "concurrent-queue", - "pin-project-lite 0.2.12", + "pin-project-lite", "rustix 0.38.21", "tracing", "windows-sys 0.52.0", @@ -15653,17 +15658,6 @@ dependencies = [ "rand", ] -[[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 0.1.12", -] - [[package]] name = "quinn" version = "0.9.4" @@ -15671,7 +15665,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" dependencies = [ "bytes", - "pin-project-lite 0.2.12", + "pin-project-lite", "quinn-proto 0.9.6", "quinn-udp 0.3.2", "rustc-hash", @@ -15690,7 +15684,7 @@ checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" dependencies = [ "bytes", "futures-io", - "pin-project-lite 0.2.12", + "pin-project-lite", "quinn-proto 0.10.6", "quinn-udp 0.4.1", "rustc-hash", @@ -16164,7 +16158,7 @@ dependencies = [ "mime", "once_cell", "percent-encoding", - "pin-project-lite 0.2.12", + "pin-project-lite", "rustls 0.21.7", "rustls-pemfile 1.0.3", "serde", @@ -22063,7 +22057,7 @@ dependencies = [ "mio", "num_cpus", "parking_lot 0.12.3", - "pin-project-lite 0.2.12", + "pin-project-lite", "signal-hook-registry", "socket2 0.5.7", "tokio-macros", @@ -22120,7 +22114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", - "pin-project-lite 0.2.12", + "pin-project-lite", "tokio", "tokio-util", ] @@ -22163,7 +22157,7 @@ dependencies = [ "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.12", + "pin-project-lite", "tokio", ] @@ -22230,7 +22224,7 @@ dependencies = [ "futures-core", "futures-util", "pin-project", - "pin-project-lite 0.2.12", + "pin-project-lite", "tokio", "tower-layer", "tower-service", @@ -22248,7 +22242,7 @@ dependencies = [ "http 1.1.0", "http-body 1.0.0", "http-body-util", - "pin-project-lite 0.2.12", + "pin-project-lite", "tower-layer", "tower-service", ] @@ -22272,7 +22266,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", - "pin-project-lite 0.2.12", + "pin-project-lite", "tracing-attributes", "tracing-core", ] @@ -22716,12 +22710,12 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.4.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", - "idna 0.4.0", + "idna 0.5.0", "percent-encoding", ] diff --git a/prdoc/pr_5040.prdoc b/prdoc/pr_5040.prdoc new file mode 100644 index 00000000000..62b175c1d64 --- /dev/null +++ b/prdoc/pr_5040.prdoc @@ -0,0 +1,11 @@ +title: Update libp2p-websocket to v0.42.2 + +doc: + - audience: Node Operator + description: | + Fixes a panic coming from the libp2p-websocket which stops the node. + This fix ensures that polling multiple time after error results in an error instead of panics. + +crates: +- name: sc-network + bump: minor -- GitLab From b3cabd853a0e70d0eceff41a8f34b5148bb82b94 Mon Sep 17 00:00:00 2001 From: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com> Date: Wed, 17 Jul 2024 21:56:16 +0200 Subject: [PATCH 046/252] Fix landlock presence test (#5037) Closes #4951 (hopefully) @alvicsam can you please check if it passes in the new environment? --- polkadot/node/core/pvf/tests/it/main.rs | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/polkadot/node/core/pvf/tests/it/main.rs b/polkadot/node/core/pvf/tests/it/main.rs index d62a1aef230..9ad48665751 100644 --- a/polkadot/node/core/pvf/tests/it/main.rs +++ b/polkadot/node/core/pvf/tests/it/main.rs @@ -523,20 +523,17 @@ async fn prepare_can_run_serially() { #[cfg(all(feature = "ci-only-tests", target_os = "linux"))] #[tokio::test] async fn all_security_features_work() { - // Landlock is only available starting Linux 5.13, and we may be testing on an old kernel. let can_enable_landlock = { - let sysinfo = sc_sysinfo::gather_sysinfo(); - // The version will look something like "5.15.0-87-generic". - let version = sysinfo.linux_kernel.unwrap(); - let version_split: Vec<&str> = version.split(".").collect(); - let major: u32 = version_split[0].parse().unwrap(); - let minor: u32 = version_split[1].parse().unwrap(); - if major >= 6 { - true - } else if major == 5 { - minor >= 13 + let res = unsafe { libc::syscall(libc::SYS_landlock_create_ruleset, 0usize, 0usize, 1u32) }; + if res == -1 { + let err = std::io::Error::last_os_error().raw_os_error().unwrap(); + if err == libc::ENOSYS { + false + } else { + panic!("Unexpected errno from landlock check: {err}"); + } } else { - false + true } }; -- GitLab From 12f352cca88992997992f5af659ea941a58d98d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Wed, 17 Jul 2024 22:02:35 +0200 Subject: [PATCH 047/252] Remove accidentally added files (#5052) --- .gitignore | 1 + master.wasm | Bin 2462034 -> 0 bytes modified.wasm | Bin 2462034 -> 0 bytes substrate/kitchensink_runtime.wasm | Bin 2462034 -> 0 bytes 4 files changed, 1 insertion(+) delete mode 100644 master.wasm delete mode 100644 modified.wasm delete mode 100644 substrate/kitchensink_runtime.wasm diff --git a/.gitignore b/.gitignore index 2f1631fb4b9..e3e382af619 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ *.orig *.rej *.swp +*.wasm **/._* **/.criterion/ **/*.rs.bk diff --git a/master.wasm b/master.wasm deleted file mode 100644 index 7ebb14371243afa4956a107374b27a4e686f0360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2462034 zcmX_mby!8~L6AM$sbZ-?K22Xmtp|JTBrz-va2UogSGi zJw#I@dGTPTj$jdpoU^ps${IjURjMTFB|4ymBJ&$9k+Phz z6b5Is8AUgv+^5!6R%75V>Lp|PPRp;~uZOS4YQ_pMa$I>SdKN6#rDC;%ABF1eKF~hx04+r{U=0 ziJHT8e17AWqp6)jiu&|G#TJ zujcao&J6v=RMbz7|LHnb@Iz`W?yk~hk_?5OnpG0HW3C0)()w6j4Um zyD8BQ5CAh$=|ogJ?MM-{Oawri6p(;gBW69k`B4`O8)Z}u-OP?q0o~MYiZzNuz%vzv zoJuPhN=j8T0*}Xy8wRVR3)&H~Mv)0PG62a1lo)`d0+b9uVu4M8m`}LU!*H%Bf?_*x z6k%~%a*sQ99!F4d1AkE>hgWfXmd!vKXR#W;LIQ_Vu_!-U0*9uWlOP(Z?wlIGO~O}> zcWNUxDn!~EnX&_14~L##3s}MgMVXiNGf^BV$*P_ zD_P5q66-7|Wkr&*6pkk|#->3EBN-Gvr|}gAG8Ex(coljw*yC`RC_SXuM5i$p5;E9h zau6jkMyFvY$uPxWa5xm6fQwLdypv#2r2IN2N!u_|bR{e%d$t%5hh6$UYG_(i)OcwKV(e!%5EmV%$Pu`T^yI9kj8`v zRp4h-A=FNbBUVTg(q2(QA^9E8{vO^CzfGnP&CVdr0UV{&ZkOf z)>C=%;x3s#viaueUG^uibG=2`#scLf1=;kaQsoU_$d9Lz<<(pi#;|d|<=7gbV6zwP z=}slc+4RzZvb|w@FKXQvPpL8IxgA4-Bl^%ApThl>le81|frO~n_~1A=A)!BDG-%3QU=b)hQEhjf%o5 z1|fpQgEBu_U!jsv!ln5ExVYd?C~H)aXy~3$lqsr6Dia{s7GR5O^%KzF0*=M8i+dE1 z2hQTi*~D5=QVT`{Q*lIila-`UDB9L@zS!*S9Rx&s*WG=FRB9;=8)~AK5 zB#b*RZHG!(x#`ByFO~<|K8aYH`-|$FayO)eNS9KW3r~ z;IPt4*lactqYD6z|B^Kdi(Tff z^lzvQ(BVN9ZQ?7dlPT1A zZ1tH;Vzd;}BzPnUH-#iAGqMoG&H^dY-tPS@)`gZz?jKjnl*r`&xqH*h&MImwE9R05 zk?kmr4R*1E>|x<)I_1#21NnN+(L1^Zp+9>jPY$6np?l{_4+M>!^X)#H{8n~W1Hu3lx zuK{H{bMmto>TRrq*)4Nd2Ug$Yu-RDIlXiSDFsVtqy%Kt`GzI}^Zd%=gv!7vaHAvy` zu@U?=PqfUX0Uasn-UXes^6ryViv_M}bq8Z6+syJ+-iLgn7 zBGoaOEM1KWsrs7al387i2(kLe<%tAcwMn72I0bRkG&HQB|p3%qEjFqzQy*v?zD=wIEC{`|6_+ySt zAZ)>Y-hqFqqz-pz6P$GLx zm;kYED^Q|rVu&-cPKCvhH;E`j)~IXm;;w=c8mzexm=uaL?6NUDs3dXL%#)xutH8MN z+AS2{5VsONFHHEW?(Dn?rF(J7<@}Lx|A|Vwi_FH(r+!wB3&jM0d z3YNt7&B69YI~jpIid`&=xcZ6ENM9j(682xx1`0>si(x=jViJ?%8wNwnZge_{3jk~g z82Gna4ug(x3FSi>ZZR2R8?sKQA5BD}EiF&PPb#a2ugN9f0q|qvL}OHx=eO=>Jwnm8 z%QK3*VsJ)LRF%gf@?$+hXBS2oMfOV1QIJp|7Nm=aeuIedwBJE;30csSg|yAz_K^HW zo6RicKrBIu2F8SXbAR`LG5wG`6eP> z1G$PxdaZ#ZigHS%O3dKXk2cbe@KM|^yl>V{N^LN5*&)(zSg|1zn6>bG(hn@47-l|Ym{Hl0PNZ%-O9nK=^-2C0$Yh+u-8={RBeagaQYPspOB{m29=tyP_DAK0|wb!Sw}=4GcIv9 zt6-khrP15xnr}EPJed}G%qTK6`2+a8afG#fiLX2|Yc4!PJ-2LeN_mw;jA{f^9f^U; zA70sJil4Ofj`s-l`R-w4(c5RzUdW->Q}=`9KBs z|2R&Bu!*NCV2l2NSxdBn<%i`(BrA&v0{cWxd8zCa4l1Lwz1FbCw3dOQk2x`C}@MY#tybHi@Q$HYdf?WCs+ZOQd0!GmaUCg|^inHA|skpVOIRp5>_}-!k&s%365#!A_`f6yG zu!GGJsxYOYrcfo-5Hh2o^MfV|ED%Ou%#UFHBs=ghCdxRWaQ|n)U+PoTn1!CQtOqy; zaj(2O6WB?tR!|+$z+~V^;Ee*n9zHA`gGr4FBoF5XN78^Zw@2`sNf0&C!~>+lc|Q=$ z(z}?&jM-M*BN&?0k@BpgXsmdFy^5s5Z>9nTY44!lD>9 z+ME+Yvi?+(G)HK3G#mJ%5?FH3rC%3TSB6nB}C&j20Z?vazYPev3v?)00=qi`g@m)TXyb#z-hLjU3B+12V4^c8_CaNpsL= zq_d&QAJKUU?FRsJ(sezkyy}jS(~DG$DDuorN^Mvf9uekWN|JfhG}b&=ppASQx_m9v z2``mIT@O-5#mP8|)66He5C`~#M!zNx`QnIe`+=&NDD$(GKrf6JOc)zSIRjN9QiBl6 zY-3?*D+*0u^~P$`uyR89txZdX^w9OFoPkI9{xRZF`URiM9Lw<@mG4VULfi^nx< zIR#(zmVru0a?}6_v^`i`mynOZ%cQ;s6RzSz-S)(|sm|~{v6i3-!T-#2oACP)$#rOVE z#0+V;1&T_`r-IWy z78K&L*imL#N5@W6k!)tcKVdDk@O#<%xb%|t()NDruGq4Rv+OhL>$iOm7@=i00Yk6* zP^ISnctPn&|0E9*;AWa;da3cI!7rGxSvdYiZeak!)kO$cGUXu{y_;vLiC$ z5Dc8LrSyojxL^`}xinJkhHgMK``fqt4A`XF{hqjiG@XjSbppbN<}YyO2y*a-bY(7Z z1L-vTcs9u{MDd5JJVh)9NMCEjgrLNHs`q01JI1!@@)px@=Ut9grYB1~mgbIR3n3lK zf01(CSr-^BMEKGFHYEay+y^J^rT~v}UT81q@$ z362Z5!I#d5_uA>?S|K1K2D{>)DNTeti z<(e}cxw-WkjFNk0V-l2((G7I;N~2X&w0y)>6M$R>dLQBajyz@D9Nav54TZ&V@LtC< zyz)|Uh%}mlmX&Lg08>F;VM+i=jj>o!HuvK=l*H%}y)=m}xpjLWrDiG;W zB}p0v4kRPd~cj<|A>l+JY$|y`5qDsp)8pB|S^3eozeSL$RyaVns z9`65fkkdp*R}7xx`1(`&Z|rn#E)Fwt9!?W#qf6<8gfw(LBa>1kC;QsbZM`UG)Wn6f zbUiW>9u~hCmH&}4DlRR=PXaZ{JLqd0Pp7OzB2kgiX}O4xk#TWyVs@t-Z6;u+XH?p= z44|M^nq6p-IF@m+m^epqQ)?}Et7LHUyi$S}HB@Rj85>WJ)*-TG$_~ppxu_kj&{W4b z6Lksnh;!46Sklwe6X8jY9C(#=M%uLqsD1{(G08*vl}r%}6F}9OD-qpTj}#34s%1$e zO$7z%%RfmIP0I<9PD;j8$!$_t1Cu_TqS4ZxP8sbzk_IxC3g)sX6e+}{ zqa_+(7?i4M7tEwoIWBjPVjG}|!pCn=N*nCBIcN>Y*|k~I@F#Y$i1qM!SmvR67^seQ z(7Cy^bXEfCttn$syuunst>XHI%EFq$8Y689QYx-;E=4Vo26R1R1LVq}Q__}^PABIv zD78{{(?TM`E0M`4UnNSz%hdXBf!^yIDL_w8SvlOngA1}g+w543 zf|6A>ietj)#1A$*yrNF-?0DN6e^}BkoZhdW#m<{pLl7ohMA|Xtd^1~2Z8iB*E5{mT z|CyYh-g&h(Vf->#H(0%W-I!6@-ejR=Am28(vUpl`@88@ZesFu%@fz3TU{1WzyzL3r zykJt%XoYDP_vK{Nt_Hg;PmMKoeRaJd(YpZr$FKU)4MUJ4Ve9B|xUCVvM<94K9Cx zutvVdUyBaS4ht2h=+z(YVe6)hElnPlPr1kEwF@TaO_t4w011`z4#d8BjR)HL;8`O} z;FJI2U3L_<(GT;gMHh+YreAj}7A^s|rY>!ZAud&Z!@+*{ci+QT!+b;ThUym#x>`e` z?)|G8X+Twroz_pMAaM7(31K^3Y#jvG$ZetF4mgz$G9AJ8{J2X^Wea9w=Y3f zs~tRk-EB_*)3e1VAHowj_n5$6hO5q|g*xUddLBkZO~d+P?vIc+Mynppi^P>yjZF(! zmB}GhY6N!H^HU2ICXLZ#z8LXGUwGV>$SN}|2ny3i?hdBE4K@C{{T?#=Mn{E@GO@Kt zqa)ay++W1+yffUxa@Ea6bKD0o5NlJ*Js0KP=s#>yafXlTZOZrQw`YktGHy$4t0o

n}^rE&=x)Z;yZklvwL=ZmUG{0RO1&MfoPb+6e`<~8r9S)@u4NWMkO&n*1y*54Akyx}s&R>G_7VlQvC#wUh16JGe z_Junv*l|KCDGC})YT`N|lqbFJruo4hc-Y=0{-dkaO1J20!mchMWa6gG*t*Gi99PMkpSTl(P*qe` zYWqx>z7f8+0|5Y9HBJpveI}ni{^+BIS)an;d3o7-slkzfH&cNP*Pf~}s!khs=pE-p zr}%^I)_G4=WS~A1H^1hlV7&G7)22LNt491Ezex^1aQL%DLSM+SF%E1UU!3yVUqwd6 zr#~zqwOZ9$BkO>sH9wm(?rWJmxiz~~nd+rWr;DfvnikqWGgDI|q`E^+1Lhw173?Znh5h*5P z>Q*HQ^4HQ02)1{lxp48A>>#`G^bH8u@UPy&_i#DwaC2E*(I{J_KR>cC2_S4(s9y+P zkO>G_UC=3c{eHF0qQjtCz2|6sA-75Q{NmSldt(V-90QlCD)>f7ZuESx(O7;+^{OeC zU&(so55MN{j<)b$_rbt$iM=yX_hvu(xiZIfgY&cMRj1U|Gegj-6O&(C1gWd)X~#m_ z>Qj^96i&rr;yRRja|PJbw2kResg#Uw`>~+>@WXO&*7|J^wnx@ec^7I&19s@uqPh z0}1{|h?`4A^OIjdK=Zow0vPib&Uee;SCxh^cC2s}m+JkXyp!Ot z4jdE^VPsL`!c%aw5_u$xN<#bbNNBrDsu|AFZRh>3$r+Qfs`&+K167yXRqJsNQL#mnd!_FrAipa_JQ z$fS%9cG~JrFvuXq&@+i(!b#6SH>j(uv~tp(Mr?NjUfHoI+iP!u$IuN7YA&?Mt58>x z@hU5|l6&hAF;U!V^+@(*SLQ9f7Fj+ziX<$rqjad~+qEm{z`5lTjeWS3k0B%5Oy!_L5v)+Zx#kB4#7Y0x04KY~FT`<=oVkfVaGFk_DN3lCQr z^_*0xk$u5vZ^{Y+X0K4L0_4=uHK?g`wAWsSCtxR{>ot^%*LWif4NfHeVR187o(D@> zo4srG{jo-F&Reotr%*B*BwkT3R-N)q%)}mNUACe@1LH`=y!5zi#!Nhy*PzJHtQP+r zFV2x~)ef<>HQB4@GQ>B5GxMBc z*<(TJJicS(``g>wGl$L^4i%n3bQJ%c?Q9=$im#ZNiBBH+Heyr!M(F#dB^o&KeqZP* z7y9p~3)!pRGePNl+gF@bJIIOMNPTVMn)mwC+Pu8EKMl4JW@Z*K6%`F<2GiQPhDB`& zpBFf*W)FRvRE~Wu6yEtYs2n?zQKODyudJsF22}U$F1chz4L~?>Sb*m z+332@zuz$4dvfR+*}!;kW-~H)cnM*&`1bo;!67?=xw&zOXRegX`;u zC)TH7mzRx1_i(oZl82D#cOnv#OQNULZHOS1>iK_k2TwmV@O)t0nU~^Yx9>cTXr4>H znb98}Jil2qJYu+ca?uT$G2VNrA2;dGn2{6v4*Agek0?FzJrl1xN7d|T@#DfxoygO? ztIn^JfW=26)z)n;V^&+2l(rCtyHl#%_qhuM%rmRAT}3A)d`(V*t-qO=)U)60*`*ad zKS%!-z8GF;OFvsJ*$aq%`9LqEawYLhkXR)zH9kkOnxDPk6mEK$qHTRf5E94oO`f(X zB_dxr;31nW^SLd3O=@_8$rN{2NTr_Uk~LBN1N)OpjBu9Z$)U*1gJ=lv4=h2%4`pkQ zYlyFRrZt}dAp8#^DE14DWhl}6JcJX-KA=slb3$0;!9CbL<^APno92|0jsU?sf$JNo zF{T&(P#v}}fBy5RC~`_;zI)+!y@AZKD`!6UowSsu9~mwbcg_ba4~_q<^6h=${??28 zgrL*eVEXpaq)ZZ*V!(!V{WmKY{EdKw$93K7TdQM%P}qYc{@r$djR%W3Q~!r#vMCCM zOE+FvP023NW6g&ixE0^FO_iSIf{NdNZe02VDs4~T)QA-`OWdIV;-Meuc19+)pF6mP zCbNhB%QD(=S*Oj*8)8$hyl8a)9G0qFY8UZ!XuN`UC()OAqQ>hF!JEVT+4I%wtr;hZ zos+H12&Onwm9NMMF*T)GoK=&>4p$ZKJawKUADTm)zPC)eGZVwo8e@5Esa3nJ${il5 zqgpE`L7I0-Y!Q=BwI2dEl;|j=q@*M_u78ic>?42gaI@6NL#~D>ELl@W>^$YQap~_i zBlwVQFGYsC2tNM+k>!`?C6x``)IqIZ=Uwz6asTd_XG)?EI@p6-n&!(QJv4rn|F+ve zu#9i@U5upncwAwgXc8Kd?Gc*BfF)1!;ZLT=FB@$fCfMQ=A;&_K&k9dzgt;p^9aoZr^vS}iGd$g{n(NJ|~4UatSMSh$Q?o)1VJxUZW~mksl&i_3ky z__YWBve=+;ZQ*)kZmS*^IG?R=+f=Nbk}!7K_+rwXbK+69O!c1kH-UOK2i9)ZkCc~j zr&C+Ua00=elD#k$3+O{>`eRQb4|?vNaN>}&i5O#=u%=7!oy1qui;%CTsqd#o*rsyQ zOB~#%T_0rUpZ`qqp7>V_8ufUHtv6!5`yUa_Z=!M@BRwDG3|0+f7Gomu7s99 zbSNn^H=Q36{X6eEcjMK;fx*d3Imr)#BR#HJzXTGzbbP7**MXT`GI7VXpuf0$T9=_Y z_(LGYg==|ehT3$bb78_zv93AgxqP6)?!qm6#+AN*U4lEPKP0iIS^sfk;G09<3;CGM zh4rV}V9LaFBxliI=>fY1b8sgy>MTb+{C+)vgzUs*t z8*-9V6E>-uVIe9dF;gm%gwH=XX|p-lLM_?k}0xO4OV2>CqMW&ye^>_8jA=L z-lNXW<@k7~wQ!%^<&yUc`RM{vLbc<|1<<&V$&vH-$N;UGW!xRsqiZlM>NSgh-JsTC;H9_)rq*G$SX`^e_ z)xE;aXiD-PR`sWvt zadMpL!pGaMDw{23Ur65egudEHtZ(HUPI@^c@*;#k4htC;!cHQvp+mi z>Y|hwrXi;E(5HdlB8m4UzJvznKH+@KJ+ZXB8ULwc_vrU(aQ1wVA|Ocn$NK$aYuF{V zR+D8~O#D^l=r6wCB<%Tkv4F<~zx)|Kjr!`Mw}%vvx@WTp<5XTSIwn=5G>JoV+j|D6#(~EEiYs>GSLIwG4aMtA#H*bgR& z)@pP9^u%WPQZql$!s&W@ubDV$_FePbv>thA@Ua3r@9z{`@+b`Fy|2P1|K}j-kdjzU ztTNHKt4#0>vnNPh?)}||%^Ye31xZQ_-}xophC!$f&(trP1XHh4<Cr*5;9QkoX(orD$}8&{I-mJdJ@wH*jq1z@C+S<0I0B zujw0!pNE}ixM8-!TnC{F*LIKUDOJ0+To294w(Lmh*AETLU3)JA)~F94pDw9oxpBz- ze^~N%;F5>LXY)ye61>45>8?}=+UkhMjjrPVD&p-6RKA*$_-DOq;tMw!U3b5iS#5t| z$^R=MkdR>xdbcVkE}~v=QqAY?z5f$Y=|*t5#%Do1x?&+$R$#@LaOh@ul zG;d{)X1I{UxE4pJ{r;EXOu5f21~VbqPh-&xbzxuMWJO;6J&|emr?dYDmJe=Ud>jMO z*GZ);I(~XB>69lS?4)rWaCKh&7V>_xZ4} zwKG*y2`QTGqZNMV?2mp_y(aEUSH%+7lG3?k?h>%LqHW(~Il=SQ?fGnF9a$27UfNJ% zTepv>RYyx}dCb-PalK~AJ~yJinD!hao1+%cDmDB`^T(LF=H2RAotFJs^&fdv}uJKd=NSe126kX^Q99v-nc z<0Jmz{WM&#U_;2HUqTo6&JjI#L1PS_%SsYb?ura^Q%0xK1QWBc(}H$66RL*ZZcEwi zz!}|Bt{!5nWzf*9_1{g2dH5$V+x;S@^A*R~9sTgLuxzGlSBJmEWp+AJ>a=0@{XZ82 zbN@#LAXFA3Yj>Fi+B#s@4Q_(l=%M3#pmlWdyxxLMqwG#zmhmN>$~eJ zz@}}f)y+>3=j)70Jd)zP9th_ga;;~-etiBG$fiq@s59$y*W7AIet7UcBEDv;8Ycy~Sbsz5CCYhnwb$8;$D=ye!d>QX@HQC-CTb$FO_p3v;Z?Vp^h z6Zaz}PlZ9hnj=gn@T0j$S6sF~kWIY}>R(qWiK}+ZmQaD?~ADhz|CF{jt1w zL+>f#J@NmQ>;$z(Xx@lLAXT>WdGY?e@{#8Yr+88j#Q@z%iW<_#`qYRFOlI+In^onL zY#c<4UcEy~5_o;zUi(DQRcRUS{+D>aJ%2JN{{}Dg`(JcVe9VI=Pu_#BbFWQW!p{Vc zuukY?*aqO|R-`^{eiVZ>k)xF8{k4pY#|;T-wB?0_+5t zyzv`FjQC(X{A^3(u?rmH4(&K4Od)#-3(P3}+P|>iK^@H3#J8dN!R&$^@FO%L{iF}T zq5}clzZk*Pm_ZkR7>K#JISzeZl$9Y241XJlLst$Wf%!NaC>Z1CsS+=R{C}ChC_d#p z2+;{?k?To@W5fmjf<|om$o`Yonc45xbOs;N|Dhe<>5&tnmzux{&c5F4=|j444)}Sw zIj#E-icZ~f*?Q^GO&3A@xvN0#0IK;&JIyxj_@)yj=Uc~Tbjd@Xt>Zst@yRdyL-BM{ zUuZ-uFz{(TZbW?leww`fi+2$e`ekyY6T@8m5kr#g34?v+IB+v0RO7%e6#p;t$~4i- zw?e7MoQHQeKHKzRKt;uBAjZ%2?pB)Woll2}sW4?%aF@+-bbVLZ`^?neT@MEfX;I^0M}MMV23D0oEsy!&^3t(cD!%#_0=@Q9fF zw6vgnll+46>f7W-cPnEK*CUP8=Pyzel7nLOuf9mJ+3@7bZ|u|mF^iKpV16Xn%mEsK zvYEqyq7<?_Ua$ye)dOR;iX;cNHm>`A6eSb$S;Fq%hvAdg(HxpUcq#k?~z5f&A z89@9@+v1`l^_fN<30|?DuUE_*6wLl@;wz1JAS0>><11XS6%>`&u=G+fmS%cC_@XlP zfMjb8H$eRgs%dgIIpVpjeDeWfl=>JWX~>_Uf#8ewkud@VAJ1G%i?Th@bN9|vsfN+# z9LIOy?)$z@vX1(Q7jTj(12sM6KDv;f{oj@uQa22cFXJ6? z)~A{)pWk1fJ(ureR+M`1MU>5k$g!FCUM`0TwV%*IwEHKipKnV~4Q9k~$_^&(Un>x~ z#RB`z!oa^L+Bm0N`G0+_iEXSLTRt53`)~gugS=hGs{ftYaCFBWvz8;XuB$zBB-hE} zjnnc**N4U4lZajQn?3U>yP+&Xc`m=Ehl9rOe~R8FQJGH_s!usW=9a%)ZjWc%{a4J6 znSyx6=RMNLvdtoHOz^IknHHrw3<3fo9`771Dp)68-Zh#$-W{4&D)uL%7J>&9xi;}lSu&W++%tzS0`!ek!bT6V~ySBej@U01Y zk?^eMHr2b0jXi0LZ+{9Sx@MXqe%)KNvnI_Rg}gs(cy#})QDG^g+;uI+ds*UfU3-&# ze+zA2XnhfW6Qc2MvanS-;;QV!?2#_Xh|@wLdDraGEJj+%#O>tdZPntzB1T879=|(B zGyZzfT_VBu?hEU{Pn$3kO_k%>N6~~s+hwVt6F!sFJ?G$;E25hfWx*v0PveQDRide@R%t2?Ql zwT)kMdAl2Yce=*;?`yxL+00_4J>SZFU9)^6@{nd90oZ+6`81*-$pSCjuzXW}vSCqi z?$L4AA$8FB^97NrN$d&ISZ%h+&C!VXgrr{9 zu`aRl{-e6&Cyj4($TlhP*dgzA{#~PU=f-a8{cDN=R<4#m4G)rk@`J)(I?JK0Tfk>l1zEsRyS2JFT4;e3retQB+Ye#x*=4`QOUm*`7k%^7;1F*7B*l zMg7+>-nut!>t}mt$Tq285Q>MHU4Vbv`b6h{%b&(RAdBDS^DEgluQIn2_qz^ItMPad zlPwyi%K<>euTeej+J3Z0 ziu_-f-fxVZ4F2w`Uqy-r6|A?+z4jM*vVg5|@69CFqDBk*MlyULC~Wcb^9w?2UEbGO zU0QEUw+k*XQrNe4C&CpG*JWhhP6+?Kv_uK`mohkK|Fp z@!?VwA5rlb?$B7CUt;a8dj^extmBNVIKaAYtJ^{6IBq_p0&DwNGBN|QVI7$Ms|vwN zb}Rj8eNbJ$m3_26nE``QS*>g@Cl(iD<$EM!U>5x|x{ZpV>11JyjXsc@p?*cf;|VY*9Z)MZPIxvOpsx1+H{XZ zUiY4Qnz!(lpn1}7%63B|X;6k@u(7x~wbDJ`M;_sPMk^;R?bJZuG!ebdArzhHPS&>X z<>(J8c8)G5ELSPLD!=l6^c?ie@Iv(}?$H?#+b{G<@w)QN78@vi)KTbN2D<;G>ZjVH z-SO>i?QI2SK=f3#3dE*!^m24J+x4JgA4DVIoVE!+=Q8V$cV%zU$Y}HeOMk+#cbK7^ z2_$HoygzyMOmo<@oV;KKudQ}TqyR>EYx%wPJRuN(mHqwfQ(x2ofef$5lEl9oUU|93s2@2z{ytH4tIu?`)f^rx!lXvdR4x8+w|@aO%$&_VW2V#2W{#l9+~*^kJV} z{vsy5ydM5e`A|tr-!qk|i+#WJ*c9B{ZyA>AbvWB^`Pk0a>(D#tMYJWjF=;g^d?UR< z@c4JqXP|T6$4u_e#}gkj**_njFIz_m5Mq2c89S)G4(xf)(SL?9@}XOG82w7W+4>yH z!>W=;S-|hT1Wy)b$MW$3G)31s*Ctc5vViK9Y;JC zvV1RcX_7(7{QlFfOuDL?-09Na5>WJ{+ILoQ=hj zL6_PBzUpM}cEyM!MYZBji~XV&IG6gL;nniZ;MW#W6N;i1z{_ds>M%ji;k+JU8aMCf z^G}Psl2KoCdr+nYTLh40sh=xnxAt7a!Bv#svxp$u>F9?_ zuS&xlvwREf;D<^p=WH=DweROXIU3K~0koR8-ftSmj^}bC!sy;3GjQvR@=#!=S^h$S zzZu#_(0@?{fq!v2b}TG2gNY(3NSVx}&>_~8zu@CQjaTsI+1Xm+gCnrOQ*55m|`==BMMiXA!57#ohMY$5vOQj=eA^|SZle8|zd?a{q%x!! z_f9$sdFkNAQi04B2Mng4zkP6xk&>4H9jjzC!@U2PG?jjEHU36dC;W(cOITUK=YePc zXyWHczFogx^1;e{x?Ol|+hux9uBj7FSI06&n*ZB_==LUwXR73bYq~8#5At%OIUK2{ zIW1YjZcOmGN^3!`Db%Kh4(6B6=UPX)tul?(6d53YFNAO{$Jl>xh28! zmB2cq;K2SLQ~5@usd=QSn`U?XW*f2ol0T*j4If;gzvP-m)w(XJ!sj(#9zxv-I#Ys* z()GWzrv6cR9SkC+mB|72Y%q?N#EtB>411G@RwHOmniH-bQsqL^nUJd_3m134Wp_B0 zZ4$5FOiF|gvHHPBiDLg(Un^6hk08QyKn(mPveR&S!t0P|>U=TA48FlzyW-sVCk0BX zwO#4PRo-eZyIju^lE;#NWO@`fFQ{q6u;TIh|FCoxKy5sK8>cuwXwl-uy|`z$ z?pma1AZT%Sr$C_;D^`jHC~gf_C>mS}GI1+ z&F{Ay3!gLIE`=d)8@qCb?wOz0Q!SmJARNL;%e#3EFVzvb)|UhbONCw>3Yggh+hYz8 z(|#*%a{#&%xA_mn2bUNA4`DgLwFSyE5vnY-k`L05wD&{(4M%hyhCLQpDKwoQgu^pn z0tf&3z%d2>gq3Od2wqL+lG3Wsfb(IHgnmMw&9(e+7fBoC1)k}hbdI+LBY!L}@x#k6 z^vF%w9}#=57KwV`^pL-P#NmafT325WCaPlXY0@I5Mad?3*KHL!3B_o*;ii-htr!jz ztP@(ai9!qNY;sv_*%{?3B@geWafYQf_=c^)wG!!~6T#uEl+Zl6lAcWvaZkb2)nh~& z;X`uYV<7azM{pV^bTjN}gD2F7&7z5HI+r2%k2(+%rrDBtWcM!oZ1u3Cz|3Mhr_;a>68N;(+ChgRu0hH9wDvM5v~W_=@oLt`9fpsMu5Z zn)SOB&F6-{Vlw%V0VWfaJw8j|!r86wbnu0q~ z@ifZX**mfCG;G@HGz={2-y+bjL6i_VU2>WkAv)r7?Z=ASRmLgLiCmFbi9Jew-vn$O zTQ|J6JogcjAM0QrL(0w`PQpS83z3kQ+mLMukhAy1{wSwB)wP_Y1hQoI2?))Y=If%r zbNYAW+Y6O#)i@2?WUb24i}mj=K8>HI@0<}lV{0R-*(tEKN| zGKlsw>hP~U{3SdX@iXyCtj)4@Z_L!opk{&D`1qT{0tov$9or@ zi0p$@DoP%!XLy8?W{b8XuU>DN4UYczdf2Q5ErW&D%*AI9T!t47J&p2+?CDnYSUKQko zzi?>o&n-wERwx%~S%x|mydFz`DtH}FCBWLrk3NS^#Mk1r95jW17Yipoa-bnu;jVGK zP}XT;m@6g$2Xny1;~I+-o<aLM)@xJg3dW<_c*h?f?SmL$_e4_IyQ#0T$ zl=@IPDEp4@Hm@GrKcMrq+>wCiUifL>1K%xNkMGW&l~{uNxZJo~JQLjxcGvLguqmF{ zg%Gb+93QBEjYOnmI%K}M&cdwxQ`JQIfsV6?WC5Ez7?|i+;v_JhC2=={q#<`}g{vvI z!r4hslZiTd7~v20KeYqDV*gP3Uts-7;hz9UV3(7^KiRBhUB*Iy%H;L&LhmiBQD~Lc zkBRFk)k+O}IbMU0lm^{cejx5os)00qpt?bp1@w~UnP#$9De&*dA9tr1IP8A?DU=2# zY<{5d#)-E&{{&dO{nFQMR0=*h;(Q|ay)@4Krb~2}^g2(EPvCpOM223YuyBI)o>4Nk zKrhhw-G$P>FL<%8*^mZNFTa?c(v34|y~lOf>jYC#5QQldIA7(8%AOwetv?Bo)j~UM zTFRLXEBsfTmA@g2R(OyqSG_PHyK>$)+8px0IYPMy&4_G`aboDf9_jg5?E&JG1~^;8 zR*&1QEY0op99&y|9rMcA%OM}Bc(qu$Qa;~+{L-n||CO7M^xa(q&KQ?*1BtJvdJmK4 zD|=Hn(IS*TcNi#YS(nWsaU`sHnd`!$ppSD$XS1=N4uUyNw^~b7bHy@*8JK?!o z*{zvAbQ@Lu6S5msPyf2{azGi!VQ12UG{ZH@Iq&i&ZifU{04W5MHK)x?|MrmfB>t`8 zhWO2%PEZ@nnKXvPgAU{^AJJ{nyzLgh z@v0_6;C0C_DdiPJlU!K1@P8$IHywGT9CQUW?AIDWOP6;t`3qDss?TOYxQFHYKVs+$ z-$b$nYPT=FRY+`uu$H_1bG-j|T=51HMx6Z&nS5#|ywynnb^%=2jgW?Tqn23P;_AyW z{IM>Y(945Xyf%(>Uc=(6j5pZFF|{BWfYT4AmRDBikBgFW=IpEy>EQF;4sk_Up_dU8Ew>+{=DYOawyPe0)hda{zuI)NFL&sd?tf z3;WhWl*-D>8HN$g&yHlsG(9|^Q*(_086-*jX?ou2e$(bdnQX|sBOko6LOaG!=Ipfj z75LJnlf|gbp6}@t=F?v!Ifg#6KDc~~0oh+WJ|UQ(^3o+=(aGA^!g@F7WitQ%Usb>2 z%=l&uWNn{$9(>6}Ta`2D2lDv3+n+5sVOoxNby$`}URKW?$pkxVf49|eTLDdYJSz5@ zbYK{b0q0xEY1U4+HYM;!jBt5i=ahw=q~W<J5Yg`M$sFN`kzr))u3#bL;efv8(VC8q|fh@T(oJhe=8mt(nkPx4WHRJG+O zAsA~+X~KIe!$6cxD$B>eidvmk?ld*UR$gL#<~i&C(v@n6Pwy;LaJPdF)`y=n^kq|M zQYcIQM$DQl59+&UjM3X&LS482sD7Zu(WtAanWmXG?%h89Dqb$Gv!j-|K8 zvoJo8;xRa}a?{eFGDB3_=F&N4;A5vZ)O}(spxeFTWj0~GqGa&Imul^ZObumGI^jM+ zG<7xJ5LmM0P}X&d{>;nz3tde+{f)bzZ47FKx3Bt2tPr-4z71awM-wp0el0Z3nXo?f ztUZ}KAAk4JGTQye&`)?GfxiL@4Fr?ZMFfoJT#rOTZOzNJngj-dXyqds%)9!-z@WvA_IJx8CMX`mtXF*PeguY7nh zWuf;;LJl$JW8aIE&^fOom_MHpfh%gtUDow`R%B-jj|Ab@4*DfPu=dVJZV3VflB{a+ z3LlHDAHT;n&)P1(00@b9;RZcjLm_K9ap^BK>==t~RIaX>hQJf-?L;yE zDYZSm+PNNfgxS?}`W77;h^|!GO~S<~Qq{u88T4<#53o}?u`BY2usl!uM-Y4Q!{NES z_)`Rplny})H@Wvup_R}%c+A^q*zdi2m4oAzBL@}qmA0AWd^f4prBTHw@0X2U!7+){ zD$Fua0flnZ5l(DqR{VM@;*|5#c~?_2H#XgNgmNfnRZF86Q%j>dDPSF2>*e*`8n|G2 zrA3aH7IaCV#w(t-TM$F6rZ+~{TDfk+zcpb$r;Z(g!?fh&K02OmEWLXJo@IHRohpEC z8uO>Tw5d7OAZ6SER;(?Q%1$5AFgXKimJu~OH#cVxd@bQk|Eh21>F5Yw_NS_b-vdHw z)F5ZV^|{J{M%x@nG6G2d=XU_HRQ}~$xhhN`OYJY+9Prxqv;S_hnkxHqR4U^=T`ly7 zeAP4-Ymcu(ukY?hZbBa*dsWuubI%;d+t%{F(-Btkse`I~^NNdm!AVEq!s(QK!t6dG zI(Fv!0&0;ldEr6rv0yJCvJ!7&e10F68a`hwC4SIy_53R7;9^3EURYGaRb5E2F!O;v){DRZlI&tX z&_0tIo>W&JQVUPS@4Z>JuX>D9K}w7%jkNhS=}3zPNqH9$Knx$8sZ+nCc5v9dElDyKHZlOQpNsQ9uhHCZQZ*Y(TUVKD{{t>buPi$v zf2pdKRt+s9u%&e^l)mdt*_y_1 zt@l8*LFPg>%I~=3;LFc>_UeU^aPP9E6CWrdToNv~4F65xYF@27WgM_D<%IN(u33f- zkfQHor5M9f=Urf*^Z~vyPvqd2A`~C^D`^SJDW<4lzcB5>V);w8)hnCu!kTSyLR4;5qu6A!uQZ?<;*cdM!{J@g)7 zy)-FK<-unc+oZepuHjjF&&^->n_~KiFfTU7heuL+A1*uMXel5Gwjv2|F0H~GQ;H9$ zSraRV*bJhCJ|Wwtx0BHji}JAee~RkEZrdPdlG-={+&UeKU_*o*HCw!*A411)tNnf6 zki2E;O_2eL_H^&@D|0Fl;7F`0shRgECHA1m4cA80&6_7G=tHKc8^f3{+nCT&2u0L2 z$;HrlzxbRbqJ4GmYFog7V3gSATIkq|-bVK$6WsJUV2{@Qiz1Fp+JO|9l>4?f-Ay^K zhSWSSuXo^ZL?#I!5K(o+dUed*GDn>}VJ{F`rH&oW$@i^)m{6!`t(`fV(VDt|$fJ3K z)H#&WjR0_K`kZx7I+|GI?D>ADa(E^XzFmSME{63D=8sHN*`5dG71(*l_P*2ZMGL?>7jF*q|Qt0dl-|? zu2Xq+_)8CeA%wFD`$oPQBs4pQ2-67EtRbu%z1DkY*AVZvyw&XaZOYaVm9Ok-4mle2 zv+?h9tPJ_+%*;i~rLKI!a@?vril=MsxUB^ywqb+i@vB zkl28(cVvm@!K3?tDW#KmdHbo{{G3tpRWm3L1ckQj{_E`f>Awq1T&CIFBR`V$OR0x} zB5r#bT__fSzUUw1@ek*Ta)Fgv8D52J@|#a?Xj;!DbVMiVt!`A6Z7#lyST4M0nLZT= znj4e;Ii1$FmZ`~0V~jkgTxQELB@Ezn6m+jU!5+vPY<48e--oIE9ns|%OdHM{3~I%! z2ae!~l}TMnNV`Spek1~$scA9HrB0X{3nMBQ%ue@cvtdDS$-(|TyfkKfI;A!rww!V+ zDO~Zp2-iHptDqjVIv3MwP6njL#`S^lnq78oT(V4W`?{P zWs2`Nlz1AqmXS9RD5kAOn-i49Qz#8Q^>pEMWjq4Zr||J5TrOIu^LX zU~<{Z_gXj-E6BOxNLd0PEHxB=hGAOPj}{@84BlFSddTf1iWnRIte{HG0?f6$&g<(zq(JtcbN28ihu*&(oP8Y(XCD$^@zoD0m5 zLpH(@yX4ah0a53J{0@mM;K_NXO9+-@WU8!G{aTKJU97e}Y57K_#P{Q!S3Q{LeOVf+ zz|f2#7${wq?7*Ad@}=)L)^9$*+$onC+ZRGF9>{@zp*~kYoo_m&>Ru$gIi)Hz?>+%F zdjPXAG?gaxwMtjH!J#!Se8l`uPJs4zDEC{ApHzK9l%bCfM{ods1a)*feKZGZmj0;- z8ZIQ-=ka~vCzWEl?3)P0Z)}h#8a>lzn<)q>vM4JBB-lasj1Y_1L+P@99xg2-40Rd+ zqT83Z_G0~4C&zv2HNaxig|LkmV~cS8CqNCuyxciFOISzegJA0)dr_xvURv| zCoTVMR$PkxgS%AoTv>aC+D=YUm9eeOY=ZNTx{FT8Ui+qX<$NI#M z@C~_Bo0Z$YZLta()P1`}mb1&n*zk_VO=DNo0?*lGhj{6!O26ye<(9vHE8@e0=8`7I zMV(zDMJvMK4K;YcjUq9N+c?Ah7@js$>G|-eR(X?gPWJ^(rk+}IspZHE7;cHu$ZFr%8Y&pL5EzXta#83DG&j zRkr`Y1L?sdQVgXgBRO`pL}KPSr6S+Tov((oAZybwE_0T57q$ZV_m^)y$Es?V#z~M zekXKO?NrEtSVZey&chFa_nEm$n}6z>+QF~SAzQyipwrLsVyfRU2LhiKCc;GyQXaMb zF^ag8BR;t+2$=*!qdz?z3x$CvFlJ@1#bF_T*z<=OwEo>`@kfP+M0cru{NJN}C12hK zte40CwDrQzkw%=15q{N51+u=Cmlw!JGc9=KX0F1gS8_h}atGYVwJV0i*n>}SA-(eS zZC+1JMtZSpIckY(d1@*)k$UH@L#?apLE|>rSi2wnSsF+1-fVrvKhmkguyA5PV#C6y zpT?a6bT4ZK3pFjeWWc7pl|sr4gT$C62J!Ssa7&f7{v4W_rZ`?ikPjuwnfz(A9m8=p+Q1 ztEx7P_jKsSFQofWc6pqSAZkOf=>i3(<+s*)i5Mr(Ct29@6NsY^xE~?O^3Ev$b=3kQ zF#62_G+jYe{4iL{|I|Az>tcQjI7nni0>k)jIraJb`^2x?%E|;>5WN0(3i6KM7b4Hi z56aRD<)E8yuN4#!*#5+TxXnWc8^`aQxd?ij+wVLg$na_8n*(#PDMk6m^ez?uSxd4> z|Jf(DPx^|)J4O!`#KI1Wit;(_3UG1?$I!sbabkem%a+nar{NEiApxdhQ;aHB|-? zj_>0b=VKLrM0@)3(h5uz0SjQRN0+4FQ!^blrvt7c{Y62XI-R|-_si9=q5BZj5nhCz z%KDI-O|S{`{{0pyNqXfP#qg+0VHgkwLEgT3W;EZg#~37p_}uVAn%V0x6V|)QuMjMgEcM>KY?L&%9&Z)y47uugA zm$6dzw#-5-8PxBQO`NxFH06BW_cYDxIZ3_LdKc4I7^kCQ-&iF7N2Uow4SGPl3#fOx zLfj^|iW<28ZZN(=r0OM&PTg)`^E^xN-37tq*gvVJRKfNk*CFV!FZs0XJo=J`&BG}sJgAme7q4CpJcbpgbI_EdT|o+HZ3pn=kXN?X z=bCm9&e*0i>juy4z1{ZD6F3c@E+f{tFAtF)f9ZVtgM-X0o5$=V9%A*lS@b7tPP)Jo z^TrPPcouXypQRVI^__)XXs&7G-qc+68SgX6$MO*g@kg(9(8M6ENt9Q27v1q8OM*p8Q36EpfzW!LGMxiaZOO1|^#{)hT1N~PQ$!ZJ)Ei{?2a#$* z(9ioVhZet9oC{ptwsL|KnFHZ=bNvm*Wfzo-iOm z)>Zpl<>UPXBts8DkJz8SaE}m!w7J|TFNWYkYPC1L=?Z%W-)&ejg=;+JZ@tRV-Qp(F zrs$A2TR=q5fGL;^%;Kr&vC$9N?zWrn6o_Uw}QXy*WPk=r?MthKFv+LeOLP~T02LazZ+hh zz89?0xWEsn&$xu!tNRy)6PH_9<32?ou89Dra^w>|#C}f1)p8}y7g-ApmRf7c%pF-M zzjn0q?j`nO=3wq>79yL87mJruY%p8N@EPhbiUW8g?st5Exi;3c4*h z{WknX>p}SIWbqHWuB6{MBm0m*GS{sLf=R*We;(kDOM?;E3&2psd}vP zVx}%Nm=lr3MMgx&ezd37s-FhjpS)&h!R2wukG#Zg1Kq-5%>rAFjYTItB2I9DSx1b$ zHnm$5cc0G@EfFmk$T%v2ROIhFTl>hC*S2iM`l_+&l{6e=oY7&y4Q|Dm>i%1yMnM>_a?w#$FaO*BZxuT_>ftW?sPQ+PmY-!<$e|uQ-)TlZ6p{`e}-_d%DKOW>&^GRCjf~MV0Y@OZL0%>JFqnSlf z^lX<(uZ-rdO{ttG3rPRFwABXNDJRH+DKkJjfu^Zp~9qYr{cHOPGg*ByJ)HNxVPsth~c4aEwUCzX^Qc?t!K&V-UrzU#uB5YmY~1E z9TQ5sW%JGTkNNCOyx|0$T z-uHrV92~D7)9~=p?nlPQVOu|Z-}a>>CFHqhdl8D2EqcBIMtj>Lc()@FB^~r@lmW7J zXI8*y%dLxZ^S}^87dk2%*}AKZ=XVWSp4AJZZmqV`6O7nBb!*XX$o*tuYirl;?$ahB z23fK7E|Jl+S3)2D#`+eSN}EIDPw1QdfirM(MqXNWXReA0To&bFNqmc!3M2yNf{S_2 zhGx^EjOji)8+EWB@HkkV5rRX;2@+Td?7!B-%qw3q$;&f>r9Qo@(5 z&2>80X`FX4LcnPDM2MgGj@Y&CEmg~|OhC|Bd0w54369<+71ok|QK30w>w++vgD|+w zr*yhp&ddxq3V6*@G_#p}6u8S1?`4$z(3jw?BH`W3ht6s`FE6t7`#Q$*6$qkxuBE7( zdsaW{tHvX^%{Fg+NoobfP5GI~QgEgJ7utk;a5Mt<2UftFKlBD>358yw>PyjuAasE{ zbOmWD`v&F{WGyp65)MJGHGP72TB8fokB6u;s^(G)-74s?+oP^xh6eW0*rH*aQw)z$ zrD)fH+jYMC0%=VMS$NfFZTVqNGYYna`0X~f`^jrX;ID4+ne!s;r=i0`e{N(3=Hy$*{*V&(^ph?8#7k!b$9lhSyryF!q zf#zJFmA_0Gap|0BmqMJ%)CL(WU4X7QbW5cCyLC&&99*9}^#=Z&))!sGD;o81fskA$ zf4x|hx_D$lTzw z2gn7AD)_A0CjvzNfHDXGK2cP|kk5fnxH90u!wZygJ8XHULu8S*e`((BDn1h3mMyU0V@(2&cN; zGQAjT-b=4Nb+8EoKippdY+@LW-tLIrt1~*X_^!&NV%ENrnmK4MTu6|7KJKPiGP>8! z{ta&?M4y_lvM=gJ&V<(?7v2FB&O=o`*fpBt+MGD^{vmeaEuaQd@;amvBOl4Q98%5d zr(2eboGv>?Q`nIg$f$4MLxuB*JaShKJJ6Ak4o8~$VGCP+n~xpr&JBzWIL;Mg^F>ad zmU;YVJ#hBRVXs5cCK9Kl4(Gz7mi9?mBr|WL@S!XFy~Jv~xn<(x^tDN)ykj7;Lcoz0 zZNz74`;vQvRjAyk{4^%(&VCQ5(R)1y69QQzM!4a2kcAf#ENWgmI5*@TW!In=>CP*F zqhx2-q()^%=d`mJfNKQ0rpVx};!}|lI$|jjXORdNb7@rWFIxUieBVve_%;D#eY5PH ze^S2VvoZb+2D|*oblT~?M;z1tfz<|R-9_H@5OJb{{O|H*b68WXZ#Ur|g$Gc|PBYPEA?+xCn6%u5W> z9b!{A9kLC4RoXUFO6MKm2Rkp)eOQMl*vwMx4oo@2u(YIqYklGj<(Yi65L>gT`*D-a z{aqKUpAmQd!E5kxIa^*EnEzhbv+gJu}`N(m=TdYUf6k}7~A{T!qWHjDoWZkyz90wyt$1Z&Avx9`+TyFdO0LJdp~qh7aCEJR`FUA%M* z)jwtgshWxoagp?92xYlc z{K8cKF@gRXU<9W0+&b1bd0T`Nm6WayJZJ!Qrbv#dsA2rXbY2HTeCN2kV+Z#+c0?HX zWw1U_p6^p0{BSKJ6!aZ^{t@!l(~a1#mt+@rM}#8g12z+{!r`qQQ#zBb##6hMsx)Lw zqB3>kq34(9%l%5YpU+L#aIE(h9O8(!T)BKt5DpiB&V=!+{m+Z$baZfq+QR8S%u?zd z1W!%%B*H##{ybz!M)Uc-59^NP0U;M%sd|(5>Eo7n@2qbQuB>}4A^w?X(cX&Cr`@x| zp59ZwqrN|Mv;Gqo9q2k38wngoe=o^4KZ2)DHWN0Jq0SH$6STW656+}oApPyv5*qU!Uf>_ zf72RKB}*}ok{|PK!XnNV{-S6dI9+>|Ugv5?ZKu1tV3~hd6?3q)WM%*l^4aRc${=Zb zIqF`H_g9F1wmXUyvI=ME9&GY+?J^Z+6Fc4mXh8K;4doz1(otYNI#RhY(}S{-l>kNzi-+C0+Jlsz;O@fKRcXeP!jWevp`m(18PM0qm>&$KQ zMLMr-hi|MZD&8b+?_Kt!O^FBu=pLq1-0w@_IV?0XP5l8=l>DyTV!t3Kl0Jx}e--mh z)sVz(me9B}K}zBjk0rj0kb=-N*8XNRkvL%}mE&hT;}W}^5%=_DiYsq4or>I{(P}xT zS9n`cnS6ad!HQ|;e@WAXzkf!a;Z&3p;|x<#diu{tc+m?`IiI(Y`e1m_H(Y$$FfEFMlsL_w}X82742Z= zTX&pX-6tdX%+#C~8+9>@rv^D`*f3G(4G;7^Hg!xIGv_mrnnn|8x8n}?@ejNyUzUTX zBJcKbK^m4T^$EsbNXyF%$@BJK{J_MZn(wT45Nvnhg!A}mME?==`uZ1dF7#|7dq2x8 zQkkLZ#(2&B>ixS2H+mLbk*O`i9|MHchdES?JI*6DvSOY}syWXqfq?{kr~V@91a9{1 zmM^@ZfqPdY8h?)g*fI6?TcfmPo^ej^HaBFSy|Ji5F&Q4wyp<9SstmAcEIPxRZ8c_h zw{V!2BM5FjeLkZl;_5c^3bzx_*!IN;%?auEE61y{DM4AWPcUvc<+5^<2oI2Nw^lN=fntR|L9wCF}@|tfKc)uiBO@D2vWxd zYJXyh1QJN3GDwx&_>$hXktuO>+po;V@2H`5phuPe$e`*-Gt@jXEx2O zgt2o&YR|J0tn0n*iA}UkuuK@#Ew%7Uy@&YEA6MGKyHt}p!_z2*>C}%uIku$eLm%fJxt*0pR1;hIN%+G=&;x0WGJ&>hzAzF-f`c`+=Pe%{*D80h60gNb0LZF-SaDLz7+ zZtT;j(~0c@X@9g>Q_wxh)N1Ol$*7A%@zGtTJoE^^8Q447?WP#L&LH?5VEXCVIpJY< zY4g=btIl74uwLu_6muq{ddR$gH6B?77A_|g)w9_niv*}zL>tDj=$eKmZ`l_^G88`d zv!W5vBL&EirmZCQ!>oL%c46~zm=lkml0m5^bOzpmIm$aX3QEm!$Nu6V9G{yIy+45k5CA#Np*@BvdfrWSt zmJqyT2mTTnVSd0?$Yql>e~jcU-b2DUwoJ|9w;Q^M2Fq%-8`{3UH%iEJfb?+YyHfqP z&a&wmA=ApBSIvvusI_jPl=gx1mHvk}-bx>i4nvPCf3lV6iqbrm z@wT@6>@Hnz>;HH^8}PP^Q|9Pc?VGh=)m;j{n`W>Z&!PY+=3hoG%+J7neX4v-<<|uc zB_>ifPH!OE+H57spEeWJUbd&%sy`Mif8E5b6{ca&$H^$y8?DEoHSfBY_#I!4V{ zmA(jLUgs}#IL0>B;4~wW66t$yl4rs}N-Q@~pph$1o3IDqdo5@%S&`njAKmKXgh&x; zQ3YvZwtxAkT&hcUoEoGhN9BqNa>Gs`rISq)%w?=B&|l_o!+t)vX{z=3ZpJae-7VFP z*Dq{f6z_##v`y?K9)uyzlITO2Rf-vk`TOsZrn(hPR;!X9D^GI450P}%QU6WvC;S(G z{VnM^zDL4~V9M3CQyi;=U`<;{Ul#A%5`$0vt0tc?2iA2t-Cz9U`*OuT^X8ohb7;Bl z5S=WI_-#RSaAM%=vqV0&0@UOMumkR)Ilh#!zGht}%YrGWnoh*gP*9YZg*~yD_$}WK zGvoK^z@PA4yJib_&lDI2`RAA5d7;_Fd}ZSPtgD8LGHT@f-iD#i-ZpM=B8CZ%`h7}o z#AnJVn?!ZsN~|DH(24e2GJ5?59v)AeB029$%h>?jN_R?sLEzXn?tJ=Qp=emi)}A2)89Y*wCeo+&f6+Q)OUgQBZ!z*-aQ# zoiXG=V4~T8#8@B1->E8A#pO- z<0#+2r19y6d?Btbk5kDQV34dZs91a{OWtk71;D@HcIRn`5$asH0~3|MWF8PBXr1Lb z=t*i8|QjfB`LL!v%NJ#wjg-(CW16=lC?rVTWzM@ zf^WM;MKb(vXx$5?&w(3w)&KZw3SB$fzp^m1`9&@4tQWJ@RVT;T1q0KUI=jT7O&1m##3C~-ki+NsSX=3au>8Q_j zi?hf-OWr)ytG3aAe~H#D#uQueTjoO8bG=_?&AJH>3-EJf5^^RoCEMXxa^d1L(ed+4!6 zHGxfUz<0}Km{w&i4$z&^aR2`jB?1uG%W}hqG}5jcI8L3f5iXo ziLskyRog2k%WEQ_%sG;;VLSI_JXXZ7b2(t6>2b1pm#hBe@{#NPr|*M_v+MuOYrh(# z*dBT}_Y6Xu0-i1TESf)HME|ZTaS^lWi22=Fq4D!^tbn~NoU-#k*dG`F3%uQQ&+=Cn zRk2amv#w%$bp3)>S-(W0)!eSe%`g9J2P%C7I$}y{GhpHtFPciXe}QRz6ANtZDP(Vo zlN2TrvL%eB((JQNswdlacfh_a7-8h1VAtSPZo2;9`0j^@{Wn6#wJl=Nk<(|l^p!Cf zEDDKy{aDUPK|A`d#=dQPn3FYoFXi<;h<)Rmrw?hjr3s2}?0I%A&+|#UYX#74I+*H9 ziDw@epMdvAI(}j@A<&AU)}bv!?y^_`2P;PExNK<7rpS8^5s9_i6idHEDqls$9WTi< z8&31ioSoXY^quPTRfX0w#Cds5%6dk7DRvoUl7oaMmf9(~UJUOSMP~dI3;V!3;f&RP zO19hL%jxfbf2sU;$zb5lIWRd;@uss%%S#XX%jWB~TX#rR(T~CI9hsEUjBbV;?9Q2E zT!ECA4zED7wzv+W>_a-SCIwVKj8V8DOP@Mk71!naoOo7H+pN~Ud{rT`_g=Q~2&z*b z*3F#a7Qp52l9g#PX?-p5mj0y&jEiUa`MWtnmX*Ddo1R$J{+9g)fv!)gO+Q^5zI@@Y z(Uh2C@+GtWVe->&dC_n~Q0w!Iqx;*#0EyZUkfCUgM2+7wi2m^Gf`a#p>Ud_`K1dL1S9 zYVz!*WKe9YJuwj8JFEwyV$|F4G&bC2KQk(e+iJEL{OxA4RSbdKMV^`tq1R`N%smSP6l;u(Z;0C2d6cRlZJVT63f)R zza=wwZ^bXa_)L8w{8sjnRu$z^yU@6c*ojdA{Whf`)^$iwFqdZ{)xS#{UT0f00XzLD z`lb5HW}aY|PSPyi*m*|W*h5lcX2JIW-aDly_o1%${N79NmRo)$AJeq!M9V}buuLQE z*)fjxLcuxid*K?rIZYLXG5UaS5l#uV%b4Sw;b}D1_t3L@ijA%od@=7ESjh-K0 zWT^QT9M?<>Q5}prEZB0nC>DrpotY$h)plrZT?tW^0;XjNt??&mDxjX8?39%x@7*Od z>$;1yjdApv%486{dCEOWRt+w1=x3GpP4)(?BEe~60>)eZaCmp#w38#MVeG?pcW>cX z{4k)yTIq!K@1?Ny0#6dt_LK%!&t*@(tF1)`v0B`XWC#5!)9g)6Mh>=bY=Q10Ww5If z{H~6#rgmq8nYT*x7~|bKHn&Sm42_YZfv4=W;lt2OE1@;xQj#`?T0mFf6( zLFK>;+SY)eA!WF|C<;bi=-m89fhw=@&fl7>PHFGlno`rnC1aSGxX#0PWO z!zT6a*0N&idOkm!3YuUH{78W~uYsTC>~-P3fBag7T_IPz?O*fIg5w;R63YoK6^~Tz zbyk9~175QNa?fOj5=bYcm6AxT;+n+oWpY-^eh)C0eWSa)$ic>s6Ed~I!y9KjW18$3y^u6 z_siMSUc`%CbfH)5Kj)NLkjYiW>pdYatGTzWbn;W!ys=ZPjUo<(AP0Z|w@A2%FoiTQ zK;I;^BijD$a#2u6CF;QD^kj!7>+aYK za*psdL=id?dI3*9-RYntkhepw7$i>QF-&@D#INdTCj{yNaNYd8Q>t~`ta0X6@c2b# zar7kO?#p@)6$wD|XIa1teD$!eeU2VsH( zW+D}AlU0aW3P)@vM;LRCI#O8-5tmJqJ1t`=H_wgLV~G_`T;Ewb;|DrsTlr z%^g}QjZFj8nBx=Bxk)+_xi<|%IV$^?15R7{bFfM=DrYX19#K3)yY}p&cf>6~3mqE7 zrS8r`>|ee+jUDn^uH17;g){%$`Sx1Ar)2DV;7$Z+eDsG9l|PddH^`jpL+0U+G#AL3jd) z73ly6{0@$S_N|oi>Z!si+{;!wu9oj~5MbSv z>CF~ef$4E;>6|W~2Fg@}eofeZ>(fP$X9FrCvDk^WxX=AGS<6D`(=hdvRYE$NuHHYP z@7kF3o(O&`eT`NpZw-q4IpLzq;g)QI^J)jKr4g}PEJC( zg$I+lYLEGmgDzHuwy|8a&Qc!Jlm#dO%z5xoQUBnYJtH+Fgg;rgY1_Znlv|mAq4$z= zt=dvv&dY#c>rIYcNg|qztQFud68UGJzhXvcwsvOqGui=sR;&&$As9Cy9`u;Mi~FD}0abU=UB5fme^c0P7nq zWYbw!N5tn#&oJHT-1x2<47(NHcVE9zPaX*95S!fQ`D0vBW{`6#pv6UhT$;=0R9rT4 zt_ROA=Yb14?x5^y4HO)veso=gx}tC0mTYhz&YT{mZ%!6a=*5XSWv(gCJNeXT1PSnI zAq*bAq#Nc${(KLv>@p~G&U~@RZBhhn@MX@0Qo0QU6VYELz1Q61EtXAr1xeiY62Cr~Hf z?f}ztp}P-5xp6~j{oy{TN>+=~gt?tk1ENu-1=^LidtsteHyw;e%ot6KGPb^6Y(2l+`>MebZ|qm_H-)ue}*WH+ci&B0*onM7XI*lYOM-F z3SL~!zq{zPw^{6~-S3$FG0=C__21Z%8JZ&(CkfmJ!73y`E!5@GQba62PD?JaW{obn z+vws|DO6c{rL(?)RX)POPuign@r>7&T$=Sgd#Fa4{B>5fTirn-_yOKvARar{xJ$2V*+KXyS z@vc+!ACk$X{Q4=A)QX?z9L`5FqxzOu(;KVC|0tWqfL-d@YOlh!L0ZcdNnJbQRcT7jfrrFgdd(50~NmX63q`|Noij$tT=IleVkpZL9#{0{k@oXv}1tQE<&b3`NQi7-c4yn^=9G^zY8bdcvz&k zuC=N)G0rKdF%S{Cm}!bh*DQFS%6q&4oJNF*sH&=FsHd^k63|hcgphYKyPz3?LpF4U z&$WdncjPd!@a%ZUR~89*sSTW0t-sG=jaSsr+k6V% z;-2tE+M-|(T1APIcKRsk^su3{=-C+1kT2_<2f!ssR%Ic9KVWh5-H+`PI^ zm>gl%Tvy!A>zc~QRP5QC2WE7cs{;h~W5f~_n>gpwat&vXnr|;uV|kj-b$EluocQ;; zhtIviiG_UyWJ{b@J}`|e%y+h9(BS-F*P8VOV+h-%U~DqODDpQoOezi35KQx zb_-eMbGA-pm>IcmD8+Xo8K2FdUoI|AWf~u~kVh+^BlV%{^KSHIYQ!XCkjozE;NyoF zBu-0S3p)ncq~ACc7f6I@S7LtapCOdib->ah(20~pU*odvCeBU%u@V@_>O@S;;$Liy z!s%8Z?TU}4u8LKTW^( z@`ZQi`6^W`XMAi4j}SE!gwk))I)<_&Hs~M!HKa`xrqaf<^yPe^Z}Vqq>5fv%h(3r* zh^Wy8-w@zryy=XOfFhpnQT5idFaaPxP1C$)PS)sj;*f(xbvlPonR92M$_u3=0c&I~ zYIs@w?rP_l1oY4qUhrDhw>J-oXxV`@ZbR7!^zInKFFRREzrx{gqCN>mk#u3+y&ZI* z!fC6o^UW1cJ#$F4jv*nvr@s*(ebYzfSdrC{N#?5AeN|G%ig1x9e= zuebm&1F(;O3Dku348%L@by(+FlW5uhbZg~yNY*C>o3t4)f(01F*mYa43GuhtIaKue zDOxO2ZJ~~LS_N8@z#qf}jBH7!a0qTUuVX>({;43lHn~QD)DcFs=PaV`dxaEQ^E@7! z&S&K-qEElQNWUd4l=ciXEpOyZ$vZBZ?=IwBFVL}DKawNZQ4>f;BnTYDpNU)}Aav=j z=9?WdD2@)?07dEL38~j3WNF70S@1@a=dLq9JEo>c60WH872ib6C#b9 zB#Qc{X+bv+P-0Ry6m%-B^}{^tjuPMGB$BX7=JZh9RZFoKD7O~%1;g1p0~I7gCjk6L zReAE-7G!J$$)I7qd@WxE)nT{njdXQ9BeIf@zZ{+e|n}VUl zu$fD(4c>YhjT&vJ7K-JT!BquMyqDXqZ$0#C4osiTyEcd_5ovRlL$rP@)yHfK08l{D zO2PSf`%!#NWj?#pcNhCu|2zz!IBM)=LIWYGn$U`Ev^9B=M%=9Cb~&m3hVV?|wH2b( zDxFdntXUMssf&`w7Xf#v?d&|%EFD*Z24>vtQ-xhxd6^Jk&spc2HdYAU{PF+Nlo%G` zPk2>6N%D9K;c)>ZU@<$8xSo}7D5}-En0S~6N(W{o!bC(1c{QaX0B^D}q5o%_dpN<; z5Sc|*y5iH{5`auN%&y3fysX`NixcnN04bY`BrCTgu`>lO!_}Elq7X>Bc>hIg3x*3L zafVHtSWB9Rz{1JJC1Miy#M@#H{Al{9y$AM~1sV2Zw{Q|C5~}>QLz`5VA?vyp!@Zn8u1nv! z4WyHIw<^UXM-?1)C|J<@4HekxY)ZY9g;e^uG^l!nyCVXw#W^n1jvi&u(U26A3(b*D zNVK<&7~*t*?Dy3{A|NkvC^(Q`Rwh8#Vup4|tvQP^1(R)FK)pI>SCKi@v!`;61I&a)k6l!Uz-wZsvnQGkxs#Gb}R31x+3dTEDfjr{lHDsx@ zuurkh@MRfdt=hwjBkr;XRdSU*$BPn3k+9XuAtWw|`*oC3_7m#67gI?ACssm6qVUNI zV%M0&28b6!5+BE@1*VNyou&q4+Y%#)wc_Zgin`>qTu2m3{eu66db1TExdcfUhhD1= zpuwzp#z%QNa1h_U)(I3hE!5yC5|R_YF%A8;xAFv>=GuR66=#o(ZB}GaKS-T})IXJz z>NUkE3g$0!801#c>W^}(bkib{;BxIG^HBI;C1PXYG=@OkXY$GA@Vp01fpR8;Xs4+z zs!*gChOU9K&}bn9SpL5E3}cXPh(RF%v^xNF!5IYaD@)W!;LPZ|T(uVN`UDCg9>iQT zOYdQmSqpmYfu&mp+A?7^3c9<_kf6Qz%_-tYsm6J;F%Pp8ynZlZWU3Ody#HbX z1ptA0V(%;#V7Q+!$QTjEZIP1ODeqK@|DpKXs0W{AQ%E{Nz z3M*nTTz6PPGUpN}4WeJ!SV%=Mtk;hWZK;`CSxW8#*m3>EVxgBSB!Tv+! zzY7Df^m0xo=Ir3rCxd~hF9VVkH9>XeAfO=DE2o;}j`!Md>^-Dk#H>NHm1?SQ5r}vh z13A z+ywc`%nf^;ay8%|%I^dB-QY!kotK-A(;x*#1YiJ#OS#3ML3ORt?|nlt*Nx<`?TIm8 zl8qYd#;zuDg+YstM{=w-)ZCZSga23swal=a=3BPeIP#~gz>MZIvSiq*?oIuhzSTeo zgfur)+fg<=^MB2~8X`QqK-M z!}USp9+D#2k5V7uLHU_wQf=VOlxVC;Gox10^Gg0K&O|CMNYj$yAgoP|NiNFFu`p8g z*LDty2gfD7C>eO~lj5jwnyDN^-}_ycFo>(~R2y2u8pD_8L>9K%PgD;SzTXMJSZs~y zJkZ2s!DTKX0S5sX8e}yS4%au3)QyHcKSd7A^M`pEJvJM-Zim>Wwm@TR=yQ@5i;O2o zNj;w0@`UZ--n(y2uWlOu_HWm1bDjiZdYK^7JKG}RR^3;Y(rSkS{t--Hm!M(tUzzOB ztlT$($>9P6P02D;f$7_g%RbN=IlrJ)-Lt!lP@SHMxg5=Gxn;2hqA?koI26T^;um_q z&}@06k>vuX`2;#mXx3d~NeDk4D_w3xjuN?`a_U0N_rYC$?>1u9+n*wi$4u|O*+KV` zAdGcaNGVA@)_MsTQVnYAa?{Twtioy(uJaNnO785-7i#1BNk91Wqn4M8gIVNQfZ+J? zt;kd|6Dz9lIqY-Cx|WydrNCN>FYLroTcubOyNeJiDG%Pj@@2hb8?gu6jvG9Mg6mL! zn^<5#*d(Aa+_f*I-BK3PSE#av$|qSbo+m10V-S)gIL+@CFDVNsd@CLG_6je8$Vnw- zcRu041d}u+WzT8pZ}r#GuSc_aO$tpUA6U++=lw+ERi3vIIf~JiL^lUj24v;c`~i-V z2UUjZm?@?dU30zN;72*b&r%qMP4Z_5!fDed!xOqAIC}ZJQEu3{+&SR7yKZ+b)Nsr_ z@QdRnpZRbFI9Qaec`xRm1R{-$%^|2IHZq)51ogkGtiW~VUO)`P9su~&vV2;KWl4xj z`Z}cCDl)vzv(5W{xL2+Sra69L5kJ_ZyLu&E_sZz{4xlzVG;ApDTCg(I*i=%UK(SOd z(=H|5isf6KuWU!eE$`|q2ZsHK5orjw>wa$1qm-uUfFo+A2v(1KXtN@*oI^YV?8{+% zg7uDfOY_XpYmSm8O{(XJ@p^j(pRs@F_0uU<-uyfc9?1Y2qYxT@GvYM`3}&W6M`d%Z zrYOjHE09iu8kM1^{{*>}AXo=-g@Gj2@+ogX7)(y(jxd5*GtHg+>N+945`Xxt}QBnTLpc zInq(BT*gQ}(@6hg3#8`^b{OZ9D@Fk;dfxao%ezb=+1EP=gvR%6x1A6qRVb_ zb#&_or$*0QkkViR#yr_V1ttOmjHG@xUfSq6_IoLL{zCn;>%BPb*lbXaAZOy4%T&;B zg}o6^V5oDMkTBL)gB}t$7R}#y=F{5-7IURU5F@#Ypv8;wX+3%;`_Bw5>(CA^&@P0u zi&$rbJ5lRH8URrqPSmo)2gYbCjaDnUwrWE`d`>6YD79SCHdv^C21KY8ZTpA#97l`J zz|OT_#85ee68w)FDMK7D(|bo#9nOTcL5$idJEc?f3X&$Y+QfuLN*(uE-~cDzQS z7#BG)a^&e82fnQBdhS<6dmU^?jZsqr^YY3ADY8D@&t&T3+uLgP@b1eE1*EB*%F@{4%To~Nstb9USQ^G@%=np@DP2tla{46`H z$0xy`;)Z5^?zemZ`FQ{~5QAcWkO;#WsaV$V-Vrkc(X%f-v;w1jUxCDJoK_3g^z}aIek+G4JY`+Mf?zTY4zhZsN zB{Hx0#zREhrgqyv)(D*ZzLs$DF&8D(a>?~n{J~^YHi&)|4stvcSl1qTJjR=!1@Mx0 z*P{S%MA9>|bE%QuPGupB1Oayc2oV7FY9K$S$HVx0dqBO~zzrr<3aK?Zf?fGsQ9H6kf|h4Hyk66qSfRb`H_Ks?xwENF)xfh}uGiLo9t1ngLfCMJS&H;Zoy zZ0)rdlSM377&C0?U=RUK)B@u@jENGr`dCNI!J3@JS@UfI=t@O>OC;WSkt6NRetz8r zHJIn|IUv3%=!D0d?x81&>fi>$3~E{}Y6%Jt**0#fIoA0NZ^+RiqS70L%A5(K<6NXv zv&<;^Kk9Iq`$Nw}V~(i2o&lGUfNfWk*Y6Udn>b@Tx#Aw&9<9f_=0t23!?B74awJbMVcooG89+Q>Utq;KO~wc4j171Us*D^ECSIB&7(MZiN=%b2`4;M z)z9+MY1plJU?w_P(@({)fJPnh3Oi}uf;3JXrek?YM!}(KUh>CQw>Li_k`Fq zAM8Q>?qLV+!ZWj@N!UmjH6|f=6+RCVTx7FKF*a0TU~A|^^=Ee{5eho0!5mS+7q^JR zyQXL8&(LdB=9It~XCtfLe<$v7|E0{zi86iG*vpi%58)twmyO;&Et6sLlS+n=B=JK? zh*t_)m>W9vkxz(y5;WxoF;p`E(P^TtL25}vTdKJKU`v~&@Sc;NK%h9O6#OJYn+V7x ztSS;=yWiA1zDrwFY35z}pa~L0ZVV0<%d7elh2Rp|2j;1>{PFgOFis<_j>}o{4GDzt z>^Rd7f9cr!v;XBsDY@HrFS&v!_)KC@@nybfIVon5kxn$jsYW@$*q_w zyBE}>Q&MG8^`Ql;f7d%l#UX45zZYQ_01MCuZSCG@O6&coswEroB0C3HHXJjA0V*zZ zH!O@SBuYZx{Hw%<2pee{g~kLo&zN3Qrr|M%>LszzEMM*!^@1wiC4tE%r1}Hs zp?6KyEjh3hx7~N6D9&co8*Qi4KizE|rb`^Lq1%kmfiR$r9=-XFT3_m;sz=gN(d07L zp9yLD8HV9c*TY-$EU@+ay8~0*gL8UEPP)z^=5bXDzPE2q+fp4b0qg&S6vM`E-yjL; zEbLMD#5s}=qPuMBfwuH@H!bAe$aLHzYczrc=&P$nzuX0gW1_fMc*6?mW>1PSeRDM% zwP|Y+6%i8v#xZmf=t)mSHTl0@Dw&Z~tKgj~ZR~7gvfw7aawec|R+i!@KtB)z;p zr@LRy4yL$8ZI}7cwAZ^2o7$6SRf@e^R9?LiufQ}j>2F$aFbXthAE?Dj|KD{963v+G z*g2XgMJxgXZQP4_0f>6;)Qz-VQ=(b^pGQmp2U)7ne8(8zfFVv(FFVjn~{aXhz<~BTX__IqrA@wKpBaQ*?8>xFbRAJZ01izp; zS?Q_w@Pjq;k09~VTnK?zl#7iY*^pWmJDVkhY(>4Cz9T_~>ZsKdC{QAA6bijt@gKZE zAOHv9T0azw6|Gpqm;kuc>u)UvfHuTkyy#ohvt;ey8)7bF>*%7oPC7*}FI#qN`lO+z zq}Q81p{Io#vX1cktw)u?6_GznKwgEh)NmPUH+R{P!CSO59?A3s@m?`xQIk7kJwW-} zs(wswNZ6dZ+>%~wy9(w@sD83IkucMztS0u1N&&j{Vkv6 z1U0#LYh!jZR_Bk-y?Ef(f}Hi|NO#Myc0eWK)Af(4>1KJ+HH-rn?YC&K``pkR!UxAvqgVE< zbHw%NyG5?_QC=A25{Qi-&Rd6)$SRxjTE&xO?W%cu_M8|u?h=dpXT^%z+Qw@C7?19{ zQG}pv>4X*-w+)ITlaHcT8`YR7O=$aP8VYM6B)IsjyAOwO)aUc6Klq+%;c%JHVvv?Q z+#(2;lkNbt!Y69v3Or9zy*`JSh-z9mqLYIh1xR$b?lTP2VS@niOOCE$hv>}&^$Msp z&JX(o(!S>w+S@S@$Xl#S*cn{wfM)?X@apDljS>ef(TDJ2p~DCBA$2tEK<;z152S?^ z8+n71qqdIP_s1c>ModW3t zxwV8l#`bh>58l3A=iZ#V1{!)~zEkUUd<4l|M2Lm&Q9on)t|Nt=pdj9BX~uPl-oOn$ z@jH8BAQjv=HBmSG3M&vQ_^rn=Kh8?8796?io9z*{`Ki$#z`lYyW;#zH=SEcKjx`bE zZGD(pDAZtpkf711mCgMq1uf6xm!eb=xni!ck@>qGVf$xi?~!CX$40LY*|;SoETB75 znC16g86Kf7DWfpv?n2+z4Wr7xNw`9bVDe;@CqTDhN)zI128Va_nzx8*RYRt_-ug7En>Oyq^qaCDVwU?t$z< z(*VZeVy3$Ac+Tz6nDuG)X*xv^i64xRn=nSrsJl3l&Y`MMs9#P6r6_x-G&tl`x8&Rn z`b*=5J%e_p=z1~g#KD7ON2qB3&fTpIG5&d=9XH`BomYd1JK_h9uGQ>sUTFCFe5rQu<#a)7P2VeQCvkn z>(SWZT z9nSHa#(QL0=Jh#~=C(W3aqXMCHIzxP#^m0MHerRG9%gcgfWmguDx~85WAVn@Xn`?c zgCk`ocgaT#0ON=3&q^v3OJn;ON_;zct%aFL$oSubGt~$Vw9d`hI#l z&wTEPhO{PmI1U8uQtILer~6R3nzulT)j+3gE*xcUX#dopOjPsrxMCE<1WGdMJ)CX< z{1y`Q@zF2o&UXCKqsec=?#<;V4c^p+`lu`1Z37)4XJZ0M)2N zf-OhNkkgh@IyplIcC^WyzAaRw${eB8BRdL{M#On5!ER;Qfu8%{eo?sQ+-v!@}x#%DRAO1i^tG_5zPgX&(-Rn8mg zsb}=2oWsa=2E49*0$j!Lp=vBBNg66nm-$Bxn#zo)feWbm0v5a9CmmeEkQ1uNY!I%1 z=intWBe|Q1VoSh3Dth;RY|gb+J(pZ{K`DX4!iKyKYGd3vQoXgw3CM>3xGe+oSHX#Q zAM=3i5emISQy!#oqn;yh16I{j4Sv-@7m6<^aM&{8sBM81CNE>mz{`R z`g1H5tSp;?Us_&&CPux?r9Ko=8SudNYWC6Q`?SK;+dh&}ql{=`dxQ<09M2PlO)8%>29AM5>%l|h&^d$2AGM6oY7}JH9Q1m^}7YQY7 zV~Ml|0>Dsgch1MO6Bt~*m<3ZF{dU1V0f@9^bXJf}mxnFDW|H3^O@uJcI(=bs2G%PD zcHCzQmVlX8{Y^3jsviet?`L9sqh8U3{?I%yJcO$Ns?2j+GQR_v5blkJtDE=7<~D=1 zZJg;P9u*Qwifctw11nFGkuH6JfJnhDJonf`37ZN7`QRnZwj@csY4Hm7diC`go$-tF zNiYSx0FR+3dy2j-5(F=F#lDIW`vEB}v)F(LR1qT3!dmpKr8tQ7#&skHs}%RVNZG#VA++F$0Lz11dI1z&q{q0=0-_M`NHqHjvM&j4AW5dL zzon2P#Ax2DG9ds0za$X7}_iJC+{3rMw>AI;a{EK+<37MD(q`Irx zHGi(1@f@|7M_wKKbbAx&c|s*qZq&n?BJ0;RC67g#m~672R1|`35w9-zc^%tIy9|si zd*I&zCM)X!9uKk&La+;JT4VZ;B!pp9ol-Dt;Ripl zLsY>r00RLb+hV@CZ|N}-L>GrSZr6+{K{_RR(q$^p%zBfC8}mlnCm~~?-GS2rX&42C zBxPxn03tGp!45&Zb~;87b4#ie_|I6Zi6P!cg@v?XeQMrfzaImD_AEX^6d*sh{Tl|h ztZq6gjLG^8$;6D^s&eH2knBMx0{2(<0mZ8r&F0bUANI`ROmNOX(?;lPv)86pVWR+G zcYa}uwo4fExH0gs)+5McCBrM0z3$qEofSzBC8PwRv-=rtFmv1>ynB{+#(XGxY1W0l zqr;!Hc~VQ_SYcY+b2}e;lMN2~#DPvCOZw;*%st>cJ&)vyGZD?;)ll#@3pd?1#%hNo z{ji|Bg+b+Cl=4PyMSqd_m*pv@Ub|u%Onv9d10)D{MF)*6{$heKl)f$qh-t32W!`oU z&yDCe?y|t#?S)b7dxSu5S`tLprzG~}+B~YH)KrvD?kT;Xt^m6mf{9EQou9nxCKgcm z2!(V)X=Ytm^Pup@5rY=0Knwe`#I4f3`zBV(voOuJ=1I@NUfqV#I8_?0wmwYf9NvGb zEy32?lGw{6)zd_)>S&rg53Mb%?XT!(<7jHcHz@=OeR}@X8LOD5bnqk(|JJL{Nrpm- z$$)28lK=cVRSEKcO@bsngtKT4ukf4`0|8`(Aad?UI?|xB~aqE9dGZDgrMlSUA4pC}$8Qm(Y!+ z_0cW_62#AHjCs!h_E4N1ABk^TPrX4Ecl&wC#G0JSTe^WmZmOTzY}xaUXJKku{Z z6KmflsCf;fhSDT6vL7kPe~Ww&rI$q-#OH95Zv+2cFA@V(pnIc)%GuVD zO?<8LgwG!IfMcRhu56w=7<8<(H0ze=TDfqZYA-=Lj;dOSu2op`c%+;FDc2JII7RVr z-cmvP$UXlm5>qtFs3;5E=O3?M&ViP2A9Upy1(=~n(4lY&8hNFrjNm_O>Pc{{Ha#H{ z)d8t#c2qa;+c!NyVVV6tU2DRiH*=0jgaO$AlAmBcAjB-Rm(+wvVTs$wLr?;6EYq$xNfH z=-PW0p&P8}#AvvpgXS;()Woe0GELQ3`QNH76fr2ab%7ZY@^0?%NRSI2nz^+NK8L^` zFu45+3jfOPvI6dUv0|dUp6T&ugO?;MgrtKrcz6>YBRyXmE=aV2%@ijHVR}@;8Us}s zy);ngh-1kGKkJQ{BLa>n6w$E4$L6`6=p)^7zZH@-kNKr6lN!pOx=Ef%9ofVYDW`d?nEJw2%AJ>}F6l|+u z=qfHK?IoQ}BB`aH1*d(%a6%#Yin^X~Xk+7lJtJvInP&xUSK|t&4O&`XmGA`-V;3ZZ z=Jqgm#lQZo5^Jcjiz#kAzu-jnxtJDiwk`n(sbH7$6rH5%9e zk`DuZ3%eu{!ox=WiJxUrJ~oHB7AOaaSK{o4!l@w?$oM`*)B5^0#C`QP#96#+QGSK%%iTh-Zl znZatB%8LAXMW>&Xw_pjhw*lP=Rl~Bt0>kfjzTkg+3FOthIP%B7Lh>bl4S0i1 z%nW{jQjdd~V@aMC^w7k4!^5|b%d-)^dfEWnr#U#NcXHx~02z_56VwDh!>MBeN;T#ekH6vfB|Nds5hE;!g*kPDsbgyXb<4caCWfChRus+7D?KUh? z9afujQy^{1v;rry1}2#QBu4`X3_9$vHbs3(LgQ$hxlXfRd^DKbP{tfv=t4W1&$MlA9F8Rw-iW0%^;i)Q#Wzk8cjhtC*ZDf|cof8AfXX(a9jpi06|m zWZ@hVJlnFmL{c^jym)mC08k*tB{EGw75dX9jK{_kb~u*{T1iM$(s|l$;NA`gXF1SI zQl@#4(}ncNlix=w<@IKqII}!Sj4aANNEC~;lJs8n~*rFBaP$j}~3I&CoA>o)%qC!0ci09Z-kJ4-#0X4L9+3X%jmp+m0Zm)pSMl9FF z%%08oYj(Q^YrfWWz3wLo+eiWZNsXou7$D5W3&pvQ{J5@GKhJ&f|JnXp}&DI|Nfh&^+Z zhJyplzIL`_@$FydEOnBs)Ufm3FukZK{%Y+qEM5hS023)aF8?^SLtzLK2ID1=_Bu%F zkL5y!Uy-wNazgng` zg_$wA(ZAsyTf&8>kJBq){FG1r#%b;ay3F3e*G-^7xBd@=E?3(;t5Zwd>=l>@v33-+ zT~uZQG93(9#yz5R)xMt@8&_(6=y+BJKE@?RJlU8`!=ba6Q_q{k>^> zh6cXjWC9rX>(M{8%V6dDmI0^xV1>Fevn|ZSz~5mDvJq?X-fD1@YjDSO!y+t7`FZpS zOEI^sTGmaUK)_(-7RxjBwS`}}IamSPPa6+wy~%<3*JLER?i{FjLn(kcUYF>ys73Q> zry4hJAJp_HUxUnr(WYLvs=SP4rZ=P49Eq+}gj1 zo(i_e(G~pjA|Wpl8sunUiwIb5#joD0n7G=@_uV{LDxiXyGqUkH>iqd4;PlwWkXi zGS`R`c<217+Ogc}G8QIO1Z^txFu!@ zS2P55L)mF?InpLA;0#oEq3f_gCDPMtnRi%Ctyw+In+k6g6Q#28dW^-y@pfMpn^;WK zMO2*+U}JN>%o%;K=tdcV=>{css4%ze{`)~D^W#(aSAvn4Hrn{8vJUoq zumWa~kr!@HTb*SGD`tbL##zZlmH+s{ zIAU{{66I2!Q+{P5r`WXDjdGU#EGZ^ZaX&+d?`oSU=;z?{l|=}M=L7ug;uTGb-Ofof zAvI$YbuegK>DImCz{Q^Q9cMc5#_0ybspJEffDNfAR(zk?I;~Ir!{LPjzN^FN*L*&5 zu}@QWuq%IA>^|x?G9}OQ(uKCLIVQ)tG;&sE0D-%d(I2kp2IpAUq~nz>Fj;}y^wife z^Z&o4-$vfZOKXMZ%KEo^hQj9|B;p%_H$U?wK_ZhbhSA~tV#u?7#%cnK%E^-q7S5Ms zSfoFDxj~_Yi8ny6`$*$mRQL8}2l<|?g-wG-u~gjlaD;i4k53^Sn1># zeEC)n^n1`0DTNDIYOs{_l6i26dfqV$9P4ci1uof#+~()S;)8V>%y>PVQJfkMt{ zgZjMOSCN^lRik1`OEFR2!y6=(jl+i7EQVu#dxlhu8Q36fVIxl4txu=n&x?@g;ll{v zc=KQ`)co1}Qv=(mLw8MwkKauH4FC2)^HP!#I~$E4hgJ9vw7x09G&+uSr0Upw*KG&c z^zBow-`cG^q&z_~U^9FxUVxzKhju3h-H9SHaf_vo7Tl5VZA2h?MmE>->x566THtwP zc%zwNyW6XvcQmmV_*%tu%5OZa@CTX8M;y?OraX(Sc({-vyjCmLU zCWQZ=FEfgD+xg~o9CGh&EI-zmeaX0s7FuTmywX{kxD=_~kJQo8AE5sk-v{AssA@aG zy0r!{B<9qr^tZCoSR&j!EZ+dMvSs=<>8yNQZpp~>h?YB3{AK>Rn`3G+eiS;ASmZ16 zuoUN&>yf8ry2&Y?Os5_>`Eb{Ah(+4u&@vmU$@{4NiJG7$^> z-KozAUft-kIp>o9kVv{4^*(`Hee7N(Ixek>b8|V#IG}!$DkXH1Lt-UqGOhToPM7X` zbl0SR{6(HE=r-C*d+a-qGyrL>OUc0F6Qjcw7b8nKTDG6zOZP$(H#fKnfqX7DdTg9g zjb>ErQK^SWqNz3R72xN2NPq(AlX9GVp}!eD@a=3CKw`hb*&B}H&J{0W4+~X{nhjE&Y)dNIW{@I`A(Z2AwbrdtM6_le@N^T^H{fT*U?lSF z+ec}yKp<$9PmtbKq!w*bIwcw&V)~hM+Wqdg?;5kt6e5PwliY0)cejaCqO`x)_L_Uo z61`XNcNlcM;mvGO*QrjhN$_~orj^@EXB63}BzlEtowrjadS*CWI{YRs7-2~3;00%Z zDk*zb+!%ao#}KWwLC!7skLK@9R+*Vz7BYqb7%NDflI&(ks>Qv%A~<1^rXH<0>obZf zZIZynbQQFm$`CWllfw*5`nsDik8#o9#($j^0UB2?+2C|^1m~m|QK{I8h9<1q4M=re z|JUafXGmO#!VY|dkUCYA;2dK?hy!A&)AW}P2c6g$3;geGuEzCxjd!JY8Q`j;z_N$( z_wjudGc~t}4j!l4I;>axL1fX{veJ{3)H6&?{)uz`F$+4w(qYAkbWokXhuf3BbZ%mi zpoTQ>0Mzi7bwSE+%5*VTfD1w9J0i!Z14S~RQKqS9`XJ?y)xR#Bf5~^&5ea7eJ%t(L zD3vn&)Ue7GRF*UsDn$@{m4t%L4Z+Q~Gb%yQ(aS+t6QVj@QkL&89-b9!1H|ofg(2xu zu|^HDL95?`6*zHzjQ9f^2?V*h3m{Y2jPFX6Msh+!m39(j1ajQ)O=&FhiyMBwcyE^A z;u+>)q#k7{3dlHLH{@!;5)O4WATywB#pfv+G5)!p3Jyu%N%R-5N3+k)m8R-_7mMv?2_#cg%wnccbIgk7+R19shGf2y zESCIoz?EKDU0HKXh$eC)XlRu$F$Do$t1W3lDeO13A@n1hW9wTqf>A7{nSDripfRTM zZz}ZX`KWGIvuPxjzf`a<9m?OjR(K#NqDzG87``Gh_Gp2QL?1j$!YQJO8 z-eR>8&*BYk_fI3m$a;4OBqXH3O)IsX%08mWZTugsTlP&c@*lWULZC@J-D$&w=9^H+ zxn^#o%rOQjN?SmxFmq6k-tu`2m3xAyse9!L5WCecv544tfrY+HbiHGAWWn|a8r!xz z6Wg|J+h)g^*tTuk&cwFuWMWP*^K$QfAO7#dt991uu5)(PR-azG^xOS>9wRKL6UyyD zzay{5Ui9fESMI(teMOgr$LW4dn^YmJdVOQB0!q`bgjF#}O#=~7Fj>r@!=u$<)J%$& zJch&iCkZn^zEoC!8k)ve`9$SKdud0LnIA>Nz-d`LWUhPK%GbWoSkcfzIKX$V?HlO1 zx9@PpDU-ovxuRwk-z*)+Pn29D{j8ek^iT2xE9Fi7=PIo-FpE>>in?lP?)PXVfKse| zfW@d#)t%y7ogsh%EGB_Hv2dvEFn-so+bXrprH5gr{K2t|lQON;?-^5JlkbOF4U~M6 z;tD!mhi846-BH)7qwWc#HB~ZaM2Rd@B*^lStD7RO6%B#1d`8@ylzCoOZz|Ma{rbkR zdrCsh8|%D<`aD_1%Th6DY5S3H4mO7Vz|5A%DHVbqqYHtEX_$y_1~=`PTw|JTy7;|b zc$HPOf{#D`CNacEHND33qQ?$%;u4jrWfWV~#!^8A{=LKPz&EUxfJ=}8hmr2ySL>*) z5)EI=>3|FAL@EQN-lX36%x7CWt*yup#bX}zFH%aCLB{R2i@9%TWXIzjAvrUw{;V1W z?css}yw4AI#p-vh%TO19u{O%dhzmhdML0YIPw^(`Tc6ZS(O;&Z$w-s6!rDJrf=3dq zLiXq-INKqxe?muZD~dY_7>kvi#?Jy^UQ9B{aDtSU2gv&|41`W}^@x;)q6t(LP&l-N z2UEsDf+@8cf))q6!?Z|~4mxzX-8^o^?PR*T1`S`FUpZ}sw@ZLNG-3r0@zYTt2Ph~*bAwvDv1c~9cT+oW6!(`uk$a!6w$OGbLbOn#nHaBv}wWmyJNmG*Ih0Uh+h$;v*7 z@eKSnlMVN0C7fTuG5?6CwKNSbJxhO-JfSh}y8N4c)N%t8ZZfSZ1JGoD9)ih}g+I7m zJta%5{D5+h7sXNd1&bbSbC-$3@TMF8*p_}mcIx?fXhKgKLVzVRKriH{_!>w=5&1_b z8)ZQCb-pe0^SA2=`k5Zzs6~_|z0NLXDff>?3Mj4oNB3sXf zrqHJtTkMhP^FR9<>VC76y=unCne9F1V+*2X6O(6q^XpG@s`DH0Xtt$h(LmW7|M+-5akXZ2v zN8E_esDfiwMVLbE3yc!jpW(!c!K2De`}CNUnl=g2)D}`Zt|Uu37AH;NVr;Fhhc2R3 zISLJP&tx{A$;-}tF*`z0U!g?{rl?Q`;b2zOf;vKsZoj%%sLnF`r5^{-?SBD%qzxR% zm-g!Ar-2^zzjs-rslkEp9q{l7suy8Y@ws-aZ>Ms`K9OKS_|q9tVS2{GP(n(Dzk)H8 zdxSWud+gp*gd?Sr(3Iga&eLn^SsGSPg)YJ<4QI8HG=H6rgxOwB>6GF}Sgrh#;e;?w zT+ey2tmmBJyVj&-Ka;sk<5}0YmHv6WQ5ElC3JXEIXd^WS0s`CS6~3gn4{O}4WuK>dsX@K+&AYW+uPo7H zr@4;1=JOxB^p8$N5Br}oLU7aOL`aV?@B`-1-1P0gunxEMYB>ER7IfF9J-u~UhAYKq zG>iI$T%#qQouK^`N1DM?=q&PPsy}4#*~e0I_}JPrC8zSb!}haVfgT>EJIh}!Prqy? zINgo@eHh9>&86c`UE~p-H9AGxq&(_~KNDfsak3w&B^_2s8-2LGJV79BujuHz9agvd zmdzh^iBE3;Y%inVIigbajI*ZFkoW%FFaOePZ|52PbE)-&xqp538+J0iQog9_6R$*aTiP3lZNv zqo5_9RFlgUKd4`k;&a)U(K|Q3>5F;kgL@31PvxRei%=!j_qi$COxy46vh=bxN;14` zV`<^v@(<#7b|u3DUbcZ3wyWcSv-Bq^=;wOTOY?aYxkkC{O8|e>gKHWfnli{bQg(rt zapDRPr`dZpb4s{$q4^BVju#^!@JI^r+a1lLc)sKz?0ytiuh2Xs?9~FNI@-O9(8jaGBv_QI042_19U_%(YX#)%eCQ)n>Q`&$8 ze8X&T&!ceEZscM;=R}RNQA$FR$vTa;YMu14HN3ui(Yu>Yjj}Xl)uF*UjY_*H$>uvSgG{Am^ zw4;@mSdv*0<2oym&Bh>ifCC4zY2{3yxWojw$f&(lB#`^d6wP;||DUx^vu z<>&{z?c8$=X79~-)y>IhATN4xF7CazFZjb0anyE|A^KhSd{lb$t&j-Nf6l$=Y6six zNZ7jbT=(*D#L-s&vy+cF2%;Uuz@pG6`OJyD4@3@qTV%fyo^lo*bI^@L%8*eSO{U1` zTAwI_kYzv#vO-`~b9yIrqX7%GmHKq0gi2zRrpY*kbAe(q<+{w_DsciGyzS<9}h(0B#<7I4!*o5jLLHnA06N?-FS;HFN&` zQYie!Nq5DInS;#bKH47bptJcixr!!E(11U=FN>3`(MoharC81iHLHnm%DXvJV@CbR z7DG4Cp;A4t{=7T+UOoYJwVqbns-U#{qRV@hZgjS=qIr5YZ5_4r zTXrpH!^Y=a8^`qXv<`2}EPHJ^BbD%e$F8x{-bnw?YM;IM{!Du}DgC_}ILUfI3T@Mj z%^VAd3{c4vqG>gMLQtyOnk z-s;uXLl7C8Qu*m_**-N0#%b&O2mUoMaWGUuGvEpZwOH*x3%omS-LLSlWnWAyQN8`6}+WA_Icq8H9RrJ%@{<)YqffzRB$gl1{6$)m9MEC>|gE zSC#rSr}x<@-#dU4nh=|dj5u%NC$)U@s*df|@17jj*@rQKKP9(zep@{=-QB;3{h<9k z#{TGXA{zO%0e9kd9=q$6*qeX``Gs)~c7)sU&f&B9rBGku0@j~g#egs(8Kv(p%Z zi34QABw&{9# zcMlOOWP!D)^;;$5W{av|0=zwf2dBr9llT7lv^LTVOYm7GhRttS!f>Aw=x>;;y{_Fa zKBRa7;IDy`X%Q$A*dAO<;JK3IFAbaXESAN|NBY3(|<&G7D%gfY7 zavjhv(rO=1=OyBrp>2S^!%d#1uXiv@Gu5t~Z=m#QOMG>}X*oN~gG(XK`$(kMcmbH} zt@^b&k#d|}mqf`g35d?WDIWD+#>SqiY`);(2MR!orYMe)x)8h;8*X1$QgDg_xasD+ zz%tHH*JiqVO#h;qt2icH&ZJ!=$nXpbSf0;L=^n-%_;xP#Gc4%H4q(KX&sLq}@C>Rb ze4~Yk;EZ>2zQhcAU3ka2&R!&WtNwNRnd@rvYbx!1z&WR8>csD7mRW4qCawmf&-htQ zn|*ef{fzZ0_nO2Nez|t7%cey=qGRie;*y=~p8lhq4{sOfJ?6{>YYzTQDWW3%naD~- zl88XgDIX1*w<%sB=XuF;dm~vPXT@CmLHSZ++=|s~qs?k-qQR6h;^zjq0KA2xtAgBD zn;3Q92J@Wk1N$=92WDKe;XYUQ7rteG&;12&I{&e4AOG3%?MYv=#`!JcVVdtBRnhKX z(x2i}9^=D*g&ghbyyCMtbcoMm>2-@`fd7OX*-Dq$=PFknI6j>G+3UYUF`xKs-QwG; z`#$&Xk|dFS?JL&hCgfKvyGz7wcitn~3r(c`i&UN&bCgTgW>2|~lWF1KulqgEM1|Pi zh5xEv+Tz@8imQ`ctt#*jEeu&ZzcjaO@S$fLTaYzecuKu&S~#@JTcHX|` z)(gJa9Iv>XRyvYsZ+pOWpX%B^PB`k`W$&)G?5C=|O|OHWM>!H?R0!?uE$*$_9bB#Z zUFCx+;r$e5DsP;P?OhFl9-N(iFiR56&$aEX?3}Ci9stWV#_Z(5P|^6STF0ku5){dz zUU!CNV`KI@Yt~#S-{UbGy$NRm%l4+Lbg|cO*V*!00)nVfvw~+FaG}L$>k}iRl(cEl zjep2+qfSN&A?Kz>TIE=cMvDE2a?Z?5{JrMpoPukQbD`W{HXKuZZ~nPZf5AXbc)8}b zB9-{gP8i=|xTH#M1F=|taUd1_eS^SSrN8WFG3V)%tvBcFeEo$-iNsgdY%GRMf0<+P zYqjChwUlUo*{f9gHv!>Ajp5S8xabH8zISTrAe+A)m!t-i&FrJ6BXYq*?&X~ z$4>W`Tq*{+HIdFZ{m0QXYf=kmN7jBC?k=4@h72R^tlBA&f!e(t6;5!WG-Jrkh`1F= z?$Us2mt5QgADb%WH4{01kucpK2^+E4 zm=-G-oQ@JXIf1HAt0Yo*5)Gn;5d=-|zJkGv@+7|_QPw#c@Qnb-bar-To{~NuiP&Y$ zu?pnp6=pm!Kljw{ASYeVAYIQyond6G^XbReBe3xiIPKLf?)8C4=*F0S^T*v*6*nxY z`cRpB+6^Y-Vj{u>{2;>n3KJ|u5)jW|DOmn zznGWI$+|k@%^@Rgdd%2#ht{wQo))6xLBj!Y2V#C4YuCs5l54>JhVb15H)+RID5@R= z@nGni683}3q9H>_$OSJeByjB3w%e z6^R;(Qq_o(&3W`va>bN5ChjKtKqVfN5;wC5i`GKA%`$rh8HpOBLNf|D06C=+%L6EY zT!ISsARsA`C?y8N`cF|bVUv-{rtu_tDPd9ykjur(+3Vs4Nt7r$2}v`>tw0!k2_DGA z^AL(zN-ifOSwcm~44RaLBq_s#Lw%tnCLK^to?mMoOO|7ZabJ166sgmVlX~5s}$25LK`@>l&Eu|N*KhHC^l+LZ50}p(!Yb?%(kbN>q_)=P%tNm zfvSjQL10&)ln3p8lN716QEszW18tq>LUPM@?m8Rk$&#a5fw1gsP!HXz%UF~cYV`M^ zM&pr0!FA^9!M&gW=+i7^E+o92rmxc`tltb>N#zkV#{nU2(O{rL1|#G}L7nTy8f8b`46x8!*2DNV!Lt@CF4g#Vsug1j z+mRZ*J7}?A$&D=XP;d`?7AHZV&9;Ze*2uu4`V^6P;fAUBv!YhH|x5 znK0uQVzt|u@G@5k4@(GuDAxlVkBn$CP(Y2EhfIH`ZxqqF5p9k~B&DlANbXXc;S&&G z?Aaf7Aztt^*&ZA5Q@L3};z8grD!37~X7Hn`mSE7W(d&{*p2B5Lr^m_E8yz@Sann9| z7y+bLr_iKxrOG0BBeKO$nrHag1zfYwf2L2(nj^C9ow&^Q)dZe8GIY}9O$l&t(5JJ{ z_sp0hYmT(13vPMTk)GNDTPt=Bs#_ih7~DTBeP;c1-taW~|CIEFWvm5#F0bWSXl}(m zx=dX);S|+X+cN; zK3QI`bldche{J~r&X`XM@x}ae%s=K|&2D+9i$6ub1m#L|{cf^0Du_c#7W1I2H8u)vwK6j(O%&pvT z$;;;4Q3Q0hJHHT_*v(36^iKvWZo2!s_@0FHml|HshctPYmNLh4hby9tG2zavLml~PK!=565jG)hLkOncS&pQ{C;Z~K3@QP>D z-Myj`OFMA^c^rXFi6TqvJJ+8+REcSx=Gfs`tlDTSZ=TN|uw2*7o}=%n|G>v9PQ!gy zhG8?+7iB`;_Qy|`o0EdsPE@H#94Z_NqrrsVuCswbJg=Wq!nuYd<3~BXm+Q}$n3bk_ z?kb8_O^fwiqM0p?Wa>#gghk?CRlFQe)jYIeR}{2Rv%F_LQw{zrgtwZtlBV*Dmubh{ ztdQ@e33**}$f<_^8atz}tkB*OEXTPeEpuEk;N)Esl(x0NcY-%LGisB?So@YYM z4C7%knn){{pyqgQiSvtn!vqJ2EA^t^#R*fjuZ>@9mU+I4Zen@AigsgbW_dYXGq)w| z%~pDXml!Wann+TV*5s!+X_55mXt}tUwFXgTJ%xh^#Zbj@H0TBgWN_r?NuranF{m$6 zqPUorMqtEf&OuNmcyUler!@u;*t*UKqsf?@!lq4xp(;{_)6y9%m<3avm>vMukV~nc zKy7SY>jImpkzE&s>l^02LC17#ZXTY2ihLPPyZcfqn|;Mn{49fyO1EH4!=ZwX!zfy` z05dQK-vCh9d9K4^Feu5Y2w`yy0zGDWNz(w!9hqO8XHU^KbZ>eUB?^YO+0NIsUu{Rg z`>0zDGPDuSRCil_E5@d7jr3_~Z7s&9;hq;o?*T(d65ql-prFNI=}PBdYGdR`af@Ij zod4+um!k-jkxhXs_%xiJ&ed-H9c_)#_#R=3AVW6?kmDc;f5!p2q-?a?4P#nQx_^agJ6TOa0=L05EB9 zgNnoa)ng?fY(k~cV|cUdY)0sMAC+ow|A4{?Hk>DfmmPn`{3lg6{z3bKo$RlJ`{RTe ze1TuY#=0(R=DXf=&S$GZI&KlL8^YUGfUki2pL2y68zlb1l=h8)dz=h|wr06o+GFM( z08l+`(_iZ{y|(`BMc1WAt=H)2K^8dQ>j-=q)bn=u!Y@DD^vSJ-476a?fz30}sZpK; zJ5S+p=TW`O@h+v&D|fJj)3f>l@Av0jWHhI3O&uErA==Q1EpAq>4Q%^58gR5BMgAxV z?yLz|{cE4z{Ng?4z}b6Xn#;*?Cc$gZ0X@b$G1HHlL$P`qTl=)vHY1D0ceQusUWjzH z2ejY%%f0i_cKbn9COABsW;x6AWAl7>%gex{y(OUg6}Sr>M*8Np!~W29<-P`Y_t*vR zZ{T5R;IVb(5L}>pb+g;m>f?CkRgj%vk4pw2Sl>+;l)tvKdIy+$?LQTLp{>d5Ejf{I9$WumX;1%uTJ2E$mj?eo zJ?vP3!uQ;G?;sw1Q+`)(4*vJaAPS+x)cFeBIXU>R0-<+ZTLvEZk@%Ybrz3sx|0@_e zABmrV$H#Yj@{ZSCHl_dY6%XA%bN8^2MGT1mn?(Fi({GXyoTJ?>cTLFuHfH*do@D>) zeG2D4w*>0DHU2M?|LOSuQTTtA9omEpCAZt_9%Ka3Z$)K;>A#t^f7{4G)%o`Kf5lGz zHp-6p<;}NQ{l3jb=yuk*l1ELKY66`Av9u}UE?0aVQ=&*qqfgsfp>jUq_}4lc{ndmn z>V^U~_=j;}EDUr&RQ)bSL;^Sg<6qbnX#^74jy8eqI8i%1DS% zXyojIH=q>pjnzn|REbu?1RH~a=?79|w34ijl{$sSz({`HgZv+Dw>^W?Q(>%Xv<3s( zcimJlooztS(ZObgZ+1yDQJGmtKnV3(_1L+D)?+Ynl_OC;du|T*TS&m1N2RCKgUQ2_ zncmfob+xhz|A1ge2Zg1Id355t{~%n^Ahmh)tB8Ll&sjNDT^;G`WONM0GHVteydE*oUG6*EwBE?|mA6RRLJa zfv^rjml1I=k%I7ly4?Wt*7Rq6uy8?90?_Cb6iDFBU_d03e3;YZ2c3hI&-_T7#hDyHLk5p;IqIacOU;3*AlyB$$kjAO`UD_B0$1OCemQS;BBo&7l)z{&2VsED% z7)p@j!go+HsJ!Gw{QYvhpl!%DfIBrATw=>%(X|L2TT18W)qKXW>5P-U`_5+lW0?W? zkzFjcROYD~%W<6zZi)Kya31=zcYe7Xnsd=P^S3&z8Gnl`Cc+Vb@85;$aXXT+Tal+~ znScYrbv2_L+x=@5-LFcAW`mi5^Q`pBd*iZ4&&wdlaPi0OF47Tglq`=+KxO(h7+3z= zh2iX3%Yeu%9JiVjC}ht13@jG}3JAIpr%Xd7DJTe|3k0f&Q(!`JvSj5A+2j4Xb}UJu38yEzin-MC}Bw1WYn;}r$xS=Y9I z^}x$&|CYWz`h9M0v`OSQ^wvIe-|1dyGDp-^n^O2GaruUWTKYu`?4bx@mg_+r!JPih zt}OGUHA84$9G}~G@ZcF6!_o(jbuQy25wNgPe|1@{7Vz4*Rd1tSQOIc%OgP*cR#mX# zc?p=-ys1nF_+HzUBVNl`>S7?@m>fK^iGTlKgv&M}4PT}R+>rUXQ4otgNKEbY4CHy9h zczC}q*I;!Ueo9;N$T>+{3jR9Hw1n{pc&dJf=Qff#tM*P@(CmVUN~nSC$kFXn$#;Nw z1=Q(wzxYKOPNF5JV45`!gO544!(jcC;bs}B+aJfegYu+xQ4QckstDU(L8+v;vp)n2 z(+cJrWh&I*qh*U^nsipz#~Fo#u@!RExr0 zbw52{C56d3az75Tg0^8wky@r^UZ@}h9ur-r?=6Q(Qz8SxRWNnl>ChtMv>XGV(?fNa zdl(IR+R&lqbT;w=YWGv-V(>z?=NZIRu=FY5WRULeMO6mb$~W?U#jgEQ0ZnfBkFJH#>-Y z4qu+oMP@9dggEnjg=ikEcekwN#sybQlF5o9WC72>f_wCjwSwm<`F>QB;;h`Ixmg zLVGhZ7YOJ8S8`hPlLh_0Saudv+eaeZOe+YGw<&9hBD}s%L`@c*hh<|s⋧{Z|< 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

V?W3+S>c7t2jg^ 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�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 z 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⪙qF{L8I6Z;8o$<;1Yf4O(+9BXh1L& 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�|M&NZt&lyH-v&`>1WzS$lSK2fk+Mh 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 z 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

3xsscljZIzPzJ(JL@t1 zk{fwUe?Rz+kTs0fumSNsuUz7^4gBE`t8Ei1;=X6VWa6{%t!v2Q+p`M6V(9 zl+bf>f_&xMBktfmH*qDi!2nf4?a zA>6dxr{gj5wb969nB>@6Ywb2A?=d+!vB+p-{VM4gd8Edt#y1`i0iQ{(yHhg1w;%J? zKqgPhr@^s82pIwcLHq!+da$~{KWq3AXR!zDgvfN3-)pXM_wWIBvI80pGXFi6!PrA~ zuaDfE@n-m0hz#C-Za2diV~jps5Q=R2V`&%`0?`(9Ip_WEXzbLYk2$j z4Ncl>H^ZMlg~;IA0S#YQhzzFR1DfJV{^WZ206QIEC*S2r5YQxg`8Xf2fcCQGQ`LPnw%YQoXB^2Ga17qYz?#XXrBLZk>N?>zG!BPV4#N1A>d`UAT z2n+~;Mo7W(9|{P|*8!S(+bG${CVQ%;2OibLF(6kH)Fp&e*cd>$K{8)e=yvCoD28r)KJ6MKslvz z)bQ|S3znXw0!tAG=JSY#&lY!|D}LdAhIsT1Ux?vHpG^(+Skb#Iv2XrNEMTdd_|C8VKi`9!zhLe<2No|K}8f9qhrM&2(WS z3U)ARf%_{g$$8!8qa`@A3KY54AM3a@<3XEGndxyamx9RZ#IPk@i%WcVh)ZP>+p%#A77 zJt&HC9P>5Mt8|W-C%~2RX8<>kaDAAYM>bp<1klxRGsG`{Z-zLAZ)l<~A4ANQG)-98 zK`JCduyh~(oB~TU{8af2pGOz~Gkmrf05bq!h6g}|`T1SY@Ne63I~%67eD*3+5%>DH#T5IVC@wrz$%VFnk+a_AYFOT|5?XS*zT3W42I81L3P5 z7LSQ(Mu-hG^(mejchF7|Jaeb2aTH+Y^Sc7a?T(2BxZN>w=K2nkQ>E9Zs!i|IB-r5= z0U!-H(MGqQJJEeP9wT2?JL>NFoWSOa<&-DHJt?r0wc3%7gg1B6=Kx$-_)mV-po9^M zF0zO~z|4@}ryg#i-w#By?Bwc-MAMPJ8%eo?#Y7CjL+7R%Ig;>ZEBo!xD@+6s4F5+D zA4r&pA%>9e<3|r4STP7(Z1FSGprPsROrk*m>|*3YU*U`gGPFcCv|beISuvJtq? zkWa#)lYym&gOtEY4;0G>od#PRz{kFh8kX?;=l3@h3}uI zPT*cu!2&;=wZ<)@RTUj9-}Xw49h`@-*j8AAku2eQT`~fcs+(*9{Lx-Tn2c5_K$ac8t>NNtg4)db4Yvucz9jH*fd4 zUHtd7U#pbT&T&N=y>ECp{7DZ-?BBRo#H)ecX#j(?w3zueAtp-^v5Yz@{9RV4%PYfzMdf> zHm7_1TIG{CF^qokbkL71bH+L6{2Aw*)5f)tnB@lfY~!4B&N*u^`Gx2X(Hg?Nl*hck z!S(jsbCpiy57tn`kU-d9uA~$B1p9v2l22f%$|tz{A*;Ka)FQtyVhju9F(8BxLPQ_p zV&FUr4$O)N*}wkzjr3M$`$OQwSkG+O{C1mWm&m-B)ZvV`z|cou$v!W*>$teGOl7$rdAW{Q9+ri zT+~6uuSZfxAo1x@%@r&5#8gz__*i7J3PEfF1?UGzjhlv;5u;dF5bNe#SrXG*Z3E_0F4rqp@{5&iN2T(Mha-N&7KTDp zpsAi*uH+Z;XJrG%7(vos>9BQEHgD!3{$$O6S8@^3k2lDCe}5VC_3}kr`}Giuc=pf_ zQm>?R#<&B^csQU3)rLa2${k$Y-QOjYBIG+g@?NnlpGD7NS45m`PQJjwz>z%WeG8}6 zD&#KTd0_8S4&6|}G9w|O6gUM-OiqC%I;HhOOSZTh1_{d;6~V@;X-~RKD8(fe$E1W( zo(|7&igYN1-I`^e-JJc(XYE&Remz)pZ6e-o5UE`o7(Txq7v|R&WOi*L=F(vqQsh6@ z)t_D1^|@Y~>uVq^g|AJ-^6A6Cy_U!LzrfW*>;l&w)1qxZXjsadMSw5Py$5%H-)s|cj5x@= zHW9~b6LJ5G5tgyC?Vv5A9_(Jmb0KVlds(qS7|>v04PW(TyEmXdy_tvl^oROX{`J?* z-sQ&|tCO4iT$k?wAHf@#fFOh>*0OAmVdh>tkI zUi9`eAl@B2cI?=lb;pibw~ct?bBhb{#tj!*?woVph;z=Z2OC`EfOz=j-0rcgz)8eE za`bXMvX9<3jYN&lh_g9;2bO5uK{9XtwiZgcK*F#-_;Bq9EJ^(1IUHid#JL~4=B#yI zmEP<}u+Q61(a)Rx2=1TQ6)^@n{Airw#Gs!iUnCwv<0cDldki=Tbr$==}4gr?aQLHMW z6%?SK5CAc^q$}I8-9(?{>D(!zWMENgDK1BKYurO z&wkJ6yCWgO>u1sTw@8XaB6@9XplEyfLFUa*n_uV6(C4$v`8Mj`;O6`m&eoM{gH0BD z^LA|{)^5JZu^qKRNF!4*-iV1l!i7vVoH6T$Ba9&7{dpi~t+1sec&P|64AckPh( zkmWk>Wjl5*2oXatm;E`GSBC8U`CS``ecBQ1no<{@(wjB=Ir~Z}{Tp1jJbf29yV<~% zZ@J-6ifFs-fhShG@?nlleeHW|fWP)N@UtVq+t-_Y2X8mq zJc%(If8!l{iADb{+zrmM+_r&u%Fp)NWShHk^9OD+6x#e=na^z7L4>byfzizX*&y>J z&Kia|Kb*7qBUr+&_e1-cKgP*_+YcJPZm#~b`$;$$c{p6>;gFx7Ll*4h?XU6v6^P+v zE>!@gWa~|LY;~eGBp3 zS&@DN=v6|bJ_G{(kR|cT?MJ;rU?C%v7&1P|;m|W$jIX}DS;NvR>}18!E6qY)h{6l@ zmnt)Fjq*YXI|xJP%g<8Imp^Y1Nj0m%lGG-kW9g5AXflB#c0O$xUAVzR?mV5{?Kf3D3f0g60006A;}ie@C=3dR zLqefgG@K}sBKj17411hTZd4kJ(--Dml^g zgV};R+bHA)A6n0_GR~_p3|DsRo+w3gdj#RhW&Kb1)|HoE%t^u@$?rJ(;+ifUH9>SmVuPsp4#WW8Um7rC7@CSYO=7? zMB`~12hJ8+;|VDCWwi^n|IeWe(xok5fC9Ps;X0IT!e5AiV7j>**wl2dl&7FKW>^OR5x z3OSauS&t*5rf=bP-RTHn)Gx>DRd~q*v$hogpLg{;G2b zw%Ru-d;$u!4$6r9tlQ8VANZ;6&VBZ&?fTk!2dka3L=pyARL)?07oSNGFpS$)oYV88 zIfhoC?czlVwA>8JXPN**K)k>GZaYVi(3$8)B0=!}^w)3O8E5RBkn`c$8|9W@8OQ*6 zQSoQouqYU4qVO3WQR!BtCD*}hK={cwi2KwIXIIc|7RBwBuI#|tn}xo9=ZBY9DJx6L z0KnF4U%WW^L&~gn*34s$oJS#N`dEr?qMuI(0>yGza9j$(1ueNy!Wy0k@fp5k@9(e( z6qn#Rtw!9S$iMnmpdwA^6Z+>=jg*jyq3hI3GdiMaXF3Z&N6h*H{aEkmta`M({3E=< zUZwSmJ9fJ*kdodQOy&T>UnqaFMw(jwx7#Qj!FwM`H!zDNx)&??lryZ&FAuEzH;^@C zJAk`4&Q_sVfmxv7cNm&nGtM9rK?|S*O<^UF<`lvTCFmoR>MM1&#rXgwKIrw}zwJwk zv>_{4?*qrH&|U!rpaebV3>H>h-+{$*B6g88wSPFJEr1dGug?|T=?I>YfMipu^Yy=b z&znF#S^l&VP%Y+|S}Fl;zFtR^Fpn^&xk#(o+msh8WjM-qB#ubb*EN_K?OOaP)Z*?t!N0PSAC&S zZcmV4`Lqqur`Jb-WODnFpv%eXo$*3Abup`=RR^f{uAYEA@FqV(YnE%43t5B65K~6c zt`@GQ2jIB%*uRIqAxOs7k#JMp&OWr`2kOY6(^ipp?6txtdGWT;PZP)K(a8~YpCBu2 zKa?FT7C{6BXIoKyCp($WXUak&{MNWi-{zx@#WVt zm1>XS_oRsrHyIb!vUO9+s<#+V_o)mO&o>`<{Y@o#nQ7%IAoNFJFPk4<5e_(3$kugi zo>nxTm8wmzOumxBg^#?|e=~aCTM3kR652Cq?zWo%!DI<5P6@9^&m>EDpX17 z(>vte=YIDkFHrpvgJp0kxkpmyXa|U<9#W@%re#vM{MMeD8!0Ekh5Kng@8`){pt-8} z&#y66KMMJ}7{!(dm!-mq!Q&TZ+f|#T2e=gwL4L}Bh?17*K}6_44r*Q#t;^NM?x1H;6T59M z>medKr-FtWcIU|lSI7`RWF~o^ElJ2sc15r5u?%`YU@hA?AH@1xc_|2?Fv20b_<~R* z7Oo<$)K-Brox9rX#)-2%bY?JQ_@KEaQ<%jo$)-?g;R{9zo++L}H!PQS_;~HUD*=K~ zpHr>uGf*JbB84Qo+`|^$6r&<+@a-^&(H^q}LicAdg(36t1K+gAp@dk84G^z%4ru5D zYbYT~ZK*_-)}4iZrLYK0=M7h89LU`Nb2DrKNeQDSWTN;2#V_$%{+|0aCPMTbw0z(l zVSr2sp1W+Tk0ua$;Qo4T*cTy6mw6udO9#Y8Y`2w?h%wQiS-gy`bpv|13Nz7pkw-!& zCFqY^>M!`+?b`>~44FgE^J%Iv3nPbKf7&u0g)N=tsX$fiLek0cY0R%|hWf27Ha~V& z)wE=;dD1xue2h59AV*o+JGaM=9Z?*c=Ca% zGVfy$z05cFTFT-cqX#Q1HHt0WP>DJw^f^yU&7TgD`>q> zA=U%7vCA^#;|U113GpOKNut%UQv?7SGTl*v=9;Y5H&EB9Gnp(u3iRBlgcF(_+O3;= zVEumX+vmc%WaUtLCez|vjA2r3Ui>n>fO>78;_Meb%*u6!}#g5BXC3rt)@$6_8ar+2GhK|uU78FOKVc?rZca%a9ocbSpe z-FC4)86>*8QA0LD;uzxZ*eR@-k$<&!%A42P?3(57Lfcie!>9|)ij`D-Z?Rk2u*cuoK!PrW)L}d5=9L158p!t~v8D~>3uC*>h6y}VinZ8* z)s=A63uh0Z4AW!>PrUaVtpN(lM0-KA30nxtrO0y2@C}a!{FfL2xqYCwc!8((N8e3B zMpAix*N?19W>*s5k_3h zG`IvE!qtUJbjwu5>@DC--D8#ayw$;(!FRwcn#*g%RyGy)3fVOtnIrQXh#P47Tddm< z+Q_jY@h5I_X{J9&X$>|~x~7*nOVk7kc$6(ZE?npHeF+ESu#)QqsL-Ny8_=i-2WqIt zPaBW&KZ$d38vUNx`}N@*r^j8ls7K&`BFGAzF54b<6a2p$UvC#uqVM`bs6oe(kGD#` zGk83@Lc0f+rf7|2VOgso5rFfP*lgT{b1+cmfM(b5R_A@JnET|Zs^>>BAKHn5gKCq` z5=(KuF`Hx@oobzLPesXMbSdx#yI{<0kHQ^;YOAN6piW`&8*YF7h709IXr;>V_?P2P zxKUpTW;6PoMe68h^9XwAu?r41%5V6^P z{H1!vh}_Mds|BAkveYu7W&^9?IF;iaMdf~dY~4Y&yIBGGOGg_e&($nmRw2mlRyxl4 z_cRT{*hRF&N8PsmNJY+6%f(fnIgZ14OnH#0HfCso^x8f~>xsCXIaG+|$axq6X91`xvL)?c4PHr? zlutO3L&`&$mN*9hC`md+^_N@T)dZfvb7HR|!#fG#+oTy$uQf+tvyiBWX-JX3z8C(i zi0vMA1hOtPj1u#_yOIN&#L8)L-eP50cPIP|y`VcXp#bxebW_Uonl*gs z){(~^)~D_Ha-fS*-eCEr_OjFUboIu3*Dr}1OkB@T+gZ0K0QEpyJ3{CnkgTTMX5V#* zK1;;hzvJ@LHiS5GkZ}@q;CXw;8SpGbS4Be}S$cw|QRSm{knz_lxY){n`A^~HBREIK zJDgL@pcmmQyi@PmVvx}mX2u)*SBPchzwQYS@74=Yi)h75@k+d+` z$SXC^(!X7fe0-M?^J9Yf4$m&~xMn`3t~VqTWG^ZeOn=S7RXG`MkfI^Tq80VW-R1_; zFJDKcVIiwc0NfV7+~>XtypHut#;F13rwAuV!LQ^%m#=AaQ1Fz3(LM8dUTN3c<9D^_*tFp*;_ei zg7Qu~%zes?=a>&Z^jA@?2!6U?J!3I>!Awp|uyc+(YRh`KUHJlheXJJ<9MVD2o1A%9 zNg{4Uy7yvYZiEZp1YLnzP<>t0W^zZabyLW-EZwF_lu(Yh`_mk$P^S*(jw-DfoiKwpi?kQ^9cT^qW=$?hFXTc2 z^r$inr`Zbt((~AT{@ttbHjy+?9z2qh>dU>1#E?bx;kkqks3*c|Y>QXL-V$R^G3U^YP(OOw($Ny{Fd zP^CYz%=Eh)s+^#)3V&{QZ$7XcD}+QIG{H?-S!0LY{Gc;uR$07EJ}bSlW*XrKD%<&f z`ds{E%c%+b0rhnt;5m?aB0T4<yx~mj0%eCEbV$3pupVeWETc93>3_Cw2_q6d{OLqmp#nY|V{iN~)yNvfz?+ z#~*IT^|B`ULvA{_&#zu`F!H-Iqt=U2p&npBrckgiagK)XtT?D0@5{T7T{UkUXz z>Tl@;115Z)tmcUfQmVWZVuPv%%0_mBx!88U1�spjUJ0{T4kpnHFg*v$s6R3Shw) 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%0A{i_I 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 Xz+ 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 SnaB&VxpHUYMX&Nls-3{t)smt!o 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

M$mIBi~Y*-MO?DqE2cH3uR79=9u`Wnc`hk z8oDOiImznY7&C^11mr&YqKwsaZu=i|i`pd&lN=zOgraB!d1Y_BVvad9L!EQnPWQNe zeVQtd7GDLRhr>_u2)zBL#xY{F@}MI=vT>?GnL(-xBChxS7hGZ2us$C;KSUrOGVZe* z=OY*agtD{{H~xv>mvK(Ltf~d|)+Inb2&0sU$qecUPZi3I_4?=`kIz&2fc8*l>}%>4 zG9Jw}fi0QFPp24?=k>9}!B%^dFYz}BCV9vN&jrdQ&=nis^m1p*QiyLEe}cq-jGrup zj))?qViP|R&=M#0m5OHet75W)O4|x11zPL9nc|;B0BZc?$K=EbQoAWgug7GXTFin1 zMPQZ_r@fL0@SmWlUBoPSF^*?m!;5GBiSuNwl4(W$sr8rJrcqh>>=&@TpI!}X&(R3 z7!namxkaH&u_c!0E!(M|aT~{_x}Rny3>7{g{gEH2;u3@8E!%eU9WF-R$APey{HraZ~$jnKcJqLtD3H8d*4rzp03owUVH1jD)_ysTyw zoYMwk#4`drx|R0#KHRN;?c(DSuYvnsJA!~A9r$r%;TGB z0`45cl+O^ouBH+jSY|*|s{C-3qmO5D2)c@?BRlL{8xxivjnAQ1vGB@93wQ70cz4k! zna312{D63k8{1X_<=X$XJQumryLj;9y0>7?oOcgWIJbk|V(S=37Y`Fio^l>~@Qxnd zZE%_SeB8@S>-mWd?5I)e>kcw|4IY>3u_SDu6{=9CuE+DB$*e~3f8#{iZyT`B#;mV8 z6)0$E01g-)1bfn_hxeY!_f#tdj05ZTw6{>aL;zq9k6bz5O( zLV_*0o&D=hx8AWgDnO*yCw5ElA0{iNfPOdm@Tpf~qb3 z+K3xr0Rey&2oVT=YQf5G5||%Bvnz6#O|M{i)r|-Y+8pTtJY4Hun-@lZtY;ekvjMP zkxmbNq%us^nAZPvnKIr) zDgSXxKE5*)`t8{So=K>&u#Ws17iO`sL6lR(guaL54u4u}7uK(FV|B`BIOD7aQ6=~O zTS1>TWm;`ByFzZX;LKYu$eC$LAsvJli!qGuw9WX0ZTz=SLvM8LsVAs6TO)tx&f z1Vrw_qWC>?yW1ZbBp%QZYQgOEc_}WIHr)_Z;WT-mhZU2a5`J!{{jmf>i@n`TlpysS zL8W>VWF`e+l{i0E8>VxDV7XsJjd4{~x&CTze4Xt8CqUT0fTLqlyk3^Zc9(xILGa)#|L*;xr45vm-iRxuQsJ7;Gr9proA+3cKJ9*-n9iN_0lIlcN_ea)CaiO&oY>IOhg4P>;2>Tnwi!zT}aR`cQEEm$k z%d1gete2_NiiJv7HY?qOTt$g>1v7L|?Wp#!pR?7f5$UFbS60dF>^+!ox!@iNRx>ZH zCUA{6wX$)LQE!tkG*}W%y5@;pNQg3@zXGR64`gz<7^uWS&|6bp*kVu>3o@>qBXeV9 z*wYzI%CU(TP%fPhc$EoWPQ)=?s~}*qcnZ7U){;AM6k^96nV=8h@c%XkaU9t5PzN_aa)Qdv#)kG^%*{ zGg;T>nMtNG!oS`pcQ)w|-tb$cQ^sB(?4=ol3d~jK2nR{av6NC+L}Noo=Caq~CMf&U z3jPsQ`qhAS1_vWDte+S=MRDXmOPGed8c83O2'YUaJqB!Z?U@BRgXc4^P82R@NdpF2=@p^GqgHbF<Olwl}a6}-@UC7EFb}hszK3WkslSk!6ITH#`1z``yMI^ zjV*b;IkQ(e!J#^yP72F**eipY=r$CeSGEPg8-U&1;(20bN48H=SWp}60vj32z;Zy#%NAdJ0J_RN@Z-^O1rXSLD9;JWu zXrBJ!Q`Y2xP0>!C{l1pq$752Du9GyHP>n%IA!)5tzN1=V+|k!0eky|*?pZ+1pP>d! zj(I#Hx@Y#b*N#XSnmy2I%#$bb`F^_B6N(1!k6B(pg(OxWAq-Y>C#U`oy2-)vO%Q6) zFPOm>%YzkNxDy$X3{@yw05|@$O5c>X$q(vWV`tYccRgqL9{>wWRfm8%jc!Osp%mb@ z{Qag>*?LcF#5F@4u+SWwRQ0aC<*@!6O9Y3UF?X~F77-sx*V<%-jYe%N#t#m{xBh|| z@%4IoT3jszp05xXQX^aREhSX&M~1!K{NT+}XHHdb73iYm?aG%ZPFbtFk=KJH;dbSq ztr}SjAL*a!mP3&kb{FEZL(WN#qjoh)*~5l@f3afC3Lert(MYmFu^~$9;~W!5un0^& zs;3#t9RE>jBZUMK3zJ!_-U3Wq9uNwuZaIGQgx$7hIdqeUHE~Iye$~we4Y-512);@n zIH)K2#&Vx=S)jyqBKlj?>Fc1|SCU@851kE~rMl7`01oXAD8eleLpMM#u?8}318H>! z+{q1)gj*oK7=x(p#>WK>-K6>iG~#I1pN&%Sc*j1~s!yX|`-`Z;r%|!0hH^K(L$sUJ z?*r=#oyR)KNqn?!MV(friYKjybXp`5y|t|1dkG{Ij%z(F$AkKJVEE{Dhn@FnQD%=x zwyP*YC?cZCgAs}l{NqQdc% zRI5**`!zp40dZ*$oEWNc(I8fZBj8U0l`q;g5z5qStreJ~;AMwOq&G;`!Y+r4IQZtd zioyt^miu}>(UQqTTEU1gjT8-HR=D%oCBm5fSH$e|9ZQKFVNP*z%9jS76zb#hl&(sF zE@Dz`87oSk5u=wy%$!@mYR7;7AUF#H+}SjAd%)!G5g4!z#_n)p0g|D|LJ7V;hsTJrl5B1gUhlbf&opok z%xzOnlFU!S+j!FMiRSK!iETO=FVZA@RdWLx+wAwOCbgsg$W7Dsu*a(5Kp}KiQOH$mf%3qOQ1u9u8}aXbswpRra=_ zOD~1+u{NB7ZRcEZhvQp(h(>t9Lv3K;*w2MUp^>qd!fDc{UP{bd8H2c|_9n_;*pNia z*~*zMQP~CJHglaPNUaEq3*4b*6|dxkPz6gEgo$}SiAymH!Fbtg#=g_(+vS{!iQduL z#A$AA=HIKSt%rPMQYamD`MlW)1&|QK;C}(1NI!U-wj?vo)FE&?L0p$|H&C`D*(ot`S0Rc zm=kzB8fJ=dM&dkP7YUIB(3#eZHd1oXs{TF&RT-Le=_Hv#jd6ahrAtWcc&1E0@dgSH zwkp&?R><*HgS(Yl_gIY>q+Y3hTIufy^|v%xU<#)|z#jtboS^JE1F9GWd?t$9#`tl2 z5^#U~l6uzM5&f!PzsWiqGHvyPJ+kJE40;nz7BCA2rrw2<2{VC(aqmKtpdrxA^FlHQ zJHdZjn9*tpvp`l^4arpQL=x>z?-ZQaymoHhcpt|t2GwZsT!9;d1P`ASh#Kp|$NUkl zH#Nn$!aD287jg!WCODmVEt>yzx8CD^88I;bCcHPXgZyx$)!uCm%m-Fj!i%7Pwz{}9 zt0)EV%EcwGQ!z^cZSiSE8?&z!ML%iK4dtVim#lMaF)%iuaHPu~t_nAIK_KqZtu)Oa z4b|~VkUiA|N$EFxKzHRqlmHM}s)4|Z5PMLFG3%`5(w$Y&g@F8BJJVgB!g^HH7?3W9 zY4KOlU}*Mbb@7A(1h*bt#<&WAw8-tocD^;*S?3++!zuxQMUf)Yam_H}58CS4h1z}7&+gC|?VS`}XXL1M_)IM5E55r1>PG-8Zc zt2ycne&rAYV)V<{*j*n><R_@JmTL+VI7I0 z)q#L(DI#yHsBWpe9h0hI$(yQUc{j>RC%?La(^t(8_;l(;p?9&+JFXD=BS?HZ`=UO# zD-nH{yubF<`$gcp#EQxq`g?HFWQh9xs@VT2&ucBxocICbnV;4AeeIXz*c5eUb)TDg z-x#JoYSnIU-dP0b8cIu~j?5H|cXyg5H->`UmkMkNAY0OR3`InPeawbZ2_y7^X@#T! zs?FoZ^Zj-4KxCZcZ8ypSp!Fe@v;th)=%^K4(N!5z4p!VCI^($dP7d#O<5GdJTdLgZ^ z`vSadlRMFAB;pqCUf&L^t&kI?J(BAIW$hZV8FD9GZ62A&Z&MZbp;u9A=I@)EzTN_E zVGT4@i;gNgc!U}lnh^#ZdKy^$yGe5JsY{ix+(Nh1jt?rjVg*gfwD|H}jZ2j@4cC0x zGc8GjnbTxV&xBcvh*hy3sRlItnYXu{qMOnm8*(LTKX;>Ae>iW}hXBzfG1fILJ{^7X z2$Z#YL_&bmP)-Y3b7`<%wK#7}9`@lTr@9EZQM>8sYB@TXevQ~FP(c3H)Hg_EeONi~ zs0$wKU2myQ8sESTQgO0H#!y6!+Bm2d<u;e0;vaevaE*VVTiZ9vm< z#BLQQ*Qp~%Iy+z7nbZe6U=Q@hf4@zkIjTQK6Te~I+gi*EjAE<;%=;= zAPnoKc%0f)2d{R1)Rhf`yMiY3o7jxl(%I>u1#EJ5ZZ-~(fUCzEeuT_!P9dw5U4v;- z+TCeHAx=uukPlZrTH^Etj5NLT1?_TGxPPenMRqdJWrQ11dxFQZa7q_>dxCj35=vLO z`usK>YH*N^JvoHXF__=rqK{5j;TfPWTjUarq|$ZfLu12kWIrk@LhS*2t|T6xk<{0; z9@khrMIy2F=l-mG9+dhAQ0&$OY*z;Io)O)N{bK(f+!mYtTkacOH{5!-mE(UQH@QL- z)thiI=}DW-Q*&DnwGzsCCisU}ltX5NA&A(>#TEZFIkviZZP=Ic9^lQep>mY>_&mV; z%1i*kXn>don>P~T@X!{2l!TQz#2`|R$Td3BOvf}CT0$>`t3JfA@o%iX*@{GDJv&GqVx0&tUO$giRJK8s2wwX6M-P-{GtOAad|vH(_}!P z#=fec?OTY3!8_qz`L5k~CV#CAq}Z{gd?0W_gv1#HV6vz!u6dbGga`3=cS zd++~jdqM<=;S)L{0lABxa36u2O$@$$#^R*0<4C+XK^S528G4}XX}_5G)O26@Xos`d;Hv9k<|A?_BH7F>m9OYv@%gZ0H+T4oww%wDC@Tp-w_lP5L)imiyQ ziYMT~2OeY*u6c-^M#Ms7*ye}}C0r}A)WKXWB@M`J)+%t#Py8za>e=4rl0{tVuw7CY zk^PW?h(0&1@JT*h5L7vu4_d~OR{O}ujZ;#}y2Z>kkdK+e9 zDBpg+aiTip*K^brHp}`uhz^lUImYJoCxih-cw_)vi7K+@p)}e5CO-h;XqvtjBji6Tm$mQ`=|>(BhZ)J3i4>ud zJ9y97=QP2iUTG~G<(@jg-@=*qjL;ic0ht0Gw(GxsjLfCVKPuO2_ zxhr0u?2WA`cvw6~^wvI0epR_2}>R2*rZP~pE3;L$H+d0$gq<)y(|t5oSoq! zvTKwXvI88F@E``dx~IuC{Q~pSC-%1DS$Y*q#;C2Ef7d-C3lkSfADYeTd|o0y=DOJ|5GSNoylX*0qGS!8NYh^o>_aV1CF{V80M;IB?3`8D5nicwOGF zMCqKSxSq<%F;aSt8-x3VHEzF$XMFZhkBo5yk{tWBRf87MPqh1VB(J^6acS&;5%W60 zrnTOfMg}UztAoQ+EFHlW28q#4C!{!R9@1406nCT?D-Ver9qi^Ki@CGm{RUdA$xf^b z-D~_kzu=-==461gVA#jRz)hkQZ-kSULT?ri|0+v&uP|0_vx$frge0M6S(&@vXCGoq z&iR}Xkt{uS1U_EDEgV(|Hab>(2nAK4rUv&yV;2Z*dg@fJra;?)Azf$cD$S|QX80js z|7lYfbV-qfZv_CPZT5;=@U|uk;W9wEc1|6rf4Pw<%-hq1hb!u~h_~q6xsIQXrmao4 z{aV#6#(NYGP0^r8?v*4pB(nIBO|`-`^SuL;0$8t<>l!?=>vslboe(m_XYNVh9G!9Q z=Qd#XzeX0o(p_ehpSlkrZINBS1pjow0xX>+k8CTfm^?P<`MGflFeGR*Y_Y z`_vMU@cd>@qIbF(_b+<_VROzQ>K>(Dd@l4R{2-aoFo&ndJM64GW}aCVF!T4B1(2Y7 zn)z&?Tq<`gB#W|+%NbF=$X6UWVXgY?dWR3TGZL;$v8`q?WPklM$H|h=+-!ftJl%g0 z)$Iu-KTyC1-_JlVXeP%`Nl3%d3!{j;hWspo&0$_fk({mv`Wf4-DA}K(LxF-^XSZ>uZV4^q>>nfPagX7Od9Wq9BlrCD?cZpNp zszhd{hXX_e>qmG3fD=Oku)$xyum%(1=-2El9KJGl%K*(Ilb_ujp~NNoloja0%Cco~ zF?=&O76olRu!ONkh25PT0gBdr$Ps924}p3tlZY`b=3DG6X5jRxWjnETXp&VewLtq% z%&=D-1C*GHtqG=8zH;zf){pQlYbbd8VJz~dx+TcPP$>e<3N2z=`Z`V^;5FE6nt?;U zM=w*!1JX?fomsvr+)EoH2M%V}=df{sY6`QPeNAJ%tbnlPl@@Ct5}d(P;h%VP9kfe$Pfa|D3pm{DD}1#-ODz-eST2xNZZVCaaW#zxcfTU4-IZXZ;H=)AP7)y-eA2;`w5rfiAOsF<7u5nXWsQ?=}9 z5^Qn;OAHs>!EhuS?fRks{&Cl#RpHg5X#KwK{`pXiFmQzZ&cnW&u8Q?~yzfF#;PlpD zp-O}~?MPm{vLU?S6N@kyPnT`WE=MuNKZdzWIT0fb5==4fyQ$|Np(7+Nv!H}^t8RKU zB*SdKv#(|OLg4u?7OA|eqtQaoV0vhvKFu-Di_x{R zVe{=5%PmO?1wkq7#q-c@Jcenz9Wd(1{Ai(*?&o`n5#+t5wk@t7+P>=J9f_fRV3s!W zcpIH8a-R(cEn6RBuu#gLFUOHW^4kNDp#h5#Z6B^M&0(?14~xHY*pZB+)|Iy16*laN zU$~oAPLDjamf~%CuWd1^2Pq>Agbij@2TTg>X0=f~VwyUF#$0{SGsZwqz`D4TeYn?8 z=V&B_TYVB)5W}2B9ag>h)$J3tw7a~Jr{5**je)Rd>clbZe&)M@9Y$4IH;|_22(WHh zl`~1NUQpfoEqm{ivmEO!e|=v#u|7uB!igil-*pq(5C$y=041R-UpN{TG;78v+0JXo zV7gn*To)KqvO_=m9*1Vykj0+@V>4>9CF?gmV17l&W!%EHEvvdFJQ0R0I*4MwnS?Vj zRRrx|VKomED`*iOoshbZsw~tN5DAfr6-+3z!6F>PT(?ibOVw}L@A#+=Id_HUx zgeuE}W%&#yLWArm1UE4ay3mBrSw+C)7FgoB@y-;fmUwOtNb-7RT9Z!3c7>O|hTMU| zkSdK=0{QU&gxjFiI}6cRf99b|3Wn7DjN6}PfDhUhU~vFtw$KHZ(p#(_)V6bNA*{PS zAkG6HT%?J<#bJq=7Z{>hjdv)|YF0j&OpGRlbV85oEc~U3*X_ZPb+(@%htu^?rm{T< z#IUL8AhJF#?mSTV<(=2<;;`If1QSNRGnlFkxge6U3CJYj}e-ndvW z@~kud+4*!Lil&M#PD}3+MiTc;ycSE+g~M*J>w!Xo#3CeORqNV}yUrK~kv^EcbytWe zkC-4TWsCcwfQ+gWP#6WvoK=hO@wEypTD76&>@sCBblq6-s|>ou2k}y~OG@x|tT@fI zWW`?<_ZKlHV_I(~0|~Jx=}HWoriCGiu=^qfTw)+yd{y?DQF+Z5W%1@#m1#ino%B)? zVm-G(mBU<^<9FloKRco=I2NJyAq%nypqnR<+w!RATY(~?zUX_p8SE$mxJzjWRCz(Y z@1ofSD-2PdMNVqia9;_DdX`Jgs&$qpw%nbI5fSEKLbmk2fUBE{4$*mQbDmdvW8Q^n zxrX?1O0Lq20XWkF)EW|Y^#hF^0m2Y>i;auUQz`+(8>-UJt0O+|SiY4o%NYI@_ehv8 z@7!?YQM`>ZY8DOA<^7HAPylvDhV3>v>@lW1)EUbkFwpab8-{@~hT#ECsbQHI(1Cby zB^6`Q*SX;cpf3LiLfDhrPu@j3M{m-Rd0*;m18gY$g9kPI-1jR9(|4`OtT|~?YDJQ1Xs0?c{vJ1>$T2dEt1FvBb90~CA@LLXt zb3_XKY(8~18*mAT65VA{e_j^mcyo;x*J8{_a0sQ+HPXTxCgK_#h+TYUVP+(hpMAHE z{4KIWp^PPUs2AyFx~wlr^f8}{nMuv*gHr50k8KSfXmXtfLF?C267xSbjFqM`ffw&o zkN2i@L2E%sL4E|B-G`NYb0sY+*$U^rX+$4Uz9fqz`?{*TTcYtw@xaj8Tr(RMTqEth zB*oBy@(don0xD%o>RSF2nTs==EULiN;1|iP1slAP_ej+>3sMuMM`6;!D`||N2*9_5 zU90Ki-}oq>ToiUVx@O| zXg6}w9Qg-zRv#Ny^gQBsgAg5L^;rcqZvwdb6u`v8q$1Zo3RO>~m4qEq@zA37zqXFD zPp7C~i@TX4Q5HyTCLw|_t{GuWQ01qEu+WU}%TCCXVA-4s!=BbbKMSoEB!B&kge-v) za!4L(N#2zsAZw-?AVS-(#)a<>YvS)ClFXrJZLUR(C%`m=h&QU8pjAH^L}O&AL=3D@ zGs|x;z_8kJ@qAlx*)qsafq%e+^R4UKh*}@Q>%P?q^^Iis2W4mw9DM=BvuZb$`9;i< z_C+~@8Y8X-3<9x_O-d6Fdmw!JbLV(AHVxB_kn~ccByck8+$oV^@qB?O_#ttEP^h|r zoTUw9oF_TgC*UUHnWX><7s{0p%TO^36O7^(=3k1Wl~h;Vaal2@U0~`KA$&-2i1E?c zrTqMVZ`o)vnFyuz1u6Mrj=eRMdY%uz?29y=hfDJB)PGOxpst|j&hRf(KnVC7XgG1d z>k{nj=FBxEHFU?yS+6S@F&qkm$s%|J`b0xQ zwp~E(!wXP#!5L*iF`pIoqx6?}mn=3GBoiQ1C6UY>QCMZxj2r|rzIh#}yZ78EF}{(U z3t*|7`qIw(zI>btON?chIGh@H;di=5jP07y=QlNPTZL+Jk9t~xO&K%_T1kV31N}g} zrXqpH`IRNPbcP&PAQZ_j6CWs-qS7{K0jWR%D0(u*GLLZ03AT!7 zKboWxef2V6y-P$Y?t&q{804EsI&(b(5M2FVle)GG8G{=v8*qsN+rR+DW;k=cK^#V+ zhGXSQAv$DI$0~$UDfyIsDQQD`0Q7%IH;7nA+2bbyWV+P>uLgN;B3>rs})dM9Mo?EhIWvj`#H``i z&VGBR9@kZ}JUo-)hCC0HUU=_9%HoGgols<@Mr4k7=I}wAiL`<4Kt2M+lV!OX{U_cG zJ4on9yH)UQu{KD!!I8J{sFAJe0igvoE{AO;)w}^2?f9T8DZ7t2XTB3*c084DiR2TY z**{WsAC9rpYt|3J*?h)qIxt2o5F>quDL%o&?Fe$5Ub;5vszm{4y~*WT?_*iGag>M( z8CXPVzIeO;^4!^rgUk5vfaA!aWG+s7bnzbt8);F(Am3j}YG|SH{5v|KP^^@712`et z+^+uDA=h$>@G>A2|E}K9jz?|ge<6OiT09X$(KNf3i$;LHfQaYM{JDk{DLBd}BSkcxex;RCo+gO}vgJ)uOM z>K5KMgf+bfLc|99H{|c9#Hkg+wvwUI@ZE6GvMEvwJT)PfkCX=!5W-Cbv_j< zFH~oUAkBW!ZUdW^WvbG0wK$m>0*_ZqJ#|$Cx;?s8z1$ZnfVJk(?ZhHlq;EC?Ij3ti z0R&vq2L%7#BDHMT;QAvB_5gyXBln$#=m)sWA3l6nD$>}S$&@n~VDsQ}Xz|K23;I}y zdMuSddYX+@=QyqM)WQx-=V~-m;rFSyoT}_Zjh4kB=kIo7Tc8rt=9kVO^Se4=x-7P! zrM1G5Yvf4lSuBWiRq`0;2~zQQ4`GFd3eQ}QE z!W~7~-uStc+gZtjQz=JupO0kP@#dE1d(JXn|KJiO{=XaHI8Ky2lcqfDv`5!dSm5`A zK={pEyX1TVeW9d>VJa{20NA1~3jlzxJhd+Z$bU?L#@W3Q`8?L-QGF#%K>#(D5TroE zhRkh3?U6^%2UL3kZvJuS^G5)kktADsenBA=n>HAOy}B2ECNYfQ1;mh@d36oQG(N9l zqNr|Shx&&{)`kAyuC(PPy&KMk&$c1Rl2p{?0i^E2XP5$1U4F#1{S#tg9ndRqh#^xSnhx?`B&Z=VVu_+KF z9|ex%%6yzosSjBK=U;|Ismz=np+Xh4g`x@vZv(yv!Cge+<>m zir1Nw@rps;T2^R{Vq#eXnGcm<@hk;r0#v=KqatslEG6qW=BVd>Cos6t}=9ibDVwB$=fR3Z<9p+BCU|1 zf$eaUsbtX6!|xD{%|u|Fn?<%JTuliRtUwA)w9@nEzEFbHGfZaht06e{D`%my9=Zd?hMvNDBDbFQQ zrHsvpJHi4OSTa;Z2MG~FcG0?~wX$zrUV44WgG|@7`h67xxKDP^r>?~8A9r5gl44zFT%ZTGjF6u`El7r4UV)RM2TmX4Ac4LSwjKn z5A5c=bNmC+bbzD0J2r;k3-r70C>k@SKx3~+mcF!R;y*~H)5khD)&C@z|}rQ zB%&N{4>L%bj6Nn>U7Zq4iuA7*g9sxAv{ZNH^S~S(Y9sM3$gV$9P1990AaUAz(5qCbsPBn5g-tOcGt@pimzrJLKd4Q^dXf)e|jzTtY`jE zd13!Jw0j4*rio##YJCPL({rrwoW4L=9c5Fllkq2q$y(`<@basm#vMQ9 zH)LtEf-DjK6O6!;u7i+hB$6I9=R2S*#5|q}L4l;N$>47X#)Od|bM&Xw2n~k$9f1PI ziDt$(Pa8i{s)@zbgmVxCH|N{(=6|u&n|ZW3TR==uBtXE34^7h0()o+$R)Y|)PF?a% zJ7kd*0ppW*pliJA6I*SnpFCgT(!1|Kqc*F6B9eR}?(co>jZ@4H%n9lnZPjoma)V>@ zz+9a5531Z{q(k}c5||4F%zDYbe->|fuyZuip%RsX?Bc>y1U=H+T2(|&EH(}bK_H%c z)7oS2(%9}woQyA8vtz~7TN&Dskv7qL@`+j7Vb*YdI{ZAy_RY}rTSQg~YwfgQo^vya z8wxxUC`^C5kOx*UyeGM&j9hxWC6sn(46`~khGtpFcGKg5KriRGof6U*x;?@%g;)r)25%2IT!x`|`sglnDFdIPfMgx} zv>+aHDQM2?IdaYM$%<<^@MP(c%M5H}$j1SqIk?G2qeiRUQeO4!rRJI`>IDTwPXo*m zxlV8nhm3+{r&%NefyjmQ&@exku1O|#t=ty_Q$PjXmskmSAF5jFOdmaX}`bh*_B@*ew~~BRrkUK z4VI>w5w8%|slJpaM7+L?mVMDgJhfF_cp{LBc5dtW&WQF#jL%hu?Z%3gaY3@Pehs8H zmZ2W1k#3gDl*f!1H#J6h+s4c%NU^n@opRdom&`C6sw)QRR1jYh2U%+G89H26~D3|ECqREICY}Qq?{)~p8eIy>iD1?2`JKXco zs3z}tM@@lhQ}Ncpe&AdJKF21tO+;ymYAm-xR-clWYXM~^BHd8=#iwv*8d56pW9XfK zMSvShk)yb9!ux$=rNZh3ai;gazOjGp`(Vi&<8_4slQ-%7_nkmm*sEO3lM4=(<>pDjeNHdT@J00cQOV%*H z_7XQp_zPvc%;5v!$GVhs!i+D7;%CK#HG?VtcBsJ-MDbB&fWfp>PgaUG)wi${pvi9I z=YT#T!TGOpr(Tr$s7II$C&mP+FdESf7HE2X2(R+h^c^LdAixU{h78$>mg>OQix|3E zDRA7og+%J39&pl!AM_(s0tePK%%Qh(7x~FFN1=EQ{MCGEs~X5WRQS^H!<=7`+gp>} zSNP7iOf3xr(aYkIVk7zJ%-UGQJ(U;LyNYcp-A5srQ^TN{(@qaC-*kX(5bAi4vHmd!tn^y<`V=CH#M2xURjp8Iwr^4^8dBd67bo zMRZDg>Z?s(>YoS0njZ^K+du?a1-w2V3$lQ_F+HU1!?uNX2ufp>16%tft)8hx1QH3w z5G*|khpiwOaDn#c=RR&{4t%PBg|FqJdES1F;~Us=5o%Ra_!W0B+9qeJF`DAf!69Jd zdVMa4W}F6PTXpeZ$=P#J87IEVK$FJOXU#2y4}^3~eCy$~x#pNZz_m_gHfy!f4`ln1 zOV}5ZNUxp_&qFK^vMUSzC#%R~>{l=ZfS<6aKGc1sG^B(fy}%npE-w8VT7YrpR8|t& zxzD5gR1H8~Q_lqlv7jrYFahbLX++g#;cggfcx&x*mXXtmW)H@)`O8vMwy+YleW~5c zeSuKUF9t-Kv-;M}Zk8vfY6*ZNkkYGl&LC&Ksz=o>yPzr2MhJL^9p@-HE)Ekc#goNS zorxXfN`!T24}idzL%Q`16E|xquDX;$qn1pLN8gmYXLU-hySk4G=#IU1FLd9hrdLqveQh*qfadcLEc{Y1aYgKC3gCH*XU=YXJPc;mp zw}R1@j-=8}=zSJZCoZC`TUE@uxUgKvtjm+Jl95IZSH{QqcBakhE|NI05@uIocOT6i7~leXm>t#zSZ!loSRh!y{S&Pyo^8 zs4aGVOPuNnp-_Tx3QqSV#xUb8hQ^+DMOWrQ@bJeJcE*~E)L1VPS~p%;pJb7J~A*N2n)lEWS3Dq!P8_k0`%T{(;{qp&cEU+Ke1 z_4K=gBvAYncL)1y`zcQc8v_Z9F@HzGY@Xa3>b`6C+F3-sv*Gmq&0Z@OKE^%;H)?a;td%alZZPYWaJ+>7ur% zp6=EL@>)!LXkA4wr$#%%MyjbEg+lYB@+dx`tn6cod{mx$Akx!GC!X(_{!II~@1TSC zR9JZ$Y-+90pIQl;%}nM~tQ*e+_$3wyeumVJ7nIiGHMP10=D+%r`Io38H4x^zXgD7i^OQEkHIRE{RiAft(*zCKi{09Xo!ki(gdEV;aXJ^-(Y$j+uWS0Zy`6ItnmKEDx1p zNKti=U?6#)IR>g8phSI-T$<__WuG#w7Y*%KEZI`-y|nivGR#z8i@w-j_m;U7ryfd*-G%<&?ez*K4L-?XHG#vTJ6) zCO6wP=bY2)F3s6>T(nVD0q(u8K=<}7SepOMIX}*-+9h2Mvuc-2rb;FI5{R4R4?Z*@ z-rzv2Azzww;JEoU^cZiMIF94mr9%?fzkUy{at##Z!VZ(=uejb#Do;y;{CP ziYaHwlXQ3Y8){YPiM;<8zVyID`=9NLMItPUs#bkq$uC&)59BV3V(+6DhN5sK%BzUP ztquFd>Q_vW&w8;q9LmlDS*;irjC_|=0Tw`BIV%G4OESRT+g~}WU#!nrZjz4xAmBbS zoBbYWJS zlK)vgN~Odn3Y{!J2jyavS#D2%%bq>Qa22k$_iv8l`avMGZ&Qcoka@FMtX$&Z6o``mTZkuW??XR<`#9piZ}Hz35~@k{^={}e2@B%{LT`Tp7}po#eaOEW{z6H)c2!-uH;SHqux{Vx>q zz5N>s5pv)As2Y_b;Qjpy*#BMx#*o8cQ3oV2*f;XjG4ACH5n1TV_dvW+MAwinKLIh- zH!%#30XI_^nPtJFMeHJXdF5OYeZzfXjT@PA8*m|cy2yfNgl7u*K*;jt=Rk$r0p7MS z4C{OS^`O-IzHtd7Tk<3wwi4Qqz0-5M(Nhldle}S?dSXi5=oa=sQ79B@6mwHc#!%Mg zC|Nxk+I;^pi7fF_7mag$+;m+NXChBW zL98*qf&4T(NuCaqCl9d|Q|5QqV#<7)oVm)Xd0b^hU9!hhGRIRD_EX(OSrAjT2E~A7 zgFLsE4)SzG7T1X>Tv+O!+q!y_=gzD}pSfxJN7eoBdm4$U%95uUbCoW#&?i{|Yr)DQ z*SI{y#Bov!Q&v#Ukvv^lPMdSe%91HR5>Ng+9E+9buQpenzqurRB(K#5%ahWtG+ccR zbtc4=8nVC^ol*xQaF6Es@m|^~bEJ-KSDuq{{+qwgDRU;xC1q}!-&a=Ik5J$`Z8-b+|Hh&`Rcl4k*C$H%cj`wRT(OD5aF6l+wCwb)!LNHquyC8Vw_e z0(F1wM#HAv=eE!}6N!Yeq(FV6_MrYCUka3IP^~sG<-VQwb-&iM`nwud8Lu+=uBr=k zj&y%t7V#8iNqJx1xJu|(awq$Y7FoW(ZH1VkGkLnt;{`3>OOcQv-}BaKH0?f?DOto% z_pijE<@=$`UX()riNf!{T4|q42PH5Kc!H#&4-IAx2*P5qjM#CN`Q7!Wcchf78=~l+ z++m4+X+90-6}G=)ltp4iZej#$Vv$#LG}zIL`lLq}V=Ouu@xVX27vuYdN=iybSoHD0 zVX23|_w9>59`}A%bYmF7`GN61=PEa}_u6~!%R74eqYvVa-oE{Kj7A;DaW%A!R^H>c z+X$R1`J+)7gy=_at>{OhABijmgAl!Z?&Bf)(f0KqlB2g91@Ek&lq2tN=s)j%qY)OB zj4Gxz^i;HsKoEGL@B8~8`fD3%(tAo@dNM|&kH^Tno_D$*e&Ea;=(!V>{BvM`q7qSwsKk2K`x5Z` zbXYkmxucRh`jWq+52ECbT6kd7da-h2oR!efu7L z?@QjJ@0Hvafk99n^u3VlfxZl}n>_DjZ{7xe?}4lO-sbu9JnOynJZr7z+3j(-2gW?I zAiK1Y9W9&BD{$a#%S2^l?p z7k%hQp?~~-h(c26FxquIz`(1Hao{NSg+fCA{Ro96(-%5S*113xRi#k)g<;9P{X>#! zWy%sqOqtbrFYFCaw{@xFTFF`^ety~7()*%{kZRWzC)&Pya^>!qD!auuJXc{A*xQMfQYB~H7~K?k9bv#Rmwdo{ ze}9xahhDU~kFMb=QP`t~zrP=P(R(7$Lt$zA7twFwkI+lAwbdwj(%!SNue5 z@8}!OB3*$Bxqj?aj8Dk*V;5qM+cp}ty4M4j0t<)$n?dR*xU#6>>pAob176yRDWK3& zy$s>dpz?6VhLkn5B9coy>KSe{AqX;+gK-KbCNWz2eV5%WKLDH!=9IYBZb~aiGp!Jq zdG^+G(pqb!Lzwv_h?6{BQoqzWtkN5GzfyWksZt1iD_!AA<1uug8RAGeUFT7Bq=LJd#K?hz4 zV+u1tRoG#5Sn#<53<2cmbA=N!m!r=WR@|6LfFq?bMwRHJgd79pC{e&g3XX6Q^TP!bH7;Um+_Z%u z+eVU4ppYjPnOj1(6ertyCuo6?Wk?}|{AS2W`0+$pg3%`lU*slmgP|t}FI7~+O$w$raFM?FoYGFr5WiJ+9Bmq;|&xt9pR5o-c=roA=1gWe@W`-mnQCU32 z5=*dDb|hn>rLrY=f)NWTa%ifTIK>irW~w2PiWo3_K{a23FEfsy8e;NJ_V}ratQHX&Lj!h18+`4l$+w z#c!%m!U(D%GR8(F|HXY^L=#Y`hDa4yp^~8heL#Z0$#dwp6$>PIK}D!RP4zNl+kr}m zO$RC<8!ZenWC061P`wPnVo>?uIrP5_!DmqQ@ErPw$QdIl9G(MrB`C^*3e^NlKVCYF zClq0(l0;NKI5R#+$jQ+w{qR)uyS(ZQ1r1+@sI0hA!b>GV0OY754R5DM*hphFWm&#; zxkN~26yGt3CYhykXOX*&l9uiUnI+jc@i`Ry$UY*h^>Px=X< zd<~%x8ISTL8ISTpO#Wn^fD@4MC^G&;#tS(inf%FDK*pnxO7lriM0En5Jj(w#d6b`z zg7T#BMaHB2i^-on5!Hrr0!Df273Ocz*T3F?FVC?;LA<(o8Wxa$00$mc$Kzf^5?xK z8U~ZFWb)XA(qu}~ghHB3!dR@p-hJzVJjCo*#FWza*!$fVVyb)pu8Wv5$&)_{ito0q ze%*2hwm20R))~rps_Mupi!81h4w51?8y=eMbv9FjYLHBMFb~!+A4mZC$^Ryq!SKX< zGT%(igSiZE&4c|1vrc$7pTTVXf)dkQ*hQ1MI;K;^&$4&8(cI*3G6J{%oS^jCGqfU-J=Y8jpq?&Jz?vNZ0tpx| zLSm9&!L)Mp*f{RDNFoTyw)M~gZy%F%I$Rxf7#BJGFR&Enh1E*Jg2{>Dv~u*=xc)lR z4mcKz#X1KOSz=6aAvzFmv~-Qg(%xaCWU66W`i78LLw=GK79ugl#;&75lVk?=^HURx z;mCSifjR1;O{r5+=)0cRb(qErk|ZoFg`F>PWLhycTCG;g29O^-b-NWKQ-qsZv6(A| zBh!kJ$+Ti}TCJ5V)9QNo$cbGr2>+oUf;DI$8DQTnW*H~7=M}e zy=z14aoo0bp6NT!>)wVpAj*^MHIoy=sgAi|=SLbdE}0gW%jL2+dSC0BamnP&xMXx( zt{gokj!XyVg3W3bxp}!{Vntl8m7F9m9NEkkFgG$fH=N5Q^WqxEO)@{}w9w#HyIjyj zOxgRnIM;VAj^k_+XA6DTx@v6ohTcq<%d~=nGvkuMRQUYV$X+u!F&vi2Ml2SKt=Rba z0f-@9Gc-Y7Vy_t4YbGa#6MMzTUNf+q7!FM=7Mr1Y!MI{xuOdZeY;J5~I5HVmEEa>3 zy=HP^F*`UkF*4g`Uw#nFab4#L;kA-;92b)M2vRHoi&)=?t^D@4C9K$iw ze~${1y=HP^I4qMRbZTH`H8wjsM_iuB)0sLtI$f6oM{S5AUOev_n<62dn%AtxW=H3U zPR(mpV{@~kbEHVsIkKapqZ3(TjZKku`OHhFlhkyO&TOZLhUAMH5UVC9#|B5%=^UBC zW^{CFZe}$$J8=sbu#T*{$P2dV=p30*|9GHJb(j#bh&_dv61~KIqg|-Gx7zX%k? zlYa=@;>n+aGMet&?$&rU_N}eKTn4e5`s)V)`tI`uLsgv4kdDr$Qv)-rvDwi%;);=D zZ72cm_%URql(MDl=<)^Q>7jYe@UVKlUN5in!cy0Lmjg#_2v;G3J`qK5{=NK{5CokD z7&pn5Yj&jN2Ds$kw33I-(?fa!_l}!PEnMJL9|@w>fPQ$saMQDeyy_(JNaW$^u_4n= zBC>c>p=-!*o|vM=46i!YlO>OvUOX@`o*tUl%!>yG#?wQidCmNA_vNM@P4jxaB1@d1 z;bJi*x4`hKU#6BpRFTnCgP7W&h$+zzVhSamUVS6R8vfFM6@YN%dDX8E>>mH|lN15Y zJo!Wg_y+Oa6BS_lL4b=may-D`PFX(v4oh7J zHE|&nvF6E=<~38YL^~4svx9}5IP}uU^e5#&Oqt{!VhVM2Adu;rnSsg5)fh?GgCfdP>>xie=;eC={ThzC;9?0JE|##t z9Si_aWBE{VgPG3}j`&a!(}F?n-2Vd*t`dEg@XFmqKgXJ7u-Dq_6GWp=zptNyk>l(Q zeb;iVYM*3dq?m^?nOH|C5yaCo+ktr>5i_r%Y&K`Jnf?3s%i$_COnINWKg;3ineEJS zczR|#vz?yVY&NUm>6z_xw*z~JOnDE4tMrWPf(>gKo0^%!9o+}GX~dA%}vi{J3JjrF2Cis{Fcwvv`vv362@H)m(w*in`e4& z_A|SJLcvN-;8O;fJLk36+6%LZEKx)uis`F~(fOs~Nd-3}@6#iYd_~ro^|~{dC|MKOH7+iZ#@a z!{z*ROnT|3qt-fQt<}564`&iYZ|((=izJTZ*u4VV9itb%7~7RV!i5q)-JcE+bQ<#K zl8aW03ngYxz!A~!T)*WBcs2VyBx2%-Df8p^gVnh}RpOcpOWofsu0kIOA&P(^^d0!Z z@{?@Y8F4vNMFMj4>50jf#&B|~kR(T+D#!pJM;|JTA$KgYL|CR@gJ6?a9do%hB4_~w zoEf+>y%cQ80~d)Cvm{%KVg$weeE1iWe*`b6@I zhNb473rj6uHkv(wZ72bbTr43YyDY>lj*#*0(-G_Fx~bHZW*L2YkdUPfS$prCK}8Dk6qIDY&!ip zE+{BS7K3CkD_Bop9IhheibR=6DiDaK9&U231_I>xGcM5MA7c_Tn81hG(sri$B$A{+ zx9T!|+2zT_6MYkXe+c;ZaFq;z8!HK4ORoFao>$xRzUy}l$&lxL*YDdQuWNtx`@VW# z-*)KjydNln8WIuu=F9xP@2kgyX7A|-ftf>ZxsJN5^!qATC*6ET)7<8^RVP5Xk?0OT zy*!an^7OMKM`WoqTv?gY2NLduOi>QgA1qPr0uqiLK2{(IM4tRPRKz5iX%@Dsv5X%a zqiRkd(qE>2$xwi2NX+_8Ij+>A6*Le}{y%VG)A-5%>&o2RWvpp@#Nh7UWjxh2esZpx zhTCLhnNkLgFipOdq#17VNF#zzno?G}%}SEAyCrQOvm7!<4oZe75{iU6gUb_`h}j-p zhDtnSxEeu}<#3b7*kgxNxsrf*avL#KUkE=1k*ON`Kq7TaGm-uMn~5QWC}PGrd3bzq zlgIG5dO$>!GPD{&j*f$yyjw~q;ZgQcJh@3snP$WmuI0-uZu0jL(_*B10Z{1o7NdlBeH-d zKhdZ^bWW5OvD>;lfvfk_3%k&VpZu%Log~968w*%~b6bubIAk_#*swvHC$Q276WGL6 zHu<$~jsYWJ6BCq)4(^XM+>O9cC>JO&3kro_Za1=Uj{}GdxoiY^<7$^N$3{4A921#-6mg78(I}+*N)nbML5a71-u>=8b0d7kfOs6|t z<#b!fV1U~abb#A31{`in7%8_!3>X15yawu`vI(ToIx@wDL2$?}gMvsP2)KV0gJNVs z<@k0()c~XM%!1hA0l|47j+K=i?m8aFc{_r5AUGM>cB81WeGEZNdGFK{B5xjXXD|2IiYy$J z9EUN9^q<{?k}bJ{kyO?q$dG&eU60|Ej9s?~CGa&l%f z*=#10nR3c0WxM8-bILg-5ILuuQ_d+T4w(#5HYTOpr8IWzX4gsYZr-}Zj$CJN*Ts(C z{66XZdG_0(qy2V>9Ys?llHMZkejUH~U+j2q50Zvvhv={z-b=^eVBy*G5fFC-ex(MWoaLiY=a zFdmiM7$qjt#6)_Vj4qa=+h9oy`7vahNGan)Hp)ank=`gM9c#EGQpc{_hK@7lj2Y5< z#tt3do?Ho{Tp2RvMEQ0=`FfC~>tKBOJwVz}!`DNXXBdJYtkNu%q<4u6m3pgz3zc|; zA$RDi&t-1%FW{Aw1;Jp2>v*zvGnI}B(d56HosOG4w*2h|c3s5o3o!xyosO$?G&eCJ zs&rV0ChxlNpve9nEP6PIDG$a^?oyE<3=guugn`N40d-+y|E|`}WXdZ-_XSUiZsx&A z55zkpGR1W?DJu_-<|;9oBaGFMNP@ju~SrEf03PQ#hLkuzo7(Bidv(#G65~nae9rI$lPJp;6QVc5(I0jh-klu4C*1GC`u8vYoUw;R|Ld<)D_ZFp z9*Tyn2noa>YtB`hd$iCH@%G&%zJN> zPV>Jj1pR1A992^Jf$j4QS>qZgF^3qDOLLICo@7dt2K`xR3i~@#nAiFq)!Vvsnvgc< zjm{v*%P1nvdlL`lg&8NeWl%AdBsL zuIA1?G_n&uNPd}Uk!OMMfGS%CGUPQ!P-u*2JT2WjUfxpygTcZmzuwE|oL@~oZKjvx zRH%FHzYVZGf(JT|?&B0<-2!1-!FPM|?Lw`EvAfT2Jew0n1owBxea#qa%l*_WHJy)% zKplJP`9(67ER5gbXUEu*L_C&^)CBX)8qP(T=KHNHs0e#b>D2mYP5RHY$fM+CZ8eTvHue-8< zI!7@eXhPB|^V{+X72xF6TRDw;r0SVkJ_C=b;6$j_Lws9p8iR&~9>|*?zBJ2rZZe>O$vFmf+aOpFG*g$Bj)zFa!H6iD~ zv`Ms*F>%r~k%E9Fyipyv4YHRM?#~F7V*bMdf8|8 zaA&G|>kfYPZr4Xi^RGgL3Xo9Pb1bBdK3Lfwb|j%nSSMqk0v6ZOeP1@W_`=o32=sixP zSa*=QHCxIwfD0QYyWevPe$>e#|M}}JWYRUbU>b5>V;SEo&A6y$Gf_zNDEC9e8Uue`AwP$A`JV6<<&yJ}=Wb&-=I(egcynYjvO?7Q?tU0H>POtE%zr{iW09FAmQ zn|8<2N6h*VGOmFp9ODP~Q*p`Uv1N`%;d%;gw#QtD+foW30t(4K?UZ#3JC$vZEde0B z5~5ys-DbN?<-BCezezb=dS(?YVXKFg=)@kZ=QZudtk}&FxytD4+`z&gnwLiw#LPOt zl@Bny`Et1mIl5Mbdp5w!tFRjfUkJT*&)Ka_IGXkjqCpS zMIa!utDNZ?Da21f3PkZo#=+R|mLR1Wn+JfW>(3?n1S0^?{nIHS;S#RLY1%}UK4~(Z zUN3rZ*&>;2CPy~HYfRo}Sl0ytVNVVCgJs-oDmoX}uG1{GUP6lqj<^&^OA_=ktF9iH?UAwO&DW+f!Z!4BKTS*^{o5ckQr_Qd|l}+4IzDQ+aWa*lvzPfCE z+q)!%pl(5!MBQKA!rJLc2-=LzMSU#VSOBH`^u(@$wC}7! z1(Pi*Prz8>`&7dHVgvz)v?MNp(qjP(!dX<}>9quZy%P0o(yOa>OxIPOg(hxgEH(uU zYTHjm6#(UPw2DgW5#s1_1u+HNFa;>Sy~EB!7P1#{o>#P_ms6BdB|Qu}r+S{dm!2yL zsX^C8uApOYa|oUY&^8E{<1ow22h|LAH)VianBRN9@`r!tfbi$9^09~cl*)=B#jWi>t zMSZ+fhd|jdvKi9oBBgb^F2Q^xrC-jrMZYVorK)8pW3JUoD;;I-bZ>FNf%!iMDUewJ zkAYngN%b6<)wxG?asQ#-tK09U14PEUWiFCVN9_EQ=_l{K(LzfFHl&GM7YO>{$0$S1 zV@1rxfJ2i!)|}`#(x`KJPEqaWxpyRvyrZa%^G&D@J$>7dN?#^^q%#VZTvE$%xiMAy z*DC>WRa8`h*jcl+5KbOIT7=?lbDq}$SQdQf;XNNkNHNKN<*X>-V` zh3iJAA0d60Tm6GN@>qt}*M{5_wLgac5OrE*ObaAxu;US4#0+U#U?t`vu=DAm12k#r zw1bRI9%kB$p|CWQHWivki$e$qk!|5o{{R+QxeM*+vJqTDSX%dr9D>@XlC$To2f znivusTuONE{tF8M9wrd+OLVOLlk}Sv2^2m10HECDj;Yor#ohJPei4Ewqk!q_9bZuo67clKraSNr^fIcoHa_Vpj7hpUWlN-5`?!spudfs;1uuMzjY@t_W zK}>*0R$z-pf9%HLW1In96iJoV%+SShzQdr#L$8^5yX~dH-%M`zTaU78l<6t{8|%O$ zn+MwnmubIe`R=o2i3&9#a{M6Cc_D4FpP3~QC%g46TZ3gn1gMBmpu_QmA&Idb>_+1j zuY&d)ZrEP*^4R@NRL#@IssH6T2!qom!3zC#A;9%<7OwvX4ThOb3gHKBb`zo;RU&b? z&S^TS_)Ki0eD>%Uwst_jPC1|_YJ-=0cEvPzOE`LZ{kjpAZr>wtyG2Xx5_3&?iP$@KHdTkK#ye;0SFSj13bYS@uM$^dxdBQy1Nu3D56-y z^papG6^*D$kZPD{s-S5!vTFLy!9cj|I&>)Z$!bb+sk{)FJ}#6c63*NiWkT}uegr7X zRIEEh7G*q{UX8YNfrrEw^8mEqY=9VIZ2Qh?@+Sb@z2X>27_;9vH=+MkKNa@dCb9~- z>UlHQqC?7;IVoHTA8v(@or;v9pViH$Z%~ooX`f#5-VAXe91G*j(FIx^TPI>_ zDy$6v!9PY%dkR!R<8XYR3m7{yAz{yd@pqs*m7Gf4FFs z%OGr0lZ)f?8Y_t!*PDR$UP^r=YKYYXXF^mosW@m~VqQ^zgVvc_G{lNN1k=x)#=uwk z!QN{`wNxuxL8vH{d?r3VuFpIP2v^ok(N*4}!#1%d$36~?5b1D*TyjCA#{ zgPt{P0fZgfB;=*PNhmCG+kjC;c+k#bYRrdw#Y&DF$TCZIm4oSYJbzu^n81q8W2cd- z?p}#Fn&0>0Q~Yxlok<*`dzP{^V(W9yy0X_#3JTe{L49Xhb3zd!p_>4jwTtpV0f)LC zPizv>Mij4$<8HYGF5kY*AV7biRC1JO0(6ix!wE0^ArZ#Xl=B?z- zEsqDW-GXBtB$p42wgKSaEvFTrOw~=z5x{<#SP8YMX5J7xjm5vRcRcbvXqX6Ce+v-f9Gk(ZUbCUI5W?3&DuM2 zWo5^>B~Jv=x&=E~p9ZYjhF)g^_;vmw2JZz1ymb#B6M$9SRvqH~!H??uV>RB~cbps^ z*P(l200p*!k$j&Vy-f?2j|%+aH$b+ShEVdV^^P>*Tt4mu!Oe_fOl%LGfB1?N)9pq;-$M(BLpJzViha_THZi8=Ym>h zpeG$4@rU~3a{LCK!L+1zMA?i-?@-Y@AL`WDOLUInAT z(aDKgLz_Pb3b=*Q(7TcsCz@M@Nw`-?>{S755K(ZSTg+_&SlG@%Lc%n*nr@Y`EwkZi z8Lzsy1$P8wat(3k>w_$z{cl^eZU9n?!+-=zDpzMPkg4XA>x;9T&qbA!;cGN3t>0@eu<(VHm@*N#Hp#kearw*?!aYqeXp|l3JnGUN{e$vDi593;x6xK z#Ki~wUyX~;LJQ^r9RY;{(w=v&+fF}nNln)kIvs{sXuE(;iduYk8YZ=Fv2)$=b+9;v ztA68lags~p=eNu%i%V3lt}T8FCV{d|$uLAY@ghd#-p%c=31LD3v&zgHj}5QYzJ9{j z2oPiW#y}B0_21s~wM!;h{J`Lx-Dsxll^%C0Ed(`qK8+%>p~eKw(QQmQqy2IQWGQ+c zKk1P6538>Om9hZ^#XV+M;bR0Jzf@N1se)kkoq;SF4} z>1J}TanaM-4O)BVKvJx!)Rpf&VFk4JTG9+_B$3 ziI&6q0>a}!T<8&bbcj?gWjud0zVQ5=s9rV20ZS?Z+exyp#_(AqwMkCTsuRKvLpvtT z5~F<&KFZ(05aq6{HqYEZf(qfY$EPxNm#3@ z1F$Pq%mA)a#<0>8<_m0le8MObHT)yevcM^KGeOXMR>yL4UAbiJUjq>5s*~NTpV{?Y zvgE91n?IN1;`Fi!xwQ<2;>Y|ASl34j=CaA^oev%TP%*EbpShmbR!`)hYu+(hlXm44 zJIw!H4L@)JBcPk_;gYE9S(-XVpRdbBxX;T7a4E=!aNwhsDBW4Z<%_opf?y3*)d@x~ zW+j_LkkIHTh@_ZiWnE+GxaXZH+=GaTkaiHUJu*cFop=Ww5TaY~3N#wUQLlt0?UY+A zdHV`q;^^#E6Rk|UlHR9stY%8(ZB+TCs+w97w3vpw+D9f`{-#GSD6)v59}=ws5k6p! zGYEMheGz%BxPLWMbR4DIG;7oIf8ds&Kc6JWDdHJy=!IWjgDfB4OhEUvU=aQl^Zqrl z{{-NTuV@WbCSp(AM=E@P-R5I#YZEO`S|yG~IWcDdS$>L)ldt?ecFSM#XSS;Ye&^v+?VF~+s_t~C4bv{lK?zEfN48nG6S|s>fs3IKw3X-~h@m9rMdUeqL@?Mr=d0Xc4JS;;PP^}cH%rEo z5BQ*LaLwf}4~8d24-0v3wPGsuQ0X;67Er9QeB_Bx$0KAO$BV$s5*g5e>069Qz~_m- zC(>#mxhF!MzZjjkSR%h1%|Ir-xI{Q4Wni(_f9Fy8WGRif-drp-sTeJFa4+b#B&e^Q zmYz0A^y4OBVJwv8whyQxqub?XGfB%LJR=1MoF;`NddL=y8UeC8S{bRuGF_^M!qnf3|bI z;gu^+;6b}^cEa@-j<4}K!xtL3sGk11GBuK3s5dJ*0i+fSyP|(5;WeE^x%=gKN^R)Xvo*|aE zdpP000^{RNZ^jI^Ni_h3@Ry+70a{B>QO(K2Z@K^?iW*7W^*#%lV9JvsNWu8&@G(D8 z5^K5y$G-*k5}?*nRJP!qf|}*EyJ^}oR(2#bY7(GneIl{J)ZNF=LOwpt**%OE`Apx0 zvSq{M6Fg*e`Ofz{XQ?65GN>|iISYfzLvtvY1q}XgS81f}rq&Tdkb_s_F|F1L;cJ#bb z#U@}_hQ8K;1~N!nUrab*1f#Z{e0vTG(4mhAdUMabZmz~gtW`nu z>y&^qg=5}Y5D9_-EzGBcyav=|4Of`ngNKp0qCJT~NlWy%G z415bEa2lZkpcYgGa^BG@s2F7_mH?bQ7jEKuTwm^7wG(waSfS2QQ$rER1Ivh@JN?7r zOC!#2sp;)-MYLtgtk99&P(5Qg8%ZqbP{V4TY47+@o5NttNqcGq9&!55;dd8WbwZdi zExftb~nEAFtl6{0eM($-9$le2kh@hv#X` zbT#q+K%&L<`3qpRLw)M?)d?WOT4vmMybY=rF%YXw%3N2Y?*T7GsfHGz)fVqJmucGY ztlj9%z?E@D(`BuWm&g^}F7cPD?T=C>UOEBv`@xt5L+b!M4^tPF*Z8V+SUPI@sgm7C zI5p6|OUaTk@!p+zCnN;G1m!b&UKE7`iR#ARaOi6wK;B_fLECHMlpiSsGY3>L>BM5- zG-?+PBOzQ%aHXVQ=Pnlm^hy6>P0jUH;yo-rNn!@C3@?oR_UY`*cl5xgu_OX;jLQKL zxlXdBD@fbOBZF-M)D>&qPAKUNCekH?P80CHus!Zd;t(eiD54z0D39tLQfcqoM&WcB zUeuGITQ*S;V;fRZiQTe_1oES}>Vs|eQ#qb6srXzmf!r@x6v2t=9nro~xINriwk<=%Ec*a%@ z?A;s>MH2p`q9<@DSYH4FFogRQrAp=SU%F6~rt9MUw7rA}=0l1ce7TqiFoCfg7)3Ji za8c&{kk{iq=FY7ys;Nm$sy=G2%m+K(qNLB7(DL-|>F36vwC1({^7Z>zMHE~D7bZ+M{tVw(D`=Q1BagI@b zOb?L@B4khoF7(hq#UVb|6Tqzt35(6y@XP}8+IJ^H+>s15n6E&4O`h(DqK3;CqdGu$ z;*%g1l*q6DXl}bN6&gq&P{pPPX#wQm$fD*Z_=l>rm=&hceo9xLd)wD$$W@AKXKuzK z1^K9B{h^PIFoYA3g_MdUHH7 z5UT~;=c${Ss$8mrY0%sJ%Pp5BCieHDI6qEG*=j7S_jhSM;@tf_`q%HnxK z7DwhYqtjwLEbgA*1nn zJD=mv$xHl@GZ*Dm`pLpYd_js56<8VOA`xMA1wp%ZsFr#;KBRb1fneNE&`rkH3wWMn zW40_^ccuSXE^~bvJ8j*FgA2&!D};|44Ua9;Eb*Cr)?i+aP&d9XtoitOHtonNTs~9G zMm4y5tVGG@W+?X` zUcF!(q-ikNyx5}2bDB8{W7}fAoWK<1O1(JQfi(BZ{%8x`i3Vl---{BtDF~3ps?B!H zsvT~dvXRnL3$;E#B?XckFDzC$iytNjvrYG2flSK?dUffh__n23x8Yo|Da#d%K{UYB9U>9Z#~7SA{)j^4wRBR1n<^Q?PG?ZHz~mXc*JrsAh@x zYP`OsZ_=n*UWR-x_|D!{47xs*ZrwMQ9|y3KW(R(f8F(S%m8+}kE*powjCDa7WC?h{g`FfFDV5)u5aG!*U)Q^8Fdo;%vJ*)`o(PZ`@ zahKF-Z1_BtJtQy4_KKW~Hv_HcZon{&1s;E$)!6c~N<2@O3IU=;!lS?spZ;>;^KPHM zItb&k0ibmhtpkmgx!yJy2yXw%)OGYl-U6OqkWz^S@u(n2mHS&ADK0wSWS0XOK>`{0 zJXWYj`iHh=2X|ll9{c;Ymz;2f>VIedhE8~c{~>{229n9V8(sEL#n6Rnh86rsRK<@4 zY?TVFTep}#kf*s`9T*{mACbpxTb=L&NBx8xNg>7D8RwEiz+l4j{5j)FuI_f$jhKKk z{*$Rt{3bW`)=p(+s$H&;T501XFSb1Ly#QXlKN9RHF4;NpBQ`E00Myn_^?u1_614ArUno(`UhfW zI)s-|xHOK?Z1|(mh?ptpv->d9sx+;Iw=)~}MEsVO2t(}@3=UQxDsNaHG?qe+Ikc18 z+bmi(qQp0g;nXw1ueq8j)N-=VNm$$DWWy6dR-GrjalUhro9%?D+93I;6G@)RCM?U} zWOEF7Ntwf}ZVpxc!*-*CL=kyVTXqLKnF^cpV4X@2SnpB_j%DbFESSnq%8isqUe(9Gx>e^Up>*TO{yd=(#XS_V4CxCq(ezl*orOh;FBAWzmy{) z8P$WOK&?rQY9WdkJ1xhsY|g1H83=pby)Wlgzn2kI+ZvpcXZV|6N#p}@gNgLrW8!r- z8x}ytVGWcX|5(@E5tW|59}9ShT7KTbKOS!cJfWAB6}uhr{$gVQgQ6xiwfdzOp|;lX z(AYy_Q4u7q*yVrD2t}}o1>Z%c{zfOPLj^w!!Z;!Bx32YcAGu9g-h&PwFFrlu*MtA-5nqqXtgiITZ%HZ5qHiVbsH2P8;va5Mr7;cUfrFD$|Vzk2FoT zy?E>6r>Q!NnJ~Lr>d{06jKQ`33=r1oYs~vHbCh8xt@2Le&I51yebA?fHfe5`EJPP^ zyou79lZ1m*Na@pT^#&xFFHBXG%PPLoC?}iT^7iQ@o_j()`4t9BcdFDe5#6upLcC6L zK4J@KOp9E20>FIix}VvtEi2fEw|tiJgvvP-<<2d~?C@(TF1_ruGp%GH;ofk+^XlUY zzna|>x8s||0Bza77vME1gOzT$nCD8X{8y&2oh_GyBetE=0+#j-+sCDHBS52!AfL=Z z-pM8}&|x-V|9~%;0sW5znUBmv4mU0Q`)85IiE*+^Yl*DfR580Bm;`u*^x}&uH0`xb z4FgSv(C^c*CX*pB380a|uRN0m#!YnZ#SD_0|2w?o^fQ=Rsr;i9!1`51AW{?o_)-M6 zlz{fAbFfQiy1G^O`Ry`1R>jRAJglz)-ooQo$lNLT`TEOEg6`6lb+B4&wqeR#CGWf z%gw265E!ry3l=~Af9sGMrw(~do9@$Lx(Xq6O()1Yp^~)VBWJ9&^m1Lii`P!kdG>_P zhTG`9BT;H(z{7e*lIXqT0#$k17nSHvJvKteKg~{GPTI{=>6=~4fIhJPfD+=s2c!sj zAJgXw*yMf8N#u!AEs!W?-|*hzN2P~w(cN@9)C9N9`^DJh7+onZha%Jmz?$xA!*0R4 zm8J7}&SfEo`AO<6S7IdTnXx;K{(N@Z(G|(tUl`E*ymYf*26yMok@(3MMsP z$|gNK$b!4PV}Hb4bQWO0PZL>h1-t(Q(#bK7yDK>xo9gr#Y7}Vd*vCtJ$G-pzb+!|H ztvn}hf#sZ7#&U)nLaJ~xW0^NNsKC2&cp^GG&CZ}dBPpFWWB$b(kOn%r%Vu{aDkB-U z0PFB*&@~WN*|%B~(5)&GLO@4C#(i=DLFJtV$fXW1r0hD?=!V+)H~^aBtV+@h5Axu5 z{@99Uilo09^qpyR?d?1y@7b5$f*q5TU|~dVh)B3RaZ0>eKc%rs>)t^GFU5oY!m7=n8diS6L)?ED1bLLuv){1cT>0=9DQr_LEr! zE4Q4zi9TkT2#>o6{{u+6c|u>vH7W%YrYfs8@G%P|sVNhPgN4_YTAJJf;hb7S>cCm-BwVf4fo162!= z;yhQJQOl*NVI%l%g1-T~m^T#TW}cI1!_?3S(3?-dy&LD#_Sc~r5G|d%S6W6nmUdIX!2#xvu8}<4p+{4on3lAY0 zTy4xOsE98q0Z4r*H#+^rUFCL=4^=a z2SlYD9OcxnVPt}9kzXpksesYY(?-C>ViG4~>RO;&C>iXV#*N5PL`hUawK%Z^&TRYV zyspnUNkBtq2pO;VdCe<9n#Gk2Y4Fc(F?W}0G4+cORMc_Z$I8ajDrHM>v;jL1y38JY zuKs;~kZBTs@2c1_j!pquRxzc(e3%6ldZ^BE*1ZZmDy|K+?XVaP@gA%A=;xVQmTG?l z1b&_I>3NHI=2I1b&8Fo0L*GyE`1VFDyK9j+bd@dBJ5-&R#@C7{^9AH+l5V+|b@6Ll z@Nv2j*btfjd3x71hDVk6l$x5qge4Z?AN z8f(R5n`R|;5m(%{VzZ6jy_Mf!8!LJ|3l{$Rd~w`YW>Tp+rOP~86kmAe4|u57Ru|R| z>9G`1&aI2Fug!k0NQW$*rEuthax+R}bK}*G8|Ei#^b-W475_h)C~F{;7)XO%`kQ|| z4iM1DP;`3vZ8Qst!9*N^b^_{mI6m2n`WWaZBXv^v@Eq}8e=g_`JC~`rdmNE^i-qIo zfCO!@0MwN$c8=muxBS;wVel;xxcT(oQ(~aKC=qBj3SQn}m+d3*3ln;94;A#?+7G1P zpa&AH55X?^?*i8W$MmhAMpRe+ndo!TIxve#Dx4tzgEjTGQ24ew1Jy=`dw&i@fN|~_ zd}`_K`8?2&Pl)|phvqaS5nI?}dtK?;0Ypd~Od;F*VbV4eh0N>fO4|cz0KVZ2Ph=~` zpz6S6xp|TRN}bfE=|6}x`J>*PNXCHnWDM(dT%q`f)O7WWen?h-*2VEHSuA+L{u;F% zZCiW7J8e>G++8uzNza%;Od}gu&#LdVZwOEV##kT9*MYdOaN#o)1@z$>Yw<6JfG0iq zR)@ph^~w4wD{NFp#v%DA|0S3-XDmoxg5ijjEDW@p$yq}X0oh-tn;?)Y`36O_ zEntAqR9Wm_7z_S-RCe}k{4(^(2}tHFgdMax`iIGaA(Le__McIsopuK@mweGMInH)Y zL^YPXX9JERigWG?!(*5VnG;2FC3jx2G8w#MyFRV z>|7+k*U;a1D9b`O_4Ke2z+sEY8||1Bx(g01X7_|E0tohf83xJgv!QHd0nk|vT!?aL zLfs&nDCy>YsT1+-uU@=<$I}!IT?p4VQ%|j+317^j_FK+{)p1wG zHvIIsvf^KwuzqR^M&5?&{-&Ph-}!f-5mP`0lDnP!4j!i1?3JH_jc`rFWd8gIqAXxMyP&Zao|SCwA;ZkX30_-kiBa5F^i&iLOjVPR+u zsMLr1jFFT?iyXNCRYNjTvZ)4ox!VSUVg9F{<5e6osS@JI8{3jB?1`bP=I`vfFKz^;XitkarXgp141uYjtz9IFl-At|0caLjZ&1Bs(gLVC24%ehtxffLyv1-^zrt?Hd z>zimc&Wz5;L!)$gWFi&WKOxGq88FR?re$PhsQHLBze8vY*8itT^zboJcyswDYMyrMPP&LaADt(Vj~{wH z6(^WHT5(>wh~OyD)6>OMJ0xaxrgz%ii9ud>WHHyS)Yoy)P*-2<1

n!~UW(rX)>x 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%0AmGA*-SR$pjHDQc9p(4^ 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­g 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%0DEP9AD)$sS{HF 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

))#j3Iv=6Hsgi`%!0k0zX>67Zz)qs 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 z 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𝔚-u(<(>TT97UXDOn4}=f>+9qb{ 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%0DQ?{ zLkgMtgmcP=AaB7UJQK`wXvkd%8ae_p`XRzQ+IU$O+!tEK$snNsFK^Ut-#C}vy1yvi zG6i9-XGjDVH!Bw}CpzWy$kRPp#}}S>*x9sr_O@-r2w5fs-M_YJ=i4P*53^#3sR@xw z1+hF*jx2}$McCyiBH^*OLT*i{)PgIwSH*PlV{MJOHYn9zo~G2Ed>u?rvC z3G%%$nL7p~tSJ5WaZ%V8rUT90tE>A8#TdkfpAfot9jZiP{DjVLW3z;lJo6_oqVjt4 zV(Aue5IhXC72oTR;_;n)Dk?}(9S;22YC97on0DrxKcg4$4k-FWL}F`NGDz>FkP!tn z+iU6^$Q38It87eb?f9!ogE*s%kuq`}YcHl!pwv_@BH~_HKA`=}QTU(v=?L*m0azoy z`?{9qUGRml;F@O}F{g!?kYj3;i-^<3@cwdx;z`j2c>EoNDnH9$$ZrVy5xCHeT44^0 zDj{@Rj8BTxfYKM|3+ZDB`@Siv(q4qqlJ#i$DhA3hP4!EBAzqoM{GEt*!;QB}uBDSq zOXLJdcBmQpypTU-%8WTe&P*O`j>7~A^clc8L$K2d1{s~A@)7>}ikA0eY1x-~c{nf2>JyOSKkacd@k&B?8ulh`oq&2;;t zrr3yiz-IBFqxnz(Cj#gQ@6SZ#!vw>_1Y*#U?&0@o;zMPv?+=5(bj*~AgZ<3TuoX%i zkS63ddaUF&0O(%_nAVR825oIYe#b+8dqU2(K}(gp20s**!gdXiN9tx`0ko`wH4X^C z1w=>{52VW8@kl@-Ktl(lkqN1ygjC4^7Z%ypN7=|m*}ftMjD*li2kS4w{elPTPy%(x zfOAB^(piv#zqD@&DWt5k2T=@zitME(@VjfxiusWbdGBw0pwP_u?_D2ke~F)vB5O#I zA*6^1B;f{PCu>9VMAUKINAnDmZiEK~c>lhS17Wwb4tulkI1~qV+45&d2)Yz^&y?4BY@%k;X0NxmYXVl6ZBKQ*;@COh069JemXT<{!e1Hx91P}Z{7HO^h0~`2* z7W@ebEJ6Y~o`uoPl@EpMXUj+iY@!1_KJ|YAdc3C)Ti%$E2fQ;O+H+Uzm$>V{nbQ3s z8alrW>NWQ7CGFh~emi+|aj{PzfFs%%{OIi7Vx>zvaWY`4Y&E$hhR5x; zBTfx*E9*F50c6N>H)Pog)Nr|Ca@o!p*nru)tck*lAaxTT2pZvrSZ%Up^;!`CdCmzF zuH(Qnp#- z4NAd<=bfjPL)guAb9Kd1v->f-kL=JUk=Ay(Z^^dP5sg76(QH_ZU$9B%!Woz&GLJzv z9A)Zgc{YlczGz+@E*{JjnS<>63_*Q4gD_T6Ve}YSgO9M$E!A;{#tD-XM#Ub%?qk@Dmo#FRCxadJt%=ZK~zNr|*Z zj4!X%OCZ22pgr)6|KQH&n8Cfe^r5oUHemVM`8}_hw!2liwUR$Yv3%~jR&G6A4W5sr zhdRmE%buKLgd(p_SzZIP#{zq}G_`+7xozplGEH%?*3v$gwRBH+la`3Ak-$MKuzIrK zORiTFKKk^LXlhZTqMFA+e#A{*i9^=&eA6Z)pBanfTqC*)6QV}|(`YrO<3aBTPO&lS zx53*0GB-Ocfq9M&{2rE%Laou0!p>Pn3Br(y%vj+gO)w|(vMWB(`U0l{8HdsiKUTh# zYxNb2tN#0)SMp=q`Ov&M!1)I!$@cw7_)mbQ&ceKtyzb0gmgivKq(J5-}t zenG#!uqD*tWX0>(s;I=XXv13h0+$HbVXZO{uXNi($arEi-8>~Y*fyQhcuCT`l=A{0Pt7~Du z%y_0mnWO?zBD#emadFpi3?A(Z3w+HKx6&4452NpD2rHb1 zwu5X<9D_z=Q>Wl$pxh(^K2$T?&kHqFE$Y0iw_?~@g=^JmjMoDZ!OvB2mdw7dA4xjM z_8N|c0z(VZqoxMaJPe-Xl=;-6hQT2-$T70iTgg1w>yV9SRPxA56Nx7wo|lbE{_Z1j z!850C9)|Kd%{@hiK`6>BvAhBzb4ZZbXCvET@Sx+ES=4CJg1GEFNxlPK2|{F-zFe`# zy?;>2z2ukRP=E0;9Q0u_;w5?F;oJsKRpRkKW4DQ08xK5d|zyC8H-@%n*O@! z4+1YKP;)=F_D?a)5xU^j(&q5vcmnk94}i1gVZBF~ND^r2=6)003~RNWDFQSSi}TUo zG=z*$^gJwqYMAOPd#W7r_p^9MyXHl!V@uBtkNpM$AGFrBnYH0f$vfxw8$IW_=Wxf? zP&tZ?oQKg_o?xeL>ZA?6IVU^k{e*ud#Ir}Y$MZ-vjZH-BAScTVM7;-lHnt1B=zx{I zeXwlqr%b8TJ1ZPykFnb(CdeOj_95ZTpY|m|Q&3BlAGw~g&%K0;)-L>71N|N!Zw%+K zcH|j-oHRrz{J81am?@r0Fhr1@N8p9Iq8haC`NDm7#9F}kO=b*p4?0hDrYo-FG=v7q zo}^H4ze!C$IE+hA7(yQ*4472nT&a!RzMbp+`>efpE9;Tfx_4ItPpRbnvN|}9Dq!Cv zZ4hSi1&g_~3TUkHU$EQFTmXGtI`N%iAa50TJKlDb`Hz;)vK}0Wx-N&`sbyygJ zaCWb$-+o`0@m8m=qHHW~p!9v>7eMC8fQN7n9R3QZ1w!Za&o?#AS!6nq{iTMZjPPn4{VTO z7Ri;gedmJ2?m(@G(nsBbGun-x!?P0L*t6l>NjZpFg@tOOVm?{xa-?-=sSv51{cv5iG^?v`PDpvtl!jBF#<)#J*bYRlkOj!jE|*Klh9AO zFCVgQDVN2z+xsf1tRQ_fPz(o~48!yXb&`2T)MJA^IR*{pE7lwGxaHw@P!IavL5|B; zI#w)QV_jX{1|0kF*-g3-jjRe`O^JTyj4IVtwhF|04avZRmfyxk zc{14UTUI1^4X+~RO5 ztaxahaBY~z;D7(R&`lRRO#Zm>z+op+;3ra0J?3nD;(4k2!>V`F+N;a<*e?-WE>Ji@UhVNsAqh&ERzx-l2GW2%QW4@l0v5^z^pD4 zk%qH3S#52Y_Oz883HX|6wG}kX<9p-$YrP4RybRaVgI9H=8!*tt_x~Qn=fs5cI(^`g0C8r(d$_ys}Q@L7$;hQc650z{ye+^Vv zq_@D-oZ(1nhQlSY+Gb{Mbq&jxF+zAUFyGolPAe&+)ux7Bz#Ybmzva62SqE(-g z-NzIg=zb1M)=8D&aSoeniru8m@yaB6*N`-tX>I-qTLw=F+&iF5lJ8)7@_D>7+N+`69(&Mqo@iC)pnjq0-I@y&+ds-4qjce7eiedh?yUS!{aDH1A&UOWeC0 zlJV0jZ#~g$LCz^9JweHjVs=KkKlA7R+soax=RRmSTyaoc>LzHDC%3!@XWEAUEjAUl zo|fwkd72>SlGMgjd=jcOSF;IJ9=dNxgmt0MBK;b|fZjt>{3Q_zis^WXaGeavPN-yC zKjp=|t2Uiyt1ILZXt{&W8;a=&b-lMA7PA|X^$+SO+y8EZbio1D@-F@bguPtu6zg}v z>l`;QI+mbwf#4(RzSwWqdrbm%;s&92P&?B@SXiB2t}_fM`4h3veUgW;__m>rbea7W zzdCPKwiXL-Zjfzih@slFfm?@pBjx82{NgX6GctFLPQG4-WIkO+qA6E%>n zjVhZeO@PSCWS7B=Wm{yab*cDw&xxx8(Jo;dDm(kHZZkfGzZ?bkA?A&RxF>}!kMf<9 zQ92ZP4%-42%G6^?ey(ji#{|)~r0Ezn)!)rX?KNc(S@>ZP0!94ZVY&U!cvY}+b*{sS zx2)3Fkveg5bvB5`je=ugsJ@od4KogR3=J)`4yjuvW)JaV++f6LnA!4A_qJuZ&|&}7 zEKuUV(k&J#NP5oqxDGLDe1uvW@3rb46=yO->j@+XUjrR)uTW2R(qI4T-~EgygVu-M z{ER1p)|=h@RLu!7jDNI4j0rKsxc(WB2CdJ4*6+Suk-*VMQ0@>iG{Sh$Kke85PQlV@ zjC1*l4f9%U`CK%19V)?|Qu%4Jn+p`lvxEw=oHDGk$x0Pu6}p+y&1uSF-xINUw=FSN zb+YfXa=I907TB00b2?y+xw@s0%B__6z`rjt*Z{v5tcosWvpJ61dB0m8{!em%6uyr| z+AQ03;xhL+opw0HoO8uNRk?v0vHeI79d#B`BJTC?r0xEr-bS9}EP-q~&IVK6UhXgx zf@JO)(+`StY$-y{Dy%bOh}+_Gny!L;HK!IR=%sPp@3{qcQb^tr9-08-kg5Z(l|)GJT8H`w z`1lAgegw3?)IEP35#t}D{Q*U;wM0#(+sCIN2gyVb%R$_wV=;Wqb7F@u33PGjhlQ&` z&=C05-ptTw2{=(t$52#paW4eu2@nXBQ0aH;T@`U?5OC6{a{V@FjGA4*%AcB}Yr8^Mo7MT5#UYit+N5Ir4ti`C-oslw&h*}Ds51y@+-X7e6TV3%*tASXlleeL^65?iLK#@$hC^KAsuMC7`=PVAqY zPqOO5{|8z?rN11mWhQisN8l0dqIk;9XEn8{Wg6RA z#3&A;;cyLyYgZg^4si_#C@5BnJbY#mq?IBMBhkVVkGRwuL*?5AdrcRu=|B=b94Y>D zQDL8;%k|-0vDE*E{9BpeTZLd%#VU%G5l*fv2gql`#;-cU0)LpJ!W{0`&6t}iZZL3j zf&aPGyPOmb-Tb>bdecqL|8ImgKAVlUo=^}-=CM}dGu1W>(rBeP+IqH&zYy*RLK%PW z#N!7-5&w7l13^d|PyAb$pl>Y}!5e3mxn|L%cY@1>eXo_goI3ZJPg0f*Pf~JV( zQM}b|P7o9h2x>IRw9Hq;S!~u9T~uPM1LH$IkRO{>%!hmEYpvJE5eV1 zAU+OWxcAAu9|u53vkSc`^=EU0jRpSuv`rI4jNx!CpPxPI&3ZjFZ<9=Gs91`oh|WwAotYwPis-k&72gI-e1q}7E;t5o z3kP}&N4|w)$}Jp4w{R@Eg=2LK2LNv2*l~MijoUM3ZqJChJ=4SO83Np%F>lYrZqJ}_ zd!~fjGxqjOj@vh0aQg-eZr>o|_6-r-zA?q^8(?nVDB|`F9&X=|;r0y`Zr>np-)Oph zW9aq`p4&I>?Hfg`m@;m~l;BoO6t`lCxD}(rt(X~Z#R%Y540$W&%B`5ATQNenVwT*B z(YY1#-HJ)whIzqlm@;m|WN{lt%xxG7+=l7lHjE9oVPd!qqq_~0Z^KNv4P$g0=E-ds z)@>M^+b|sz$$$e5Y#LVFrUB+QjS1Wyk-JTUhubu|+@?{3HN%HnGZt`bh77l6yzrmL z>ia=}e?M0E_hZYyAH9D+bpL+re?QDGX54-m!R?n1+Gq3|+b=nIfa7+DqFWxyusbNZ*a)7FC^T0xwl@5+K;g*?hnaNhBupb_l6rUE1rw8WKih&?i0W+n8 zrVSOo42<|el?vzi`cq2elzx>KJ<2{GTc~=Uk1wB(D1XWg6)(kvYPVx%56u}iG-{2e zN}-6Cz8xj}2gj5Ychg2oQG^{P_(IuI*#%iH^rrWzcR8hqp=LX*oE_E$ap0wmBiKq#FJ{h&%;>Ng^-kp*dC+2pNd(&cS zW}U(fO@~IKx#7jlTQ{I^R_K^wJ+p4yHny;B;P5tfew>v)vlf?2pV^9&i-Uu+0!e+| zT&_{;rB!yhn$8d+EVX^X2Tq(^oDo)Rc)`@ioDWN!)7rk^4U~$CRRah$LN!`yfbcZ5{5c#${L*@d z`OFxP7|bQ!cZ1V15N>VzyN=i)^+~bHtUf#VjOmK5^Qf2Tk zxyhyr(sZk1s8rM_r9tTs$p`=d0002f5CA|(BovFqV!?n+G^Y*g02BZMSCm}5W=fo? zSrS7E8A1#I00000001zk2?0|qT#?ts*k0g=UZv@_U8BYDAJH^l1ocdYCOMwsj%sno zjao~1x~$a>|5}|9&X*?jo2LyXGrw=rHpZ>^vo8szgHMs&FkboV<$pI5Dv{_41i!+q z9fXj@vWJh4J5R{8lj}?Vg~XvVp1us%(8hf{{WOO^bIJw#gs%4@Y+tA@E$fj9c@=!- zYK{O<6C5_!lyd>4zQ*DF=+n4Q+a1K>F7#y$83%&UlNgtbx6i8sZLTJ1CGzI@ez?S@ z!VE#TteQJO$YorCG|)8)*OcAF$YeI#`8+n@Fd;bb9d8f%rH+++lK6Mw5B~f=t{JpW z%^O()O&sQT7@2N_yavzh_`is6z6~;{5&vEMvyoA{BOV%ysZI$We2`iwSOBgdPz2tl z)74HSaDxmLieC-wTKracG4w~O4k#cND8^P4$&YtIpMo-G&>{bm*BQS@pGE(mECoc^ z0e@*{C)n%V$3nOYD?b|@I)RWQun5x?&HqOA@jx~qAul^E@NZbg+B=Fj9l*LsdLz)iMI0%; z;6;wcY@QeU9@|&*R2urLmUd9|;z6%UF{cQ6-Kg0~J#8XwfhP4dl+@fbi-V!^!MKD5 z1f-bbG7_8L?~XQ7;>zVbw{jO_rJ2|V8bT!~hM|CRw=(YVC@!K_a$cjc(j+W}y-^2- zTpcPX4})i$ z@fJz_k|MFENoge(yDHpC$!x^-RGO}JS~U3om6xGZWyGm_FP>V*;p>rioTaSY&Sm_; zV#?CSxZqRd2AUa{LgQ?%ar!%I?hO`Do#*&2JL_2PG>5J)Q&yu?rlpKVF)X>~(7XDu zFrwkAUy&R^0Sc8Mg6SQfW(@?FqTNQ;4+*oCCtx(5Zx~Ynq4kh(AT)9Vj}$0TY*gd& zH)fC9e+MdlTIWWc)wQ|=0itE)h~kH?I4Sq9a*q!gH_~n3&?wB*N)H?aFT#aLneCE; zSq4hj00CbgbkmG7>D8Fitq5#%C<}_jpyR2~4E-rP=AsA67T?o&Yv`&^a(voLg+0Xy z&Z=Jvi9>Oj9`3xkWW4^c?~v~vs@uzKb{b)(|T!kayfx<4N+val{dX?+6{-W##+fn6!af5^M zi3~@HUS6IEjKnBa$cioG<&aq=NpIeOlt3-8T)K}|)QQnlkl_WXe4$f83aO8@5~SHc zUb@P)ln~?;h+PLOWF+tGjok0{dbnM?5qyoiki&kCTXYP}nm=ja2b>sKFJA?j_e0Fh zJ$6MY<^DP))-~SxnR;jwh2OU)+NoG-1PUCU8Br@{%7I>{MMJ#%dJT)-Q*!oq=ez0& zlM{t78ztTPg3YfE|3G1k%A;6h7kFo`z zOPV5fLG6f8@opA}eJ{7iD|;h8oud>W&`99bcS#CG-E&J{7OY%Jj)bV};bm6_FpJQV z7G3%2-cF93SCXaqRm?8;g?Ql$dLyTvWeX_c76&HrK$b*9 z;pDa^*3M{`I-DJzm3cZx9-mH1#U+kU#kK7=ahMJr3lJI=Ne33n&rBX((aq8^2F?D1 zlVmQ9&h%If|35~#W7hc{(>R=J;{j)asyDHfywlBr#=Eq57QGYAdVdG+MZ#Qpr}`2C zaXR7$CU;sF;475>b=ZH`wH>Ig+)l95XNC7$onw8Hq_(%J%7v=*8_3C&gHyK)HKNwy zQ-xr#{oHrxxkSd;L^0sFwr+sYli?EjOYhz=fQz>2Cw(2Z|AP4jv%64vaqUQSx?C@_ z^zS>;e-}OSp}YG(kuqloCaWqM-nD2JZ5;Ja%qg4A zH)l&iKK#3!%XazVBR2CGJs}C;+T`ScgAn1rOgOPAUBn45P+s(4Rdg{8qqt<;&&&e? zB>AVUrj#E60DTa9fb77SNswhJGBSVke+>j}gE|UvYixRMfX|uBi3aeacoA?o=MGIN z2O)ogTbV-ypdmPXE;ZX$!1QD4fZZ1j{K$@}p{*TBB;GDhOq;Fg>s$FM%P!1eKU+Q> zwaxhOyu+;6&9`lvXY<$zA#v!A;*5nppro&KyI?yocZOAsvEvw`+T-eD2h{|j1Fj(t zHvSq=IVnooXrjeQY-$%b>^ z^t!RvA=QFY^A`Fa@fwvKP?>;wKeN`zrVa!{mqUx;6 zz1Mb6U4ObFEal^-OS3r(7at3J8p62AvVT92MztF~Gft1qDmczKB>lskxi^MV*i#fo z4|CnaX=DK&S&(>3$dWxt&#l(@17pmmi*mlEy1-PN<{(U3jAh?8ME2r<3=Kr;%l#{`SX#qnPRr58a`uWk2q7+_7c6pD1Fo=& zzMp|=JkoDuw5~%Q9zg3#(`{J2tF}b+PL>$ll;H!n4I!X?S_ItL(EC#gomyyD|EN~1 ztbiEq(7a0znp=fjX^-(tHowGhe3Hpr?T(X`ok|rvqmA_%79P4a-KXc)@1*E^@%_%M zf$lg9N8iS?L`*)+K2lgS>TLx0YL39qRR-|#ggrrjQdk;kfd7JM%d3f_obfI3TISN_ zagYFKer@~w%PzbRi1m3rlGdgrC#hh4uLSxgRHbxymdiJFX}K<}0*Ui=r>vJ#ZAohaCXPC)!5cN5 zz7)aN9T}+%D_M(OqqU~o4~nle;6$5=lA5#jzCfqwKfv>Ht+zjCPBg#ck35>0(7+2k zd%Wjl$F$kY0U5Vvzf-t=zmScW`A(`R6qbW4Q5%5nk5p4FAP~_90VOAJ_Jk|_P05zv z6{BQsFucCP4hYf|W*1qs?|t-+zCTd%@O6M7;ZT{Wyxn1;Z9*&gztEBYS&;Ui5dQ_5 zm!#XhSSg7{u0SVIX$v?f#qFh+#Wtb6fK*u&c5$JZpX@u^v6LpCC`2Wd3XI5nG-fIwEcmHh`%MyqS05uKw6 z>zVst_>I2sPA|AS`AkcTMXIka5VptOe1{fjiZ7Fbpem^=u%WtoK{A===(=mv>q7)+^354QsM-8_W-?8^JbL;WF#u#$!`wDP_X` zpu?>{t?|MXxqmA!!Ky32pCnOt(sT5n)brSww^WW5(6fUH6y8=aPIsEim2{zTQBLO4 z9EAVWwO3^_z1FyZ*VZEoS7(0Gz{uigI2?Q~zDk?tEIk8?XdTgnG@Py%F0!0_&rWjD zPDyG$l$s5RvvT5i9$R6?5Gt4u?~6s&f(5Gy&veAiDN3z$BKa{Dqu6l2BxU|;mwG%i z!*1-t=XWS0Wxp2Ya@Jb)1-5!#Rn_rJ_j{H9fWiLcTR#O_#Yk>098V)BKFQDPy0+~gW+|sqirif{xD=AxCxG`AAIjZ8Q-hJw&=#G>1qv_72zh)o&6PjP zV0!aTK=hii_LWAu6tCiWwrUljBjY3q*LIxNmRP-^u?i7EOHqbJQE4FmnGoWusK+5d z=l(zYeGn{d*WI4h*!o6a{K zho8eE#T1)bo6fa0o&n(HE;bP>go=GS5Jo>Ud}-n?peoT0gIy;cv=~|JxfAZCJ&@>( z>;K(EOiA(L=WecumUE7O$es3qb$W}=@K4n%Kn9n`0g&s;oQK+F{-Xd!dn>5u1FcFL zS&EUNJk$2oi`R}&Jyx^L@4ir-qt0^f^)iF9McBL97zTSw^H*T-AcW6}un10G$Y6;A zJFX{ntW#B{%I2hqzK)_0WmuH(u}o3r^3JNgqY)$~F|8W)ZKN&Cy{SU~Ccb-)sX~ex zf&W4hh@IQLzq`7$9K`yQ{JzBr`goDvbDBWX7?0jpOY3e#G6>&~$$GsC>Yp#6u^xJ~ zp72ccp?icWKr2WpC<9NaNpzx;D+!y$hWIKo$*jzn1rTBtjy(rQ!y|S6*?i#OnerSI ztfb%Oi0!o3g;5D$t2c5Ns;Wu^Wu_z|X(TDD!)e{BKm;@R(i*D__Abm#bHu|RgVfPn zNYpVNQ6bgH7{l1w2RJ#x)Woj_YA{wV>mUDq^~gRH+(YEBVdWqjJukU6Eigb&9yVDC znEMeodfsAeV6I-s4oqLI`GIR1(aHpu^Yd+ynLsyElGGoth{fWIv~|O87jkxX!1RaG zyBjLzQ0?8NBP88Vj9cqsuFjL*$s`DKYJ+pvD|G6-QShLRn|hHrPbBbEK34RD0Gg!1 zIHX3j2|{s{es!Zx6-&!W{st)Lz1f@PTSoh3B==+*J82SW9YlY2V+BuF!u9D^Vh`G< zArk)m$4(t;go~aKzOheb31O=ZkB|uZ+IjjI{k?SSZ`e`J+n-tZx^Y4QR7uI$HH08z z41rTcFzD#uQstvzu^>VRf59-CfrydtL*0 z4$9a>E=U*lp2kl2lSYe>~_Ll9<6t>+m}3OEzOH6P`N8 zS-^;xfyt1H1rU%pKx8KlgOf)aKO?#@-B5@KzN^^$EpUK)@u3)hhS_9<Zh%B0#tHW6F}n&ZuB~#dn!>IBA5|M=SDdO>N`X}vOBWQZ`N}3s;iUuu39-j| z3q382Kr?t%%r+NEx%T?)z})Mhdjeu-HY#vyBsvyLKk$JnwA&gP%D0U^oZO^+U(I18C`6FtgzF3>H;?ff2fI%IzD|M_I1Y|V2?s(4!#98_vF zrA3?SW(H5<#n3QO5LYjdJOIo|0CuzmVS)jL>Yeuv0k~;~GJj!tYH`gzgZBp=4`iuZ z=4aoQYu;km+XwU!v&ZJgydkFURekmtu{8wdaxf~ z8TIq3QJ-|c7zOyV^z(MB7$y8kygQCRQ8wEz575(fq*d>aNu_By_fM1q`e_os2tz`5 zV`~mSHa9e%@9$Yp(lR%C9r$`vrdPVOwiTdG^v|gCg7uTwc+P$h>w0@?mse;8~_3P zCVcZB^+=hkpN!cBzr=_r8l($%s6cq zd?25G`aJXInU8AC8ABWdkJ2?it^Z_CV?e>m5)ywhXX844IZ zH=jE{VxM<*gy>fP^>TD++h^kCUNb62;Z9@sbCz45`8fxkmCWby-;YZx{K~4v63W%6 zxV=fn7VQeN^?04Tr@5rsu%h-CE<(&sCp>Xg0`5#O0GQG0TRitaA@qMYK*zB|e&M*z zMxZWsc~p0FfY$G(V9bT$+yn~Y$T%50AKg%6%2xM*HL!Vz==u%i!~YZD0~BmJNZwP- z61)L!C%6$)o9!27g7@fz!_|xNlaXsWuN)L-Pynkkk-xJEIsX0Le!jtdyz^M7KPS&_ z{!u%q7g6Z>L{wgFkGtH$4qsW`GF&*%1Gxo5R_6FD_wGp{FyH9klLcD3wuE#N^O1}` zgfo21Zd8&sVxv+yKsi=eF5I)7dHh0Uj)do&T-3{?FnFN0XrrVtY<#C| zn(AZ}WMxg(EYZWhCsza#&IOga;QBjl=90QssUJ;~1wc-hr#yO^cBX3sWR> zVw8f(1I5HGXLlD&b3_J+Y$w<0gdaHW@p*zn@46QB z%heCCmZfc&=2fo*?8Da3<5330kEF9qJ!&^HOvMqn)(TBxr6ai-@C@63u#)Jr;(5Xu zVB5bYgi{aaya4>%4~Y*UqVJ$zNCU3^^nHR5oDa(7V;n*)#XSy>L7XUs#%BxQi@zBz zAnpK$198F5=gt=qY0>9!W`>`@aLw*QhZ&K2xKs+|C24)q0@L^0&_a0;*g4g8ndx!@ z8X$or*|zXYqsKZ#1g?)n=3#N0-3v-zeg-Hn?2kAj&b<{Vc_l@nb(Ty>S%iK>7N7H>6<`o3)i^COu7#nmrm=K!atv{(*C4>!;sBH!(n0y!j%{X}A46LG}!AVVT zNUHBDmwJ_<93()y+LNvC`5=rb)dQmMvcqGpq@00jX*?ue9?vFh|*~Hcz5ZJAnbt(%@zF3!cPV)Y}F*F><*TvdMpMjPPK5+Z)iI_8ve^`J;{KH+s z@((dzS4YdpKg5NHC^KU3L0BAb3Y;TIm5eYw;#53dd?N1FiAK<&((G{9t95W!f2oa+ z$J?$?ISRoW`Uh-cCz?vl>PpL_*sty(@rV7-Vx;^-qm!84Bc|t&{$9=ML%?+;xLd5~ z=4vj-7dayq{)^=6XXY%7sENi1#fOX(NJ>oVhA2JNAmEW)1vGSQiOc|=XVPCldb(EH>O!gO}6Ar{BFcFa`s9U zi&Z&)!Uf1ILX{%{qdudlyRM91nWzHgf-{n(u4US};!`YYaj&nue%1_?jkhVXSA5Iu z_-o9)Xeo4qLXefMZ#@vAKY+~>Q z>5~^ht0e@^4|Lnzqd`;8$rzeGy+;Ii_>qyt4ks>RR9pV0+VUip;HO_Kn#u0I8Kd6V z=KC!-6Acpu$PTS{AIcrXC^Lzv*d^p+{r%zXln#e*xaL0;k%`>*v~4ju0*dt5i-X<5 z^=W^KEwdZ=#kvj5i1H4$5h)ruvjbY17O8TJ2SP$e9AZgEl-$$6n-QfH?bs4GKt}`Knjyms{x){F}nz97)G~LNH89 zcO~qJ8}a+R2w-AqHR~gzu_nqdfrz1RMuST4@}&u-i#9-G_4f8KYK=LzO(pO0a%o44R@bSPZeDb)&W#PSR-K+RI*-V zjI&jMmzPt%&QvYiI*qr832_TG4yx0j`WEngCbKYt^F=vtm?+LqBc^8Q=%9Ex1O z2)b{o3Umi;i2X&Op!nt{NumwGIN*@-Q`O`O2@fAHG~!PFvVNyIimcd>f40$Ss7>O9 zS}Fk}GS~~|XjFR+JNR-9MJ^Z@Vof!E+sb}Wpup;|Mmz^ayHaqM8%^T@5}Dj`F}^6; zZg>IOHt=gsr&$b<JH}I02JWzQz&vg4e*yO z#WXJ!Atts}Ug64p3NFGrD9AZi!Z@f#29hEr4QMIUI3tzqKr#1jXZcVTyl9a&*51$bpfct)DO! za$RA`h~l}Y>@qV8sk|jlD7qciFxQfzjnrXm|YzwkS07>0njPTSH|6 zU|vliz}(=ASvOF~bonQBLMN%XJ@28i;TuF&VTA_pj$(%+fHfxKFe3*e4&+c9Xk8_g zQE%UBb8byZ_`r_&eMIT=aZZ$jXEtll8mt@LY{%WUQAg20^qmCPgNK0{&C~{4+Bv5Y zh<3zOClL8y^IJ6#r%@KtU@G7aJ5>TMEaOY(~q=sIl)J1 zdPsC7Uw;STMV6##m*e5tBsPZ8euZ%H7bXdD?VM+D54;D(tjGnK($6VOQ*$}lE* zV%z|a1ztDR{5g!(7`{Ikl?@AM=q6n};cHvQT=;E_l`$Yk&iGQCYUNxA(UVrP=o8d| zUsLK_=M7BYG{&(%Ob&`>_ejaOn=!J0(4gs(I&lM2<#|4p_hF7S$EAz0T1ZnDgqW;w z0W1=ybWRBTj#BKFEt26~uP!ZsbrvEHXCfSgGYbLF^wZAJVr9AsR}=;%qEo-!12jor z6h_mvYW6BO4-i;Pq#YfC=wi8A!XG_~`POXL>_UFA)T{c6`ex-6O*R~pnToK@nNf=C z_NsTR??wP>THJdV#3a-j5;IiCyBZ%o9W6PTr&HG^{p3wjug?r@0ZaFXwU;lfB1yp2 zceYQYjvEuqmN3&-7`AP%^YwPuA%g*IHx+@wFm4s5lmby@wU%B`t@_k~BZ=9hF6;d~ zyiH0rt6zdATeMOvWgS8#-8cW7h!ues>@k(~88Qrq)q%+8;seO+vN*@Qd>b6+x2 zD2o_7o6kU)N>lErg~&2WBC1#nlvfXYbchj`g!-|`zS$^T`v9K*N%qh^F4m)HD(zJt zs<3?9dWgDJ#EcQaH6Db)bK6!>yBF8%C9Xr0vK2@i;(mHTfcHvLg%fdFq!#=tw~kpg zkd;o|XofZa)osGM&MYz41B0Fimx%@C-2m?6%-JR;)x3eB5Y+u5A6>u;PMx+jrW-xZ z(e>oe7m262)ru4UyOS`Fb!?I1(E8M-1KI8Z=OGzM7>Wa9)k=Jxua_+|qOl)?bD!EEJD zJR^fC@Fzh8(KMvFfjxVe2_3F#w(w9gtNJnnh~wV)SO-qIJ>kn%f;K9eBi|P}ld<}d zFG5DSTlB`a_3eqwDfm9CP{dv32+Ril9Xb?kA3Q%nkPbxrty;O+Z-*<{{A&E!yLgw# zt2%ypKOrZ-9CZmtq#<)l%t{9?3NuHB+4#ttRsBgDw3l97a_yb2xQJZFa0L~~hv2~7 zq?EPf=7&7vwM9AQ(zY$prPD0d0#ARy09lgAq(1XO!AzB&x+4B$m*+-(&+F3Mx(3b*@@~yn0*()!vtZ6vYmE(b1G>xd7)x;rrCVlE_ zEQH}*wj;+zm1R*&Gek2*cS~@rHg3kD11N`|9;9YcPdfm!4SI0w)Cq5}Sh+`~yopof zQS1EOo3e<#-_6>9e#jRmWIaIx!enMQU3?`(S06-?mMzA4-C50|=UffxnR9Is8jrbA z8~6yB4y`HOJdT6CNm+dOR|{E&Q=*{p%UZ*ptDOdQU|PZ09Ksa(Yydf8VHNPM9-X$m zziBa3O=q3S^{}&u1=IJj6Lj*DwoKOIQV;ZH=ZQ0uU)l0eEpC$XEi?}C$RG!t=4D`@ z+zX#Pcm%!6x29^aJzP|@#Dly5TLlXFA*&V!Uqf4}sV<};xH7m;K2_X;Q?SACK{Z-O}Er|;TA7qV_c}`m1{!#YM3e0sQE%TZM zI+Lr8j~o^KEh}t1cy#faSO=<0(8i9XLFpwoC%9kOVQx;beLnCLk}BFdrJ&lLzbF2r z(Yho%PYSAejHI~2oYAkp5onw;gLI*-i`u~AB-TUpssZs7?&Hmk%{Nh-zWo(IZkVc>tKviOVV@3kR_Kiy)Qb zA+sg_j#2%c`z6ZC7)VdGQ4ItFS{YzGtVep>J9ZKVMPG!J?W|0r0V+dyp)iADIvLdv zrRt&O*yPKN@YIDDY%oKjM1^ShIgrSlxQph8ny`#FskD<08^LO@=4BE$+??!MTP|L~CO~bGOZ5?CVam?y!d%5*cCEwJ_cD+q;_vM$(5Co| zb_ki>l(a1Ho}KMDW)^rwz=eB{zTswwVDkR6E$qbU+{{G;cmOz?zkf*^a(dW+hSW{0}k(yvioCIAHmPC`x5$Lh!CgL>l|CRKcogaHMa{PcGyvJrypHHMzAwm=sa-)TmWP#Bl}uyehO= z@C-Sj9tJsKAlPcavnzS~W<64`x8d=5yXH7R>zkW&m2HRAfMNJ=Q} z?XOf2CTIvSeOP&QiR^LuKhV&fGdMIYsBDPKilFTQAdi2)ESO;CE%qmD(5JJPapqcg zDbZ>m@ui|r>%YB0{oMBV5@^x{C}V2nES$OI;#{i{ z2+?gC<`K!g`N2`X(eNpI!{H4emV;&eKy~T*#K$*LgKsGJXmY>~pWZ>#>A7_>k$xHL zNgbY|*Y^A3>VizPOM>z{@hwgtEI0Zl5p&ArSspV2pl|7#iUe2XPiR@8&BnQQiGQhh zlbBs%s%&-5pW^jd>G;GsYks@f=&;|}6# zp-m$KKO>A&8(sH6b1_bWbXFf0dlFMP<3;ayww@YP>*@`9&nD9dT_m3R-|UIXfrnFDYRl2RRf{0iS&s;s%{TZL z`Ti+rWh!8BMJ$daTowgT)OXUg6USh-F5)&|WRc_U~=q)fH3Ha#eb3-@aV31={*??Howdtr-9bn3G7CZt8Av}y&0 zz>i{7y@ru<(V&{_S=jg0iP3f}u4rs3D|D8^^8URR2fhchQCa*^rj0^j6N>mL9T5j+5;jzip^9p;ac z*GA5qR#9;CSr%~*02Yf@(%+3`14)oJ(@5IdsmRX~rAV@hmUb*Q>Hq-=?$(iv`2oLS zG*`S)=+t2QqVSl&&-5q(5Q0wDN`SAEqtf?3jORt)i3ijd%)z*2Y@^l=Sc>~*#!j_ zN{*WcQ6AV(x#q3d2O^N>6;?H*(tkdfd3DPLe6X8mnJk{XAKf0R>sA=!8fd7{8~HUs zg%`;V#}7(s6>xTYd!j0Y1f49b&aIK#QJKtFcuc?&KdY{)63dVSf z{IJ9IMb z14Y9Z28BSt2|C4RI>-)a>s+Lc%7+!@O-(g&B_x~C;z+xcJgR_tdqa39Fta&grRaOh z;(?u6a_`@F6DNOUZ~Hj*-r4Td9;FX%zg^vaUpS}=60pggAqVXZiOz>YC0<_%9_DUh zZ=JYOK11HGOdBIhqaZ_~&jy1!0-51oF6lc~2X!9A#c&rrPXhieDGdASJ$Vdw8G|-H zyXUpOWKnmhFZ?Rak@IK=m_QEmB~4Z_^!K^J#G|D^zm+ij0M)ziQ3IXs6^YE7WnERgL)Nu1z4L&&3!N2NaurZaBrZzEQ7O5 z0%;@qtV@TSGvU@UuDeWs=SsHiAT@(;PYIwkzY-0 zEqOgZKWr(}Qr#PwY3$-SKSy#XejFf%vTS$T`Jl50FjBIb1+`5}0o5}HP(M!rbqS^b zAHBTZaby7;nqCkTJ7w@zKHuE)kOMju(dvee;(*#iyM$mAXzFe*H@S#~bY(+_f^REgB{p3!oVM#|l?7B$ z%IY@JnGa$_T-mC@)wM!2(H=F0sMHtsq8qZ#9LG3z0Pk5DCVQZ&J)J`7!ELlAzsY~_ zJc9tqfAIeZV8=hu``D@6oc;+jl8rt>+m85=VN5!!^pXw-7Z(Q%La!v?2BLqu^izra z{zL=h@LM;zW%gGkd{Wy|eo=pC{`?Yr_~av}I}mZ_W%8WYvs|87w7)jb_+J`7qzr>~ z;8aJzH$hKvwYRu9tuD6&&Uwj#IbiXU?3vHr5(JzkiieV!ru zUT72(0FXYJ4^YBsRnfT|+%ak1L0yht$bd-XclCrI4nI>KSTbJGGU^d@A`U2zi!~K$ zQ2k9dgm5N=bwt7@$3hZ$qlE23M1ytq8=@Yu1GOmfM>M;lCCE{ubNFj;dvph49~^>M zN79pNg^<;ziUvk5puwUgmi`{VQFUuI0&LYWm2~Lo!=KPv_G5WRU9v_^8!sSo2d%;S zgH^?VMLaWPZrbNMb3H_OAN%s`E1Vu<%7IvT{AIJ=P9IYcT&p7YeBkqE?@HI%c~3)3 z0(~XN13wJ>a-kxG+tv|~LjJI#4&#_36Q~O*u%7Ev-J@K*?{3yt2=@(@BjXpktH5ee zZ?_jeD1@+)Y>FZFLG@cv0g3Fj{TSBA9N6ATO6ZO*AEUA{i1yAFe_krbEfYIg=%=$A zhdTQ{8*I{PX{ZLhHA$IFDOwdq%s>lh7_qy``-ne30n(3+04iPhJTZL%4B5~RO|%n& zf^bCAdZ7K)QvJLD7Swn9KiV)rM5}IYyf4d~X8KXl_Br?a;9~W);8zM&r{A75t+mNa z9FZ)Yur~^T3M0f4MN%@3IAd*4N0>+o#L0`=#%VVB03dZ((75L{Pzdg^YM%qs*I~fk z!ndBhk(_s*lB2>$g)-a&B*(P>0yQ_VU?K>>`f6L%#IZ>5bOH?l9YBl)Z4C;RJ~6i) z6`KAr!*bC1)p+8?Cd{XwH=us7ug!FZ!*nLsVB&9l|3iNaoKAdRtxS4)!Rdif9*Ykv z+??+YB~@dbhfetGolaW>1@qC;dMZW*OZ47#d}4{B*JR(!;yYwNpQZ*6tOaAMs6#JX znEvn+*K0@m=h_}$?PUb%ZMru`j|tl#UN#>BE%grtH12+;U5_j7{Be95w4HtcXP3O~ z$)nA>QC}OJW>E28+Ao0a1}D^oShM2#8Kuu z`3yQ4=#(FYAG2Zyk=*>TJ^Q@+Cyk)j|2XtFwUF{tho6HOFTBxYrqJ}_7D`~lWj!Da zG#ohc)~B*B-LT|=0#5J1g>x(=1X+fMF>soA6w-GJt{A}!BeJpSO_$8kn+?d*yWaVT zU;bW;e_Ap=Rg7n1;kRH(=D)anADAsltKBj{Yc-D37nZoqqKSL_xAYIii(~r z%y)M%Y_qRk*+O%!xsW3}@?9{5`16X(6D$~^NRq5}vp~++JqeBvKitW&RQ=$O5>;ZRq`@(jm$E6=b*m zQV(|*6!pLUYmrjopFZ?aaol?~0m~n8PD=%wM{WI-p1&Nzi^zC^+xckPAIy-0s$}-S zOq*hkz1i8NBX4qPyT~e%&fTa~7IRx>8L_7?{ z*XvApU}vuXQ9<9f)khPWH(GLL7zjjkuTM)~G$`Ya#<&z9gOBvU0{<%8VOHkuZIphc zzh5)}*sw66eqn;1YE6JV;*n=tDR*B~ZLPreo&^dhY+xI+;SW$38fp_{3Yq2O!oTf| z>Q^B1NcS_kDs@iwR+MEnW65`poTA+8_j8<&PWhBJj1E6NV?%_O^cit%n;5m?W5B$|na9^Q&_rz5}lD8x1tFbqe{MxjO{ z#(<23$bihukiDk|GOsar4+fCn0T$_O8gwn4N;UkUzm&M%h%of=T_8geB%hmr)?hH? zUsX^Eh&`t&p%dM4%YU5~d&Ih;dQjMGK|y(e|5qAtjy`IWS2A#{FN|XdtatQ>~Aj^ z#9)T+dH*&cilW4mK9UVw51)`NvUxhe{Sn3w#^SaI)(3CQEfQSXbL|N=BmRBoRH@iz z%D(jKbQa7fv-x@~Ps`V~_t^aDxrm(y9aytZIRkpsd(T;cmG_0Y9?{u5{VVHooplyL zq*}L|#`{Gv(F0C>?%`2`u8bc(9(%x;z6z@R@ULTit`^GCyLi=M!pvnlj&Y?`2;E4N z3@V&o?7<2l4(Kt5i+A;77fy?vji zeb8)|8yB!3{f^)uzXUx$CjN#jFV!aLS_MTrb_pL344C`s7>~?3+9k}cV3icR|K4{R z`gv^A1I@=GUt`jluN>|@4>v2@42t&t4vv3&%FKXzo~Z|C(&)fk)#r~s0v|cByTb+s zbl~#~b7p0oNgeEtD`{)MndQb#r5pg*)M>Hqz6nj!18AybXw(g4RM4KZx91M~_baHR zmmFFlZzE;i-c`=mQxQL+J)_dbv__5=JNojRV;tYxh~rIL69;%6r??&8Y3t1n?Mhg`@#L5V6_^@QEWU z{(0Z+l>!elXA^0b2Y)_FIW0mzI8NGlg_=l!_SsIo!rtFij9PxMgW9Q1IU(^rYWzx2 z8WcXjrJhH-V^Z~`Ktfcdck@ER^jWYyYHH@!cZKvS{JnBrYZ)Q{^G=!t*I*m^B!OUfdi~T#&1gxsE$K!zFMNs9m8bVi327 zMuO&uCHPf6oEj4IsPG!DVQJP867l4gFHD#$8#>>#H`iWopG#J3rG096gzd6u<@#}_ z_T21d%#iBBb7)IH;Dtv3Z#kP3DrB{3ir;K_FYsq;CxC?9kmO`6O1baaU*lZLP`PWp zQXz~AqUovn&M~HNdRLm3A-G1^4n*zcEZX-+1J}L-;)<n zIVF!5tCcDM39B*?UW8(jby}rG;brL(&d;?0;(#DRh*~zE^HvUtiohB@q}S=7-R;1( zFB2tuA~t%$NRIPI9&XLgRp$c)`a$;L=`Re!Ar}=Ke(DKFsXnW2rwfT<7?Qj?oMzDJ z96GY1(N7t;>ipKa*j*I9kuy|x`J(v80sXP4fuZFLl&04YNqIV-1oV9 za8dE}aV;+-lcqx68FCQJ_|aY7qEsTp`|G_26JI>i6}?pmMv zM>t2dqxVItB{}BLUf(Fvu;M2XjT@A|-H^3;RwxX;YN&DRW49u|*GZJ0Hgk#^>p;TgK(P{~&h_<~ zQ0Tx(L+KAXe@rS6{2y#9{o@YU4L12#7 z%*l&^{*pclZZ!3|(mSuZByT+5X+hK6!tP}_a=q~;H%W#cuH>Q7&4HEV!}XpyQcgi> z7yQVih$?i~Kp`CJ^G4-+crlRzu$VDgfy^7HYTpH$^Imuc+c1XzXJR`qgcJ>H+`1+i zOy1eH)Q=@mK$3g@pe`LlP%fKR#}f+9MeU5jg8T6yN8(}RsH+&0Qw=j6*#ur;XKNSy zi!lL4w;NZf*wM?OH~l<-MJ&K&bvze9@ZAv?7CZ%=O;^=P5E`P2#4xOPY?j$wn4@T5 zT!r(3oSq9`J9fy{^Fm@XpRuyeAJbNsPYi_FRT_7*NBaf!s>h=^uiUuKYV&t1x-~G@ zHVJTBQNUhl)=fnZ?0!oitJHT`PmB4qyWZO?$tf2QfUFHLQCh^(RSlDLxdE@);Xz9q zf*YKS-G-&+(r_Skb94-7{BTup3NN|c?m>;(U;x@M`|U=zW<9?(N2Te;7g z0Hz8LNN6wEBO6FaV;+Fa1AA7v)E%!Ix*iWT1jQN^ANVwv2mnbRDt%Pk=7S;>Rg_qe z2y!eoYNjvytca%@Pl9*nP7LBVxiLUpj>FaGkibfWM%n*}5IjtoZY@phmMQB2%afNA zmb2?8*KnQG@fBm$?CKw2>}y<(;-LQA1rTTX^NWPl-t5i-KQ2l-!5>;T;jka*6d9xd=) z1O9x;;Ew!e8N6J4!8n_aEUe|tfj(D!P-mSBy;I2o^l=bXz;knHQrhtBsD0DP;N(udrDZK?r~8LU#fqI3U$Pt>BW z;H{m)+x)fb+KKiKXjDA3^k9IRDC>?g=mo=`D{gVbCC=djtA~(;umhvF%Me88tYtVF zu4>xKCjsk*T|5(+n`(Y5;rxq@p}|3D2vG#9Obc=}D&1W3+{=862v!dWAGVghkUOT= zv8vr3Z)dHB_DZZvyFO#2Sf|*vg(B`^b|sGQ%-&i!8g%LH8y#G-obL6{%yM!Dznv$V z9)ow?=zDj?F#ZTmUWh7ME!a!sA>sj9ODxNR?;B7h?QW0Vd!|#HYmaNdg?P2XFK34C za*j-zvq@I@RkT)ZS(l10w=nU!yl;W{;>WxX(K*-w~GUqP^iijqS7+6lU~@m3855CZ5| zBDf|#dCsVSt{L0IiBh0qZ8`cm;2Fkn#T5j@p6=YoPeV1XkK{jck1*3UYwg|rlp^ky zK8j{#KSTFE2nTRi{PYEfc4)0QVZ~v-(mVo|al?`T22*RT6_tc?YONRV)D|F;8y1j$8CRSA6PFK&z_nWSC;=(l^9b4=5~P!2BvXCbxqptZk2i|+4Y zTNRtTtpD3P!nUVDhq71kNBZxH7Q^bdrszEyUtheaaAjbi`4jF=NK6VNC}|c>E@!!T zI4b}*KT73aaJpp9lz?bd=Lo&G8RY;Q;jxe8K)QXwX}%uM7~M!8gc8YI?XI#II43tA zyItmHfzJVmI;nuU7l|m8c4#y-WzI+2z!bnW4V5z=ta|~AIJX>?Z^s1$=UHiB-oimC z?rh)ihIVU=;L5iax(NqQk>&3h^{BawSI&`bWhNRfCX+Uo6_{L31G&y^HIYc89P@P$ zHHNwBwOsMa)x8bh%PvbW!EiwyuNYVt=a0s{UX6{cg6Js06--@hmjEBRmHC`T&eb)A zzJzi$c>6^Uv_XpO7)kfpLwxS+p}r$*FU}V`*<<^9ej{<8rIn*6CnXrOwzXvz8Gn{*5#z& znp{It&+3!0q%63NEjk~xc_S9f_;#_Rua)*j6{2pWpru?IJ*+J&+W*^`^)VZLn6$@` zD%Kc4V^h|D{bVhxC^ff+I#}aG!`cPzj?q<{Y}za=cywuwSZ+ccn`FI~d&*q|4Act2t+(IIz-o*DJr zbI4blKJZm#HDU>yOn!`l{Yy^&WxKz)7V*U$MR}A-|IBQzu6w!7zgGSa__Mns4U#}7 z?@*v)ugjqiOh;nUZl39cr4mA%8#s&a?jr$w!V`_zMjimbO^Fv%g=0y^VqPn!u1PW; z;hScOFH+;7@Q#sx6Nx;B^G%9>kmwv6%K|ZB!BcB!YPRGy>x~DpLq-Vcpx~*_N49;R zwyYiM68PQxaGmrDb+mF;o@gE-GeTs^pTsGqq6k%F${ewbgtCju^NV>NiUpPb6>M}E zp)j^MvMY_!6TUKCq<~K`hFzc^6NG2F*dHwb$EE5utYf?+g2l(&-nB)CUAm>yt^7SZ zpy?JArp?zYvzDw4*d!_}2T-`6yVJWG6YeEzy%pyx#y}RpKC%Lfo))_2T7pFgUKAGy zWZj#@@*od}iJTPdB8Ovnh@nIIDt9k&)Q88eGht(4r*Oo}N zek9Pb?p~dU+RLa-DX#g@J^i>mxfH*Gx2DSsZ@!c zleOrFU3<~up&I+^{Gx^=`*WrPy8v-5^eSU@N42%QgCloJb_iknggbnhEYP|dOh0wY z7<)DS7Xtn3Rso*~Gkw}de+8ipTK+pnzh*?A&vOK+Qnk4&@wqp-1rz|Tq8-FBY%AAGFW%hkJAN4jC*VQ4B46@F%tZP z4ZRVuR86p$x8froz?+V-o-#O9klOx5swxo-%+K!gZ=lmk;KeaVY;EGe>J7E^?RvCT zUx96C574MJ{|l#ki8BWMfj-nBT}}wvLh!~KjtA)%3TnT+k3|1_tzVrQ^*{bl&16b$ zonJTf3k7^~9`5l6A^D2*{w%Q;a};lRzZ64Ua9gZmy7MWmGFrK)pMe6H zoCd14Z-hCFGz3a9PObMGu9#NY{7qC2n-k3egoT()L5{W# zT}p)C2e6E_E3k1?cmS@q${=#Ay`y^0vK)Y}Pt6+}iMLh@=hQu&vCX}NLNvcW$@=xI9DF%v zCgOt^>#o<4MFc4ob|X=>=T17k3vWs$5jD;$wZb{NI4Y**TYE^Cj?Fpa}rZP{{RrboD0J z`v`nS0#NdoPiCr9_cH7Wo)-oC#^`^t_L0p`~AM#0MTm+VQn<>sLN7Mg#dXeu2If z|3vN{bdGQ11*flIb0I*+tMzEWr;ZAI46Km`J6za{&R!s3gcbm21~Z0wV8x~n!;nD$ zB^TDyngb^IsqmLXO->#vdz9B7M;s;1dtMu-ocSPcxZY1~s9GC0`v)Ve%F?cyWe*fP z%Qxr_0xeB<0rve~=P$+^$?cH~Pmd$!$~2I#S4ST%{NgLF#XO0fT6N5xaZ@`zdr+a`SL9LYUz@HEcbJy!5yvoC zuqiP==kw7evszcZb@&}FOv7cu`?VGcO>aeHJg5FzWXpHfo-sOTo9Vj|a^NW}#l@+X z(;Ji6lCu;3urvJp1c3_0Vy2C`ZN5VgSV<#BD-v|eVV|3qnoNab01k3vV=5y*L`nn5 zN^P(rkYpH?BZLRA$6(xq(5H3#strtLPK*8+^{;)Z>5vJ=K%%_ z`i6fN@yO8j7vOX?fRW94ub|+~@R!*(54o)Z+Z*{reN49H1R;0?pmJ3o;1MF(%D3FY zORkVdUNI4s!XW(>o3T}4KbnyL#I=Pyd!^6mWZCX;M0f2fgRV!Jna_qW74VF8ci?H3 z-L#9SCS~p4%TG{M2&MVrc`%PVkxK@Spg3`wZ zH^P>rO=PgKoA@L%0q3mU{Ln=k?gcN$%TW5`Qa0!C`03n*MZ)$_bXx&KaaGd9>+i5K z2C-wEm;;K|1^P($Ce%Q^hWWhu%1}7@xRl9K!W^H^-A|Ag;YWs)3g(2AHqRu^42#5U zO8+c>$9z`l9X%-jBq~zsz{(W)g`HzG%FkuejYvi;K96GpbdX-L@*BOzDfx@lx=% z0+|k3SX%e836@&Y?Bfmh#;S^6duW&UdV=rCJa)u_sw_2<>Sy)dbO$%K2)0+Xq&4Lv93=x@@S-Uc{F;Nn@54tfL6fSOgGy(|QEgpZ{ojV9n zIEp?OBW@*TYdXd@9Kt*@_mJx!r*oUrxdC;QIHG5}K_}TO$#~f@1n3O-VLV$dBWm+u z(M3UKv^e8n`AXnhDNut~UT_hM^pwi!{4=1mXnnDaF-Qbk2Xl!|Z4eT$ngY=bkiW(i(L!_QGr!>fvc|_e#NDREYnk^zc_nk6}vzM}bnhj3l0R*z}q;RtR z(bUp7u(<@>J?8#+6xIEd&`;h zpG(B!9Uvd=4lu&==~#hd@r*APuAXHttpOI`x;uxOj!bbnLhV11CA^Z=b?!3^M+DO0*cfcWgrxy)od_3&+I<}WV^B%^dQQm%j2(eTiz zXck?Eyz(zv>6sf*C5+~eKcXoYf0W$0n2Ev)#3+kf|Fu&BRw$Q@buYQEwu@y6zMYG~m+0vjZ1|N025m86Y(AEx=r zOz~LGAZiRTgx_nByX8|rVs@%>TQRu%-GEzM8$rRd)OX2Fb>m79UNxNz2jNu|9i$B` zZ@O>{2X8EPE&87Sq?D?t1g*}HlI8}oaF&SC%$UJCqc31tiTiJ~XY)*&v0jf6QqVp>Af)bbZl3c`ZG7?(0_7ZzHwj^dT(*=rH z+r-3`FdDEaHz%4y)SX=7*BZz*l`~TGD%PHq;Fo30bAaOG1eK4c+qrJY%VeUy?G}oy zY+j(BsZ76nSj1_3pI z==+c6JE@toQB7X_Bbcb7neX8QwzyKcNeaGupXis|`HZvl4NBWH-EEpr{oJF_u#kH| z6YyiP!3{~1KDR#7tesZI}8@_HBUCHi&<&U8fB9)s9ITyv-tG9d)1T@mRHe*n`V ziPd=wXm^1!35gkAurzj=RQ}FRR>Mz3+m&u@hJ{!t-cE2N%Or@q+J`W6mHoy7 zeU*RTL$~IeDTI!l%<={H4S4X9D)s*4r9%Rn9d17#{P} zH5x2*IUU%48F5PR$XrK9O&C1e>c}l=3$i z26M?<7b>s5ZalPzK-r_%n;g!b^7v@LZYFovg%yNJig&EG+6rdWa>x`ds8hjtSuef7 zKBic8WB{n^WIyO%C6+fVJyKVgtk#I0TXzt#GqRcdJb=kDzZh#j_x^?QAJ*#q>ub(u zczbh@7A!^d29i@TW9d6USHU`ii}g5T3OFj)H=FN+i~c+O=T4hkvSH;N0hDrJrQa+Y z&Eob;HA|I-;Ul{jcX{8g5Ahjv^vkOfHgUO?R^wp9f-)MQGPb%-!QcR+7YHzvPqKu( z?o8T1L-@t^mZfR#j(vaH8^b}$WY{=RW(KxCr zXNVY`BtHlkfY4v=*xF!`3~PsR0{x>rN;2USy`|Pab=irrC6!O+Br+cw+*8xh1|diZ z&m=9x#X(TGdv4065%a1!_J`-lV$1Bo>wYlEKndt$xI%`XG>=oK?n9Df7@VmdcKe{T z=6gP>t{MkGHv!EwP?%oos5aYWlP3)S;IUaslQS;rX4v~$0naQf7gR=dW zhFo9QK=}RnT2b^4@5I1mmKzxxgzKoFJqns;sqY*8p68Q|i-)3-Chibw$z64%W#$KD8f=w1%k`nB1(F;l^H$oJ+K0z!(LZypO&x zx7vc>r+t%+a&P>1Tr9S#NN1lsP;+uf7YAlF-`sTo1OZA_P#xPQf z#;^7qpLGe>z>KUx+|gV=z0ClWQZ5&jIYzb-rBtdffTZ@Q?O{aaI7v*B$y}V0)?hoyNEzal*XO{|f zN%TstyLxA^5&jH?Az-NAFkS?^yAd}t&cG3Qpa`kTfPB*cpHX2MhJI{!eDi{u}2TLJaId~G}awlL|8WC(K z&4jm`>2R&QYUs;UCIq%F0??F$I0uTdn>oJ-6ex6HFo3imi3`zZiqMv$_tH=gU@7W; ze)Zg`$mQHXybJ2i^gwz)X-_p6Y(kccUNPK(bf>@FlY6m!(#_Jg6G@`O05p&~2jM?B^F4W;RJp^d!b+-@5ww_a$SIdM zYh7s=Q?{YYT7g*HjymrZUw(>*X4tPvKyed&Wj0Wdw!U|o9&CfCWpg|K$)(Irw(u=r z`=7=C?bndI8QPjDB_-fkxg7hg1=anBEkUzYi|5F9OY9WGQe4lWumo5X3>4@_*_2Se|ntlZ1O)tpP8_IrI1 z=>C=+xYP7r`QOW1-v?4KY+We)y&2SRDYg>#)w5#M&@}%Ny!(^m&yC@?IoVX>9hCnb zNL_-tKBnU(EjG%HpUB*#xD{{@?CZ!m&0zVHqs4J~<8)<5ot>imw$O1K8?S0?WFRBoOtJZ%{x}}0d&iKA-1hX=-)R<;0iL;4wYU0_`$&W zA)g!v9S;T3I*QXVw;nNhjpt;x#p}N- zm%c3FVj28+9ll{)ns)?GIoZhHm2Ltk)-EB9#nh`u;?|E!k^=$zGs58ec>TwM?BANq zBg~2)p|OZ&w=nvH;6lBFIyp|Tu*5RkmWCrWD7~xfoXENme!U@bVDo_YGw{C*Dz8cK z>w+G~gr4!bk+waEeI01DpRh?2i4KQre;sTmp68QqdEMh|c9W{$rgYI|P9};6y3AOr z(bLm%^$Y#Ib01Wej?wqeWV?pk{Rh{0Y~(vN<^B{MKnKS^Jle@^)9P&1#Ia*%xpcs>AYcgeGxYxuV{|`kY>eO;}+jGQ<+RpFBSMubgjOzP2};d2oBS zq%L~!EK-YB@F?Cq#5~tK4`17A3uPPL_SiS1+~elkTRkMyV+>APyj}lVQu*~{d7k>X2O22nJiYZ# z{Xu!af}@pU=e9AOANLG=JF~X8KK$Op^dKm6PO~!DVlytvfc2bh#gX&pO+YL-xJg4ws(8FQMW^%z<2s7-Q08~2FQ!OW~6nba8TJ|zR zml4)iAKOy2daSnR^quaZ=s}PB7B_~4egsmf@lww41Ug;Voeq%N`DM_77Kv_yk6D*9 z4Ku%;U`kUe^YTUstZvC*p}?POxrCf(jNWyD|11Sq?dB|odEp!qH}nT!;j$3ByBB#M z&Z_q^iKW@K!3Y4#Tv(&K*J z05aeo=es$P?N@q_9RK)s$TARj*!4@Hx1!UbXVjhOcUy{b6vx1ldgz?K+hS`DG$Iyp z_iO)A00Fdv+o1Km0*Hrv*t8td+&_v{92j(1eDUrxa&f&|UCXX_p$>2!oe(}(X$VQT z4tmsIfB2{#BN z(Mc0FA?~T@k)sAV;2P^J;=ZjDE@0Uv%7d!W_R4|8^`L|@d$Z^oNg;zLeTYwS!Ryxc zlcNC1+(0fZ!pTF-!pQP|tr%~^@bgvgTWXF6^}&01w$OGv}` zz{Uvja8Dc6)aVP3`JNyylgLAp=qH2<1$V}5iH9GGNidpssU{f^txW?w{i=s>_u=9{ zF-rpKX1Cz^IzFGK z;pLYCbJgR)vgNsCn2gWFyFifCu|6T5I1-!B(N5%NT8g8o_EA^@nQoFh#mZV1V2KLI z0wW730+a(c7f8W5Gip)D)L!_76bc&*OM1giKzig!3&7HbN(+%UFK5 zM92cqZ-Hf~2Z>y`MVj!TsUqTLk(UH`tjHK(kSfSgLofxXNluqY56VpXc*WsAbHv#$ zMwkXat*fK4aRJo!+=6!G%zJWYC~q=1MOgH z141Gk9^a#a#FojV9Tla~0e_55*+SLzuaO;q8s3omX00b0-Vt5Crl)WC*3P?rGie-< zhG!RcONsiek4!qhhyx-+eTI2xt3}4+w>0U$Y0pVvv>@>%KO}t^N+&A4U7gz>$KRYR z)A3{{`#av<^5pL0+@FjA`4W^(q`nVHFC<_ecSjC^sU`-JVBz@U@jZ0YOvm>1%*G%Ut`KagcC(6p61XR^Bc_OouZi?0m zoWe!Dh-o>wdI>~mAVFDj!7bqVeep`9EplC%X~_TOmWc zCIhsmbL^ON3z`C>#TGm3{{K^2iN_dan{WNYmMx&Lh%sSddTIG!TJeTLfn4 z3K2>*DCHZ5J#7M6u8(@axnACdZ@kGvZ4BTNl+>v@jT< zkVOvGna~K|F-j;(qDc+ces{4+wTs?AeM57r(`&9rW zSu;T_PvQ;ucOB=U$(#9tivM9bCwHbA*omf|&|(Kj^;?%5?@g zj35~N_qX4Xz37}Y-mw>YR&p#BxlwT5_($W0a_e`FE0f2I@Oayb0D*RznxSi0^%hd^ z0LhCwc$a{k_&RXlQlwnxg|W3zlO3&Br+$Kl)>#~UHavH^8mKMKI)MZC?h^j|=id8U z)zmVq>nTkhGo3mOg-3+^pG>x1uu+<~mE!^AacaqMCw>@Dk{~`J2f(1X*I4l;y(nzr znkRZ)c8!yF{3tqmbZijE?W8cQpjNA5A+BA{IO$bHHYO*>rgI{S424Ds3*C zhar-W*esp2!3oRbJd+X)9?b`!4SzykomhbF=mbUpvcIql=W9adAVU0Kahr>&ptzZv zi}-%@Nxxg4Ofn9&r=_LcfGE>a8+gY|F;F@mTEtcdPCg;nr5blU$r&C zK$a!@>OHBUS|0wnR#bY@KPv8O2r-*Mj>OpX^1v55WRDh9>>=(C0f7GkG=MoDGi-C$ zdk>cipZ>S3f2ycJ62zQ``D|%#xn5 zAD|Zo+C9A+q69a*3;0Bk!BUs76pueqA zYU$^B=fk-3aenl^%P#1)hkdTNR=%Krk4(SUumonp(ze_ez89N#nh*{|h`0f6>h^uO z(kxF_0%gJ2w!!kDo+#>_gE&V@QwcnW5emayQev(?xuP85T!^-Rxv$Pu-7AyMcQGXJg^rN(A~q@RxtD8-#O4m?4Giz~vnR_ew;E4P(cn7NWe z?c%p*LliwQd`##64Do65Z%wh)aLnAIbj%#}%`9PlQlPePsfJmbfC&66sf`Q;U4HE@<_k1K*T@X-_PgZ6s|^y8nm0tMTJcSx z2pPvu%p$H45NQ7Q>0JMr$av|rk6@i+_Y9$N?ir|6xd2(`LkRYf5Fo53pqF>LXKv|O zpmbGgJtw@YGgFz`s6k?ceGBgEz{D8R)94OtFv6Zoz(2m^$kfEAP3+tFK!o|ZYhY>R zqdI=a9MTYX2~nPDu#N@97DQ}}#c02m@EQsBIm~d9z?gz3Rv1LmfDhY2*(*lf4-@mb=hDqx14U=cqxG5d^_CXU}U6JZCY|5 z;F{a8Pp~6S2L|FP3u%oIiHS+XNSpZxgI#{TgEC%MOl>ye5v*uW|+0Utt1>Bl7Y zaJg?$eDZ#qeI?E53v^BkY{rD8-AwAPJt@?xhi(fV=130+I&JG`yL2SSa!ZB48(QY5 z+yn$qisC72tr$;!-cVl;wDDLyA2dY$4n&cwGBhKJkq_-ScnT`P#6o1|yi zb01}3Yw0^I2hN~OK#Ps|cGEk&^+{>yH|u+rAA)P|*KwOOM1A{9Oy1r=zzK29M}g$k$(1z>?Mz>Fv5Ni!Rl|vVAUM@Xn}uA z+o#XWu7xM8^Gm!8vaGojv9tYvZ+&J50FoO%IA0o2>kdi`D@5*{si7yUonhvIpc|nh z*s=qhS7SxHHbq8ewy&iN+2AruK^i~9yEYS%OcCJI)F}~xd{i>s!SPkwtOdp;Q~^H? zM@`1&P`X|g=^@K3cR?imdATKnv8OP20R!wLZkyHGoo~Z!5jFr$ra5As`0lkcZ{CBi z%j&C2UwABf5KZ&|e_@m-y;F$;{c8hP5v3g0EdlzgSJPoj4tGbf2}6ZW?uM64(t;YT zHYYwgo@PETjhq;&j0l;m2sxpb8M z0!p(LuY-fen=phfepQSis!zc(V9)W@5d;cUOMG^6yH6j>Y`sbQ?qx7wh5h z`3S@L$VL5!hzl#*6%IyvDWH5yxh^({(E0rZ>_g;0_;!`J)J@ZH=5~r-f27Y*(fU-A zzHykQwKDMG=a11-e905O zf`BegQ%Agx3uU>!tWw~d*fOtXmG{?0E!seM}_GtPRQejnX&h%Z9w#ftads z5OMuEJ^=&aohvKsH{zZHpRq}yNT&AIoW2BUIB%@RZYMO7M$Sq%+yWO`bV($*dp>14 zvN`WTTb##YurxxT8ppE1-%Zhnr_Vb?UXUW5znooNy4`@s$p(}bs3PVa$nj?@SjPZaTt|k8CCI|$7pkWBz8l}sB3yD7p z>DP$OyaC=MBeEL_$yyeaMCOpMXov~_SzPht4gtmVwmyVKTt-z8SC_1a@Umi+pQ%?9 z`x<7G1R|Qg%(o|LvC9WF^NLhvB3Q~IIFX!!4W6dBnI9KE^Vqwm!Jid78z|}C;)&O3s3=h4*+das@;-IB7&8jNy!R~pp$4w;fccw7uNvUDx+uOWxlM^lS|3y(Eb=GU)ZW|pU z6htUVwHg%?7zXuC~?MadWwyo^x~THH>q0JAC8w4bJJAI@8{~#-rAQ z_HE<$OzYpe7Q9loH=c%dwY~8)t-arLpdDC`w>O@qM*X_!bdFZ<`@O}w?s}cQ-uO3f zref{-6};Zd+d)UR4&dAXL|O;QwVdH*9ERHY993em2w6n$70x ztfkj;;BE6rL4$Mtqw3&pcg|}(d%x}Cnobby?T*gbbbJS+>2r16R`269J=b?}O{dd2 z+m3hdaNMfXa%#Gmp8E>pbamiOTeo#>fAhdreQr(f(p;T(%aiMN>DsRCaUC}YnCo@H z*10!vy}k9VofcvHrqf(Iz3zgoUpXyzx8rtn?N--q<9xr_biKaootD$}aUD0VO*I z!0`X|yFg9PfZbYOo2&J0cV{oY?|9m*d++eIIma!~-kF}i;Q6kOAhw zSS~NI247xW-7ffx1>=J>;C$ONUFTZkuAb{!dQNX`9jgNZ;#e%-jKyMS!+D;yw$)jy z%xiP+zVw{g{2gPM=XvV|K<-kYV6JZMtCr4{g~;Tt693PAxoi6W^UQ_kpKF5NZO>7$ z;hK(Zd*|ulnr>@n?>u}5qiyZ9ZT+TY@Ay~W+G%2Xj#_K&#Pr+^p4F(jpcbcYZ7+C> z+tja(m)AS4ch}n67Sz&t1O<9+YtggTHay<#wYS{HyYv-qt7+vp;8sr8UA38tRcFWa z+|~SGYtA2R%`1>+3Ep&$#m@CwUF$PAN9(#$ zuxoXDrb6RD-@N`&C7Y;C0muL74<9}Lqdd0tcuUt-eSG6~;MS(?y!HNeg9Gcdyi2of z>n%OEt-CmGx2?5wcU#+8XEXo*H*N=3spV?hTBoUYdA+Uea$HTP@hv{rGuHO518p6P zodNAG9jzr9&_~u=k+a5C84_i-v-s-|K*pV3jDVFrK{Jv zo2AElwK}anJ?lC3DyX%0nTc%Uf7Y6-x>nt#^&PivYgsM;y+A_0@c&deIG7IM4|TW`&J81Ht==5dzx*4!Ns-`c_Wj0cMGw3%8H+Ik(B(=_01Yj1nj znyJ`3EPAK6-m7^Bf3dD+>e?G1(VDcAtJB;qPB#Eb9x%j5&(RwBh>U#HMLwz`9|@6< zfE+!3@fi!j6&8Yd)zxb?$V7{8Q^!cx^-s0M$5Asp>>YDGjUCnDeuL-X=ev5b6 zXpy?zR=sT0ed@NBjn4j`x|P?mkpS6fmIcHS(B=P!gy6^mI?PovpI>AFWB)-yLvnyE z|DRp@f4P_b>B<3ES|fX)BwdA+rD)oJdQEF`5`y^8lO zZ`PaF+q=HQ^O}Mf&k*m=&%+CKke|n=t<}vncgNCgy8c?{=H{BayUkRrtJyj?XPvEc zb8<74=H59td+m1VtM(4G^*YyH1+})|*XHheodtjOYdxmFb$-3UTRVG$w{}(vXpid1 z@&AF>LA@T_^?Gm&Xz%#lrN=jJ2j*MtwFckyU>C=~dflb<>vga7ZA}Qi>en5Ne{20; z$~k>0=h90#3A~i^=%t(iUdkCA*KxO<<@04rPs+zHOy^-<)UK^NjOSUdPIIMv$lU&; z*9y@;ulFtL*EbZUu-`WKx~-#p6W;W@ExNbcZU0d{J?~%0PE@Uq;zjSQ5`-p&$k^50 z_SNgPZ~Gcp=U(sIf0S+xz>r)V+?!i8!vC1puHQJ_f3z*HZ);lMAl;VNc7cOvw>_tK z>N=h+jmzyi-QC6Yo!9%@O@HsAY~Q-uP80Gn=Jf?8-oE8%TN;-GLDvPt|JU8^J(=15AvNOdTc7{vT2w8!(*kQc9k=_BrlHkdnyx0a@4jO^wEyTC zga>A2|4|43(I>R^XthCgt z5&{R__V`KN^}hW_wY*@j9bKT;f!{G+PV4Q_EP4lf_q+a%@#;X@PP~2VL?WiWQLO(f z+p8d&z^l`H|4{^6`hfN}@KGy!j~4ik&Q(;=sa?n2>TZ_)k4o)2?)D#z`rQ_@MWKY4 z)LUHbOXqkD;+*L@wa&kBrm{3B2oBqGMW6noPSNNC7<=>O+ps!KeR|WR=UptUE1jll zVO?F-URtkK*`iHRrs&f4wgvyAO3|eM|0n@^r`O5|1&Kz321qr-IoWN0^%{`Q!!;d_ z=f+K#|5w{?(K5mRZ^zwfyDuHS6Vr2FoO|1IdyeOMo#S@5_M+Lz&0U&`HveJ&u=*Fg z*VHd~ul23^#%Hv-uG{S7sNB8F3&D)`?dp3Sct__mZr9tlZJoc}VtS5>y=^(RIsK-= zbiLQ(dW&nfbQ^35!m{vxE^V&P(rrs>S@d6PZ+we~CeQz0b-MtXF~6hXQLXCLDjxOg zrD*W}savX`7QE{-ng;&{=DD=FIqt#?I70D%(um zsrrp~vtWEX*I6)Hm#Txm^qiGd7r1e|5&>So_Ud$4jZy{W{yF`v^KZ3EdH4E!-PQ^e z%-e2l>v~Q{29HeFKbg1jokzDzYsYx^TW`H!y{-op)O$gHNI_$s#teCNIxH1q`EwQD z+5R8S%ZUz%a*8?dA1$->ycWD|xxu>*)1>Mc(97D%UonZpJQ zB^WMXs(_)Q_18DYKtY3Z{_FdX3iyu(_>UI-N25_G80`NC(rL4UKsr0ybaejT`qD2r z^se*^*>`Q)3lc9nB+urmmtE@ROYedP=c36a=aSVD)aji|=W4;! zhyI(*f2gLLe`uS`e<+(Z|4=oU|Io`c|4>Ub&@*QKp=B!np_G&VP%>lwp<=@PL&1Fc zhkEJq59PAuAF3tGKNO4PKlF-~e`pmd|IjH?{-IHz{6n8O`G+=P@(*32nAA^*@IK>neRj{ndfKK`LSc>F_m==g``!0`{gVdEcKqwya~W5z#J zMvQ+bBaDCO3m5;;7A*duD;EEuDpLGIQ7HaH6Hoj@O_cbDk{Iz16%pbe3gW{*)I*1V zD2EOIPz@RWp@@h7P{YE1CUkHSBcZ^A!xPwyX^hxZS?v;IRR*!@H6=>DN| za{tgcxPR!I+dniy+dq_T?H{U^_76on`-eh!@DDXB`-eKH{zDs({X-dy{X@mV{-I!B z|4^^4e<&CAAG)RW4_%P;55>Crhbl<$4@Gd`A8NqrA6j7khgMPjL#L$vp;1u((5VcS zKK(W{JufZ1r@ov^8wDT;z-(i}oQ^VnKUF!|z>K`_2Y_3-Suv>Gr)_M(Y=`LO8 zHXzmw+oib=zQV@5ytvBds;$>qYIfGFxy~DR?VQecJDY#$IXZ0LjHZM4I@jLgT99oH z&Dy5dI+#wcZ+cr(@vL^c9b4-_+K$a`$89iRt>^8#EvDz{?)GiQ>eZ@V>$@FTcXfJO zgXggpSc|1o|FD2{cP(dkX>V@Vf%F&aYTk8Pnxiosm;?L&*ezYV-C?CUw8mYoUgvF6 z9De?{HyE$ti1AOY>7+QMq&SMC6|{yv|A##PhXDN#{rUePKaT_6Z*Do;uBGp`wf#kV zvqPKjwq3{Fs93BktnRJ%?ClNCe#dz8UCX5fg0p#fRQDpU^ z^L?hy*uT1)?K6O#by}aBsW%-+Z>joi>-B!c3gWojOvS3d z9CeHDc>bOLu)CP8TAj7#T5YC|zcWtNsa`Nx>kF=DKpbthXPX|RYwkSAmWTDV*}zP_ z!QNfLUS97CY}~GMn~?6(bT)sRsbDh|Z>E0D)S2ovSG!$YyVc(KJ!@_4nYQz+EUkUx zJAUKdtgM+%p@l;6ABEhbDDsk2+!f1SvFQI3sa(5soyhe{l>h$(kFFEkJB(MWT_qEuvkQ zMr`{3LnPNjy!Sf9G+Z?Fd&2{L3Yips3)kMh<`_8tzc4gDhVRd2GuG9O+Ze9A2+=&D z3oj|5Twt~8MR@f8<1PO`RvdR25034$uJ*egtj9D+Y(Dr7=)|Zb)(LvS&zoZ2;iL(gG@qmTveQgZQMJVB}zw4~k9+I|8YtDKUPcdh^Lk zA%kHZN`aatxmrXiDe_XHMT|wKL>7l;jFuEC;jw8rk|qio6JsX?+#=*roqFi4K`@!$ z38~yt0mYX!j$(3z5kwAYQw954EP_Gj!PE1SlYD;*rysVtJ&h()wmn z#+D(`X_&+akYo;Mb_v8G#|FVNLXv?OCBQ%#B&m5TL4HJlBiE#b$O&!hKxTT@r;o)n z^K#07hMcI21Ol!o#&Qge6{J-jKxh^{;3~lf+<^d82(S#MB0FcDz!C{mk6gre#oGqC z(W-U$U6G)`otFh$lrXZPk_0?5<46hKgNKwoPu`@RVKO`Wl5!=Fhb#fcW*FGPf<-=3 zgrJY@>?k8qX;+0#nFA^UkaczwZY3iiUABB|EpSU%z6?phU@gmzxwAk}HmZ=Mg=?03 zsyKN{m{B}X1E(X*RG*&HKG;{7gBy9`g$%n7OMFgTxL7*3H0cZDS;&g_RHyGu3ZU?q zZoq|-E9B;l)Q_(uJWE#WB?*Bxmj{l}(>@b8!pIhGV}Tw(Fp^DXC_QDU5D175J?mhMRht^*;N&+CK7o;!RL!!7O+(z4eD|@f#FBCWO5~s zk&df8i|9ro6%9$1(}GSrNQp#FK#C}lcZNy8VlRhCx`Uv#L@*lOykQSDGgwL z1a^_SGo%GlK4F4h6s?W6C$uO_QXro;QJBFPSsFG$E^nq!GGI6X@RkP!aK&lTN)+u? ziY>_7A<9SF8j>?|;tNa|DE*i-a};obaPWvApe2HnjVGr!Q;A|SqHTl--Z_!a7)3E^ zw|D>yxzUjNaP>$-iHi~%Rh3lDnn&#gF=e_O1ZO7{wGK-&eG{0_xp}#QgKZN^&y%DT zc6X?8=raJ4nApoEm1$w&&)VYeZt7~yT_3#}P6RyH^6W4R+mWe5ZSLu^LEQmj;RWVM z0~pIhH8;YD^pbW%%S)>rU<_o9=S05)izXB@^7P_Js3NFG=0?bnW69LWkPk;43C674 zsjz_$>m@5mNeY}Fnv`qG_An@g(P+TX^aPeePYo9{TD*K@$cU*?W*P|z9N93*0D=!zav<`-1B;R{UmTHS4^T#UCvIR_VFiQ* zq64K8l@9C)EFyAC{Oni)_6G21l1Txe31$f3dJ1`v`3sklQK_9jc#?{^J7>fQI6JYY zglLKmA>0@wRCQ8Z+45z`93CQ;B9Cq=c$o5*Fu@eU!$jywvvnf|xhfZAIm!Txf`0s% zsoQdYTM+WMCl)lmbTrd7mdWa!8Tb zAbVg7#13h}RA;2l2qYy+ue!T9Y>fM}s}v^B$lH^g=Zz~WvMD2+5IwcUF>odd)6D1& z0xNmE-VkRhbI1v!)J>ouycc5vl`U9AU?3y_rz>1T^0qkKdJI#$UW*?U6d0<>UNup96IN2y=V-=4Y{(y<5+c(*2FUQ(@zp}^ z&y*=hAz0U>29vc2F5(QuDZV?3bf#yT+~PjtNTKl|?0^tl46D&PrBLBhN0A7DQMS;K z5Za3ZtAy-vVuzig4H@4(PEit&fvF3Ou{&i1upq@5BliN14ndZu+oPDI}AsJ9O6J@+LQ8v$B7*lCZw3NcBxCyL*6QKwnRk28XY5;J2b4} zyrXI`CrK-`VUe|U0Vdn$$X#LsDFBJF&d|)^M84E#x;YN1`EoH1mI z1C}}?VI0G90GgE%4*2l5l>dPVqxPdw^Xi6ei<|C8ilnElZ43($1sGgXLZG17DHVoD zi%Jnp7T6vrxe)LYW3U7u$P7(AC&mJJbYNl~Mp1j}!1$rY0>&UXUqu&SX)dUcLLi0v zHmE^LeFW*`Y;r&!r4}zVY{5~QA}ZkAv*|%{iIXRyn(=nUHI1D)VK#PD;Y1Z)mZ5B- zBu6zTidDS;<(*A%I9`{hOL z+S=0ATU_mNIzZ0W!E``|=>Wm$0Jxvc%I3L>#d_&==^Z)wpBh2=r*3PVo*I3pM)OpF z4$e*m_?Wj}U|<3F|L6Twz*MJat$Mso)6urIx8C1&doO^B07XSgt($NzV6JiDzQgpGmAZu+Z>>+LPX zBke)pZRDo+#tW16lW zqXGJ{@s3u5d3 zEdC*~yIh^_-r?i!{Z?z~?_H;kzw2*Zz0-TQi}v+y>;L@=NT=IzVtXtGU;kN67zNz3PH=U4q2_U%y|vTE%lk?5nPGE}kH* z)z)!iVqY}(ZcOY8598H>bT{n_EKFOyz{0e(3oJ}q8+?UnE7@0=wleq%)7G)CFl`n4 z3e(oGuP|)|`wG+6udgs|?fMGS)&^c-+DhgXrmYOT!nAeFD@ z^~))SNR5wbrkk9RBrLukCP6#|fd%kgro%=d4Z@9XvW$!p7)?km*>r>b#5N z*__T3R-IqffpmR0XU80-L0)`Ufu4)l=FH{#r%Qk;p{S!rK`zK;sBT`HICqg^>CxYH!P^r-oGxd*#Q~2?}}GYr@hxefnHFj z@w(f$tJeG0#qlovrtg2PlHvagkbQZ9s|5I3U!%3UJy+LlZvMA*J!s2Kk+-&*mtL3N zkGoy8E^hq-18emjJRln@`vS|GwaCC_VPoKWi)$a;;c4qZZ5_qMx7N43_%=k8H#thz zZ|lH&{^D8`FGCsgA4qorXS})Q?qHm+@LB=Nf&VXR7u9Q!Ev?RqcZUu7ARa+_POYihL*?H!X;^ies^qeX$xssO@ z{XYPrA$49J!sg{6WnLcg<*H~3Ht?$V#?oIlkkf2te#sV?KE zI^a)rwx8-<|6gDXYFdC$?qx!=mkGgMCcJu?aO!13r`O&Y@PVEf_{EueoljC__Uw0kn@~N|@j-EPq>fGV1lgAFH9Xxh8>)f$ZhqI0y z&N_7F$cY2z&8Ft2=BDPRrlw{Q0skMa@0rL9B8xK-3q@3ZTxHRHa53$tFOJ!Rx`FsV|z&bdwJ0LF&_ErUOR4p>FE3$pSN@x{?&o_ zV0*3W^=4QO75`r2S};fUqn4JImS}KTdHt)-(*MyjXX@MT0s_|6Ui@y0;}N=DG(E?6 zoB9B+Z2N|#^LhtF%W=S3$8X#g*L2u?&cir$yS3{u+Fk274X#GA|Hh?8A{v@BF6XOx zuFijRwU2A-3yl(C{(mlNX0lqHLE?X|-s$bO9bL4{w%&2N7*n>lEvTi#^PCMVA&kq_ zJH3YE5v(}i{Wjij+}^j{+HTv5$K5>7TkmgVUtVGS&TFzSuP}b^IG%rX>00;d(zV{z zrE7g_r)g_FovQ`odMqNmKCT5jhf~TM!f*v$ERi zf&sl>+I!>J9YI%@7xw#|skPVMxAmR(9pi1kU_l(0dy{k1O-TM+4Kp#}n%CD#O5MVY z?|Xf>*LV8ccCYW`5rqFTh)57yy-m++J8HK}Z|_=1^VYjf+kpC)4(s|G8a-bT@er$r zRSqMmd#z*Vah5JhnEOA}oqQ&SRO*}7(~>M2G2DKA)B0`y04x4`ZW=cI&o`Yl{2xkV zIdu6$ibF6kSUwvbhA4M?y}`F$=ie_K*1vREzmDl|S9{gRwLCaM9xRi=Xrg4s{0|i^ z#emvV%t7T1YB``aLy%&@odC7QEdWVG_kZBZ>J1bq;AQpl3W|PidFkhnmwq** zflGjmq$j^ZC;@74L(Fqyx^i&-|8EV+!6Ru3dB#Ly#2M4HQc~$kA0Y%TCFdqE7L-7xpTL*;sqj)ic`x-t_fkJ>OGX2VI@!FmbIMCQiM+J4#!EX{ytH$~ zOFI!?+R1%sC-$YC){n~H#_#v*!0*{yt#=xn{T9jimT@hJyZE^(<63`HxhLFGKUck* zvKR8_s@LuRyP1#U`8D@?3$NWK!OCys3X=WLRl)zO)yo#f{LfX{f(r}VabC+7x;}7o zuF7`fT;+a*EL0Ek4?)FIh-kuu)!gAjWwl~mx2MVoKV153pE1q z{i$M-wy9GsqTv79(9sNpflH36#0~i`&IK4;lW|8{`oulT-woqTCKS{>Nn_)CV=KTO zlL;}Z9g84Pf!feP*)YO;S>=}Zq`7y9;>DdA$UtpPplQ^HILVTh9glbHtSMqdx@dyt zZDG$$Rypa@!D&x?9+QUF4$Kw)kaO{dmBq-G!p^kO8(l*$H6=I$PU?e8(9o1&k1P^u zM-yial>sVBpoJv?I&S>|nZl;dW(>+6X3q!84AX5zW|xMWGe38D(2NI~KIfuo?DX77 z;IiVx9H=!MlC*ro#OY!rXcyM<=hz-tU3cDz)>B-tl037BLSof5|2X~YIL3e_-z`Q&B{nr8YTH` zFqJK8iE|W1YD+DN0|6w$%P=7a!xQsVuzloWZgAS;f*yH^j=U(ZOEb0)Cd7_PZp_21!4?LOPft> zAJZ*>*POW~?-ZWf?GHR|dhyhDHWVV%Cslz*m!`X5j{j6;6)$!M1VHGzY1J{n2?-7S>{g z)}&%edVr-z$`BHBuyo>JH08(yrk(`q$k@DGgGP!Rha*Qka!pzE1kyQ(n?e}B+(}L; zHPo)S1~94s=RQ%!0VQ8Jea@;k4z`Oso>A%ahS){?Y_aQ~GMz zE?|0KqD7E0sI#QME>W64#E7Y~6e4J&wP%YPK!#7&I%u$R4M1_GnxruEz#@y%89Yx# z+B7{wWVYbp#oz}SDHT*BkX+EY(7aD{4R;(vJfV^A&OCkyxY()p1fAgYF1Se#NA z$4Eg3DqW25jF?ITVgm#X>ROr{HL7gdtYImaL}UXw1OVDdn3IeIb0)=-k^p~KzEd%d z><_97klxa!_JFgMMY4+%l6YdJF-!v>?en+!=tpPCbj5Rtybbfhv?ZOhXK0j3K#W&* z{ANlSDj+3*+@T#CrxG@0B%rB*Lyls^g6_XR`68PEskA*!`m&JrLnJ zQ6)$q02besILsAxQ_&HU%&ArGRRW|zfDB;}Y7K5&nQDqU;e=}EN|lRNSL})rvdp9> zBP|o6bh!kG;9L-0fHg8@a`_{Q*f`U&M~1b@A6z(_T1@rAvaY~^qw@@w3>Ya$601>~ zlGj~=AK238OkG(OR9}!0XdYpe!x|Ctq>!;+PEIiT46S7uxX=*&LwlS?NlN3SVoXNV z^)U=84Qv7=3<^*k37mf_1j6v)CQ*jVaCT~e;EVz;#4jvl6L8EsSu!ZG9a-byi3>em zD~}205{m$%Y&`iwCQzT%o0*!)HHSLoQ`D9nN-vxuiMEhGHfyZ0QjkeGNKHzAG&oFQ zk^~NjMJYKFOm9gdvo6Afxsqs^L&?((8{jdED54(0;I1w`BDo}`fsduyj<-D&Sxv4k ztu&DGW0zRbz=%hQsPGD;uSqFVs**{|D`g)h3$H#dNMYkHk&yh6NkdCR$#a^gpo@$- zQ;vIE)dh|1n?*f&M}}B1NSk1RktCc>f$;HXd85Uc?2_jaqy~Q?z=feR|!gcB8Zrs}FGaE@;bs3C-YN?mdw|4ho66{heA zaiSpkwu6EmAFeb^Z!$Bb;8}BPtjcj?OHqPI6`C6N5E3uiS7bf{v?M#PHFjn^RPYHzRltjc17T3pHx{OV&g4A# zWD(}%;si=00Pk|4WX%lkpmRh~0!IHx2WC?ye^Rv2~-K*CE= zR0Qfwk`o+8{JA0@1SO z>YdtnHP(>Km4xZ?gaF^1U#WwFB9M)Jl00yv>A?3P!%IbT$iV}%GQdoYZB!4A|0lsC zoN9hEE?|JPgQBqeSE^%$&x>K42|$WxL;Kmk6p_h2vZR>JR*@HtO8);zkC+N(BR0|r zR)ivwe|{K1P2KR(g4e*W@&Bi^SazoP;dt^Ri5^6p7lN9km7U#Y~2!PA}tmjS*X4lSb!P<~A$==f zF|dywn2a(~ld<0);*lXmV98Y3K?u zEps9BvqO;PS<_>lBVPc*l90&Kx)M@cgc7Tb%gBJ7w}h^!f!mWIiPKATj!X)u%*i!% z?3{v3i6cv#O~}NeFpG-f4WyF{+w)M_s5E8F05gM>pq>O_PfVy#DR#wZa|X3&!)>YY zI{!~`ssCR}+2Q}0mcINyRfi1!vW5R=3i1C{Xa7k{Kb}fV={i0MFrhOptb>ah(mXU= zc_L8K(GrBgjG!D&vP>=`B&Js4GQ@-)0RnWcR;Z|$)Sy!Jgf_+bBZZhZ ze2(PMA(%x>K@^y}I~fj<3C@w26lEgif>QQ!8x;_F0t<+-g(0y{5Kc>4m=T%C-ofx@ zkBSGi@Mct&;nCZ7Nf0PDkC8eS^VTH!IicXu4S4R`MGi#>sYoDB4ZMcDz%Dg%3A&7g zV}Q*R3dG@5ASBYaPush(bv$#KvePIuOhH9VI4b+ ztV}m0V8tb|(gf}d%L+xiE=ZERzLI#slNzJr8hR3bX#i_7L*%Mq8BkjzB%`qMNr4Pg zxy!UWJl!TU9M;ev(Rp)O)hJ!s9;asCn#Z8y`5Jql-L?fgxiL z3!Qd9Ua18=x3nZxIRVjC|jVkJMa)|r(7;9bd}nM4RuMo;1y4D9$Qh5_@Y2?ZDu z8ziZxDpe4Ofr&n7`63a+FoID!;ee3=nthumtsiAeUlVt-`X^I!qbB2=^G$NQp z-DXxF^upfw%%F@9#5gWcI^af3g&xdDN-G955Us^AI^9)L`rw&RX6}e1{pM6b0~D4W zMUHfF5vYNn#h8(T5vwF8MPICkQ#O?&hmJw=5Hd}3NDKu|;h-YcrovuOg*0$bS97Xl zXfr^MT7^hCQH-pxOyXN){3c!{fs67g(z!I{qY3YnB1hzoW{eu2GatPiPE!(nzAi6= z)ZmcCu!ooy9fc}7dmyx+WE7FvWQu7+nC4{C!>8%QO_VX}o-Zx05i-W)J3?q6jTbm5 zDdOaa*_<^FRa}0AP;MqNdtiao1Gp=2Fd4qsV&|Oz_OqjVUn7$DAK z=Eqc%4_vZjWiGU7!RO1QCknkK7W>(s7KA3(p`SG$DiBUe%arVPCN}1u3P~6h?3t37 zGIGL!B2EXs>KHf34jvkGmJ-bQa0cw_2$gJ55CbwbJx@Y-Y@!GhsE#DmfaW2JcSp)k zjFl0@KoG3T6hPr70vxK65&(LL5C{YUdHbK%yNlF}7G~p`ym#q+q_Av!>Hg;}EEinOFpvY1bxqbA{rYG21|U z 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

I_ zi|8?ezMIg~ZYI%-FOXylbucs>;1b&!aE+eElB*hR)ulDl=9Q0YzztZ9DTF#WsFBP# zQpM&yOU*jg1?5aG=n3v#^Feq{maOc4SZo4jwrQ-XL>I1=bVwdCo~Ue$I5X zjA60x5O`USSQo(5+Y;{ZQ#Jg1L|^H&44e68h?mHYseDGepk8KfBnywsJd2}A&#A=NqRim+KY%9gTm@3>GiC5`gp}EMb zgb0Z$WF?-^y8nhFbBEC^(rGqTmM3oVpK0aUbEZ2a&Vzz|qGF$c$DJgg_XxLYr5d>rB@%M)XhW>z% zuC+lj=Fe6dwTs2^rqMxfDDTH8w!sSYC{`R&$th?oQ`oVa~uKTyGa2FSo}q^o}3 z$X=;h3i+;2@bGozX7uGta}$^FD+YsJ!6A~u-UIoB1`2@ZkgS0;$f9bqUFq4lp`x7U zjIb8Q3?u8Zf^##dV&+_Qh{43sM|Xh`hYf�K34zt_8CIF9z=a`O$3Yl*P7p5adAc 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

#3*2{@il$`A_VEYgsfMM=7WO*9{6#I%O=a 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

  • >K}ondB))15!4&_i}9Q-{Ffq#YKmK*_DD0)8>7cX%q2M-=O z?!(ddLhYh4__V|DDn7w%$x~7&P+V|!ZjpIuUraG=!~#0ObHtyxbh-4`t*>LTURW(K zpRSrAJDtB+hyj~&uM|3mN_=GoO@^nyw@r|8r$Cm!rI2tAIpdZ3DUGu&tKG34D+l)S z6#pDKf!!o;$Uu+fO~5pZXGN*Hbx9dFjhoO?_~^x|-hcL=EnU)JVM?jfD2>Ah$E8oI zZ;uZbDKCX@H+PR2grY8m846t$mi>ijGtCjYFbYxJ0cwI{JrNj62jbMlq4{M(DBoKh z+NGNe)n?~jp6nw6xOk~kxp8g5EnzGiz9*3|x=N^prHC&~q)j^aX76t#XGxWYG@@a^ zEh0o|F?_%a;xL_bOecy+guLu*{9{&nNJgiX{!IO@7*v_x|I-&2b}Pvb&9_Mt8pcDf znwK9_;328-G~tq2AnV&qn%Yl^G`s_e6GG>+nHT^dCq;==A2?ZWCczP-fV4}=JzxVx zo=U__59_T3Gu-*OqKLD}v4`@&AUtqy`#DMCjDas|TMfsv0$L%f%+^d_fcHRnm{PKA zX*$KeIvB#yuQe!YiSU6fWRj%{7MG}N@%ij8m94 ag$N02q4}iF2G@onCNzxqHRo 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

    V?W3+S>c7t2jg^ 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�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 z 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⪙qF{L8I6Z;8o$<;1Yf4O(+9BXh1L& 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�|M&NZt&lyH-v&`>1WzS$lSK2fk+Mh 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 z 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

    3xsscljZIzPzJ(JL@t1 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�spjUJ0{T4kpnHFg*v$s6R3Shw) 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%0A{i_I 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 Xz+ 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 SnaB&VxpHUYMX&Nls-3{t)smt!o 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

    M$mIBi~Y*-MO?DqE2cH3uR79=9u`Wnc`hk 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

    n!~UW(rX)>x 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%0AmGA*-SR$pjHDQc9p(4^ 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­g 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%0DEP9AD)$sS{HF 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

    ))#j3Iv=6Hsgi`%!0k0zX>67Zz)qs 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 z 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𝔚-u(<(>TT97UXDOn4}=f>+9qb{ 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%0DQ?{ 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 z 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

    I_ zi|8?ezMIg~ZYI%-FOXylbucs>;1b&!aE+eElB*hR)ulDl=9Q0YzztZ9DTF#WsFBP# zQpM&yOU*jg1?5aG=n3v#^Feq{maOc4SZo4jwrQ-XL>I1=bVwdCo~Ue$I5X zjA60x5O`USSQo(5+Y;{ZQ#Jg1L|^H&44e68h?mHYseDGepk8KfBnywsJd2}A&#A=NqRim+KY%9gTm@3>GiC5`gp}EMb zgb0Z$WF?-^y8nhFbBEC^(rGqTmM3oVpK0aUbEZ2a&Vzz|qGF$c$DJgg_XxLYr5d>rB@%M)XhW>z% zuC+lj=Fe6dwTs2^rqMxfDDTH8w!sSYC{`R&$th?oQ`oVa~uKTyGa2FSo}q^o}3 z$X=;h3i+;2@bGozX7uGta}$^FD+YsJ!6A~u-UIoB1`2@ZkgS0;$f9bqUFq4lp`x7U zjIb8Q3?u8Zf^##dV&+_Qh{43sM|Xh`hYf�K34zt_8CIF9z=a`O$3Yl*P7p5adAc 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

    #3*2{@il$`A_VEYgsfMM=7WO*9{6#I%O=a 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⋧{Z|< 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

  • >K}ondB))15!4&_i}9Q-{Ffq#YKmK*_DD0)8>7cX%q2M-=O z?!(ddLhYh4__V|DDn7w%$x~7&P+V|!ZjpIuUraG=!~#0ObHtyxbh-4`t*>LTURW(K zpRSrAJDtB+hyj~&uM|3mN_=GoO@^nyw@r|8r$Cm!rI2tAIpdZ3DUGu&tKG34D+l)S z6#pDKf!!o;$Uu+fO~5pZXGN*Hbx9dFjhoO?_~^x|-hcL=EnU)JVM?jfD2>Ah$E8oI zZ;uZbDKCX@H+PR2grY8m846t$mi>ijGtCjYFbYxJ0cwI{JrNj62jbMlq4{M(DBoKh z+NGNe)n?~jp6nw6xOk~kxp8g5EnzGiz9*3|x=N^prHC&~q)j^aX76t#XGxWYG@@a^ zEh0o|F?_%a;xL_bOecy+guLu*{9{&nNJgiX{!IO@7*v_x|I-&2b}Pvb&9_Mt8pcDf znwK9_;328-G~tq2AnV&qn%Yl^G`s_e6GG>+nHT^dCq;==A2?ZWCczP-fV4}=JzxVx zo=U__59_T3Gu-*OqKLD}v4`@&AUtqy`#DMCjDas|TMfsv0$L%f%+^d_fcHRnm{PKA zX*$KeIvB#yuQe!YiSU6fWRj%{7MG}N@%ij8m94 ag$N02q4}iF2G@onCNzxqHRo z<;hF=_*(3f6vs%f?d9vMRB2_`O)xpVUcKP;>ga{*mDhY7Ban}qwe>oJl{hnJYwA@I z^G6r%+HduuCjj!sa7QBKw9^aFtBw*Am8I=MV5w}zH*Y2epXuI(=4OWv16lLtu#i6F zA>m=*Hxu1=xNj@_Gz$+@EMks&_~-x`CKp(G3_Uz#bRaEt_7*5awSviGY~KhYU1;y;S7$!wJ{0@9rDgf)TTVcivK20XMgv26~73lB^BFY37^ zZ$?dl`ok6G46Q)?XFF^kMu1A66Bzj=4si|-pf8F)9P#GpG3lbnKP`zqdf_j}KC)eE z6&`;IIF+0C1;&3ENMk~L>e&<>Q15VQt1(T6y62Ka_@c>6X`YfB+#*Yw{07y`fEJp? zjXoc>05MS(wPXyemP;Yeeb4-yf~=AXdnTjsH505d!Zj(UBa25+%#nm!Phx`k!^ra~ z$;%-tM=CHomEGhBRRFt&W)mV9KeoE8V;=wsYSoi_#-_2Mtgtolbu2E&-_O2$09Zwvg<6~C&uUg5eC<}n1UT_DX8!ZeOiD)>+ zq^@fmOaI&?L?L9$v2b{#nbK^xo^x{lgiDbA8SrR3T(+cuUM6h~plA*2h|#QSs!c|9 zh~;ay2Z4s3E+AmNDGOjd8_b0&X75AE>J8jtlxda~Yq?x^18%@)(_3wJo2be{e87Vt zr~H?e${;L;xoE7674p<6$td?Kr6#4&Vr223wZ3HK+Q-#uk5|?vVoF}(9&%AJAS}Ia+ltB z8%~C)TBOe~3B#TtmI|Tm+|NIuzbMA;M`%wJK*OG(%?8%!omX`ud#<~4L&-lA_9-a? zpD8hW7Qv^7ICx;tmZT`#7>$uttN4`zre)@h<8=vcV^eap zJpq}->rjBviJ0_02cY%3TL0lv*61yb=v8o5}zubPy z{72zj?^n)#p08zkBg|7A=UtZug#x|ZWcsznX}T~P)yF5T`%ET!b|T7}Fw>!CR5m~a zdpvW&rS$x@rn5L=4j@#~^E*=IaV?d0gZzA|WG4O?+i)R*l@F|RLN|zeACOlvHP|Os zRQX5=(8a*m4Dg7&*y}?T3T%%@<_>3$#xkv>JEHGvLk}j&*;jcTnQCUO9`}o(DBAWO z2q;ceWo}?lE|zddKJ?Pq^R8q&a;3mwq_R+!TLteKZc$F_TLDIpk7yx_ayl*4l~~gR z(E5RZp(GCk>(>(ut()=qW)@qeF*7}^uBuX6n3+j2gM=KaIwvV>F7?lbs{2(esG{Xz zwL*rK-J*X?Ab6Mg2WmvpFhAf8laHcd*Vv;xk$5K!YNIDeeS{mSjm1ExMHp-#f6z;e zAOX&ZO@_dqM3vhkX<#H9x%YBvHhCzb+SDHN+2oDxvn^pZ7o55K1rFQDZUyfYvpP6=OB6*C}4 zIt^hrpRyLu4DOiOjDfY1He`Oq!9~Cl&9Q&_BHfAZxx=Vo{s(K&<}eRQ0{gX~>J&=I zx0c>1=H3_wbGQqmBGItr>P9GnFgk#z@UK};2Oqp;OUCmxeQvpAyY8UXq>@f%X4Gk; z@9QArtzVi*EE!!_*P0#{=FeJalrBaZFs{)hm5%}x3*-z)cO9M}0(E>d0>lG(Kf!Ea zWvm(vJj-2zD}t7}eOTD~y8Ip4F-=G)KeAdrF6{I)A>)y)7l!xhEY&ocd=At8;f zM<$fvI9cMYl(Q2}!Jf7iI!VR~JsaXnuDEskALq(MN5es{4{55j^Pb|?1?2`yTm{x` z@f`UO9>$DnknxE!1Ms!TX}`Uxm07j=k1l9ga55rho50BGe;WD^f}+iPXZDG;)jj>T z(#TmyL~Mur;AtMALY25r1Z{jXK;e5D7|GgdtYY`2jFw1S9AKU+!s~+a0Y$S;#j$!{ zRd?W+IJR_q0=a0_mIQL)J6BPy=2NYUj<+i}em_kkcxnE&N&zSzoK&m#(>VFil`CS* za6L#_`NWe>WHa|Lvz~|{F8NK;pUl!gLIUA*gQYiu22*qk79kt=x9BAFY8z{=YYa}S z&COKX5Ld&C(|B~7;cA4vH)!hV5YgnwiPFuUFj>jc7*1nHQ=(rdsgqhcd?@%8$+OCXoVLr+*&q?JuFX zf};Z<%w)v9ov&@&s!>g~4N#w!yNHwXn>bpJ4LS@+|(j1lrzvs!9Zh`P_`M& zSlH{UqOr>yy<7xb@~XBeFr=ubHp)yl9;IW%c@n8)3lxV&2ps?t;TkD0vpk?QL=uKZ zA8HiHrw72q9A3TkBjt*-tI3n3MrOMKdP(N^s{)oZK^Er#I7X!PGvs5J*b}YR35%G( zPj6M_s7*sfdpRM~`L-PUu_sKDJ>b8Hz+ib4SY$?gJX9QH$yb5~QqkC%Q_jaKxQy23 z#st{}VQ2Xv1w|q<+Ug?s+QoC_=uEpq{K$)_0dA^9PeJYegY7FAB()GIZDNoI^tV-M zOX%eeBbiH;q>i&-0geDRk{)uk z>la2Q3-htjdYbJjTXzI3Vs-d#j>Oc)b_1J2a$x3hp;0I^>IaOk1i95wSWu8hwTzv` zQ9^yozGgYeihhKmhTh1l`P>4!V*_ky@jFd?$tTR6!cyg6HzoO3HlIn z|7}|U_gV(b6Eoa%_*gn zQc8Jnzm(xG(uP0AhQCM~eoN&H;tWO%XiCChf}_>mYPYjlvYRU!)62;m(sUS0Af~U7 zo6mzf2{4pE${zN@|K>CYvcQq!0XcT)FaeAtkbN!hZAWPgw`swFKJx$#U?72%PxM8P z)4D;_9ykI))vBdno^(**%k@AE7)Bs^X3jyFl6NteE?gi1MiB@?r~Lbp-5m5Tf*UpJ zawTvO3Tix{HvoeO;Wl9%h^md2Bos)0ZCZOIxnB{nv#$W zJs3M6UZz_m6=CS$VC3Ln;J{p50LBeS!rsR%K6&nMFl<1MUnAdwI$6_}7FpDA;Q~hu z7&Rcr6PjD4c{c2WK?8E=B+Y}zFeNhvV+KSkiLFR+Ct~vXurK3J?v;;qeNhpYACoUV04=SCBmg)1gz(Xw?exSXynp zlRE$%fItl!9B|>{Jjy}CgB2vHd2)KAMw8F1f*`c0|NJ6+%Pp#~V)N`P+}bU^UAuEr zx{)!iMyViMUov$e`eoflI*>h3LD26Knv#qtZ9#Ynk~*QkL43^RvERU1t#Xw76{CP*tPSCF39Gfa@fU%Ijm;g`!EJ3#PIM#WyXaAH+ z5MxpsJIjp8+13gklrV>`uilhFG}vKY2ics6nN0aWXe#8tLhd!WfCw1$-DY~yW;kwmyiQY;86(TtcmD+{E*fm z5zNSeV+MAB?E)TzAgNE)Djz%7Q_>*FZ|8q0?fs{e@el+_P1?st)s#8*9te`2@$jn< z1ENowC(rV3HU2=D(eSyYWc)y`6Ri&fr7@L~m-jR070YSt_zWbC9j`^EV8^9L9Y{K7q9R&BYdRF~o%L$h zuG_L*BDG(1iW5Sn!A4`pXTXIE8arN#^Oyt4HYL&WY^_0AHIj}ka?H?CqfHLv5`FuV z(c?f)Nk&U(cFhLTs0{t_a*UlCTLZ~9R%&apJk&ty zC@PhV{;7hG*3yuh%g9w{evWI5uWyP$xaR5~4Fo+(ZCi{Nbe)jL8ORwj>??$)(93(6 zfs|BM-(1^$vgR_7I@GD4H>zA$3>nB)noDU3na3E&ImO_2Igi9Zlne4>b4nW3lVKo# zop6&WM=+4Qzs){uj0+xL=;Q^$w+BllV`w>HcY&n0KgC@CP?b9uh&?*Kc?i28^|S@@ ziRQ1AGm{P?duV~Uo-Nx|c3e%WM;6HAv!8OCvW?~rzyk~ReN0)|>(EhS$BoaTQ?O$P z%Av(>k%Am}0W4-Hz~c%eIhuri8jsm^_pkyfn2c#F)#_0NH(WL6=u$dIg-wl)x1K2w ztdp*fjIxIm5Z6tw?wHqb8_yi{RFCe@tvyG9{32#5b=T)km(`1a3l|X8Jz%}PJ@MC|fC zOiNeF@nkdtInW7kRKNoXdw#iH#a)?r>2|W*GkGz8u1oSb0x{^7d>XAC-JKB#(sT1a zo-zyiACDrCq{p1JkCyegK@TF3YCCRZJ{3Bo>oEj^5T)~C%IO(=Hzc4V#}*CHfp(;T z0UkmiyQ#b$OIJ5Mf?&_vW=^dR4c81YCY>*`n;^M>W9yK6_D~s~)K^`<9 zhw;;SOXheD8IKtdM%bSI?8~8k_K*Q7_Ea`wdu88m2p%yY-kRReShWWX{FL8#*1MN` zg_W(^q9xa^A|fNyn6#9VT1&og#p%(vJ}Zh@c+m>7iHu67mU_YqR-{@pXBEV3AwS!0 zLM6MXg8A54&(xV$uj-gmnhs~GW=aM5qSl+|pmKF=(FRaKSPeQhnFvooe)SvW7C*n^ znu3%xrR9mqOxlFsyyyfuY3B{QBSps$zTgD0Go2XuCHq|C_PAl_0IfIC^Eu2Dor>cJP7{oV)Uftb0^txLst2NgFEOWCQU{bTU*OB=|U zlg=5GJSVQFiCI%}X^9MlMwhnLBy;^db%97<9RfkRJyx(9n(O zQNB0>`NR5I62i@t7R^A;SeZFSr@U6@i!zWzQ_vVn>5}nY2lN$Qkb$fjKbYk=QLRZ; zcrgZoWlu4t!+Xr24&j9uNIG+le2jZ8HYVXk7>MFY2xTEVes&3lb;sVsEo(+sG+zqc z7s#SU)dpeWOg5>!K#IAM>hWTG$WIrDm)l*VCw(<#Tp(Isy8m^yKsX&{EnI6YU^&`p zad9Ksx^ZuEV=5IT&jPVTo31gn8&6y~USNTgrd{vdvrqJN1(MDjlqh|vf61aZURZ&Y zgs2pQh0@(5^MK^Riz<*bS8A?Yy3uni3$#N5Ie0+@lE-jKo5zY3=Y%$1Oo1RL+)T){ zQn&VANP!e{x)K$gpYS3Iq?o>*g3#EI8G{08Jx)(`P+bcR2h4!*;t6EW{FmZrFQGap zM-2x!A(bxomwVlV7fm2qI+>YGPvph-1rtanCPiAMI!lA?#uhnrkl>LPc{#Gk0wwSQ3B=OTbJFInN$B_D2&B}X-Q9mJ zSK1Nq!U!b!p(;vPmWI&3C;~ZS=k+xDtgJ)~ydVO(l-#IHRpCQDLm)=`mA`&n2*fj$ zgKuZ(PC5s{y7bf((~qxo;o^I|I2QtephIn|eO8kSS{PpZfLJO|Rm$u3oGKSC0-1XJ zSC28N3?%pKARqTXcE~_*AE9!zkz+D824bnK9sgsza4|6uPd0mpYqZzP!a!~hPqKsl zAj4%~Af+tt!R=GGpT0m&OX*kKEGJd+0x^@twK)31kEjcz68ir>DQ!_TTp-?WvdwAP z0zp>v^qM-}R9p+>7R$3h(DDDI$azy23*=})DY4k8UG)`=79X|(L1>m&e@+z$7wS7Q zhslYT3dB^M&4Z=xZ*>YJ9W2NS<4J*3{bf1DDa{^>0x5^@Ds3+Eb5&3v1yN;Dln`S| z<{e=11U}|@?F3Q~y{ma+vdTFIizbkg2qm;;pB&vDESNyrFn{mCS^_!eGQEl3l|T}$ z_z|(1Ps+5!&O^vXd4fd|$T?e?GEYx4o;v4e?06bGX6)&(QDcV(bfAOd0;OX{jx4f( zfdvuB_gQ4E=gWUm9|GCJ_eW)Ug+P)O8%0Hro_9$sfeFH3bKoD6K!{uK%+YtwBfW;1oAEKp4 zTZM%VNIJsf$wiAf(~|>Yg@w*pHe!JTQsxw`!+tIX7B?X7Sq{$(r=m1AAa2TaWo|YW zH9$1GbFbd4V^l^o>ClyJJ6gUs(9u2o7Su#>7-5VUsxsW8nokWSjJcd(Z@QQ`V2~|wr3hc6~wDDnU>X8 zO$AwV_WG2gf{wDLnZSjM4M-r(1el}73@vn|#Xto)=FOoWi+kJ3Kg?OgRRq!EoSVvu?bSHcv(J8q`{WO7B@6O4$73tIDa8d&jh(sQnCC> zn~bwzg5X&-=-)Q!xCB8bOOf4a{$6!UkV-_wOa7M9Y()a|#fA+WIqE7wnk#XqV~~Dh z8zo4)d8S!DI|+i^yVW#f>)I)jAl{71j%P{5Nu36pjvYE`pa4aJ6oc-|yC^LuFErR1 z669HVb6K*$&@a$vWQku3_}p+(uC3}el*y;5CnPsF)dE0meqtHn~TtCW31R9NO2-B z{~uaHD;3w5U%9prYxD$aJ_-x>z*CDaFau(Ip^CS9xj@#>@hNJhoI^!ZzyKXOJ_83w16;Up z5n~H6v~a0=$-8~l#$L)+(n)+(ZEspJvOwPPtGA@wM8ug{;K=a+D#XA7DW;|GEoHG5 zUyYPf0uQKhgcw&K=&;Y_tKvN~#;^i8=TcGL*6(@l7*!yO()Zp_t$#WCfEZLDhi07% z3#I=r)q#T;Qy}M@%&(=wNX?s$lLASUY*pnFA!g(#ki=ato0}B_3M5??m)BxYj3-nb z<0>Oo@1E)8Z*+zKN(?8E#A8fVxbLLh)P&sRRMe}ywsiCqi@^kP|7h!=qw8l(FM*(h z)DmhkL%McKAo$3V+G%|f2p02~&Zp-59>+ieKBqxL3E5*Dft;7!gjkPxYJ@S2Kvq2yb_}b>-?qCcfn8hM+YRCCuYu*Ob&>)8RV=k z9|H$5ZlJHlJf@3bgLKc-#$HCx&h0ccc06L#fS7SpKj@6Hm2_gzfE?OADGPf!rsT(% z0r7K8(LtqR$bcZMVo=j!49ND{BQM+?0|un97cIVt=*t;X1ILTa0>&%IsWQE5bDb)m zT|xLf{ZHad#bm5tw1O;ZOPEqZtT+LTRgg1PMHkay7^)zZzI2wEXSO^EBNeCTd*;h$ ztLSUYg;Ki7RByc81`Je?v}ucO`yOP86vipY@pC05bUu&iI~b-Q_n6-G?==O80vrPv zr66s0^{IR%R8AKuNExkP+rIpdzqb%2n$~DKUw(MP0G)~6dkSVtQH=H1e zMpF|P#F|!l6Qq%CrSkW0b#D%aCP>*spLzUn2M!w?aN!~oq-0iBANS*C6WItbFhT6B z`t(-1l2E4{0*p(LPn!Q_m!%ISvjpLGtp4-IoKD3nL2?mY-<&Z@Y$sd!tsSRT;~`=p zbR2CbL6*(m_G4BmW-bZhMn8*}luA+Fiv)2*W^08ISLxFXxNvbEhm91x7My~FP(y-T zF{yN&CYSp38bOlbVLnXrd!`JI9a^Lyhnev@ zj)B1ll6=o3Tl+79m`9Ydm_u9G*NPyfbfb0S(?k#}e~MiyM?FOg5$xSw#$3yq&b#I> zRpDE74ng=>SsKhcLlC>q+sZdv2!dVAv2ze-`70sF+c}x{hUlo49|SpLNBdl6rW|TP z5Tlp1SH6;YOfUjL&Y*X_p)XviAQ*rkmub6g&L%29XFY)N2Txn=D=%!lb?4r4vz-iD zHRv$>KrAm&`5$f{2x@FJijXZI2qyB*wP%ElihCfA{+x9D@nGnIyfI|1S9@iXI0G1Y zAbqg&?yJpZ`NISGuKmAPV_JTE2U5IHIvv2U1L;=dRoBzV9P=(*`~XHB2%n=a$ec8$ zmq!OuPRUABtPqSj5I>W3&XwsMRA^IxAqSG@6qLvvv;EdQU;{6z3NYe85K6AjyOmIm z4BV*kHZpJp7;qqkmuy_P&|y!2@donv+FmESFs3^BRAe(D@n%Efo z{+fZ9Uo?JIWR{aw8S)rMTxOYw48%&G9bGkJu-LCk5W+&)f7}tet|6VLuZ5Mg~ao;+r#2B=Q(LP ze)6sh>ax==ADQ;<~FHMt&BQg2fVf?283?71feNv3!;)1dY-s7FB( zo&FXDF@%aQ{S|FX%Ap{hk}gWCU#L$?P!M*0Pj~F`6Qr}$l(Z)4l|StXf|_>Q2~*Qc z=Sr1vf*e~r=T7>=DfKxA<*81ZAeYj#GA2j5T}~zl+A-Lxn2_1mVS*TgxD5T%T!NI- zKdze8ODYP@-j9qRBM*er^bsk2jcvmjP6iY!rg$^f%r)VWhpj!Q1YTf1|0|F zia(;+K!zMhDujCRl%nc<7*!x64g|NkO7^+-V=T2m1{}z-E8EXTd>P1i11V%#CaaQj z1v1<~u21>kKH4sx?E)EXAm4b@G5uTy8%UK#R8xqhND-2;2BN5(x+o;hcHZ1U16gw~KlZ=I7~L7jw^7_w`S$$@1~SY**i0H*EvO9S zU->i76q5&=WsrfO@?y^Zo$Bpe8Dk)y-FWn`i{o3ykRb-rbxuj=RdBg545ZT(CB$?I z4CMTbn=f;&{>n1Gu&b)(yNP|!c>Q)wh8Kuis(L*qb%7v0%U0w4uO)GTd@1G@2%bH4 zsf|f)+Gv54@`8-)Rr++v0y%5BhY^}{cEN%{=?Ypqa|PnviI_6?3aS;zGV`B8_f;UL zv^mFLoeD%>Q|WRVGH0Fw(Zh(6DYnOSvJ}X>cjcu5>zOC6*fWXN~)&CXj+D{TF1!1j1;@%@Fyml(Phquo)%SUW4|E63B6Csmm)# zAbRlb(WLrg$&o;K(?83#DP5ZA2!zw|zbnQFgz?lG!#?G@i$IR5-50D%CM^+2GUu~S zpI5EKA&^s-khlI%VKO0*eBJVXzMeD{3If43ZwT9u57Gn#lGy$S1QmO^upu81O~+Ud z2y%O#PUd+)e#>4Vn;*XW9T2z8v%al}(AsM4mfLJD#kAvU8Rsj!zfwiN}zMOn^UZ72vH zuEWvz-Q$W~W6$gd^QJ3-R(8Z+EyI6=-VS<4Td zR-V}eDW`T#gbCt_+n(N1BV}|6QVvliRMg$a$Pxs3 zTY0@K2Ngt>ASi7=C$d8cVwO?!Y4qlP%_K-^DTXcY&gFSY5QJ;+%KxR`;z$rwst>xY zdA+odAb7vkn!V)_B$+f_>dL10usDJot7G^srFT778bR!}T$dL&o9qfB$X0sFl#Z1} zkd*cuE#!?>KPiHobXxg*68g)N2$C`nl|`zKcMw5J%HMM~d>-)-1byS0DOU_Z(j_!z z%X1y8QV7ymjp*n+AxJUQSy)a{S*%wy*gT{(Clrx;YuYu(M(xdTZ@Q~J22TPnp4r1+NBOze!Z zlsb^o!e*0A2g2EljCtPN_;VmhvC|_xgsAm$;8T6g=Ml$&9KNv`=fviD;Xp3GiuKjL zf!tQv&%Z5*kh+2BS7+JN#!B*R18HQ*XZ7-`%&`GwW}o7Z)<9B0E0l_x8i?lcQ$$&w z22u!-qk)vdLc@61g&UoLu&UWhNX-wzV+N9oN|#M`cj-+TNNXLmsi}5d4H-yjeL-)` zkAe7Kx-m08Dci+BzU}lJZw><~tZ3yHB^Zd=NA85H{RML8ATn0P_2^@JfuyOLvjy2n zJ=R?yPuMCYdX21>%T_%cWlhQWBSMrzfm(rviCrJ7!W%IxkZoXvLB{O`9?=1=4D7 zCz;VS)Exz)h5zgt?y`j#3gjSU`jk8~lVzVkE^$hklzp>MI)QkebgiC8_4>F8m&7)yy6DS_P9o0F%tIqxKabfdxK)Q$vle)v}RpnYTd2n5qv zJ-s{b-MmKlbcR+0lIM^y*xr|Ic8Nf=T)H|ojJUl!1X72oq`BXNm~w?c&=Xo0qbxMY zHV9-FA^O}>YP$#s=WrYP0Wr2}(xO4gj>ZS1T$!KE;(zVZ1Ck!k(r&SOo96*xG`?-j zA9IPn1A zqBNMM0_&ulyXLf{vjeri|3GuZ~$nP>^Go{FYO-oxD#F zE=yi23wgRaPY~_X<@)Uec{OM)wF+WP;{;j!QVvSC337jaQlC?)2~wCoQ8E4YyfPCc zxiM&M5GDxvRE;H-L2E8Sj7c`=+V8AQvIJ4KV$zWHvztngv$EHZ>AzMHCCJ(t8%=Ym z+Gi4ElQEfy#nz;CNf7j1uFoH1vP6QIWBqa%l^JbF5H0v=eTkaS{RmQA*O`^SeC9fW zl)5&ls7jag+6c0Xm#pw3Bi_8FVmrM>5byMOPAaDe(v7H?ORs4+i692oa&ZqLNE$W8 zIl1r<tW{_TvPiuoPMWUW6oRl}qh9FzRDB`@VZ7p;?`ROj5u>7o`3Qm-G@e+S zN+3vL;Y!C`qT+o(kmA0{@1Lok{%~r1GWEUtfh0<&+3^h~d+!4|LOjzZ!Dr@N{i>q_dHgJn9Gy9kLP?P^c;rC3O4}UEpnFpnEua-7f2xK=qS^cc_i*tiO>YmL>=T927M+dKwcFV_d;tochxs>M^$&+P#@=XB6iDxbjv!pIb&_HvGrF)4Qkq)NF9D(BHY zN}U2NaG3VP3>}d4&Uf8J!RLUWbBeJb#4AOsMiw|Arj+R`^J)HdHz04Oq*P8S&#(dM zE9pfsSxtJa0YOxFS$BG7(14t-mhO^gJiDhhPMhgnNBJ3t zsTCw2OAWv0U1o=BH$UN#hD9sZ@cis3Y zsL$|d>I6|$MlaN2I6;tp$%H0l+Br;{AX%th6NLFrL4WS!tjn1o>&bjcdS<=;Fc%Yq zT_1}jUgutdpjWT}iB z?T~SMt|W+SI%33!BSFd>p*g0sad(3Rc{98wVWVsmfZ!1Xng2m(KdtGl9XN8#ICKQD zyRxZ`CpxD395i$^g8Vl!DIHWPKrt5D1vM{CH35x z0OgpW9{@oj2%3_MeiLrCyWtan01*U}=`MGA4qmZAL&qUVQY)pcoY7?|MS&s69>a6| z+DA{m9@Z!X(ejCmG3fe)AP5mtOG$Is_6I=& z)%RJT9DpFFPs_BR@yRlOAb!Sf%2+YUli9)#L=h)N=V&u~aTYaZ*m;1U52S9(qI&)- zWU_bwIskzkW{Vu&DF6W z97KcdoX101WS2fm_YI>34lQOJ-hn*2#Ab&b2%8<0Z0MJcd)Y8E4(mY595wL-@G1lnn*sg)tqr`fuQ%a_8k{Sp% zDzvCdwO9M3G?0_I$LSPVo6ive8VKv@LwgJ|bOw?v5ihq8{aZ3aBd7D*o2-<9q;+*N z@VQA@v`Q;?3MZATriMChL6$rH|g(` zROj~gV&ljQq`&wcq0v&?RHzF?%avodF|XW-xIm1ZccjORY;1x2Da`y`^rA;m1X>`4 zyo<9>8or|`f-I0Mmkv^IgRGA+G}yMl08ANmPAkA$8N!Z<8%B42UKdiw7Vs|o=ULoX!=Sv`|l)_E>ttrTXBMX#;5=gP> z_a>s(tivRbK1LDV_j_GAi3CUamCO-{H+EYpyk-PqY^J2wqE|}SC<5_h(DC#QALW@u z1ahk6-R>=tiHn^ zkiPrsRE*nSmwiCAw2HN=cG^td1MG6)21LMb6vHWEiui}U^_f~ zl!BCWR#dKIM0z&L??^p-kb*^YP%AAgo5O5 z?@?o=`yFo}r^5#*h(RaY@Jzxl^N5DI@j1$j6lj6N%s_pgAYaO2SD$)U^qs}$ct94P zBh9dZ!xMxX=`r2c$M~;opiU6avG|l)zxP1RpZtju0=aG&=!d;?Ghvz zOvC%{31 zk3$e<)^yObCvTfIM0R;8x}D>euest!AxJ64XUh{EfYi38wfyu{DD+qE9H%mry4YL zxDG9F%%~4PkWHl$uCZZcYlX&*w~+yKaNJ1z=)(seyq&G_xUTb{H|7*m+{)m`9*Cu+ z=YLyWIc?Km!@`Fi2;)KKU25gG^wVIQp#_e^Jdng{C+WdO#c(zawi_RKAgjo{w95Lp zqW`!9Ipnm6uatTlmIj%?NAO_>@>pHPKfO6EeAIz7mbFrRO&V-Q2OS7k8RlEZ+d)GF zHF6Y=k2#P($MHCqg6n3Amg7SX#43;b9;532iQvZPn4z}gBMxNoPob39>)_zP1zfl= z`+x({v}^3SKKo9=QD%_9yp7_>#*VUuj=caDGX(JQ2EymOVRX)M1Gzz5Y>vdE8bEwiT9wWIL?2J(gr z&m~HFWy#QB(@{gME(0H5Alz2!CQmvqkUxBRXNys~Q}DV#&i=G9>drRz!3B~Ap|O)r zImXW27Kk}mcc+OXV}Xu4Yq^M=`av{V1YP7 zE<5+B7;Wvx6-dccZR{XZiH8hD@L>hA>{*7{CaobC2Ygh4;3{`|R77U_5EV?8LYbQw znJ#=xfn37m$slE|gy$bpAjn*`V4ZY3_=p0@g1B@t-b}ZmA5b97C(EO!gg%}?&}lS@ z%WU6GF~)}z_`A;_FHP{S(!)wWHa*j-+&w&ZO;!KF1X4;Zrh;115_Z$e-LtRP&f1de zcr|+ePy)#`rS|xh7D*t-w4?N%E)`*!4)hE@kU)$VHv8u65y+Z@l~N(+>!SBz1i~p< znl5I_|03HWkX%RQ)2$mt#hD8qL?EX0>Hc%d*MN^95acOy+0*FpK1K*6T}p)70BJy$ zzqYF>mHP++(b|;skfYq?RUqVT-5oZfsjo4Y*`iBR`l=L^en5(!Z$_1yUVQif9eJi# z`{+TfvSaUB-MZo_YrJfsfAGK>>zK-NMF`Pg^ZVGrI%e&96|3Th4hUy^THB}5Gl?@k zazGB-q$X6}Zh?sLt(YsQz!Yk5)Cr~0)WYV6UXaZe3%@nSl1MCK}&Mi|W z&*#v*aG8sD%i{-R(1RVZfJH8BBwSYwSAhK>9l>;*YMGCw#)P%cxSJW{?q)`cd`lwZ zrHn7eIFFh*;&2jG4v4lnwf*%Eeji=4d(zj|258f%i56SimI6tOkUvJsn_6YoHy_V zZ4fWu)8`d!%KGBcQ&V=NwM+kzhC~t^Z267Nv{cp@B@^>t_>CJWEkT> z09Y3g(lV}>D&lBpC+V*bhI6Wf&Q3tN%pynn^eA1;9EklI0w9RkLg}i`@cF;c32B2? z`>aj=3|cGEKIwNEs92s@;rjm-SznZ~|Cwxa7)@~n7YZOJ7t&d>`^Y|jFZ)CL$63(M^r=PD&HhjXGhpvz(cIjv zcWX&4mSBjIgBP4?;`%PZzs`$#j3^GgFju25n92YeUYmT#33M-P>;``6Ticnn`sK{e zq1jEnlF)m@p-jhYQlxAG!gj@xUIJ;{(j ze+1zFB5ll{m%`&zXww4lS3a&dxQ`iy@}8^tgv+F-Ga)v$PRly=}X4y9BTUbQ66>4IOIUU;%MSIr@x zT3$O%{g$$iEeX*`s}lbu9F=B;wG*~88S-_p1dC5-_lnwIJ*4G|n$En{RwBmh1iVXh zbz0)kea(&+L|5fP=mkd$`x4EsITk48y+ds(y*NoP4y+-_EQQvOpV=?NX(2SmcSn<& zn$84PIL>?{Qm;OX>MB`(Cv7cL*UgQjGAXcgWNk0mRlwm5v~qkD`wT?5mImF`N6iKj zbt}1O4Xo5-Z`b@HM46iAaWJK3Z{9jn^{xo*avCUeEk#+3VDWhkC1;^orqq1F3b3&k z>xza=eAfbCUeh~Bq1U?b=P*&y(Xft%cgoZ5l_|6J0q%$;d8AaJ4Kn~whci@hfjy9- z^wsD()ujvJjJWhGfwN_}SyYt6I;IF35b)LJR&t^H%aEJ89;mp`eJN?B1(;=#CN*i1 zCU{=C85R(vN+N|tU=2FTIiW*80#BOBclx|Q_uP#+^^x|L-a_87N>CC>I>(&Aii;H6eypp>Y}ib7;34SR(4fo-zk_3p z`6Behx&MW`{Hd{bK0*F)7ZXbPVP3*;w6u{lC}*b$61*@c^#>Hx_KZOlxe%jNIcTFwjr)9|g%iZ@iWf*!Cu%!R0)?ucRpG0HCcjViy_Kw-WUS;nbMR1rk`m6?;CF~}6jXOy}=#Q8IVV~c5E&$XpOTYy#?tpCY$d2cb zYmCcP_gzt36KBt|fl|lw-}WcO$UN+2f)3`jWFvnefk1 zvbSrOdtjJ$e&Z5Y3k7o##J)Ck^--Adj#~gs2y)IvI{uV?DvTG6t)=uuDo)+Zzb!kB z!jyO;Nd-a8!Hp_#&bsIq0eR{@5o55R1y|@YBF-zjzY*uVxk(;OsYOIJlcU2p#6~nk zE7;`N3Sl)eqd#x1{$t1`NjvD~OzW@aM;_rlI=#xqs^mW{nrFS`7 z%7VdKD=&lx*;lt0s1s4qqnyPG?kWI;lq~UKq4E5pR&#roD#tl=k11+&b$hl_@Wq-x z-3nZmEoEtnM6x9*Q$@x>V|P9rch;T@K_*(u(ig=ct%m(c+_M;ZqYBdFp4Ei>D3Cor zNWS^U?$#0#dxnG${w9xsnHg*6>g0CGx7$S~%2!l7$Z(l1eAx1T3q^p!Yn8_44hcsA zr2g-GrJqH;dzfuNT3Ya@ny9jU>DYuG^F}%=r^7!L6B=$w)|ya)S%bgKh{E6laAr;p zRaXJX|1iN{)TMAxIv4P&94k*Nak)m{O+Zw9g%mlcqNCHe@yM_%$@YsyBdEiqR z@hHgni!(vD8NLXPUvy36(89yz*DP5Pi0ydsgX0&vd^XauAgj{nN(0(I+r$Z9Q!eTE zU}INCi%-EvXQMaG)LEBO#*6KLbR(MNkXfFA^m_+z8ntxGWv$McO1n2As;vNp^E(m% ze$YW)Q$<(Vr1qk*w?WD05r@65SRIxQGwv?fuaD7olj`-=TVTh6*pCf)M0b3XJP@4h zlA*rFBefL`b#WAPkV4i|dFsau5MOm4E6FWyg2(LdTB`9v!(3^9Jv>jI<3>o3Yl@ne z^6D=@dWRH2hnK3$p}6rS*XZfyujE2t60mT82lx_l_sKL#L1veK%i?4)$lcq9jvw6K z)&aqKK%QLrc)o15-$s%aY+fNtt6oaQKAP2+0S(d9TtQ;VE5?xR(n@sxZ18h;dw?Pr z7R*!Gac!6yVRiCN>6#9p)aj*Pfc@JghE2+9)x{H1`7e)aY2`4y*_cb{z>iCL*Ca2KUIbMy`q4lc)<1GY37YydajCc&uBjm_K)1-( zW3WvJBS`S@YmTg0km27Wi6Fm&oRy zH7rNMRzBD(hxfT?Cm#S75}s?B#6c$2Uriy`z=K!BDRZi*EAnU>t;9@k!Dhql-$5n! zSdkiQJ`zut7S_!bY*MgvnI)q1j-^ml7l`MWFUS>%Lf8RKoKImV8WDq&)tPr>V+@;X6FX`vfram`PY^GF#Z}f?D1egBp^< z06h39`|Uw7`+ynvlByQeOYxfI2B*Ghz?v|NB0LhHBK=o$NYv^2y!V= z6tE2x&b5Rj{1$JnVYNA8te3h+g+|wVFUSqPX%qzAX_50uRBi0-KYd>1;vnZ^M%zQO15gba%u3Z z*X03>5_@e9pR6P@9Gsl&@=T)yOlh&U?JTucqOsReU>Y9JU!(|v2bnHpV4X+`6Gb5d zG(N!ynOaRV5l#Kdku4bOgKWwNQiN%ZR1(G+V=yzW-Qm;i917GE^HLC=RZ}-7EZRYdXJ)TIqEN+ZrcH@FsI>mn4#&v@sXY zPwGz8y|zV3;yy;)RCN1fS$CxSV6!uqOy9Q7)63#Su*g02QAXj8PX##YT7M3E19$&C zbktwsF9P9}Kmp2#T-eq4og&Mz(1Yezj2hNp?)=@8^=M((-S8bQ@sAZ7hN1@rT=WRm z7`{nrj>{;mqB-UN0;s(6gju5k9f^39ohfQQ|4HP5%I}#8HguzBN8JrORy`P5D?}_3 zxfzpni$sxYRs~c3c0eH_Q7Q5I@|_-Cius|+RNV9Sf?lO(#$|93$UaKD=A7&zJzok! zNS@6lU*>mtcxEtp1={;+chan@2oOdv*0wTxs^is)upHCNn~}KmepPgRuhMg>nZ=n{ zypIRdi+U`s0PRDg_M*j>7!onnd70^wV@$RziXK>l7mJ#abwQa3U7NCq9-@3wb__YQ zC>7EC>*gkjULUuD7QrJ$@01u=(Vqaa{wi8rUCt#J^BSDv9ac(h6PhNg3(z7?V$8sW ziv|0r;&)`!qwYjIQB7HNY)`*P1?{kXY}%(Z9np_aOJ*mWg2TexoyqILmCWf5EQGCQx$WPUMtv#)C%&g zGs%9-nQvLKYje)j`fGLR*%fy2F(s={5gMk1hCrHzUL?GE2J5UesJI0-4I!z>a%7xh zuCNm3KL%M)X)-mZv?TzXOQ+nDRe^O68*UBl-|=G4VZ>-O9*FMIEK;TNLZti#)2J}R z=a#b%;--We-C{?~t>z-QwE_^1w_#{#fE4{`EOnO5L%ClR;T@^>;s9LRZq{RT#on!l z)J1%xiwL09UkW1DDPuWniV$p;^`;DoieEDw+^h5kT?7-!1c&JlLc`)$Zme;0$4%or zB|T*w!ZO6oj~CZ9>`AWV##_&Y$|CS*1~l@u)0C>J?BY}lohUzM(?J%iBlcd){2Zn# zAggVXksX($MCKd{ZE76J6e1p1G?qb)F3d`?anhtoy5W&gbQ=`RjV`09K>ngzZ%jdF za4@SMru_p2~ z2B?>O2dnDRd6hRQ%yNWrZF7M->Y={NfLrvO0A){+n|pRo%kUVYRCs*5^xV2%3mM#5 zb7=OL)yUKfej-)(U23Ln*ucQdNEX2x9%X*%FsYs1F2i_CufZMAZ2j-vYd-Xi!~8&l zP;{SCA&0ES)t4-U&gA$9dWXS!-Aos%lglARDa(Tboig7u(kReeBgD+dcU7_J*$B;g zLni=jxh&uRNFgbgLQfLZ7NOtAmdGxW@j^x(Q37B7g#vzJp~wq*xwNY8DFAYxxmU;`u~ zknPUNtIu_=txl5b-K|y$;l_c1x(Pe^6mU9iFoTZdH? z!J#4``FyW$2pt(E@>pAR_P^Z%Q6NbdOCN{kKN|2Z#0C61aK}%d-8{jcJj>;cx}nLP zP+1-OUN$Rm;a*7fKy$r3YdS+tD4ni)EaYPpge1Qjndu@LE&6~tP-@MpUXi@xJ4g|RB;tZ0l78i9B;_$5FfOa7Y6lpTD3AdG; zE+sF*0CwW7>0(9tv?{ksf9eRK+3Gnj4(V4ym#$q%ry|@yEm*8= zn=AJltu}TFPK$Zen*kl5Ye?;aB+`qdkx{108+r;Dikzh9`M}`8C(Rx65X7tW+|`2? z6G(?Dh#=Hl3*jWup@unGC-O9TRcg{9MA9AidgMXirQjV1cD@Ia_N^U8hm~>qG&%W( zsl`(YcNL`8*`pLh5XJUb1sF8U49BRUj@Z_aI{9PRu%os?=(s!W&|hXn7g*xf(AZW% z1+Q%;@(?UiPd!y>@*k$EYWAxjMjk34(F!@KDr))9E3flET0FA*WspAf%34LM5Qj1o zD7gvuYw)^07Z>L^?_Kgjj*M-uhHLi6zrwxH$D<>l9sUoc*Hr<@Sg$AH@|ZCfx>D+} z+{x!}$IDUv+L-9uYaaW-Bu1cwxmTv5OzVkY9?20xX-4k}mB^&5rF>dV9AUdf$Qa)t z|BU=ny7^5R^3);!=8826pW0M4$)jBI2&`11J#Wx(Dw%E%Zc`hpEY40}7w>8_1_ufZ znf{E?iu>YanB=)!sqE3ku1>Mfa%7&za4w8qV`!=K2dm%^NYN`wvLn&BM;h$q4vEbV zbyxOCkiBo4T?)2{^oJ)_<=o+2e9Zz=k#0Cu=;r5Fz zXklh0&!t+Vw#_Wwq+3P1i_&(V$b2|8cAV6Icq@por-cQLX!|kiC)99)BG=xrOK7Nz z7OdzEmR1Dtfqe(=0LPAVXm+W7^QE6qQfUfL6uWb7cH-h^^3r6kq67`*9j#Z+wMXyX zQIX3Fa9D2H;&BHhTMxXlzeqBRz>lQhxEsGYpVKD~PNh_idlL6rw!Y@rr;eVTjggvfWaf2taMh2$CDzB9FtY)BRo~ z43Lb_zD3AUw$*hPSs&Ra94OYka)0`5%8VLL@&Ng4d$*9iAWBgN1_4nV$K6;+%KY0EZ}H(&$Vv-!@_+AR zk8wMSo%+m0pe!Z8><}DCv!bY}4?mkMO6Kkyd~rLD(L(;dIv=w}4sJKL&Unah=FeIZ zjW@_%;(S}rgcj>5&vi-KfH-HLhFn-mkka{?|6734hU8~G{b@? zLUvEY1m2cSL$O_EB=74O5JPX(QOf-59*_vpkpnzw|?P^~kRy4nQ>90x4$I6lasyfdT27R3bc}|hXLP`#z zp=2ecYg!X~Ce<3Vq74S{+HgFQgrS~;FM~J%Ch@ zHSd+h>l@duLrEOB>;wo}JucMSu8FdYwA&u=?^XK7x z06eD22!Ir40b2z}4Krn;F#Y>>{TegiXPjf}xe*wcO5W}E7{1n2sYW?0BN+KO*5gJB zUM{ap(el1)P>2@zuw0ntPdd3+7y}@}s>);s8f9cXVzs=~wTI|l#Kv8EL1mn#Hpr!{mp4DlM+@Xoj&hcUk z4$Z~1O|StD7UTR55nlKWBsyJHES$7+AD=x;<%h8p%98|qu07W{CSjnE-XHYm3Y6sg z(&wQJBx98P79o%XeY3#Pjg)kf)Rh}+lUliu*V8y)1t+^t1)kU)V}Nn9hD+6NqZJih zT;JBb5R%3ahPKgD?&+|g-BP=2f%)Q52*{t2srso}UMk_ic_!XNvRL-+7v$D)`6uW5 z3S8G!vfPFwp+^r1;crc{MqjtvCaC+skQILC9;0Cl;qY2HdMg4!*Np*-%Xi0LCY6h7SX*?<`*mLAP<2GBXo)DYI{ImIc9{LdG% zGWwF+AUqY8v2hONI*2wHRkvm6f_a^5dz&CW>!D!+-r3?A;LAX#eyWSAH$)pWbR zq7Fsv%nOeI(e~c>nov8yy%mF}Qc~#s8o;c%zkqdk{*&!@1nenG#c*YjKzHAR^)Seo znL%UuXnneU;mL$@6YZx0-r!Q#fY zN*!7izbR~a__*|E*?KZU*2CRtT1owWFkJc4>$T$gKGbMpJ1DrAM%|K zn#(q%Tm?h8IQ*-hnGRHIKIT;;Nat0ou9PSx^J9MDt(6$rYpE)mOO|Ae*&;@6{*bqt zF`7Oxo?4?Qs208qTPInCUFn97@N^U1_gd%q1avi6%=0j>srmHlgq+}>;_Z71@Z~vF zBW^hpPZ$()trj6V-wyE;zM|vgK;m&}Hk6%z?MO%$3GA|J%XI4pHyfZi(tN1Zj1ix? z67+pTlUEO>JOMv!s*Dz2fVLYbEn~f4-8{F(5TJ=_ZKNcZwOoSu1n-laiD8jeAv4Ex z1?3#^%+7xd=6$X#&6DCe7l1)aP!2iMW%h_Ja3H@`Y@a4RT5x%x zy+GNp;`1K1va^EZ-ADt1FxM(Qwcw4sFLy}ZF6Q>+xkAa#bMe&G_`@7tznvTvhgYeo zy6LkblG3w^P5o7L3h5vJ6c-MAq5`f@E+Es7)NL`&NF@mcDX(guzQq2>D|2GpmphY^sB2@AB{miB_4`VKRCjB*y%;=EX-mLd`- z)G>omj#uLvF#>Bz0U)FrFn8hw*p>!$pJi50UuOL&6sDogUGq&EoRp~kyzmU6Ha z?IlvRFJjC;lis2R`uYXUzA1$O?UX@*dCR`{wo8(G?Cj_@U0VK+DY7Dt3vt2 zKtzFhR->|_oY2v>&g)aeWedm;6X=ORTjvh+drz0Tl~=gK*r5_Sd;Q7_K94n(4$8c# zQZP0A8-s;Q(nAA|KuanbT}b(B(>&Z^m~Q~wy%UCs1N-AoiK zMM#~Yw(D6>MLZW0oAtAocQ9b|`+2Y@&<^JhV7bHD9H3Wu^5AQ}+R8^zzAS7+$!3Q0 zaHY~CZD!V(Q46k0*HudW!x_^wpV?6Mtg|{!>|qAXLvS&gng%C|f(d6Fy z$4>(&G_Ph3G*XNQ9vuV727h9mFl7tc%mE<=j}EK+T6mW!iE*d^ATh8JCB~v*AtJX` zM@9h~#6AvcXEvU!PD~V_<59_G<939hp(cN67>6dU1XC0rn$#3>Nbysc*haRqL08@DO`O+u}N!=&!^=%2Y10wdgz>+ORBfq z=u_Lh9CHgQ5lF~U889qZ=LG~!7C?x3kBXze(a{jD>f&zg0fOP8?KVv;CPZUy;s!DN zbwJMEY}yIViwS%WZ6SD#GenwUKxeZ_&SX}rUK(?&iL2LJ`|*29`oR!{@1MmOhf-Y|o?;A5-|#yib-KEc0m z#-JuD5E1XgKWZScnpPqPT%+(w(89H7k#jFY{Cb9E2rl&S!{M9$Z2&G?%?;~FNC)@m zo9x?zvv?<#J7c2GpC}-hanskl@#sxbG%~iv(c;SUy4yL0m!(35%GW3j6Gav3Vk`fz zUipyhUgd?-LO=u+lt?oarnx!Ru4pCbIXD;EibJFw&7;m1a76PI3sRqaR`cs`HV4A^ z&XJS*oqb33d@biubWFNUN;$Z(Xl>W}c>KskfSPBZH0+%Eq-3HsXUNj+2}K^PULLT- zr5tbrw78MfeFMqm*r)7crBD;pjlUOCuDrBPo=N2RI6>r`@zI(36!QBZI{F{##^4}8 zT8BZ_FX5n@8OLD6F#%iMtr!w&U&kSW@k&Xzb=pKEsBhEoj^8S_zXTb(4c;rU%CBu~ zf3C?McKni8&0mz@3nBhr3zXLcQI6RVzX(W@9NEt~D;a_1Nb}kG-5DtcF;sGdYhKJp z@-dcI$AmjLMC`xi5_f_T){k)HQ?!8W+;j8=I4%k7-}wOst^M!5Yp`O%bS#CWdqSh4 z%z7!;C`wxCXn~jL6ovjowb)H|C5yh~U*IH(z}T_QKk7><5U4I-WAh z#Wi~zhInffW@w=Iqt#lbE5aeNzH3yW?7slO1u0e>7|HsLnS>; zj5h=0URzN{0Enrs;NF9tdRbgHBs1=`>7PI$uR2-?pnI$x3 zi@0bn!lA;gLgUurYdOkcsT&{#Q^oQ+svN-&f6PwNb;3M4_N3xt)#=4WC)@B%#F6rRhUZk*p+?XO}iSN~D<>-#Vbn;J9oRdSp4zVPrbGZHIKwog?QD`TD4cQ4acJE@NO9Ef*K?dHyv{vJ#Ni=N%W>TE{)*vD0?ZrTcB1YglTVd;S(X#td+Vsvh` zEwe*b3e()^M!rFIGztIvTG?ityDzq}h!rHDfCT7M*)msK{zh@|dLgGQ1l(7lYN0xT z!IomQ^xa-J29ZF#IGO#?dHG4J2xr5QSQxNZPds ziNZOm8_!*P_138Ksh;+u(`rLV; z@)Y*jbLkRRYa)+fH@lT426ijXM-88HX-|~^;d^-&DZ?-ruKDKMgRCL6s~D?7N}na{ z6Jh<{G3Nvb9C3zF&Oht;*PKfHX$?3XXVOifC+_UogaKJ{JI5%Kaavx zf6#x>VFs-RiUx58OHKOh)S)Ch&_cJ}q|Zqt_H#uCdb-dyE&Jzxc^f%Uv!#$S1#=XS ztx`Bp_tBPk#K{hEkvCAkHtgADY%+aO*g&lydHF3*uGB!uFucKI*r0(fCK)f=g;!>v zc=^3|I54S*ZOA~sNoSQMM!u>{sTgRVX72Sv%B{W>SS@ylBUoG{3K%G4FcunJ?6}PeL$O;>C!pdv+7G3FQD*%c9SAH^Y`q4o+evjCdqL?u}2sB zaxTSD;(}-a#RfF9&p1rQwv8X#(14mJvV%xw26QB;E=I<92^0;`t1B}jo=tl$Z7@Ku(EbXaTrXdG0p*37-HD)3fYQ?8(Zop>fg%BF#%QB) zMsg5(W)7WGnQ@4X6@)gON;0ax1EGF?=*f$WzmQWu@B9RLhbeDelC%4B!P9Q_x;MS2q73x+M}V zoCP6*#S-8E2v`9C000!Ykb<63g&gwjf5GBW&|-*)#uXa>gE$nl`;DC8TuDZcW$^^f z8g!daKAfP1v|p;E;U*}5nLTsHo%1fn1buV&#iR&bEI|`@#}SVDSAveiqrb_m?~pAi zunus95hn?X?zT*bY{dFi6rlnMS{9Sg5tL-nZ+CW@G}1=UGA0XQT@iHi#`B{uk)$(3 z(6=hdW}XJQL1GBH)#Pe_k0~C-2tfxiXBa#0<;hqOl*c-~pU!HrEP$ZtWa~Oln{DI$ zKuZ@PV}?BrW77CQ*B8kdC#Lfm)dMwTOuWAgZ;%}x=o&KFJ8Oi6iyi1GJ&KvRvZuO` zir0Z2vln0T*SlUy#pgg5`*4^aZ&z@j2t2e^}l0zt$|e z2ydZ;UtF;)T%16W^qNx*Bv(wJ1~;#q6FQhjc%=m6BwAV#84{=&j-Sj$9G_W~F>x^h zwNZ$XdU6^o%}{Z1#I8ueNJutuL+KPCiNZWtL?x*!OykUryN8`TGNkn^-b zOoK`ZAcRccRK^LdV&8o13lb516I$nXMfj@Fm0?-Xtgkht&kGYudQfw>opH*%EulQz zP+!@hVVC1vN+vF*9jW1wBoSl!Ju4F?oy% zYRGZ9!gI`IEt!IngGc6gc|W-&DJU5xt{fyy6!a`v87BS%3dX;!Lbb?AyC7gOfY5wuAz6OQ8Eou5Wf^i9kpgol0cDuNzpbU-A;ifG-&^6O-qtJ+#M(;q|`B-J;sZow;9cX5uvwtC~b4=$z zxwwt-{&z@5IMDkWh?)OC_VaI`gZ(T2x1c%S#s)gbIfEd{BxMXjYM>_18geH#=$|yu zvIP&z;4=edt{i0$8EEk?Zg!AErqJ;i=sl8B*fUKc;lV(cTwzt3Z#8-H0v*P9*fBb6 z#gq%Q$jlXQ7jKSkff|}QUY zRN0f)%>iZn>@RMJkzla_?a}X}D-UZxhhx=AKK;c8Wk8P#A>t&`y-X|y)ZC?yKP**c zyk9`ycVrtI#~7=#fYzvOUK?K!xsMyaSZ{9d~VimqJQ!1C;wljZJG(+y_^*xHv!&yA04%$~M6sCR?cBC3XQsbV>G& zzY0)u%na7*f~-Xy4b7OX@X!UBnJT*A#P4mgb6CuOJlfwn!OnVMGyu z(040!ee4)Os8`8l>&~Muv_Gg985sx1GjcIL2W7S+JG^&p7sO4gHt4~Av@^2UplR?7-yu=vpj(6P zewQihxAXIAP#id{i`*;?ntsL|pGz4ZG^o8d@$WTr26e(khUu-%plM1{8NW&TJ);bI z{b|fmmm9z3$)Lp49?7xpOnEy7?IWbvd9y8@BL*FIu86;sFeu?c=j(h13_AL2tISv@ z+qNf^&9XV$J$QNezo3SUNy2-KF`rgmP&2sq6w^#q_DUBt-Ky*nqW?8bxS;nmMwc|E z4?0=jf|?&sZnl75&Ye8@4}1f^k+l+*uwXxw3f8aC}uNQs4*_)E|y z?<;6{C_xDyi=AH|d#cEkxRL}NYXk)UL67?n?M(@NMlf{r`hOv+Xs8XHE? zW97H0{``HhBIxlkN-rg{NF_=UK}X-QyK$9^Es7h}>R&zKPOmb9TU)R*Vz zl<*+vNit=8`8ah!|3@MPi;Gf9qzZ!t6hP3rQ)u!i&GHxgfu1S6=Ir=D&#W=!a?wcJ zC_PYfWM@kJL%Mw7fwl*x$`bjY=iK=AwXu6pC-ytiSnZc0r3Wn~y-rp0=0R%@$Dl0Z zXGak{Xd8R-<)zFWl$2Aa=n<``4W>XlD9Ji9j#pi>H`YN*A>*W+j*W7p6i5f<#q#dv zJfAEz2Q^bmxR9?M=A`AIdyMdszm39EbN*CLPQ|$e@3PcJY+T!#Bnl z6rc9o;1V(DpnW`qvHH+B41@k(!Q?Vd4wDfKTI>$povSrgOj6(zO2hDRNAWgEJYUc= zN4CVA-(p!f1$seE>Ee?_rgTAxy^H<8CM>w1-0RGqo4W<&GAfHL+4b8R8D&#+UE#?+flsBsc9ZinkfOtPTPez0_&)Y|K~n`qgUDvdQPx36DyTF4JO8;c z1vNI>%W*L|O_rpf&27WYZz9?HkAh~MUQ!0O5g#xV)RaQXpA_FG=nf~6RtOFzo#_P4 z!kcf0%rrr9j6P%OHp;I^5|{~^d(aGBNjGTKOHjX3yh_mRJbmb$j}S8_35uOK*3a?s zTrP|d7zxTm+@LY-=V18}lyG4#ZFbNII*3fkB4~aR$ulI$kaD&ICW4MiVyeuzW1q%D zQ0JuOHhmhGI8JkAKOU&1=N;}Ka+kR~(5@fDn9T5V${Rdj9jGC--#O6l`r|Ac z#u&=Ofo2)~{^c-!ME(Z4&BaBWx7a}4RQBDWbq$nuchL-?DZ^%Oz%|cN_57aO9){RRB-|w$Bfx=H~%3fP&cQxz1;4oG$qitqdhc| zNn;Tvf$kYxe&}y_kVc?}Y2=&v-w;d@Xpb)hH_v+r99N@ z3^vDjBas0;bcWv`F<(QH*r|arpu{*~UR%C^w(S|`aO5ZhTi_5fa&Ks@U5OpSS5!c; zV4pI|B^8$E6j(_ZF$4wl%%GKOw4%fWl-j$q29lv(BLO{y_iXWjJ=RV=!4Xg+XOv^g zTyn{7Bp{#${q9Y1E!nccLd6X+@B{RVAIvA>WY?qv)RYyf+A*99+yG5Crt?idox5g$ zVs@Fq8hqnyImW!e3(!0you$m!H^+??ph&2UhspLccE<_OG>3ek`8&UV8-%W#zd~Y% zZ3ZENP?M(j?D;}7zL-F4b(SUm{(nGdJ~7(CB)Y58{|7x~sLOt_!RMO&pvTyquHmH* zT7-x1d-@YJB%cpD&J3UOe&=-i?LqU{dDEbB>Tq8VO4WF35YEhl8gg#w_IG$t&d>}+e>K2ny~4WuoHkIsDlHfWQ1 zQX1oRc#u3Bw4@^$gg&`8jr|(53_fL?(;aeIM-6IN-f}pXf#&$9L5atk!d&o66&4Np z#kss;F>U&sK@E>le*ES;IcGCy6SKwqiFX-v*w%CTol@J4WKgG)#|-#Zz>jc`GKbQ8Y+V~3FbE$I30=q-e~WnK%qL}-=) zZJYuNi4`a>a-YvWxP%a+0yDg+czmH0oci?JPZZ=ZOX~2k^$Bzw^5&QIoK@D>ptq#-m3l~8&8YMAwufUZ+1Z^f9yXIuodOX)2_h&T+c zfq;JALBfY0iO>&FOtZQDdE5b7{0<*JPD*jo+yK2jW2unA%>W%%)YgOy^2SfS04?Or zG%1f*jOScw1t_^(LI@!{&O_S?Q2u-BygEM!HC|T=dsUI%E`rcgNDj+N!9b{^Ay2nw z2MDdvq>xLhL3+>qL6?+c@m@28Io}UTM}=LC@b|AkAG!^-?2PK__ zM#h-^)`OnE8|Fc~iHH~R;kJeZ4{YQ!2Zt!_eD7D@1QN2Q9-#c}1mn92q$%U8i;WAHrwvIOssr|9z(vDozCs+T$dd zLUQmMln?-OK#ac`&)tUY1}*aEfBBHKLCbLy+3nb%Sl9hcY*zY4uR+UkN?$@}ImuZK znp6jQG|^acb7{~s`s6$#LWBC~LY|CTKDp)$`sT{74gRa#J!a55XJs1munfwyxLc@wQ#i&n|9L3ad}S!UfH08=YoIZ$TZO4jr+_r1aH- zjvl865kq-polx^sXZMnu(BX!*a0~W(+qTGpwjtf8j$?QIXeRVVLE2MIciIWs5sh!{)L;s`q0_Y6XdYXq$}Rd>w!ET3ORQ1@YXjw~YWeF{MY#eP!Q z?2M8E%ZH$*I9L9lf6{qe2>PbHDK1OC%9{s4*AS@*A!mW0-low1K#57xhRVFv|0o~m zCl;rx;dx6v&@ybE+i*W(DT4=U&eNCv;fBVT6JiING%AVoK zf#wgAUEU-P)Xxq>H&Ekw%%M4_zJ9FRKnG_T!f~q5@E~3T<+>*;v^cut(m;v4c=7Z9 z4D^dV^_PDqT_pp>t1my;RL4O1obMWBYcoAypys5%@EZ;uqr5=NajoFzu?zIGWMAwE z?vL9NfhJlVGCNDm=~F_WXUz>leE!e%4+3rS?&gMeOKm$iA5ibH|MYFXqYOQuhX@aP zI-lf8*Xe*VH!>cYb2y;q7{9xU;Re*;`gdvaiKF*5pyeJLe}`EkXPE&VS@ZpeDD1@!2SiSaTn1*dq z#W>f(6pbQ6OYLlTS;Q{`GewN(dCCOztU^SmKq`3f${)}TG7R_Q#|VIG#3Hs)NRCT| z8;@=WmBu1Mw4e0zB(z5$YJd;aU>ZdwG(eXz;R2+Y7zzIw?Xs*^$S?_^(!VqjDq&1N ztK60?Nh-Z^cy}I5Cb;AZ%Oi~e`RLqxh~f90fS>_Ez0uEe}f zHbe=fy;r($CP?};R!8S*r^bb&(_NRlgo9%1>%e@A9|-4xNY@to;n#5pGOnXCd(+I+ z9CVJ^g8Zb85`On88_DM{}19%*=z5HH|iL;_yRFUV2 z3~E0j$4iDt5(8fDPEHjftPdPErjtQ|mt}K!){0CUnwR5&cnQs=k0ApyMLApLsz5!I zG2Y8sI69l~Ob_6!sCC9G6gg5yN5;z$jXF9+xz<0;Dl@n;8}1 zBm?o3Y^X!J?X#8|P7}-1cac4}wIhyBPtjk#IVMCF=Y18*scOa^4TBX_j{n`q@l5hQ zg)2ZiMj#$9^x1!NcmRH`2*lGXQTNy|94P6`&xWHb5c`3WqeD~p9y&|@=*FQtu{5_k zDGz6YuA@84@FYv5+j!kQwhW{!Ivgiw^WqT^ljXpc}Z`}SlI}LD$ z=d<(mvTZA8rv-%xK062Q*@kj<3N1M@eZ1haV>W#I7t9i-U-5)PfKcwNxW(1lqei5I zRm|?XUq+85z&Rz>Xy=u7cl#V+-@%EIX7asKV!xgU#(uofE_tZy`2{_mr7}mkNXba! zHng=?_YI82Fg@=bS88}1l{xEPU@dis$By!0+k zcI{doPoZ3>K@jIL<9fArTvMML^v-L$VItryiD!97R$Dk(Y1WpG9PkqFy-r~=(4AM{jh z{-Ddoq_y%?yLL<{m4!J?rq=J3qQUJszGQXa5i5MRcdV_vD#e6B zqbxLzIF--5Ur|W5@|bPL%swh)3o17!?xB(b?-$sR-=6)k8E(-U5plM=FhoCnsg2?TTvh<52XWt= zx6zQLRCtJ3CV_NX!xRP2t;KC8fyi}3=nX$mszhZs%oL9G#-i+zTup+exk?bh06q=w z;W}txydLu+nc=k4)l|zaX<%OFPrO=&VIed)xQ)%1b}k*kT?asMrXXH1nRfGU^otCp=5oj67mJZDzO6jaSHQl48w8E4qn!y65BK=h-!$| znkaNTAy;qSjjYjElYVHd!O)}+5==%(3$0nfEY7@gMRraZO=_u*23Ly{kXIvfnmLdt zxr8~CizA3EC3Au9E=Pvb|0%$Q^#G}nflH%)ql@I4oa^sq5a%Y{w@3;GerCdzm>!F$ z1$?C&h7v5a2&`=f(rm&6=6Q{R7Swpv%~J$Qyw1H8_v$U!OW}YD^V0j$i%iYzMibUj zOq(zH1yD0hIHX47>kq5qz8v8kylSQqnpV#v5>E50j9-gh3(w?5ASuerM9pl2JbK}E zhA02<9CpP|+0rWoENsUmFG#Ww=6RLSqU}>SyydFSLQgu?SuH_>C0e&P9;lJm`8K^c zmh$q=o*;-O0ktWxt*|G7(WE(_8v2Ex2COzzn!k2rOU|pQ43+DvTP2){9qQ{G6ddKf z)0+~SlO`+#j$AQWBkr#TB_yc`yb*f$_+cu4Eo&1K?HBWx{yW6XYguJ?4ZYT#R5~yJ zVnf7B~8BQ(<)D}03-0toQI>sVxnCH zHXWQN$eS@4`-b4bf*xt4xgi*zsm*zHoskn@Y#KK&GGFHf42w#58ST2AryGCm){23% z6Er^MY0?Wd91R@WDLCkIgtc})XK06q6#!#LFjP{MrIP#wG(@yAMA$5~mo5Mm=EeKc z>l;UdZQ4@?p>Jf3z*kC!Zi>JQTg-7YDlG}i=}~y3s4j`rg&+?T+!UiE*yZ*{0js_H zwB2^lI!!Mf@ig54x0%<^>#par@S+%#n{NNBD`-31E5JRN?;U$1!2oIc zlt!n>Y}4F_hFG}SGN#E9#5p+m0!1z zye1ks9|c8+LXw^wu2X8Wp@$f)1&q2^QWT=}pYdEsNsQnu|7OwGXLg7!M?WJ2$8xoK zu2Gkdf?mzn;7N1vLW{zmix^nfxJCN}_{Rmr+0^rj3IN(d^?9O+R{I=MmNYbBI;2I} z?JUcd7DWs}YV&-wtyd8XTR<1E?I z;sa)AQ#)+!d7E|)_(uACK#qdL>t|+dEPRYUUN`(VNw1)W$xDR~3{0CU%F^;~Q-4wK z7#-Q-|Mb{iPtRmwKT9m}f@GanUEuWe8ZpYNnP|x?;R7Zbs(MAOa%fG6_}XTu*loJt zD79J4ngU>zCyKUctLw4SfkaD* z#R%;x9m1Nbwkw@-@dWuOc~Mo%%+8n+PJnw+OFYu;w1s{m!;5O(nSA4b!UuBzif5#t z45#MG>HznhVz9zRZ^zzV-l?}0E>4)m)6}&n9OSUZg45~+E5p26!R&g`ww#7Eel`lY zhk)X>t&;T?+t;HfmO9OXT`Nu>$hnba#9y^1I%>kEyj{qzb5nLRX2GriVO;dnsVZJ_ z>#bg!h^^c{Kh7zM6y%0?R(Lj~bl^I?>fy8-?V5+vw#4<%qHz`zscq$`@H5+McO%*A zc7iNv-~6*6KmIjW|>aD<4Olio<`j%yH+6bY-CB=M9YnYo?sS;8= znJaE6^KKQaRm)O4a7DMfS5-(0+jWi#aa&EJ#=`=pHf!e%tK!lU$HUrq9zI;=F74@= zwe+{W>9f0fAau02#$BDHU;>65kn&J=Zi4oyQ6zc&$s3O{F!AAD!p-4&Zz!}UUS7gL zjZaxKq(Fo21QTaBA9N>uLxY!)UX{qCe|C0jV}25UufwY)^=i41TbC~#M(=~B9#>&c7m(8PhZ^9zyys41Bh|C z1a~PJ=-M}$UzSLlo2Al}RTqAiox@oT#dGyU#>v<_zp_Nqe z(h}u203mll29yk*<9*4U@FIEXqG~amLQ{23E2&qPYngGohUsw(c;m1ONL6*UFgIf& zzs78t)#qh|Sp7+ncx{!f-l)!ex?q$W=2g-z=<>cH!!3<+125ry>FNW&0Li2zaW7rF z{o;DV<)yX}7jfk3WM4J=Bg?FDy^JWhG7`3yxNYvWMSHnXJmHmTunAVLlGG{co9$kf zn&D(#jg?;AYlozgc7EwPhXhZ`z5r{rlDCc6Vn% zTO!9t^(i@n=hQ?pC9`H2@cifYu-XUo=wY;r)EU|vx&E>xRYiO9e%uVin&IGuI@ORxy9 zt6}0rG3=v2zV^`~Y~kNetT-Dtu34~=?Y5I)|o^3$BxmA6`5f{~__)uW3 zJ;?$~9agxUaJN0mCl4)`2(6@o0gQPu6_GMT2lBqb4(s(S^+LNTOK1GAIT-`(W`dr4 zJ%u$!8!S8Q=N47q)kH)Z7i(QP=>p^BdrD{ z>ZA^UN6NPI)kLpRMR?4$?$A#^u8V^pq9AKq;=)wYlneSVh-w zWU7GGIC$3sq-t^tNkpz{#pDVH>4mf$AW=<1+Qkgox3D!6q$Sa;QycRL&hb^k`SoSY zj{;sfM8FC+aI|DO01Pm|00Rs#zyNCkHbO9IgzQcBCMiiNH2^B@t|?PWDan+++CV%< zawJD`Bu8>2M^FMz3eO763VwF9C?4JlCjGjcnx!KnYZVL@TY~ZOO7J))6U|eC=_iGYdMQSXph|+Vf8v=E8%jvd z&<>9T!;8M~u|j$TleG5^($6!3K}omU`@QP$Mc8ys@!*NDoMo?lKU-0`A^Z?bX(p#p zB_~2KNjaUAh@tC*r3Aq+de(BNa00=YzSnUU9sUQ7q_s00l38pxcpsQf#2q2NwK;qb zPM-d`{kps4*tHux4~+LRDt}2%8lkfTvzgLa$}UL`uLHwd=unYcaW2*z7%PJCJK-f) zFI3|2I5=G=bs?Hi>9yOz-@tSt&-}!$7!Gd(lW8;g^{3Xrl$N7!RZiX9od)KZW2uu_ z9A%;zm`<&K45dS4V2CG9WYO8$tvxX?SZ66uV;2ledUDLkkm3tWkuOD<#fz7!-Z#7p zj4l$zKU~5{)>>hai+Z{VWApQW%tumG+TDx<;o_nAXlk zs1q6|LnMmtay*iyik-(I6nI7VeVfz)g~3l`&*|-AKBPZkj;km_d7XM`lP4H4jTAe4 zoiP3Cg^5lxI>qILIqkP9BoVpYb`z##rb_2Nk&mWvg^Vj^Pyhyv-hd{|AAhvxEGb%W ztC+zvVM+;}mbO$jw-ij6)V=c8PTI$tm#AYWm-onfx+Rc%d$r)}7g~*kSHju*PeJ6X z_#NStAgY!ATul5+4tx?%5Va{5<|7HyUbxub(2A6@i;*zyrS(;ygA;E6Eo)t{);86QcH2t&-UEU&&-u`Z51gyBQ($cQW% zNoIz)gPamd$Ox0;SaUI>VK|IJ7{0RR$)1s*eL@J+b!=9!QAxN=24T1m@%hB%5Cvf# zsqURCgb_)3AWSK4_T*23fG~)eP+F2#@C)Xt!T*rjb%!(^KbUP~Wph2T4^n&KeK1X) zXxC%n1217qTj$ELH25A&>AsWvBvNWuxE_q+b=rGJDN8xWz{bYL2Ij%B?9Y}=$7@{| zI3BXD6tNn6=8PJsg^Vj?a0~nn<;(Mz9k;%hf!iTTQLHU4YDW-bdcy9<$SMPdV?YB% zXp|BZuY7(QTZHc|U1{(9q>nBBZc=p1~x7dB^YC zcgyxpz|CN|yva%82iX<&GMG54p~OJIR4W^{~>1Dp|aFr0tEe4U-vR`&l1il`$10dZOtbJSCaNlj3Wk&Oa_>3lQ!qx-6&CXL zQZPy!%b#*WY3(fv<`jfXmHbIiFo}GpluTT8Z#4K5j5#^CZ>5~`c_*0VJxu%*BIQfk zn_$v9*B&8zCK!~+D!P=)F5w)Kepq`Om0-{nyDC!=6oV(hTtQzj;T1$>KOw;wCU!kR zo<}g~Bvguy-j(h_MlhxRpU94I5sccG-EP)I1aperrt+3=$LNM&5EDHmouVoP<3s&q z*RFzKmLzUUJak#oGZ4()5=*RyyqttTFnsj8j=N^ja>)lKrRq9GIHA^qTL$leX>v|! zM1@doq4U6W`r1ieP|DP4eFvt#J{2YO(}CedZ5G3|f*BqjXM3^N<=CGjdKjS`z-=aT*vTj*{ScGAw-13=FHc zp<=4t>8;4X6tpNApQStDWHB&`3PF4LWTIsHFfhj!b+UhICa5HiwHKJ`!}qDMo|l*1 z1x5>TVtKMjD@=QJ{hfnLPM5O6=yNLFGd?|JxeC)=s5BN?SA`)+_?D0-vi8>`Q~fkY02@R)~JWY)P+&ulv)Os3(l0 zqI>OvN;V^Q!c?cC#O+xcRVPlE?%!O}me%E@-h@%zx9UV*O&GS~&rFz;*d3p*Hlfr9 z6XsO8POWv*y~0Zv#3TzFzuyw(FypC&K`iNsDt%d|Iwed>c$?fwwdSQW36p5Q3gNpW zEGP-1c&rQGk0W8~a{Cl-Pe>RgsTni9qFnZS#GUt{I>Mkur?$MDjWCHdE#h>Lv7JIj z8025-NbtYajV!`sqVb|OYDJjML`O`DkVKfHwggq7tisy~5vGoy>~uYP2;-a74UtVY zglWgZ_R>wrvak^5y{vNC!b1p?$oXk|a*$&OVK!weDSC%ymPHWeoRVmn{4x;cu+8y~Xr{Ax!dE8Ezx}wmum2edp_w9qHZSgHb=n>Qdq_ zLeD*z^C+2|7S@B&L{-p>oXdl$Q}9a{-|=A7OuZdT*By+LljR!m+7}bq!Ju@hPkuV3 z4#u3kpHrTe4#wX%oy_dAn-ZCW(e{JnVE(K<^O45E9R4PS^k{;EIiFe1qf$r73g2KH zQEJ{)QW9D%ZZPRh%ejx$5bdQlm~xknA0f7EFeM8YO3h!yotVZNjCblxwRlED4Tg}i zmJqFu4^yYX7$IL!9^5~6uV^rch-bp=Rz`>V4CZVz;{_ zMQ0!6)K@B)H9AnsXwIi=IO;k0X?fLkk97BHezP zNCJ*5n78fJdp}E#HG+}F1vWNXaA4sG#}#Y?1RPc{=j61YB{L-Fg7rD7VA8sl6+JUD z-{zo#Ddf2@N+%(XDHwZh$MQnZp4-A91(U>3qjKKw0vu5=h;VbMa$b9tpp6X_`g^Cm52nljw3W`SjBSgO$zaowClO9VQq=MEIan-b*m`=(gWi+;(1+ zU{+D`@=yKd=}HoeYkT@7SAL3|kzmgHXG(lh?zZv~jA3E+H$H~PZUpn$sLPKP%6-Ek zm~K8^ST!Xgm@2e~2+~p~c_KqFC)JZ8CTDB}9fuIidjI1&UkL$@AQ*C}7_u&{Q>aUk z(J%tQ0R*E3^Uj>`B?16&g4BQ*KEnVqut=VOyzCf0qm#y(1U%4U0~|jf96mUX9v}w~ zkj&uN!Exxo9HMfNn8nG+DT2($np_#5C|?< zVaR5G;zleoV4xPOFq9=M{I-+(Si#{m~&q5vY62^ zGSCRq2c;pZs_r1@1{aJl2UGbV--G`3&gNnf=GnVEk~ZUl3q_bJRPbNKK0dl27kV&y8X@wfST~k)9;jLZTf`OkO404a7C}{oJO_c+FqjpFLVA}Ok z5_BBkq7E+TUx?;j`wdcB};V^g3K|^-VMes`4TxzZ-e<`}sCdEHYW3kx#dD67E|}U%L<;LYDRkz7DNj#Zt?ACw;Vqa$CC5%$?-5j33+8+` zIhgr{#61fp4GrCs?_$9u`%mY2eH@GK6--)^q?GL{gh$p2rn9uRIP-D-Z57NSOk7+} zqJq(VPsz_``q`d>xp!g*=~eD0O2O><-4Z^WRMRvH1|4xXlHv&kQ+Bp+N}f+JSfzjd=ML z^?@pSq;^($jh0;Wz!>YS$|Y8AL0)2RBPelhENWS8Ea{){DT8S-WA#X=^Gftech>?mJn63foZMFONwfxoKqJyFqzh= z<+2K;M6v@eXkbvMpF)dR*a`a#43e*M^cwMC5|@EVqy%vmO-QR3#lY-d;VoDsd(#~l z7bG8a>E{Y!=UxAw%?h6?j~i)rewbdQzKQIo4`?U_rxYwD5@0@!>N*VUSlUuE~m}4(k6Ebu(tv zpb?{kc;dbjw$U;!Amcf47Wnv0+-t)067)k#o_;3G`*J!|@{~-+*99g_X~84~VU;^1 zFJVm2xjNy4mN1|Gx$vQ)l`#6K=Shojdb9@%N|-|2OI1tTB+Mz)b(IKVQgxSvsk47n zNGhp5(x{Oz+N;m#ob>o11POyA8Ity@NAwlRbX+*XtYT_}yu21Cm|Qf%aB|DN<*K&B zgHT+S6?3d&Sx2VI^lNd>u@()Fe3`ZqsAqSc8GZhhy;<1Hi<4sw2CsGCw_wt7HK+ftQ&rduuZ2#fU>ai0dfy;?7K|e=L55zsd3Y?C zC#cA$zl73Du`3u{&J(RK!eAROUVy=1;pbe<`*qDtMK8X9K0ERGau7+y3x#$Os;?2F z0WhwZp@1xAU;qXdG4Mqf%(7lenhG6p^92`7p>8I9K7J(&5nzUd7hBjDTCh!zMH)Rl z3+AAL1>I$?`**^EVdS;t&ov=gI$go6CF0*m?x;0MRxp@Qv1X=C5{y@$JpaY1j_V!4mfW7%GLph(%qe(b1VgIt(IpnaG#cS_yG!|m z*b5?<_mk4w>bf0t$crJETV2xUyb+8RGdfy^)nVX;5KKbNnsU|dx5x&;JmO5q$nCg| z4G6}}vfLNa_5(u}*&p{e6DGubU{JN;BW{xANk|V2QbJz!PBU2*56t;e%0WlPlB3fd zm~u2}DUa&tz+f9%ZsgRfMwkOrun(HvqB~VR92h&tc+S}(H!z$|HX?Uz8yNRPi0wIK zC3#Q{%sFhmLk^aEBGSMlMET@8eI;h`7c;Pp47`v5*?18H-FKqLZdEvHbeO;h@B#*= zkn{!hCi&chQoeYBAyo+XvK{1D!{V#}FI-?qDuQZ??tX9B(F)U^$~4`w0-YCrlqG3t zaze){{7@>t+^OjE=}?71?&zv35z>(g(+Lk1f_~;_1r-FHV^oryMaL-&VJ4>?E&p-V zF@?cjFJ#4-N@4ggXD0I6G2;pt4uf=%!lYZ>R8pu%imhW5CgsUwr${N5HaP|sUlHgK zg+Zk{CFFUk5L;bGD9ovP?%pqwW`Pb+82{?4a&%A0lvb?c6ULq>KW8cAXnFL6Im&DL zTeQqD01S`7#zrShNvd|f_!VOI*ue>dDOvkTapoR#$0mp-NJl0NQbLkiIoy~qm`cv| z`Qd&o>+F~mr6tU1-@>#fe}q)YxT3`j6L^e`jg5^`Ix1njk08@d(wcZ@+tERZJWW4| z{DqvCW3#9s0|rqPbWFlj7x&aZNf0H_A&KjVgsCdY9j)Eb$AiRmJi;~{VKQm)H^S(_ z@_G!BXN2ibMbj-pXAwrfJZe8IiZJ?!WINI=i7;EF(tUX{8CSHJA>#zT9f&aNnQ70b zhaRva4~F^h^7LZC=2UDz2OiAf^Mc)lw0M@kgZZ+Eq=d4M@_DyI z9ou5MYDsl4#`#_UUrdQLSPG^&7%#l`vMr+D3CY3a>BNYS7y3$y;$S$* z{-^8%2jfjjQIh&Y-mKqX*pP4)vVGlGyTQ1YEmvn%mCBVi7?i&y5$B{BwMn0)M%)5?5S45oZ$LrSGL zFYx=HbeJ(!+n+8Nl#&qS zQrB#pc|}JS%rznBqru3(H1;v|^@00Rqf)bX*` zVFlxwe*V!V?}IjVRKcK@v+88E#ZERAOcM3>-1IU9^Oyhrd*q3pTPghNl8u64+w*RB zNFl`#LcvrjmD&zU)$s(QYv?rErxkLPoM7%CD@}`N%ti4q|{6>T&WOV-W{q< zWeMgaVkPSqRfiI;BMBxkdZedbk}0w3K!UMCPjn}dE3aPmfRC;~2Re>G{!+ejN#_)E z>p(l9~*H+$ho5kNKSW=uM*R)meY-7rFOIcD0R(Jp&_G^-EPBR_w(1~) z@uH;C$#)-uNv8$(Qer)V%!S~`T}mR=C{kc z5=zfgusred`$UelLIVy> z@VPIN&=65Gj!YP|*p2w#+7KOK!WelkwtHw8$0f{p=bhqZ-x5YkBOYI(x0+TG5aWuD zA~U=M9W#B~*$yDGhKq!k|J@m+B;Mgh>Poouq zLl`}n$lBSd)a2O^rvIN)?P0`oEDK?9Uz47u{6r2BLKxg~ybQ1RGW{S73c?ihT)faZ zVsWql9Dy*d_sS_XA=NI#u~q{M8Kf8ojjlnXMMsSfEMO3T0}zIN4=bTlkfS{44`vk= z`+MZY59XkkS=iT2OA9(D@EFN2AOwy*n0A!tx4fa5 z9&Cdn4_Ar@+mL{B+`%^NU>h8Du#FIK(7~W~E!C5%&U~GQ5;*2yPD)eVb7e4E0%aWv zLj}Mg2XnUg8}oTT{kmEB18U5;LI#Wmcz`1geKPHyLd31(fP=9thourhgd6=iSlk;- zA(rguc$eg>s2GPE4B71RTh#_riWkJ{sFls9oC7%6V3HYSV@Yhru?Dlm50=klYm89U zV8~W=w%Mf%r_sXeIMQIs3rW~jnymkFpuuEGMLb&U562nIUGmE_Z$7-pIM&<@=JIqc zA3iICLHecn&k3y@BFB=!V9_m@3jYXe@)%6xp7%+lG98rKIK*HSQ_0e6dJ;m*8t$S@ zfFlg143!pJpST>4yyF`OzNpS2^wn$6%6c`_`^*&B_sjxlgiQO1Mg?Qo>+R z*Pi=4#LH${Fc?fJ?e}pP{PO$-<4KQytChkosk~qkcRJ!$nO!inUiVTm0}?|hxA%P|7HpJz=G-fyW=N~iU;!w<`8Z! z?m37UQL%zqSLA5Ud&*m11ylS*>g*Rp1(Wuztf53NzGw=@J#)+9r_{CeAq7*%9%(NB zSpZ;Q0RTucU^KvMbd3vGpvFfORBI8}3Y#HnR;5HJo%3Wlwno?J4=9-SPGpNFA|z(X zv1cDoFr`ir=aDRC)QI6uFn5TG+#xWqpb_H=)CA)xZ9?;A`(T1ee#+TJX2%Iv;#iZ> zg52515_mhUJ6om1SU!|+^bHBR)0mN*H3c6@Fqk?^QC}h_(f?%qovxV`TRBP!zfKXKM@dION zmHZGU1tlTp!v`i2CZcmRLu&LHdSxb6`pv5p;49s&qbaU>Zv{(Ib8XW8{>sLw#&uO4(!ULI@eb zM-5ClM@!FlWb{PksE?iAfIVwaf^VhqfY@1kAX z>HG)3cLG!l52!jL-YsdUl3QrL!) z!ug(wU&YCINgys0WeWNz8;fq*I?)D`oV@gm$`u$h)JvggIOu?|8C=NnULGcqxP|=T*XJAtw=Q zQGY!|3A5+YY!Z?%jrv$_xo)0J#IZ&LxloTt7=I>QuB1(nu-z(UT*xJFA#>_+tjV}S z1~Fo2EAV)Pac(3^IMJ6oDUabX9APw(lUB#5t6skm=Fdo_v!_TW`N9Zu5VN}<_Iz#|YQmD!!F z>mqVe0m4|xq~!#EFlzmqr;b}|Q}TmZWb4rfgQ>@rx%ZGFZ5(UZ0uMeI#8l2fXXon8 zdoW2({q$fol~ljI#cxYF4@Rrqk95MuFUEr@C+Y23?=eH<4yLcLCxnb|S=0`ubfrSl z+Tl7F?!~=jIv74$Q1`yzuN5)}gRHyljHn=Ue>oU`PFvDAonsA)IG8I~_!5s998AF~ zHLUY|gVC=_N5~>{kI4;Y39lFLDhYGz+hCG$DPo<7u#{qh(K=pov8_FQ>&F@l!gIE~ z5oR}Ip$3z_Qv1&(OqF%gU=lfbk_+m7puwPmzUP!;gwJz-oWYR)beXHfi4in|DaR)W z+g(esErY@GhDbSgkuLBcgSqrv=mgU-6%zOu7QHK}OGCUKVlZ#0yqXqF>ZSeBBMgS~ z(IMn0snf0w7I=WcpgJ$tEQydNsxO!)iBjM5o>}sB8d$s+%%?u^zi5(QIIx1zJCevh0nVsyxefklh&Xc41B zhTVBU!EAPEM*h95lUQcl20Wf%HW!g@l_cf2;QMhD!?7TNUtmTJ8ZjC`>;oQ7FnTn3 z+1`DOmO;a#2?iG-JBi=+3wL=i!JHoBKU#{HVD1Z%K82tufp{drbV_P@WK#zcjAq)N z48DkS$3#)@XPP!SFviXOb~y zcnu+#s)7jJ)>S=%U{dd$lwK)ale9Si4hDYunhvk zLk2MLhyn3{fo-J63v9!~1;>LItuVKUq*&tpv?hlYrhF&XqKtYKCZXER+fPLm=9?t) z?t7#J(WW9*6QZhAa#3O0wK-AB!s*kV!kn6;Rz#kZvzDeXB&s4=Msf&U?|LeqVK(fj-cXltkFJh zQ$nVnX#YbHSzU2YWFZAJ_m<#dCyZ<1TW0-J#G)@aaT}X3<*+wCDxAej%L`2y(zVW~ z?W`@b^wD8~ZvYBjWWqf9Tx48M8SnxVhAaR}K(xR6+m`Z6r7X!M$O}uDW}kO5G7ogc z#{o7rUR2`0AQOJagS0Qk3rd*uq~BW0Po-2}_F@tRA4zF0-ZeU{;DsbiN{Y93{_3Y{ z_=k*+88sqd{7P9gEkzN+Qjq97SF|mCgh`);kDNl~h;m~ikEDznVNRFCo01e^zzaq+ zL4F9i<8Nb@;Kd@$H=ielsy442@In#g5Slw~Y{1|}B20QiV zK0B=AJTCxY8lAmzxZBemv_BX{t0%3uravhajy1a%elQ88E5)96Q8PJ=fERr*OOUzz z-Znb-=Yv6=jmvyU;zUT#Y7geU=vJ}C7kV(75ZxEjw@Wg2U*y5$HLHHA)L$wW55^K6 zQrK270%!W-4*uyp!)at7S)lBN9ZVlS1b0)5EN0YLV%mWhbuf31S;!{&@Y4|3*r2ho zK?ieBP9kq& zP+G0QAgbv>t%+zf2L%kUvGGC;hWsgR&)sI@7ilo)JNqPrt7t%as!KZMdv4EQ5;?^! z+Q^(v&0q}Gu8)3dix*|M7i7>=5b-T{+Aqdnwiv-Wwpw)@?*%W!U=o*4Wv$MH7L5$3 zq-`byGjS*uii9FTjAC$jZU8eA2mly3Fb+im(P%_XBWd{*fC6qvFhVpi93mEq#X*rs z7zl!afG{W!2!p|302mYsgu?JioMqwlPd%S<|x(xwYk50%u$=XH9z^~kFgTYa83A4jQXW}{@)J}2spRzf` zX!zGlWda#|J)e70{WDfxLXOK}ccp=156^TRi~-&1NnZhXj+i-G{+j@vW^a6)YStL+c6k^Ynt>8V5Fa4P16zPQN z;BgN4_0Ys+3d7$kI2v-N@9za3bHHi+l^Oj|01G)|+w@)xo_o4-w18Nd&J!bu4WeWY zp!Kw58~NB7kW(zX(CGMj1N?5r_U=Wq(9WYhw_&i+nmJeDNdq7ix`l^-{Q5-*x$R<- z=5o@0#?5&TIEQ*Lv-)it(u9lX%YGCYjUrK z!&fQdrb%;Q`hNe!BF<5r_~>s%A?TuBoHp$zZhlXyft-b?SCrw>$Am^5pq&g5puwD9 z*eWMWSMfE<$c~&$DA2HJ?jI9+;g(-DXaxpLCn}K1ShF@S#qaH8n)ob6*-;ILWlGlP?6*kc~?d18v(qo16P69vOgu@ zOfbVIr%6hs>~&$~p$Tp&Hh3tF3CH(Ymde;Fx?2KKSo*`PSq2Rj6zjTKBXzrYKQ&i^smfRwku}L7{3BW*rh7p2iBIvzT?b$xDCzs?(E0~ZTL-1x z=JvQh!vHM=Zh?r?^&}ww@~j?(kp83x%}aQP&(EsCzfiBkFGvPXnA;;c%cdU+TFSp z&HpD6->n)lJv5N5^GV0c z=6-QP(fy~#Ofmj5d}~&O15f5j2nblzNa0EdxYZ?w1eTO~ z0uiV71tbr0Mm+fYXZriHH}0)L&w%ClgXG8`&Ls8N_(m%rM6wUx!=a1^1fuiwPXhHS ziwKfc?>T`nrrwa&b|ca_6!MVpj}Rgsf?$DRThYqFEq41p;67?9h(*NWolXF0m=>ag zfxT5{Hbk*VE!G83<*QMVNGS(;+w(jboJcU5tbpq1rCB?lUh`S2z z6glHKte!pH82bqQ)$>b9(wlbL&M1?D4nbl?NmWA*LR^_T*jPcLQxGA(lX+CthbT%0~mE*?4N<^3f0yH+|$ALG(#hFa9ys0VX zyo$RJ5I(S1Fd2xYD08nVw?}Sku!+RS=X9VC#jBtjE3FO?mxyp-q#B3L5^pogZBzFp zd?Um0lAl*HiB~Y?FRi~%2cB+c1Z*QbVXVpfvtJ$J9dsMm+&eWD?+PQJ`qPP~TFbfa z!~LAfQYkRQGFET1c0P!Vh?~=f%3bMrv@6lfBoXvFJ!ZtHzS4DV9tCA{rK*8xq*~CK z#FmVtAz(@8fJ!;%+2mo0f(hqx6yOn$kYJOZXIp|cr|k^jx5#ea2g#x7=%wyf~ToTYan; zq{O6XsS;uP7?PA4^r~MZx|T9}XRv>l`^^i+88V}|l9D|0YdqOpc8RR=8qYMoqx6L( z8PVE<@6l@e6D4JlAf9_LOR^f<5%2juf zvk}}gua&BUE}GEs14Xg>6~+3rZyszbKpk-P%>5kJV8ak}#ysf(Ae9mAUlMD}NK|-# z@UVM^gD3))AuIzBz9$e1Nbn-l;50 zah9dBd>17s9K}zbXnH0|CP*r(<=kQFRgY~JB_=q1NhFNUqw&rf{gJLWg1EUvU>1@e zSit2^$n?+o@N5`P>y03C*3SO6V31gq0f?0CD2Usr+ki!JaCY%^r`Yve$G{R3AK9vvaCPkYNFvUy-Er?ySC2tU zFzV^WGmzWit?ds@D6{@l7H2Ibx!ARVy(N9LvzfKPcLk_;LQ=zX=WYR1lf8Y3M#K>m z*J^p@SgXuw)&-uN|}6gmVu;t;1TOX#KPFF~NOW-N(F(kOK+M45Q0V>kWILZczSfvcpSB zkS4{|k2qXKu%P2Efv~g)Ft~XJIw?j%1q|G@WbaLA02Lb%$%wqp8aI1&E(RMSe}tBc zySFdHG=qpjc18{I2f|mFEs9EIkCzO?e2W5AG@fYtVf+(XpPQ;DfQiN%B{i zCIA#|GG6~}Q}N7+7l>k2KDyCr9W(+kSn$N7{2Zf$e=D%dR`r4*r#UF|p!+t8OHUM2 zX2AH7WlK0Uw@hq{^ls4nqiC!SO}n;Y60-JYEy_*5C_D;vcIC)KKLC3V-i_J8;7c-2 znrSObHq044bo!-A^^1>yHn5It0!h#!D?6RpY!qV+@s}BiH!M$Q z26AXEyowHGF+Sg>jiCokpm*#mdL1zx-~Tw2?|#A85%^8aaN#My#NeS1s}l&+AmaiB zB-I8F1g$QBHfF#jH8IFIfjBrj2S@1uo*X8O>`Old)-U^s3=Sb1pIoHwAnYog4DUB`EHCNgv?vz)Pt!zbl7c;d` z`sd-8*ZImVbV7E=v=^)X)&owc7aWgyj=o{Ebg+j zR8gY=j*)(^14uqG_nWRHe`Maf$B}%Pbxp+%mlJk+BGzU#4LlZ?q6;lv=Pd!eL+=;y zpOp>vuL3&)(mpm5C`gS<(ph+TKGHH*iz!~qj???d39^5nt8%*QtGb;%Scm|*Vj-OW z4s~}@z&M<_qYesIv-R-bfy)IuMr9j-NHs~}v6s&NMhiOh+2^wsAZ?>az= zaUX(C--Kiheu|?U-BJdp88M`0CPD1LosP#aW2Eo$$@-;hxx`Z!ClftJ7AOv$hVQ*( z`^ENQpG1}4ycYb>s9UCKJm>o3bq4o2bdFT88hsTgjp#uIKKgRnB2}S&2y#cWU;!~`S%0g- zM(Ys(KBGcec{tjixFsbi?k8N0T+{a{Cbk&zwm$5pQTLh$??5YIOJE()L-6c-8?ymH znnT|qQXvTDCXE#~Ot6l8Q)F_W$nvj^MRB+qaY5u%30HkSy#gZQe4F1t+3VW>!hrSC;C=lhMz3aN&6|b4x8X-kb zp{QBxC2l^2q6aJWUI<-r#;0iQC8-suL5OwHdh{6KY zebb7CR0_1S?Or{sx`dRG>;L3Ko@D9>K?P?zq+=xB#Cl?YEo#_cB3EmVDfS*Wh>XUG z_s&|ap)-F=$sVR=f9D@`bOIEqdzE?Mat^@J*F~^v)=4?oSVn0T^3le)-~r5gP=ip{ z1~K<2X}J_|H;hDD%rzRf(Dg%0>u$cq<4t)UjE*GY5T~Gl#nO_#p9D)LbfaBy#eSv0 zwz#zU3EBp^!y0HoJBdpM0=|`(^1;@~6LmJ-=tYnIB;8<+WrK&?Q^db&&g!m>W@QL8 zCCgYlqqKyEQhyCfc^Msp-${4evWGm(M-xO>q_Jc9HM%cP(K?rx6d9Pp2b#W36l z^ze;duTf*!(5f{MUKPej09#uz;}t6Cs4N|5hPUmg^VW#=4D&$PSao_Teu$d5*j+|@ zq$=q6k}idRip~I}h&vM*^@SQeS?XAT3lFvb+}Bv6Mv{2Rw85qw3@Mr${=H6?r`#ez8$ zgl{X}D_*#Ea3=dJ;R4RFJ09JYe7MG}zAA6%xKFmqu{gMNcnZK+u<<+E+y`Ahs??!Y zR?s}-!PzyQE_S(wjNTTRAN)e>qtuBUh7O{6ve%#%-Sm5MFS+N<_bOL1pe2>!nK;qR z(@<**UYqASpjHcvVPU4ew@}U8Z*#oOnL?y*d1hQ?`>X<_a1g5?f_Fikfhg$q5s1_4 z0!mzL!X;@Yc8=%3rMx)#YdD06v6ffL@^R>I2p+Mh)@NVVIclp~%J$!qt3g5=Kz(`G z!^hZ2pPn2h;kf+^@>2E=Hxnfd|0MxaZmP~@qN{rt*`mV)(dnydHTyz_8|OAc!^(dz zhs1tWMPkX^%Eo<|w{@|B{a~l|f>VQGZ*|6?uc{m@2cfl!Uks)jG}D7kQ^N-=i10oP zf;)@NX6#8ALWF!pcT<#P%2e1o4vNGkr6Tiyn&18;F+*-KxDv3Jg8@5)YbVL3ge>bd zfgZ9BMyC|wT}}7>m3A7;Y_4Q4Hk;Ud)f0bp7p#7t%0#S z)<-$XmEUdEeep+bi|j8}^phJRDqO}TN)^^p+AK zrh2UD(0yQL45i1WegMHE??I&sZGI75M;Nl87lYjGdNtR@IJuQ{;(cp?tjDwc)0MN$ zbfzab8IecGN6wneCrN9_9-{82)n@oq2JLTmjzNK|#w}A+6jx*5QAa~E#KE0qHixYsOuu4H0NF+YziAltPhnN4tSk&8=*4&KMd42~YB&w`xsnSGPRu~-{8xJj{;RD9&purn9zRVa`?$_S_{vjKFK986}-VOe{ z#3U^!0z?tRTiVJO4<>dWn3o@lrf}!ODU3~eZ5fWM~iAjED z`I_ic1r`w8Ho%$BkWd z%ADH+sXP%qI5&I$;_U~7(Y$$GK6Vk_zuR#*4=c9v+n+uR-WbR}3;H+wb+9a8Ky)|y z?e1=L+Z|Hl7!7>(>6rLORO)aL))xl3qBkV8<=rASh$q{=C1r?OeW;Rm8Xnm*k~GBQ z)fdJi;j1ST7E{{GWcsdQMkSfdg3+jC>`qnqf)|b{D&(F|b#C=M#sSmh$z?!{82rtq zDialrJes@HiMnQaL!aSI6Lr8W&$$tJbSmH;2$}Fc~ z)w|6#%*X-eW>9!J+a0uE^T+O^cfhLLSf45q$o`L3I>z#cYxVq zW6S~a13nWdaWLR=$QssbtG*4ItQdF8T($kO2G@tvpzT5!(rG3-Wr|un_rm+;GM|*B zwPB)e7zuCqhC_$N&kwMubOU95=#W&ue219A_&%v=sbFLVdiAyo$ zLPI602X!a~rGIpG3RP!i_k>sAr?YKW9k0A;wbqrSAXOwuTX~yf%cf265^@_?`s>wc z3@vTsygZBK4UFyDCiI71SSWhgi@!Vh(4DovKo;{`G6JlyopaUQl1#F#5N`OCkVdZ3 zg27I^E9G1mbSrI$qf+hZ5p66YefutRi{BnpZpY#Ap zfo)XG4AoAJ@Ku7sEXz);y6%cJu<(%!ejG) z>oOfr1V4QFVuA#*zsl3{XV0c_BhH3W7Ms(|c{h)Mw#P8QgJ4{Hl-Arqs-#L`OL=7o z^fEO)Zh22a5sSgml@J+`zPo zg|I!4hunEAV$UnH8Ch9E>g|Fb_EZ!&fHXLXLtQGN7>H<-BOH6u!d@WB_|)@_Cgz_= zdVay-@c3dRE(0(_xuz_>%n zq@y^83YoGPXTe5#T%}f2^|hUyB#6OsK9;d_;Y8%3mhg*SD<7z-pd(#WVW_B`ao=O7 z5=vN?pZ=4*x)-*5GY+N`Dva_MJT{B&A&Qb!c_5eZ#l5~wfuHae=qURH)m_Q}@%}J!nVT?B=0!sKrDZ>;T|gWWA~t}!klhlY zoE_{`N?xJzH*HZvw5XN}2}}p{JeYGk4Mbp_uOC`k1(d2~ncFn9uwDglqlNY)VD;oe z4mtix5cFc63=N>TmQQoqlLX)~3aZ+G@RpZJ8fE}U zqM6C5D=#)KB;E+H)7EGbuN%F%wb;`d(4mwY9#e#EkJmNxGknS~v3~ike5QEm0 z)O74eT(Wi=#ts@m!P)f~WITK(A#s(nS6RE$<8SFmWee7By<6swmjdYwX zAlh929WiQxeD7pgFRlMM&642NIYhfQ=Edv$X?3Yl^gt9L{pJ z=!jDPF~g8)1{8IakUd1xl~KnyiaNd!%Tx1F$0@!CYSnw31A#hXy4NqZ>Iw&mKD}PT zXbjIdMmBL&qM8~;5+=g%x|~3nB4T0KZqAX#R5^j75Q!q#A76YLh9C2phkzRpq)23} zq7`O3K{@cbo4V(^!#+YXHt%e2T`USCg3WMUSaYv46|qf&KZvL(38a@yS`;cuoGP$L zg47Z7A9Z1&A3v@vca?Rk?Y3QkU>4qv@dIU3qj-M#DS`TF7o!H` zS~HDRn4Eq{9NhyE6{{ru<MjD^|6J}C$Y{Ivmmrmpe0_(mnwA=r}c7k#eGwN@<4d{8@3J-SInB1|NSy zoi8F31W@gHP(j&p1 z3g*TuoxgUtYot5G>h#aCkPDz47X>}uO&{&n55~oGt2|x6>@aV0MT|4r4GwrEsn}@R zw=X^B?fcM~JVPz3V7Koa%A^M-UpsQBL4tF_#DekFsaUI&F!|1Q4z^1fAH=-=(CBNJ zOdhFoCf>m&5uD1@)%QVX@|;Tu%#{qwZSs-R&K5FfJWvq|Xbb1pSM7B6m|^AbgJ{!O zEz@Qu576p|*%nbLmO;k+Fxp;tAdRBCU=~ViL|*AI<`R=JxC@!{G)3{yW)3gz!c0{* z!^`lKRpggr3SD4f?>xwA6-finR=#D5y=C$V)GER_UR zEcw?~QAo#N8@@xtGCN2=j$B`U&+FI|LLmhPi?;+!i?Ib1a9Cq-h4TytB`8x*#qLlqxJ@<3?di5fR~5d9nl+(SRU4a`s?jN&=^JRL5p}t%emB zrIQs3Jpeoa8?)>PExyJ^$Hn1{8?zwp)|0JJj7C1Lo&!?e#6DrRUE2a zk-{F0L?zs8+%?BMrVB<`Bm??h^fy+4u~Kj1lsGSRQglRFb|yJhY}%}1$z1MlFGc6`FmmPwMFGZom$Km0 zGIy|u6IU>f>HicLOevV0WJ=L7SHlV!c%nQL@SJ3ZpAhe|jI4$QTLu{f5up_R^S4YX zGhS4}k;6nbQr`z_{gV-15A)ouR6@u!y$zpmy>u~XD8HdrysV#nP@jIs_h?LgqVHas zF(+=>GK}NLz)!W9VbtwPB_XdPi-N6WsJ%}a&~Uk^&mWzkkbx3&0I}r)d*t}xDTy%{Sg6r#05$^Q1B$f0rUU= z|6iN_|DWd_NCf~w{YD6GduN!4O-V{A9aSQg(Q8gpCYe%7YFeqofFUpt+?{tA`de}Y zgamm6{-+8kRZ+DWOjFprp#oZM%iR1ePhD!JfXZ6@Ma1NlJgpSa>UrxoKY!Y^Q9%5k zdnMh9quN3N`KNVewVo%SR;|{j-jwjxs1uOme=_c>@V9RhkTbIx_GQQf#KxRrmx>oz z0%BgxoXktIWb9TDQ3CRP?lh(GFcwT?AbY)YR377tJ(GYQ&6yR|voa|bBp_qP6!zKa z5fHOEUHmMQ9Oh&o>GR7bZ5DEXexTE)GIukZjJWzJfKJ>?Ei(q(qWt565%{?sQsy2)&N zt(on``EQAV41ZH%wX+Bg(yZXJ=9 z`Y47+ERed^Hfc2x7HC&vn`b{tt@OrW&f^uR6y?9p=jsm+S0LwI`>s}wD&53kK76%v zv;zI|wq$tM3iGS80-bV>tu&0BirOS;k5wSEzGR!;PB2t~&Z$>@l~@*w8C*dzU7jwd-OMFnF6VPG-}wUl}9NMpHj1Kx|9^iB$aAbt^Ph(E(IQ=K&q8# zQ%ar`1=8hdOyaV($s-hKeSh0hw>>}WL4jU>DQ~q~rBeDQ(69Ac#TTk9pOPogmsHA1 zR!6C=?oObyM_IZr%bY-dZqCZlQd!s81X?p{{mSu_T6Z*ol3MC*TT~{HS;*dMQOh33 zf(f*%ms%aemq4B7d(${COQ3WzrNWYG&zUa_Ti{U%WELCGymiWT-6?@G;hUxK99&)Y zNg#JjwaZ|;6+8zefz&R0)OK|`JR*TwEp@Di%h)n)ILu{&ct8SSc~>jhk~OY#9gjE~ z9gaY&%kZ(}T&CtU0)3iSYkcYXi_2loMu!YQ^aCD@K)dCvT!wR#-WMII#-0j17I8Fg zcqjs;V{PZ3&njM0a+o_eMBtGKWK2q@_1}~8itAA9T zOK&NNx3l`El)mk~;qV9qdRxl;F?_`X5J(MI`g66Ue33o=a5OypV7*6~TI>3Jw1@Hx zxQ#HpI39gSRy?D}tg$5po^ z)h{f=Ll3B2ucL~U)V0zvU&z5D56FKlPKD;VdNw`qfJ|>n^|%AFV{27EG1+?a9(F*t zXQ}t@CS!V+M;*|k-csi4j!DJ5=g|SNQS)qyKNp(vIiOX&wspp(tZb44GM#IDuK!+? zXB^N<=A)`o?qYLS2Ksbmi96ps;DCHfDaqG&;Vxzz>Z2WG58?3!WLnDiwF=pDRe?60*|n0XK;`Ys8B?05 zK+Dt&*VG*=%FBVsDSjzWnrsHyUmboCF$G$Wr>Gv5qOdWg7)3KXX68KJqm&chPTBkb zk&ptVIxef`5c{N;yHTLk)7O%AyU)0!C{WUrl<{BgXtr1=&?BCt=2ATIOOw6175-7FxQPp*9t+Zqbq|Dg< z@Vp%8kv~#&1N+51T<6dbC7q3)A5Sau@rKn5KbI);9l0at6xl&81#3qkM z0(CCs)M;id`6nchy|Ugme!Yvye9O?#;M2 zf(Rqf+WX~+%F)*O(pv;-&82wTD0R{;<3$vK^vxtUhuVoisM0?7Nu%vvjDyrrM1=SM z6?EJ$9EMTk5J+L3a`ivn_3jcegd4Rh#rbfF6as0NT~>M}6G__$!wU{Ugb=7;=Hjzn zlQL;(5T@E)l}W{zAR-9F%x9I=i4R8tf%deT!+a7NAP}eHViqfve^>{-)2O^tUzvd$ zMErmfD|O6$WLEo=8Xz5reL#NRGqXIZZo{>O7aKS}n03Q^thSSX)By31y}do4)MvA- z^$H_;K&I?!r={4F$xAx$g{0%dX)pl+ULMe@dc-d9X|@PIO%JgwQ5$}^SJ$z@Oj zq$BSmq>I$aKX6J3B6qOE2_sSmj|d(5=$d7^!qa#M^&@kzvUsLs8r(bv|Np479+kHv zazN_8$a>a!a(#{ivXu@`Qx_})8O4-KEmg4fmqp-!c$F=6m8o0dV;CVFAvF$HfngR1r2Hz4hNlWx6$>a+cX=POkW7 z5K#jv>a1d?{~T4r?+B4}h>b`ZP@77qjMM*GYk#fA2pW)D|CrG2KAZ*v)Np$Q#EJ05itYOepMFF6LXjg`3{dVAahi~g8yqW)0@LM8IU=idTn}9r)*r( z@qCdnpttOlz3v_NKZyYyl~(h6b~67-76yc8il43h!vzsA?0qj=yOQY+kFK#+a|$9~ zK&Vd5NolRJS4^$dC*lRPvemkiF)3xSO+_#wT|jFN-BMhZaoI9OkX!<#{nh=tYzd?%(fA*gi_gax5hRsB%NsF0cJezt>x=f{ z4&;jt(J~~IKxTfeP5Gb9EgdA2K*p!{l;nEODdx@{B$7a`>v8egl@un^XY3$}1VUHa zJH=%!fdopQY_u<}k~{*H#OlY^wWSv%jzGqwY{XsbB&D5d1xX_in_`)pR-G=Mc7$XV zB#c056K0#^l#JoBnjl#OLPXO$<*Xm$lPsCz0C0VQID(gpr2(%oNzjWf_ zX3SjBpb?pbfZR}$L!dTAPcIfeW~L3XATb2`b;S~^d86V>C@BQuOy#-qmZakY9*qt` zjD!%VptC_91X5m?#+A*eq)Q0`{pvP$wwz*0+<`!6|BqR<*6K6GfI#Tjsg6qhhr`Bk z(J^!V@M`u^vC_vrELA0)*V2`R%Mw1I>lJZU#1 zbUOBrfB{g^$*{DY4QwBPyr}X)AK5Lo60VUIV)(jbs ztA&y`px4~LRW^UldJ;DvH0#v3Qnw9=?N4FSEn0$!auamH0*^*Ph<8DQhDU=@Bg8=@ zY(T#WRccfGYe2`OwD`E%J;v}-1LEg$DLJe2I;%9GymnURmg#47Mguy_(JT{d?r)wm zAhtBubn|Nll*hR4;=WsE*_Huer_qClpA2Zzjk2?zr>Uik0VQ=zI!D=O(ZrL8AqkQ& zm|}LdvxLx15{lBv(KN?NHC@vQD~N5-XsC zC-rgKnx&))s91S3zjehvYf%BAF?J4@&G;&5O#!X*cxLTVKx&V??3SC_7LEc^Xj1d| z6RY(~eIS7XVm*wu_+~r*{|V?UO_zoG?*w%AwUtRt=d0SAfIQ{dYd^i1fVd>1X5U+n zPp&1PT+B9SO}lA-QUYo(U$m7Tw{s>k5Ub(#mELE$VkZG@n_8lW2OUjjh+y7a8Qv_5{Z8Ahacut+?E`L_k?GR8eW|qXC)UGEL z0L}$slZ=7%^lNWX%}e3~ zGhE!fl$4UB2Pp5$E^N0Y;Q=~%)bM<*dD@eb9U#@U{#4iJ$~vh7wAPijv~Mf>Ajtu` zV(@ww7gs+>#6TAiV2prT1QZP&P<#uUC4PVdjK(oEt^q0pmk@!MlMM@sAo{bgUZ6 zZGiBFNIJ3vlQ^Js$?)V}r%zu7a(=}L9i3IaConqJjT$u=jE;3fLnIwZfe9S6n7l!Y zi5n0flm1{@8^!igCT&1{x@eZx|2knqc7&`+m?ennb=tQiq3fgmgqf zBpo3h9XC>q4+~7rfOeTDRdfxqm$nmZ!NnGli5ZX?l?>a#WzQ#>GN7fb=qaWkYN|QN zgbe7~;8Og{hLbU%R4PqU*R9y!oDl!QTo`MD0n~{Y(BnIobhsUhx#U8R36n4&D=F3F z>bX^piCCC`0hLyFbIejn@k?i6@&&{y`N?O@^|%4zCQyATE7uwAiI&O&{{nAzf$z<>IvIoGERI zrz4nT0j0WZO|$A(m|y`lix!;Ktkn(X>tW2Yj6DZ{52{>^=K`dJIXr9}(fNTvEzrO@*dS7KnI1hgil{N-;g_E|o} zyC4JQN^g?+`{wVhB%t?XtLl7tH)j|L=*-GzpIrOrghxQEyOv&$`xnMj5KN4KikGBb zRjE(wlotUV)MV9DmWY5ZJ*%@+maKsp4zszfS7`_6&Zm?7$;WHe>L9IX`83B~ za)8R6K8b8-Vj#0?eEDZ;rPdS<5SmG)dREuu252ebIkS8CVhK!afHwUqMV-{8pL%0~ z(if%6eW$7z7c9_G-pi<;xy9`sUr0JY?p}csJ*BZLW>=szQ^qr4aw`x!Ce_G^_x4s< zfetU#c&o{}AeL1i)&01VYIE9tT@~p3V9AyL=l8a$KnJ;R&m6Zsy%-fp=^JcyuoQD7 zr?|aRlnv*p>FHA@nUf}=;Ymz^Oj>EF8#LLLWho#j1u2kne)?3)Tmq6&pk2-7n5abl1QX2KUICyX*4tl%W6`vW%1%F-|p@Zao?NfCD*Jlr#XP}Wqr>t9h z9Lx3Co6%h)VQK(#rXn%^_~Vq>V`N})1Dc+zr|@}U#`!Te_oRCSFE&=Cdj@TaNyQER zoq5SIO>1E2Si7~V8mV*NQ4tiaglS>VvE<%|QQfi9u8SF@HWzYirZ7Fym#UjX;xf zl8Q$g3`7f@pH?Z7C2`2Q#|bx6iQ21|Wk}MS!!d20rDPV1Qi%Z+?RqV1U&30obry9O zD1B8=>`kO&Cnv1&=k6BXJO_*g!MGelVynOm?CX$Eo5kwDC*nJgB0)dcu=E)rQ!~1B zn{V&gGX()`&j%4%3vZF02v`S<4@y{&EOnm(c0VIP$O2`yRn}(6vrN5C@xG}O4oQQb zfWXezbf-}cVlQmch>;Q{dMO~T3WSbb>4SLj*FI5AHxq2MCo74ecedZWlqW=Q7P`0e zo|YSo?J@LJLkLr~ATk_?E=gU0LBs(Apw^laWOZ$PvMbJ&g9u0mvH`wRN3fGMFt-u3 zl2kIfTmnTW7l#eIh7uZj9LOiHr``lqcC`H1*@cu z*Ft`VB3bm?h_I_wMU@s}S0T{@4^mK!+*OdGsxBiQEB+l-D{fhQ zwf8q8-oRBND-Lnfro=`ht*N?VVg(SCg`EFSa?Iu$#eclLLc&B2P1zCKN37?fA=rc( z3N8jgRpn|>P!ch6_YGI-BY!;%$IUR>nEsGnFr-%M%v~6n_@V~n8qt>EQE41k2S6)` zGn3xKs302+Vrojll`=$^j;0aIA07&ux|{yBlJc5V^fBiBN`?)f8axDHIzJi9`GR~; zPN!ecm5Brz$WMn~XD?pk;=EiWDq(ROnT2ZPAcgULl08^4>mVId)FA@yK5i&@ot{;8 zUlETj8JduCc9f=&!jK1E; z#&d*K9qe@>QFJKakQRs2;V=zdQ{;ZiFOf)wcP$TtXwyUb)b=AVKW!b1k?F52V&FaR zE)j=O<U)Nf^S`ShoP{2+?w9M(+ zs62`KwviNPQE|52m0J%;LDS$!{#*Ql_a@bmg#s333K}sbxyV$<+FbNuE|2fBZ_Kja zjHs!!l+G-%*3}-e8CJjeR z(DBb!ZUzB33&->k0*G>Z4CqYDS}6J5oD@eO6Z91nCT9Vn0*t5G!%iL&C{^<<5H>(P zs%3*y9S{xhrPC%fq;>cgOSSG7h-EO|nX*)PPD4DZ+Ds2s`b$|pwa(C+k$Q_C!O1A+^=cKmWoB53$r9+Vm-$LUabqccq;RU08w0 z0I|v0KFy>-F*f}1RS6e`a@~JWw0X#V{InQ2SqrL{#pOHN*AeM>TQr7vQq@yu$h$QH z^XyXrcm~}ylHt?ZdmITg$L6hh^rH)#3|jd;=+`0i=LQ|GMeTs-qHgk=*ccI@qtECW zXbGsR3=xQyZ}=1u#yFGDOd!WP#)-xlI5?LagiR%qMf_WR4IiayB0GwgulIj#aIDnE z%1DXxfG4kbNg^(feuJak!U#U)2P~`A=!1;=HCM0^%(D-$ndVMYd52MAWpAPa3v_@{ z)_#E>3Lr`@mf*7w0=5H}*X=G7iFP**HhR~3!Km=A-OT}V{~-m1#ZE!1-`R4g2rB~> z7PX0#-9rSE_$}tdpk&H#wirXoHCU7%iM%A~h{5*tGDtMUni`UN44Fn~Fm3GMss(|$ z4+ORSPVV9*^;8Fvy<0(j%ZmJ#A%^DBw<#0*h!~@uzz&`T?>7f*EGe}%I*oXe?V`p8}4Zco5)YBu1P3AM$LFPeWkh zDoLK|@|bWE@;7ydrq>eqN;~KwyJvCyugrtelg>f`f5Hir?V{L?*aTITAR3 zAhN8Z1B#czl$qsLa1;h(lqkHG57!GJ#()v+amVm$zPfsv1YwB$e+IHA!h!fQow5;` zBio38f!#(If(JjXuonBFXhRV_l$x=Gs#6tcA}D{Ob4BAqwHy^KY9|zUpq_o#D}(vw zto6|sqOlUKFseg;{D2}4%4pSTC_C5lWdy%&YwQ#_=wlhRB$3y>$NSe% zkV#*I-s&Ew#!kr>KGv^8RSh5QYcVN|Q%aJbYUEL)zY{66KD#4zfZNt^PH>m@LNO{0 zE8~>bHO}F zhT=h`Iyy^BMM&~=vVY9~5w-te;zO?GFm+)nQo|V`zm25Ww~rmuQpMFSadvdNq9F}} zaYaAsdySDym8--Iok}yh^&epw(CUTwWP;u^Hg2P0z{h8HZ*{@8{T?r6DK{a6+IOK- z_G%gU92{IER5TVuj~h{M+OX%DKXr>9eW0Toz3=%T5!e4`kl!yDlsz4MWlh*XgGkx4 zFq(%fSbYE-$diw$EqH?-!hD?50_RR9B-vE-2O}J8qpx>8&NrrJ*bz?DW^U|Upg$W{ zr}^yvW3FcsaokMy>rV^PSy8Q&l8pxdq)Ej}xi+I5gTlk@^;jpo6@%$(H^?g^Udwc> znF8!lNzd9@znBVfJfGg|7BNpte)dbO@b z8F?v$YE^R)-G_(H%F%N@o4ZBGd0vUU9aky)Kc!prgj{`} z?#kwLF32DTEQF|d0hEnPI9~Vdsrw^o%vBgvl8wO^%*v+jy^t$M4*ZbHL`93^N&8Pz zCz^0aIXDm!fS$VuL#f-{N?gewM26E2>4HnX2Mt8TD4a!yu%WL41c2o&!qE*lWQg55 zyHR^r(BH~h6YpJ74>nf98}FC*;m6&h`vUzQp(g~jb&ew|;3)o2kWeysts_cD2xQ!7 zHy5^goH0ALR{&YquLcVMR#q$`6krK`g~~V2wU?^c8VuCycFsmn**c`aJL4n9{;}Jq ziC2g}KG?Ot#7bJH&4*U`GZ3=vVnYw_P>04M)C*`4c(n9_+~qkxMx5p)Q~Fzt&1Xf> zj8=T0g92O1_3jW7lH33ed6gC_Ou@x={a~#*OoM|yPVQgt$`G2z<0Z|+|J48$d{uueR!kDoFqSQ^q^|fJ2yb?Ox zSs4j$eQ%&@-05#&5nS%V%x)#ehmiU>y z5@?wG)VERi3Cm;8xa_6sf`B--$%We_@RUVH5HhKKAnM6P+dm!45r-rQ{k7B3chI5! z_Tq{IOO&f1Ziwj1a=xOC6;~&#f@ViL9xoL zA+ANzN@huH>QZP1b_`KW#3fKVNemJuiOjubh0@bTgU=FveWmaOv|E*!iu?l;x&+4# zNx3@+6v11SCN)3ehfRFOXh@3A0fprI#&ml_2b;WLgHR-Q-R6N#D^-PVNDDZ`*re8{ z_+g;WY3A*-HDnIm0o6c)A)&aW!5yXYm+Q;E(?TLm0y;oKrNN}^@a<5{$XH!dtQgtv zdOb)mwCNux+|64j1p_wzzRURnz1ayDfsx4xHp5gK`I$D+>?V?`|4>!PSaAi434F3s z%d{9Dx3EOR`4Q^_f!lImY_Qw%{+&1Z^)kV>$dPdXEnN$Z6qS=H2-Hul-wOSZlGhrP zEcV#TaTdv`BLBkB?C~om=p2(iR0QIZNZP!Jry3Z3Um5|DoehHVpA12P*NOZdRmV>x zWLGBTuA5U#6;Hyl#1z(&PP@^AJ)Q9xV%OsNO?f-d*#(XQ>6>P21Oa5#UO|VuE#Tf* zZjHcFsbxaZQe;R%PdW(Ob?wgzqjP8wE3QdN7s`UnIC6kUl1fhN;daWgEc~+8=je)p zz%|#j$#hZuZM6`_2|79Y?O-xDVW~KXD1F1~F>JmZ_|^6l$_HY~i=r>@cJC!nM`mCX z1$%&z&_F&cJe2vLRq@C5ykqBaAC?>D;qyyMtMLUTT$mz=d+;PvjEs$n%Z*RU6C`8D zMp-fLkmH}YSx2@YE$R8;La*w0&zJySQ&1|w;zsvpm25RwD`aU*NMo5ffnVOJKl?AM zb9FH?6*)-bsh$aF7`g3orOc^JgwPf8qaaZf#^(rGj`^n*>eAONvxN)|q(zX8O&WV~ z^1U!ALkCQ+BAv9>iIkM~FazbVOZgy_B=88(h)7z9&_OJ^Pvi8~L6AM$sbZ-?K22Xmtp|JTBrz-va2UogSGi zJw#I@dGTPTj$jdpoU^ps${IjURjMTFB|4ymBJ&$9k+Phz z6b5Is8AUgv+^5!6R%75V>Lp|PPRp;~uZOS4YQ_pMa$I>SdKN6#rDC;%ABF1eKF~hx04+r{U=0 ziJHT8e17AWqp6)jiu&|G#TJ zujcao&J6v=RMbz7|LHnb@Iz`W?yk~hk_?5OnpG0HW3C0)()w6j4Um zyD8BQ5CAh$=|ogJ?MM-{Oawri6p(;gBW69k`B4`O8)Z}u-OP?q0o~MYiZzNuz%vzv zoJuPhN=j8T0*}Xy8wRVR3)&H~Mv)0PG62a1lo)`d0+b9uVu4M8m`}LU!*H%Bf?_*x z6k%~%a*sQ99!F4d1AkE>hgWfXmd!vKXR#W;LIQ_Vu_!-U0*9uWlOP(Z?wlIGO~O}> zcWNUxDn!~EnX&_14~L##3s}MgMVXiNGf^BV$*P_ zD_P5q66-7|Wkr&*6pkk|#->3EBN-Gvr|}gAG8Ex(coljw*yC`RC_SXuM5i$p5;E9h zau6jkMyFvY$uPxWa5xm6fQwLdypv#2r2IN2N!u_|bR{e%d$t%5hh6$UYG_(i)OcwKV(e!%5EmV%$Pu`T^yI9kj8`v zRp4h-A=FNbBUVTg(q2(QA^9E8{vO^CzfGnP&CVdr0UV{&ZkOf z)>C=%;x3s#viaueUG^uibG=2`#scLf1=;kaQsoU_$d9Lz<<(pi#;|d|<=7gbV6zwP z=}slc+4RzZvb|w@FKXQvPpL8IxgA4-Bl^%ApThl>le81|frO~n_~1A=A)!BDG-%3QU=b)hQEhjf%o5 z1|fpQgEBu_U!jsv!ln5ExVYd?C~H)aXy~3$lqsr6Dia{s7GR5O^%KzF0*=M8i+dE1 z2hQTi*~D5=QVT`{Q*lIila-`UDB9L@zS!*S9Rx&s*WG=FRB9;=8)~AK5 zB#b*RZHG!(x#`ByFO~<|K8aYH`-|$FayO)eNS9KW3r~ z;IPt4*lactqYD6z|B^Kdi(Tff z^lzvQ(BVN9ZQ?7dlPT1A zZ1tH;Vzd;}BzPnUH-#iAGqMoG&H^dY-tPS@)`gZz?jKjnl*r`&xqH*h&MImwE9R05 zk?kmr4R*1E>|x<)I_1#21NnN+(L1^Zp+9>jPY$6np?l{_4+M>!^X)#H{8n~W1Hu3lx zuK{H{bMmto>TRrq*)4Nd2Ug$Yu-RDIlXiSDFsVtqy%Kt`GzI}^Zd%=gv!7vaHAvy` zu@U?=PqfUX0Uasn-UXes^6ryViv_M}bq8Z6+syJ+-iLgn7 zBGoaOEM1KWsrs7al387i2(kLe<%tAcwMn72I0bRkG&HQB|p3%qEjFqzQy*v?zD=wIEC{`|6_+ySt zAZ)>Y-hqFqqz-pz6P$GLx zm;kYED^Q|rVu&-cPKCvhH;E`j)~IXm;;w=c8mzexm=uaL?6NUDs3dXL%#)xutH8MN z+AS2{5VsONFHHEW?(Dn?rF(J7<@}Lx|A|Vwi_FH(r+!wB3&jM0d z3YNt7&B69YI~jpIid`&=xcZ6ENM9j(682xx1`0>si(x=jViJ?%8wNwnZge_{3jk~g z82Gna4ug(x3FSi>ZZR2R8?sKQA5BD}EiF&PPb#a2ugN9f0q|qvL}OHx=eO=>Jwnm8 z%QK3*VsJ)LRF%gf@?$+hXBS2oMfOV1QIJp|7Nm=aeuIedwBJE;30csSg|yAz_K^HW zo6RicKrBIu2F8SXbAR`LG5wG`6eP> z1G$PxdaZ#ZigHS%O3dKXk2cbe@KM|^yl>V{N^LN5*&)(zSg|1zn6>bG(hn@47-l|Ym{Hl0PNZ%-O9nK=^-2C0$Yh+u-8={RBeagaQYPspOB{m29=tyP_DAK0|wb!Sw}=4GcIv9 zt6-khrP15xnr}EPJed}G%qTK6`2+a8afG#fiLX2|Yc4!PJ-2LeN_mw;jA{f^9f^U; zA70sJil4Ofj`s-l`R-w4(c5RzUdW->Q}=`9KBs z|2R&Bu!*NCV2l2NSxdBn<%i`(BrA&v0{cWxd8zCa4l1Lwz1FbCw3dOQk2x`C}@MY#tybHi@Q$HYdf?WCs+ZOQd0!GmaUCg|^inHA|skpVOIRp5>_}-!k&s%365#!A_`f6yG zu!GGJsxYOYrcfo-5Hh2o^MfV|ED%Ou%#UFHBs=ghCdxRWaQ|n)U+PoTn1!CQtOqy; zaj(2O6WB?tR!|+$z+~V^;Ee*n9zHA`gGr4FBoF5XN78^Zw@2`sNf0&C!~>+lc|Q=$ z(z}?&jM-M*BN&?0k@BpgXsmdFy^5s5Z>9nTY44!lD>9 z+ME+Yvi?+(G)HK3G#mJ%5?FH3rC%3TSB6nB}C&j20Z?vazYPev3v?)00=qi`g@m)TXyb#z-hLjU3B+12V4^c8_CaNpsL= zq_d&QAJKUU?FRsJ(sezkyy}jS(~DG$DDuorN^Mvf9uekWN|JfhG}b&=ppASQx_m9v z2``mIT@O-5#mP8|)66He5C`~#M!zNx`QnIe`+=&NDD$(GKrf6JOc)zSIRjN9QiBl6 zY-3?*D+*0u^~P$`uyR89txZdX^w9OFoPkI9{xRZF`URiM9Lw<@mG4VULfi^nx< zIR#(zmVru0a?}6_v^`i`mynOZ%cQ;s6RzSz-S)(|sm|~{v6i3-!T-#2oACP)$#rOVE z#0+V;1&T_`r-IWy z78K&L*imL#N5@W6k!)tcKVdDk@O#<%xb%|t()NDruGq4Rv+OhL>$iOm7@=i00Yk6* zP^ISnctPn&|0E9*;AWa;da3cI!7rGxSvdYiZeak!)kO$cGUXu{y_;vLiC$ z5Dc8LrSyojxL^`}xinJkhHgMK``fqt4A`XF{hqjiG@XjSbppbN<}YyO2y*a-bY(7Z z1L-vTcs9u{MDd5JJVh)9NMCEjgrLNHs`q01JI1!@@)px@=Ut9grYB1~mgbIR3n3lK zf01(CSr-^BMEKGFHYEay+y^J^rT~v}UT81q@$ z362Z5!I#d5_uA>?S|K1K2D{>)DNTeti z<(e}cxw-WkjFNk0V-l2((G7I;N~2X&w0y)>6M$R>dLQBajyz@D9Nav54TZ&V@LtC< zyz)|Uh%}mlmX&Lg08>F;VM+i=jj>o!HuvK=l*H%}y)=m}xpjLWrDiG;W zB}p0v4kRPd~cj<|A>l+JY$|y`5qDsp)8pB|S^3eozeSL$RyaVns z9`65fkkdp*R}7xx`1(`&Z|rn#E)Fwt9!?W#qf6<8gfw(LBa>1kC;QsbZM`UG)Wn6f zbUiW>9u~hCmH&}4DlRR=PXaZ{JLqd0Pp7OzB2kgiX}O4xk#TWyVs@t-Z6;u+XH?p= z44|M^nq6p-IF@m+m^epqQ)?}Et7LHUyi$S}HB@Rj85>WJ)*-TG$_~ppxu_kj&{W4b z6Lksnh;!46Sklwe6X8jY9C(#=M%uLqsD1{(G08*vl}r%}6F}9OD-qpTj}#34s%1$e zO$7z%%RfmIP0I<9PD;j8$!$_t1Cu_TqS4ZxP8sbzk_IxC3g)sX6e+}{ zqa_+(7?i4M7tEwoIWBjPVjG}|!pCn=N*nCBIcN>Y*|k~I@F#Y$i1qM!SmvR67^seQ z(7Cy^bXEfCttn$syuunst>XHI%EFq$8Y689QYx-;E=4Vo26R1R1LVq}Q__}^PABIv zD78{{(?TM`E0M`4UnNSz%hdXBf!^yIDL_w8SvlOngA1}g+w543 zf|6A>ietj)#1A$*yrNF-?0DN6e^}BkoZhdW#m<{pLl7ohMA|Xtd^1~2Z8iB*E5{mT z|CyYh-g&h(Vf->#H(0%W-I!6@-ejR=Am28(vUpl`@88@ZesFu%@fz3TU{1WzyzL3r zykJt%XoYDP_vK{Nt_Hg;PmMKoeRaJd(YpZr$FKU)4MUJ4Ve9B|xUCVvM<94K9Cx zutvVdUyBaS4ht2h=+z(YVe6)hElnPlPr1kEwF@TaO_t4w011`z4#d8BjR)HL;8`O} z;FJI2U3L_<(GT;gMHh+YreAj}7A^s|rY>!ZAud&Z!@+*{ci+QT!+b;ThUym#x>`e` z?)|G8X+Twroz_pMAaM7(31K^3Y#jvG$ZetF4mgz$G9AJ8{J2X^Wea9w=Y3f zs~tRk-EB_*)3e1VAHowj_n5$6hO5q|g*xUddLBkZO~d+P?vIc+Mynppi^P>yjZF(! zmB}GhY6N!H^HU2ICXLZ#z8LXGUwGV>$SN}|2ny3i?hdBE4K@C{{T?#=Mn{E@GO@Kt zqa)ay++W1+yffUxa@Ea6bKD0o5NlJ*Js0KP=s#>yafXlTZOZrQw`YktGHy$4t0o

    V?W3+S>c7t2jg^ zdcJzj^8&B)JQBpd2Hl`z%*KfrC0s-z5y-|EV|+wvu3a$B6&_tnOhnx{*;4W**Q~%9 zX9}6FqEcO!$ZMJym2fq&DBC1erLlHYqiP=BILJ0MIrM@c?e#~`^E}TVtN`%PBogIm z%!LB6k*6^c6Dy!zIpJR>kgZ)RfmN-Ps`5(ggnzwsDtvu!>bv3*&tVp;z&XrAu2a@P zV_Ou%Sn69lWSCdDT`YE;vIerX%e(?u)k=L65ZGpBcJr*$CpgT~I4XS1<(A(v9LjU6 zgN93-e-^{Oly}9`XEffR@y|n4EMwgG=M_BPRT_hs#06Lyf9$r~@!rxpEZo}oV=>P< z)$0!B1%T*711hPzpM0VeN?d?JZj$4j7hurivFYU{4Fr}r$*lMS40t8HzVxu2`^=Bu zFFjY5X&og2pu(UFg|Bj0i~WNf>l<`ITmh_?=~JX*eb<%ME4!v(^#@pZvqGO{bqjo~ zFy%U(f~oOz!k;opnOqPk7D~h#sGCNR0!+kMxQLC}cn&iXYuwDljFpQxc@DD@b73Tw z!*7_0+3*r8vDfg#syc_K@^r%bWNUy17)V_#Hk5cbN<@h$5hbETl$e!SnUz_YB72z^ z!g`rrT{;$u0Iki(6>eBxrr)m>DEwX!DKb5tPG;KAUdnTrq01dJNaDsiFVEqL5c(Lo z&LIdMW=F5%IXtnkK9Ohg90HMXF)I=`)~DBrF3;gEPm>GvI)^CRd7?_k8s$1-He(UC zjWwENoTZmp^A~BKDXHcKOQ{StX@IT3T&?2Z6855FQa0bA$W&{w&gjfRXE!mk zQ3DZDxbPgdfC#r0VzpW=lI8ROV%4_J(CxfX<7_8Ts6%G_G}l!uG~wg)!dPNQyj#Y_ zW0A=^@f_RuMN)r_ytyPE))CKR;5`IZG|-_)tR-8go!rZPVYvn!(Ui`3thXcSo~Hww|!0T`wy*adCv;6&PNEfwIm)|rzV3p z8MaP?5jhhh#X-k&0Gr8rJ44YJ1)JA%fh_O=usfK&{5~y2r;K`j=)yk=nnaAv|9n=MerncA^<#YEQMp zsOAj&7P2MiBYYL*1|O>*2K63p?FBmaEp+$DW8uy!@!sduXLLz;*(|JUl0k#*V>96B zQ$mg{YT*I)gI>Ox((9ImZ=ZD!r9+0xSdJG_3zJ66qgA7Cwx}vdc~s^>E0D|Gl-00@ zn&UU~n*Dw64_JaV(3yCSqCv>bjlpJ$;cG3ny-|5JEt+&hd+jfwfAB*Z?s5-?F=%*6 zmV#7yC*)M`%MOSmj^u_A5!)$=NFSxp9uXnqs2fReQ@hI2O0kDuc)_^@+d@C*>5_TW1~C>e^&Py!~+0^N;{vb8IjPRbr7qM^aV|5dY zeA8X^Sp~i{hA{j#)(lA3L1`}ki8z0^LgKVpOm@=trebc^ts#>2WKlfdX_>$|MsT?O zb6G-C@(Rn%E*fncS0NU9SB>{vPHP{YbwjKe@shS7;HpJJ4141@a%6Z|*fn@Zc&s5Q zDJgM@)5vZX;v<0ZZsrP-l`bzW?h4XXLP!wI)e=VP%{l)FFhJiK)Bl9Z#LG`Y9g4D) z5?ivdsu7rWJ*YkzECyAQ)OIWC_M~57+Eh4aLZ6b9DbQz;5w4}LE-!{%T`w=Oi@PRa zhW0~WL5%lIo+pDQBVz@Q7LxWgZKDDVUdGyg=@}LGX-lO3bjKAm1zy!5J1~tjA(%aX zhAbM|(4kqJ)cN==5^NHR1Q!2Mlsk*9a@BMLba_-4xes|_uX!d^Yge?f>&u+#fi=HO zw=SN(_Bz5mk{8J6P|gj47daOMB>41v$-8&ET|d}k=kE}|d@H|S}7-ikl=nhLU72vQA8hqP;iGX8%TpOP^+I1NrzF!n34ve zwcC3dGD-m2!oKjlaNyy#r#wdvInROV5xIt3d!eT{gxdL*&EsOZB&jQFh&wB(cU&r1 zQzx$6pC#*=63$$LQc;u_5*B7eSxN!}^w2nut%*JTH$4bv;%3H~4=Zj<^WStmr?3wFTCZE63_mtGjmtupxgsIp98AOOc!BzQHj z>^c5}!sN#jp7zf(2l9V9p}>fD#Drj_x><&uQVAu4;-P}vqP!fo71Zmmtkc?tWKHYB z++g>llLrw_p#z;IpoAxSE8vRk;|(FjCZw*1`*7Q3g30^Iit0wEww_*3R-N_=_eaCq zLwT76-iu?k%8_TbPY>zNHhGC{XcqeHVBrlC$SA893TRYRS0^ss5O-3tvYI{*)5qWB zh-T^L9U6N{%ck@E`WQJhbh8&%NHEEYRq=Rc=No$;KC&hs{3bJR3@#CoRCH8S)LcS*2rz=#BIGGWJRLjcT7$+O z&a?>bX31ypqOuiV$B*cj(k^WMhh|{!2Z|}r{NVHnv#ZZydiJ#&@XWagxZm>1=DSUT zs`pCx%d#lk=S-lc?G9-*p^C!x*RX>|K+)fARtgA0Yjy06Q02b5+HP%K9oMGm&2N55`YC*e9y(?dac(tiFtyIX2n8<6 zP+K8;6Z?R6s{S&nsb4JM9@Ww)I8k(}R{Yn`Cg9{Dl=T}NXZJ%X_{OE;y{72@)EETQ z&3pZNhh8VuixF{q8S?T2{&J^&n%1oNc>A1+a;y0f9Cmx7Vu5|i;r!48@;nP}%IO zs|qMXuMgzOrBQsZ+hx?G z9ngxC30)HN7jyUE({x=;nUY@B(FFq+8`eTscQv;KIupSVgfUOqEmGJlwgd|IUaF-p ztgAaOsGq$&cKX43r*D0!zbFDIR5MVVmxW_t1dJmC*qvb(5VQ!H*Z9o*{c z9tg@L)@X{x-l|cF6qzjhjZ>R=oGG5*1{W>0iK9DDO22VUG6N@uX^^8cX|cwF$izIx zVUet|X!M>RTwWfMig=TK(bP{SkB&v{chajo?3des?bkF_E;3zhIc%c%%WXMaq8IIQ z=oFr<35<}^_Z8t2DJ|>@DaOy$d>_keV(gAjas;`g zTzt(cClQ$lt9=eF{g0Ml`r+WePr|hG!O>Z53k8v4=g$m6e+|Wrvg7U8%6`U_S$}BK z#(k9`OBeJL+NZ(4Be7xm<9*QhkRhCJONxc~*PE>cfB8cFI2jZ>7G6xryFXuB~ zDH`}M8^8pduZR|N>HNGVm-Cz-Z3XYPJPDbJuc}D6>LnqITXijM1biNDQ@8CUzl&SU zU;Z9M6GuKBiULcM#lL?0i24T*@DeZbG_lPrY!12{<#u@p7(Qw@#FR%Z5c^%rGKtzq zq#a}U3~0aycGZLtNuGZt!8};A5$BT|kjEsJKX08_Y$f;nc{?sYFSkSyi|j$2EHSq)pW; z%)}f#g$?J0+hh)vwJnB-qh{;s8 z!uBSqJKGwCqO<4HICZ-}HkL3uIg$I#`5t}G4VhaQdl`A>Eo`*4iln`AjcNIG5H}vF zbrsJl0=<6fcr|3lDf4q>*0q>&mH7>x)X8yYu4dMiO^b{;DUEvONa`JENfF`pD#Tt? zM|d@)=lxv>*HBpTY6$dHbSJ=IRYYNs|^bSI6G&$|+N5=-~21{a#OD%Mvm4Q^{0M!GfcNzI{{~D)Yg}D|o z2m9ifQv<+W)h8w2_}fszb97456D;8sx}V^hj@K4BIFYp{?c(4>iqqJeozAx4IUw=Q zS2%ymD@yXK3l7k)6@qAaj{HS(0U6Q3&I1;tl-#&KOu}pM!sz8cz0BHyKtQ>H)FZ(VgIKCAg{~QXIuZGgQSS3I-VW}^fwLXv> zd{M$;ANrXAbYS~DAF1P>-n$sfxKKFVRh!Cq9>ljT+sq_htm0?G3el@Jx|#O=Jcebl zo>kyh`Df;tLH@!L(BG>;HKn7U4lGp0t0tLoB1NTl$HkUw#?2jnr62s`Z&K;c-zIF( zFGwr_^BZ0r(W~6xJT0|@hQUQH?Jov@rnq7y;LE=1ySPbG$JSf3MM+%<(T$7#<1g{?Ql6aF_IH8cZD~Pr-n$c zX_2Tf{NFmm$Q*c6YG%#TZEkLnc5(l?R9AadIRtjL9oWOE^UnKZ?(A>d>1GK>E1DP} z?{BFecr=K|o*B?{rvKquRRa`0X4N(ya=Hpf^ex+A>60B)9O^lW0@B$Y8?zq@EIxbCTwG1t0tK-<5vzQk@IqN^@3TJkkGc`49wf6Vq`rq zLvg)5UH)RmM^wVJN(d{k+#;J`#b-#x!cKWhG%AiTv9(C>n@-UZKO{0kA*(3+GiE!f zl*8b~$m`NK4+zliJ$V{x0lF#DZGjQwZ%j}9pu-Ucl+vXl1T^AD3$zzeGQB0U~> zj8m0LZ?P-FGSn`?MBZwtzBUy0+EA`Vf>VnHLuGNoTZZnKuUUeN#9+@z`#O}ffL8-wZ+9d_wJX&;z>iA7cf6CMrK+o?$HIX^7iXRtBLuxR-Q+xZ z#a>W+fq>_GqASjeh&NFQ)2ti%9WKi})UPhbX?lGQ>bSj$Q=mgEy6#WzDxPC7DI|fB z^P0bC=uSc8zm>ljzLGNb%UFBJnY^a027#!?(+}w|B4U9s6vyOH;*l5zH-ai=%@P0? zPDzDkMoJgR7dO7Ea-yuOa!b>iiK};OIe8c5r;A-vo|+NJH^?2R-$pJv2!CKR1vcz; z;-_|ILjVE4dnoE;t#_+DaY>Oy1-745770h~38X9J5gP)Z7@W^#-%rn^ueyvE9$F2l zyPh@auIlw{wK*F@I208Z#e{f$Lh$vzh-XB!H+|h(7VCzU$za46-O>+lhYwj4^M}B{ zs+Y5Yxed3k4}3hA%|hph?>x%f4m0s;^O13M?12^I`9{A&@ohjwq#-Hf)4UtL+Q+%F zYG-?&vo|qbG+yYmz63W z8U=8jKd*ES4+>QXS}p!IPaI^!c-LSvOTBiXsO)_jyZC_Pz&}se+l4qPpng$T-nYYB zgE&ht${^%4kIe#?*IC2lG^NTAlP0H;(h0cYOMRx~-ZOe%Ne*xs4nWsT1I z2wz=}iY!{gP|GwifCvR)bCM7$-h0jbT{^K0SVVFXvA(TS7*Nm%)#$3a_)$a`Oc(+% znPXcHGKeH$iu6r0b}c)SKcPadXcZDLEO4PlqU$I#;W3h)bfV42G;5}Qi0`G@IQWAt z6|G9bZW|h5BM6v!loA0oL|T419*G^9@U>V+iFl4Xm}j&K5U7N-iWo)%C85x|a=Jf0 zA+ve3m(y2tGV5Hcs0J;wo7!+bUsI?;hi4rm#z>14IBY>p4`3!Heq@t=WS;By- zp)1XVu1zZ7l=4>65_B#x)dGaT?lfu$*9wUxuZxn9mQ%!vz~icGy+ZG*$ju9rM%7T) zArvvs@i<=?*&l*S?7%y~&?0iALsm6N9tbCAU6Ug9<*2ylSPdP9t7Rw!e1~MpamV?; z*GH8Uas8JTNhYOm_(WdpHNw*Y*ik&kG9<47aQ6Qvw}k(jK6OG4H@B??8gEJ^0IJFm zC666=aUi<}VvNwhs?qM4a0IXaxefG+_WvtVEHonPfjt`BO2~6X*98N1i^5Pi1*3*! zjs^2@oea1ddg^f@=>I3SdGe?v1za^9Dt-yi+7$-cT}2C!a36z^XKjFXyn6&z#i${* zfh}eU;wi&oqGfCk=YJ*F*(#88wBohT2o1-O_=J9HpsxF5*P@qJ7v?_&k)fIC?Cz$x ztCCr&c(so~z_Z4Jfwl;?dNt%1d9)kIoBL0N4A%Y?C})Zf$9f#4WHYE)II3u|$)7{9N(4&M^gx-bolmnU{)34Dz$D+*k=zm$d)htzGj z(jZL*1;>lL++hE-*{y4SaUR1($v>Xd1khrG<2wD;&OhiBLF}4YE)02wF)~4GB_1`7%^SXkV3g6z;ceN)P zhw$RR)B5*XxeS@s>$=v_A4}H3*z2yQOMUN((orq#JdbjB$UNueJfqzMTjITt0HY~J z#X0`%8Ej>bm!T$7Sy?|NlXmZxsCd)!-Ojs>>aU?2y5%^^Nv< zRrcMDr^^T;c1oK()|))5v}(N8M&My0Jz4FnRT1Z~RS`0FRab2|p*?`5Vb*`M1w^vI zkuq0BvyQ>P$&#%@|927rqz>Ch?VlHIMp1EGOf+;E0TJKZy}@1R)I~54{|`Ygw>`U! zA#Y)_3h{GQHQZ_qq71{01)&=N$>NIgm0Mo~xM0*bg3z;P4RTVMIF1Z_ul}V--u{Cq zk4x_0kX$&LXx$w~^#n+b$C0s=Z3dyUeu(~pM|anD*9HTq?Exm45k{&59L&@+Lv_sg z(uG83L-;u2?6yD%&VY%G=9jdnDIg;Y9#C5reFbGP9Uw=P!v9{KfM$>?HKRn3jlun1 zeUAiU#PV{=3+N>@Y_kFB5GJwkv5oC1U=9Im8-{}GVvfamc^@l>7qZbvg}ibu_I68M zYKAqUOVL#3yP@w$itIe96x>;miwKqY5L`0coXjPDJo`*Aeh8av9$Lla(Hc;MZ0-(@ z7qH+NbGBv#T-^+0YQFdgm`?gHjlyM}0MXdpCN_tqU^N>jfM|;JZ$1o5w>Jx=@zVJ4 zXe0tJo)R7s9=8X3qoH7Vo=Av9)3yRLpRnm1950eF>%|lKU z4`almO0)1eZQK$^HS?iZI1_NWfcXVgW!@j0NB@v0yhavNL#2t!ZaM*@mlWxG;?`j4 zLQoW)W|a&fbx)WjC`wF`*32nIgHy@|1Sbk4P6EOt;!=xmMdAE&?J_SSnLffCK2qKS zqWXRCe?*}=R;(!~Dk{Dz_x|i1?BLATnx@OQWt9bIPlDrKS{9d`+~&{a4h4{cJy$W#D>~GF#ahU)&gwUkk6#l^FFmygBe+Wu+SKHH_X~^vU^u5MvUeb z2(rIiW_KU5KWT{vGqPwJl!5V4{;TX)S(fH>jkOL=t`P>lkV#igYXz)i4vTHh9i-9rwvhA%4{w8pG@4Jfw0b|HKx=dq6NwVX)5JUAUc1)-i0xrzXk(lq0~pF>cc% zc%>kCMP3$he}N)GIvfs_=z|x5@INN`k8+DT;0^?TncOREN>Tlt&L-|r7|mt%=GwcC z*la3I>W?bh%Hnnr%y136TsQZkG@Tl`%()*MFZd+tI(=~z;OaNu50#Ui_2`FdC-GQ_ ziHtpznF~Vo{NQbPbzE4G>d*iKsKKg(ObhcLjXpM%#{9)-dxaWSz~JYk>Oo2sG?7kV z_&xP3J^3n)>n;)s7?OoU<$NzqFmEnl7#dxxo(y6T1Zv0&7%K8B@=4fSMiX)CMU3aO z8mni$mma)Gi{j`AKd&T-g7GTeF;%Viy3#7z;iS&`dwDrdP^d29%f5C6t~7qQEPgu) zMq zKTB1)%63~uBpTMPQGt6*79}Z16<#(5iAQz;WpnrOWLGCbc_~1f6M6F>&$L?fh?|9wcJO+}&gf~GZw9_C+e`oiC7_Ogi zN55Ci`NaS8!Oml`0zo-R!2G4`vOgpOd%6q&vs69~M0WUK|A<@xNfks2AmgzZ+;&pf zO3p!HEdIwSuvNCsp}uJRG`Sa$a&qId&Va;9fv82M`%PEM#Qw-Kgw_PVawXh;QAI^yC_yoDFzg%m15`sksV6pnY+fV~4`6kY-qj@eJV93Wm?;0LP#K|P0F zsZ=Bq5H|x%8%)i*H3N?g%oy|gxYEDU#*k5%zHCJZ)=5IsjG?l&eB#c%=r>F0ACJcK zC~sXhnLk3rqp^~Dxf!`_nhhodM^YEinRz)qo`wH0gN&t9mCeIZS@?C;q%qbXh6F;w z4NwuI10$G@JUw}G{0MN*$tmhccOX~+!M_fVwzZjuORSnG#OCHS;d^Q8@L)St8W}!W z&JZ=zRXlmBpO7Iq#%*sGW4Ad!B0E-mhG1Kckj<*KQ?W50@z_zGNnzx1fU!Bx0}jf~ zIb~STERhHe6OW{eq=O~L`@f9jXzR}J6_RK{b5zjd7@6dP+S6HG!FI zgwgnklVEH`F`b0N$$VWsaH76{Dz!y1+U#^2(^4D;;ZL#rT#!mNG8%+r@xdq(StuUK zHN+)Vs=@Gxzt$q9H-Q9x4W;;^>2gz>+bf=6^nZoDHaFCcqMJs@{FLGVO5t)WS`zh8 zFiKhXrzjKPR^idx>pmm*zaS^`{z_3xky<%sQ|UccB-N3X*2@K}2DClO-k_jWp$xq{lx zP{c{Z2@IYiR6K9!sHOiJcFf-e#>gxR2f3*!r>lYls38Ib7o(EP;*=Bd(CH}@MhT~k z-c51Hnwj;~)-GDf%gf@B6LCpIyku5N4{N@ZcY2Dm0|m)LzUas;Afhc0J7_3^S9K_l zPBIJz5s0-`8R5-nVXb74i=|fug9xs{@8-Rg29T9kDus2`F05z;?fgv7${Y{b3+40i zl^duyBlz#MGj>uDqo_R8UhlLSugU^^XT!3njn3-1pIFy;47`1h8tGlz5Q1uVjUo3BOC;hyKm;bc_d&Vg*z9=Dcj|;! z`4V_MPS<8>hbI#Sf?rQ_yf^!CPWm&()<)t|$czPApV=uXJ^s!W z5DM~*JhO+svVSgN88s=_u2=qN06%J4k!E^IQ4+04OUvs|!#Zt>sFLZ{QjArNRb_Of zJrKO?wfM|Xd}B<{0OP3maaiTeg6@+eJX z>q`FMzJdJg)R3An)4+a!hXMlu<_-EHOWBOep64@EqMiT9_FD(IbONLxN>)2g&Ffb|m%MVchzagx8Vt!LrLejSq?Hs3gdL+G##f<;Sv`~c zy^`Z@!?^C5NV-=l$7FoUQ(iXgOAe1EWwO2}OWlfV8805dajT)@$Ul=)YX8}9Jys(k z8vB$t{743#D$H_ewIzUYlJJpuzEYNI#544km{ZgNeqfLUEIj^CW>?NRgLVzRwu$}y za@&4Pyx?*HDiN2N39PXEPq~2ZCGZB&er-?I{foH4<>fxd`wq{|RMtOt5zbVNg~#Sh zO1VxZgQ%H-a;{b*%m=t&yyD-*`O5yHGR16)IWxq^oZm;JvD7thuUUqjND(C|x3-zh zO;i2@EMo%7((A=+=G@6aN0TtU$2a0JdbBSnT6jKm^vA>nFJi*z&t*}3p~#JI?MJ9B zM@{Ui#N_Y(lvMpOdO91#A_>veiY;rMkaJ%ms-jU z{R1RlUR$Be8X?R-@C+(@0RjI>A7b9cfbkLQDRtA9Ly)zm-t2p>@Y)Uyu2QHB#T3r_(Vc$rdy+^jxBM`J z5eaqim}gv~3xz_(6i_MSxp&`QqB9+kKT1k^Nq9+s0hCZJq0@+i&9H1v`Q5{uA3}L+XhiYGo1r>$IJ;-6EWIX4p33 zsSrZ)#hdFS!cg1Rc;MkEt_asZWaY{>_@&LdH3o zrA?lnyFJJLBCOR?JpS=$3k#1WWMSaJO1$TIUTpfhb?wVqccZGApd`*-0+?{Tnd zqkkYcB8RViiqW&Pu=z!BtV^H$kq_+I$A6^WAg$&3zqTE|8GvMjy+=3k*>}^dtU$lKw z`Wsla2frxjP0c5nplD`sSz4T-VN*HF3wRovKYK}my;Sf69F$81;WUctK+{|{KpxxU zrG1N4@ciknaFHREA)2N|RabxXB?K%sv1vEOq$MDjy>_@?zkII0TIK$xwDgO(-TFKj z1)!1%us;O}P<-rD+*Dj)<%0fInSB5$Z*as=;v$NkdzZh9Su}m4sUC1 z!H1Eu)5lEFI~+nH@@enCv#JP@x2g+R-20dEue4e;PS`5VR%W1_e zr5=Lc_Qa3ngS;x1TVED6iO9u;w2Tkr9lSs6RO86)Yps#QmvrTonS&~71N7xJ>fKZ@ zXtdTe5Zk75rOUOK>8Qu@Y`*-~YB;THRKCFM<`A)1N+4M8Vz7*x*>wMUG!|zw>)1mT zD`Oew-Py>zPyVHCluri$aQ~eDYqhi2-H5^amvi7i>XkbuHC$HW zwphnq%|3N35x>mWZ)3*aLks-sgsy<9}&fvAt1!u)S|bNvN*X zn~m|U`@MoPx6I8{RA%8MwoNHTHI2Uo{a^yrQ6BE?;CM+XJ7jTd?# z!J3oNGV->=JKu4;qT}oLjvSnl@~ugqNTA8WL73V$$rcVFta;yYNtpCpzL3?|+8eK1 z3+Z*6hK-Za9Y_ci7;?=lN135#mxP;kyo>unm-{bQzt~tuI7fxZE2Yq-Yb>rL- z!4*I}yJXdK1G0_D*NP!k!|*qj*EclDl+o{z$P_MuamHZ;*(Jp^r?o0ihgj_dpxv~a z9J&|r*Et{KkM9BWgR}{xibTi{g>Y$4w}op~?tROurhUs=x<+#^YO#-nje9*?jGsGA z9y&9NY$UEbA1RXbNd8olf08-bikf--T0v~2)}EZy*@-g>$h=-#C9@lLY2==YR(peG zM=gsS0OO={EPy!4s!AVohT@NxilbEyCGLwtt_oa*4-W~O(=uBU9c!Nw!kA^u^dQt3vO-kC$c5K=4pn}Ju zY%)E6u(OA_sejY@i74txFU3tEMbsWI94o3Z_V?}OE5U-0wNwVrERJ}Op7qghJIlSM zP1W`O19wGagG=9t$hlWP??Xqwz0K+;HVU2g807|3-vl!59v7}jJ{GQl|L}D@B#_|) zx#*zJQ~C42VI5Jaa*l|xQP>8fi*D!N+mXzlVkQ#{&7Tl$x@?UOh<(f*<9M#UtC#`$ z-|OTe98v}Aju`49#}>&{NLH2mm~|X2?jFaN861A)G1v{ndRSExDwLhT)Mn9yTUHy3 ztSa@@>(IY8`p*bh2TW%3q}@0ucHEOEaF9AIbcGDR9V4V?9VTT^>OOvC^_#uDUj?12 zpXx`kZC1yl;d6`Ql7wDRMleTVQTFo&Cq%{r)2XmxN66oVgSFgvKC0i?nOS7J~ecC-UXjXsQ!;&YZ8~} z^qa3{ZsvXQ+WW$RM?G7W;1Tt$37^cN*h3~*eecv8rO(&KAh)otw53cQ@Y&>4>^+B} z_WGFe)F$wva^DF7jhA~bpkX68(;n#KxB2zW^|!SUCgx%R_V>*@&9zZGm^Kg}qWM~w zDmm^K52vef8G5OQaRXWUrDRuu)INrom?(kNpzz^XUp22GSyVn|RVj`Kz&zd36dh(47ep z{N2N~dq%Olsuuh+_mDBYng}d|w*Y;am(w1h+(8<;y7dd;$mGysaM{67EFTn)B&F%4 zL`?tVfxSjh!up-{`+s=d?WpYN0QbouJb!p?D3n{H>TPe0LeC*}@Zq|@-{dWU8gmuX zEYZ=J6p}9c9mg6O6^A4?@2Y-)8tw1;9mmOeS2SYZIY-8UJwIUPh;Tc2OdOtfdAUG6 zCr>_CjirgTiGIaDKJ~BadTVQIR~fVQ6IH*@g6bF}7dBFy?_a8H9s^dpP!?d$`yG@F z?ZNyXfc)RpYIAHVKvk92qp!Q|MDMP7So%au@sGRhRz^__@}f3o3k;mCpsKr!n!-VD zdN>%)ch{{PkgBl%8Z1STbY(FxKPpoPjPNK zPI_g>2q$Ss$jO1{On|j2eCf9 z8GoIAX86aDsZ#OCIhdN!lQn%PQe z<#68HyX;qD2I{}+*Zxv!XD}+WTP%}}2d$>9q7eL9 ziLHH`Z5+>Swp9XA`#ZQp2OKY{r~~mp5M1btnnMh&23WYj04c+(B6>=KZgN?zh;Bgwe+DUExe^rwSpFS*cAW~?quQrjnGk4E z3qoZsOAK}7tG%^r0Y#A>lh{+V^o{L2?{ZXtP=)I#TPxL=r*K-qQ5)wnM3qFpILm;; z=z#o}t^^ms!v_Ng17Lix=aA$S43lCGCdHV`%QU0f$_VF`4lGlt!bK4<4y{t5!6$s; zJH>)v4Fb^$3pHc_G{VXY&P97()tZK=h z|1MxK$#t5+YVlwBRPb30==1H}yT98-C)=#)!n^lGE4`-_Iv4q818^5%8!e7R`qufki6E5S4`$&Hu7wm@nFmfq`K< zx1c2w6^8F&cz6`?CYkWNB6wj;B7%pnL1cH6>Fu^cEDVK;pF_>VBC(Ip* zX$yfepGRO{&4R}yNo?D4MRFca+b4C{OEQChALl5tL2FVG-n+b&#CSpL>~sS0*e7+! zOY%af4c%C-fW2YDyLOPwmu}o8K4&G3a$19P zA~x&0?8_~_rcFHN5gwi;$8&s1X%*a6WYUkOPpbQ@{uq49GKT3ohUqD#xjOq}S6v;J zAzZ`%2t0(t3?BJ4*W<^JR)CGp3mg)FWtp2Z$T>)xN) zG8QK$R7Vq@vgw-H@$tQ3;Z$O=eONj&;ZskOb?$m%GL~B3x?lHX-}OmPPrMrg%-{?n z?30%@5|)7}?94D4T=l4N?Zl=C;x}^QwW2!wz-=AE1`tE|Lt18|RkBk%{gO0NX59Ku}Ll!9UOy>d5{eUW+)g03?N02 zGDbgb3_12lGU5R|_<7;r=V6N+g*6O%j8GA`JtYg^+F1`Q3~ZuPMT^H+W-wdWH6XUN z0mKmiT#8Ys7-AEm?~;4B@S%fiUAcF6($VWd7_uBf1}lX9C3mglBdEa`rsz_eZ{ZTu z_n{Nf=;UGnw;;Cli zz(Yd>_MV`;BVm(pp1?CK;G)ehjFvB;6JNQ7;JhZcoV+E++n<@rP%Y?!Xba8>D5D{Bi5uH);tc7!H0Jro>}n(E$UfV`}Oqqw^oB z%;&}VqPY?aD$mr3P&o8-9Hm%^zw+ZkzUBgKu0-S*vY|kwO3@V>ytF4O`I$g9;j<@)Oz5G{1%x z755rDj@=Aw2HReh6LeC>^|ycTN0c!Kyte=f62S zcWTbJs(G{c8$}_18dNTADr514fz6X49t0hpG-NUp+ztU+m z&T}Q*D~;I_&JuHPt56Y~HQP49>C-1GjvCng_cZVY`-OCMR5ch6ucMBkkyllB=A&nQ zrb!^0k>)Ru_r za9j+0yha#^1q1NQWNtO@uxQ>;lH>I)yZaNfwQvojFc9U1-f^U5S04P}txFmEmjt?D zk{2~8%mTmci#1y|*qTR$*`<+1PGAY+M9?D9zqHo>wL~Gbs)u)o`-Kuf`Qgi2o5#zx z22D++{0kTA!?fQ^7EKUliXSp*$dF&Z7)39*H8ECT**ZSsOIFMj?c*mdpUk%3`oEx_ zC+wE#f-mVYZyw|&_;1C_>nqq7vQRgek8iCqNjgArCLJXOvM1QP0O{lVwIK8jw%VQO zo4qdGsy)jfjP)zH_#PR4%Yus%YP&-`-7^1EA|0}KjmA*6V0+2o^<9#l3;@(7Q??De z42&q)Ij1+UqS1feDN!)`Jv)hNC0PfGzE!~(i|Qs0NHcNMhe_&DQ>_ZL(9t>$z`-#9|fB%_ApNN66CiK(`i0HvSY0)ukhZuL__zF zWHgM;VET8C>^3Y03V;~D6bXn!nuQNWd6wXmxmhIXS#|32Wka+-=?MP z&^ryYPmesm5D(m`)+c=CX&B<)upu%9MrMHma!I@pPzmU@y5BZqE}5U)l}y7EGd9{) zu`}a5P>bzH-3C*?IoZw;1$8jVxu4vBZ6MDFgqu3FRk91Dr=krzD_BdoX5Dh>V;;vWN{F5c%@IcVv@(w zKA3W2QOO`(5Xit7&EQBwrghi^b$>v~B7pyUf%R8(;7K+N_V7_Of!G|!6IVCv<%oVw zO2crB=OPI}y-MKj4-!yY?pr3OAI=OV>j+Q*1JL%?BCLQQH|jE z3d+g8PM37L+dQ7fxhv}C7hHDmktz*no6+~5y-IA4rc`G#S6&iBRXx1mk?bEdgb|H^ zN$l)pE7}f(RtlR59i1j&1rGG^@T#%ji}h9hg@7&0t9TTOtau|2=n@B3!JPcts^w)# zCg;lrrl_>txyR^~QQgP-g*YHoB?)bTi7S4AIys&Ny!L>-x zL3qXA)hlo+Gd2heevG2r?n87DMB#b*Dt}`V#SD|Da2DJi5-|Q_a1FF$3q6e2wXo#5 zBhD+(V0PQz)kryun0d0zvtOPueaM0oN=YNYu|UB=AX2*s#!D>{z$f4QO@3EMH#={@ z=e)Z@&@1d*pc~S98&U`i zF53M;GIqbShK9k}DYD^(iCI4hvYD;#flK`xY+^NFs%v`q_R`d3Uo5%TG5%$Mw+SeadAVslxe(Gf z;ADPVzW&;wvOf|YU1sbzHw!!SRTNJgfYea+=ETgQ_YMU&xH7OqBqhHG>Qq^925QlR zigEJ0+t}1ZY5_wp0KPO?m&BI8Q4uV*0 zJ%!0pFBcyOKDx-TcMatX^RkR45B|oR2@8v~sqU0)_T`nIUBj-=C;imES}h;L_&)%N zKz6^6FjNscRw@%$*5csRLmTYd_k1Afs!IKVrf6%6mbkR|*s2=e08(vFyXyivrA88RI3)bq) z`X)@Lqr)P3+wD6gLr@%Diyv9t==DJPak51LoX{zSi7}*>?3L0if9+O>9yILYE6&Js z;ZCpV5xytM;S(oF;X)4f=mX9exoRKB6g~=8Jl6gOH`{A2@cC1eyiYuTdu`*w*^0*6 z;Jn0QOOo$d*K`GZ^!>>O5PGRFnQPGe2-dUNH-tr!N^!)z3yZLz%IhbqW!ffaE391* zphIFw@Voal5S3$}Xnt3qh!r8mPWiqa^cpag!NX@!41&>cVi{?tOB#7hLEgqA#}V!o zKX~Bet)_m984vMe_UzpIUG&q-*KA5BNfYOTjV5~9FBN2{^#cDDm!)dL{k>o4?bH$F z`e$TK7HL_QzTnUaTW=h+{L0oohcBBQK?tm5j)~~J)eQ2ZL!qekIix?i8H9@4) zj+io*Af97>r}HZqsAaKjs=_h7EeWavXaWCll%d$c4Uhm7W1h_Wda& z=s3}>uw6LQHFbFe<482lhlEohCt*DpfVE-hoz4I{o>_54NtVxOaNgyvx-xd_nJP|0xmXS zC4{?$5Lf%W%Cu4=EwMPaK>&~pf41G(*{~VCuuXs=Vtln8A8Oz|?Agls|6<~40YCW& z+{7{0plJ(`+mXSmt;0L9n-iVQ(Q{D6_2s1_CkrOZq1BLjR7-U%+x-((3%J3wj&W|t zOvc^K>&dUa9P#1Zf`^A^ORZMFPOd_|l1xj7i&ZE~IO`{gUxUjImJS)`stCRsN0%7* zSbiHK@Y^UkwJfV0@d5~A#>ia6MTRPqJqvRjL>ZGj>&gkgRgLyqY6hqqI9da6TRl2D)XPvi+6ibeWnY zN3|gNj8{2@DAVG-QZ|e*pTC8=$aJz(vQ`=rwG8dy)?GO;JlLB60G2Ty*tNuwJy0Uz zP_WpZjgYEVH(n{gJcmoA7akNrmCMQJn|+RKPnS|c%nVzl$v-_7u;Q+vEwob+tV}L0 zb{0T(uW@S3or+S>?WPWK1hpMa-m+|kh^Gt;)35=H3c@rgs&7oFu!hRtvS_$MP6EWO z@myD!l+yJ3b791x*v7WFD|jLjZaC5oyeIRu*3AY^ZML`PSgR+##rPii%$6>E6wHL_ zna%Ji0iJ(J=10ei06tR~ELZKiZ(S)jFtCsXxF1Yj+>R~SM=k0B43e0A$h~^-^ke~~ zIkvggLgqa;M#Kuv1vC&h1qILL>WZlU6mEhXQq8@?U^A?v$C~F&y_aq8&q^Sz! z`v!fj9CBFD%E(zhFKx`2zqqmQ^@?Vo9rE&rcJKhW3<6!x)m8Ei5eE{~FJ7X?H(HCr zVq>s&MQDF;Qa-zDSe=zX3Yq%`9E(?;t9l+cxdd?Y&V@jouvA4SY zs_Hp2gRZs{rStI-KWsyVc87HOG+^`^HM4H-HWb}5mKgyBXvv)mZR~RNO4LI>cTBfs zgHO*L{Km3afuLK1Dd<+&!gCdHP;*U5D)XuqUW#IFlh@bMeO(WgaiR_Nk#JY^=yBCo z@|h!EawHbv5LUG4&`A%A7XZWJ zIXLFA=HZhfI@1>2F0o6FX#prQYU%!XnBr!{B&seEhJP|`vCqXm$_?~cAUs5qB)vWa z(M==LqeqgqhwqpNErw}8W`$$erHhKt5$9zqmWk?E>|C^FmLK=ZavDm*0b!>)**+}<#b{6y8XCsl9l9{ z@Q?KW3YLbA`jLTvggQD0SC)FQ5(~8e&$jXXpxpCp<;odZXuZeC;tasj05poUBZZ$H|Tdg<8 zcMG9uY<2eZPq4P|?Tw{4zA0Cdv5PJV7J(3F7YGkO!>}RNA2IlxmLjlWLU?ItxO0lA z&Pa(vX)9fII0@5g!a_mOmK40O06g~t!&~1Q841H}H4oEdCrmQ#Y6xPV`kvG*B!8{dd3~NofSLAP^`jG&+Zvk(ffcy6H2J|>2#%v`${2n3 z)p_tuGZCw|hIblTY_1EU1N7Yg_{z-plm(}y!B!}HZ-7~U8bZh`{S8t*5HHpLB*cPm z=0%wnklZk%WXBZBsjwkT&=E0Z!$%Z}nc+blwrzFkHoyYk(YM4VU?Z8;P(5{Uanevu!Q?#g!n z$_8t{Nqkk3N(L`|^W`MGpC^QU0+N_})x3(iesc|kx2pu)0rIF8O>s?%Bb?BL;Z-m- zPabF5PW#pExG@>B+YU$)U$2&CZ_Ss)Pnc7^+q;w-=H&?Up^P_zO$`|!HG*=9-cUw8 zskhuLdYLQv02y1rCV)7mWN%(%a>`ANb@H@fNn3&)jRMJbrn6u%qWt`#F71P12!vN5 zZlXhtQE7F{)MPvPmz?h|rvDNbbA$yIeEO5mrzPhl=VgV_J2~dg15arTg+|bB@}9oz zka3F}(7IuA;!X~=4~d@adnO4N`VV^9_eeb2M`s{69s(pYGzdIKgQUaF{FhrPw(Zo7+%>f}VPa}#}CI|8v03`6B z6p@!Yn0xk=H4{#m#iyI5M3@!?vkuGG@uB35mw zkWb_ds9sQb{LvA8W}`N@r<3w1fZKPoh+1uS8ZEWVnCxnf<`Nf`9VKb3i0&k6g1=u* zZI>@+WHNn6@$9BYRW&R=@TVne73dMnG1zoU4}wI5T#}VBeNWZEXGVf+kx15i_+QV# z$YXW%Vx5HmexTIdGT`HACq|0C&-iR{$}={6DJpg9#Cl6Lg@lAig7nUr#=a!vvNVRy zh|*bH{8mcLl&^}78Na#XWIqySSzJW}aVf`~7W5kAC~ok9Nee1~#PPVr5i~$tI$O9z zbZfIH04d6({Q*J(`boFTcHn^lgqn-DA1k^DB;10LdvQdsx}OAMsw;qt|zl<>VO0uNII>xuDFSF@ibvx~R zs((SoU0EG4mBYvshw!Su@HEVpx}7@(H^r&ElZQ)qf(Cp*TGGL@k=NiYjg_TtihFNx zCcy!`Y#?&eph+=4MMH}nK|?JV>-cvWiQkzFxfv6`%^Y+ixqrN~IAwh|Z z3S~0wv>q z*$Y_fVp1f(WJ?GqM2)64?ja*??mjHrjPI*n-ITr79J?IyJd3pa+kFo3$k69mm`>{p zJ*x7=7QrZ$QSYpIo^xJ%M(#EvhWlf?4Q^r*mb4H!fCczIGbqOsbTplRUl#HlANo+~ z=2H~~rS^cLv4G91M-mCN$CA=D#_OLfnV!ZF-H}{Ddme{XBE2~v1t2m7QqW@94MFg0 zm2$jaWgZLRX!$#9aeiQ*r{y^U+VHuZr{#ER*a&waG!_dy>wb43gL!Ceh>faSDn&1S zp;U8BT~(l)$gYcz`^$xCZCY_Pt;%WW>--Ye=wMwi2e%+^#A#|=lL;El8k;h)9VjEkK|-~YubD+>=IGLE*6y_nd!GOt+R$u z3|CRA{mv4egvg@+@zEz@d67bz3;g(dX5Is!RAYp?VHptL8&aY%Le-{>L>bxvT&sSR z5#m#HA#Whgbi+0s=^qj)RRpQ@0iDJ{5ew~u>=+1!E?=9Y?)$-x8`y|W_K%a!-&W*| zhIksuzP|3?dfYuBK_BehHF4hs%kf}^e88S4nC@?y*kSNJQ)bDMG;1TK!RkbpdD~LQV=B zu2X9`0rYkNm9)kv^c2g}wKHn1a!r8x&YLP~k5cQBackL{$+_HuETbKhsxdMt9}#{~ zqb96s*Tre3?S7UC9LxXcS8d*qpP+8)Uzn3P;uoKX1$?&z)ofRaOGm|robi0tr5ort z09rC+*vp=|XRF8%H%)5{l!h$NRa4ea@B2@p(P67O7h+P33Lp(Pzg=sT2^6FynBCm7 z9mkI=3_1Vn);_?loZk`dsH~fu)N48qTW6&!2pE8CTbi<2rsz0h_0>}QA8WHRQMB2G z;kZE*qD@1b=b#7dg^vU`%`OW>vKd-j-X03a7}ExaK$n1YF|91A;|e0&n%L?}FLaTV zmNa@(U1Sw`^`c;l;~ianyfhiuxtU?T zJ$TqLv-f);Si4f$ZpNreA^knfsgGr1M&(Tm1h~=1@9!e$z2O{6I}hdKd6O#!;gXsB zM->qh?75B`WpY#3Q`?7PAP>eTpemSL%zNe{sq)$C>{1pW374vtht~0_)It#LAm?LGWRj6vYZknmDrPlY0b@5E6?J9I4jZ5}1O8FntA~Xr7tT%a* z!NDqh#m=r;3Q5pYe^EwZnA)`oW^O}twuhRXR*NaiLljjOTovMP4QK7?DXXZ-8 zeqJMz7epgtk&00Z?vwaZjWYci$`IMtN!>4M14&Mm9!m7($P z`5Cl!ec>w98MEhf)cvYZss*dfdRZCnyG%nc#uKh=7^BrQMzbd+O71F71JFRKQ&zUn zstv4+5adZp3=EkjE;Fi$ZY19Ak z9e3(k9ng0r+`Y@47FT)452#Rzwm?a?OT*ANC0ZXS(wBy72l_%l6gr%{`(_o13mtlA z@i%nJTcXF-!P=ehcVR%A=a~+FX%wd?KLoopsXQ#G4 zk8-KDK0PN5n&3 zDU@=JBaYwGs_ny6MgpXj)FX8Nu``{s=HO5tlfm3mCPoR8g{^wI8M4mFU}pWRI7UDw z{3`?vSo0yGHZ@KNC3ZMplmrY7$9`G$ZHkJD(j|pg=$kH090vpBv zAw=d6C;@#2{7n^A9w3evRN=2)C5s-jkBL|&SPHb8Cx?BF-E%zE;3ySe6u3$(hu(E1 zoLd2o!#C^oxl7Dh4uGPCO6A*`H;7qu25u>R6tue%o#>z&z1nD-p!q^;3pCz@$H3&m z_%T-02*Uv;z)f-mL9mgP9ab7G{M>#b($FhkW&M=jaDXnSDjucsRSiR{NYA#?WqDK( z*mH#f2c<4N&=nTUNB6nAVHm8Ee9pzr;0~=Wqfv?QEAeSR`YJv`0M=!6uE0XBhYuwY z|D^%)fH{7AAF6;l{TMlts`fE3@>Oe+~r4Jj4Wtx$EVd<5J2UiaoU(J1fp32Po@TZd5c(C2R8H$?U2`0 zr-EQ#5bJ2a%;l?|H!-dMmHn4VLrQ4MIfy-%wr@F7OB?R(uSj6y4dH$2q)5O8xK|ha z?8NOgI&ZigC&AI3L`1I5Tg^smaRf`$`;aLI1tTK}RjfcGv)Aua;Jz}`kA zc=jdTbt_zTH=blO^q0lYizZIR2A0Is2Dymt4gn6u*IJH{c4|Jy4OAA>baUL=qG%`q zBPHM3x)Hld4ZMl>TCbj%k#upih6a~y2(gf$@ti64-rVYRh?u=s$Axxx7O?2v1Itu0 zP6O418)AQPB)6_fQPXk^-ZPB}!=E|{c&Y2=P^~axpB*!dsX}S(d7!k43>fxPs7j8B z>|A(OXpklkcro(sGRUe%?k?cq;R`}aeg+)XDm)d;N&=lDh`P&-VD)p+&SFkMd0t+V_zR5X<fz>!_NYkz&4_oDd5YOwTAex z1228dv_GCV_98usGTkyOyP~Q05w*rXb|D8ptZ$a(pjPJOVk?d6#^q20b1S1PhUTVr z+S=Jja`YX#4PFoI2HpqL2X+JNf$4$oV7+A;5caVM53^l;b~Y(^ra7L4J%m+itq$^t zFUD!Wm?hTgBq!-&yoPME#9Ezn5iZ7WgfUC3)=4hXWt;|Bv(!qRh z!qqs9GiHmmI?^Frjkf_~mRPSNd4$V28nFV3Izb@czwQ|rl|uOeRFrxQ1_CIE5Z-)m z{kL8BZ@~4yZeV>dJzzI*&y_|RR%>;VM|d?(BStpgxJFHIz}Ey(6W?c8K%63ixq{Qd zV!+&BG%$T-X{0IUhw$6KttU+4v$>{cuT0@<9uAhY z-4UFGI`#%{Xhld6RCGC#nP|?y^n>5Q`e6Fy$7*|-P+89rFbak6TMLV|EpsB*pir&8 zBPZ{WBX}QNulx?)zf1k}N8F?3aQ8Cws0DA1QHKO%7fe#?XO8C@J#)4MtheE{g1NxEbN zL1wtW_wL$3Ka%ahbYI#!>ZGfI|U}qTYs*Ii##D%;vm%1IDK}%@;Y`jU^)}&!RCIzMO49u%2L2GY< zhHMG9PYHmEB=+HAt>PpAWtbpQSq(rVY7J)L;YKg7L z8SxVsimQyGf4~Ox1FrUcfWS&>dR1y?V>BX%)W^`Lm-FP{7h0ml4c9dwUCn>nx#09> zHu+(^W4?1BN6`f}#8JNsD682+@rqKawiGBYIY$vgQXXUht%VLkRGrBS6~}m(?)70n zj;qU-ww|i@kv2;didMwaoLBU26OfEmZjO2`#8Hgfxb;saTsbbCjg2rUfPTZm6zMa0gd zBH-~yFt&v+oqRI;d04%4>@1{yHo-sGwPPTkuvo}PeG?KYXl*>GFswgfGGc7R9x+F3 zOe{joLX04`i>1s;=9CG|L=e5y6g_dsD>H;b^nhJ#!1m!JDB$P6JX0*|LHQagkxXyX z@B@>Hc?%7o^ec)QKU5E(2=Y>?eVyt&n1PS=Zyjpi+@=BND*w&d^_$}tcXJy8=jZ*K^R#|*%3Vn7 z?s$^6Lwgc62W&5NAPlVuEPPTWzeLKB96i;K6s~b)^<vu8lP%6!w7tob`h58LVx~7&X$#RlB5pOc6ZNy zH^$;!)@Us9fMR(QNn{o&lVwTKSVj> zbo>J2EMg%5*6WpCbQabL_;ApU=^H@2chwmwQh|3euBaKqgei;2HgoOb52_@A_aRKE>02`5n*c)Lq_Ll=xK~0Zm`EH?tjq z`TAMNG|gb@?wU6wu~E&on!ax0qR!OIPEkbKJE7lPgZDaLq4dY-Li506DmDiZ5E0-7 zDHNe33(NO0DlrsIrAS&b2(+a&e`Mas0hZDw8yMK(KdC;Qj1nBMJ4*XifO>0J zl1Y|GG;6fa!5Y5e?S{U)_~1fgZ|s;nlbLRAA>m@N(*Oov#Jq+MIHP@RINlh)-@R;WESorYd42jZFp=YiIX&#)RS>l3?s2-Y>&%5};E4v)FnkTf zupsqWo{6x>5oPG5Ibv@{@F>MI=u&scQFH*Ditq;TjEx>t4f}Y^)9H+vpL`n|5e*Zv_xZ6paCgGFI?4sPt4SbJs04Q#dZ;(5yZvKYY&2# zrsO37h(ytdi9}6HD;-@57;uK{z7R!KgHvt=-X1#->RBy{2N7uER8L=GO9)EnrDxQ5 zhIkb~?dmnTG&{aH-o!#^)}1conWd@8=|U+0Yj|bG`h4!yVyt95dwln?nui8fq}>-A z!5Tc>S0ow8AL{$X1O^8vl>T)(H!&>&!Uc2}DaZ71l6eVDVWPEC0s>+CFbVW~8-!JZsasG)8iQrYlqQ~nZ%Y}-G zVNYewG1UQ+@Q~#txMyZv##{`P&elurern=~%Pn#$#d3eY;G1jzc7fXY#K+;57|${> z0q-0E`kC&79~i3pI-f)Q08OM7w2-KkiM^eSL#h?S?xZxg%;D*la;gHR|0y06>K9lr ze+Ziz(dB5`zQFdl$Zr`Xm!cj!Httcbr~l#91o*=;mlMk(>bgyU20|IRE4fsoX`F1t zleBUC=9!+_;-X>^&>;w{xUd-Fb`dxNd8byXS$Wu)9}(>JP+83=yua@%AD8Dl3W_R% zVW~lkSIEm|CCRxbZRp8juIiLqn3YEBu?$Y!;{bd121Inh;%fGgVRc>K?4`3NYwpxQ zmu5^66iv#l&akKG^ijPJsyGfz z{egJ;Z&_7{hUAEpXRgvp&px50%Rq$~y2L%`-m2=@!+~(k5rJtDiS^<^O=V>L#I2mf zeTtJT$n%rO(futrby6m!16xvmtG^e%F147EgLSD(xihNT+tS8j#=knAI!+}u>4OB3 zN5}xorEriLMNwIR(CdUAF6JVXyu^V5+u|i@+WTwMl*Z3LnkShc;DrE!G>NOz>F2C^6nHgd?UGjr#wcPzI=N~lZ>bAsJ{z^`Cq6EeEt?TD}lV%`u3uY z#bMbfnV+KZTBg9AY}SF60WuuOEVRalrnlVE1*<{R|7WJNCN~|Nw`x|d=%tCO9_$391ZVxRFuc;l1-o#$= zLria$1TL*ZX~0O08qnKG9SCU8AxU2VUaXd2EEOX#!6yfy#p8+659!LQ@zww|Ia8$Gl?y;0fg|1`oNn0#VtL;j(HIkqG)PXwITGTq?=#J6Px zcda%GUE-f+;I{a-T4ek5k;tRHv(duGLeB@a<8BF-Y7ujYu_>D)=Dof+-o+hfOJHgS zt|sulDuJmVp2HE@pOxAWje7b-bLTC$W%Tvjbr$h#Kw)qE3AH3PH0)L9+DHG!7Lmpl zi}B~$6HDB9QlP>HuWrphEq(XjPvB_NI{w9K~boV%RB&q=#jLcZ8GmH%qiIi_QWB-m*1XJF}R)21b|IO=00tXnNu%Z^TjNySroya#>;uHbl!@p13czXg8sP=Wp&)Rly zjEKn5e}L2disWQ9lS_=Yxc(kLcC-orag`+P3GF^aE>}CVtJ-ds_z;{1>Aq*zNgV?v z2-An^3Wf3JSw6S^j>$M`;Zd_Uv7|+Hj*|YxF-Kxs%711an+WxHQgdo!=mO{M3x38o-s^ZF8jKQJU;Q z=<{H{g_Ks1@`X#^dTeWvbtekcvPPF9b#2(HE}<)yJ*H+WvV;P!nN2K^OuXDZp@l#d zN_Hu7+Uc3n8Lnc-phHLbFgFRe2k&7>cg0v*GI!WSn}xaIO^B$EbdINEO85TP*wlQtR-q)KW~~j8T$rq7bl!cHO@NXUyGP z!HCZJvh;#^)ZLEUYcUQE4w5+xY9U)JnU8Gbt%KGIHrVw*uM5M`DiQdvMEAbt5(95Hn1V^9IcLp0K zP$%NBwg52w0(d<9I$ht(j;Uj8K(4mc|7ISP8vK)+_(Z`Oj?TE{Y#0}qN><{Qkc7M)*Xd(9-&XymoFM=w4)4nPlb&))jVN-2|Zf1tW< z1JR$z-ai5^6Eze$bjSt7Q?q|m(iIPt#j7gHMC@-g(aaRS4eTFk(D+pwOAJllb-=!f3R4mb-@Jv<&;6~Eca#2Bh>pF zz6}bGdnB2`5)FEFQ*)bui>s)QzH{={?tmDa~Pf7}r62;6QmdDM0wHJ1Url!gSVYiyd8gXyUdJqu1)5ID!AZk4B9F)$0eDG&FxAB zv~d9hdmR%sk_a;NSZmn+)@FiQo(3TrT0}qOb~#IM19Z0C@0BFxPE$Q7xOjuI+xc0(I z?up973>B7=!msg=?47_8a)R1>OMtUl!~+LWXd(o~93;G1Y=FLhNwd3ancSfLl*qfE ziW@~5U?7J~xsURQVz-1}mhW_U=tFxGn=%Z96lPqhvSKhPFMh!Sol=5Li6#T4L^Rhh zeqz!?uC?L1*-$I-BZSPvo=T?DF3;->k67iX&Snt1Ye_#*l;|NbF=INcP9DK2l==r~ z%mk?{|BO|v13R}aufVSgTYW(%`>1WO28l?BPX$EFA)l?-bq_Q;((wIdD2xt)*}7T; z00w!$fGwi*oTGeivbUGLscqb~BZ9VRP@V5IAifv`#{^p1mJ5qJM1jxlFPA}}V-WaA z4R2M2B}Y$qjMDSE(J>ppq}1M9^y#L zTgCu>0DKLlk03Sd58c`*RRlC5kax8x6Y8v57!N_ZFS*eizGQNPvY_G8IL;a6QVs=9^3hL zfz&=P(|2Sp{r26@1^hGait({|1{`1SK5=-KWv*iW{>KSD$Zbtkj*=jfh)u- z{QVII_dqhE*4!IJWdELlhyFYn{-gwcRu2IOt8=ZBm!}(rI+|+Mye{scAK~xG+Q3yE z-{q8!7u(si5y;Pxx0dBndk<@b(2TJJXFS$&@WJ|`?dG)72Sq9oR34*HJ$ z__#A*jc$)@eg!l3(dlf}whpRhlcD5%ZO0I1i35aMqj2+L)cK?CKgGM8fB-<;Uzmzu z^!D5g1(FRyAnFs7lKlUN(M3^Pw(>S@7ZHTfhfE)SNPFE)pD8-x!!2_nVq!Ey^0^ti z+0zMy=_42MfU?k8Ma~%$7X^EGA*d`uU%hOoU=hf*V6oxb*E;#-?2r~0YfNi%akaeL zBqoPm|7<-Ypy*q`vkWR;o(K%Qz+v&UKme+77A!>Rp>6%dV`TsCmV>UO@;884t<&vG zksus8C`X=f+L@@J5%6G|=%_z|U>=~#h>U|5$YV_47Fn>8%1XKT-?7=p`)6A-8~q!t zjrpkE;l9su&Lr~XvT$ZV)qv@e4qp{un-Pl+St{Gf438((oCuLQX^nc)&I1;GUCmMH zD%bhOg_VRmPaF6M*JU0XWGH4Gi97ZX9$_L}&!T&wradlziC^4nbOUPNK3%hB6oUr{ zoKW0Eg=`bQErDqGpmd{B7Bnf%E5SINYvuIgBl zEN>({E28mXF~CvaLP>d!-JC*a%D#%>Ya3k`ya8a^&ftCF{}E)5zwG)39t3b4LTadV zQn94mIjXkMJxMx)P)=f)&9FvbA@YH|p&TajQi27{FZB%N!iaw%RDfd8iTZ;z^xN-& zxp8feC1D1xgAw>@ez3o|!Jpqs4!&|bbIB6HX0V^k^l@JSqdj(HWDj`R9V<5rqjPF% zY_b4pG6wj+bTn!mf=X!&V$;PLkIYPL7ufiSCkvp0UB$R<{0L#-J9y9}NB&({uiYHV z`YQnvs|N*QC@}rt2uQax212&D62_yZgV-(BTvI1HZ#eZ>(uP!Td(xjMrea~;dCl5n zG%8%9%{->%@E%@bcATIo-+OO@G)&e47dL-{sp34I*$4_A^!J5r&vhO1*TH`mwx+G^ zSkEr#AUj^@_TdTPYyk$ud?GJdOt3*DIYV~}Z=97S-e_OC9HZ%Wtt>R5x+Hrx1HF57 zkYG_pj6@kRF)8csCRSO25H^h3%>>VsG7b?$`2vdcDyLEqIHlQil0ERu^V7<*A3|Ap z6tXvKx$N_~+kE%=xr(8ScLj?HjSCCqTy3CaZJ=arza)uLGlIY$VFwZMQizBFIVYhe zN+l+(?cHrlDW%+d%Ml7s3Ka@1s9wC0^Q5b?Oi3feMxYilH0eT?V{8ZJg;38i^Amf zlR=-$<)CQ!927yHbNA)kDCeRN6qv&(8AQ=1fF4C%qrOq^q3)=sKwWe~fv8xjTk|Oh zvQI;N&q>qwdOas)zDMQcdrxM3&&3`nu;=69>4T&V7LyW|t6%DSo{%pwqOQPb!sM44 zJ&(nwNY8UZ<9R&S=FDT<~+r&KTmy{r)#aX)>><=wboi| zt+m!J;y{6Vw`aH8?RMVV?OeQp0(U5iq9}@@D2k#eilQ#sK!Ip3mur*D@?hwLL=z0i()q(`{*R( z@ou;Cz4P8~=b{n{+&RFDl@78mLogP<)b}WlKrY6lz$uPn`Ad|8%dS$c>v z=VfVz^<`Q59H;N~Tx5X)dm2Si6m>C(0#UQ!^LSnZ3gqeYJkQfxu*HnW?{>}t6u8q` zYpwO46`(*Zr|NS#SAku?o<2;f*l_9b=Y%q537$HAqQ?HD00k(pJU;|KW9CB$0Zot( z!B2n!L)hTc5?;uwkXNBQLRLt~s}L$=g-#(UVOz|GWAdO8QVQcyBkf8UD=i^ELPDjG zP)1Bred7fq3{0TPor;7lO zYS_eMxJ--3m_wN@XWU$2Q3LhEXf&A2i~)0{Ov(?dJuaj4xXg{mWtbj&2v8sf0SXin zx*1Ud#>NIJRF-aR>~M7va!0DnZR~Tq-8`*g)$Ha3^*0W;+wCUaZa1&w@NZs5=5MyY zNiBgHQ&l5t*yMLh8zMx5a#g0K>36%~Z?~KK$P?r5=0@ZR`@1<(*x#InJ%4jis>a`3 z4h&2K3Ovi~lx683K!K&!T5GMf*6slmsLQ&@GBJ<611J!400rKFw0ICe@C~3q5X_Af z1xOn-Sek4}Z47+T(SroY4Mzs;k$Jj!f+~y|pLi$$sZmm=jM`4y zc9%P8=Qg>`9mwoy3XU=(W|V9yryJf-@zbNu9{22V?_e<4Vx#+R6disF;?WR~HmMCj zO_Gu^OG!7lkeE_+0~t49^yv9*J-^+z`^XbUd%KD8i2UtHJ;MBU8oc~=QL4{xr!|j~ zcog+L<5BPVVDqT^4=Im&iULs|d7kI#PGipVbQ=EY8bE<(E*Ix>C_a~S3i3J601C`m zJ7rnkDb2D3S!sTH{3-GSO6lj1nX9ZXMWmE@O6;YlC_MthFC7CYunY$IAs6%Eg)RqeHy^!fsHgla-sFs04VO-xQ=E@I?C`=#R29c|NM>M(JtF(rr9FBPR; zzj(5NBnH;+gYoP?_~3&NKKQ`5^x5;; zt#%1S00m-)01Es7smK?(9gqBr`~fJiNU!1XKA&r!Z=d&k?(_NFgwLmj%;>c{00nA| zvG=ey00m+Opg2b&@;ejU{L4m#+dgARO5(qp&S6@UV90#INFNK-nV1GnSRi08l& zfC4#4t0lAcW>HJWS}SBlYqMe6V1YvA$BUZ9fEqAM%&LsB635c9)`P)d(4Ka*AZ%8S zKWkdFm^Eox58_aLz3|ck2+WRithE+f(~7Xx!m*<*Z40Zdb*;75S`R^kHo#66K!eEW zoSFIA4a~4%RY!;vpW)A%y|qT;5$e`WAn|zXG^D}u)}w?Q{yS>j~Es!K)=#S4-g7#H#J7-Jk2^*E~RF+Nh~F_I*Yk<5AQ1weuL#6v{ORw0r;Lx3=`g9T3o zy4b+5f}%rfjEn#%aG!rdmHm0TM)Ic*00o{KO6rA#dQ<57vfxeO@qriWBL zih2wv5QX8Z!>1)Y&MVF zM=E=q(}43pf4V*W1r&HvDC z$Kl^7Yk#J&V3K7;&@Uau{*K-2>6rExZB+Yv$)vwWX1t^!JT~!oi<&N+vk*e6^Vex$ zlO@ICuZv<`e|>a<^4G^NHgLo|c8hTwACKdRc{~>Nc#O_tvZ}`pM1dFyhr{7;o&pNQ zIhijMUOo*0&Zj1JpO(-@3;=F?ymeFOt=N^fVtn4dx$@SL-~@T=D4;-lyWMaED#!ite6Ws{O_cqrl%1-CgOnat&2z|MjxsF4(Yc;mB?uHiAPq>GDyD8h$Pi$g8>XUX@ZQ=S!*#4 zrKloAM~9HeBGJzw65woqF%FR$H}VYGpb7hl-Xl+ZzzI-QnH!)S!TO18+6a;K@j83@ ziGz}u5Fug%&5#^FvIcX+Q>GOi&rWr%J`khNvyZ-Y)>hBDR=;kobvu-;gFt*MqA}Qa zn}>Wg#OND+08Vxa;zv(IeD$s1ty?1{a|ASyOFy~{N%rW&T1AXw9Y>NReI$u0?}k0P z2^L%Q(Z?oJ7lVWl7MA#&o!T8brxl)ds&~z}))cofGXx+I2fg(gLI*=6@ielaWT)26 zc53ZV2=b3W{|6OhuZj>=xP2u$bviaWfcmRn(FEAvHLtG6PPNU01O$e&|ES| zzUI_X>M}c$J^_E4{J5D4#3u@c zEMzXAhD*M-s+TJ+t}iJwVOSslV&}-4A7W@S#^9**)rW*TC5K<#g*BT58-3NuuhCcC z41k>NAdZ_Ab+9~<;)k(~# zF<@BHLA=;3IN2$g^wmi$?dqcYr~aagzJVKFK=!m*3)9j7Jawex9GQv}M?@ows;KtW zTK5-?$P-n~6*U@Xa3FD_`iYK2o~VHcR@$)2PLez=eiziiql1o%Cn+sIG0E!7Q0WQS znxE*vFFPI8zBWJuvDBKVDC&#uWD1fT8XD0?UmeqQGO7cM?2#z7fxZfDG4voc`^148 zZVZIO($*0vUEH|1FmtEOl8qc{hD`8yMFC?5$D_v-mo|NPR3W0HMEHiVY7gEAil(Zh|z9+z$>^ zR|-C(p=|ACCfWInMzbxN29#41f?nOSZgOncS>uI1!E!?i7?3SAWf%AWjqijlN7 z1B{9}XqQS_$Y!awO%x*fC?;P`WweN>aDiAQA$k?%eDws3 zN2HE7fE^|>WSFAJ*8Hm4j;ujOwBV@f^CNS7btLjc56um&CNoyzO#SK$F;=47DZ_xs=DY@U0kXzDvd{^jjuIaZCz1wrVouTvtJE1{ODov z1j|Ms9>3}|RL?;52vir%#Ix}TZ9J-9A$(7IYGeXWkWZ0>CD=TzSr~X)zrcn_eOiY# zECWyLST)nY(~4HpxP+fpwWeQM*W6PvNomMaafzu*jZZ}dCAm(nYYZKc9+2G%@VSG0`l9ry`n|R%Yc>QB7QXa#XYC({aWx9iN_z8l^b!bfl`9 z5`H>bjaMCbI%csTNw7VJ`8*xR%!)i6(Z;kjSf7q+IDYB4_T&eil1WdJN=s^HJ|&&V zrzgoMQtHW+q#~<;JRxiRQu69aGHZ+ck~8E}a>(PCl3`DhV@{eqNjjN^rpl+J8oBnQ zO;TE#GyK##`S_*w=}8;)B>tsV>Pf00luxady?WAS*)0*C+AlCFSmak~!=AKbFMg>t zE8(d{vuRPrKD9!-_T){vN+NiAmzerIeR`ezK0SG(uG9#gUaG2V^+xyV$(!}0*Ys{Z zc|W~iPr8p!@9;^|N!O!`4^GyhW5mVH?{+RWL4iA+tGPfqF-IaNiUor~7P(#SmdjDy z(3EvW3`Uq786#1Y(xld$6v@@d<%GFh&Pex0UQ-ZnF6SY}qY<8SA9+Gt%Jn>#bEGY7KIb%)*&^qS+!`5SU3nueJKo4e zCMeJd?{;E#WOlvX&TCr2?{;Z+Wp-(HyR@ENnfjgEo$I9E`R-lK_?`Pzn%}w4hTpjn z7B0WbLgRN?-2BdE&|>vFPk@ld?}TH&^9*dcnnJs>WPB2?$rB}XY2u|doFaDSN5VIG zA_HPxU`(i}*r4?zLC$y*F4}+sNt8W7y)!)#y(Fzr@44-{wo39n-#sg;@3~iL z@;&z@eb0@oJo(-grSG}81O@h}eEAV0MvNHYq7oE1LJ9@un7V$15nN1y0!QGns9|T1 z87ogyX}p_9PZu>!(73vIqzoPl-j2uP)v)LJ?o-|GT==}*^LRWS&qItyJ?FWP$8!_o zQGT8yF;#iqj*`J6`}1AM@I&S|)z$md*y zLV-E8%moH3%81s~4z(Gk#5iN&l*A^Bgn_mOMKk-Ii$hT04o%1#8M!C~1sdUr69fhJ z@Em#G6A%=LM&a@$hQ5T0KTu!^4JE0^*^)bVxPECB9>5E1j162+?%>hn3#~N?t#6vw z0tp){KV@oKGz7NNz=-vrv*U?c7`Bo){aba{<18~ zvMkG}v8YZ}U1fF6Kn4sWxdC$$%hEy?=SN~p$PO}DOm1``k90|LbH|9Kb;yEq&N=5F z*4EW}NH_YdBqTs0zz3bhykoC-9FDV~i_yjeTRV zAd-q_iK)By-g~b;@4Yvdr4lzKiNy?kjM|zdWX+69lpW{X0iY>qeMRwhp^Y4r36jzS zi}vDYoPGjP|zPiS}_bj7DUJ(C~x+hkw(0P z1yL_n=!5b=Tx6i5k_^d+q9}N#&?WzEqVHFU%pth0OqeVjCX0L) zBbD|!i-}_OnfJ@t>bk+OmRzyI^O^kRtlRsZDa&)~FU!*QWm%S`*jQA}G}`7;>jhoO zw`BAkFjg)8)snwd+Z>xs7O7|Km21N#pqHbK#n01H0qF2JG76Lblz(q=-5CpJ?6=2=2&gEN%BO%@e7(E!{PLiC10WLgrJ zP)NGr0Fae+0e}Rzk<7Nxi8C{^oCse+xuY?$8F0T%7U=-xIFP_WXX5@gSu|v}b-NL^ zY#A>=vlHQ~SCrSG1dCcUx=n`7VSQL4R>@Y0uPVb|k`6tiF)^|ITO{E@PR|1g+upsN zyU%B2goHHuPLSf^f)VxvuM0ki*kqB{2R$Byu z21Pb#uWXf_vQhTQGT9ooQfGYa27nX|+?R%i)o_(Gv$95M2_MI`Ck~$jJOX`c7PV;APi38t;o?mnN9QF%d92qHd=VOV0m1RHl8Nr0^%*@PY zLLU<(aFDVW=ZvoU&)Mq0B0JmZc04Q!K z0)Teq5_1Aj!U^{EB{Y<#1Oc43y0Bvlzyw>^aG3jDMU-eV;e@lgRS8BWf;Ko7C0U|v zB7_jB4F*fC_1?J$g+(Z+T}AA~PDr6oP?O?w*Vfh^eJ}KQ3?)X5C#)s1N@CcLVwQL% zR*6%#UG}#2UiNLWXur{?+X{c&1E@b6B#T}k@~a*;9ID{`t|DA)(bJ7W3RY(jA#}#Q zo_lcg8G)q$#MfdX8yt&9A1_fIi#WUuJ^_094{oJ)$JwHaGewFNDN^uKq)3rs6j!*B zL^fDOjGo$Hu%f79<2V5#CJIaGJo_Ih)jt)*>;b4f#hUh`r4P3AyilK)tcwt=yGOfW-l+8c| zF&YC8SwL`bW<8XtS+%VxYieY4EFG)H1*Wq^4|Dg%cEXzS1tFVP27TTM+My@4=6q+B5;Yh;KoP3BxTTC{;g# zEIZZDWA})RUtR!Xr?$io{nL*?g)a|UbYF?;*YDByW)(+N@+K154}MJW69Vy5()W); zx;MpILL_f`zc_S(Vm8es~&d{0?PCL~*I9*=oHP%-zU$^{<7xxkH zVyBiYMT!&`c<6OVk-}|s6Mn3L6m3v9g#6HGxCNG4+BaU9CE)zn8;*lBTO3`)X|bZf zeMPbVg*!WguUJ6TDhi>m6@~d?MPV`c>g34bE7p(U3F50?H1xw)$8#?DfRv5v0m*u? zqVVw5NtDcsZi*E}hp%qtPO+lkeRcD`d0KM3r6CX<{Q>AjH+832QS81tihe-K7Ap$f z2c!Tg@}l#^iX!)w!&fg+ATN4lx}iWUARW$}SW#rLqCmfTMh8&+R0+~#3Jo4(X*+a= zx(CY8P8p3SSa5!(hf~azVqSDnbn}8!tSD{|C~%p$PTaxg2!@(px>j;se1LuGvrbIWGrkr_enoNmO^gD?p${s?uU?5hkUoBO z{U20_Un>f%)@uvQjO{2^5pL-QzE%;oR{J$rkpvS-7)KzDtcbKaY3u0ZkRC@{D~i$6 zTFGktTAOe9(;9xnc}#1ENDx6qrP24|QjJQMP6G$t-s@JpmuQ!_ym*QEB)Ov^kN~eh zMWIAm6*mDE4}}la4{yPR}PtavZIgHH2xdAd9THLWGf>>RvYQIhdwtnx>gEh0JZ@%$tdtr|C6> zX>$|q>{`11VETq4i){YEB$A<$Mb|Z1bR9d9MK-tD+-9@cY&M(CX0zFBHV!tM&1SRN zY(lne!`W^&)OOl(Hk-|6v)ODm(`K`Au-R;Gv*m0yo6TkuB1(}qQEG%EN_{t?)KQ|e zcM_%BW)h{^=9tRNv@QbiM}T5I>nml7c8G=(j9~QDDvECHz4j8-DuUFuR-Yby*5*=Q zJp_Ulyw;`GrylC*w%+->dmXCFpWengQA`!!RDunzuV9Uo1<=j=FkTlQR4|)i?S@svMimX#-d7PCEWUg!D)z*Fvb|;u&kiw zve5LE!kjWARAylH_(3E^2iDS&HCRN*csY@|FhmJ20ji*hSyaIg*fsWz!GuIhKyZ7F!0y;;$*5bsWBBv)v(3KWj zZp2XX<&{V2g0j5#<}We@D_=P5I*E@kC+HPJgc##fcY{<6J(MbmF~%4_xnaIgVT^HF zl}!?0DLBr6X4XN)7TVA>$J)hCjUkjy$LrE04a$~t){QymoH^vEOSrsj(Xu2)7}ey5 z9T{RS>coLUis=()bdo})@|EF^+DO)rVb9hGh7kEPW=1TFm=ciL5>ml(1PBi=Vg5?f zk|9HynOi<&aM;0y8!2f`yqL)NVWz4$ey-rzq9hE?IcGak*ewdgV(?I*dSZ}dTQ)In zs>p}|kCK;-GAxEnOo!RHW4I&SJxwFcld&*LK*j_CQ-hNvZPcU{;W0*~i-^luRZz(4 zx@&xaX_Mtc3k#lKR`Ws!o3kWOb+$+_b;e9Cb?|^t#+6$mL}I1sgVS@CT;!z5;kMwo z(0~QEuC!cCYMeIfuhv?!>w>c4P&mUHzWr73HtQCIp>^nzJun%9krm63wV~W zFOZRZ@4e);Ip>VSERi!FPwmI{f*_?!W=*(7L&^<}$`O3iv~>nrfzqlBT38Eh=Wd zl$qh@EJNc3Is&`iBL_}!@8DOgJ;7il3kx*n$eJ*+K_L)iMC=HUEK``c&VHO+&X61h zb+{pJb#KlYFRk&=&a9;`Y)gY{GS+IArFjKsb}I}=mToeXDT!rqxzgjN4C$qe8lfXXHX9Izjxj?tFdj&LIZtpaMxH=Z zRmd)7)|wPj4fhv!@4b~vl^R5{$Z+za1s5tP6>N|hj3yXs(8#jLFu`UXFvb|)+ohXf z4#_1n*A<$ev_>mnN$xoBg*CMfU2Z6uX%0$6JB0kE!;SC``+DiyanT|p_dE=V~jDzxQvi2syd%z6^61)VvI4? zBV_&ngYhDRvMkH8EblmtMHNbl%1XH6&K3(W!1!SU_2Y(`J6E)bVe+DiAQB755Od*Z zlSii-LmMd(k$SPmy26w$54}zOWW;e+K93&*qGX1A`CO2N}cu97-I}Y zY%Ho~Xg?@wL8YZ%6sJ-jAZkm?k}6|QRAmz`FupW#f+R=^t+F;4hn#cHcZu+{1dt-t zvmqp_()f;0Nn=s1!SoaZRMZ)%%Q@$Kub8MCbe09LrF(5Sg+XGXQ#sT!%Q9y$ZFZ13 zY|s;=YR%eMmm5{iVszc0q=lBV6AT-*4{CfjUwrSqw`plCs!mW+IE5xEjFFsRDLChx z^S$?84X!Z8A0A_jahKItRE1k#!*WHJSXt`LwdCe8KAi}Y969riIjM0)Oq!?}0x-kH z#*V8UFZg5`Sr`L_ZCPR?me$a|5J-3ec0C%=(MJGM8gz*=Bk#TUau6|gF-Nqqphaa{ zP@*(a2~QmZ4`Fq|Ofb97zO%*J63a|xm-WeihlL8USVCQD`M^FilKi!d^MxOnW6gbC8e3PzSSWEHP7J}BFY z8&+frEQa^YIp~ zVM%ao5Z?IZV4pRuByL{dA*s~RXdK25!=o(96bmw}Ic7?%ywH**Ob9u}$Q7KIkuM$Y z(x^fXu`$f3r9+5^oO8}No6XCab0)c*K(4R@Q4FlclMfrrzz6M?_ui|*k{MZ4H4ogq z_pEAml=a~vfW?f*4K_~jOf{)u zVp{1`P=f_XND-$jreD^3Vz9 z5p{Q4V%?tNdq#wu3w;hE@LIPK@_n#Xn<%z8G|9v zRgN~oDpLZHPrS;caU%r5X7dtrx?O~va?UyDoXfI9mnK?e#E@CC1_UiY(#Q!jBnKUm z3T%UNd)0t}x2;m%d#{rkSyc6DMUc`9GdP^0#QEI^KwTx3q0y%Z+3z~}s{?2Gu;F&^ zy*E?ENi%1SFlrE>H%@S{xgyJg<*JDdTV;7c?Q$k<3uBBi2h9bmsBUFM%=wE`?%G0j`{H8>igm_DKBdYSn1-SghtC{x&e`c} z7va|D>{LgeMG>XN3fEd6EEZF0<{$|o`5Htrk+P9VQBZqznVjn4LdvMb0YjN9gh*xA zf#Vhma@&Op5p;&Rp&bf( zgj%0YV^M{YqOuZhT@_Eh?k%;KD{5|DWGpG~y^jm^30d?rCA5 zTDtcvrx3^tsnj{&Z2C#NEcjVVs=@ShS@;umFH)&%kU=BH4RDrtCCO65k~MMuKn0n? z!-W~FYhM0rEu0<@c89@z{T-)D!(ZBcJTe0|1 z{k==Nu1-lr0nkur#gdf;29?C6T&`9wJ5P_XxHJNbA!{^h=m}E?MHVkEwKrm5h#`|$ zU9B!yG%yoU$Rl>|z4wB@_uiXA46z{=8y@mrG-|dqI2I>pJ z{2-BpVG_p3S}O+iz4rzYjzx9rYba)h7M#4OREZoZBr&OwL<9f;0009S00;(AAP15# z%u46D0~CN2Qm|G~N-z<~q>&VcVGsi_00RI30000$m?20iq|JI;-{&b}+fXm>@1j45 zN^JL4_^)MnCG1ZmJuX)NFN_1-AJGUC|50Cx*j~m62-%j5U*-+&wiFt^-hax(Wy}P1 z>d!NJtTI3bOA!=x;clJd58MZYnO-sQp~m`>uB*P}bD&bsWaAH69<`~c3;1Ey3IKht`DHg7@_zBXozckybr8<&@(M3_a!cDsO zq&y0fg%2A~0A=&3U+hi`+IiRC21>DY(N?WWsWg69CRWcP{O(yA9g0zqahE#%#_IeN zSETbb_yqVLeuO{ZZ$;DTEf+Vu)@T^sCJl1B0I2-MAiwPTbv%oR zNKHs*d;_Frh!d!`PZHt3oVSoE2X|y7JlHq3+&P0@yHRW-mNHDasIx6a=z)(1=_TQdJ7^vM1}DAk zaYb0igdV=LiwmqifJAy8A-JXr7BoAo;|S;adkLqgX_fRlO|=0z7hmS@FgKd@c}i@g zZN?#y^y+dX3$Rk&$+9l^PHrmI|B^-WjhT#kD^#KBK~zNWp6OPX85g67=TCC4F8FI* zWN9f*YR(i*#C+vpG3JrL<|31qreB~Zygn%L*?18N6LQ(^DcOUg;z?)8@`Ez0QUd!S zf@qy^%djXv&wPwRhY(2;EIoX?I{6P#O10C}+B^vU4m-;hJBpEsHimokHW&!qy=Z!l zO8e*ZS(*@`Uo^^1o?@D?!G?kaDB|%&_vUM7!+5pI-v>w4m)~j~o%J3to^J|38#SqI zTz7Z~DC`U&rGP8QVDe_(&Zz!K9GjHiE_d+-ikCv{;0`OFE~hNCZF}T*e@_^Tolv!g z$bA6H(2B4TpR z>SEUbCwMplJrK5oppx*x6?v9ZTpKb5LuFx(v}}fV^pQlJXH_ZJNttcQ3VbLeE0SuM zM0S0R^m(i$pL48ybL0@DEH1V5GY%sf!E`s%2%eQr_5}huya{Q^^H>@lK6bs(w}zbL znP1SCzSbyII8rX#xQPB5-E>%rvL(FT9PlT>;_S>IXx(3`hYJW$O_s?j(#n5 zAmo1_!>ohSKg#s){`39ADPH&IitVL(@LTBD9=foc}927HS>AWpYoJ;G9PP3^AB%s zXaw8GoiebJavfH%`vqV4s}=r%y`?KJoiPt>_;?zr8C-TIX(rc30OO>S)hCu-`WO=8 ztrZ_w9N_WkI)f97fkrED*pk|Q!#tr10Tullg=>CsVz*5M!c1h~K}{ewobGn}TIUSo zjoTpD9h`_E<(CHpN>3VsXptITLZyR5&8ypxf0}UW7C`KfF`Mw%;sbTaaSs{DG`C;7 z7^xlRMR4glLlQhk;?Et<^~o}4;C#*Su`r3Io{Vy@urm`4ytzB;*-xLJuq4zs%gEz7ZsLF z=obWB6|agKiCOXLAtS^ z>{mhnM$r-8)OV8-y!3|x!*M4HXd(dd${Zqr5Cl!uM(r7^4$11OuoPAoQ9Ti_g-E>% zyW+qa-cmqteL6N99OcA<>Memb3M;uWFRdntN`i_ch4q zZuY>9^C?v<_s|r`ltc(i=Gg;HSIN;8HCm*tD17Nwp@seU#F1(&L5l<}I(Qw@n=O*1 z{%l=Wts&^WnDm;G zxX49-nTbJwS6GP6l5pp_CLK{`Nb=dLkjSY!i0nr;I?xvM@YLxPYnOdby^>Y{f0gDD zR;7}d(*)Yb62XV)YT?ih9iq~p(VK11Jrj+HnDnUt6QRRxL zD9fo>+}@+1o^J$q>K67aCzR!xazP()^v0@Es*-X=<757UWSBy8_;>6PB^hFIfa2R= z3?*an!7>&PJanK|?21u>p~P|bS>$mN{Xhc@=_z1}97BE@JoGu#uleaXzOuSgKt`gt72=)$&5IyMfk-z@wFGwGqGGh%ZTmho9LL>YKs7e-|!)xW>Ea1 z!r)2Oej9@t-FbR!#M+l-OQE65qkuc&q1|AcH-BvJQM53?cU|HB2fj?p%_kF$dLkkF)n%Z=2#vbZ_dKqr(qq{jVyiBd#>YFhm zo`ad{h>GT7?Er9T#r8@hZ32gbdU@E~Bd6{s?bn!RPssGmM8!*OImI(dN!$jtPG0pm zi@uL??&#j{%D@GIWuOn5l*S*`NnFI=Bz|1*uO#Jmh8!0J7~}c}`lBjlL{SIBVQF{U zel?s@;#CV16R8zu&2evAaE?tmhxbJ_=OTz}n;+}4CUv-R{?JN&COC5Uc1~zrjtPT! zS8gv#zWmLJztHy&&{{r|<73bRNkN)cinv!xkr`g64E6eh>@tiiP-Zw2#lgB5ik;Ve1mHLfm#zYB)%AFU zDQ-ne3DHX#RT$<0KDz!_Bq@`N)rS-wB z=B?%_)~Y&x5#Z)HkW&P4-bGApDNpo8OTAP9h1>RidXUT~Ft!Xh`csn5jI3z}W33}G`AOC0eI{Bgn!Gf&qCU0zv@>1Ge&$7N!8ZX!8n7t*lS^2B zt>Hsy*cdp)z8JgrA^ne^Hx$Awc2tdpuaYbh5}C#O8#^%IpmSz zYH{&3m}G4bs&WT;c9@3qp$~qP41bp?C0bAlKaE(8RUETaH&$oAM-DE=0#JY?H>W8w zPy95<+m(zU&$0d-UDd?%huj%wV5&}7rw+sl_a@g`=^ZNh@bk{D7d`pHp_k^gQRKPq z9603hPh_*Qar#*#Mw>>Os!jUh@X-U4>@NLb@Kv&=84vFv&CZ6udWt z2}zZ#Le2qwc5mUtb(wQcu$JG=QIq~H=LwM#WWc<{Ell)`G{}&z>$icvdY!D}G4;Q3 z`3S~1L)@4(I4>bZnyXJmpjo18x!NdPaG+j#MH2O`9S-0smG5+#tZhiiT#6XuGg^6x4;G57 zmOxJqL(m%$sBhu)5YS8E8VJz0aCo3;=G-ZA?i37|;2kYteUc{Vf2jp#))V22T7VgH zE5Wd|n|~7_5*6#Maa6$ygb#uS$R67pq*1l0Tzr$)pWN~OVN9g zi4iYmu~^w4a^U(J08dII=dgyrUI^Dfz`lgXmgpr~#?xZ@6V(?TjUd*hhzAI!M-rC@ zq5_Rzvd5MbUx?|88ojDi5_8HO?4CS%ux(5bUb)#yNU?!Z{R#O4gjXkNmS0EBDx_2~ z8Lzo8wR#*CR0J^xGTCtDv$Nj{5MOSR3erier1<$55Lx|FO42W%b!9aRT)fHV(CA!> zZ;lp5H89&TqjBqZ=W7^aaMKn5wow0< z7;!ewt#%Q^bc{dSVA=EO0*!*oc1P9U8%zQP4O)sB4Y4%akXtJlr2VK$K^JEfKsZyD zfl`%Q;Yqd(N6X!Ut^8pPF|9=GO+d{A^-8dwBAnx=NJeuC#gj9RjW%DUAT9P*Y0vN> zm0vf-J8w|v-o()^d`|^wD$;dZLDuFbw;xaqeIc=)l`%9jG!PLQvegTRXRNHsPC;y% zQ>t&S`ZO>^2r?@Z+^xYrj6b{{_sF?SuzUW%iAmiO-?U@ zqM9iB(7f85n#AxEvc0Izw+T2c(H|qGmoSPViQ?T4jw*{4e8F>uR6XgjxUM>gRt%Pl z%;86Qk|?Yy2_!x6k$SMFORH(>5ak$$yxF>4g8sEQG6pSG?)HyGdB1skd9CU+g{cUkSoxc{8^SDl zZUNuM_?Qfh_Mv+AxwUuM5qV_yXAJcY+|LaKELw^4iu#{`Ur0Sr;9sP3FK}xVE>@ez zWs*?gST8utU9fD4b|Hs|L&JjQ_+CmaBTPRHo{WShi zb)@(e6|PLxkCuzcsQ5aXt$C&m6V~j)H%{>H>`DMi+-{VUDe*~LHJHV|A&m)`Ze>8V zFF_+=QbVNMNOLehG+dgdNz3qyAwWfZy(d8-hHSVLs-(7<1$b+*WL^P-de8;WK&(p( zK|d&oEk#f1-zGjUYMN(?K7K%!uPw+G6cXDyjjLUgQaQs&z~5J~xxS06gy`Z8a#*0% zr3Kv;W#R6zL!%2FNStBBdU9b*pVGFeEgC5?yR~$?VHmC6S0;`Nc#DOQ7^h`>*ij^c zl6td;t8?B-e`t#yt%1aG^|44^9W;VFIX0qChI4r*>QOfF*k}%*9Ku*Vuyi1YT9BLl zCnwbJv%-DRw7?fu){Y@jgwc}(cyAyH+Q|`SJT5Q`!-KOm2APd!Q7tn7)Zq+^aeFjV zgDQ_`ByBgYFyw@;7D$pYDZLUyQnA3m4tqgXr>vwz>bmeTcn-bk$C1QFC>3qDkckSK z(e3!0^w}F|r0 z@*;$PG4ZJb5d~#gnOld6`?vnaO81)Zj%DpN+SdwAe6=VVhRk(ya2w`mv15pT9)c zFtS{x?e>_;{^wu+`nUdY3ohHd@Fp3RG;8~8+%=nBrqHTsVjQ17SJcnn4L}??QQ?IZ z(|jA*rP~;>#QcU`>`SFRtSlTFqz)Q}!_@6YnlUITq`}{aK&I;C!g>iYo-ktuYF1oLwG5ugMz> zw)+D=<)LTQPPqyv@C`uAS!U)tP78Vhf>9}89Md=SVOR-PuNYm7ljmzxihrXy9urhC zV6T1_)}yUAcD4%o;>kBx^IXBWZ|vrLzAyr1?b+jCze+*t5rCVo>1GLUlObL2W#A&&UV zERm!l@9D)hirszB8Kyg4>0ri_l@lZZ)>kaAos_F}mg+uf=B~nW%p}uV(v8s(zq#GZ zqj*PUW#{df`6|CK-)s?6G9{6P!z^mYb{VFenH=G{@I@o(O1)M;A1`CAPK`1Y$pN1t zMgZ|_oH1I{&?3J`5F2HHD$xMKVw5YyLhl6aAH*c;Cp|sx<}BIKVe!^#M(&g*^JE`M zwGRwLLZGBkC|twP+^CkHMM2=@G0bL58A#in1}DmFfxd_%O!Jw&@3Sb|yRNCOP@=jh z_lT;BCroPwk-~u6Ias+iU+-Jn7(TDh1<>9e4`r*gkm+a%Bo(U<7dZ@6q2gAxmxhTw zrE-#DVf%fM811?2_X1O4paJEsB)D|4SuIpwW^OA78&~2uGRAE5ebu&I2^TM_I@>p8 zmemsVA(daHO@xiYixA+byo zMNemDZb=dUFVWU*sTP|6+C%?&N|63|?rmS$_2U%!X>Xt7_=rQawS!Z&RDz~8;gGm? z7iKShp3L|(stc9WDxBy!I^tloKdZvWG1|J&*3DNzeQeU4AtO5ZZOB0q&#YhU?%zro zDv{*dNw!(fd^Y;y(&uQ%(E_9>P4Hr=9MN1XQm|%Z!w%{%BCMB3ApnYlS=fcH0%?N) zadoR*Cb~>>!`OHh!WNK+QG@;JkscC07yAMxHPP^g40>)p8vkbkV zr6-pKlOjn?vDl=*`Ut)p_uhzG5(K*g;HvVkp2;h?G(d2R$)yzvyq&V%onHX;$EM-F zR`d+kv?#B_`H0e_KIjkeqVyqmdbbz_Eg&r(i9A7>OLHtx2SWvr>yG;$67orv(fST} zHx+zZDT_`etke3+%B60>=xXIRfLkh4`k;?=uh_k^(75swi+Odj&bwwM1WU(lU_BLD z8ET#TF#%MB1wv%yLo;n{p)xJHDwVDh{@OxlCzsS&?V@42REi+ zw2EH+R80GnQ4P&A(;XJWl>p;4yfuAbp0OLAdZPJ?1%?BKSPot=W}+gSE80CdxY4!| zSRB0Fj{K0t1hym@Aq#*c4_HnIi(2A4G5)IuK$(l6EDH6eb1(&3b=pvbd?hKOws{{X zlKc`f%8G4BeBiB{a^XlSzf~^H!<_Y zD1HmT5=8UcT))1;bJ=&8;C@@^d6Y`BF(ydLSUDWb48au(494Ta|BH94R1aGRjJ zZ9Z4!*k)_f3-|03YG)`WIR(LQyKR8eNjCaF@=qZ5gN8>sgGz01qdgeX08(m$8f83a z34@;sFcvy+b%HF#4@V#bK|m+z5K4t&?-?_Zq!U+}D8-XzFqiPG%7my%plG}zndUxH zAOs_oi4I4o2)|o`AaOK%qY(za5X61Oudok+*&`D|;4)!rA`|?7IhhbgefCT1BC<{{ z<(54Qhn=l#os=5ce39?PrqL35lfVlZx0!qvjump-!Y%QoU3$rNAmRs3cf}QZnpXTpyU-7MVB+5RL*L)D; zHEO8?1456?%a`Nn;9(_!WEa-fd))>|`Hh%;`e&)?^M`##&`M0A3($I+M1j7ss^y%u zLJzKz^_HEMf}};ImIMTd2x}-n1|c{?I>5bHDnVkxuY(EFA(1so7cRco&9_!-GH-;x zBb`v#D#S%Ex9&L$w4pFctb7H;taRV z2;pcqWOA2;2X_Y&AAJsAl9@>K7}}l6GP>CYGRT2U_udA`^?>jev$lT$xuDHW^+j{i zFZCgS_qcW@NurW7QCt-CbqfsuM4d38|4jOKosD0UL~n}-)UZO^kbtlXD{%iQN$Ot( zqJS$=j!?MdkK~&yFDj0X9!?iSk4nZ4RTD8B>KNz=D>TR&7SSkw&r2zy&T2h;MhFK+ z4+{Y3*L?E^o~38PGqs1I=p26kcfo}w9Nxscuef`_h}C8D+NJYgG8*U#U#Bk6Qm94k zSe7k>jebB*G(W?<#dM_WE_WV$psO6iYxl?X>4_VhUaaKv9&ASf+kigqzqx$5^|{c$FZXSdcKS zMU1pi9Bb__JscG8rMuyDqUNTs!fNCxgDoqc(4Qd8Zex)<|j zy(XrI(!+q&6B?j|K)2{)sORFvzu{~f`CY2qN}wgeT?paai2{r^R}m)lh<0&bFoHqlAIQW$&W!lv=cimSiH;Q;YAgjc?! zDeNSIH+)3 zRvlTS7Jye-MKilPFpI!lE=?@9Lrb1h14-JlKjxLAkHuVoj_v0r}f9O3C%Xqx*y1dEkWxxKpJs8eS??)px+*q7j)|9DCD+1=cWn0Cr7e-jJS%UQF8Dk~ z3PE?8t7tlb!S%r1jOy}1us}q=MQene4YqKx;cWIBZ>Vra48ZM$kzD`zh36BQWueHp zB}ZQ8^P9g~0AGU1AmUoiLl!nG)pPhHKVJq@2=04>CO@BlUu2FjyFJoH3+i*$5Ezpl zmrURr?Vp7CL&bXAL?e|cHGCqbm7C)hhym?i2aK+vwz$xh)Rjpw!rID0+82(0PtE?j z@H`cCVU~G-`$q-MftDzY1M&R)cv=0j{Z>>5hMBZjt+_pq{2XB{HQiK;SLZnBsHUd= z@C&mpQJA0FWG`jkM*msvg)b%_GHwLa{DS15Q>cK7@B{98cn;YP6)Ym?=^pl1mS(*V+aDj%l^pjcO>&~+>C-s>abUV)bFiz+Ek0fxqX*NlQC(Olv& z!)ZA&+H)A*fM{)7RNks_2hMiAP%X5q%_k{G)zT>8%E78eIVgz3G z(!JjMGJ6jnU42&~q!)$$!rS^|~`()h1_W_yjX1ij5>ehP#&8kCSg&4Ub-+(a+# zojiif>+-RK(G9Q14Sn~o3$(hAZfOCPj+B;=Rkph~l;ottVYOm;Z4kArN+*xv$4%!Bxy|EWX0_TPPth zx@&Vn+QDvNxp>hDiX)7X5})3KH-CYa?&1Qo>LDD^%ZMP41Rg75TW6u~>#P@BqqpItd`z&z%;7Qx<&-^%W1I+5?|NGDt7 z1(hNxvcp1hFT;h8;b+!v)Vq#E3btzD+9rrfh-l08I01K*+H1w@WR%{5B)ZG>1T7!_ z_sNtWgDf~B_vFCIkF|!|(SaXykq;I%=;3syCxjGRLTz+-FNcameC10#k$t=pkOyFr zYEsW+(|~4!ft6Ke2kJsTa3Bs-5iST^u;CHCO#&;o$K@-eZ;>;DO5Eo{wNsbj^(wsb z{Rz55{1kHRnreXpG8#g9jiK7(<%`w1d5aNx8of$ZBVU>(PqUcaw$~HVN{;=^y6DE@ z7q0rzq3Jw>DB3vElpmgmYoTGgVAH;dgv&zTA*9!#j@h-!!#h(B=c}=by&)i#Yks41 zYQIcEoxd~}3oJEuZ#d^(-B?%KpF^t1Ib@nJhXAB8Bp52T!Z|L<2mxEEUON$Ly8QLc zG0hvBq;-umsN8m@nCP{KGq4P!;+l=YgdAYRW|ZWgjTec}^CDq+aBswxU>A$wS@cu; z@?nNMH;X*+?0I23 zMI|usKuyH*FM-pvQ_qs%^01NB=~Q|A))Xi{v*(}A-W&pvFAV`djT7VvE9qrlKXNTC>e{ykb99NPw9ZIQr>k3p*_*8hm@ z&tZ1RH~!juq9gj%Ck|)|gWIa0AE2D>iEnQZj`)@32UvY%GFWg!i?{1U7syr4XNwot z!77t8=lx8;4um5OBpqX0`o9`=?ah&!Pgqz&1KosJ9JVZb?yF`v9YOvghmX#IzcqMq zrYT^=QB2El_r0l^x4oD8s?$cm1si{F|0dqqndJ$E{xB%lwAi(PLbKymRIsEp2Axbe zR{_HHtd@cgfzH8!uQtv_)_?b|03T_8mtg$3xVn(3zw5#A^3i1ecE=nR7?i(oTbI{h zQcM{)s{g=w69k)5{Ijdf7?g}0;*_!)7Bd(F2B9ZX>toi*#LwrCK_w1R@kbWaups92 zbBvDWNqZuDD`VlyM80}#wpZzeoZ<%*>S!JCvsn?7$1jY0y8dweTb}LROH*+o5Pk_O zh=*x-R%cC}SwaNZ;NCUj;YR^PD0{+#0ljBJGup|t>I5y#5qD6wJUnXLsU$Kn(&&S9 z`O)v{Ki-y)SxFz3JSyhr=r?Xpf$LrA^+^Pkd1+NFMmvFQe`0UP8sW3k1|+=x2niN5 z8oJVl?8O8Hz`YylPv_-{f(O_|8Ye*S&`U4Et0&|Z&^k0MU0)=lzclJ!X+h^l))}fC zDEep!<$GNgacM8@(_h2_dzESUCFb8RTa_$JA4I{l<86N)5v`u&ONks-3w8Ych;@{Q zoC1n|0OyH>iCCiZH2cjX0f<+N%aKZgKzGp_z|%U~#bM!(e|2FAVUK2QAA8>=Uc;xI z2DrKf*04d$iXE+!r5B7VkUPnfd}d6B>GIw)1nAO+!IntMgZe$ZtNcm+tsqLQ?BV{E zs086|?2z)gEl471tSwI`d5v;K!P3?J`rxC!jh;8y_E^Z6&~Dq}9-cm&Z&_#wasr+& zQux-!A`;!rw>g?!kfy7B1HRR?en*rax%W0_IcvzmEs$;w@3zZ-N(+JQ;D>vR+V(ZgpFQL#RHpm2aNy&hK zL{jR3aSLetV>bgKmNSrSXQ1LW7!F1{#LgB{Ny~qO$_+L!wXLjp2p_1Oo=RB!DG1(6g{&aTjzp|BSdy1m+HeDjQknI7gTNIzVrJ~ zmV*&x)rpeO$d0numbko&9fr{45Z&TpLi3nb!YqXJKvWlmXi+oJGHHNkLqcI}ltgge zuB1au#I#sR+=wE;lOKHn>PGJOrFG0mp0VNW29)T7_V3V{*@g5oI5i2wGA2(i^3FB z$bPm45`9p@EZEPm&qt(c8y}qG8!k5H&Bhm=0g6@$ub*vQy*Ubyh|pQ&TVIp+Jf(R+ z5tx~u^^r#r_}NAOEm1*Qpmfi95V2WWX6Umj?9!&ttl-U<72|5kpCDl!{+8iZ_?~;z zm8pl~S@D*$Ob&lbg(T<$JY_={&x98v^-8)8ut9*I_q_u!>J!UAhRfAuaZ%n`?UDt% z8${LQMgl`X9iPuRy^gBJFSnq8oQ?BZ7g1`=C=*2Mbzrnh!Bwoq5L^zD!!;cH-c82I z|E3K1az^aQdrN_FkO6NQq63-U5pHeoApnxAKN5_M=OmM-z5q)*nfwSf&~mT%`tO-I z>IzJ*c1L*z6JHrkTc9+YW7AQR{69mMWbD{r=Rvy=*@iAxy#}PVI%9uK(mSh$3yB$$ z8KcFJ7))rFME%5qxWo47OZ0^;f@cOf7T1*F>u&5bZ>Bpc7%2gt+yE!;ODu`innb|}rhrY}K z<$o+yOfK)a1z_7tppn{PgcdDHgCRIDUmsp^C!YNFn2`7ia_C@rO1E(%%S#~wZ|xyu z%|(NNTWqiUa-M3O|LSlUe^;Dc1cbGuSMdGE_r$n?w;gUQqh-Juu*Q-^*tde?dbTq0 zWb!bq36HPCQYgv;BjVX0n7%C5;=%>04faj@m*&W5wgN>9lGH;4rowp(@T6KpzzQ^> z3-Dl374ZRqw5DK{y^t-Pap;rA6krY&@*%}BdBXR%O4Wz22g=(astug*Fs=8q2xsOk z6>jFsJQsxth>EZq4iv0)EVxoP+!08?%lA!a{)y03e;KNURckX zulu;}ng=;tP00|;30sK?5>kIQ;(#T|M?&srp>(yF2Q@Pf<{6*me_d1>^7_Z^%#64) zhXHx+tjuTyRFSwk3cmgQg8SEU`R}GTV8RLCiiadikQPE^{~9Ob$Q!x1LBeOJZ9vuC zn&I?dAsOSO$Zx8sZ zDql-4g&<+5FsOV}84~TWo~EHFO~d1-L{D@@iWQ8fY%%No(~-HgSoqk#H=U6-l^v;6 zY$FwKpNhNhN+c~i%8lsNhBAlUph(SB)WFSnqf*);oUgzWyoF7S3Dn${g7Bw9wDQsF z`eXD(8dI)I94S-{@z;6H!yi!^0apxqh-&0or^Hm-?>9{#fOe|HuY1LYunGu5%$gA= zhc9d`JePy(GcLLz&PRV0dH@lE(p=8@Qj$pAt|E32KSjsfj?Tzr{ulP=A9VYBVv8ak zUsG{yfdiP{21jnBy~~HPC;uiwSm9$tZ{zeSKi{-HmfaF&sBcY>{F zaPC<>@B;HT;xfBm=sT#v^-_4WWKF^L&R{@z-P5?K0Y_0v%zZUee$s@YXs#b*;~}X% zynU}n6^sxcTz3SVy?vhOn|gxas;RJH{{yvW_To9U#O9#H>PnVRy`11!+&wg| zk~+|HZ0m|8yevKtohO7b@etye_0+_rJfTa1UUV6!l0GK|;KumVtV_E99U4~}-cha6 z3dFHAn-Z^^6789i#%JZEZ*(0=N>>6>a_u)LP{*Aj5$AAaN?Xe4A+6=-)Y(~2yNa7O zhpBWxdv>Bj0A`kpPFq;>BtH@5U1rN}l6)MQBt!E+0@o8G4Fs?Jb>CndeH$}Jvxr71AO zsX8Etz;wr=8j0IU`E8LVyju}kWmJCD(0B#32>mUq$g1H~K2-^N)ul2d+cZ9Z%SB@g|nspWVM~qFlyzKxGjJ$Ub zT@O0A6TWPSa>rnSi-KjJLiGxObTZNoGg)CJ?x8fdCvXVd_N+R8-{vZ}5IYK* zp}{BA26I7k*@(CM=t2LdEELf%^mgs<=czA6AG19Y$2!)u&R-P>;X6+OJqW67M+#gc zsXD(uD>CRUyrY9S5HHHwe#D>2xQ+6lU7Osg-%jls&q8dBqGnmFm1qr6S9ki5x8_E_ zguRdaB6mdX5NN7tTZ+ipSCRmS`-G3NJ&8I);3NdRBGuLq-P<9IbVniw9V#GrLklid z1hL1$fiPGykcqPg+*tuS1N}H!V2Yru4*MRTL69Jp)V>=5E14_T-n9}f!{%rgrG$^T zxr?!jpno_pfZC&@c$fYnZTMHD4aHw11aj9Ge{ew%0B)rVIOI{y4|sXWl*7DDSmkb8 z?v&Er{yTmHcLRn4Es7T6#(@D>pBfwzTNkjRg*R0L(ixu@Ge2!=6Wox26hm}#l*8lI zaP$2C|Nokx)u$G@NIRwzsNMu>m=-S7`1t?If>FMX7HI5*%b*p*D$ab8cFK0hut17M zp)g-Yh|av0BsgGqcb_($uwo>rAuS7vM_e~sVaYQgwhL;jN6A!>L`GG4n&y_y-vM;j zrP*Q3U{H5=rjgjs-QC?^=<2c-pRlaEdyV4iQ;i#H9P^1QbxdF!x&ZIFIA}7Yt`(RY z$!-G%%XLCol8=nHA`vVQ5C!tm^PGYfcl@}$Eh4Dkh})ng!rh76(OqSikwn-v#jP!k z3J_uh3`d}D}&G2|Npl+!@{}oA@yd#3mTeQ451xwNKU9Kq*m+L zVAr-EVhyJDAB)In1HAEk+aMinH0G>I$+0Q6^PooG?@gBJiuTDXHO+ zv!n`7vo#~EB@iwhN16SZqSdD&WtSPIlkN*(cX#*Vub`0fVxaEst{){&PF%%; zi6(KdECvspWPRrenwT_DrylqNC%)e zcXvPGZ~};9DRIn1T!-k?-QB;tyPL@RRJVIZ>wumY6;`$8m{)3$yKbtQB>cYJ4V$3A zd+sVzCS$f+(JH#X4=9?5C3pZLTJ+X|8qU?HKA|CMNWGU`8Z=BKCNrEJZxG}Z*~Gel zT&-YnWc6Un5|MR)|NsB27&kvsrSCzc)u%E+F`HhkhM-v6@_2vIboHsg;84Yg*d716 zVb?}3lDIG>VV0r05_Ljg4H7zX!1`fmsSEqEVMK*nkunxUqD*9ESTtZq*k%*vEUAFi zX3I=Sn!CHZiK!ZPwL^B4qk?(F0#!hwIYcfWJGN3VeTt_CI1Rue1TWd;8fr3_N%w&$ z{{NW|BY@rAId?lDBe=VJH_xwo5d?ACnTVnt7A%mhC65F{&0Jf?-QAs|S%Y4ZVI0fD z?(SZ4%rQxa97c7yw(K~rSUi9&7LOPbcNm8-=DED??siZB@42|B4;jjXBFOfMhKH+& z(hKK?SdWzV5tEu38}TC@`;nGA@;=Xj8yNuqd3pW+e;vwHkqQr-+*>Lc!zuD@yPHSz zEJdL1-Q7CF)u$45iaQVUYEy?h#iEq~#ix6IhDN z=sZ_g5q&n`f)&dFCH9~&_DZEmmo+86Wtn)qmPQ2&wyx?twrWemwopY%-2MN5P$g`M zV})%<;hJIT=+v=HU+#BzhseO0a|W!Ecw)91!Jw2DroEWaWEOlb`G^6|RB)IV*xlXT zQAyBWH&eS)2^!sBT#JzLWNPVFf#tM^#EhSuA1QDAISSIHBJCwiY4XEp0{g33L%SgS z|9}4fe_c-m4m{%S+^wUa}2nK`X`Q?6kQ_l(2BJ5OU5r=jYAy4sk&UOZ9g;_@m16eR=(*p-Eyuf6{N1D6eq zcSTZ}>Urz;T(=fHVml@9o{JmvK}GgJ%zz1jE!BeWqx7{V+SCQN>`0 z8HthVQfvC^?(XjHXybD3Ny1V+OdQtQ67J63-QTpG+y4Jw1qGst*(4HhrWR;AKt0o` zsFbhrA)~aEHAEtfX@jY>8MeFs*a|7a3X1X+q{;`#2L_7*7%*hCsqlIl<*+ftjcv5u z7+0*NkkNw1%T>ycjU6?)J)LQxH9@s;(=rCc)lmq->bN_}(p=lNZQHg@HEsUdR?5{t zqSzgvQXDa_ki|Wg{r{H%U45#wMaI;Hv6P@~iIyc}i)c}L@+P#2oC=UA#s-h<|4Z|s z2he$J+qUhiDB!Pcr69mHZIBf%xJR=~^ukSWCaM*5rej1J12QsN<%nTesZ>@|YngdL zIOd$QP;m9BLt@c*bQK|_yK>0|YvS(i?oY+lry7sQ?DCY%nF3M~DQ=(`qLw1XX|Np; ziUDFmW6!W~a$3qM1AJH(63)J2p?#vLWQ+3&wkd86ei>`r-Q9gdj9cCy6SH&O5Y;8k zsDco4BJCj4@gedtoDrdfav@zH++odzo^ooM^2I9WO&a!tVP{P&XG{hWFt!Y9jZAEa z0tcPqjSaB5ICpoPBR8A#n*M2X#Il2!Xb&=`xxTHa67} zT7iV2X(4fln9(d%mELoaSG@pu&vmK@PT2L<_5VL9*)B=T?(81nDv|_i;u-THwoS>% zphHPAspd=rkzgQ7NGaK(2HBPJBZ8`2EL{Onu|ircB=P;G)(dH?#p5(t;i3P3AnQ|I zA=!kT@tXX9PDjcAv*5i>Z}9)SbC+@~JHQ95KxUWyiS7vs0PJ7+}!f87^&NdroYSsMdWtJr9i z?HH+!rl2q|8YU^bySuxtyL(Z*`c&r=D&0^t1#U13HaKJ9vJ37VM7sLaAX68(3!V&n z9E1=pT<{82Z3~NG+d5?rILlskzxCFMfU8dp4ml7Jy_a22gO@*5|L*Qc;p$UQ@B|eh zr68HQ0{4A~ycUkMu=xWs|`H){0INjOrG9#^&7p!^>)2 znu=LVDuw`f9gK`WWPvIQVt4mc7}T#D?(Xgi-An9+?7q9VOVHJ)N<%D7fx!?=!|v{8 z|Nq~a5a8$uQb7RTb9;nI$UyV#W_If=U@)>wfCW4{q+Y(5Mhu53zEl=J?>#F;kNB0tcU`u9G}1?BPb*bmUG&t4~E@@(fN;?nL(g z|GTNYDrVUWs-VI-ekvpziJt<50r!>+YVJR?D9|)(l>+edR*F`~ShB z|33{_vAd(dwx#KjWZ6~@Dbh$+A=~o*|Aq1H1a6BTc%b8-%9L@8+X(9JS+|@L%Bp1I zJr^c=Q^cKSppROMgjx7$$(g&mTlY+vq?8Uv>KwR;f1FBgy~Sj`wsm(OI<7tynanCf z%bamn!KRxLIm(w5r+QJu<7p`=i7dt2e(p;)CL|I#a(vN<4d>jmRbi60AAnLdq7K4} z3aAtXWtINas;sBfjbC?#Y+|n3tZrVg9C?Itpf$oJBU@y;Eh7=IFmh8>D`?{0b4$Re zV07SmY=fW_dTs0OUPP`wHR&#QD#iGu=kD(Auz~E;!4Ls2&7Z0PtQwRgy5n~sgLFekf24M@=pash!B-QB%peX5Hh=_cL8H+1K{x}M~yIbYQ)4iopNh`*53ymGoRtz(5RpIJWPw=>` z1vyRL@1DCBhe_R}g6#hHyStl!T74?B=_MBZU_z}chycx3P0mvdsaPh+4jDD9+^8-JvMnbE&$H47t186j`6@y8Fwet6&|j0HTmN6rDJ< zDGHstyLWdE2LedEbHCTTy1O?eSD)&kX&I0os02)3=E)(9O*0w*07g(T6veSHP-6}h z00Jee#QfFTp*$7^i>@=Gbt-Sd^RXh<5Bgjl0Ow1K-OhHFcOlP`G z!2z8HRK*=WkIC1YHYuKYJr$Nx?9}AMrIVS;ScjvqWJbVjG4Bw#iz<-_-(@&iXQF2# zHhxMV^}N))R%I66wiBtQ_Y_oGL<-utJ%tMD(G3HZ562Pyar(WRrW8 z<(6OW6{l#BO2K|cP${ZN)HENYH1r;&M_b`g^HJWZW@;~q=O;qVx**d4KyS|<7LuK1 zrZ2lTdo~{ej%m^2`GWAnadGf<=f_%tgG#WMtHdC=20O0k#?2|^wu z=q+=5_kFK&7V?@CpW~|)7+SrK=B3n z7H&xNNFsaiNYJvL+@_S-!+dc@7Hp=@6Y$7D!_F|adD^>>J}Mm z)eL7`Od3MO$%SWDK#uD%O!VVunIoTrYdHNq=|A)`;2C8$3EKc3R9*Z$ModL%Z8<$jD+}(VlU9b~#y!4t8hmVvBMxU>RGdtWT$R&iQ z)d3f70bqgXKcWR9gO?geeAKB+abRH37k3PW5w1a_FH(zj=FXsIagnTpK3Iz+9uq8Q z<$gF-z64AayJ?KKz^R+OMf8OntliNaFCXUu5gVRxfR**YCYIyIq#zCemu;MuD^mw0 zCGR}!m%}pu>%UFs!Tu%F6!+U}16vWLyj?bGJ3>*tn1qR@1#rNZhYpQ=q0tNeJ>4+& zboGr;0HXq_f?qi;nigTS(d=2cffsPZEMg~;=7xe5fM}y;U5mOnpw^3f4HzOMMX{0q zMS4(jek}XFxOGOeb)-pjWJp3{n?3e#v~#k*XdbmK=pZe##czfGZL-@CI$X4ZaE=&5 z2t>!z$jV~=Luw@0pO!L`0c%-47O^4Dfv4-^_C{cRoX+yK8EQfz?;e~WDTOw=y#c#m zCW7Mw#BF-PoBwofNiy_kzai~3M!6g&_N1|QT~$qQ7j_@8VF3T>rzgHWt`P7S(#_X7 zkaJQory$QGOB%;|WACj@1u|lwZ1_g=!pQk%xhxst=W{DyH4IvTwsE7B0gV)zZBMPr z2m`$IIC7%3E?@x&Zq-_E)R`Kz==erMMZMfVi*wS7#8RZY@gwlAq~l{jp+Yo?W!8>4 zR1+gWe*SW(kW3ci5V!p7KG8Ymu0Q*KaixOtfwk!6U(*0X^SlH|=jBN73&$H1j8+O$ z=-}Rf)nU7Qn9%|5-8Wyle0b_ObD-D@R`XCSPc(jrl6EoL0l`OwIqS#tH>@;U7# zYV|LtM%21#m;?OKiXl_woy*Sf<|ZT|(0xa+m#iQAcy;wEy?GZ#oj@~U2$-qjEP5*aLr!l&T^2HZnaU!SVA

    FoTrc30UOM>NXq+&v6C3+vrFfRdLa6>I>|DQ3;iX-|vVaRS=k+0}O_ zZwRLneo>Rf45hcrqaAMJ7@#U{^u=B{j}{jw4)PmEh)7AOcjz=-m=tzP6CfhjOm&>% z*g%v_j~y90=IBq;b*pF+mWW*@!y`}-RaMV$PqOhLfEbp};3%S$E1o1t=pY{RmNUh$ z6Imz%&rEk{$yb^x%!aJ=Rzp}mb2kx{Oto0gBxM=ks3!(In#w6dbW6)7=@Er60U4SS z6OQD#%+L!d+soZy(SsYOdmOQ*Jc&9nv_XNhqk6pfRm>1xc^S{6AXj8Gr70$qyjZuw z$N<)z+Z0s8G`!2W8ZG>0Cj4D%G*Lc$K$)$($emQRfy9l55BnoTNh0EIo<`ZeVCQHT z#6es@h7Di8;ma5wg0g_y_y<=MY2d(xjbNh;Elrlqhj~+ucAwbw)JX6oOdVSG@RO_J zZA8mvRB@QBWya}$9eNpte>;K9R5^+px=SL4naa|Nvl&8=2?h@8B{rZ@FiDRO&(@N3 z3{F?J+zTNo8BN-9(k7?J#2_=mxY#%p1e14k$K>l$ll6QmH_fCXR^6CFROLi$)_#%q zdr5nQFyQq|3m3emgbYm<9#a%E9BRV z7X&d1Iy;B}rg>hf(iy-!#}BYen%fCUH~U&b+lv>COO5z2?&&5$Bubr0t>+gxiNK&C zTHvg0&K)Vvaf=0LDy--vx^91(td^W3hxrvpcY>u}K%X9YWwYywbW^t?;nX6Dvwy8& zx=ovZ^jR6QpxEWbq;T-%eTn*cB%-A>Q57uv;x7?nJ~VWD_cjqWuq~)HUr=(oDXtRJ zMwZ0|!rWsb>G=+!b;EcgSjY@PH^XDBcVHy*#B-x7{R`l;)*cs%K-1{E<5OpGaAx&V zHi_zl2S=L}FWkm;4@3$*CeC{VeoJc)J@xS0H{!&E+(xQvazM?wjK7k%fk)WrFNpY+ z1F3fJ+az3^`x-WlMs^B@31Z>e@4IQ$?QY1Ir9F~#@U`aJ$;peZU1rXDFVO(k{K+N* zr*D8^aa=JHILLA9Rb#9S|n>bg>skeSoU-3no1xDQ{pRq-Ny4(CvOCqmJbp0C3)_&Hr@W-?PH5 zQ5uV@*(NiQ6c{bt+Jc>xp*fP*)YpHJ2w16(sPOM|uu-s^xLiPX6)8zAMhkpCd^fD& zcRJ)ooI_Q|l|={k4!!b%b4m}`08Udud<1DLg-1C(X4(6;$$t~lvyij$*{or`>!@gr z0;3dk#rBm>t=7&%1|nlg6mlOXe`~qWg3LS}6^ROfUfxbwmjp?ajD5^3!62N`2NJn- z$6{sD*R3{+NM&{Dz{$C5;<^@!zrG73VrW5P3953jW5&w<*<8yk*)!D55s1^FH3Ivv z#tvgby=@!4Fwi#|Ctv-^i0~zji4>$y-MntQuQUbD#r;97q2sS%2#KUb8U>xEVu!wF zP|D@@f@?Pz%O&wZimrftxroFt_Ci6;|~psz?R6$HD~TC=1SyM1}VzY zi__|b!zA;U0X6Sot4m5MzEdQ+z?8+b7FNTbZ(&Je$Q3kg=Kp0i3!${&M`e(D3hepw zFn9=6x5n9=(WN$E7L}K%ATCTNUgTY-Q9fWOl3HUM(}FlSh8X&ibS%i%wXgus_9dmo z>=qH>zB{4?Od|WwpL+W-Yrw~(*t|-mzsX}cARo_NZDS_!3Hdp9V_HtAqz0VC#bZzT z&w&IH<{g72X%+y|Vz)8w%?+X75QvmyV6`StlMYiYK~i`Ao9_?pxLJ%zIxgW`_Lfz` zWh3&YC<}{~goH-WO~CqkTduELzx-YxUhJo@E1; z4>dfFtNR9sQ1askF3HjM?2kd_+Gg;RI&$aCRaOyv&i$I(8~MS|V^ICkMVOIi2@m!6 zFV`vq5JBNlm96Otw1K|Z^;cvM%wbE=Y6VmeD3>E1(sP3xHB5yMJe#hivVVCFI(Dus zV!)w5hMqLAdO+KZMU{VXr9!T;6&VB-_OWO?IDK8#R&W8|8#>x6_udH7qFox!>5Klo43$jV0KrL4IBswf#}M6UGD;}ArSMAEiJp2*7X9>j#Q|$BjPq-) zEV3}gPXFsr^PrrL@UF7D*s_w`f7aq1&yUz#@xC^vUY}gqaE2;La*Mv2vgI)DkF8ME z;<@$Zhtevp2vA8PfBp;Jjx3z*LzKe`;d=33m#V|0l8C*79+ zK@hOEzScYd1B!MQaJ9YaA88}i85q!v1Wp_lvD*>sS9;sKaJS=Y1PYekr0?{Rd?5eV z8!NLS;Lj|hC23h|Qz}hX<<@9PSIoQQchW(Ss&MqBEU4^sW(!=}HxM0^g!~2Z0UJgo zxsN2{qQ?)C-oznMH4>UfbmJ~xW!}xFf79NtBc!oo_-1A^w#*=M-s>e-#?*A4!@EM6 zY&fT;i~5Ql-S#AjmW+bJ5rPEOAXwq;_QQ%=jsru+P^NsC_-1I zMo1F^OTR)s5k=-&Rz*1VOK{&iv#rwi9P-^$>74^dbB=5ApVnrP!(lafy=g-V=AvKB z6eKddUN&idOid^IpEgB%*v-=;9s7RPt(vB+k>SFG^OrcQut)EhUAx74N7og`PzKVr z6D;*~_F)A1|dHK3RzgJZ}pBfT}bDKPR1DA+Xo0Q?bx899XL$Zj3OU9wX zm~i5zMH}$8o!>0KYQz%rTikX@B}Qa?VT4z6h9n8n3xl*tViNaJ z5}QKGe_^^I)w2bEGbTqP&C(R3tm&*P@Q6ZE3M7jGFp2Dfe0@&H2SyGZUARNj3lj}Y z6YVg`=YSaq|4U(Vmqh0jXL~d~$|HvPFNK_$IaV@IkD1YRpi56&!l}nE>b_7~l-lpI zQr_l#H4sEttq5}XLp^Uf18LutUznZiP&9ac1T8N1F#3O8;}3PuT?!+hdXq1l1qDhq zgQlYNO z6uO2v2Z_)f8k`21TtRQJBoU z_=P*y2m{(fGn4=w(jx2iwndIZ>?ETI>J3l=iYNKYTs7?FFwU z_ZHP%@yb!pYzSQbhqn-c0CI|t6lfgL0KSH>eveEjUoMI|JFNZK-Y#g`2>a}Klw6`j zAV04%g2~tHULg}HWRA`+DKU5Ff*`%v$myTn5p3i@iXt<*c62LqC~p$v-iF;DMvX>U z0rG?@x1<#;@t2?>aslVXWnCVHCc{TZ>$w&9ysTB}f%)`~Pg0$ijGODc#=?Xj(&J}k z)Nvxev1$gB##_YFq9LB*0A|#v8r(c~i9M0r~79BvJ9-|%1sDEhhd*EALK>(AWFkDvQ{N4%N)VnJrd}A1Xgd%7&Cb2 zRt=(|EU@$fM@4`Q8U>pa`EZOrf>KU`r5oGzGLAM8S!wVhB`y50?V@O9k#^?*-q|=x z(pV!|C1OQnRr}eh!vq@8D6HGx^$sR5$VM4D7Y(3>(fFvv)RlzVBsYz>TMU}4)@8*@ zXMX~u-EX9OiO~sKqR|POA~IB|SY$|4qv#O~%CsdHoCzMLb6Eo!MT|e&M2!1MS)O_l zfsr#hQ3;vfqTwXjJ9$oDD-P$YfaGkuT4`ZfS4A4~5D^$>L!koDNDFKZ@5;`N^v5(D z&(Ka1%tJeqs(nt%vPSt4aDuyO6Rfnk$24tgx(iik0$cI~)Jo}3Zaz1OFCSN+jxrFQ z)JW0uXPfG!M^zq7ikqHtYB2h}(5@gXuTkXECbUurnwK^gfMuS>bGc>gZQjfu)e$YS zMvS$Fmc8?#CjLhi1B=HT+1=CqpLHWy)1+J#m`2Mn48Rdje3It;ru->aW~f+NO5jcf zH)4yUo6?z5=gxxXObn->MoH!PjMCn=n> zir8|9GWi1r5`zw4SyUB+Mi5L|TLahjJ>=N|;znM!(V+VfPF|j7bcEkhc`ALW0UG9I zd!M%R7dix{KO@92%J}9+palZBa2Te+em7K6U-B^{uDm|2_$OKpWs?9uTjy&IjqB~w zF8L|IW>ku2@w|UVE!crb?J{CV5g}dQh4Moc2BdsojOAbjPDo}v!WcU(M zDpgGZ&cch5weKwz;v)|1s5AUlH!{DF&{2G?qkkjiLvn{x&5oIKhG9ynyN2XCplgVcNq;gN-jK?;?>NSYl~)0Y$9yXBXAXa-f4z?0JtX=UKO#YW5!{j6At}nzOBHt}$#}vv zC-S#~dY%wr9fN9y%W=(v1D3xI=<72CEg(g{X!2};Ra#y;lF{^XFN!h28`FYa?bY46 z^Z_R}O%u)W)Kvy0fz<7cug>*~Y?!$&JeDI?epabVh_O;ZmuHMY6cPnQrD!whf}_9E z*p=2nTYA@(0h+BPwjEM{(1Bi+l6EQ`O_eB%dRRnP~ zuek25ItmVKNsWMUNb=Eu5=qF%#!z9DT3Q;AZl9quoFvpx#$d779D$CCOHmkK@V%dZ znjT*;0;WF+rNAvz)&ZJ1z^Y&&r9Y10?d(P>w)H#Ud)MQiLlfCY$sBN0I4bYapt5_7N(+8wBdTk)tF7 zLj;$FgLw;ld{t(wMFt1Z_&k9Gk@k5EGwDB%BvC=63|LXlDH$Y0Pl3JHJ<{XpGI{Y6 zROF(;LKXS4S=cQ^USZ@evopMz_M(nJ1T_8 zQ3=U*_F09pYeipKjZrB1NrwYL_Yf8d+;OElP#FNB?S!<|WFOGJBA39x#)tEm{!sAvuG&Sot@)OlzBBv zFtmf_RsytG0lM`hHdSEGWpz2Av0G&S!;|&dRlT?Fs#!&Z2IP7ix{yk9cJ}8G?cTk6 z_kuh`d^(dZhSQKvI?DV=czDFLz35Z~q-w16>0? z14=RkIB{W`x({xD(vsK!U^=J%2BqzfrIxLU2)2np5#(X8vovvW;Vg28pMvd=9TtU< zJj4^yJw@*BZumBWr<#&sx847LCba#r(h^LnYjQ!~h~B1v-5;bSiGhXn)TqtW_?e0> z!)(NOQ83Fg7n2RD#0}@oS(c9`Bh;oQmPeu`GsGtCNb3!{TvNgmN=!wkI}kF>?(X)` ztz(}ow4Ozx+-1U)m+QGOG$xwyCs7SNH03>q&@MQkOi_!;rW1BN!*a5YR+f*NNm8<- zc@!h9gOeFmSx}SLH5E=trjoXhj(h>RLL1nfjFJ*5962!0DzfUTiK;Fe&8vi-49Ra#IGW6}51M13W$Pi1r$g<*~g3Xv=d`-w2g2T!}%du-E zVZOV&$Ly}B>=8dqU0Kxr*dv_WEmN327-duC1CEaA;nuXNAwYL`ch^pHrMtVk-T(i$ zj4%||dj*A*;>?Ox6|z-ryvqq-o?J3gpg1fi$|iyLayHX677wcX#7Hw7dWR2RXJsHo0Ur-9!+ldxmjucX#jpgNUvC$L@>? z&Pffz;aU!uGmhGR6l)-N=rqfwMrl|ymI!&BLTqH%eUcp0G~Eev&N=5SBhfFv=4WGXM`k@V+zg_e#0!zKWvBS3|EH$3KwG0f*zD`~QC&UYUt0 zmvb)XoWU}j6wNsc$@Vy2*l6hP_?G;CT;n{0<&uI5Y?wYkUVNR20e}LU)R7~RFf%1U z4)AMtds^)7?qCQ=(5l$+^0DrNZ^Ph`4L1@y)>}7-j9wluA=I0rsMRob;^#@uIp>^d zitUdTLP9E|oCHmkJN)k6v(Yg#jBHC5(JP9J+bkJK*Ps)AzGkYtlF+cU3*?s%7Ho8u zJ5Pk>q+2JaYQs~5j42Oi239UvF8W|a{PEgzTGv3PM?YL=LMFrA?a}5*E){@f)5MzZufdvOq-%aN=HWfHxCIMZ8-K zXp1Yn>+bIEPJ!tDSoj7^=49XgC!P+OGs3wzTr=mk-)mi<)~D;{Ox0rTnS_=i*mOn2 zD$Bv< zu6(O8SKenp&%4HKe{9oPVlCP}E;C~AY=9RYV22|zTr^b(O6$^K91|XK#%!MNP09(e zBl|>_3F%qGDN>}Q!$t%kOF&u0nIO??Gq&{4CbSGbu#nV9&A0+?xnNyiD41YC@w_!o z$oT2BTtEmDqKBW%*aQ^6l0T;LhE>_5T+L5)Zdz z>;CY~-Tmq6{#ZDs?sSw@!T+TT)6m^7%<%umCzwrVbb6ww`Vj<)k<0MH>~6X=0TG>< zK^0vtJvBh`MBgr6`J6wRfc~@OMt2b0s%(oOfLX&7#v00`hff3wuaa|VCjI{ zk0GidB(VUVQHMz=9^HUdW9%U6U}%M7D~V5H+gq)}XdOwrmZi zMq3a@YM9c3t(gF8Gr=R+Da2fCMZpDGg5nA>!9{uh|IhOQf&1V#=S*rg{rLa?ab03a zk`=lwG|?00EeXfQsue|U5yT4T>lB>2>)t5mR|O3ne%Ta1KOAoFz-d;utq2g-&sf2=ze8(A1#%l&SH6LgKte zDzX%KTyQ3aA|IF1=i#Mh+5$7I!vzzjighHl#q93?|E;(bw6owTK2-&wDUacdfryUang2ZZB{BM(cdIu;K zdC~Mk3ki|sU7Sch$ZQyiE3o{lV&z{VJ{yQEkkH-Ta9H!xl(QR;-T{0|jtXfTe@n7%*nlSxhK?gr7_-C1X1rHs0}J4)~7KG@AU!60aP z;iZU`MY}qUWp}q2)QOMzwoKNy1k)AxmUtobowYD*K(+~h&64;c*Swb$&hBoYwf4sX zwZXyNFeSu_qEDr}yK{GUXDK$vszCM8qQXQu7-aj4|3hr7z5yd-K^ zb+@V@JPgbwJcvZ2bWE{4(}X7E5Y^H2ErQ{eaqmP0p%Z}Cx>V_Qcc-Cje{58hRtOqU zcX!Y3?!;z>-QE(kWKxaK4IW2WJgugMv=}rtWSBiXq_6_keQ*n8gEE`sQJRuXNeM7! zq@seT0ZVt`@xq&nSOgjV?{{~XIkrDGxnwq-?IIKHc6i$^RlMvaS%t(U-Kx!+xySuxhQ7hfuTvb7y``*{x z-Kebnv1>3!Z7@ec-TP%UVX`2)s_yO{<6@wSSPZODm#8F05vzz=L?}@jw=5lBwD89< z1lY{M!UTj2wS4dE?p~Hjl;!O1J11?&ofFcIM z*i;T8C7zj=h4n=)y#=@rzJWcbEXGcVESep`s09uw8I6$}78f$41oERtg^*XMCP>aX z=bWk4_QzVig?a@FiAHY;E6Qz|z#NNGKDaCjWcy>4Q7J&&-KnICEABc7TAU*p-)-u8 zb1c`{e36BlaTim+sV&u*YE3og+d`!3x~OpNm}S)a|6j)G{#dxk<8a;G-R-2Yu5>qb zIj7N%UCw1nws0KpV0h;anMK%_7O)PbB(T5CBvD>ufG(SqjmlQWw#L?0Bv@pa!9>;Q zVT4U{Loy2}bQm#voW3qfaJci>g&VhfsS~Fn$}7DJoxENw@Vvd7OOGh417%8c*6#I$ z@pwdc9m=gq7}nwCr|Ctl*RW`HcXyL4Vpzo>?8(l zdaK$ogx}rW9T0km9MSIX?(S|8G??Apt#fzxxTQw;CtW{?&F=2j;3>uAtwePBzV7bS zvi8TWWfy8&b_omm-re0jMs4Z}(GlIdyG<;aO{a;asDH??4Xuy6ySsyx4UvZjxORO?sLoRHN3#du8aI_P&C0)VvI&=Rz z_5z&bacs&+NOb9EM@dkQm+=L%>M7DKX3LwCCE-lA@c*lYr31V1t$Ir`0@cLsKKK@o z@2IrQ9mmN5GX^6Xcmxr`U?dB}+R_6QfCm-Ac)WN-I5<2M3xeTLFbo8T!2lot00000 zKro051_%j+DG}WOtmJYbo>5yytUxgethnx2u*!sbLC5JqVc#LLdMJ-aV#fnTiBvM> zN|9Wugrw3&ouGk{^*wcypXCOrT+oYsL^dS& z72`BwHzT`mPl7U?Wb^qd*KsOMlf?zK@sLTT?4N!>J(4WJK=uwsii4BVP_xaO9%=$n zIWF=_V5$_Gmt?%_SQ3p2cA4T|A|n~3#cf=bMQ0krQvRZJ)3=$Vb+3R_@i^Pog*x**pP&h@Y`P_jjo(o1Av~9h;^_H>_kB1#Wqss z9Lh&?VuR#-H3G{P)J9?**S|qcsM}A#ASnil<88x%V(uumXnM+*DgunwWv(D9A+Vga zcpi^ID<%r)vq0(e6ulXtA)w9qq{^*Rnw8+i-EUepiE2rkmB~XH4Efi`$ftg?S3*Qq#7mHjN~u?OU#%x7-ZeJr_uY8SdcRoh)oTaJeK3kusb+cGnOdk zd8?CGq^s%}R#J+)T>(k30E~=BqlB{0^WL@3S^07@LVyX$2S_?`;*SO-^7YbyHWEM# zLThZr=VP<+A_@3o!dzP8LO3uEJ^FCfL(q*E7}!2fzW-VvwnmHRD+2hTh9(6wRzqq+ zIFz=b508|RyMAoALbU@IPt7AH&H^b_7L;}HO+AX17exiPM>8=BFfADDaNrpKXu6Ev zVCOW*69s||GnnRJVffkZCSrcJh464>g8)7LHpl*8mmhg_DND~AOIzSk>ugN8WSt=_ zH$(N2KyF|LmIT5~p?flgx7Z5jheB}EipK?NHZ1YH7pUNTK~wMWV9DR0BZ?RY=&MFv zx>{L4P7P75VNkrDmYhY?c(LbY2%w4LHkk{{Juha76U4vFA%JNCVg4TQ*OCkPn~3*= zhPt)p| ziGQ7?|Bz9!Ig{Soakl*MmjcEMht zy@CdO=$ej{NzXh*6H$;#)AG8*LZE(-7jDM`CVr{iD#TZC6r$pjL%15lGu{+KudBvZ zF<#ywh8F=1$l3gqtJCQl0zghEJ4oyC#Ue)Rj^3jV4lbEAxpMgw zem}|8r>?twC}pD_d$hB@wP0E~_v``cd{k0Yc1?njnIAyyX{fn*gi0HzD8dpaC#*+c zJWA~T_LLx?s5GbBdIm-*BQ-EgHhWf(4ALelG%F79L3%1>-ah8y@XcpdiaTozMEfMl z6;ma(Y+n~HqkvQ#RUk|^Do{N4Bw$Gs zl_G>hF){^ju^&j^mGSsL%Vf<*g0(4k7yB(F!gHIzdSERzDc)#k2RPol1Go;MZoPLF z2(JfJR+Ov7Iu?sf�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 z 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⪙qF{L8I6Z;8o$<;1Yf4O(+9BXh1L& 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�|M&NZt&lyH-v&`>1WzS$lSK2fk+Mh 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 z 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

    3xsscljZIzPzJ(JL@t1 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�spjUJ0{T4kpnHFg*v$s6R3Shw) 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%0A{i_I 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 Xz+ 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 SnaB&VxpHUYMX&Nls-3{t)smt!o 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

    M$mIBi~Y*-MO?DqE2cH3uR79=9u`Wnc`hk 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

    n!~UW(rX)>x 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%0AmGA*-SR$pjHDQc9p(4^ z^zw2}@@Zzr{DpJ#`FL4lH-m*QWq^!JfjOo|{k;j|uh_XUOl4+i$~BOx-xGi`6D+?C zc|!`(FsCXGNOE3j63jk_Oq_!}tFj$>EbXPXhZvW~RJU^pexy`YvnxAwP2}2|4%gGw zhz+sj@%PYM4HzJ01Ir$FFw3}wKt$+Ve3)170pq@@=!?&M3|MAHhEd&bc(Y>P3MrI$ zq&;37wDD2rA!>1vwwmcOt~}l@y}M$@2As1$ZM=@!8~X zPzS`_OD(x}l5Tiq#T=|5*hn=|S}>^E6iJ#Q!5nGY^jC{WWR#*SunG=*8o9H4Kzw&< zO>2m3k?DO8k#4??0sF!k0|I|?IFx%L>z*b+YS?|ZcZ=XrJM8RXxiswWla#&f0Ww?` z#5@&pXi6ihkY^GE6FC}Mx$XLM?!$vU4t~A9S_`^%DB<522I9Ww}n2;zVbQ;c`IojM?oFru5xeK3Xs+xo{KP^cm(Qw_>2Bk0+Fp zk6;Q9E|;50BLzsgiKs%%>+u;T3KL14HbD%vmnhP9Beoj_s`nj@_VVH;ry6&FeAKI5 zlkm@uZx}FRPI|U%)o^i9;%X3#0NUN~crQ%D+e$i^!F-H>8dU_po(lYqFf&S7(rD@I z7=Abpt1HZDMij|9^<(-qh>M9wl8=3Vy)cw0h^8=9#};0I6z>TF!07j?h;4M_%43?C2ht@efZVXqEDr)e$yO#D zq-0kB1pe~FFTXlgiG?4_&0ko_(Bp>$i{20xS=HsKL!Js9=EFly3uM*6f_6W+p8)ILt%YKgf$gr z%J0``D`j%dG{NzD){q%4jzk*TG9u1Q0a;uX;4gZYTK&()Hte`}5Us*K^mFZ1;u0ra z%=t52`faR!=@)jHwB=JjkK*Ys0}8I(@y@Ml<(Wn28<4%#{(fSspcgTxnBREc737r% zumUjqH`?Ob%DOQmQsvWL7FQ;h`mpUSc+jW!ONnv;kC1=37Mdi z`I^G*OE3ux&W98$#->Th9!8sqo7QFq#k`i~Hi}p8#*BnIX+FxSk2-O&r9tZal78mb zlKEv>=4W~3mzrx|S3C!>X&$Q0c|HCD33Tr%*FwSaCLKV13D9BX>Sg>G?&E`F-p0o2v!gfb6*oogXj25n9osyoPO%HAd-4pY%{&vc;0IrbxvLD*_?WbHB69A4 zPf%YsXGJu$Siz3Wms#R7xAwoiLV5wbMnt;yrZ4twm{ce4=OelEt_j5|E z&WM^lHI*TGGIM|Oz;1rGzLKtW5{I2({~hS)iAyVfdaSgpj-KYYpTL1AdVPN*1z?r3wku z5+c=cI5rPkjdM}HuMrU^=M;FGIf0iKpP9pG{r1*wNkq+geH*o>T)&9)P}N<)la0&0 z7v&2DMqj{WP{ViYfyXxj>Xvj{n~z847BC_s$|YIqKhabHR{(6{ta-051v^nSxOl}P zTr}SWO?t*ivbP3jT8cYj1v;Wz2U$|AYZBnPtjarW+UE*&iwP=6&ix}V_np%Qm?t+v zjmL!76cqplFCK=VB`mrYAh$fo!mom2Fz~zr!%LCokyQEkD}IEjJ!3>;1ID@csgZbu z{(BLgObcmW2SFu)S!iE>AcBK0dRdUlr-D5f>}5=V95;&&3gshbx^4Rjjl3T3q^gez zW7CpmSsFJS{m_UDZ4}!Ujz@RG} zNn|nU1d?lZEr%Hk)o;vj;coU^q4cIdH(88(=OEaBnkRB}e(-#Bt;6O#^~nF^P@KC)4Jh#Va- zsK%|)lCmC@_NZUJnI{e_U{c*QBh3xg#rrr{LL9559hn{&Bm5LYQrS&&=;u?wwv~%o z1{g@v2qt(DARa9}w5+0)hoc%YANnUG%bCRzmAY{Yff|9}u4b#lguyT|{(aqoqJ{FT zeiq#x$7Rgi;TRRI`S?@V>P)}X@bJu!q@+muAB<^wW($S$7~1M|(f)ML7-13P80UR2kW zx^wKKF%@vG)lOutbyCSP=l(M|WVcbH1I0+cIT=6o-dmLh7W|8fNF?KK(}qZ1N%Ls- zrTKgd8u&N8Qc1H;I-nDPyyiVhV;!;VZ=8fS-lPx}3EFEv5ZMZwRErTzoO6*fhqwUz z2h}Mip30Gj*Uh=Dz>ibG?)f47z}5@B7`hV^h460=Pg~jj#DI#**-l%_@%mXoBh0Y} z*Qpfr&UpSTD_YRF4G@eqq9#AJ7U3+iEIx4*7BL{8QvF@_HR7m`O)cCOeFvw_h%Ti6 z2BbX~xIPXn5QE6gse3rRF3kvxTh*3b?WIU z&rhSk7VNwz{aax@PIuO+kWVXPHw=#)Ay8Z-h)l(qO8MMi4!8dM!JT4-v&)}h%NxPI z%gSpBKGHVF%s?rO{+kX-8(@JaAQU0beIUVhtz!Aq#cf$dE|Y*Tku#q?`&-oeA_UD1 zv@^Vv7v8uu6!u8?Lg6*izex<`#ZlS<0={n=l0wP0+wbOgwJLm9--3RD)=6B=JIFpr zJo;3e_hho1jc$?3g(T_dL!gQ@^PaJ{%i&6pP8jHJ<$kFQitf%ZK&>c`%a@gYt?`7b zV&8uF+LDukqNY#D2@1oZEQ9*;pE5zk#P4Za|9L7NH7ti*-Dcg@C#{8VFAauK0h8@s z?2gx*xU8vTA1mZH#lyy85|Otkvbn@{nUYn^QSX7>f?_Fs{{sL4OZmlD<|;~97za=E z6jRr&xG+69-%OzxksN}Iwi8#W0&dM=WFJ0LS;%M*a|b|n3Yi~rcwG!kUniHb(wX!X zds9X}_X0HlmrB%HbPdKs0=k5dXFJ_dHMQ`>@DT$%+y+0v9f4raLUuY+Q8qX6WsipfgDytYDl}Q4anwf-#duQZWLIqiO^BLL%8cvdRHIa@6L+O zZ0%aQTqna5*FP)0#+ZQQh@^h? zsbmGN)S;E7G&zl)jslG;m9*~Zi@W)PuoC0ah||nE1$E4(HBW22n6)yeW!U{O!GK3G z_uIChS}dj!74Lz@LvpD(`I45g4xiD`HZqLK-eRLdM{%TnGic}kW2bLQQ zZ-5%rcFqNO=`B-eoF^!5hEg;P6m~;^VL}u9x0@Q7y5#(fo)|g z>{}6ML<9`2$&e#9Q^3{47_ey%ETvJVoR*)kd{!d3<)l;pQEpi&Fc(JrXzx>X=U_hy zASPDOI@PW&)SA+e;Z$ezZP=(2*JNbCJMU!7|D9pd{%iu9)dWz1k}O28aN(+EYQHoK z=&Ml|LuxpQOcDtT_1ta70C1JgJIx1Fgtq3Y@*Wc}905SR%L5`l!m z2LbbXP*P>KTCz4&%0@!DFpdR*u5_XAuJesbsR}QQmg|#>zGh(pk)shpttneUEBiv|VAU{# zR9&=Uetp4sEY26ah^#t_XTm$KluGdb=6YI?@!mfck!VZZ&L&XwE^HZ}Ksj-7B@7U_ zra7{zXd9Zkzy*mi2AYb0gqZRCff5o65K5KD%l-=zr_*Ist*zv`flD);F3}`I1imez zj*BmYWiJ&k1Jj-suJJO82TBAVAm(fb2WG&OJHY3TD5wdZC0sJNHkt=j%JH$INBlg1(xf-8p&6~UERKOXG?cPRzW!TK zYtr;^_73P+k`5yaHb>HwOp4+pths*B`FooqQ$lM;e_7V@1w^0$9B}vRV6h?<`$_ki zfwG-dZCh6QdY1Ae$$edh8}M0N^#qb&&p06VtkAPD`_n-IewN!{1sxymP$RC?d2NQH zqCK6H_RPbyC(=WC?9^|g_iX0{q@ma4Mvv#{?6Rb4TlH2(PX~SM%6b86lNVJ_pTJi2 zw=B;a>7-IW$72v*h;XgheUA8DW-|J93)b4%H;>uWv(bf-xODcSAuW7ZW2XV9F`-MfO7NTJ{{$CkV%)E`Oi40?&DhQbOfkad zZ{k}frNC!u=10w(uZkHG?!=P9`xb?gaD$ojsFKTHlrwM=(Yra5Y&;JrX*adi(C@{P z!MP+>LQg4VjP+*k=_y2oy=-k^3s?2dxatwJp#DNpV#1n%ujYqwl~BaF4Wt^puGYrj zbEV4m7^V}Szk9GB657*&HuwjED@p{^+blwW7cOk@liu%&{s}fE-f1E@bkqV~?8Jnx zEyPd4#VN@Tq0lKBjU;Sur=;3OcT^>$-cD|OQCn=8FtGEVI@JhWg?Q&k4qn53mxx3v zP`I&wafLc36*nja#fC{p1oD|yh4cV)x?_}AlVy^P~Y{5G5{UF>VWQ7)%MH} z`Q2c&-^=DPRZRNI(8V@`n6PacV*rejFG|rwrmd{Tt|Xy`n)W|eHkOo>05qaPaDmk@ z6;+>rMkhu(16ZD;QCe;_YVtVH*>#QlAihwHGZ@d{AK@ypAHvu(DPn?CZYBQfnk=2_ zTs5VgnWr)ZrlF4bdy89NUmTXyhTY&%G97Vlm$w1^JU`xtbr@*+CtYZ_69^6}k!5Tz zf#EnLbs>F5mEz_$(yn6{0+xh=Ho>aun5aX+vbm9wZCIY&wedH1;!j(flmVT0R=vFr z;JHD6$#y?g&rH2-INJ>`JmV^k9@N zM~ewKrc9NcnJd9es`!MjAEPV7_Os+Y*oY+=?M&i7d+(OxcZ*HI%6S!g(mMy+^9i`p_J7*!m?)HW^ z@)<<&&piyj>_X9hdH{Vn6G(f@0dqN~I{25dE&+*| zzsrrf(57C3@VHsVw~I#c>;qx8;&PtbSRAw7zeZ#usRC_$C#s7}6RT2sfTNb7L;WA3 zosG^=+nnpHm+%Y2hMs`>7AL5zOdB7BXvS!j?&XYJ?|1{Quf1m0W#6A&2x;j?5zdX_ z0%sM>q?<$ulG6p}8ZEjd$$g3FKo$9BH?hiOzP#A@d?ZQ!IZ$BH$Uj8Px2XuAusU4L z#y_+7|K6;5iAXZGPcMr+kpf7yCiF>xy;5ct#|Gd*6r!-skOB$;kFx-M#C9Tz|dp+s2L6v_M8eQpoZ16XLN(=I_E6dnqs*^{pTut(oXzQJG3;ys56$jsZpY!S4qw`F|vyKsn@K+ z6i$k7rJB^>7iJv%@REMms%i@K{vUUJc*Ypu((DDn*nJun3n@S^2k+kgZeub0Vwd-t zv0fcf(6%dnzgdT2x`rf2onI}Pxi?k=sYM?&P8i%SfNm_Ix6M{}m5$VrD zqN#YH1+n>+A-e)o<|c<5%l1<~`Ex|r)7*%jlb3A6k~?XsY7=E6K)9`9tENR_BH;Oa zxo+@X8YO%eR&}2M^MKbcPCID6DS%_T_5DCj_s+AAJUx%9zC~kz6CHW#1tRj2%ezY)+lPt=#%8u)%lYQW)QS^W)I@M zjCfGix3MB`ZGI9JP9%#aCLj1lAD%wL{2+SXoFhuEeRfYj4y4!ekthVXteZluDWZk1 zFH;qvmH9DUm;OYp-J0W)MGKYi3^zIU_Q#+{T1gRo6AZvXh^NYYOt+l zZ=ywFk{WU$)foJ+vj+*>1hB|-)PUi^s}dYOG<{`W%Q~eBKVT@|T%OUD zV6Eo?H?x@;9E~&Zm)tR~{4$wn>dK6dM|q(FYF9R|3i+et2ZM>8Pk+S{TKGV_B$XX! zBNjqN$GEG&$}hOu{__YBsP@pvz!3eSj?j-0wOd-RN8gWj zmTd|Z0qN)#YL27#S9A9`NF!9lS>{$nQr;*#c2OF3@rBco1aD47IA5OG+}K6nMi70z z+zj9_0Tj!VIKs{qUD!vb(@3@e4Q#hB8K2q+=`3y{7UNVIizV zs+PE=`^*kAFv7g3C$Z|*0CEJ~1C)(29>wy$pcM*7Mr<~l^%Zb&H>-#;hT~=87L28G zI^_iqpte|0aerhxhB$agaJk2olqz~Xuv2qKSKrQC$i{kAM4drTpmJj*=!97SvvNe) zuCq`}if+joCB}XJi*c-#;I+?5(En-F7%o~~`4A4(AL1|g%fEI23A#X=(wN);;cQub z`q7HHwY!I(eq`ujl=a$7EpCM~Tzo;&Zq@D=X28X@oF71?~R8(EC8y3py|Ytl#ZF?gq0|o+Q_- z89Ybj-X~1FJ%g-jv=r@GQAc6HXzIRsVV@K+^76~;rznAt_+WuANw3}Itxt$(0j$vV zT2?ETbd2y7QE7<)Cc`BZWed)qL#Yg*Urj~1kdkWiD@aF|eU1*&IExhH{m4t*01~h<_mk z5`eARuOIYhMUGc_`*cw1Wv9@8RG1u4qfBdDj-K*CEbW9CQN!d51ba;=2hAKt>Hp<9cV zIa6o-2g#9Q5j{-osX@mtY~0M)WiY<4v;;ujart{38bW`zGELpXIOnnhaJD|#RkM+n zR>vWX{|`lwd5BS>Yrpq$hO3t2yt>TdqdBqt=HYH$PwN8_M$O}dRu0d!=NK798I*r9 z_spQq!n2qOM&GUmT4$PprRz*7P#-G;1Iv#){<@^yL3X0EI@F_WNej@?82eQq2eB*6 zivCh&Z^}Sd#GD%``?1&sgI}OZ(GMw0_J>oK9V;u0z7q5dSTx*1*!8dSD=z;{$bR@V z6+W-dGO_n5L3Yp9#}wSUavb!c{!Esff#_C&nld2<*;jX`e4wQG)70@W!a_t>2UB|< z=yLTak(=A#=ORZjf8>9j8xnDzMGW{{-phZyM1DDxW++wDXszmrL3E?~1*y)MP76Q|mmoAd|TQ|B{7yWj;u2hUbu5yKXcVaIL$$enUu=l4N5VTd0? z2V;`Blj{qN09cB1CrgCeEZOlb2f*1YIf1`El??WG(x75;KMMZg$kG`i**pYpBsvV_ zWhe5IPetO$2dl(`5HWQH>H3aGBqMia0Rdjken#05XwoK=BZkPon<_(7-ILUi+Z=aK z43l{eMvaCUs$a9(Bx)HMS*O%vG2%6}Z2J38eR?3y*mF+H}Zu^n8{6Tq`?GLOC!G01M?Hj9@9FSxKC zr*YP`K0IuY)Jzaw_;KrtDV8lv&F+4aqS7|9fL}Y~9)onhQ6}*564sUUAFl(pRhO%u z2w|$NA0oorUsO=E>p>E%)(ztg@G372*tgCKpw6YD`W1Cjp?oGZ^W{hX=XS>*;qRvV z9N7kUUqt0=c0ME95g3P6VO|X4S=2ZY$7BnE3Q7z26ojMuO#(_ftG0>16~2;J?Rtp| zL-fl?a4Z1hP7H}?2+rC+k?1HA1`1$l^n1t)9+LG%ycleW6IGz#q3p_co8+GZp`K-H zWj$c_C0q-)1~7K#_a|$bi$!hL2K$OT0pY7t(fUv@dH0Wb++zmQ6)ZWfySrkLVSb2c zM_r#G)7nt! zdKd-py`t#o0l>$tNO<3<;ofQ|wBN(zkf>oMSf^xe_TunFYxby`3@&@oNIzxR9nmyl zi|P$&dXnrQ(8H4{L^>>H(>1B_B}~BT$}$sQb$yTi1;_-O)dqlJ2qJcOE<03#=;n&ZAq!p%+Z75;yBVSC+IShv2tA)!h0P3XwF0zi<}J=-Pim?rD)P z*X(>lo`bE+4jaa9wr;X@exSTL7EJ@ypB_NT(!j(r$$0OnvyUywS!``Y^MaA;neX?q zIL!kcJ=h5M{ayc}P8KcG*imzSoEGCUk2t;oFrA|JdC(D+k`+v+0qL;vBi3l{!Pn;t zWr9hiMW6;6%xPw(Z0*Pd#Nn7N+RO!mD7&Tk+j+YgXV6_~$(=+9_XQ$kFm8`d*9E$1 zs~wGfAE^t{Cj~4OEWiVrW*93LW*=E}9=G_cu;c3~5~Kl6D~#A_JPIfD$#m!CNvHgdiC1=f?nvm@u04d&;v?!emFzO!J#Z+^`wTC{HWUk!G^c zW9gq5!YDZmq|M#0fS=p$pz~iKqLgiKCzabqu^_9QBKvoplj> zhUmM604O+X3Y$*}uagP;T zbva2r>+?D<=ye{WJ3WXrkPR|65xNLeA6Z_ue;^7VBHXv=&HCs3zvJ}}Y-HJc{mQgt zKt35E=1#2M19hw4TeW_$3jpat8v(B&bM;%%w7vK|b@x87Y${{f38aUkp z+|*W=25wmUiSjY?;{A09W&DVYo6rQQfO#)54Gh=CYoJt>mz`S9cJOYYxpRU_uhe=$ zRgLwAy`X#4=zL|0EFy&|n-{Pag#n=SK(<_%y%(LPEK~8eE++oIOdA&JG>&NTVX5Ez zvW5Yx!o-@ImYJ;nJ@36|trsn6Q~yW=C;>~A{IKFVx}@-Maff0M=_3cuhy#otzT-5I z>$fezKG6X9Ju(F%2N{jx#>Z)oKK!yx^=#9>B)g+?{#eh71vde9hb$C&BeRMa+e$&m zRwiO2g$#B43~qqi1QFw53YkE<0HR`DN{JznZ}TH*=6G8~}5H7nq z7y+q0ANeT0qcdUm7@Z&;h;2^_+B|Rx+Fr>rML-t914H5_y>JG3dv!7H0bS&RQ8Npy z$VZnxa&X1O0^J_AP>8P)$#ubqpzd!wUp}qzN?TzapqQ+e4MCSdFhZPUZnCaIi1-Se z_H2vU&W_Hz4ufkU9to%!I6&jU6o==PxVQ8#S++KZkCU@hTVx2faoY zPCZDFRFoGV3}h$QE8%W?@4cmzQU>`9g$tbvRR$!Eq#v0oX^`oX7)^^{Ow4+a8c04kj zWeQb>EE~ygwBtqQ_enHq6F2f~ZN!DCsFWPDHsUNS)q`o$%C1k{Y;DZtawAX7If+qX z8T(S~jbl{M^oC9jr(MS}yOyb^y%Nk>y%R}PDDC=XsRXkoCOM%*#nP8u?{urHF*kkG zlR#c@NhO!FwN!7;>P0a(X>a-f!IJJ2O8eJ6mEFSTO&?KJR$p%~dn$8_I9nS>oQNB7 zsUAs39&h^KjZQ&$NTR^yh$F#Y!6AVHmtrr|U8_tV^)w)GDoUryR9Wpg0WL=s&ep`7 zoz;syTN8I;PwbIg$fld>ykacp*U+CrFvj&gysMTgx6;7# zuz=bS`unTFUR}m7m3H|d4 zDvU01T)EwBGJPaN0Bl0~b&;q|=(0Bvx=c@DVgkGDQ(_l-6WMoshn@nvEOsikF(=Ef z`&5)oD8H^QO7-llj!h$%Dtpm^%aNDcJ?u*LY;C5@RI&IVW@UAjcV7V(@}20+1pN7?hrl*g27NigV=MqIx5*O!Z{%$;gqnD^1IoGeL?X zR-gnNG5ml6Tm9%{YuE}FFjc_=478}gRzK#(rV6IYs#BHKJF%h0nWiyxAcIQ_u7FuO z>Jo+;H3;!i^10#0ZO4v}1!wlvuewWt6m#44Mk1wpsi<&QX-~EmdwmFHYeKINqjtOu zd9asZZ`V9+JQ&CV*V~?ZM@|W4@)pY}7>Ts&cjPeMa|{V~+sbjo3|!i!-OkohZ_HVJ zN{%NNc0CPHyY6gl+Magh?FyCZO&@i)>px!o2UY*=z9+jBl0GFxW zu5V$%D_*AJs!*!bJcYF2B)UkI{owGt2`7ZSaGtI{dlRaRKB+SLA}42Tfpo?ew@qJU zOfD(O2szxQFLIL<`B4JDM5qI>y27D!0um@)VZ)dOj@naTqkPY}%UqRl$DB!RK5H2vojF>4(Xu%4W)+l023Q}OBD`XD#~Ddw2LMo*LkrwON!ASbLG zd0U7eKmf!KKJc)El^kxcfrc4kfPuO|Wr_zlAVmWiPyquLK%oK@kU#_;-~a|JAOQ$C zfB{G-zyL&0g2adbb^riC#DiLp4mSAVBZJwFSWpJ?dF|-n+}PBt$nl?kh5slKARR&} z1Xw7GamJM^jQBx{jDyH7AaDrsDG0J`4J>(x0+EG$AQSzNlh}g5<(jX38(i;w$ z;%>+^DdvPrimQ^Tk`0+I9f3=#R0E}<21)~K#{~(MX>Nv0n`}zBq&XQf)y0shQxGF? zNp(k=?qJCDsR})PAyb|UnL_b^OUlc%MNY(DvfVu(+a~~s0GD>R>7QiFb3nFGI$Pk<@-}?~vh6V-+bA73 zaA|v+zJz>l3&GE1qy`x=>U*FCmlF&`RO+O2l?9($=_2f3|xM@O+O@m zJP+~*6}tkLA8*qO$zQLQzo=LaxcqvXo|eH|kPITd&fpTfZF(RX#C4Ftq!60GC5YSf z9Ar>wgA6W#K|hqi+>Z=4eei@!Ft_P7$e_+g2Aym`;1bkr`W_kFWst$Aml<4wyG_p{ zgS=S=pflII_6cdVF+{gnMSPpMNIYhz%m*H*G>m24B{jUE;|eZA-KOWs;ch2~Ppu|ghPzGg${|lD zhfn~B0WL${rq9V?4=0CFBJgk-_BMShi?^FBB8e~tm*S0O!?K~fR&k3;tDEZdYN%3X z3vqPfVsRF6Vv?QFYv2N0invWrlSL(Q2@5VorA@E0eL&}AXY?%_a4CvA@yX8Ub>6_G zxZ89zLy72YO*AuS)Xb!r<*dko3vvw5Mi<5vVUX~G zH|C&%)rh+}EIvTqurNUmaj=j^71Uvb6;|uU>#`-4Gr+Gs<}7BW^~z_%WkHFQiv*dVHIRktMw91%`Cd@4E0 zq>%*np1>*fD20)WqKF%;XkqovFmnV9nylnP9vzoDMgWDCCWa^-4H1VBR;CCsu15kb zx+N^G5J@G_3NKW>D~_ye;R>_p(uNf^QlL^V3!NBGjNu~26I-nGZte*RGEvB2C5i>4 zGzJE^6^N-pWZ`l-DQ>wgbhtjfGO8E?3NSkKFa|O5o|-7L1q>aQL>`wea!BlQxF#ET zN?6gMi5uL--Qbks#bB4k7c86|P72+~V~QgUp4;tdiQVo=1Xq@xa!NY1F=~Jt6UWXC zC>>r9hCRz0V~QxHB&<+DM{izptf~C{jLi}=LBvB?e1`<6mV=#FEBP=7eLzy#nXk(3W#mfzG3$ta3 zDq*%9_3n7%U6Bi81Y(}T(6TEN_UJjT$OuJOa%l4mIjU^>5=^*u)1U5eW_Gzj%ndA< zH=F@!P~}iTAX-9)?A+{NS8FvA)HCc zVR-@CgBK|Rdr%QA1$&^&A_oBh2RM@l2sjf=moT9$C5)XZ=nBw6YPz(YC;_!Ifq)Yr zlz^Z!#f0dR=(Pl#$)-!zK}diN>+&YVM7pdU1T94b;Rn!CL>AUkR4^y7GX>RjDda>> z&IE!kYiBvpF%X>zgxl!S=CCsbok>WSLXT-FAxkVGdce|BR6<&cO6W|n57Fh2d!VJ@ z%~V8}9^9s-;H?D#I))-=vi(Sg+n8>2d2^vNv2@9L>_nDH7QhXV_m^ZMCn10EqAY+H zAny|(4`75W0<|@H2w4DElJ}EjBuBE5YHRW$SpZ!2ye;qCo+ruyK)^xB0MJ?xppC4p zi9TZbK-Z-zo0s7>CL&w*{E+P99^?!zB+p*UJ5I|!9wcXQAbIu<@{V(meSCwQ!H4qf zKk|-ikbPv?^F49~N_(D1o?+SZvbCoD7SoYc=FDbJ@3jo zde-@zjH9cxbVXv>;2N5hicF1Sm{S|fpbb>?(%4_NKe*uJ#=be!0%?pSw#}dzE@V-r z-m1=q$^mK&2T%$2Isd6**+_I^1}2_tvcs}b>IG1?*o|5kdb;6UL81m5>@DngEE~0; zvI*U&g;p6hm}Uy!0uIBr<0@6{vF|O$_$KFbrSpTMKUYR_(1~i5i5fg10yC0`!4e~g zV}m1<_`(J&Sbzp@OQrFg`W#0DlL&Y;e=Ny>#J->XwfB3%C0J$CxpPWcDy`lVbpsYUzJoQ8&m2Gbm-X`l@4i^O%Blb>zbR;%@6 z3Ow!XNDq_bNpgkn_eE-&6WLZSt&T?DBU#|m3NdTdD$OCTF1n;s~O`-d0I zB}m)clD1j0RjM-jXS=1!=zmm!S+_aPLDHv^qz_H4D{m50`{lE!I+Cw#NV4$HE`-ejg@muVOjmkM^fHt33F(avZN%QQGN zcV)Ws)a?p%=1d*=8vu9JDCF<#xjK@+bF!+wvhwV%((0x(2VL*0yeKl2R$qgizOIgh zZRcEpMgAO8UQoRyIQo~r$5F77LCBsW>>b>-L9n7wiGj=Ml$Ib-ym^NbiZuGjB zefo8E6eh9D=yj43OpA6#o{Ej+@scWOCZJE->>^|ou72qf%B4Ax#ktKmzj$_-zwAPtwAnn>8jV5*Zs$n(1xh&dc z%~60dw0Cav2Izk67u`F`z)F=?f>Kx#=}PShPDtMStjJdVzLod!;924zpPGoWN+;*Nhb0%ur z-OV+xS%vTdL;KTZ(WWaSJ~SH2(B?VL+&)=6QuCgCfuRj$Xp?_s6nOMY$!hO>wRgUw zFEF%GsQEW^y0f#YqcDM;N0cSgMw^yQo9s)bEp{H-$cR$0m9h-ZBZJH%PisrMgMHd$ zFR5Ws2(GTpRB)#OU1%Ajf+wMXj8t1=oz7P0}iwpFT8^!3V>y(3p#4MH!J zE0-FCKFmwVz-8UlCoW=gVXCgmuC7tYsF|o34?33%c3X@6o@Re-jiSn^P6=PyRAsbg z8_O1!@6}aj$?#%4h)dsJ?OqfyM*2Kpg_kJQprVQoykWa{%^DRNKwyF{Q9zIZ!wK8{ zoU=*CrP6X$$<|&`wl2}$Ey$TAR^al}L1Vhm*P1@>2L>~PiicvyyRxH1m#AY44IFf9! zQ?bGFiwW#P7t%(sFE-ez*hn7MYjQYOXZ851Nr`|W{XtJxM=ViY84*J+`nx;TRB26= z2qhw(YI~APPNYQ2?;`y%emq%an9HM%Cii$aee0{3R9Flr{s){*ee0|Ex93s9xWku?W6c%#` z`1+Jn>dPELS3A0-vUh%S*@~hPqmaK(>2fRAE-?}@Bx?$q3^ z-;8tG$}gS#x(9!EPJZprZn3!_P&gIk(*bReRU$s($(Y@ zD2*0*^hW@0*x~jn!UoG((X#-rZgtj6rG=@qt6v#N0{%Y9)uk1~Q2ok4lJE3Mo&gO2 zZK_K#RVEdsX;!e+Bh*Ny3SJ#?0WQT@HUfQ!L76jV7bR@4&y^A_w6Fd>*_vIlvz-w8 z?Oa0IE@>e{TbHt3+9j$rtx0^Uw3RODUVU|Xs!wIFviMYGciMF0t}2#|=$IwODA{6% zWh0FO8|X3A&_IeU0giPA?Kx5#MCq#QW_AVrpU-UyhZM6KN`b7fm9=wUrhv+G_ z3*7@fg^5Y+LZ2e!v`-t^qaNtfRgr53Jmem{{B}e1)Tt;Tuf4QOcF8VLyJVLrrSzA+ zmWftIXa@hH7ji1L7u8Xi)GkCD4cS?JO;0;pGHpfW)YWXXmqSAGwAJWnrpltKY}#s{ zok3?`I!4*rTvBbdrCN>(5(8{=x6-tbCT}kh?&+!C0NtsmRZ*%Jh09bgXP|^FmgyHe zG@h{aDs6U&nnT82pPEDDL4f{vLVu_+d7Sv-2Or|l!AcbqjuG%|SR({lI8lZYNrKi! z@rhk=mpvLG_QYOqccgCp?dXqsSOy|vi)DJH2Sd*`;%x2n;)5~*4cs?|m|c~9VLmdu zzW0gQHAp_e&gy~W6nL1voE>BqILP$o113Aj)5bxncWb~KWQvq&0G{x@N?@BxmBC?p z^@}F$izO5Ycxz}}KqwKB{;0<#kX`T97w@l3VSm5)7NJBum_O=?OdsNrZ(A*d>{0pr zP?hSZMN{=v1Zf|Gd+)tiWhx^o*g9_ecEARnw|nxQRIp1?q(thC4qHTrQ6OH7v5gu> z6^U`G*IR2+QCKh5$wJwlE%Sw$O`k%TFP3hbp7Ow0K~fN#zV5<61BnY7yeBF44eK^5 zBdjpq*fv$**Q|_SUKk?)qSA8PV8k&KY1nAGZB>;`{*qvvaZA-6!rp|}ewVoXIWf*}}`#S1q$*!Mpo6N3r?{h>t zv~Xb#!J#d{F@lLIZIpnE40C|7V`73UdRwv>;|m(A7kFo?xIH;+;IfBa*7KV!mSC-n zR5_Aruvr#_GUT*`+EA8g~7yS(LHsMJ&b|NA!ym;61J>5Mu>1%r9D4^oUmn z85M?m@4e!**eMJrU@XxD6)QL*hb12;jG%!9NKtbjafP6RObygYskWL2x-V>F9WvSg9quo$8Ta^qo>r|9_uMgQ!sskf*U+_ zVh;HZ*4zaLW&@2bGz;p*1~JGaO8BCl6V+AFb)~P@TEpst^TTr80O{nINsT#*ky@0h zwbgpPb)FW_aq=s6qUw{WEzCf<^`D}i7!QvRIDVAUa6;9Pf?)apPji&IONwRG6wCAh zQY<7`%TyV7pf7mH)@Y9AYFHF|>OGI;`pPqJZg8B0x#;Lf=Ro?1^&g$&i03b=A9P(5 zJ5lAyM>=o)m5*4rIY}waO%Tk9vx6BNrIX9{KeQGS6Yz z=R9)HgRVbQousNBIp`T=y_#jpBfrAWK5eiZJC8SkeWs_>9CjXh3KNr>!#)K+rlOf9 z(HiIs{G~l?@RJ59sSYGb!}I}uQY3KvYo#Y`qES?uqg*PD@;D8T9D=9OQgfPX&2L7+ zM=}iAkg%;rQ<|GT!2h@a(vLF z=pO%C>7t+@eKM<1bR_$ZtMrQm{Men;9Cp#xcsvYGhN~9|tyas%=3y>H)y;XF$<2A- z-<;G;a6Z#UHRQA{nKoD|(=E$D-;sZw^Uj6xAIm<6<(>!S*LCI@^Q-9f;<+qO+m1YK zLV4O^c?RWa(>s6mdC%)SSa^DV{_+9Z$$+Ree7yO!Ae zDAOjJOr7Wxg}Q0!)Z}?OeFS~cHn1rcYt7$5a^p?cl zQyq2UL83#_1>4hlTR}mYJefW!k|=QbT{HMv0KEd;pbGRQLXs*|`2c~-*J^7In6r90 z-cSLKN0)F(K8mW09!MN4JUOA~`anie^0{#{GG*9BFQdnP=`)>M7)Dn2@UzrqG&rjG4lh# z0n~s?{2}>FA~K3yJv{2^j;b>CQfKw|W|~c-n41YHI?*q)Mt63U#_al}jlw;Y3AM#T zZTkteD|n$yC?`y+tctp*%4!-!)mG}I$|~I@)x8N^_Ski(q&k-l3_qtR>RAKBOuZO^ zzn4@877f`NrDD$NYkmC}Crqf${wu1qxnCmKhY#nbI=Z7e>ePc0fl*sj!Au|ZFiM1; zfQwyU3hnwJDZoycRM}4xrX(doyHHUglnVOAmhDt<# zOD9^{!f9wvQp5ZoBRU2#E?wrlq#x`$pOcAp#Z{UJ zm1g7=0H+_Ez8+N?k<<3+Yn4h9!0GE!1pxt{pA`h8+Yq3QuC2+-x@CU=FIzolLh=&U zqjrP4a00w+72u_-=w(lmmoOzSWg)!m zLG%)c?WK?+FF%;TsR^eLIBmcc@CdwgIpC#i0WXE@oYN<%G}q}zs5G9}>7S%fX+iIK z+46bm`gz&&m$3X&reF4ey#zuNdijCzzV6~VlS_jKWnK0-kS^_c z&h*mdy^G124Dg;D0nNcj*g%&-FUq4Xf!-tPvga=jbh*J}xrFgdMLs2*sYjPRKUqrX zbEelJpoerh!V93Kh(B~0bOJm;$B_Skp9j3or`zvFG)q z=S;5=bUAeL$(d5R{PFRLsLSy^;$J7gnMU}zkIx3WBwv&|Q_%B)esl?RpPw`Nkh-ZE`xrRE`K1JE<<<_CqW)_vN{tj zJ2}&Jd7Y(%`Ak4>fCh3UT8h|#E{{BkmLhH~3{X--qf31t1^}HY1JPxYD`CKyj_9)H zF$U0_>Bw~%3xkq~HD75d;*m40t~yW&KNC|-$5<2**1eGpVzv@6wa;78tIVgnF zv=lLjE^AJsrHD$-MDtj4+m!|FXJw+0q0|*p#c!%)qN|6Ho}n=H(R`RvnJ8o^bt3{& ztTZZ$E|&$Vo-+hN@H^1-F)fcr#SlD^7=G7&<O{Ap#&$M@&LMM`L4GZjDDKw^ zq}Co)hQ%8zsijv9^0ri>wHAmat?glDwcdMgz4ularXmdFoU}S;{cKH%`au@8);i~` z^sDma-uvCpCh_Hqz0_Vx? zRI|)ZHBl(q^rl(~sE$UF#Dyl&r1~%XE(=#cUD7aE)Fq9&V#k${)A=NoCf=}cKFg`w zA80>i;wcmhl*p)Q68%wM^_)InCE&EePw|$rvJ#O}8%32>C+3g(FuQ`;6$+YkHg>ul4eubwtl8U??v;>yYb_iDWI1E`@Ypty^ zasVo01e*+uTVlkZiEPv>g0ogz!*(XCS40v9#z{t~wHan^(CR3mrIw1d)@qqJnLg^l zTtfY=^$Og+7paq_qrP|U_8n{U2?hA6Q!rI_kHml{by~vIsVeE|LBb^_GCP>HNdr%_ z&>uYDs>m{gM6=MH75Pyln}rggI{E_%iFUcCl!97J+Qo@3IW1MBdQ?MI{lwY{_Gao# zOo`AV*UbsG-c}Q;zEF3#G<|R}Wm-(x{bJ58B|@F*3v&p~V*0oTz`kVAioi7IlLZD( zur<}39Z@25{-`@I*tgz#EuEHTP9OEysm`w5V-uS(W*AWi3}?>R#EMhZLE1+lbyz%S z=_xwjIZN++3hO*SHmv)+iOzp??xXW5JoHU?&U%xb>zuA$RFl9u&zrE$LsBZF1g%m} zsqRr_t4dp^PhvkLWIkDy&+V=2I6XFJs7IB_z$iwHs?7fUus{MyRW>@GKR>Pi9OuU; zQya}iM>ubN_Wbp^dQl%5QfsZX)><1{Ypu1m{@h2j2ePZbXlvG?MBBImbfOxrkkI_c z1$e%c{eZ!<=;-G@J!jn~AHA+~@&Sq9^eg-iOTWUqQ@2kMNIJZ#@UhM?jm0SedBk3C>Nn$@Vqb)?(Rc@|4+`#n~!zUS@H& zibbk2`ye|!$!crKne^KxZn=v8a%>hi6AJ6>5A_Vea`jDb-Q zTPUYalns?aHu-7r12qaOd|N!YCdioy7h9$w=Q)NY9nC_tgw_N1C;8In8bCmBZ zh&|wURh0&_Q%v#FiCdaF*_nOSPPRsSy;iMNGg-Z*jb7ki^){;;y+E<*COB`kG@dwA zY&c59w#GX6!*mIyOqJ0nBJj068kP05RukD7>#rh~&8LmpT7Na6Ev*37TW^AI(>m5K z@GTu){Sx8zEuC}Mo9KM!I^TJLH~Iy>#J|3le%-%7meEVpQJC1g2In_#f`fnaDK*+? z$R5W=PrdP++_p<*kiuJv;06}}$xeA-x= z=_Nu%A;lXX=G0pm<7AuP>!1tVr&6QuEeigYsH+a|UJ=)0imu52(&vTpCSexT3pyoXKRfO@Y3ANFjQkzbuHZW5zndYi2_he`G_Nk3FnxbeDMVwYh z-mp?rtmKCSAL>=EI1)gBOWLbQ)J&z7m3HgVi|VS(OTASfao}pL^=7*=@?G$^;_A%O zZg-azxAjEPf7)*iSIL@64$8j8wZ4HWSiy!l?vhYQSz@rxOb#+7(;k8Bbx7Nsq55pq~ zPgKVf>MVQ^Hn6M8!i&09WnuUp8ZfOjTxX$(TRi;j67SjjG7=%Ci;oLAm~bMW#7r@U z7$vS7Vn{%8A*Kiri0R>LL(CDV19r7RQv?>t&@h3+GE^jZ0@EOa3om43p*n-@o;)(J z5P{HvMvP66;lwV7VGb%V58FM@m_rJYK9$MYlXo+&-CuvqjMtZAEh|_IgH@6v*-F#%Lb(%rWNL-)@29dzA4qd8=<2Do?;!r}Evy3H zN}Hjm;_+SRsS;Ir4xuTP7R6Lnk*U>bbOt&dy-j*sl7#7> z(A0c2_+lHI+wEp!!=m?-Sr^e=yi@&M`(2jJ&5g}X+1t?28=XU@SYu>h@7d(Nx1>Is zp3459r`8t6n~oXNUBAiHOpPKbiX<6=ragA-ck|4)errC$iOY{EE z2R@s$*4`f5ve>55Ip>^n&N=6_y0$D8$6T`YfuQ}u@6?`N5Cp?(Pc3WTjQ71D2!h}J zs6G8|h*ud1^LN3Uo0}H-g$%zdlHsSCv(^rKc4)%>K4sxqsvWMd^PRHrHsKf^hoZjs zi>3F5_Y1!Ze)+&K+}H(DD(d@v`JpP+c_8(+ zTq6mD{?iTMgs#z(yKxn4Q#%5p8k~=#)l+v2Z&c<)l z`hveUJg=1z@UIn;y6xvYp0$-Kq%Wv+Om&u3j55S#WB>pF0J9YUFenfVh{QsXP?BW1 zxOWE>01tVVKx#}Ei=|%;iG8Tnq(}wt!3qtS~?hv0Xv}OD8mMA&aX*~#`>K$1>}BPaP$Lh(Tu=I34#7138XD6$7rGU?_K*4o%-e&hX=^Qa8jhM5cpfCM>x*Fu)3ig&@=B zw5%m8TSvf|>xGm|w)k8JOx0YVlERyNSHQ<+XD=TdQYIodYz!1J>usR4+%zf-*%WP?AR8=9T{v{NjzKG0!q(Nzbqn4`D%t`sA5BP6al2ZV# zLmC0Sr@P`k;P8KBdnQaYL$?xlCX~11vxPPEnrHKkOLS@pxg}BlM`T-UdlubvQ0S>OL{G{30fg*XrN5aifpMbdA%*Dgr2-;7~#k zV*)t^)`tHl)i?tELHJ8hQF8^u%AK*az){AJ_qu!V!wSSSC`_uV!M((PHiG(9RfX?i z89@=Dgqi5Q$H2K++0^b>&Co&Xm^!9RTAzlgKHUdPnK3WlXmXZBGGC&k9`p!IKxzM; z9?vzCZmozk6WH~`^fxz~*q&6X{!A&qY}W*?73>0N0SD z$7EKD*Hm|Qa%R@%%oLBX!=B=E=M&}%!Ffaj=KAe#L(w3OO2>(Y6bs+4FUoc)TZUQv zNF?I~dZ3d|TNQIO$NB9+{?(clraH`rCvN{wpIsc6>QIBIqVse7#I8-OE=i)(pF7t7 z7K}qm9Vr>QX7Q2AM-3Zj3H#b?l*!W`nUNK{m>Dsq)5n~sByftXWVMg+8Lf~L6P6NzTi)#& zz%bC@5lR>DmKq(#*8Djhiw(^L^##X-kCi$?gLh~dX-0AaX|FUt$XU7M6Ajxm``9&X zsqmaZRDG^uIp^*Fm*$^g5YO~3!?i1^&LIp8E?RUaohRG;r|}vSHWnA2N5G)K82XZE z!34;xdI$b(~ev#GYfrWDK1K55uqV`w&3oiGh*K#LBFZD5gbVMRYv55`7-f|&Ba zXwt>PqY4PrHQcoA=?Gbpu3Ck?%s?F4(@1E>in;NZ!8*-x_XJ*$E5)1Yd4|z}$;I8gV~-u^Arx*3 z?A0^yMX%q_Nh(HJzj(QmbpxHUwe?8`Q*$VJ~{Q zsNb9XRFNJUszEym&B_U0>2*R6W@#6l{EJQ?f6vx`6R0j7#848fG{Sw5AO zlE`_j+fH{QROx3X>))bIn!Z@sAU)Y`&PEW%U_kIVM5oEUkpqkvRiW?%oSg+&EY*$i zjIA}&kYG@|AEXsw;ckTlE(RtI=YG#}oLl3D*KpQ*b3>VzEx}rKf}Kk(97ET6{d($- zmLGRXV)m$k@_H)CcxZK+#;lR^12^coTx!@Yv!Y*D=Mex$$G&Vzg+kqn%*6~E)}T0C zZ0^m&I@z5IIwM#QBv+HOD9#uc(wRqV5P1;d*SGBu^5843@mrMAb# z4bMj_t%pRu)y<)+?UNsCS zpdSK0&3YvQQ_2Li$bRh3T^<#9lWNQhDfJ1uV#9QFM3(T}VBt(Ps14^D#r6H>s=pGiSD<9KR6 zTDDpRp$7y>k0kTzNY>(~8v2*1y@qgorCx}uXSDoFyJhrx7^QJyq(L=gHm$_(rAoMa zxs(&;0wTdvpfG2ba^+L#H?oZ)5D$!!BB6?LK^7SJyu zZ#kyJP%IN-uIpnP$UPuR=!N!_F*yCRh-L1-D32*p`;ik%~LN8?Dm8%8QBo1jscdbsrG0kn*G)6eX7{np1id$)1=VrQn&(p z!O2$Pjupk@#Daa|acd#6_u!KxBKT~PO0u@ctg*4ASS3F(7Z)?Tb+l!E4PM*9sADkc}!taPGWJ6X=C$MXoT&p^Z zEC3|c%0PGd)T=yeQIfUr%Uq4~2_KY=$u8?U!x=3$ePt+0(Fs6Do8sW!9X3$JU?cB3 zll3(gMJFrN+d6i4wSOLHT4`PX*`g(ig z1*<@5`=-n=g~HyqY=;|6Ofpz=1XsKheJ9D@_@@a)c;qU}mXH-vX% zpRo^a!(J(5PLv{v3iah_2CVTgwosxd9|`eOM0n*XLIsgX-h}bjQD-CO+(O5XSA^h2 zQvH$uRYc7Nip84<5E!J@ljfSk2OL*P|GRahU|=^Xiasj#Ozy%H&`$=BffTT)aAw$y z^*L`~OJ0qePMNRI(`#7NEB<~!qmfO&4O%E|8Xy2+zfB-a2q@LlCaRN#TKJnCRz20; zbSSPKZW;!8OO3{I_~Vf^!5^RDBY&1T1gN+yv4M;#r&7xx1;71gBby1<@TWTwqNbwv zzx*an++VG7;$)9gxSX1|DLzZr@B{aTh>M`xB9Zr;OUnW64UsB|*SQrx%?{H6!ayq9 zU4x4sNRA_!d?{N{XtNC2G>yS8F|UCp#QS~65P}8A$O{_65Z_$bdj;-L^Hzh2A-8IP z#XU2rS87OaCqlQF#q_c!<|LHA^g(O5n9^97P_4WMwkiw_~==&Sa7$DMbBqXOF}Vw$fU zRyJ|ZE>S|4@7j>04k$VmC49%T^{h|bRE13$g?qTtI@1yTue7jM&33L_0sr+L*yWpw zMVB7|aE&XYSAnme94_3*Ip4j)=Pro=Op%B)hRmnE;L4>p1b*yYKR+w|j8zjk5kG|7 z4MVs(m>TRj#f%T=Q{-ucympw9_!%@Z$kCDEB3LyUG=1da`qH4`12&8J@2fVH9&Qkx3EnRdH>_ z`>nz7vXilF%6B)s#Y2MkR{G#NopPYy<2#ZaAbH1&$nv5OJ6Axkz2*s2?HUH~aolMN z$Fv)1nen!(85%hqrkis=dl`dvRXSTT29`5o4K+5^kisVi?knfMeA~rEvhJ)0rY_cn z!#tJCDf?nKEK#gG@K6vU1Kf~OYM+ghUrC03gH7mJmeJU>uZ~tDPkKxdw1DO!q@#W! z1gA~ctDM>0uT=2sbk()On;Y5XV9f$bgdRV5JJpE?8=~p`A(noHvG)H9nAs7`hjU;z8UeyH{Q-Aml~+nmWa44Z8EbtkGah)CaJ@*$HH-xQ98* zk7XGa`@7#38D_HGM27kjflMB(Gk=Kcn;lPJ?um59UT_brcibf6J}W*T%F3^`*Y(h0 zOBu~*!rr5WNK+wmeNlg|Rd>|4Z&-C_D@02jf6$YC>c;oBWl>E@&(bM8K;-~TtNlHM0Y77I9 z8!blez2H8ndI1=!-u*xielks>$lUR<&O#_z*QE@K0nS!vKTW5onOS-1d=By|kG(6l{VUm0_>b;J#S>oWwWj*Gc{%p17lf)} z%S#N)dhqTtr1Dr=x4i@+Q@4#30EI;v(+sxwzFKk6GalX$J^7OoR9gm9=3A_OK^PF_ zF|$Y6g8V)jzP*y+Z9Y!l8ncluTHM`kM7w5ji|i8$o1~pE?8v7c$E-)oE0zWgXUVBk zLos7OOH2?%{+Kcu{|E;W&2#B+sOMjy{@;KZ>=$>TVe1j8fv(F1I#g^df;crD6 z6srbqt=lHTgIsK|*?UbG3Q2tAOQa0+eNDZcrJNfBx+|-%y5%RVcZJg=OBpm-|E1m1 z&VfdiJz>CZM-2vMQk~Ly!E(5gSRzo)gJ4=XaK3e3jXE`CC6p{ZdBdijUv^yj?eucc zJ_om8`hCjLHJPfu_Ix?@Epj#aq=WjYWs7KO{>{vfHKkh*Ck4$C*PQh5Ve{i<(%e*M zBM|LR0tC369;ife6o;g*Zk9`RhNl+G$Uw%fU)%N}212{dVq7}xwV}DX$a|b({mwY7Bt{Cln993&C z6@w63>{WDx0%Gq(`fM%GuvJSB7`pkWOIa^0%qua8(ab6jbmzujKsP&9FPt_#b}4U` z)m*hq$nFJoTsGX|Gc&z$!qd-;5-dTt{wcW#!7-848Ke%$sRr5|`K`O1Hogeu17I1P zA8v`Pk$k!^!1QfO1T7AzvfirX;9b4figkV3Z^y`}99To=) z@sQ3nXJHvB6b5WNe1Y2$ccAFs94`i!DhD7pOw3k>uAdp?zrk^n%v>0R&=P3eo`(6)?qA4_rWEKGy52l)*#H!58fCtgNTA#fo%c08A+M7e+FO>2MQ z@&g$8-d(!MRTM!Vg_x!vSHiU@&HjMBdp^13&)T`WAPKA4!B|hm^(GnJOE`^OK>%k( zLe~uQ{H1yTt81-*?v=3j+Xoo|Q=@|nI|pbV!Td!x+9WqkQkp)ZKKZUaH_eX$_(h&xJ1#be>J}G zDQ5#t$q)jk$${X8ke$1jeBi+;thvn*3!%E|TCZ@LUmKJg2?JkjHP+FK_=nBgq|jEe zY!$>dv6>^38A1j%ZhweuM!glL|DbMUgYml<#iF*~Z&w zWQ}*MIxFWg%PdJY#)^`@nK$C8JCqO20Yw6#$Hz`^?B4ZjAwR*pJb3jhO^zml)yE3IN(7i!0onb0$t`SE7ps=sajE0amt)eqvK}+_Np0GGi3nYF7mc`p2+R5 z3}rT`FFL6}`oR9u0DOSECuUHnQ7!*0f68Rtk%h1ku#OCyQu+t5Bv z=~_j4IHCxgbfQU*bgQN|$l#lB+Rs-3ETnB-A;nCcp3SvzT;8G;BH?1(TpL`goc?Hf z!Wca_b(+3m?i~k99&SDIqz zI$*Y)#8P(KQOVO}=VBXYqQTh_om}+DNYe|F1v|nwjR@{m6C95%?F=wpEjGYx9yNhJ zfeBkVfnb^QZFS?ukyf>ojT<(amB3GDQ_AlHw9FuFi;(I0TtNyW>P`}!?B zNmUrGm7Hb{os*R#|-?tGPtxCb~=$F~+(;8Spri{MLy8ymm7JYa9X|aN2gDj&q1nH3m%(mt^QDQ|G1RM zg-}|vXk3j0|FpXBt^4Qt;o0Cou&mP^@^j%f%+HZ9MLXMtyPy3={=>4Cy;aw}EDTE3 zCD7S{`QQKGX}bVN_|<7|md!O3%5mETTu>jw2gxtzEjHehrC}|$uTRBms1iC6sFq*u z-7#`*@EW7Um2xjOWM-os-D55r*{N*xP%9nk6g;c%yGW>UNMk*WK3o=iDndAICDCz1 z0&BNZ2ZWoD9lUg0Wp_3x6O?HUSz~euCOZd1v(7;TGrRdZFssCD5biK=*D^0kW)83n zv;?d!pG&Aqi@voc;CJk%v^Nfq`kmPBF*1{n9?#M$6qziX`3&CeS5U3u6|md%l_Rb^ zHJkzW!UbAu&wI#I#p&pGq%n0GORRVUr&t~C25=FUE*&Y3934T?G8iw>3l2-|iTga9 zqCIxBx~Fne;bVcKkqd0NLZ3H*U&!v8q?}#$|w-&k0gA9WmMq1ZiMW?zyr0aUpluK)V|^|te>QTT%_V50G=Fn6GKHfv#N9?O>Dk%6kf;3DK+Vvi(2C@` zrAsag0jF0exj8_6U|Q&!#4nKc80eoiN~1|78eObNlxX?LE8$33byX&y14%A-riQ5sy*+QEZF*3fWoyPTJYDr_ zLXNbJb?oLU-WkFwG2+L{CeX1k18V^61gVh|i7<8OQ!MJ&uZ(^<6J)71{FfO$b%^SF zld3p1%KpFM!o*Uc@0VbV<~Dmv9eNRCvUPsCrzMN?h~w2{Z9u8<{t0c@MZWi5LvM3j z3wrDdJpb(!oI1CcyLcG5J+-Pn6T1XR0J<6m|x7w1`v@c6SNu1e-_R1sXhJ4@Rw>w$R6PlKMm7(`CqB6CBxBC zBDjo!yh7pew_i_}j=F61p=X(rFOaDB%!IeDJ}mw{Ei7bd%oC0uqj3GzhomIz zy+KzIoj5Ux&i50Kzp!gh7zx>Nl;RlAR{3WwW99n~qIcr#+Nr4?S1E-MxgJAc7rO@~Ogpa^9B97OuW9W!m5B^U=YB*c_@~+tt?= zZtY<7XxV%8{y^zt#LLW85JP(GtR%$o#1$j(q|hol3?os;%szMqk9$YfPybY&5=z#) zxDYEEghD(UT#f^rHw2?n%|ci=Y`bWhh-RPn_RH#iIpV2EKJxS4O6?rRegVOk8#{Nu z@EPGr9m2bk!#3~QYCy_!CFN5u=RUu!k;<4MkmgS*<6y)hN2zK6Z>EHIS77J*% zSl>>c6--a@k*++NMf}PZO=okz*_iT2Nkpi8FEFRKHb2SS0%iI=SEUm(V4FD=)FAZP8DYA04rVCi1oImX@Gt-tH>#U(odYnIS3OG(Un+L48;qrq zYHFIQ9a2bAXP&I}musr>jw(pKCHrr8|4f`-$2G0a!Iefq8x5UoaX7`3u7$-&ZL61( z%vNBACwh)$Y{T##990RUURDD{uufc}y9(v#CL>gfoM?ufPE-=Z^MRJYYXM43$K#r z_Y7bqfM_(eJ^ya=S4Ta|?K1fMg>as~T9)@lZ>|QprMwPnjyHn2=UszxDK47QZz1sR zleA@K?oz{zq6Uj~%(}1wX}T}MYL^EfTdG=ifW_*9xP`4SqRa;^Q0ZWX%hht`%K}?c z4{)5845N2-NLnw!cBO?}q!IdTWJ_S=@RJ_g_^!?13&iExtVbEKO2Bfo!$E#>!gtjH z@^9a}TBTD8y1nc3@#X=5=fPaiZXV-SI9!?M6|Is}{mx*vShP-F+g5~`!E86~{^QW- z!~BCvmpHYXEess^0wnTIt{<17@~@oR{kyHMG|oh3N+7w?n9!_=?8qbL|q`8 z6mR4rb#O^v!;2NP^pAM|i;Pj)^-RZ+X(`F*tYCUZPt(=gt&R<;K?(;vnaINK)3z=| z1TF{BONpDV2pgy{i%_6UxxRyi{DekMS!BwYVYbI)=#26x$;jiA2z$J>;@9uLM~K#|9kp=Uy0c0xRQ`mjDJoS{%!#HIoG`aki8oZ}B<(bLl2`RKceTmCT56%%G)N zro^)6uRTd9d0+DGRkP=4d-A|nZ}!m6AVCoG1Tm;pYpev7nQVpR1lnaCO&GNs)YPU2 z%1bm*>dfWI)1``))VYU|0*|wduC$g9!w_u_G9iaJC0j13dX6q50!Y+<=XDoFcmr@U9f)=E9o71g(LK$1H45W+H6G1#Md zqSRdX6h4QDQf!)V7ei&+;66cjPfRmcxQsp&?cpw+A!@mm6(599v^VE2CF`r{-2O%G zvcJzbm%4tn#NUsZOy!`9k@u)Da}3kAqi&oc#77&vbF_R7fthNcARd4+EKyaD%Qy)m zfGO!aqdHB;JoY-{a;6L-g8v2F)MeMq4aNv;*!;{Z9)hc`HWBGvXprs$uwCw|&y>Fc z-a%P$b>1CA*b@aRWC!c4{0kTsfmIOj9fKmGaZ}2g6vHavaEB*YDFP)6%c>ZrUwnJk zl)O`9Mg!S92Z0nRKa6IdA%d=p%1O5``BTpwl}MIRseHAwaGh3Te6*d=D22Uu#dr@RLHK6mkcWff#A$w?i_>cTSi{o zvFrFOC69k`_@&nFOM!80wHOet09^nF_}1Ht|ERrU)c>jVN}e~778>Np05yR226$JC ze^P5)z5G?Ew~9!@O|Z#zhNbW?V=8ibPw>XTbwmu88*QCwk9Y`|(ma%SiRipaOL|Nd zPxF)(pl2RUHe6Xpix@y&*-;sIx;U$<(#7@zjkkn)Ei`x*){{}Bw$rqVL$LJ1ELIQW zQl~AW7BnD)iz~XwI|&ctQ0)f{e8Ci`IQFhvHFc6hVdpiNn>f`(Lx4>#1zbHq7JgCh zRqJxXZKYV{udc}e+9XmZD|@0?Cw1Wc%2eTjS`O47Z9h*QY#Bw#?xXqYQIRui9el&? zcn0EMr#WfPK!J)xSf7#V$IS0!ptw~9X0SG#zczBqWZ9k}siT&=eaSj{Q-Cv7sfN9D z)i8mpC(DiW;xblugT1ITOnIK__%u=WAeE71{@M`MkO0hNYSrOQ_Q+=@#kus1SeRv{ z>-1?{MB-et5R79GORb6j*K=r)&*l@<9Mpd+q*~W@7|hh59+LgH)10!HDyb6a5EUiT zWh#i+npag}Po8}xy>wO(v1cI;*MUgkUKG6K&jcG(gW4)CIEvW%8Mp}|g<#0zYl2MOI1>(3cmCNhss%r>23cHqwQlsF_4-5%SCGRq%J19d&m zZwYdc8o{!}Yp`KzmnqVnqS`@O2snt{`95ch^(zDzVMAvw+f}Xjo0%$fyG7M%^)M8V zkMX(-U&v4SVPCoJNBq$^Eu+1{>8qZ1L_&yfsL@K&FbR#y-31M*;?n{pxFevFxeh`w zvyx9r0X09m#Spi`s2?yf<8JBb9UG$1;Ob7|=u>KfCu9V_C!gJIzoc9#Uo`fF0epgX|U00?ES&`h6Lgy}pb;pS?^`@d&QWaV! zB^l@2W?bRd)3-3l0||n9{hz$incz4iJs!Eu37A}o)#s}^*u?)iu_9baM^N$dMq~p5 zJgJ4HJI(vxy$l<0c*x-R@l*zJ`j(F8d0IHBRLU`>UxsOL%=E$(8A5jgFXNqx+XOMP zuV-^jB-*;%T4UF4rdBUp6_xiMsZx6-Z@ehMc5*QVC$oCHLZiK}8_m-I!#BTq|-rOJ-WJXFN-vV*$Vw3JD6hJML67GPxP7sHf0Wp#8>;2#EEss zQ&hT%Pt|a0rR3ct76=S%2M{x(t1ZDrrU@?f{ijfqNH2JJw?e>_ClR_ZRGP~k?jybY ztTesh#C6m?fHFuJKnFk;wvw`i46|^O*K0^oAkO3N;hobTK|U@^HQPiS6_!!w^}!%D zW-QDE{1H&_g9vi$czuPW3JhA+Le`BJ5^f^J?1k_kzK&zv4%8?y9mrEYIPhc^qh6WE z0XB8u_0TS-|2|V+WAZcDl@HRcW}qZvR`11dnJNQ8rHWbk3yvX7yrn>lRetAQBGl4p zVvpoLW*MbfTs1qcLQ?mMQRb=v3^Cl0PRvcSWjKxInhl1v@ByQ{F)}dYecSFXR>PR$ z=b68nt4FxqBgaD0PdvU|>p2Fe%A!*&`5JmEDK}<(00XG*nL0#YWFpaJwKj+VL76yh z+V2zISFl(VeiU7yp4kV=iS>`c6M;qBO|&hOC2yOt;898(;=qUBgBNv6cH)vZe41FA zIE-2KYN@;o0YWqR&=C9{VJuX9mkcip^b2~uOg#Lw46r6i2W#jQ0dRCvajfw}i-$X2 zy9U>DlaE&ihTd@)Y(c%E*=&Wsa?!ObFoi6FFFIEOu=*1?km}#-LLmv=|LlkQWPR-f;u(Uf9vJBago1V^ zA@bL50yfD~E~K-&zS;SjMNHNE9$_-!Z7h-_?D*^f0p4(=GpcsGdfaVY=dW+PLLZ>^ z#+h}3u+NIU(U)shK)tO8$Vnk5n;`-iPN21uP67uAt!cXspi#?J{m^@HWhgGde1TZM zSl2%OZgNBBHsX#u5fknYwsnYclQX>IxVHCXE3uuA>=I#>{scd4w_!gpvr*dsUM`$! z>)2W3>P{L*yYoa+oJp?y9mgS=MTBFBx_z2HJima;9&OMg+Wg&O*625o~YL`nE*Qn#`&82R$Z90-)oq^c!@ zr-4;|`*hI4%R4wJBCbkvQx$@Mwsza_-mj2%#F^gFB6)pxvb$f|-G9e92HV~Tz=5r3 zY&OL(9n-KhYo2_oBSL!Q$LCspTUoB~2`tk~G|L0#%*T|-*#l)(4Za{ID;`6A@IvAj zfp)$uDjB`=SH7n5@c>Aait=a8gCoZA2=7}Hk=udzo>g^A2)QGnC=t+gVvk zd`!+ozSLwsR;X(>qS;>co%N3k=E;xlv|ojn(P{d}cq_U>;8zV9b%PiS=agqWcQF&x z3G!{t=l7J9GijkNy8v!#6L$e&e~RQ_Ht-vfnyP3utprM6|2QyTl{)djX!L9n2u>Zc z&f9olC1zP?>jHZK!SFBziNlX=`GsU`=Fjdr?}aF^{lWr$EXs5!5Zm;Ej#*|!DZ5Qf zJ$v1)zT4~X1GrOL>Q!oDmgK*{XzS`jq2g@xZdtxd`M>)@>Yos#T>8NJ;fbktCi=il zxya+F3F~ZKZ>lvlxGHqzw=xcuO8IFBg7B!zd$C(o$#G*&YAemL8ECfnV{fV1y`sUA z;bW1Fa{Z9eb?Pct(7TZc|G*f^I3%#+o>Da|EWY9feQK3$NU*nr{oqDd5eZ{fE$r!s zr6latN3w{GGS~A}n1{xp!~3y}j{sKUyKzYDm6aykN}vyc98^`vfnRD31@a}!hy#R6C9VV{hY7$ zw(X!QX*13I((6Q#5mDn?GI(`r1s})PO3LarZK)z3u)!AkeC%sbKUPF=mhK&I-gWPQ zSbjv^uM0;j0T@I3CurH~P4N34>qkJb>#$k1};78vAk?lHn`;KleK;Oc3SiSn5p$05Vs%JHF!efknwwXEK)r z60!b?8DCifvjU^*kVKV_P}yiQZ^xD+%e(N-xV1zla5&?82TvBIlc*-(fC*44eq8Ng zw%v=dY>je+H@*thFAx~*UxwqLgBXH5cS+CO>RGM?3qil^Nejy{Sot!B)q!hos|Pg! z{I$HaN*3Tq@!(jXxD80*tu*D6QBM-$oDzy%TMhID_3R*yautNwb#SH#3W?3u2)GmQ zhX@iLR$AZ=Ir!ejn$J3W*-*Ahm1`h*0JC@@@w8GX`AxH?@FU^+TJ=q$t*KMagkCk7 zJET%dw;;gm)7ap$jo6SN1|RE5JZBpaC0SPBqnKDB5McnK?S-EwaEIQ$@M_aN`Ho!1 zwRVK}HOe=4t!bOEirZPuYi^lBWxCfDdpbXD2wCUgu?^fjKiS@+cU7`?Se2rVP&8*^(X-OO1 zOGI;A1|7ZjBGde+eo-Ys*r9+4C}&J`te-H1-+CZGpdOlzV&XuttR;$XEl_qM*H7s2 zQUJSD^3=ILb7wqwHznHnhYu;3E#?GswlU8T-9yg8$2W!j&cO+Y zfrsHaRnRjQv&4WNGBVjsW+Xn}Y7R4dgNunQZ5yt%iF61(WF~|12RQIr9@9b1T?By} zav+S2xG)KdN^0llRwa$iiHM)rM_NB`iDDY-7{C z*Ibw(mkW+WNi}^!L-s%>d?+INgl@(5U3x6URueMc{??O9H+ci6UW~Y$Ss!u(;?7+k zP7TmdO`4_tzia#$+S3q@9??&t^PGy^%1Ie2ZCJyc3vob8pD|zn4-o&gi8$xvS<^;d zu6Y#%s7Pu9chC;A}Q!4Y>t!FoH|y$|jh220nURr%5uPMZ{D zP+0D_k%UST70Pn8u4gs^n<#H83;HGHgYd##1hFD>QHfDEA=*}H^nTcyYGJ0SGvc>q zHwng5q8UX%m6%Z@+C`kHw6hk+n=xiYuJI1*1gn+D2a+>!uZYFCz%iGO2$FJJ!(uq; zR?Q54FgzKX~FZ3=zT_$FXewSOF)P;-e?$8JX+(A#Z%mM^6wI=-7*c?3E z3wGsq^uaJ-gSc56Xa&7M_kg3c=DYpPta-Iiz9M>8KhCcwVQBD018Nmy?n14~_L&jA ziTlpDI3O9K_}91n=fQz)7G88IHAE8CS>tQmOiCns0|D8z)0Ftgf%nH(?7$xNc!RW}ONvS4=;$ZLF&nK5bWKD-e0_TwcLT;+M*qoihjexVj0&PQbk-WT2h zDnm1ixzO1l3sD^6+p@NEq5IL;FYu%=?^;htB3`f_s(n8g645N+J*FoZg;R;#w@;))7`zIKbc8@ zL54&i4?~XDs%Kof!GL4SgQUh|m7=L{W+$E{ypU1K5EF{yR21F^L-mcBu8b*lc6v7c zCDy5kDA1uH<8%&+A|4qa!LA~3Ivzq|hZ+#URv-`>7fNx*dS&ho^bjJSSxP~8kA7jZ zI_LlQ%W`G%FdZ(!VBYuX0X2Pzu`q*l6aMHyWH4JT;s5q{N(0DvE(l^e5NfJf_yeZaNz-4_{@Ic`^k~-u^Xeopo+b?j2rxHb2)D z8w$ipEA>0Ioaqk@YC3e-WnQ?TWGiBPkxF)cD90rx`QlQ6*>1!T${QYVBPmwj0Axc8 zpJDVDhD2}1a;ctFAfkXoHdmeOZ!g$rj73u=VR~%5=`Qj#b|&9iZu0uYlUiu zucWL_Ab_{xl=S#c_#I$Rq%uDc1mEd;3&tknuTnY=?FU_UQ3Uj=bqoZ}5oD9I2;Fsw zpyFj_imXVQzLnXRn>`CX60KlKYWlLoCD!5nr%?8FL)TP>jHAVUXYT#!73cVu_)5m1 zI9YrG13>ihjO{HfQw_p3+*r&>4V zW9itkH6#VRn+|;WQ1H7mr4Bao{>mpfIVX6=0Q~(6AKsU`&hAS=#Sw6!lO=;OqMkSF zud_UTy(`7cmn+4JY{IUV&#!Y2_taVlCvQCw*@8t2WPrSB#CkNm5}Y+tY6dgq%U`*N zW192*pD_c99$Kr_A7oGR*G1GZiX!yA^^zbcOY#+@>XSQ)>qw2+AwB~17qwx&oRSk2 zC^2B7L4o9uw+A-7(b>1rcyl0EfCNRu6@p#7Hs&TGLRG`rkV7_u!g>sYXW zhN&h}8p+@71qsI04%{cSAYx#-kQvL@&pIUP#b6xtkxA4O55O6_7M5br!g4u%e|4nn@5IUV1xrqOlLY?uT4L*nJ66=Vu_H7@QI0D!b~Jxhs!H_+^Vzr9>n=BtPo z0S9AXQGnN$-EaqA+_vTzJ#c1U2sP}m)#F*(pZXNN5} zE~F4#={~dq3K~^3t6nzh_Nt4^cs@ra^`o!;-48L=vnQt@gWP4{l;FqptebqIHJ3P^ zwNEHO@H3W3;jbZ~qx0n6t>Liy80zUYqvz=#>QEJvmV!Q2-}5XDBfgHSM#W(M*n`SO z{4z(I{XRoY)_&c_DoUFx472*o&9IAZTFGsiXs{~)BAFYUQA%n4^(t^4jb>IyDBqA! z&N}ake=?WTlPrSkp#%z{`Ei(9FmetIFdnbdT=To+FNFb|iI|)6$1~IuUZs}AuMH}_ zNM>Bt8R%uL#2S>nmv65+AajJ!RN2Y^D0jpy>;UF;6>kE>?*L(gRyv5uQp5$rJ7*Ss z8JhOX5rW0N?b6V=sKyD-TzwOEuiG&?Bi=x4*TwfxYq1N*W9|BZr`&dP1-A zG(8i&y#klq9?h{+KT+extq5b05jDNruCSu3#^%fFDLlMAX*Yc-VMsv$PoK=C5R~-b zCI($HfK1E*2uVh(d96KKPcA@auQ)Ek^4ubhD;1Q#iNwuFl~BPwA!}glZcTn=3$b*# zZv59Vo4C$%&%7b=#SD%)I`O8*^8L>SxgXSy71szxI6l}PR1Oz1J2KXe)$-)V5GhcK z;T+ZIoL=9zRKye9ysh$X^)U96>vxl`Mc1@bsUTU)<$0-~7x9Y0ZiCN?G_JrUABaWw z5<9&7gI<9EE$@DVU_r24H?+YK6Yl#Eb~Tz*(>dTG`JO47nY0AW{FHc_{<=GVu&gj1 zrc+WbNv4y^6pBXz6CHTjjW=w44-QUClDu}EK7rmKiKy6-2vmYGQ5yn@M)x=;lv$pzM zA`yh!f$aN~*n(%mN`p_mn(v!a?8;#z$mvhuA;PYO;`~OnUD8m({3v>Y%2i>V3R~4v z^I;O|??2+D(X~jdC=(oRR52E2$gB5hs??bdZ;A%Jz*5NR7@E@I!kI2vkE(JD=46!Y zEafzN=!_3oW5;!YQ%1*R$(9xWI8w*?IWzy!{2<{WAi6O7xrh8q2YQW=tr3S24FKl527)me_}MBK*59z>8n~eHkg? zRdVZfSQjxIV>-2@aY8zmsOv7}{QkP@xT5lFxta1@;AUH36erE7nfj zfE#_f#+hkMUBA*@udHms?mOI#ri?-Qw7o+C&=h&Fe zaDj->1H8W7WrJX-Q8)<;2$4Oz=O!tZQIlX%1Sm<=1n~<#XDDJi>Y61I4r&~_M#zxj zU?w3O;7ga7x*h*Dn3~q)8S>ND?sIB%Mjp3LK0R+xK@qyiko4w2^>@u zMG^H`->Q)+H73bYkR~n_TzsKYs*lZn?tz@1!6gqZR_rm{CHp)@-CcsbSst!w@iPu@LB9Qe@t7f?=s#0+E+Z@D`~$n8*yuDRuj!v*gVbGP=f*0>SkDIUnPD17pRM*jy` zy>yfaSAU9o=I~L=|JX?!!a(uHSjLb4t0vh7DSHz{wz1d9%H+M>cjZPN+i3ivk{_T| zeTZ;DoWeI~o=@c+fKbkX5;?KC@=oQhBXD!=pI}Eenl2rKTQ+X5ZxS6c7ZYX|%?PhN zbTQrnkq`)v1u5sIG>rB8%PAoqw3C44V1%3{>@jjp(?=x8Bh{VmccKt7`$g`(;%7>~ zFU_!oyH<2RjD#A4EIDn7_TwczF0N3sO0MAfWUK91GfrR4v@(<3UNY$#p=&gg)k3u^ zF3y>Eaq+RHzG@!l^dX}*<7tC0(+*s9v7gPPXl$T|r9k3Bl__}`hHU#CLpOSRG;07n zij<4f0JCBNpx1NN#C}wR@lRUDIJ<>yNl+6ZVsmoR;S&wv{4rFYL@1J|3A+97Yuo6{ z(bad3g}d|SWLR5&(?>j11Qc(E6WyzT#W9H_9Bv5}oxM54J%Q3rLY)k|K`RP(wPlJq z1*+v58I#Shx&t<_ICUuw!^4o#-}&))nyKhK-kKt>#ac40PY~T9=XxhzPJI)R>D&-w zqQAxcd;I3=vd~Ga7hEh~#$Wmc)k~l4QLC)6f%0}U)0vt0+@#aeI0u;?>UgM`^tI{l zvXMxvdAqbi{qFXHKFUKc=$y!A_j|MiSAZouxEXN{4HwMHm?d@K@H7wu>j+Ja$oys4 z@-Vg0Sj_H!#J>&3erAI)J6A+smXRyxkJ=M<&TXS5f%MCa1a$ZxN?B2wqOVSX^adC| z(0X9*8j8`iD19wt@Duf0_DxieNjt0}Vm`T&z+JkR=CQ8~>bt6fa9j!OqFr$dGUx*K zH-j(9<0RdF8vQ3+V0!n1BbW%n30pV89tY^ZJ}%<%pK-Od=ssc-8929J2h{BX57 zmv#d#dAhqLws%z-9Y46&D-bZF`~0j<86+6`BV8Jfvm7oK8|ez!yTC22i)?b*iN20) z4x_Y0C38@Z?j`I3X@-%jq$oE5EoJJ{x{%YlF%bzUE!H6uOX0EP%+gjB9utU%*-4dC z#lIPRhkKO1Eg2d0E=R1mA+GK$v^D3B6VKn5q9X|GXvj@Bloge1XFGD|oKXk{$FVzZ zL18A;OfhH2(dr|QjcEVh~+?^BwLPOj|0zr7KvFGqEhvy7`*<^V3U7{ z+$G`yUvN0-j(K{{2u`E|y&6SQ$I;t(o?3-C<(YbDx59b3kXDlDQ0cha>nlmsW)`WZ zv+Q5;SeFcVtAdsVqpdO&w#1ebY;MXlfO6bX%dE@)UPBc}q#D}85(cB9uFYcszA+gf zv7L*t9!U(s?KHdzM5@cpX%3(3sGqDu$oXeF>{)b5W<@Ec{ zv^UT4Of;a*wCli_tu!1 z=#&sTF<__|Mb#e6Z^ZSJ+|ivY!sZ#1QsQ1^vxA)}`^`$lh}Z0rp7J(!b#$|!bhDe3 z9W`R3h1e_1?waSzE{#v7DC%Ptor&wVKRIEl6mT^3J{2sLf3Sgl&}#nNd0{>7W9`Nk zyZ#zG-ht$OsgME_PS*qNc(#i$y)hnL$W2*JQinr>_&YaX`>XmYwDU{n&_B|&yNHyG z+qIZmBv`OIV{hnEgu`7#g*f#D>N8T(#gi^%Lu#JiT4wa)$MT-tIb^|*AS^vQ`}xzf z2W@x2%S;WZ-GGNPrW8J{VR0g^JKTUKpty$Piljn`a1_oc)wh@>O$SRw6qWRt?ecn=&;q^go$&#c|^(FyV|!2P!Q{LwYpREgYDhadXP3(qa9Fp%wA$`GUQUFmo;E}PAw{vW)I9h!IvEvwj@4w z09d5?*iC5Qfd~pgclW9eu!W0G2g2$`(*w72)9FE3+$cKW78fc#7~36P58UQTp$B2P zqjZ4U+-UmXYJ0YJIior58*%W>&8=e0lT=i$%!ZEcKt+64zb>YTK6v z(6Gj+Ks)4qa1ba%Wc|n~>CAuE~XDjYF)UInd^Y{+v@&eTZ*E)LO;|_(ZLOARD-oiW8VmiA8gZq2HW2|M*ngmyd zb=E9vr7zlh8*0kC5nga5QPT;lC0FX2^sZZ~)<&@TA`WI#J{S zmw3M#$Fv*QbwTWx3zf5_okq@p-pI!}%g1Q;5o_$v?dQo0^r>P@cSkL4CoP2zTf**J z^3GeTj_BJt~ww z5s%IFbK>`$$rhXunKFRcjeIrn>NnBHhp+0_)Wr{%u9L%MK}E1g^G^e&fR4+a8!_cw z7~t@egWC(es2<3k51CqNVIu<3S4#>hVId%RqYz*h&~8*n&$FFii@V1sex-Dycc^5& ztoN-{`1b(26$VV&%(|`M1aLBAw!(6Ot*|PJ{1qH6C~kdFD@LQ*IZ#G(8J@AiK(WHS z_i&r8uPJ1kz<6MbFFom$=uD$QS zotIO}bOke*tq3)gn0jEcn4EZ18;XC0wk@p_VKr=B}b1=f1tQ0NaY&Bi(@BacM6RLe-tV5i|Tg915>EBaxZ_;M@;+Q*0 z@el|lo7{Ak8!a7Zxq8zSGS7_rTVNU}hI(~-Uj-JyFM%Toa+^08MD)+% zE7L^nCFADP9J1Gd_HCXZOzb^Ep#3~onuBqL_8^P7{mMr;-+zXfKH=4ud2Z@K-0Xy5 zvSRw^FDl2tXt66X2SAzSn!~hW{!=1a5VIggPaFGh#lSYS;x%&DYG!DdMI4nL{%2WX zf$`uZq|BfOO(Ry2{iNd+g^6VJwCulP+zJHAO0$6_pO)&E#$y_T-qrT?&Y~q_Rx%N? ziu@ySCREU3z?jhVpwZ~Op(#8Qn*h$J*7+VguuLpyQ9*eLc~-%Fp?5a8O+op$PgrV@ z4sOJB+pNYL#xc%26CtZC|D^jBg^5IxY0-bhx%t*M@5z$c1eCmfsN|Qcp}Bwix;^He zYv!BSz?4LdN#rF+?|b9OvyNN=$ALZ7hU;2p|A!RL7Q+b)v1f`fHmZtd7O{%?Ct|m4 zSw6H`gel0lH7`ftpkT;P&(>Ic#Ns*m-t%u(nud%eUaAdhWw3vr7Ib4_Vj<9v{ldKk zM^Kzt(?9uN#qtyjbxw&FMp90*ZNlb&P_dN`;V&O{fv4x{ z70cz@hEREg##`(lS+UoH?0uK8a8~-zdTEBS(Ppbb;#wwpH?zoR75j$>v@sazK#dvf zcESrz=tWg7tF%S$ICEvhh(=HKcT+g8XdfQd29*!i%Cy{}SSa}(!3xZ9`J~C66^6Dc zGJ9OCaGA(O&ToiVuNgRi;KX(WZL|fj`OI;(0TBn$F(@Q8H0 zJ0U>fSd%0bE@2VPUd=Vkt7Xh+hc_MTT?ntVD-JfGRUQd^z8IDCXexXcU9D7<5C1m~RYB2%a;I7%rU-+jpawEw3Z!OfqkVTwHn=aWEngE;tp zz2nUXt)uMLN*(qSjO(j27|L{uJrLLXMCo|3_>vv$Y*1vdM@wX~&)m-8@E5HE2zsacS z{Rlsbc=$k?9ynvhj2Th}r9Z1Ee&hdrS(ToQ@;va1jBs4wXh#Sx_BNB#NP>|H-&QIYIj|05>3_}P6~9l`%6mQqoT0-~#y zP0_u@bCtmnEc5N=+Py&>Y~KgX_HRCD$3bWNR+g`9HO9UZudVg#*O(NJL2Fw5F#)c% ziI4Ut5vkdHUJ2V=e2@B6l2%Uy+g#9>*ToaTHlL^TR~;Jp{LFq_gt8tUR;vZwj28?V^fCKCP9HnDq0rcR_OzfH6}qM)r}b*4 z6TXXZWQ{~np7+)JI&L6y_w(mJkhY)CF?+A|Nj)$7&s*Y){`uDHn7z*v^$QnI)HCsi z$al!({D?CVh(GJ*l{j1fqV;ve5qsGq*TY2cdBmNMi7oss7AyRiwDEwy^GQjq4`YNa*A5H6K%yD7rp0Kw{qk(* z?(Wp7QxNKHejtKS|I)9M-PiYC%KBG+wd<}2QU=vuc~Adln5-MStN0|4bV=!=63g-S zl)~)yJpJ$W8mnh3$~1Vr{g%0SM44-pdEn3UIr@9vpXc>1(eq0bVb;m8o|u#&cV1GL z>tCQKb76bLehjp-`kiH-M_Q~`*upM6xI2m!XmPME!{$5mfgKZ}eD+uo^dz`Ff+#{|D0cqs)Ub%Dn#^_NQ!jgux>eQ)I$M*H;;p6(i z8Of1cNOoU#?})?w!BKW!+Q8b-({2cUZRly@I4z+6ua_A|hqA8rO)9H>F@&bkw-=26 zooK}mU>Zb!iX;8n;RZAJuwVb>8jZZq@$HOB;e)lStq(tm_27T){p)df{~B?8?;1zw z|4LXrZaph}@4rWC8m0LVD{O(EC~Ygzl{^W_Jr9G_ZlQps{>%09KdIgsfxLKs0p#Vy zH!A8S)vs{`5yqtN5~YpDkE0#ao5zo%9Wo?p&jviL&}I{{NF!_C5Hk z@#*jQ;X*!7e=7YvoyBN9Y8u_K0XbQ6Q8nu6ND53Y>g95|YwScL0C=OUtDejBY1bXS zIyO1&GdK38lI^V6OZplX5{#P#1=o}c^5mM)bp@U;`yELM48d+B}4p0 zHI43wKRih3)r60vz~rK;U_rp{d17^4=fQm$8ub%(cWYhObw8K*CJ@9%{{|T`&wp8i zl?{;R_b*`E{CA=HMk^T`XHEMMyvGeA@BSPYvoW72gKp_ej+-)$WBQ^B%fHb)t$kUJ z`mqk!JkYG!aAlcOqm+$W&IvwIdy9U*lR(E2JF!OeQE?*8Y1(Y^{*2W3>Edi+k|4i6 z4m--|9A*AiM(bE#K8`xyPFw2-v2}k@tZDs0n9OOKqVxllCsBw@slx;cU?_nLSIA)b zU6#2tZos=zlZFY4OLGJ@p|hUb?tTLEWSL6?B|{pgrZiI0oWL`=G=K=0i+6fRgM=oI z*HBb^SMX1kY2t9nx7yAMH&7=qPnK!oG)cu#k_NA`OcSR_3rd_JY39uAPWza97kkW` zec!5nE7)|}9jdKp4*}f>kUj9@vEtFR`62ju^R0VdW7OP63<3n8Mt}gUy1y5^Gh)mS zih`;UAOLox-3Q0}F+93;(5?HA_0|X`3MqY6C|i zLt3`gx2=v+8o<&fAC_1OVPJ)%6tH|*0f{Cyxh6-25;zD^MO7M`d@1G2ELC$MqFQLu zMK!5mF+hwMI7610NfU&v(Z~_PjR{Je86s3c%oY`_%SLS|iVr|Y3V@9u`wJNK+SQ$fy2Nb@{AtOYQBifkY2^Z!p3276yp#eRYB`UQ3 zy)7;vF(rv1M=;s^OC2mquBbw)3Yk!mKm@~LAef2TbGO(G2#x0%6iKK|ROAD`SyDYA zL1YDzjgj$LY=#wUKZ{+U7}e95u31t&IptgJ1Tn^VNkYUIETlN%2phKS@PwKrG9VEy z`Lb9egBLe7Siy9}<|t^wl7$gET#?1{a0L_}40+}ny+B!9sUZp$H#~u|0UJ=L;>?yI zSe#fSve@ARY9JazFyy{7yg^~eH2O+kA!?$oW#IuPRaD?qSVD{uTaXssXjwsp6x1-a zq=XKV&#04`=wkVMU5jMwVpW`O`XV5fSWS1^PbA!1vQTG64 zLkKl7ulLuAm`?s3V|MF{T9*6iQA$15?IQCi7RkOK}wSeMvSp$E>L0#q$W}{$-&GM5J<6t5NDuvs3Jy*OAav58V+!S z;DRv1iIpfy#1IjI8YxMfDM6E^Ai^S6bYP6g@}mKqEh;26L8`N4`+y23tk7nMHAaRA ziGUe{TY(|N1dI-dimV`#Z?(K)<9J635p}d$ue--sfh2@IICJQ|W4G#ns3<2y%K)bA z@U+DX7%WS+3R+;;9`DOop0g(gQr759-M=fXQihMT zmck4iGWk{uW571djtgGw(+?~u*y>=BzQAdg^34Tq{Il+XJC5pTmvt)=H-T=|&%?>t;3iYOje5)OK!-A1FxE(JT%rf^T z=|u;(;6!l)1&+ckvdp<5lg5n@RX?P0W5Z_x=E*YWhJ`C`aJ9@!iVhf86P9I}hE5HZ z3OY^L2pt^NLWhLTg*k9OC%ltonmKB|6JS=BY37t+rI`cOBFkKo78W$Xly-+{i_%JI zcc`{1+8wH`+&b;X zSkdlKZB<)4m3D_}EALjd6ms-Lc)PyRPfuo)(@;tIw&|4-CN&3|SwmwQ6CnQpc`ask>fXPf?8n zWI4KUYGW8*>OU%g1U&0??Z9fK4&$LbJ>JvPg2qhA7tUDVy(y}Pw1O*7zD_x7r?+7ChZIDb=8Ds84tSDu|>_wS?K z*V*e-N-3q3Qc5YMlu}A5rIb>#zE+D;N-1rH7#s13bjHnVrPSTs-CN#$F6!1ryZ5eU zM;g8}EPAR|w@Mj(DXq2EO5H8REn2No>s{0Csj~6K-Q7K}%2IdtXTzpiTB)s-jioip z{R1aUE48&^9@x?vRjsX*&KhNDrM6Z!me#0Rsby1Zl%+Mw(n@WuY%Hx&Z)k0&E6;0n zZ~cfPYq$_=$B_s1ySw}MePD+(D)MAAX(O_eNFmm<#yQnZa?dFbpuk}mvT&7F&zqy? z{pwk*Zcb5K>C>I+>L{g*+B6)ctyT*=Zm3pUwOZi~`z@oXi33C1ee=q+VCB^bW?ImV zyD~ADW#$x^iNOqUAg;{3GUfHRSh3Dlm8n|YDXDhCQ&KLMYpRy%{W*o37~F9_O$+*` zy2T2qNDpd*d#UHs#GsEz3;Lb9sgqc*jTp)O-^;t*YBj$nuwCT3VEH%8TorV@#R6aY zm}EbR$hBb`_zpf1Y-_!Ltn1K7_A`5tkq#FE-`%~1i=OxAf#l;Z-|^6^dlXyU`iS3S z5yT&gJP#9N??RlmzR`pJ>-GBY1-2d=iaNe;wH|Ew=idDrNNbej^Z38oVE8c+ z_CBu`;z|FmWQecHG@Xm%8n$BK9*!>813m`Ks!N7oL}jE>+;%R55jD zzO?I}iZHqBx|mR{_2n2UkmOqb0GU$iNcfZ^;Q(+O`DSAZBN@gtZ~O1 zVle$qw0VY|lQQhzC<52VQU-0L&U^d4)IxNr9p^&cNReUy0nIE$vJ}@e`xP9KlI8G# ztgOtjsfzP?;t1aZ5#s$f%5tp!leQ7O|3>UV^Ji$}jTeixxvuIsoohC;=}8MzR27dO z6NySFq9P+5M>{aZv8UCBEDR|lDY;M(n|)6VVxu^xOir6zh}!H^ryS21Ao zPET57jp<0PP2JQ^PgU=WJZ4Dh@?*A!?&fm1K>XXQ0X=g%ea+)XeW94#MON# zP2)D-^pzHR<+5mLp(K~;Z>Xg2DMv(x+*Hbn+}~xIMo;eVsiq-wB}kF``%E{{b^3hM zG&*FO(=?u3XqJ&d{bzDF(WXlTXqJ*S8lVN=X0C)c`8Ma|7Uvi#!w4yZjFd5@KtRG} zj1;1wfFy({qK#i5Wz3%;W#Df-;(y)i8gWIkMrWT(Tv~AD)>v|X1wi2GSY%ND4Y_-0 zrtZ>Bt<<ZZOjr*1z{V99DQi0)+vz~G6?^1IPS7)-x&eHngGZTH3$jH~iVpig4( zft%Mtr$37z0(eiV5=n*V66Gk4@c9m8I! zSK1=C{0bzHtl_r1FRPBEj6SN=|HxL>QSRuL;Oi-uj(oCdP|sFQ_aJpnrLVum?yq>O zYyt3>yWKNoZLvW+V!Yr=9u09GKkPVSs>O`DSB@5dbWqfojQ|CMqUZP%TLz!JgfVa3x5xQz`Kw`_C8- z9UgOcAt%>_6FFk0B-z{tCO<6g@Iwha*gR~K-9G~u9;$+A^W~SNTJEO8aY^z$-~@PP znVXU#&zD)|rrO9ngUm^zX*lh^LBHk+f*Ri1I$=$tYpwKVBTs8Xh-FIY>~{a%Dne&z z?!*~jtu<{Lx$>0RkTT}aEOO9;<_hLIzK=n&nQur64S7up)m{p{2T|$j+X^b%=>@X`HBEkv7x0Z{f7vU0Ijmxx8$I9~y#NayZ`W^^Z$tSev$EPlW^~_` zXTHh&W3-`uGIO;fekrAdH4V3qo96g-H!$03^R13DS2jSVBM}^1DcD^prIb>Nl|E^; z!tlSA_`R4}8OYzuFN{&CJ>g0_LZ%~~s-5-jx2j26osnw?U;S0B8F}?@rS&LV9@$4) z0&S=A`5%#InA~%I0%EhDtMKp7w;^lbpTF}Gr3ZDCg4BM{HrH5#1uXw|bJIZZt9iFt zUu&`c1OEeAtuYj7K>a}SX-DfzT1Q8qGfTC)KJjVEa>c1B%2Lt@KX`<&fg>F_Iw&Ht zF{4HUn#KGIh01;B>gV@#nt!xx|LdYE_%?l{HKUb?z1UHQdEg0^Z;m7#i4wsQDoX&2 zzy_)9I&@TySERYezIs#9ebR3id$g1x-$$1>ka!S23`E}=K@_^dHLG`UA*~&fjpp#w&t$| z=%S0BKOb<`qQ^((fk*G#}95bGlCtuAmgoq_Z0)VNPqURko0Q(2lSU>c2)XuN8~W-yd`% zH$rsC?j^vXnCS(oUFhz*?gcqnUPw%UZI)Ct6nWuhpc4o0K!K^?9W!1NZbh|vz+Vq5 zCuYDxxwJ56h7?|NW+37Qixnln@iZq7JmwM;68IG!qBO5KWiMi;NY5)vddgUtB6mZJpuI*o%P&ycM?{doUp>wgOwy86Dvc6RI!4p$`szr@SRO@qb`m8iU#tL8!B8hg^+F6Ux;c3k zQYsgmxLg8|NdcNC+#S(X&^5`)T?M)8T4>5$3vgbEGdMtzB!`=@BSf`t0jqv@u1u1lkSioiG+nl+sA^W!s+5dtZu1)^c$-msYpBvF+^RR`;xqWm^{84!62zVHR$6^;e?I zl-mAFt+gUJ_PAlk+M=u*HK@3yT=N$BR?9b8buY$W$26OSYWEvwPRj5}C8Q+ROrW`U zV>fkE3rRLoP7dYYQIZOZQ}!~pv$Sl7vVCd)ZTH`I|M{?A21HC8u8|t&qWyc{-tT*# ze&2oJ_e5Rq#W)tD<%Yb@c2hSi&V{639D7@Fw_3i{alGAz?pTdfrKY*q)ug8RCpnb2 zWDT4B+oRkq_yKEBg;~$~)?{iLpUpQ91i5+N5^EmhJxi2ehYwh-RyQBEephM5)rz|n z*EFv<|JLH)O;TS!6(9X8)-O5&%fH0$$JdeKZzy0;U7H`!1O$|w45yHw4QdKr7 zsm$@%L5rS&c!PcwXZ$D1)dn>hX|RtSM8P)8w}F4V20qreK5UkGPU4e5Gh4CyPlgWY z{=OAK=tfzQyrZlEUI?}BiuOBNH^AN9O`m-UbgRi+zk4czP%EX9j<-s!IKg{C5jyL9 z66oHa^t~9647xAfb{ThHAITcm)skO>i8*8t{T)%tpqC4`Mkg|TB7Pug4`?A#CA&=q z(J$198L}UsMyAt;dPf6D8I=CLfB$|2RvxYHpN9@;f#0m>&>L@>yoUpq;m2@92mMPRX#6EDknH_`Rtq>g~C9aD2}OVcByIh zc2{gFDZ_pzwwh^y{f~m}Nw%w`q;=BojzfDoZeq|QMVb}_pY#aFxM;-rhM}h%1Gtfwol@*gJ&?q*AM#H5P^vRwgVM@4HZv%F~ z)kEW=_6=Y_LWc(7xuE4!`P}{;S3??rnn)LUr&y1eePW{H`iZ5%RLQh?M7^aRwG*MR zgPB|_rUFsS|Ad?{*CV0q;t#jlc*Q;|VPx0DC+|lrkQBFsN8n>GB&&wJPW0{;>UnT) zscju5s0C4jg5uYy{8V_vSr)|_9>rQ3d|Y=lvsj#X+;n7{gm?mZx%_+zB=lldd%hG_ z^dhwKEr?ZoD-miRFwqq0U)+!i-XP=lim-^L!!ZUeE>aMr997UH%0P+cF5^+__o4Jl z^*SR34Xu#YxA@C)?lszNMJ1m~Ys6bHb%mT6)r_(yV$KHHx?|jkDw~In zAGv6bY?(C*Bq>{62pXav6C)I0`FSHlgBK#9LJ~#Bi&q*`j~&9%**4WfY6&cC{(c@p zsHIU;$BW^uYi5cdK0Oi zoJc*SR=9(r@&NQ)`cbtV+G;-YP^E;Kp4{z&mz3|ZG~Utb262INy!;x!`3odA*Ktx z$1sB2vz8In!V-=n^_%`;Op>0um`9UrdTG)TJd9xgbvHMu@Bxr4{yLuf8Pyr3E=@Z> z7(?d;oD?~bCAv}%Xmt4-J@j|N^uWOO8Diw;08%9M{Zo;}Y@V~J99NGBF1i(>uOLpFvKeY7Z$Z zsWC*pbpjb2(IRR&`gK~SvI%~b46~Lu+N4jY3r4v&_Jd7B-%OtYn3vr~=;U~Zh^aW_ zU*V`jZq+Zny#hZq)WA9!4_1ll58~v<$0oBn37$&aY;JAIp?uV3SW*eu3w41=j3l0X za^Ls*8R~zTT;>YETniRMjT*)Fz~8a zhE^OlN?25Hj%wsH`42OCit2IqZrlCuX0BB#gp6C#NwRvgjRuB_;SG-pvNKc3vNeYq zs-GCZ5~q*7Y--P?#5UrLD7Iv}gRA&Q0eiq5?gMzykjX4qO{625rY;n{3B;XPU-iz= z6fa<5k-jYFb;#Yl4(6PF%XMG|8d=1vS~Qh&YLVR-J``lM7<3p#gEJAcPO^%?)^VKY zUXRZPD8`^zWm$4GaFoSt&pwMf+}f0b&PIBqj%ry_)NuJCCX{+t=I8*DtXx=cAk7tS zkg2brY=yv|;t#b7f#wWRI#nTH1_wi5s_t4bBqoq83#vj=CY=3t$pWzyYPh%x_zY zchUDJrv-o_Ec5==b)=GL2Ek3~6Hp$lCJz*D$efOx0{{t_oYsoKDU2vek5Dl|BaprL zLKZ_!cl8w;6%%_u;3*-RO>+t%Ot5*@Y-2 zC?T~4m^NZU8UB3`Pd4 zYM`xwM)w}9Q*se}kRh4HhL1;NVAR0(c9SiU_bV4bH^P~u0)^0x4$fLtEwCv&AZSzq zTVWbBE9X-|qkNo~nBkO!-O!{tc~3d@=-)SC+*rfrCgpx+1PNM#;GN|mlZVk?t0p8c zs;g#-sER@Vr^^;`OuD@J{CyBUsTCq3EyM_IGC6I!|6e~=ddzk)_C8q72L99RrFLVz z-dr9xOPBqqRVIMJC%j1l?(85$!@kq1Mbl$KNX!i_FzRSpl>^ik0gQLX^W0q6UHL8Mcp;^Z2V-TXf)so_pX0K+DLXP)K zLuC+mfS!*cXdhXwUSi}N!Pa0A=diKz@7uGri0Z)%>SM4qsQt>vPs>h+htpvIaUFUa zhoM;m1C=%i_IS->BCpRx=daX&m?BmxxTF4@hWc!XBS@n-e2QO87+p_wB@Qn=T7^Kj zfTv4>rJAX9;-IV`EdrIPbi-?>sq?*IPB*Q4Q;08)$gfl2DvQJjVxfd@n{o4*NI~X& z$bvMzd>hgfnsY~GKay~hi`fBwqEZiZ2q{&UjrEZGdg=h`vWa}9T6o>!9jPgYk6hs% zc^uS>5}Y>{{7?%x{@Ybkzz}4+1Sms+t_l%EP1QxHP)wmV%7Xr(`t?EVKke7b(`y)0 zxTHNOzx=Yoo1w(c<@8p(DM-T*%q5!uF%55&K7*Af|7*!>3KqxwGn++t48|kfP#?;f zjsVxL8C&TgznoN^-stN+0HH0`m z{V_Kpw1#c&(Mnfa@+y<2422tZ7Ww^eWjzgAE1ewAGa(W+i;Oen0JqL+v?8&GCJdHR z)uz{npe7ZP&8?BI*20Iw6zDe_sLI%r0i zx5#)K?qZ0BY<9SOc?01(Qs|Y!6baFq&6#lfze5aIbWCgSF|fd` z{6X?&Luv5Jt#|3tb6O?V-8s~dj2>acfXtty+#g$p3tK|7uNh6h2GU4pe%d1@GF4JF z!eRaJCU8r?WI(PgvpjAQf!tDkE9noI?vp7}lh56DK@JlP2`VuxIf9882f^BskyNU^ z={9pj!dp{Fb-zs7x-qaHJ~IoJb&!k33#LrR0MX$nxRCBY~kmQkVV#k$|-u`>R|ee2ia9pd>@pV zt_~9LmBxNnj&s$WR7cgI*PH|K?tK|Q*pd8hz@_g6Sh`T)NHbzZ^YMvK_GUN_UTr>pF~fj|Wr2SuTqE5GP2wN_Y}>cH@R8oUAN5?sFIw z24|IjIG|wQTxB&S5Z#yp5qC0UtkazJCS>S!@0tmTD|)VCWF3>{FOA|AUg+8pyexLV ztIOUp2|<52R?dkiVg2Q3>3qr8xMvO$p7gr!2qp?Uk)$B03eW(4Rh@u8QJ%M})N%M^ zGvw6N%39OC!{;qO4H^*Q5E(oFg@J5%k4MqaCpw2}j;-e+nNR{s!kk5JnPMiwZ@6#<6+4V3f^%52JX4< zVy`F6N%akloo+y?5@Pa)hmIUwvn(BJW%6fgFX`-VuFD|dUlinHoUHDR-q|?`^m=}Z5=;)1=Ng8H8 zJ7E`ED!kA1x0$5nD9%N)bzy&_4&#iXh`B%|S=^d~OkfM|80Mznj+%6fM|QTvqkVcg zpX^$n=3%5BWx?eFsMyl=L6zlu%?vz?LiX&V?Z}6V%^V{h;Gn7$12Q@SyXlNkQYII7 zxfIj=gu#h^Vc>4P-G)ZdJut`)j!8A#_#0Qiq^ND=GbOs+t`+t100q)S3)6RmkX+|2 zcz#ny0nQu}?mHn8w6^fLWR2m`4L_%10Q@ILC+BejD*}Gf1*HV@*FVecm42sXVLxGS zOW(YO!4CorP?${49i&_!gY`5jGmr&Ck+fW#FUlC_?R-?$@je!98@@)!0dR?6v13iO zWN)Vt@{^yV@fk-(IcytBli|R|)gBhN@?cJDGBG6&M?y!Q(U$AvFk5dvnG{EWib&EK zN;?D31hd~8V5Z027@09_V=^-crF1h28T#^yu!-(M<{)zHF2o6_a9(yUebUmG8B;+$ zoD|p^P%5`gp}je;C|4E^#Che5c#`B-<=K^&kMN*$QjC#G@>WjMKme?>O`UKeH|RRX zj(`?wCtCM1024LSmB0~pR9_9#X^S@FX!eBErtXO(Por~t>&g9_wJ)NRP1eC$Sp>)4 zRYV!j)&7ml$xeF3gau(hJLo_JY+Pw$NU^jiGVgDH-g&1fHpGocTH160>usY&H5sJh zkHUD?T?8-0pe-({sg&2&lLZSQb%l64m+$FqaL#_JnrsnNn{EC@#05|ZHjRW_zysTV?Bgr&X{Wh{{5@tMEE zL?+Z#&Lp*oIQI^l5SyqJJC=l-oY5BwTpWR7^i9)|1Abk;)}kIqK}(C6nPr1)#I(9^ z5o2?{5~zg1+oDC?VvQemC9eMDNDCSU2Mf^y(kB^@%^;Ar1;WAC8RDa-wTWPVyqO>@ zGDun32;IDca_ZWwmNqmsn;KLc3|}if((7!HwLs}PzkLoNHUc?_OI2?vUQOT|+d`3| zSf?+Zp#n}5%G{(H_`MwQo3!WKdjiuiH$YrZ3h_-iU;pz#WTYe*1Cs=h${+gFK>&PX*Pi5H43G#j^3 zGgtk94c_UCe<()Gp7C{CX9%Ph1M<3n9H7MYwoA1I=M!i=JmA&_{h==g-VAcI?4#vgCAx0vE&cz){)pWLDjLw)P{sNi{k~fPih? z20_x?>QjK8guXy-H0?-{ET!e()gwchH#YRzK-nymP-WJP&8V2?Yw+hj0>bX+%)NPE zZfXt_e;E@g7$MH4q+DYE>4x-Wly2e3{N2rN8lA7KSdgbcE7p>;>)AS?`D;z%f*{nm zJ8_T%8EZ78ET~iIVaE#2W3ugZ;4k2T8iNVSEF}W5rkn})+5_ZU@3}#n1@yD36*mNf zp1o}EJ*y6}Ky7VSjnxS(t5!!?dDN|8cb2x^L=PQSbJTYt!gX&#gJ?h34y#+@mj;cA zBJu$f$@eEAUbsQ|Nu%Olel%qQK-5f#Bsorc;eyBN$O^GRB|$C}DQB~&L{dunxhs=u zm_@XLUXh`{9~+B4^*L+X8M2z%SQDw!jJxqA3eNLUg!N!&HR zFFkaaV|XuGx>)$3*mX7Ap3VIHa(UB{mUd+Pi{H>#v~#FJ`@Eq%?TYOsnak}DNOXKr zfsLc5f-^nK{XD$+PJDmKhAx(vuVn}H*1t0A3Olc@O9F5y_DFgjwBK)J`#xrtE)U2< za1TW-OLxV9v=K}EA6VRQtRKgsSBq#|eTyzhy8LhB8{u>n{)ISr85BK3L>6IN*v|oj zo($Ekz4uXq3FRptKFSbm>xlysqQ8oZx@#V1ZB5p4UCUYk8zYFU*%B71O~_4xyBX`? zdyXhlXri5~=_NfMTjb$VzR&hEyr&z99gv2?f-d+7~DG5kGgmnWp4fiPu zjkzY|xD!^;l@wQxPn?mDAAU3IynB92Cru=Ze0D4dT@?jZWbg?+b`H$;CO;D-PIv78 z;-X@K^VCXAXK+E+oJU$|t}fATiG`$hl&mXf9&#nX4U%@`&#(SaFmi0=$;4K@Fe=8b zRz^mb#WM}Ny-YWXt#rAyWoi)m;&Yox;8$U8LJgNukpqpJ`ZcKyd+Fi3J%4gnb7n9Y zHPP_mLQtbvg%FQVtzXx#)2va`^PEPHAn6_izG^`Pn`6z?;Dj5a1t!y&Jd<46}T8-_g^i!AdE& zXUaPj0ieLRi=drNbm6McZVnX?kw@Hc5L`5*4qG(BiSlG77GbFk57Kb}mUWy~bzJS8 zcNLB`|NJIm?Ar;j0B=)F-fQrzDUpc_-5yyOD@|I)%q@_;$DtGX7iTC+i53gzx7FL#v^x$GZx$r_a`(~h>K_1-d=_$)WX zsE8YjqES+;;FtNAZDSIytcJ$IZ6&7y4TRid1~u);)xb(sOca(7u;Ag|8Dd?ce$8k` z1}V!z!4rmlWtsa*NYtX2(~xN7A+R>$noVW0WgM6E%pKka?z4cA|$cJzK5kX&=crpm0C1m5LN zWtucr7R2J>4D+v=2|K!k4e9{a?l;J_;i^@t>+I2U@*GGb<%#$k6JZYAIZ*?TKwyZ3 zJ*FFGw14%xaDScL?e%BUwo1GjU|*yT+cynJxZnB)T^Ui@jFxsif+!faxQw zDk>$!S&f6FJksbbmqAVcQZGC|x`y+8XT7-jiWIpIDIgDfm3|@TKhZx90iwf+8czGY zO4ma74Jt1jmMbtln(0FpCELDvqKR;}Wb&m29deOB6F`yZ^>s`wX;74Rmd@pufo2y2rm}^X&UV; zL;%i%p9^>r9d5_VdePw?@S1mO68_E#g%;YheQ_ng4AL(Q_LVSh{mdpK>z{b&{6~gT z<4B-fE?%Xo<&jH+0-!v;S@Nc)#_TSu{aJ@o{fd-x12>fy7k^;V(&N%A+eOf}(-FOT zO!l_OJEQTX-($ummsn(9Zlkkt@PUX{+o8IsM&i22_Iy-e%*gBKhaw8zebD11E12cq zl0y61Cc{?c$iI{zAZ*xYC{j!(YUx90?+LCAKk9y=CZataYR&$}7hNU{5cZ0s6^k?& zYcAwhWrD~vA{xIDN);iGhNG+{U{cives?xx_Wk9MQ9qGRAYMS{3H6j~vOx>wd8FX+ z%??$2-!ia69IC-YZ&EhPGf@7JLpwZ<0@_jdPbOR_FLnvoj0g`LEKCUJDprOd}oUPAvmsgfP z@25*)0^>6POe=wJW$&C=?_{nJAF0e|4F6|4?HWS~AH;~adkD*e#%Dnrg-bTQFsMmV z-(fJCA|y!C#ZL7A&NfjVix3ZWI zYi!+@=J*I!Fd^sr79`tI{Sp_~D>(pJV^JL{Xkye9*xMEd?ycQqV!iYj=wqy}o3+;4 z*s7ncGU6GtfDXwhXa|dHGGd<*Mn71;c}^tpP(FlW_PUDj!O4kv``DiI25XpW=reL| z6cOv}Wl3~BrfY4zuD`VPmPlLo_Qc`^K zhvari3W!>&REOf0GZnUg%)`MwjNKI;>>aphz(Z$|mEnauvqXQ8k15n(VRSifsWoOX zAag3LQ#8*-_6>}jdca-K+YO7Nf_3yHhp>1zddI03C+4ae$#x6shD+-bDvAqPe3Z~^ zslFLw;1Kd3FAK6)4s-AGJn$@EwO(yrylk#X)c7lwk%U%Sbjnb&LDjkN&0A2-7}%1w#|KVMvmlfoDB^LN z3s|slTGxPV8jr|AgIgld$0qeR^~SB$s4uKQPW^J^#e_=)_?)_l6S$Xfzrz8y#7am> zDv1T+^pw0Lw8KCTMuCY4Y0iI?dXt%0e_=e^c+Y zROYvmK(jEu`Ay%ogoIZ!;8GOAY>JJ3{K+Oyn0R#ApNi-%ERDP()ryS91cnipA#P|z zaipbaFk*AbpAG}`Ur?IOpd1K*h4#dsg*)4Vpv{N@$@nZ{c#m<+atM5d&mRa!r^BqW zAH@q~WP8y4!$-RSjO~`kCNaoumy>x%9_<@s-W~a4M4Av7lzyb9E34_wk4C*yu!;=? zQSThcMfLEqy60|ueS=*Z`Y&e!#xkq$0L*MoA+q5A%NLuk&`ToFG@ifhJ72S2>*tjsEcuRQR$3JIvy-LHPcny|ZMya+L z)8}uAOKvdMHY-x}T^(=reo^4MrIZk}!qSKiLZgxH=Ghdw--=RbNYK?$7`P~ z4~+K$3?%d{cqK;cDl~Un0O#y_iS$K158(`{NEnAqyYMhDcOq^)K1)Gq`+G>k1~>Ln zs+uucnV1D$;qBneI=a`9GdJU72Y%mpG?Wrs_37fXEZo;NrBg2_U*$*$ZSqwgnmzTP z4~VrFuTT8dj`R=iu`fa*YJvKSSI>hpnzfq58E?ZyY??SUOjUmerF>=ipk&r{t|C0E zHkD^8UdLr-1g0O*pmV8Tqg!DJ2ojT##JuitmXO_|FpN)N%@FM7`jTOUNr=BYL``V^ zB18BXeTzR5lUgaeh@yHuP%_?=ikii|9ew2Po=L-P^e{ERa_>xSUb6Sxh@DDZ>DsDC z=N}r3UzV}vh9Sf4?gXd5<0SmPa>R_aYjt?BUjIXzdD(TPw}@rLF5vskh9khiOuf~Z zCl;Dcf(RiG9;?*_Yqt-&QzXiP;!m**`^XJzP1!JCzBH6F-Rzr`0mjT2L@XtWxR$Bv$MOtzqi*rWl{dUx?&R4L!(IRbttD zI*A7jr!Z&vV0Xw^*Dmo_N320$k9eSNIzaQ18mrQA1peMo-xKhhG=rJqKQOi?%`z#Z zo>1ZTFu$1e!EPH4+B`hJ6Rwh!chyS$pHyhw5Z~n$iG)qlIVtzj9}K0~@g@%D^D>`R z>;zYjDd7dNDPsBuB{FEC#E>w4#8x&#grkvGlf;er%svz1wE$h!ckY&bNhBO5b`Y7I zM9-H($wV!E{QT$~W=CnYmRf5}Wdv;!8V1j4znPB2Yp{oA%D{>8xwM66!U->wX-tt& zaPloxQj37Gjm;jeFXV1+2qGLM@Ph`#IaVQXv<*P4Y%q-(6Ga#mF}T(}GbEVi;hXa) zLyjTBKrGHs{srb52@E8RoMT8Vh_ryh;=H~g`ttk}Lk%87c?co_AE$wsqBPBrFsf_a zi1tFDA<69m)AsEvcx5;D!q!8&P3XpP1MXlqUZiIEgg`ox_R`6WsE?7`)YT+v;D zuY~{hR-2Z5={SZYLg`QM&24DHDIOO|-^hxL36lQuatWnQVJ|=r0a9!;`r6TzRnH24{&v4)|5328mQ$ zoF6|lNR}r~q#*#kLsa^{@@*pk;Eg!W=P(a$jno=a9QuvZm(wr?yKXR&@#HFR%$FL; zjeK6I@&jN4#EE1=Xvw%LgYVs91fCMdJD!0y4}&d_N?63snI0tIJBbteLsnx08H?Ai z%)LBKqwu(XT1K|bOltGSi{wFZlx;KdCF5uS&oPvHek#mV*85wHZoh_V=X6cm^ehAk zXCCyEXHT7bg|ZJE{$9LeB}O*`MPrvUMWcJOB4fANw#%MSY4sLt(FG`T>v;rRm;dY} zH_;t@OSg8Zyoq?9xdmO^;ROoiwn3CoX{x(%e|}c1vx?iM8KD1|c3Wt=f8^`|MMO1- zJ+tLe+;dLKy*nhxb1L^d(QMFMt-7hUAQPwtUBQht?hHYwg8*;z6zQQ82^e{Sgnx0H zR);S2-c8KK&p1Wp;N|BovPeZ0BYFGYJX8TiAPcjJ9{xxQ-d~Xwej!`)*|ts-Y${Gy zdE*4NFL}WE@7f1k-=DdjEfni8y=SEDiqcbZQXYSq%7e{1Z7p~oH{Tvo9mA_vbBEv} zejgT$6u)k3!seu`ktz-YDxPnL`)0b4;3G(5Dpp@ZocSt&8u(aI#O9RD(?ALWAp-h* z%E2$zz-$eaavyli3RC7_?`Mxd&}44&t;kie^~sppbe6R$UIlchAt1RkmxDuoyivYz zCtUn!EWFCZkGapantv3K{{0{*~173fk2|y|6a()Y2dK# z+(v~+15!n28Vm_s%E4OeLr$`0(E4D7DL}-Ieto7Ftu9(D;k7fns?zc7+eoF=FH*q4 zlVWe+8MnfI^Mr-U*%If=4=Lk#gu-sJde0M}IJE|*mhvz=1rltQyf+zav#F91mhy== z*EA+v$}om~cLbc_$nih|?0?w0Xo8+%bTR_V4_j3JpI8$y?*dv$En#xKx}vBtNEh}s zgN5olPC-b7e0FW?$0@_CLnrj z6C9<^f9b5B(``~f3C58vr3nN66|nLqIwoM)s7FJBMa?A`6i0r-m#}M~ggoT?S@Y0J zLSE`QyF8r^N(GupC&N|{5T9-%>S;TI8BI8yvI}uG$yKaYOEaLfp)Zu`$FJHz1iJzG z4+P3fDeAS-1+h>&VWw5~dvmUgQX>{1&++vu5B1r3TL_U&8cVHfks-!iBW{klMO?AhL!{dyjA-?cm`!z3hfY@I{dS!eBJ8O{HMVrbT&Og#X+d zY{eLWo%GrCMh!L*`l8V3f8bG(L>$z+RT%)d<%NI2;N%`mC@yz0d)k z=+CzD_?CbIfgidbNag{GgyoW5N>k2&@>|WY>$SU7*`x$-IV?m7%i-{CoAYhlJeX)w z$(7~^51}-rWbh|It+r4^%e1OIT@QgR& z7ZB({i{|7FY-~Zqi=ZaMaSK8&p%VWOaW_IvEtj9!Q9}I=QK?dAM$1Ov^^wUS4(~3L zF|=R%8A-Cxm_lyPC{rPd64t!o8F$ZOz3KZ35a_HuQ04!pm}7H6fOP)V8B8O{tO1DI zy26Gbjylo;f;^WF<3L9rMNA>gX4E*0zHnWFAu?@R0vDW8`f=GWyojthMR7->f9a0? zUx_LjeJaXyaUi^JkF7;>vX_Ds9$vR8XR}FupY)9kJF!8xhXwYm4cOT?s>OhgGbHe{pQd8`ejX%WEI7P~ay~DRmi)`os^W za-Ol`4U1q_r4cEVRXH-(diWO0f4Z4d?Mddkjz)JUfwq0E$sqn&Pz|LnIRTZf-OXcD z2po7BEIx@1*fGxAOA=-3z3DPcB34@3Pl?^J&(2b*tXE6fwAM{+;HIZE#HvgatdwZr zf>AY3Is3u>w?_M`)P7QK7QaAB~WpTW+cMhL(4Kj%kfuD51U!a#WJ}&0*ubH_g4#$x(Wf<+1Z@m zh`HT3ZH#{f)FZ7Nq|II?jViU?nTYiZEStg9dRaveqQ{n#Q36o(_E5ym%g81s>$O8p z>#TfV!H|Paza}>Txx0Sw2Mmr#;~>M5H&S9zwv2!83^YR?5dC6>I3*EgH#JmguDaO| z{|)49nP(O7-TRaNrsOMT?D@C4HRtNSzyC3?-l%h6t1bjx9M{<*Q-t|=wLmA4#wZ~I z^j|v#0&rErTIU;k2CUr7sj}YVh2hi(yrnCXJQG%s97*jh>ZkOP z{__kc*LAMp8du$QYYY!3uB5To zH1q^?u^6^qxtdrz%%2m0>f5=$91)kqS<;7>MXHtHr0j*Wo% z(_t%!nn+G9B7ecE;emM{UjIA$B)Y4bu;uxE4z=_qh45I1Qr!v$aVK@P&np?8@KtUL zG~GmM3rGXMn{CVn*xTyj%CV${WK56oax!7@^XO^)AU)Y+WU&DbJ{G5QAaUg|lGgPU z_G2nf37puSbh{^wrAOg;+ZI&eip{wWADmUBQpQ`nFAieLnRtDK&j8SXZHa|hE#!b$ z8ZK@M%>%H}%k*(2uITR|!UzFvM2uA}Etd!k)L|Qm4aWxC$I^ zJALHd7*)k~kxHJ3HLW7S0Q^G(y-?q+%O3XVPUDI?(zc6+*xo<)!%gtzsaai-e)Qt z2P#t!PTM2?xXI@e*6E{j(D$9jVrq#UDdU$ixxKQ_++|Z`vvHvQ{O5DVYbCajIp^pb z%h}^)rnb+U+9I11NH+uBku*yA(`mKdK;s%UY|PENCg@Lt_!i#UMHa7}R+H}Ix@jS- zn-c+f&%b#4$Kag&)TNulaxn@3R=8?eJDT)nC-u4`W* zrIVr}PG;dSQku^jd&2FM@#OJRP$tXxtlWOE0HZ&!dt#VIjwmV@gMum#$x=o)a{lbp zp^>~VXKf&cy~TYs^@J3-h6fF|wY7(|>5U+upB&-Cxt;((p>HIE^`iY(t@W)AqUhq# zAmnzO>rA3K7{|?v=YMn@>l{%8ZXF}Fz}PxJ^ul)W5imUCG^akIE+hse`)?1KkYGP@ zq7g}@T?gN*fjwDm`}b6n@!~SG#09Xntrel3pjm^r-Z@!lp*V=Ph(sBQnZ5oV7&K5S9fCLd7L) z*Iy3B41PAmCES91GHHydNyDL@XV+*ckDt-Z%LDxiP6^f&lv;hMWDbm$Fq!eslurP1 zt*`itaR%vbk}dn%ykQ|+%=VcJzX-}#(2E>`3k_4#!wG+`=Knz))^TJ7T&@oqq$ACE zCFW38d+dr#9@5OE*X0*}t=bh*lI~OFeglzxpYk=ot_{lOGIF zLy z5={x#fHot*y^N)E@dX*&?(KTUVsO1USTDAvQ&LE zN$45C=6?+emc1@&(i750HPq)LEqnRC#+dGI>&p=9BYjjU*}U&coJ$$|BBC$7sz&43 zmNZ7v-_a2#(gjyQ^BTw+&uv%1qsI(WT; zmX;~xP3p$w5)Fpk7KkcrkZMwa)^lj8ATD2*v>^Z=(i)YaP8$os5S>s%b86R(=}jxO zbf6`o@6J(xjHcBm7;9-{VItz6z)eI)+HoJVkC3|f%`X%vCM%{~HM<-I#W0Mf))vsb zS_uC7Em+(dn>69OmKXRIpY3%Kw9R05OedbwfH&hKU-u1%r+=h)8w?JBC)I88Yy`-! z|9NZPCLMs9;{-liSj-1cBqKXJ7Uu<SPJr=xF3dsR-e8hZ=)*aj zE=9uJI9Y?Nu|T9OP>-ro|61%CyMmb^YwmmSb&10zQ~L)(YRL~d&~l^}VT)Q+EO;5= z0+fE}>M{00)FyJcSX`e7K?XZ3FD}%E_}dX9GBKd|_uJv8H?LYaZxUE8wk!2O(UwW# z&Fl)Nt}m9s648X$rr|ajXut?#n}5g`NMRC!85I}nUH0G*Ta^FhTeA2ANR!IJ6=E&Z z)gaDfWaSXK-{#UCNm9S$R)u!ut>x4y@p8prkLNJ+hj7Kx-UeS-v?LvbwC|cEE`L_%-FwGS^d0m!+0>_xk=I4wK4)GCu zO_jleAZz&X+DO=w0x5<~=+JtQ6`j-!mPyAdCO$17t|mDGoj$lJANwjlgOqRB`^G75 zB!LZsPIgjB(E3iKKo*n;4=uf?petN!RQDpe;Sl3_1^(_@OR9ozZe}g%h9PV?oG=I1 za@$Kf1k^G}=+z)dOLzrRZt1|symBKAj1j1{tDtcS_r&YFung zfqpOFMlMCBD@8apaiMdzB4{{ja#&mrsse5;i{u?+#-o$T%bZm)qe3M|2R#@`t*3D` zj{cOLA45kpy*atVnz!?F1l2*OnH1aDk|KZ3C>s|bk1CALdY+V|epHQfqiTq{H8hKk ztQr|C)M)=QzAjgyot*&8AY=I3Kzt8<{U&*P=5gaIhSv@}-iQO#7;Km(}f)Dy61eFXXPA>-=QAQWBxC&*@-h22>xSVKfB#rXuPP}&74U=zJ! zlu`&wWy)0%XHA>o0yfyP%tH@$l!(y(t1HAAm;SVFd4KtVCW!F_$8DDO^NqDI+f-0| z=JN~GVH!2@dWOq%0A!&|R~rAbtbBwZ>+>hme17+u+s7y}2ms@CRA|l#3i;UI+e{?4 z)>kq`89*02IuMK`uC4(^OvRK_Qw4v44$CSbpC(Ef`s^|IeoUmF*N61$qX=FH{n--0 zKuIqZOacJ`r-^e6s$ie4!4mN`5!f~pNZ)e;Zzj9vX-IU`rzDTIRcNo7CC?5uF0=V} z*rmL&E?;-N>BdMTb&FPd6%H7$H-SXwnO7zAK{R012yJ*}fZPwLJhQH7B5;GOfJFlF z|1f{jM^oY#HceCb(L>S$|oaLHH&Akua^2)B3QAqYHybg-=}5Xx=S zG`yG|#vEy9`IQ%?VqYadex#Yq(+NG?$nXdEw(%`zZp|$L+4;FjKg(LHM^T-IaWMYd zy`i!-`1Ige*(qY7oY^URSmGvREyW73ugjBFC?GL}Id0{v$jGzZ!yPG%KyT!ZRhESX z@?Y739T1RxPZz1kGgf=;)_b@M2#hfxOW-7NhDWU~Jp)Ua$nxQ~Y@%s5AlE%IdqKvbCeCugBAgJJIfQMERwd1h4 z6^^$Z@*BW`8~q?_T?FO|Ydh5q|7(lvbx`1$-iF5zK!`$Qx++PUpwYV2)p?VK-I=fQ zyTp}^Roe(VJgLGqUIRy6W-N>j93~(*ZA*8|5kp{0Kp?KMQx|<%HAf$OfJO;)6w-kl z_ALM)J4fru0JZN?8_W{(xhm-B9>hcXl3Z*}_E^NhZ-Q^DL(8QmpTUHWMj5~KQG3cC zUPIs#F{Ce_0EQo$)}veaBL5@IgJl^$ezZFd)DILNCt&*li=>QL2ZxB(40w2pH->93 zUN9jPNxWl|Pp$CT;6ZF-LUN>!<~-Ij+Lw6O?3y_@dNm_QB~69k-Iq{JePWD$u`k`z zInUn`A?+;0Pd2(RqRzocs3mQm5*r0PM5mQhcWZVNj4nB}|H4vGuZbzlnA-E_GcsAA zHx-?IO#Y@y0&l1p5_5YD%|dsLRE0lYdLUOgSIiYSQlDgel26sb;5@i+YUt+)jAnH= zw>BJo-pU1ms8Zr5%!|)C#AIY5*aTFPilD^!nrb-25AwWxArK|kY#yfoMkasc>qV6n zEeC?g;}HU-{3s9)e=6W!{*{YMDnT=GSRu6nQSuOT|W#JETL9(5k=ZTq_E#Q zz2RM1Lq0={1&{iSyZ&)=cb0vv=25s<<}(6^2XX&t z$zjJoi<%t-#{EDMQR^XTnnY>PtafVaP?2Yf|G$SAXWYUY0l*U#t3o-Tw@5;s`zHre z6o6iw9)KL7FkCy|p1yr{)MZ?-QHm&7`TA^i8;goeS(%w1Z`y)6^ zO%~5C(=~qzC-y3Gn+d6#a9R$qcJ4Lp%V#pc=^ZMARLj{&7urxTbKbq;vkl6Slh3L0 zIT7>u8D##~IzIon;{prQLy}Q3FbY*)$j`#1wI-Mqh)?Sq)Q3CZ#sXFtmTs4?-iTjQ zR#e*|Jsf>Hd9~rNBo&Y7Jrf?AKafBgu8K*r*&>1wiUv#f$%r#~WX*z)*%to!77Zog zs_vhGj0=7aB?-6$O{ykL0vkvqgE0wPmD+neoHSgO4;K)2GK|XGk#$oZ5Gi)kl2E^l zA(~#P6pBf38~rhg1S^Tn1pMEc)IOhgg={>V5Osi>FcGxig5bJB8IDTpbB%F!ze;28HQ^Ch^ zY|;Ht{XxRF3Q0AJGA<{oR}hy%$g5%#E3bhr)l|j@b$1NWUk4K=Gdc`Yw<`dOMfi0P zs*zWe5JgZLJjw-1SVe5!!O_r?0j(vD;(%?(1qFMa+Bd*R;$dsOs9{5SR+AAIfk2Sc zcwo!uU`)2KD4BAAc1QQ;vL@nu0+31+!Rq3~Lx^J+HIT;*KJ8%R68;d{O%mQezVW!E zjx&Sn&kC4uMKzaA*E1xs_iCs1o39j_I zU=<+6NM?zgJt!6o@BnWm22PqY&f27shI8_|-yte=# z@!6HSoQ&Qg`=#@VE0m*+=W>9g-L(>a%#FoIb2t8_M`BU8Q3Q(NiU9R3_F(jNpNB{1 zdx@+G9_D~y3BW$D4 z3apZ}ekV=&Av$o=_MD%73lc_(gRvj*OwOwb+pK=oaF;_J#xByT2-I$cO^4=d_8|5` z1JnL!BOQ*|Z|y#9 z_In|TuxM@OxXQmdGdZg5D$MXuZ3h8fuJTnGpeE2?mtpI#nK**12yU0j_dhG3nR1~i zWqPq{kg@M!d0VPRdZHi%U;5je`xw?3zJ!iIxLq*^;xp8Mj2H+4^|MDRP8k_hI0Icqg8hdE*+-uY&`sNNq8NEt-U%0we-)v{3Z(35^ z*{)nv`cbKZev64nChh?GuezvS>p7Uv*>*LJzE612&h4fFrlEB-bHn(bP0?98BOe)F z@rQ8G(CeS(uNywnjE$m1|8YsVIAYVo$95GbDc68@2n9yBP^$Q`osZ_t-=Dh~kf2{f zwrio7)Z_?!Nmc}*12HI7#a%z=a?oIFr9`8_P%N%rcx5>Rbc}JR(E-u`jkjj>X3E1p z{&7KESVY&UOT|AB1RjJDw2EcwQfWR01{pmPg^OEK#f2`WMS+huG^wdIeTo5F|7S~G zxrbs3p-KS`)qJSHcpQCq8InOLNrrSSzy+6TQwVAMcUyfoW>dw~tq`M_aPx*QS-yEs zOhyGDY|-t6(ff7<6CXzES_W0AKu-mD^w@$|IJ$!w(@2CNx1Y;jK=`$wN0AasBkAh3 z6`i!mos^bFxw}O43>#%lPWM|=JmOvMAQK6Za~V-V5yEgn z>&@N{n$vKUe8xcfs(Roi(6!0f19hF%&Yx0>SkYOD2)NPAyI>i<(Sp*++Z`GS=dj!{>2{>TZmP zs4Atnp@ybJH0w*ky1vS-BPbN)J>WXCn>iaTN9q-*GezKv#>QDmbNt(&v59HzlQM-L z1CPehp|Gp%W^8t8Ol!ydFF1y>j0OkaoO2$JrqvBf5mN>XVU#3zM8oSv@NK7b=?fDG&w zH}T>)3jB=@4I?p}N`U;XcPOg-k9a8Yiyu&H)yhFA3L1rI6>=N@cH0DFx-dg$Zyj(Q z{WKlkDB&({6tNMUQC|KQSQypAih3nr3Og0pNziND1+q>=qOr%)dMKf#tLZ!eueq4R z4KcVb`=u&`Ji!!zdRj(OcdZ~%IHC>0g24YN=GK0Fj2zKVdyL>VSM!uZ`^}_;SrFdn z8qs~>5Rc4UyjCc2xOEP17Er@Nuv8NpfvgmY-I3KOsB~~@Quq_59wSORD78B}x;1`> zeT;`mT-XD>W|mM@1AH7rte4!8GQ>>kKoDaGpHvJr)R`g{ioi<-hzeoQCy?Kimc-Ul zy62z*QEv6QaKE^`Gt>mN;!ZPH14UUN(ea_9^`Hnn zHwVO%raGl3&B89tRA`u$Ly{Z>94cme+E`G7k;5T+JcR7;gr+;gzWMpUQqr?xG{~g$ z*r1R0+ZY`^+Mjr2lp;iDyGi|TF1}jtXArbCSP*+q3;_9ea?#b=J8Ir*viv0&o-#tFHDc81ycrj1~`Ie z;*&0pYY&QkI<8JsDGw(SzD=B`1*x3kym^oZ2Q%;!{z1PHanXT(fYHsp--s>b2`)hb zFF;==z*0&jv%XFQPVIa8%bqjnlRj$D&FVWBOvRNd8X4vj1XaB*m~qNHR=zBFd^&M~ z@(EoK%!t}0vcWtn!_NnwBVeyQkyJGp%$B;pf)88Z3IIx}P;`dtLtZBMF+upcr~WaX z**!fZmAp+4xzqiryXRhbccMjJCx7*i1R}Y_iNPeh?+1tcha^28X2Z)Ge7}dtWi3h0 zO$XHXF9iku*2%e`FmYUFOK729fL>;Ku7)}W`fs$Q?Ghal2RAhkH(G-i9w7WLQz-7+ zY!W*1DqBbNeArk|Sf^)22uky4L9SU(h+ItjeVo)XoT=wDtmpA5&qEF~s?sxD?Sv~tcuJJnTuK{H;8Ap zQkKb2R-e((nu-`ruI?gwJK-L}Z9_K>92+;TeArQlS?Z$00 zVo_tgC{W?eH91@a5t}m1d%6FZ98)d3QTcTRYnHpEY4u?w>&(Ik+EocAoWkMu2a<~- z=_d5Sr|_SbFyWj#RK*|^lpJHSumrP8vj{p0YaW5>7O6 z`x{vrlY$L=osppYXqw{I9mVb9*;B@HmBYf76An4N)LkyBe0|12(6GRh9h?M7yozeZ z^bc7uE*GQq(i{W|ws9o>p3-BmtXO^ph};4bGx@k96du!4HiK*>T_u-{{=trXZ z&Bm*g(1o*M>p~9^I;uth+QTwz%@LG2m}}{O@Yjc@(gyE)E{7-ebJigf5|vAl-1#`i zvc9eto+{^G_=kM6<0&e>T118#z4tZ6-2#aJsw!~yzgXAh_AmFKq*?~$I3kwS)pG7} zhUV(4AP4*x!okv45!gI~ylABqS}LhhQ0f8VzGL$!$_L5ze35YV7I&IpTBykGCg-Bq zDMG1M5M=amCBdZtFlTMcM;%=S5(D+Y)Tfk%A=yY(bF8SS@;24?Ob3XaFEE|rp?Thh z8Ac>025aHW&&T3WFzh{a68$$N^lw`P@U(X61W6Z$<~#rlaMiWc8kkp@QGsf%-SQ|k zKDI!l>I5N$>Y;Q)=KRYIn<`Qsu;iaG1u=J!Hq+pq6w}nmOo9}d1EhTDC;}Cp6hU#5 z!%>l3#sL|>oupkD;UFT3j`qAh@)+?l7c2c*8tSlI{R?SbcyXV_a~Cd6cxj}!(8SO^ zvG=QAz!$cIW2(i~q8Rh@wy&MOZn{f=!J8PptiXCi9E_$O#3lc5vM7LBDNcP81F{c; z*gG^ZlnKb+*c`ST$SvNl11A`cAbd29@rM|=XMW?p#U4GUlV{?-1mA|ZhNKRAoW+)w zX$JGmx^#1`klZM#U~L0T0Z?ptm=UPni=u+rr^)DwT^f$qMsMRy)A1xN_2y6C=9|mK9H z=;@kJlGX({ znL2K7Cc%`Y&DeJ^xwCF{pC<4b_*V`CrHV<)Y61h-bAtE7ThS0tCNg>7O`r){31;gMN<^Z0MY2IN+Nm7_s>VgrdQ5|Gl{N z);m=R7}c$ARjW0!;DNj8n8Z=-&hO>baYE4#OpNy@$p5DZWZZ%drr zX(m#4TV~oRBP^B{tyaoOMU&WQ9Ce5I#}_|!DcAXzdzjm@wQpTllVZRhhCx9REPWrN zCe?FST#Vz5q$MTZ^~-4cFprPvh&4H3@fP@koEev3R6E`ub!|!rf+{ z^f%n>limPd|EDJ5ZY#dV-*79w#%J*Lfoc-&rs6gD8&1V*@CW$%x+dXnL9g^TT+l21 z246p@CgE=S(ZAvJqrbntikgJG0lkgC;eg)8BjD?=s7bin&)@hP?&oj(67EKRj=$l^ z&+$0EK8u=!yN$o&Z@BSyypFHmq9);P;`jI)PW&Fv=W=D;BMjn z_!}<#AMfMqOHh+=xBMRb4VT}8@8Ijds7bgR_(1-K10TpM;Op0F67Kdr1OA5lo&mpr zuP;=Sa5wLR{0--QkZ-`(hf$MoH~bIy8xH>i-T_~Kf|`W8-T&ZkxceVG1in56H3@g~ zm%!g}{u1~I;BFxN1pfB5$UY7Pa{{K41nO-25!hhc|6qu19|9U|`wtLe+jqbLw*4S< zw*3Z_wH7hJ{sJ=C_JPRR_7#w{?RyYs+wY*PwdhCbBLP8d`y3o?`#pfz_IcR0{T(`J zZ2LKI+;Fq)FBM?hxADWaj{pK}`)HeOe-B{WS1M~Q+MukpNQ3eKGHNZ#0E1eK3{bS~ zBb7%nwtd^0ZJ$OtgNJRu00G$c2`~VnZQrPrfkB#Wzo?9XX4@CQ1>1fAh)%2v%xwD> zl(iNO)iT?D1!k>9Wx4HtNkQqg$o>T7twr`>l(_V2k^Nfv)glSXOmoqK#cYL&pi-AX zDpt%`v~WR_;6*L6|CKeNT4W!WFlv$gTTW0?P>bwWZM*H%uDforS`~Ed`f{~>`*xCt zZ+DV_9jAcq?ESC1JJJ&&`d5*ICAxk(yX6R%g$rjg!HFv zGn9h5eP7I@n0@((!5EOBQ_yOIV%%osHn7W;+q?&zOdS5-_fFfE-h*Bl+Lt-WKwLc+ zItmG$(~72WQ0z^uzep4 z1H~N71CF_k&)D_MR0LT&^*;O%{Ln4NW{pRF{5bM=g-daKC3o5$5x?4E_+Od62-{)4 zKniVN)PY3rFt=S|aE&+5K+m2*s3ZTmGEbc$4aqf-~#-W4v|>*87YY5i00%9Ys8PYZ(C(J2yA z4J8{ndi($qMAK$rbUNGCKDYzHz%MF|#T-^X?+OU!r+o}aurIsfHqT{LWL075b{x$b z5B%ffz(0;-mWi@F^AjvnFbr2+6rpE+v5BLeH8+L!PzA+m4WtXafICnO90PYC7?PD) z?OK7;X!8kT_1-`4npgXN==1C&+5eLU9{Wi4-~Jgxt%~+OofdHqR7L6TXgMN^lj=p4 zLzz8QSWaMYx-#WPix(hz@KR!tqxnor)%pU+b=+riuX*pU5G;!2@-|^S3>6!jD zlx+C_aNB1s+doLoG}`xY+kF9K@iO%U!wWNTK`+&vG+4B-z}SGf*NIq%(ok&U7ySx{ z;qXpDD!-!g6F-eG8t1`ceojE8!B6pvqBqxVKIL@n*^{j z#8ACZTT@swQ*Xb+G!D&m6u$Sy?Dtb9N>E|!nXIl_)go4_!iBY z3s%PWN>^6SQoXHqcXyntC3#$=opQh_MFPtietKazCyzO-XrFQ_Yi>YG`_$fmmbPOr zmNRPX>sC%>wO`>Xw}JOad?()@Pu(M+mtm>xIJ{H88mriLG4S3V_kXS@=H&hHUVA+c zv=Xxdv%NlbX*8{`|24DN=id!(bbK->M4CM)jPZgd*8}Qt+5lmK6)a&?kiiX?E2A4S zPb|PBz%n(^xpl&tR<15CRJ1?4w&dCJ6?**zK@=+`I#Ai63JV^XQia6I8XdIMpx@{o zIU#Xk3a~y$=vZK)vT*_is2uQg$s@<~#ui3sA)2mc3fj+tpxs9Is1gwc8n7-S`0%lU zdN^Q-x*^AgOcm7o_x|+W)7@HYtus-~anwiY;*toG4PwO?&u|gZ#xbxF#^t@(;}}_6 zA6sj!t+uR2MjqbQG^#~;06yO6$NqE%Gl(rX;-KRh#C)G;@5a{yt>-B@=hH_b~WjT$S>F&Tews(HC?i1xWh$_9n_^vP%{S&6%$}UJqEFA zi)gL2whHaqwI#}0>wSD&eBFCL@J*MND-g_Ds%E=(X>kIA;O)}#^kUa8t0HPTynVBM z(hF=bYpctPmR~Poy1ZOnAF8^%MA;SwUAw$Qc_E>z3!jYftYo77xA+w$lWD=627VDt zJ+fDo2>Zr6gsDd&nA!MmY|*J(h2URU-oFq(-Il)CfR--eHppo2zyCf2CS7d1b}f0z zvYR7}Hh1k}lG|dC47;YoOFxsyJMExy16n%#@4*u9u&mpXJiHk87e3yW1VgikZ?A~+ zutqQtc*zcXqK`^ui}*{o@)P6lKuV|9t(@Q=G71$F?N^j0mY)}+!n1N)1{=R$0R>f` z3i?`)e5w-R4+5&;)z=E9HJB6O*CO~OiWLo&1mEJdHoh0d4}PLMd9q;JiQ8)0bDorq zNh+NqjHY1Mt|n5ulC&F3w2NQysl76q1GX_2keTMIY`RF#73E(dkA-Q1W}1CQz6529 zGAvUElir>B)W#oFrXD9HtrNH55!fl6m=QnmjS9P&$}{4&Awi!Xe-XC@J$@0~cDsFW zD9a$z_JsI}#ShDnh@UvXpqPHYg zD3o|XNgf=;K$~bhLNzG?U3HdBFuVXp={*diTh^*m~CT5#3fH#5#1X zy|#i=c{ch5#1DJkz3v#h``wpZs$YFyoqFN+5eBgWHQK&cYy)^>5%0bCUN5gZpVyo= zURfAp9Llc9D%tpb-zO8jyr#UoqH@kz9QouK$LrPgwP&Ol=O-u&Xe3FJ1kzVtU0S@l zs=T_Qs2GESf`Y6H()8+z^6Glpvr&}&M8yEXhqh)QDcR`p14xh%K5t0qT?pG5?XDnt z_g?E5_i&r<3ao}se{sUuK3 zuzE2HJn;Apbqbr_DO`4U1-=*gnYJ@K+P>Mi#Cf|&y;JDa(y?TA8boJ_1fAM9Z|s+! zrQP{y>2z>|rE{rN5WNhH(C5&VLZ|tEXqI=m?LS)bYMlSwhVO1?XKA!oYxs;@9jxl% z`X07){N&2fjJ(m=EBD57A~cq1n(mo2k+MMo52#4bg_6 zvi*hdXg7FoC=?w8BP!#5hAz386Tc_L1kmW zRKX&`2o=B_Fo#K!EnsI%xPtne9-_S2HPJ*KGpG*%6_um&T2B^d-aw5*;Vozs4u__N!s@hHUrnb4g04NFfNpK($4nas~O} zMP%F;sRJuj3`3EH^n(dVjyb#S-{U(SSB%Zv<3|ZvOmaUmqJeP}8S=oRu{t)R3F+C; zkrDKczJ5Woho3o?QqcMx$x0i|$V}Y^vgjbdyP!@IScxi#E2q-A@0d2Bqalw#83Lh>K+6<&28ducz7t)P6 zV;gj)jU8aAmxTO8gq(jLY=6-VI;~(ryas+Mv|WUnRJRKuv#Tfcwv+}&Wa~4(g5A=q zXZDsUK$9yp?cQOqy2i;54L@` zUGrj@dsCc7IcA(d?6!Z5i(~jngHC7IicZhd|Ge+loC(#S({YcwNgg1qwttLV(0ShT zJa3Wn64CIYnP8xRb40)y^Q;(_%ApQ&58E$yy+>zl1%2)x-npUX2#wL{kb6Dr=QmkO zC(Y=ql5_Ba_M9KFV`5WUr^`Aqt;3pSt?fT%oVj#a%zo*_bXQlg$0dUA50*0v#^Xz; zckCW{|K(tELQ~IyCDJ9jO!X4s2LfVjf}pmhH|0SwJt@OtKrYu+Y0^`M}iyIZB3VjXcQVpB}y~VHEU7O)@ca#{d#ekTG1Q}csOu5{r+zv#;uDrDR&S0cooWq?2ti0m z#821N96glU=(fKN9m0&Q^crKaDt^#JY zC1%wn4_H{WPZr8XJ;gZvWHJ&aR;5#oYtUfU>K;AiC~ciYfjTdd`+p?}cFS7nt*tDp zEh{c7?ZoK*v6h&{uH#)Y0f$4B530f&4;P&FEk206g|@w zkkRS5ji7c&vDNOTDX(CQ@zdpt|2yHNQ3S~`g|Hq!r1fZg8B}(gA-3%>?klt%lCZ|jhmf=++*(SkZU9ls___$uOS%sBJ*wqPoY zN1#*e`cuW2O00&EK0{~w&up%Wm+RP_ z9g6s}qB185lM-D}gjw@ujtp+Fkj4_*{xhU4U9&%$+1ADX^w<8hBt(nO@L=U|5cLVm zeenI09AKsD(FacCf6bcxaQjyBAW=H?Egi;k8~(I%1@X%Dffg=ne`boaYKe7NHmn7m zI@YdOo;6}m3gfw1ZcD#D+uuJfI`_@Za$D^(<7E3^E%5753g))I-|N+StADlb7L=Za z>Gb3JkLw=Y7%Gu}4LdDh+rfx!f1S0dYLREvr06t{V6F!zQd6QxIiYegMdaV&3GFrm znw8;i(;|1@Co*CxI&~>1sVOHn3NV(bxWp$cc*ec=-ug7B;m-jH+L|@0iPXXgozpY+ zd8RXvgmf7y+ke)=34OZGqth8Pkg$|IWWqkb_l`!GoQ6NTf==-aOs6>1eOH{wp93U1 zy;HLM+a_af*Mo!T!8=0~4LF)xW| z(K_S{ZK`|naU;G#7;%~%u&^W{V} zOy{A6;qy;XP607aT!*ba>k>0Igb9}0#GoNdr2G``EpOO8go(~if4Z{k9+CvgZS_tG zPWBKcI=9uv7%^o;mY*7^kuznawE`Dv^BnPnR<0s?;KEXb(URpM@q~*F8s`famk%c} zu|vHSLIGuREpU#2p-m%}n=JIcmrO=o(54k!9wuy!73w7hVW@>+hB9hUOT`P8)YwEG zJvq|L7#Qkhtq$rm@L97%y&RH*+8M57iJ@LzT`m$eKR^p;Ft4JTl!gEr0dpl%Cb z%MJQOjiFwOPN1R+7G#iGv9$vg>Sa-_yZ|EoWz{Y0IIj-(b+4>Kkwb-*e_<7f2&t?q>$kzMyV!yX$@bfPAnht-f zk4f2Q2C1dT6~Lu;+c)`##y%WMKv|{;-Fue+C!9YH&b;h0Gtdgm8M@`l~nW#m#ejrjRh ztu>Z`p7%YNz3&6QDnuw^#BD@WkT-mXAY=+%A6x;3uLzcRi=~h< z1QxZ0&A@XmK$at9S%zX5u*zX&x+_JYLs`W8zg zuJQOj%fiCPKf5r<8{vO?HvZ5|U5NDYeg5%|;`ozF;3J*1Ui5zSyjpM0;D@bOudUZw9@a@8_pRHvBnQ@QweQv` z+lvSMIwa2AcJsI+295jcKJGgX47U4MzmIDdycc`;-K+J+v>mJ^2$D-6E^GDf^9VoE z$9;Fw-y?b4$8SjvvWKLP`}p0x+4XOYxWk2?*(mq>`rW`lhwSr)d~eR2JZrm%KANCI z4&sY;%%$&2I-sJXDFV^$rd^`@p(rx|?FvBen4-lO!O@a9Kql{-WT^Nv&x1+=5x*#) z`2OMB@GE%(gB`w->yU+{k23wS!xv>E&Rzy>_UzRWhC1gTFS(S#(q1u)GS-)oOFLZ9 zbyw8Mob&7N12gzx*{7kb7S?e7nr9I7z-%$e<9o5J`J>_`Z&W)s>X{oDY*~H~htUqR z`Fq42QFIl3{2u%~5QsTavBrTM_`ly#xA@;@4iO(`8MOC5aL7KtSf=3eaLob$}Z_6KY3-}C;KlIKa`a<@snB649gUM>V+>WYu@*@{Cy4l zWH+V_%0LVLCo5}y@ZRp0{UvqCwrGN~aOO79)b<*n=I_FPKf~aEH4s~8+MxKU>=W_V zWEkV``}}+Sec04^G-V)v#6OPZ4CD@{jRlZaJ0@It7wI3F_|?Q(DEnHLdE-dR>^Od3(;<8Cfp$pILu8MKfS=<3Dw)bY{97`O-y}ot&)k+e z>7)lxf=HlshYJ*~J6xtvpdC?myr5QK7EqYGmi#2j9 zUDCXznBq@=Ui`1Dd9C96wV(TuSuE}Ta(TO7ekB**BYA)?nkmrZ7c2QChK&smm#NEG3KKo4ivlGR}y0^?9L!* z0;fuf4(sZ~0A^~A5o&ONp#pQ5M1j)51urm2VJA%D4jU1OA(^5DNeofsDJtWo%aaXE zvaoQ4umf7DX=vb5gcl^#s8PaAR-By@V}@|z3L3PC1NBmbS-FAA43;mK zf(WfUD@Z`oZA~4+|_vkpe~3?MiiJ^e_n`i5nw2cp=IM7S6z#0|owKCm;E6sAF%) z_^{OltA-z(sItUi;>Js-#0cg%8>~m)UAvyx0#x;cl@$?j@XXOs=@Uim%F;v#F?Po2 zAm-j+tJVru#9R<-!ov~_=z$NJENQrU*n{CbktNL&Rd=9#V4BFh3+4p8hw7N16hn2I zkh##iOopqlZ3nD-s7}@W6`d_SK~p=`b5z(XdeGmlUQwcUs(0?8l!J`wdg2Cuy(fyM z{qO4a!Vxcg?es)K0VCkVP$vi;wAA1(P*pt4sltPnsU`P|4o@(Y5d?9_jb-7J!<3ph zs6#aoL?5g*TA;`=O^kqtCbDcWRYN+glx3XhgBSm3T+Ve)`cT1BimB1(rZM6ht}FviRl4s^&IvdA=2v}|=QI3k*z ztzm>@jiM;ATw;`rGodh1c!`PP@<0njJXxX&AE+`U7^kZ&BvOd72kR<}1*&Y>;e{x; zgwX83GQTD9EcXJ3Y7E)yO_AYYDO5qZVL&wmgA>BL@d7H4hFwuo3Skz zV($ZU#`pnEJb|T)5N2A~Gj3^PMTsMxpz`H=!u^8{IT%>b0fsJWsG>YQDZ>@zGV#EU zAo-F8h91PAQ&2@s;U!5NB+%Prhb2%jaYRd*B~m7p+P60Ue>J^V%URD@CEg8(3x1>N1>ZOg+ zfeIN^Trqlytyqnr;%oyVq#Qw;FdY^@K&^l_VIf)oRRNPjo2m~kMlYE*z`=_b+EnGB zK1LgF$z-9};EvS|C{t4bn*0cwB^bSAk^qbgZ3@AlFUGsV2CFBDDJWBu3N$+n`%N`| z076e~yyXZ5^^*J{Du;?fqnAwfh8&>SpiKvua)$}(e@iA9S!mM=C{Q!Mv>cU^mCfg zp-pZ-Q7KOm$|!Z7hTFnchTM5 zN%tT3?C$PB?%Lhm-Gkg!xc|8Om(Sd~kh{CHaBtz@)pp(XtnFLd@f*xV`xNi+*NUCu zFf4}0a!?X{>P1Pt_|%(<;!)Y|Rc-gIwtH9Gz4obxwcX3w?rnK*JUUKTdYB?ijuBy1 z=AfykwM9w}SE#tG&XC!uCx!${kiNKx?JvR^6tHZ6yGxR0`}@?9E>KGD=v>(TcPvT> zs~NUG23zumYRdNaxPsWugv*98v|)UWT!I1PZ3@E_I_+#p5nBjp3;hdnNvQS`kV~~C zR`!b*Pa~IJrVY!w06DqfRIDuNz}Tnh4161BDdA96`&peM;Cpd@hi&(DwK z(ob%aFOo|nHrna9M=un}>~T!ef`;PSGB{!QAh{GWu`>w1M=pU#tnBZx+YYefV7=s0 z8-{(Mg7!7oE8ubhnibn0Nb7_fs+`b-g6&WCfg*JTy*gMV`(6{=Y+XSONXX)ZMQC)` z?w>2LQpIBXgXYfbiOF{VPm6oGf)Si0+}ZxP0vU!#=pv^CCfon&A~k1>+V(nP#)||f z+u!vVD7N#E%^G5O<#yX2MOtC9UbE;*F3Mtbg1tz; zof@(59gG%82fIYrcYfmEQAVdRHvaV7S@cpl*@2@Iz|ltc#p^p9z7^-(4b{!}#17{~04^PdBC@X3=fu&MbC*54%t|%K4}fd)hhY{4!mZ%*^3M zr>_ekEQR=)AI6v#^0NqwcCLF=tLr?=!FJ9z3++rq{J?Fs@SS#OrgneeXZ{@Y`rA~Z z{Bd^fay&cdw?SsT+7#W}?EJQhe%IyCG+lM>#Qe-JmX76Tep^*lRaI40RfM)0osx&yb(bi6)+Ne+b4W-=M(6oYqosCi=cnOCyBI(7 zhdB#%+4+UsHk8dFUUnc7EV)Cc9T(LMM#weJ7)A!D8Gt)I_f_&G?-otbO12NN|0wP| z_E~K(&g0w#&kg?Ns!1(2_?Hik@}uz|io3)HFP_`AK@63{iNL?54L`vLJ%<;+;wSjH zbQojWhM(e%C0hT_rjnPRY0yZdaW7wpvTXj3?m zlK}b)eohQXBb!Y%*r`|f`1fLsrHhG)iHV7cfltGWzFOD3Sujx0X~n|2;Z0PFKo~4& zuew|QQ;{x_V{fdZdD~PX@Imi!p536!eS>DP)4Ns0=n{bs!--D4YUfpM6EVc@0K@yYOmG(!4iQFTB1}2ezh5RX072u0^thLCy z**-Xab~f);Edt-m+ol$Q&qIt(YZjIT!CH%OV)(M42aRZ7w>J3T2j#4_2BOh^{>k$M zGq^?B?9|J@_`j2S2M8Nm#pMj7}@iQ8O4JZ?`qcZFY}9TeGiMP?PGuxNgl6 zX_x5xgw&*3{vHD$gy1&HZTP>pOH?S1?5|c2v`%o)=w}t#R|!9a8n(X&;T{ov@1Lde z^DBa)({X=4YAYzwZRfU6t4X8jlnc{Bl_cI+iSr}`Dpy}9h=rA)2DPtgZmq3BtV6XL z-Js8FvGqLr8i0v&LmD2Sh7g0M-dmivH^j3x#r83{!^d>$S$BGO1#)p}_!%6nTRZ}7 z?=4xwpdm_9qt7VkGKc|oWYidO8Py{EW4gM%KcGqV*>DNatDp1ZjCM9}K-*^Pk2BhC zj)1o{>jgc}^K$mG4V{<0@Ws#zJ@enMgTya%t`A`E`4?H%6p<#w5 zIb?wXNdE9clgSCKIwhNdZ~OoKEo(r+{7&cqV9@r(OJqOBmZp(Kr@#LmDSc*|UsrXY z-xl0O$Jkr+(Zbh3a9cW4K@Zr~hYpTHwDx*^QTcLmMAsBz?9)OZbvvzLDu!Oje)X1= z+3C-|)_p2x-&ig`JrDFguPnq)+BIG_e!=9X#n2 zPepC}m=$1wOdwVES$Ae-$$8EqiYwR zt6jVJRN0rYYgZIw8&};UjHP9@Eq=4Dy$^z4D+u}%@gqBbEmK+Dc&GVkgSjwcT*Pbu z`)1h5ptF*-WrG#x5X0ASYS|zdB(RpUP>Uo=MBU9AZE z>?6Cr_~Ne|N|!nm*3}~WJFIl-YqovwQ(u#_trkNasSkpIV&E8<1M^nq%JwR>R$;9l z$|{tsR;;_@*E)_P63vLLmCPCIYUxjw>5pYvb!pw@EY)tOShsDOVn2evt)M85M$mEb zr#PdH%^T3JP9uoiwq0rzSDyCp$!)v$yxH1z2fHUL3b37_+-5&V`B8OS?TTWz?dK9$0GDIDTLk zsAjz5iuSjT?=vCZw_k2ou!MSEqIzH35@Or|)bl=Rj#`^(-Y&|3aE~y0Ux-%{SN26O znm715w`H01_p*jTL!$H!ZAy=;&HM0kwc!tcthVpNQ0I2VJfneqXI$tzWIxtm(L^t!2GJ?ELp;{P(? z;k`oa&uxA$uHo-uT>tYj=--F&hif|SoY98#l_eiW9;tOaX4+erPu+arKq$l zc7;KWGUU*R004jh0K*gj04NX&hJ-@VU^p76nkpX@01kwvL~KYI%EKs0VHjl)F@_ie z2ml0t48Xw5OclF9QO5tl3i$Ci5W_7Q#ZaU=a+{sWbJFI>Jex2Sb3>qAJm;u76RDx| z(2IEGaSBS+o!_0h#ysb@+obq(pwC%CgEQwP2Q700k)ozsif{EAXGl3E0cMxtwmhcU z1X3jq({j1CzHmMn(w2aDPQXqeLW5lGVN=-Oei_5jr_FV!W1U=^iF51K=E^ahAk`0! zxiYsi5T`{T4VoQq_t(uxG9@wE8+;DsS|~SP0kMcFc`b$*&v2ZaNJV<`_2no1ve9H= zcl1DWv4{oU^=y($I0W^<-*C0Ngd6q|}1Vy~+pA=ybKrHCK0TaTf;0Ot_1!VjxsWH=i(e#kZw z&lQh5YKg@eS3gv5{(|2zQZ{Pk z8O5@Sm)nNa!)BFtc>Jsq++7AG(W^IlmF+QpU|>rlK_Ki|W9{KV-|T;z&KMgvyrJ|f+y6;baq)4eFd@tM&+*Jcx1=EvyOJtpy{otxrh-Vg_zb zFt+fZ>+jPAoN)&+C(AKr0~^D1#wDHf&)QGT-Y!nwj-io&?*%$2D2wLUs>Tx6`4p_T z>9mBEz8j9|;4qTOdRvPKbgKTT_VUrHe0-o0GThn-5$I{CP_#v|oNUph_L9pq5r|5v zcXCQoNldgq+2T>`X_?qjAo?xvH^SUdtBeAz{PEJ8mqTp(#?K|Z8umi+Mkl8&eij8p zv<&~^thetVWE=>M*v#rQCp&cBp7Q7bSwN=04`M9R@={H>C93|*$5{?$u7mAQ=rRBc zqMlOMTJ6^W;6`P&H^%snpK!iAO?rPO7V3?GhN~q#WPNilZMp4_0xNP6K5Le=Ul+YO z6C*0}j_}#g0cVcH@os4KFJjjgXxk^oznZ9_-^baA~d^A=Kbd!SEb7)7}ud`LqiDK_QS&RWAaqp~kCo8=%|=kya`an>VY zsvLg8LxdLwq-z7j55f+TOMj1#B4*ILkF}5tpu~K2hrzeOHf(lP938B8AhV$39gYL2 zmLSJm=6wa(`Zds3BH==XMG0xQdcU61&4$J?V8HY%07{5dPf3p~cck$heh!o*!w<<*e*+E|e4SmCD%ZooZ= zX;2hkPD4yiMIvSiHq8U95V%*Xax;u&Fs^UoEoddYblXmwR{6w?^Ct6$VySYCLntIP z<~mU;eN4TGq&CEpKh(GtnNDmr0egG5bhmL!l#T+R3F0_)y;eK2mBAb!x+WqdDmJLC zo{6&~6R}M@`9t)i2HW8{t9QeB7h86uOhP|^#dTl*sE}>jj{-c9GL~^&4c8NdRyfq> zCx9MYYZFJkkh&5Yzrk48hwn)CUg-(RV_OoJ#J`tAIf71XML(LzHoK}@fpV0W`Ql&|dUPyiF{nFO0_{ezco#|np-vGLVjS-QEw+iZh&u9V z(s2L1PMF6>hQgoea~6RT6nsI^FE85V^kG}+?8E{Q!>=H$b>?5BCs68n2D-xgHFZN( z$^w4()NX!0J4AHd{q!?8_DFTc?4*_6TbTL(5>X*s6>L^NUG>pf;;Z*afO3?Tyxw6E zU|S1Ra=7tt9Y~z|su7Gis(@`r@v&{0TT4*uIX7i-MsOqe4(AU)S0ws^GR$Dmh)kc} zi3egsx`d06?aNWqbk_D6%r~CjAa3yL_`rCOR6x|r9-NHQ1qHZr>MAW2vmk^-W(n$W zxO1?Jbrz{nnDg~8Bfwg|DbQ9*P_FYQ+M&k20ZOm>h^Z|ZM-Sd2egsIfX{{6>04j`9 zJo~A8P+SBR=z&5|<(oh+vJ_QHIrvO@fGy14EIIM7y+h7=9rs}1RM|_Y`me6`B)keo@%!g}8k+&Ly(O#@(c%%M;=My)LP1P09z^Jr0MOg)mFT!HA6~=~K zD*oxaY19)ce+~6mW_z^M5p9{dZ88SrPvX|npZ;!kOIau(4uJ3~ReABoPRW?qGm+%? z#S%m?>Xz|8^fgWgC_TqrpMuK6;uh28=^P$=BFm4C*FY(t69~Y$3Jvjwl2>5{kqHl4 zgfuYTDQAl+bTF7-ayU!wDLJQ0)iWKGjtny=kixOdx*cFI2aZ8_k&BxxLMV`9*KZ~y zrpKVNBt?6D)bY5;k(Elc@<{P%2}Qd7i}Rh;_G4sb4QQa()eBVe95hVB8{&`@f(YPM z?*;n;^A}?5DnkXW3Ww2*xX~fOdqf}5E@aCjHZtYj|AP(rfse9>S`MVWq+sY(#?17+ z@>|7n!@u}ve0zrynvRo|&3yiJS(Piuaww=NY$!dtTI)}Pm!g6MXerE0TFudU z3>u!S>m&*~af}69pAu)avnkOtaIW0LI8R6eKgPwYsjGox>qzZNq$g-81<*D@TVpob zCB+WxL0IC9m_ZDh5e_7#`P+s18Dg8lU8-Wq>x`i{d6cn61bw+xc&0FwD1iulue##B zHF)M+|9LJlTiZF$^1-42JuUuFUZe|-R&2t24%$mgRucdEDe31aP`tLL?TdF3A>dk!VoCH!6P|LqG?20y4S6r?dqDY^~s(6e+G!{L->&TU`?%Fb{raRPU(BZOd z)4Pj*q6~G2L$&#QZ9>0X?D;SK9feOn=6eNg%Oh~o8F0ZgaTee+P-i7Zk}rNY)v}?~ zdvy14K>M8{QPXFHbt7{{Or(0x{?S=C|D3p3A4_RrEJ9vv#~T?zvZZ{Avgtn z4ekkdgo*;Mm3B3w2TxlJa)(oXS13UNB#&rs?7plXKzqWA$6SX%v!E8dyquD-7!E)j z{O40cm_BrHbmcQE@!DvT3SN6NR!3}>t+t|cBStuHRuznhEkchea5*pgnn-x5Hd{SR z{S?bE0*4CitVG3(<=Xw2MS@GZNX`*Je)Jy&_6XYlTXiV2e zeFXT75U~OO6Vyu!Fv+gJ_#gYi$uDI*k6N($q^6yc31DgB?IHv=fG`g@lnGp5xN+=P z{Js!((kknkRTY5SZN@CXF z#Lq#Nz?rN5PH(&NRj^=@A08UXCEhvvHsQ&>V&aqA-yikeI1G!*lre;&}p^N_NNOrn_9u% zvbJaS<0uM`Lnso#GjHV6g^<(~K!tb9`5`A!r{P%&G}4_bzDmTebCXr%Ln06oMiLf> zUXOP}ZDAG)3S*}EhzJo=rt`nCtyFmY90)-6r#eG6#~rxuwXMw#7%U>AX->LrbqlLr z+i%SS%$^lGm8)+il%cMF7e2jtRd|H-$D8gxB9ViqIwKp67#bX?cq=oLDpPKn? z<5=h__M9Q{XxhsB<4}&3RcMk@JiE0nH8&`-^u}Va(L>u-2wX$Lb1!jUl;B)cs7+3i z*`H%THjDP1hjUp_NzYk{L8o;LCOp9l}Epo;VpR4+!g7?V1nocRio363I=#KfJj(?X;mG)2fAINV&?{;GX^ z#1ZM{mN|M}tmfjdhxhGN-4ysToxoXBHDJf|PdL6V2SsCp%M%DQ0J+G09ze{taorI^ zzv$FsD@D45%|ZrF_%duX=P@B}r&%Fj+8Zu=pgWjKB~bItT9UmaevLjecU>d*hxDpg zFn|AS+dzv&fiTfCokwe_vafSjq!t(~o`!!ZOoiO>d zhy1wn1W+~NLPd@El+2er_@#B6!~#R!vx>Q82sM&3{Fj*b^1HZ&7Is9%dQ;t8VE&WZ z5lD>V+njm~ltX?6i`KU@`cxQa&sZO~=~z-WfL-sL)K~A&g-5Ht1R;G99)B6f0G3uv zQnl&oHICZJu5uZB);3!J1J@f6W|Bk#&GN0$dw1cDZm|M*WC_>4cJP-9+&=e{o>Aqn zAv*sQ_%hCR8DP=cxrD&|41-}=wyrlUun#!#jCHIMFDG6#hqg9yV4YGL%501b@p!Md z7+ehHOJ>)*}To473zZk-U znz+<#GqP9b3Ks=N!R9}68Gq;v^`GI6pBE3E>HnE5D(!id2bJl;o)xKtt`e~@wDZ4^ zRHeq;w|V53eV$q#dBFKI{g6kpg)^3r|}ccWeEB|h5rTNL(o+6>ogRq6H0QJi?tC0Nz976Cqes!3Gj%H zmW}&&jf6JDYjBHdNcj9Gdg@~OanauZV3EE3^-pog4lMeOU{28@4EwH9{w3Skm?&1e zh%W}woTT*MzuX!8ox_TEW*khSDa;rBWcWd6Noo(L!Nc^xfm@(LiwzIJrAUPC0dA%M zO>PToc8rO zSQVHhAv&zOK&gbEi7SRxvkFEDL&o2mr#T zcnAvy?L0J_?isjZ*qMXZN5WE9xuljrZ$4Te${DeaRX#h|Cw9IgY&c*#}s#`VE&L}jODRo!u7IL1Yu!T1xvrzP)u|DI~Vk9nu1g6`I<%! zKnmL8%4e9q30kEv@9d`y2=GX$p*FFP)YG$S@@VJXI>=)E_XWYB9&?cMz9?HP?jNG6EbX;y1tvV zXEvU2M`HGJjq6%Qj4ju8Xn#5DV6|v;CkDV`t`n>t9u8yFejh}XPq`&%<0WQ(r})Nw z;WCxQ8Uf)T53fO;(>I`(QhX=#*5x-D_;7ZfX(NoouphDd7SM4QF?Rrg9YZ8*Lxow8 zm+S24Eo2lN-vd^{$M$^ZvkjDk)ouWS-N!<94~sn~F>Y{yDjaAsj9*aH9{Y3g0B3Mh zgiabMk3s_Mi$5Zlfqevu2McKkMvVM}?3w5^$pzYpu*?+O!7{VMr8zZz3j+l@nse&F z5SbURJtl1k7ao2_UD6@}B0&1wq?4%)m>|(;aEO?$eHLmFMq`>X>bclp@X=MzWNEP0 z^f~=F6QVg@q9Yfxc(eC;*U&P62}NOOfN9h?P_y|Kl}_P*JyA)?K7K}*ROlh~&YKR$ z?U97Mw8Y^E{@N)X2jEAmF1`u+Qzrk8e)7E4@xYS%w;yikB!}@S8_JC}I)3ChhFo}D z9nAJn7>f`&(2-;5KNGT81&**irD)H!+a=4j|G*F z;XAPTO{pN=7|-c6^bGV!dn1I(*RqCbprr-dv){KC+z#whb4s(8TCsi^Kt#Dw1<4#b za8}_BI;qnTmFEKOsx_MZBR9;U)FN3L1K0MMIG&IlpHfSm+E<6|3XfR!L4-^SN`NCu zRlCQisAjN%F`N;i#p7OqJ1hrcLWqQ{&-{EgkZUmrPb$(c^Qk5oY?Aat?byPylqG<9 z-v+cfdRi?*)}ZF!a2IoJ6Wzs1d8hAWl8QheJlVbz-_U{&pEkbL2 zg2=?$ADtPaO+`wCg9fwu9j!$Cs_n7uO!4>IJ-EJk`o_dECGAt%l&iUY%Q}aD#VEff z2sc|>^9+*r>k^N`m0II=+}(aN3mxm$NK7MJ0{Ojs1KrLy!nkzNASd`CT&DScM`Yb8 z5o_-zBWt=q+KcSgia7(C^-8%BTnq(tmXgT0d>Asn-hd-JLY}$9cybH9fkfpd3`zbC zk*q~#=On3-x4w?6!Xf`Xmt5y-;21OgtrI0{Z`rxQW6<~(i~bZ3%q3E*q5K0tZ@rQ% z>`-zthK7@})0pG*XC#kW7h)S_4?4fwzx@Y7TS3Ld0G;SO1t*CyU8Vucg=`9Qa&A9( zKeNlSLq>%)*~nO2*p=Yb{GzC|=y*`CXG^jRrvQZA9Xs#LgQLz7OAnNhNzKmr`!~>@ zp0T7L3-*Pk9&nVr~CM z4iQt9Zn5WUYi_#6kon`T8gMEKj+;Q`V@jy^?N!9&)&%3gPeJ8^(7SY80|{}4DtkeO z1UKt0Ak7#d`kW=QkSu_V0+-HkDLcF@eO*!F%_YyX_F#)TG8YVRGfjIa0wX&o$i=j# zbsxJ1G)_7=Tbg+;5d@d#Y&L!cIL+#PV@mu}{zif99YKxoDcCAiTBh|OO3Dn7vGu|~#%lwb-GoaEInnF3 z1Yg8hC8$GUV9O2tl1Q2<=sv^nc7p=7g|p7BEQ31Ny9=lq~6&z(De7S;L>lW__`$ z$nF6(zS~d;(*_i1g@ju|Q$;1lqBQ^oHSqK*t9J#$UvXVS9HCL5Z)NiyQ0b?tYRjS>=zAy`6Trge4xL0F zn(4)r7^&~6jFI2#Vqs{v*}2yj&_i)ETnUhB*tqv0J9thpF*z3a`Ew|SdEUySyWq(0 zVH+d=9GLV>(7~@r5s3v-4g+2SnD0R;@g)vGL0*#i(O86%LLS|e8J41r7?7hT@`Q?< zJZ~8W2;=`Wq%7Aa1Axe|HQ-Y%5VM~e4I+&|PbU+t47|Sv6a*{PRT1D6LhMqRL>LLK zl3lx8$BW8DnX7l?ep1v<|B>L=J+-8d-DEN1;%x?^b>NHRtL6%tC5Zn-7Iiz8B$Iv{ z*ISCbO9>hmF0pUgc(=n`Jo1e9uT5Vzuw6@Ijoc4bJCE zB1AiF!$x|~eLCa(7ZvS>pyW3TJS0Ej1f5tu?PwFijzIBCN$BVU>~K4o1gy?n^#K9D zFRFvAF8{5l5cLn?iFHOAh;fqV=G+iO?#AV$YBL6|U-x5=Tn%+Xq%qXR^^WvP3$D!{ z*QKhiy!3%nCLRw#fLw%|QyP+?@RDSxogPcR2?tGtmMb5LY@i+v7H32~g>3fWUWEm> zgj}EVgMAQdFPOR+M_UZBHZ&SeQX|MAW>Z^|s&L8e&%=XZ{ zlr36*ip?$c#e5f$+0&XJHpPi6iYPP2>WE)dD4M;SNwFhnJ=HycM1lfh#YeynA#tNw#CEnSG+KlM^#if7795BXb`Gn@4L^CSU%39FG#M}jPMju1@SLhgCoP8XG| zV<6rO!H6mE7G#Y-ZH7@_dQ`|}0k{~7?Lj@{9=Am|;Z=;@{%=&G`20yP#cskY5O9+X zv~>rxA%bjBD*8a0H9Q|;>P$2@Stw8C^qO*ESMjo=l|zDQB`{3yZV}DQSg+(M6CEEJ*r2(FeahOghIDL!uUG z1^ChXNjZ<2YjZ+pa$}J@77H)N4K*jrg^q5R<2ap9-E70FAvPm}F?o&lzp7b{iX!qS z>Lq_O8hmCW`V&iN!(^T!SdHS}ZLMuH7|A@!5jCp}=+i~({^wEgh06E_tm%T8G9 z-;6MmSTi7T3UAPCMEbDGlQ!HuIcL%iYii-2giEs^H|@^f-0~J7H|Mrn1xJx#;U5a) z8^Cet9q^v#mF4a6CCm)aMMQ#225L*0$rTBK%uWgjdqjOJ2hP`0jBAE(SeZB?u;5EW zW7sXa{ghE5zKV~<_V$_;{WcaSwyC_J3tEKU^%ApyMxNA^iYBpidPz|ji}gs8gFp2Gy4LHQf3E=jLFB|PF+T}WAaz^{ zrI8^mH}UU%0ty_udU>D>DurEIRW+R24@9yyxw~^ZUz+5CLEj3Rib95IT5*XhB7fsX z6){*=^n1}tg~anW>YQ=V5i0LPKSLH5Y(s5%|7Z+!(o?i0{aS;GOCfPuWf@nyeKM1DF zERI}St5ARr4rhta(FS;k`lC#71<xa$s43PIxRx2)jUA6&3jQ-*BbJ@b`L7VXPZfxb)Qb{6}xPjSD8@;zR2)azKjJ zTW5rK(Cl@4Cz9a?@lZnJFezCz0;nQ*Fr3(dHX0I}jjv>&vHd_Rz34?NE~ ztuUH+X+ALgrM{ck75k)8nypDH;AG%KdSN-CFRjvdn|TgKg_bCb(l71!*g;WB`Hx{a z!Gyais13b;cmn;Lh+Rsk(|7}xR&BLyi5o$o!v(u#xK327?PWWPIy^6m+(;dpQMGF2 zc^jkM=AA&+Lw_$Xei?2ZB%s3xZX_aN){@f>l@nt)x^cG?i z1w6)-DW7RL(f36TEPjh>0(q9%%+p~S6@DvI;ZeIxhmlcDoAl3+M176nkwItp6!f{R zQ`R3-(_4d|0TZhZ8rO3O|IUaTdt(-j%sd0|G2H}*tD>6(=1E3i&<{#KX++JMbEp28 zqAdXwD5b!sI{6%3R2WPiSOgmT=(6uE9VeijZ?Mq90xwW+%6)P!S{Pb*O+1__&@s(v zQZ6FVD{H_Yvz^I--V+2da?Lp)33H!vPN6@bx-0=S*hTM$Gi31$evGP-ZSmdj z&FUtZlbd3874Lbv*6kI5%hTfkQf`4EN zNb;W79FV2hf)d(D&JBC)^U}VPZ;D-U;g^rjX7RSz_8F=3xsb`5G?5&IdvohI<(;8t zgfXe?uRy=(v04F9H|pkQ zYrtFyIdN$sbhZv|UYq{FeX*g3kIE59gjeWFIIqX5=WYJ?9F}}hN-;4`6H!8ghd;lz zA9mAo^+b%D#p5>J_KkSPkQZgG(B97G*|p+0Ru^4Loigmo+k$`aRX8yy>&9~q09^g$ zOk;9bvv^;D(2YbmbuZ`dpV0%#-8m$Yux#9V9Om6ykjhc{YWOX8wX{(jC`y#0Sc^<( z_>f^j^%$A^U)bW#P2B7~*S97kLiCXL^ysZr^L(2xQLD+mC5!8~H)hsZCes?(rBV#ZaA3uYxRWp^=$8o zjey1nu6p)Dj8`%>VA}0(tX`#6m*oc24OSN|2wa>i%_AkmyL)*>6k>n8klg|_-@7Pd zs2;n|V0s`=Pw?nA62iE*cbOYJvkKKy!y;=4)MV&wK8_W|qQT*WA~wi0V6Q-m;H?-e zBw3a_aX;J9H#0pya$&W{$`e&5fMG>=m@80Gte&W!N+I|9An?8xsKq$D4JRPq=pOd7 z(W}q#M@kq_H4cM6zKaUMBx#_C7F7fg?S+?V*O_@4w)H9C|8=dQ+*Q<_QTM+e2!XXuA_M8*&S>aPvq8WR)0NXF5g@ptAXuz-gp2y(l^{?7 z^?iRGI3<`d!l*)Y3Uz;vsX^1*snlD+{7SQg1yUmE)YLsV3MvuDdQ~O?R1!KP1Dv?p z;yl+6E=-!S`%H=QId{UsV}Wa4`~q&tZ%zLJI}CglbDitzxAS~Qu3r1n=El6+LHWZvKYVi^CJ<5f>OrE!7&LoP~ zOd$M>(TZdZ6eAZf4ln^YP<|oop04{%6R4_k30Pz2GOY`9m5D%?t)-kwdc_0^kQ+iL z1fO(mr~Cr8PeZ}sVJ%^Ppu*s`ANlPUIK1e6PqtJ#?5(n&APQe}>plUzSBsbKU4b?f zK6e{O95%%7RUXT23uU*BCv_qKCx}e)LKJ=@PZFU%IWy}7XocVC-Z`8k>HK$Ay2b-a ztS;5_!o=rLM;Gq9IoM~T#>mw0l?owcWu1fTf8W&dw5=;Tykg)Moa)ypdr*vLkXIaK z&Pn4r^rC}D!+>k!2zLXZSjz6)PIP&Y=J;2MHsBeD+#=SL2dPjOqg|D2O9&Nn#Wb-y zGo9U`9k84u{#P*-h|INsgPO|I#OS)iLHra|F>ogu)atuhp0ixNW>nT$<;=T@BI;p% zxeT0{8JR@NSe}*!^je%6^WgcjDNgV1I*w;QrT-hmMzZ+IydsUvi|!-T_?yw@XgASZ zH3h+gJYyb$s&%CLi4wZNm^vSkysFrgj@mb?ckp>o)T|wNR6+j@4)lMpbvG&kUoq$zkL!#Y>7;upb80pElJVMvx4rKrlBM_o3VF_pU(!4R z^v@yQZ*<@><@p4&K#&_2@bl$#nV~jxqA1gG>NyoA;E=nQ-<6v}pA^D%_gezB5{2Ga z`|ZFMHoHmCO`jbnflfQ7hpG11Voyb6imWj>_yFjQnpeu)nluZ1JwL!pDFMzi(9 zk;a_|pl_t>B)OHdrdmRl5?cxSh$v7ir%7CUQ(HGTWNI=gNS-L#HN~MGxOlBWKReOY z1ck}6u*vxhvqA?J^L$-O;9t0aLNKL-^T1BF&l#f2`=)O54s4*uPks+X{(2Y*LwI*% zOk0b=7%^Rzg;XJyaq%j(GJ@}Wxhf5N6x!LgD5aJfDy4f@Fq~zR{tJZ=9U^%lEIWBh z9r%kX`U3zgtq0N`E%I~A9bzHe0#mS;!lfzT6%cAUlj>&%A-AQveaiEkgTSOn$<~dQ z?V92vU2QHt<{O;#8XUP5KihGlw06c!HskZAdy z#)O5~u{%aT_gR2&WtnB_<}Q7j3m~Pl{@VsjMIKRF$Dpr=>3INLQWwEYNeO*!N;)fm z_y3v6ZrKv%MnEt};3GW2`j<*4*)ahF1KwFHD6lwXzX)i3x~5f&s@D~aIs;3s=E#zc zIz6I>pXM8o0#3&nymAdqcO@kZHz3Es>4=^2&Ct_ZsF4RavUiz@Ff5&NmQ`)uK0}3g zc5%tlnb{U!%G0PrVY_45I&A>AZb-=I!6EB=6??52sqaL1{ zcP4h6+K_Y+a;g<}f5{psKcE*l{c={H()*d6R0Lx1hLQ<5oS_9PcBZZx&}`y2F=Gdlj(S+Ta}jyInFMbr0}r-(x)b zkmTRhU>4H9w1zOqyhG)mir3eSl1XdQSVNLvW;Fw-!2SeX1>{brNz2N#qxk+{_{!-B zk~fxyg+be-E+EPiwOmIROU0lhlvRd8t1-hZmN`)mUI_*K7E|{fV zg(*V*QS4-rp|RA5`C#CC$Wh+dekU(nlDsXXm znHespgC%jGb|o=EQxReHa`}rKJ+bX_eP()SVgR(1y3(k|v3n>!%l(GaBjf8ds5S(w zmSZGDttYKHQTQ8S!HuOUoT3nrXcI|^is_)ikNiZ8jZ}24UDeCBC6+QiTZ$T$ex^iH zQ!+K@`N(o5?NPc*TZY*;kIHRz)F1Ex@6@Hw=NmzU7z+Yj(p+bH-A%;w5|3Zb=0Mkl zsID|EC44A_&^c@*Iem8)FQyt<9=^Niu-&BQ2}_bcdV}RXuN{8;|p_DQSP&c0NUrS2lr29V+eM zvv<3?YAc~J?Ly=J!!bZOqJG7{Wm+fNNt?)q)doS29TxDhLjeMNKqO>`80tdK%&gez zfkRra8${N_e9fV*@{V`Lv(DkCCl&6bs=?;x&LAZ9gq`uE>D*(H;P&+qLbb6ocGlv5 z;4bTx1FpA+1V^QBQ@DSdNkU>VS(~}m^*AaO%GVJGy%#_Eds?hd>Vmp%gp|sN&Hh|B zd5vfu89fa_T=W+=sxe+hUKm6LFmwj$lR@*>NV|s6=4iwm)-clw2N55;8PXAsnn~@S zQC5mXDM3h7gc)DmmxQN6RUp3jlWDAMVVVQK{kH}teS<$kMJ-2;)=0bT3tpykA>w|< z#ud!*w2Zxt>d|7<8fg!6pg>LHxk(NIf>Be2t|O|K(ir)!%+QB{fXAFxT|=^OP;8L) z;_;q0dU1q{TZ%V)(h>{EG+CaKl6LR4Fgx8b4;N#S>U@Kd;3qcteJrYDtmCGjPRuNr@y_PErUX#T1DTj2OApi1F{%NEYoNPN-7-Z~?#L z8uS5)LdP%f582xGrmMZ z(nI!}(ni$Yt+Iw5s(z|`fuY*H991eY z@Oq^fzLn$K5}-6thM-XB9)vCGe4AiRY&q!xvb-8{)+5rlY|Oukm4#N%rELJu9=AA9 z9~I{J8>gk+zQ5t z_Ot%oTQH6zRyV|*;wijDk55fx!JmO<4ekb96Etxs4+Wv%Lt-lkuDS#EriSvaagvN( zm2=s_W7qrZ#nkG3E&S%6^~X(;RZ&*2=b2$~%EPe~aG}=k+z>?M8QTM}$1E>ZFuJ@1 zv=aP!q{`@l*V6pRQ;oCbmC#oDX)mtzhx_?bGI}|cSO0p9yi#)cs2}UUz2Zl^-Zh$m zQp}fFZl#vC16=eiN0YyZ;CjV9XjO%$k-Ca;Ot4UM1y@7_+}zM6%haW2^K!y3Ph~vN zfI2x;R3K#|?OHP4*)4&FpGtKbkXnEwLwMbiDYK~=F34M1n}CESWR~$`6ar<~<8Q~l zH0%$>bTbow&|nqR#wqwFhC%Mt(Lj`usu&BIn_GD`Yn(`EtGWvDuLPlk_=Ao_Nry35 zyWz;4Si5qZ0y_R#j(ipoIEojh9{nR)_hhV-n`Z;4Y)Z|w%|63>hEuD)Jj%VKwWx*8*asT(!j-Fp~St-2tK-|Ct_^NV3N-Cfa=kE^mqxaC-er1-C;L z96V})qUpXlvSGcz~!Lok}v>h?~U{lk$#bp^CmvN=Zyqio==f-pGf7fN!v~NG87K# zinEha`8b*BU^o)g9Dp>TVK6S|r$qc!j?=zHyqZ|r0xtj)qZ(iDi2E1n!^WT=2g;DF zH?`d%G4~W&8*C$LcwaIf(?BLIpbedc+rR@>P72!f=oeb4m)2<^LsaG|h*eStNHfzy zp2&=omRQl*;Vy6DgvxSQz1r3HyEu%>Cqn-swM)miM>4IYWo%HRYl{% zJ&aYM$&{811}1F`G2O%Tu;;gQl_(l>|5^mfv1-c7TBL#(<>Mj3ZqrckcbAhQL@JHX zw31&+eq)*0;z3w79+L{!dI;r;{P^1MYFQ`;1b@uLpi`)WE3+Pb;C=PfHOPT*} z=9HN@U@lP1U!akq&?sp2Q5sR?@duPXF*nF=1^Z~VGmHW1HSgnD)Esqhl#xS(7N4QKVbwEA>DgSNn>qSVPoi<;DT&m`lb8B>w>8V3W$PjdYk&2L_oHG;qYwlvmsi_ELmB*KN`>{4NMzuUph9;pqg`I@nd>T7(dpfbVO150caDP@+g_ zw8AK^4WI=ybF%!`v4Rv3xLa-6VvNXzp!PtSj0?r3v0;O6z>81(sDZe`L7JprdQ{TH z04>9|>2|Mb$(N`Gr_$B9z`|WG3cWg(P>D4uD99iT`u$|P+^RS}>XS&*A1m8jw4Ma`C}xgr*XnJ4?zxy;#AJ1q;97-~6CcVYop z_|^1){nRN>kp6T#DcD7+&Oq@#R#?`L?~~$ErCW-8XUFZeZ6hWuDb?(&gNLYil2<&8 z_?}c#9IdH{gLAA&da-<7OPe9j2McQlC zMFi4!eyfR8)MqViK}PQ3jB8;aQ@N(IJ%9fvOYn>AwGQNoODAyOT}wg|tKD#v=Wo?d ztW@G)@mI>{P;+D80aGju)2N=Uh-9)ZUhaKsT1WsxECA9ga^bk4@r^LsOtKm3d1gI< zb+SU0oYlR?WjWeRJ=Y8Layod_{`=^mlVx5Q)0q5=#I`?(i}gX&P)V?B7%KDnLo7OX zWZ*;ED;_}8ta3+wrzpvJC8yv-DjgtsF&d=MJ(Hz~6XC|rhm z3d@xRwN-;zPuA-%8NX9Dau~$xg~fWGZ!Qn#fY)WW0+(FH+9P*8EIZYT&_8G%kA*-qPe+q}!Ag<4 z+I=Z1=E)BAlrANKm?~97lJTFfKd{!vK|JUV!iyG=@Q3lQGPHtM^L*zFXD0hup{AO4 zHBob~(<_$S+q-v?am+WmdVU%N-(P+RIO>RBTpb0MHtfh}cjLR;*t!7$ z>s>7ke~MU7PcP4>5w48U5vi)sd?fbKUyyg+so=y^DW;MFBYjG2%lC_nR>eX`V{ZGw z7*29Fu2?*6r`6xYe=E|R;rNr>9YQ;iE3?X=J>dU>&Sd(hrIOw}EkQ=yxX_v>bvs1) zDo$>J11t1|YPD$KWNT00cumwQ;8$7&N|&{g2z9$N<#UTvEt1ZRV&B8p0!6YSFyCZe zL-sG-l#5Y(z;_Z8eF{PJQlx0#s2`|;Joi#56g!O&{383bj!sinFerP9=Pb{(1(;Z5 zc~XhlVA9KEnjcN6y<#qWid!O9u>P03bcEUPb%0VusTH_RUYeKqdMuPrppY`Oz{@nL zbrLO>*oZ6D<5F=|W#UQ{+EHuwqOEjLO2C3&iJ8_A5vUWZ|C6)rIR<<)HcBQ$k|Wd7 zxI)Isj9u=zpklQ279X&Bg~*^GwtkFBxGjX#0rdLl7NF5D5TylN!+~r96=36ZCoDJZ z_Bh>u@UrNb7`!)f{}!YG&?mFpAFH~j4F(=!E)Cdu==Zhv>3^M zey3RMgx!T7cy&QOF^_VsKW={?&(Fwykf?9z;opf-up9ua3c@LlUcD3{__74f!xIF8 zpa(aTkO9rf(w zg7z!D55p))+?0Hg6*mA5-TC}%6R7QGSDN2>9%ZM4uQVBQs@q~WBJ{aZjPwt~$p+R! z%5`k)UQJf1(l&S5wdpwnxJ5X5W4r}OvA3a94nwP0RRSqNhj){JBll3ns#v~B$^{$O z_B83~Y%t856987LenR$SGUA7lWWKpCUa9koewCA6&%yG{N`$c#&L7;%VY}TGOiBb{ zrAyvADk&Lld z#WKjfMhcL6O$-8L5HbTH!a3BI;G{h33bJRcCYgTgFsba=3B8lo@@YyhRStC3Ok)(4 zg4;n9po{d0p=m@B4IhnljX|Kf0HyXS+Q%sf=ltoV!GF|_>}UR6D@TDJhwqRkXHt$(un@GkL=Yr4e~9<&2aZGazi4(a!tbs|yJFm4?HElfZUx z>Z^(|b<(}%z_}nJGg^R$i6-*G_;Q>CcE4PURH(7entGj&x3f{azVN}VTwYHHJe_UlSWX3s zh$JJ+qb1DdmCzH7xp~;bOl-A`JHR@q!5uPUp1PKdry&(0BT#+r`?C)+<)9k#p7Sad ziz;Y!?~9!HxVjFoB)Wrdh?NSM-!*JT2SM*#RrF)iz>!*IZU%7x) zHYsHlKPEe<&jT7oodY)XSI$I&xOEJxkXEh&lyfyQpK54eA$*r-uxu0AmDfKa zWMi(E<@G@Gde>tssvsS#eC;gL$SZKuQxo!N5rT!L*$39DBX>VKPfJc(_4~UPGHFFO za?6(DLjj>l$Kz5|YQ5B6V@wx9R&b15m}cuBhP{Bu83}VjP|I5EuRTQl<4(_NR0o6D%9OLH*Tg6#`AC) z)^^N_?fYp1@@ECAp2N+I`ae{DqFTxoJrC5wNII?MF>UmetU;=>1*~4~V1>E|Q*Vq= zd_i}Cddvr$x@Mw`TKykZVP2XnbSdTj2KbsF;7uS2N705@5vU@ZLca542Jg@i=?-|YaK*&ANRFUDO zo9cnU;e~2Lf56*{8&>$i18hU&yP>Rci@mp)p~f3t5)Q&}5AE3KBa)b7`^`hOMuTV_ zXIrGp{+y++2@0YKR*I2w<673vkLhZ@KmE)p@(-;V^6M%>3Qs`Wk|scSJ*4Fyhlz~8 zJP+EhMM-CFPT`IJ$W#0uKr1GGQ>TU_edB3uw!VZZ#3p?djqq-F4o5FdgYCG ze7t8gr$!T&o<2e?R*par*_N4Xxpy#?E(;Rq>heM?blMh+xW`1EkHrs}J%mITKzOMi zy$<1%2Xw(e*mGF_s{jDQ%PYGs&jJ9&LAFi}_lRI{k-hFpc{UDLj@zx2NPxoJ^Zh0emNsI7`W;&tz?aIuur(8QZuFm{oF3PelHm}<@#HVK*$#_EQer_1 zpo86N=|QHZNk|o>R3}VFw6!USKu(BWH$G<$^&w+eNp=V(ZHrX}h(Ls0^DO`HEI!8q z(!45j@RW)ZC*0_-m^cEWkRQVx38$!4ZOc{eo0M3P7OA7}AcxA)vjbMY8b?c`qo-^G zTMzzw@F9WF8sLPdj5k^e!6xLuTWA~k(1@@x%EA{ejDO9u@h?6*{>88#|3h2Lxsfb} zN@~ZsLrlZZWejj}> zBr{v8ol0SffE(HY-LHHo?yVRoe6ddn{pvBH!=>8`o=~a+c8&teN@-R)%y6{T#T6IK z2ut-bpUay=@AFzhsJbqUUJ}qsRv>%=g(fvRN|mIvf3*!75%fA1;rjs%#}SVh;SHm9Rks*iDSzs=4Sb?n z)I96LV0VwRafC3gNIYMa6qUHGL52B=ciHn#$xm}Bd3nvYQQR5zL1JCoKK{z6+rEfW zUW4KX0VLg!TtQ2jO89FTI@hlDJAzfZOcVxhyQ*DtZD3p#}C^RYK$jlR(>~ ztM7;?2O9`kMvE0*Ad%G!-t((gBRiKMeTK+^{=+1*1wpB6g9NBfx0?jFCd2hym+W^) zP%+pEmdnE(p9KKOTeO24Wdb&wpA_dg4cuk6Cq4Nq5J!k3U;Vn|_=rt-Dxu;tyd1@_ zV)Vg`R%(JJ7aa*H2+|wfT>KuB4wowLd2R$X`RhEDCOJ{*H`?T5*-*#jN-Gz!f%)@h zw}=;s2&JkU0)})T{R2y4b(Z)d$OEIW_#RANL+^OJrjglU7RQyR?CvG zTAKle(yPV3_&fL>dwZMv9W>d+qb>l_%I8@{)Xysv9QnK_HiIhw9wV4OhzQb=R|z}* zb;)B%wF|j{<7ucL3Q~kcRujNRhAWLI2dp`Sd}5t`O-ZmA(ntd{8g<5h?K9xi1QAYp zreAAIWKb}{|HkNm=0m_KR^6iCaMZMI$%CxEd;#DF+Na(%F=Whx*uD3vuZ=%Ev(X8( zAPqVjoaskOdZKMZmDaKj3QM!t8=g>;KxSe|{y}(9>fMcZFm2zgh#5XoF z2^RHuL|t+ySyEgKB%s=%mBUdI%kp6@jcv!OxDjd>S3e@kP?v*>Wg#RWM5C~p(q4NF zm)-Pkxy!oDM>oonvrj<0%!M()hnXK=d#7gck!ZXnT0eB23@Y$<4T-Ct$7qoX(;bY& zb;l4_iF9F?B1d=dfblh6cg*iFG)btinD;domXiq(_Sp+a1|oqlIAS-`={o7$NsY?B+1AlXz2XQIoh zq%K)3qXUYuZg6guu2*xn^7#$C%!7i$s>=&26clD9Z(zko#{EaH!Df5_B$%ACa^X`H z%Q|nfiPo66JfWHu#okg75r?_#_NV)&;iN^NSCqZk4mDPV!&XAvO{v_2VnY!Fc8FQFk`hkKr^1!sMQ*ZfAYpNF__-se4e{uXV5hF+vx{c_qTL zu9&!kG<^+Jm2>l~mHwd$dFfQ|4fl(hQh^qujeygk8+@dLV+M~Fh!`M8X?(B@@ps=* zt3V3&)<0wj?R^NQZ1^6xtjA@Sv}p(?HrUWkbG?L))e#Ss2?yHR@Ka|ZfPPi&?9;IA zuI_>CP=wHN6)6I-0yzF#023=zJf+6hZTskOXzY2HNoS zKHR+KH*vVd8JH5sHl``Mk%M1`0CQO8wx~Ue7bqIGNCIjf@tjA9CY7=5;0)4)f8@;` z;A}TMv={-E!4pp)1fiBc*>}2;&5VG8HcwcC@8WlKn;xsC5tB~@`SxlKZl?8^#2+01 z*G^alw&B%`{TRi72~j5r;$6%X*P4bf@k**gx@icqcSrT*qM9R&E2W5xlGE7!GrQj;rbBh{2V!BXq}V z>5Y_)Y6MUC-gTjmPJGa@{yJlexRBD6Kc>w35u^PpAC?0w1w`xXR@hcfRJpM1X2oNz zZM@O3i-Y5XF8CP8KS8!I(#v$gvuF$fV~B;NV}^)z#m)~lq5Qs)tf{HjI(Vp&q*}vi ztYY@__niYj0ff&tmp&c+4>=CU^Y2`U1cj#g$@Y!+5CEbF@vpS6BICPfPRPKMzb7hs z%JKjN>965?8Ief6nA4|FG;*oL?ikA|ApVU!Ok|!1Px)5Nxz#$@?KvLDDZ?;vJ+vjd7u~Fh)l;0H_bo#cE3Q#Q6bvI zcyYs~ZulY4GWh`BXA?v=pg?TihKqa_8#PhRG z?Hwk!2w)ZR42LjsSr5d+^{^q{)#KwsgIuC&DZ_K$zQi|sU!DGd!y{d(f6t-$4uA|- zkB!{=N`&hR7Ow9@^=}Qijn`lN7617QI?F0F_JkjW zCt=*bxHJ??F?~D72g6Di^i%->PgXLW8(*BWSG*0aZI@!#T*Z;3UXLMJBllFgS$}hZDFSX>J4;?=2$o5FJn8 zmVuHH%*G~&*Zn$@1VWX4L_=Eg18pAEI490HNufm}!8z(B4tv}JE(#QgvbAX>I7h9- zRFBaGfhBqx4o09~l4&G$bO556&R>(@!pjEPe-57|^aCbph%zA?rf~pwL`*#H7hfvG zvlaDoX4h}IC%F$p?ql5C`yd@Q(zv?%#iVuefK!|0F)TE%dQisM!~@%ZTbK|Oms#4P zM$zhEO$`F2zDKI7Sshjc0*+O8Z}7(w(sfq=q;S3oF23OzB0Kv=Ox9|Kd%}bm>J}ap0z-p0h4+JFicZZGb0<>FAT}vH3uW2$sAP|%g<=@ra`X#uH+za=s zOH+S+YVCBQ{>2sEj5gS^+;qkCCJC}ftNAeo?JS89N11MHfu*6>9!*hR#08RUdZHmg z75xS6o~p^b=&?;I5-&1DF4{A@=eywuc*vXTc--jLc{=)pD||ua=sg~qe%#r+78Ln? z27*ubEuy$Q@+tu=;g2aN?}vJC_Cd&D0UR#6DX|C>!aEXC^nf|X5QzrOTrHOG2X8j4TKYvqe4U2Ugmrt10%PHazU?iRZGtKEc|eaM^>GN@m+YE#xwt4g)uJj z%QFOd($3JJt6BQqb~#|A2G=DEwKz5I=M+usk57`)`YL~or!1W9dgl{I@6yVTWF*^? zS;<@TvgsQ2Hw_#U-vJP{)7AA(H#M-F1?^rzK zsty~hdV5OX6wuVMTrIb6cEzmLY0eAUDyaArqin<*EgyU~da@Q8I>mb)eF)V5zh^Du z(JVHW7OK_0f9Y{bY69)^WW99-9-&#!#JXFpHA*l`FgF`Z~cR}Jy1ds!Dx4syTmf|2mZ(L0z+^1 zI7?h1*jT-bGq^$S!Ub3dydneH z+I{PBnsF4?GYygbKyWI)NZOfFaQD=T+Qj-TA7IJ6E#z`8JtFVf-UnGTH#1 z$j+O$xNN@d(Du^_?keOxCrlN=OT&K(Qbimrv z{NltNMZ^?=MT4*AKoM2B3b1sdFSCvth1j-qfV$XU7$SpOEmQ2m-b=ffT5l*QQJ zqmpQ1sC}G8Mje&KGcQ8>#3QE790`4Za>&*+H|wpHNf}@3neAx*bOu75J1Agvh<2aZ z#6sW=LGM_>sSaAx<(7(Krr6gKk0G(I+awutd!qXkJPbHSNxnKR90tmYX~m+F?t zY-gOAn^%G{>pB<^Op`~TUEKg=voq_z!sV9u!M4T#6In9$vCmR^J1fY5BJGYoB>h># z0*s{tdS$|UTQF8ur2~zHK}#_As5>ZTt-3-J?LkC|CupAxis+`d0jk2126qWJccJtJ z9@KC?6#{&|R);_!?~7KXmZ&z`&cqabK7!l-VlVG|CLW1LUlOwSCR=VPQ%X_>oCh`t zWd}6cj}Sj2_-XPp^b^Dn6PueG&Obo>EQ!D2xIuALY#|I%ek&=TUw$*Ju6+6N7jppq zVh&Kle>1G^x4_?Jxh$8)-Fya}%P~lE*nADOQ{A{5Kd$REM{&}VNqO_$xG~P)v^P}! z>258WON?uGWjPfmy%?U2#`KpLf^d7t-SVpqGgqAS{BAY;#%jY>kC8G~hLbTs^Q(5{ zjvU|&4Ny%DJn{=A3_^fn4b99y%nObGe>$Ie1;o~)rwS|oCjQsp&|`&_?>Bai$N}2C zO`G8Ey>kTk(bzME&W+z5m05lE@pYO2!UBUkHMd6!D|u+N8JR7{aMniWHBb@9dlhlo zy+IiJ5?!VRN_ThLxI~xk-qVD8yL57gi>>M{G@RuHv??&c?Qo@fqyR$I0K1M76C}3c zgW%>Khj20ACez*B_B5l>c&%x-*>j!)q@K@@i!ny4v%^i`yt}&s1+n2Q_W}eQ_Z#wt z>ybhQCTh+4akQYcZBYV4bZ!Xb_V+h~PV_>`VF+e1Jz^`HGxNf*e#`;*!XSeipWK)h z`rf$FiYvqXkk;op+xa$6JL)#e?m1Oh6GsH0|eH-4* zXM)Ym^t#Uko5|haZg5zTi!nwP7jJNI(F<#gu~pH64|HPD_>S2*PS7?M7d>RkKJRt{ z3S5iP6SGm4qxp{mef3b_8H`iI<@)MbU;$G^N3^lU+;|gp9Zol+eX>2pxebTII zTFvP6D1snj1WlaME~H$7RyXQ1t6Fy2K1xrg)8|^v=qCh|c_M=PMz=2L8M1vwkbcxI zec7@-UfR_At+ij9F;Cg4i|mZ6Lv}sxO31!~iP8yVX+cSsa z-n?1(q}dJ`ot~qM=KMUe+=+PQ8*~VAcR@*2h10BRTFodF>C8OvBHm7f`lLrtpOp6K z0Xh=*8MJ(X4N!il+bP>>6sKBW(wEw))|VQ6nW~h24&{fRAAWrJ>EVZmpB<*0at1#k z_|f4f=m!Mda;J%u{gcBF4nIhKZut4Yj}1RZmY{?)l7NIG7@^6GGRU|xMiH#Uh%f{p zRG}?sSpyeeppt7MdHR^#T`k(96L*@XOVAk#Euf& zxKrnI&eB2wZj+3|m9Miid&ZP|dJ(n~x%K8|iQ`oPzyc7D1otgV1+0-dodlAnM-SHy zFvr_O=bZUm#EoC1bLNg5HZrP^YnnXGa$<)dVgyZWXG58kq9rFeMb}P2Z1&b{+Yr!q zJ0)eGtANQ%h1QK5e`X~E#C#noE#0Vt=!!dA&A27nNr)67FTmhJq7)aUF6yE#pPOs6 zG6yK7)N6ouon}G2`k&l50089J({D<4NYOipVC9E9GR`>bK7B@#hl^7O`_y~wOK!U`b9H);c^j8+< zaQS_3`DMM%IJJH!4P-&b#oqG{VX(*qWYDStvBmE5N+UvIfRko*hnmrugNYE_=*(T4 zfzTmnf?&!7?4W`I0~v?f$f#}(_oUSfNqX~SCSyxgW{%A=ha6Xi&eKOE_w;EDs6MtY zMpmu$Wh*%hl1QS107)6Cga2(9r|VCBpLArd^kKJ8ZQD!j<>o_j9Kq954KVjf58V1P z#?}etv5&|&Ebue|*j0cYvBmE^Ii^EN_>}3n!Zrt-*pLJakxG0aFEGxGTip0AL>@L$ z2fw7*RzLOef#OcBNl8Scjw?2{uAY9buZR;XUyGooJ(XNzOMC5VPv0?cv!@?B1=RRR zeKdQTea;~Lj=a!05(%>;j|@Z|{4wrqpokG&;sXSqANVl&_`s(JG&ADH?^fB!Ame<* zu=1l16)WF|2UhwlZA07vEP?B|ZXs^;nc}15vjd+ne8BMe!p93A9r$$NljM^F9~}5_ z;UmRLpDlc}u=0Jf@PYZRhdf>QG$mL#w?LHA{OME^H``uJ%S9s@+QZXdj>!IQl9b4RWeZzx zTv7sq6bbChjY~?9NM)g9h~;HbH!dj&0o}rOXQXbhsUe`Suqqu;CsxbCYGF?^K*dDh zf+`|N;tL^8IEVlRNtVE&AW6(hVeO4eNt9d+ySi~H2@~`alkQOaMSk;Y7LQ^0?h>0$aSizD|6U_>nx^YP;1WP}h zvGhZgr5}`%mVPigeV~UcQEad&DJ&ND)B+|&(+j)ZIOPfvQ-E+W!Id65D6SxhB6fN~ z4p2fEgNkhjTjRzlW1t`vWeg?SkVV}%WeglT5m?R$EmYVV9b_i3FjSm?U{g+LS6CM# zG#_ktf`fgC!q!FobutnNza?xlOjrVIi{QM?sSEMQ4E6dH{p+ zJI4eRKmoXT=zQ^VTt=JQtf~d>7hdpWh%J{31R3>lAo$+)n~sjl1%fq5NFdlkQ#)w` zx;CASMvM&@8EdR;aJ92p>u;+XE}I=X9>dvy@tnGQXjT3RspU!=r%%R~|LNy%tFC8y z4;>0)!)3$cu^^*@iE*Ks-f}ggs;QiZf1t68{RA|L1vvpFcsJEIv6It?a1gX%UOl&P_T58fk z(~|+5>ehAJN%M&;`C2U1?*OqS3ZmYK~PGm2~23Hy6pxhd2mvP2yTRO*c73h zYllqtDVZ*ZP0CuCE=P)U?O+gy!4rBwVTbuLvkZoymBOZjvtBuy6gZcSOcBWespcwE zO&gg^)~cE|GMR%p0KhrNEdU(o@<37tPu1#KY+PJaDj*lTqoz`>NDrEWdO37hNG}w? z*pd&lgHyo<9F7BBIy^vJT09`u1Do}=SuriP=p62WfP}nIgmGeEkV;H~EaE~9B-oN zJgy!aO2yLR5)%ZpT^g9yYiYW z(&)IL+eSOZY&JNr(RIfa${i-P!{()@iJmS7<3}4BES#%a9LHT;RJOLLA`1=s5>qg! zm3JyIVWqo!yL&r#ZN!%k*kVpH+Kk-sN)xl1==8f|PcKKix4VD;HPuasZ1df*`^JBb zd%QupfP)*)wPsDZ%C^asJ=y&8^9^1y#2xzFcG5Cw0?~g*UPI`dJ~QjEpe6rrrXU?Jx47$EM@e;%O#P_V(D z6E_}Bs~P>yiJ@k6#z2WU**a6HRNRTE*y86aQK+~h!??+A=#-PnxK=YdGdeRmW3cQ~ z*vQMO!51oJhqkP{3#x5rb?4T+fO@e;06IH=Y?-zg(nq z_(}BUUN1)C%pdke5|zxQ&<`v}VH~3{GKK7<3hpB2@JP18Kj0}cWZ3!qP8f$}=p2~; z$P-cC`N#RgcpQ7h7Z1N^kXOc*zmRUI;upst!#IgwjMO-44GC~FcYd92{k{eouA-Ctf5hw0 zcl%ai92o|;&wgvz-L~y_lwrSN+jr9T{o1~fdXpSybg;Zd$|8Xsh&IV|x2L~-NVgB% z?ZfBV2?n=qd(P`uvoTVyl6L;ITnXQS*hI`sxwf$=QXtRA1pj8O|TNTEs z;q*l6QQY~ie>-6uS_Nyc&f(tMD5FM4PP~j_lvr7W?s<4N5=XCIqNtIGi45|0cXt~x z%Vm;LJJCoDV^B&TwNXD2`vtM(kCSAjlE2I=>H1S4YQ{98tkf*$q-IHJrq5YKmcMi5 z?+RmLg27-gSd78GP(tF|ORmpA5u?NwVVoG_6rt}!n&tk@@|TgTT=`l{^!vNRn2tOQ z27|$1Fc=J$1cSj~FqqI0uEL-*wMbz3h!iFva1xWO5_e*f2+S}T3`U=aB@@GBtO|^2 z8f`YfA`&bXGvR9QNno5K6N!B7Cl8Fny*6L_3G1BHqqLVkji%5F$wt`G^_V5P+AOLt z7;IImm8+|%>=D0?toHh$!iFB}k7-})C%@44>axdGNkkNzGF0|?EY@F4#$rqRA7j{f zQJ?y7#WFon>?XS(9D~}|&^?iQHyY#;?#v$bIM7dh>{_TlDubGQ@fd^Jcb;E~E$yc_ zgJMg2_oh(O<~bQrhxRAW&4?}Sagtt6#j7}zO0!W!b#OJ0F-t?e)^s)PQJ%+|rM(JX zSb5~*K{V4HD#~x@-ggg3{ygqM@ymWN({QIKE7(@OC*oe*G#^Ig{H?mRF9F= zK*Vl3RNe*ZrC%^k7I#zxK)rnTJteO2@-#kG=JAXD99%wP1OUsk4p9aFX7Xmb?gdpJ zFCUc%dLJ*(!%DooON&>H;*OD#QQYb49LN3EjL)c@4Eyi_!&Z|M5 z_y`Yo6z(L((KyBwSvhoJ{srdqdZg(di7o%17+6_ruec*F#=d=fQ)9rf?*8x(m_Z=7!wm z_a{h;i%QDUi#N4T@dGLvu3%pb$06?nqF_OYYcyJzH5 zkI1~*$35UE3{FO3aLzQbp;X!$iCL48nl*o>2pg)9y2zl@Z~?wF_|;--evPg9GfZsA zNOw*o#*vcabX2^Sak`D%1)KI;bRxz9ul8OPcW7MgJ&H4RPWRgT7bkF-=2WgG-J7_Y zCtdA3uf3WxY#3vp=0pxf%xNOe!l7LGgmI4IPEqHe-b!g$N9ih>sGGmgR?m(2&_1>h zYoF!g0P5{?pxdk$sqaAd_B(+3)K~9%V*G{J z?_NmiQ6IY)|6H)&y#i8?`hFstnwpHb+Pe|4YAmtFlbAE4S=v|4vfPkgVU62;V6(K> z!pdMK83lBM_0fH7%_gH&thu2ys%hEOIeny$^pRCezmeNZu=YfbM0@^Dq$*7Y}Mx1Oi+GLYa9~~VXZO=&fs7c2KzI&6q*X!=?E?zw{$-p?;64tKbPO5+7 zm3v$mwplu{MVrl!Vv7h0Paf4cVVnAEwRW}o2ak>{`{1T#(QpA&A5?(MzAyy}Tg@+w zL$I+2w?9gyFmB(ZfHQQ&td2a4Lm00;AX)xiABlsS<$rqZ3s=~_ej!c@*%#hi`h_$%j7>hs9Il5nHdZ(o=KjXw#kR8YTACUM=1pz${qu-Z!B!&6*$CHp3D^0I>o!D|f0I~}>#qaO2yB1;GG5qz z{!j{e;E(9VmdBQVEQuSI%HnnFZ<6NL?e$* zmAJ#dnz>;sSu$>IA>4XpQ|HLY%D!ebs}JPAIoH)@RV8MYSlLvah^4Dmp{m5JszkZg zr(P>HtMb=L4AxpdY$>(;1`1qOLs zUL{>#)$-kaD(`o=cptk~%RzNE5ywsiRcE7lqM89fZSZ&j0`G}-@7Ma8>+OJw;HhMbL=iu^@dix6S zXZeP7POY}4=2A*)NZPO1>dxyYkwxEnF{%(YluJM5#R!0~Zx96#HWrt5%#0tzrgRrl ziIL>TRlI;wO6iA`Qp&?jDgBNzrIdc*^B#<9;FU$M`9=Y>XY_uTb#&%(m;KjLNiSd3ihSud2=KKH0kSpaU~kGOqUJMQCFT~FUC`#!d^ForXDSANHyPPp%e+_u^1X(?l0dF7|N zGGACG%3^?SkUr+$Kz+ThxfgISij z^{$7TlTPZ*RMPl@3Wr?InRI?%wMNXU*$t(UG?GVg$HuKMo%DF=aSZAhUAdtR7_%{w zpOiteAtz5KAS;kVv?qzeupxKrj0tQeyEg{wCyN*a@`SCPB&sis=GSU1tuKvYtNxEN zEH!dMRu|HeP)aGyvQI@RrIgZ0g(-cN7&eSAAVDY&efmKBEYR2rq?9sczhzmgILk62 zK;ll{?1KPh*=H&mDK=Ey%wJ%fEPEJ$vg{*&VXShqNabc(&AN<^3C-(ZODCMDEdRtD z`VILav-~^a#Sg*qXHN<-=rmjkxd2COUGaKBtO5=pA|!{FFz6F-p8*IqltN*w65_c2 zzOwv`BklmrpI>d3D>1Xg&cHKBp(SCgLc`DyB4aQEQE6Q?%lHgMGEzmdoD^ow1lf?0 zl$Z()Yc5m!(>`Kd5ozVAti&8P;-0>Y#T|ai!bmvB0&GNI3bBL|Bz71=-moMhfrqHX zMr?FxY|#!1qHS;)0kp#MQSPJR!WP}YK5EyaM2t!?Q2Mkf(~MTC(G!J$%#lUg7p`#n zLL80Kj52MSx(*9a?X-(XbZvp9-g;L2xqiWSe zs4Cr2#vJWgYG_}rwS&Y~zkC`dAUzu75+W8s_=XWStSZh4!mLgPx8LSg&PFM>Ka{!c zEQJ6u*e~;i^|^vseNu>7{zXDaHsqH?dcv<5Pp|#<5=zt}OO!}6Fiz^3nYqeDUIFHP ztUl;{z~o3NuO!A{*ovP)KWQ6x^}aLmtn#b}#~YB(x29P>8+(Eb`^+#OEblA(GhDbWM5kNXRB@n4;W| zZz(~-J0Gdb_O*ei*IFdNcW)0u+!2ZB9g1;TU9!>v);0~%L-}f{?ToRQdE`S7?E`N_ z%tlvb2Rt6>p_KB^vSd@GO#=oz<@!JQ;HGI53^`rT~a zU2Ld7Noe>af^mm~F;BaX0)5}~9Q}MHUYjm05*YAkBnph3S8u$5X&1!5^c-7y%B3w{ z`R349Jbr6(5eFzPakmA!HVDzs&KM8(2g~$ z1DROrr96_Bnv6L58SronDy?mz&k4z3t0CG9_Bin_f9BGU&g1C09ToADGZRF z09t;ld)kfxPu^NI@LERKrW~oi+)t);o+Jx*9a7d|fdSN)l><^SC~}8SH+^lvwT?Df z!Aj~4tP4mi%1T;~oI4H&)XAmIr=9_CkNI$bGN&|Sp}|hUa-x3e5{=YFzMc^?vF2VS zt>bU13$t4j;eILMx1 zQ=z9FiWp#x=^TV=dP}}qeSwNY9k9uh_~OZ=2xPE>#g_P0Z6^jvhDe@xV#q=QbT2{~ z#HJf~(a1>vrzK)P(Detr<;LeNi7zj~+dEhmS7eU_>JE1pR&<~kcnrLU)teyLF(OHU`FpLhaI{KHj_SRb#Vjh;5Z&VzwJ;>b4g3`kwq_EJ zcAR2)Np&B=<-ZJ{UsezgpjFHP!q2nJrz~b!)q^}v4DO+R2yX{O3|l|D{AB?v{}#nv zAkA!OGLdX`J_<(92UmyNKlX*gHWX)WNX+ra>9dS)stuISkqo*>5IPf)>d>#-?`KgA z8o!4Rw|^J|WEMC`N|*Wcv;z{#M5ghk(*bo^qYVM6NJ~M9dGpa}QmlSMPMyLikgZNq z`OLc+6dIqv!Xd~4H$5-<5f4ZA{beVT;F4R1&a{n6RQMGzoy>6vUhPOHByAdISfq$U zyFhq^c;yz9a!C-uj7H^M0-u`HH?m~;*p_e zA)N9dWx+lhX-dkLq-PN!#VSoGd9{cDcvg!S_UdKNK@r~mg)p;%v`SKvftNFrk2V|W z^1=H#gFWE?2p~9=s>iiLQnD|JZhRqwOSLFGGvyy6u`U^yCb}WkfhuPzeu}J?yYiY+vl$7UU^H^iiLYZb`X!Up~Qu5j>Sx`QktJ zrU>+Ro>K$w-y?pi#tX%BZPOdzIp&X8Nkxi!G zGw+et4@JnhvTz1Ko|*h0B?Rd1coseA#PeVx@%fa(sVZxn#4Z^IQ_=6B@i}?AQA>&whkqJ>M9BM(T zg;ePu3c1p*f)3LsvHPe+TFqGg{dh*;j=|yTP6i6}q*d8XbPR=*Vbvo+)k?~xSZG*d zL#pn64NarIm2e^eAIT2fkTjN{yW-t5-5>WwAlRgJwE%x<@xq4;1LjMd(#V?*w$aD02$82|*aUEK%x;k!wV!Nn$04 zhi(MAKmd@utc)l&B>}bU=g3}51vb+t829Il>o&1x4egT%ou7S>&^LqX|`R1}Z=Xp@mNiif;T9jHf>qbn|DKWI?LxH{2MNuBY z;1d_H{;c1cAC7y9dj37ccJEQ4ffsOsYtSC$cZPBo(Q>emzcNqR`@>Nk2rRS z@NIv%X{#JGV8yXja_l>w$9pibUb|t+m@$eTk>u;qA$MVs8eQ{)c*eFCX*gpMsbv?CCJ)yp8GmOIdB-h)KpgeuCA1}VdY%3 z-Qo}!#)1xWgTMv3X(1+e&~z+jj+tyaPHc{!Sl~hi`}qI}y#7?p8_3z>tr?qpqY1ww zRuGkLZdWg^p4dvsz$>??D5u%L{#fgIJkeeB2WP7F7X9J{g^C;=(Fs`@Wigic>KJ4mI?++b#)S7ygWUxy4O6}V&` z5I7diDW9%qi8UOcl5{S(EVl?EWKhioAq<+(L#CZkU++icq*7YAPar@)&2n=x48PE% z(MySe2+IotHL3&enjX3vo<{D@oP{-9ME#3uCgp*jx~8t$qK<^(_L_p(5%%6Y-w33V z5S4+oUjsvX=t7DK!c>OK3+ZVhP{NdhsR%bWvFCC^_zjwzZwn^W2Ero{@YM z+6Djy>P7bDqvH#>_bueA;h$=SjC(#}##*4h3Ry&*E~B_CZsiMJ3TNaMKSuHxZO!0W zU0&4o6Du83*o?e`MqA@Fk5Ej_)nbsXmb>WOMN1K*^D4D!jaH6LNk)Qt5Fxq9bbUsU zkxf4sZTe8`dBP@TWIV~dzROqB^(&IC&f>0uurLQN+43bhXTg*)5+nbN_?^v9gW$;_ z0gvmdAH^wa3iIaGXIM=b->%soQFaKKjDFqqDIA`&OtB|$!ZoX?y=L}dG2PfNSZJQbPSs8>w5_R(xM6PY-=on` zHioKq#BB$>?(4o7!zqKi+S2ka)A{e#`6w*RU*Ob1N%y3!DwepFu*2Yla-9)-Oa3kO z>uF_l!1rgBhIAm{_P8PMjF@(lz=DdEZ<&Y|DW5?oi+zhK_ufNE$9=&o-I9Cg2KgFFRVt<5c*=hv_Gj4y55aem_W z+mo%ef5#92-GRsuCKv)xL!2D!ae>bf`>wRgoHVUpAR?fa z|6;(1&NY8pZH90^^{7xSzxxU{9ftCk3EKT%P9QXAwe|k}cQ8iF#(m~V9vbNUqf58Q zNfwlLd^*D5&mtUu!LGOqLOS&3sr0a5G6a>dv*hh5K~I5o`_w9Q0aV22(!M$Ju~Bd= z(BG6*@-Vx&=FqS|qR4zJjl+Q_&15E@jGi`+ldRf$8N0CUpek@A8Wh!YYi;XR2Gkr ze6*C3jE_PMql+ifN9Y6oit&yQ^3fZMjCj3#B{ z8z=_hR(AWXH`C{mbEu#)PcvSqNxum0@)(Eje~Tc2yB^tmRmRP&6$n;Lpv(S^Z?5Rp z{m)OJx$a!GcXgwfO8npJ?w8Sx4ARXA0_7t+Av-&iKEFf1FGPgX~JK! z3qBl3eecxEdn@Gq`X>)qA@etm9KC8ku&(WQ=<}Bd-o0468O>=|57=Mmnk#VoE*4I- zGJ-R|pkO(I^kS>^x};RhqSL5H`S>(8#y$>1t}d=#iJ8VhgO_SeLtpEEf~?0t7$OY> zbVCkM3h^z@yZh#EnI7dJR7dat4b`tgV0`LFh%y@}VGbShd4uLG>5{PWx;#G`&G&b0 zZ>jrGJ#}Tj0W-q49AC-pNlgq|8Y7=+Y@w%HM!N+#2Ie_9;oNF0f-^aKTnhrUEoCB;r*lasJ%?4H6K(#`BKEX_I6LHm(#CosuTtGI1S02&s6) zAr>{Bq!ygUTr5O%bxq~GyNY32v~I2ml8_E(^6xRkLw5Hcffe`l=-59jbq8JH)Ge*2_(bq z6I#}uU$iFJf_kQHF~Ti0DxLqKZ)cU2$%s3<-SefZ9R5txnSrat2=rI(yBA$r{`)TK?mv<>Y|PV`JXy%YXPKIB(Y5qIkB z_QSyM3X~jX^mm5v*Gq@`&}t*6#08eLtA-mFML*~_WJ~#Gy>`Ym6dt^~#Z^P!_Mjki z*F?DLkita?)jB`xZmfYJwZ@^a%CS6ZZ~R2y+j+dvM-(F>z;r|LC2C}SCqSO^<8BY_ zzgJliEL8fTb?F~Yfk`hqS(pGPn!W8+w%#-H-2N)b2@s&i+zBmniF7vH76mXlOARHi zrVt#n+LWD)K8qf3us;)A-r^a00+WHcXIXA6NG=avAwHYt+2>eX9G0(po&HsrIoJ`Wi^W&!1x42 ztBTre&0-h;!j!3(ewjRLFx_Yk(A)Y;TQZ4>3L?}w_ysOeD@^H9zj4VRo~U0b7Vqgc zb`Q(1Tr4?Eb1Sj8&%`V>^t_#G5ljgHPRQ>wyxU?X7NeDifRu?(aqx3r08{}k@1=-$ za273fmcyrTS$g`G$?&2KB}e)6b0MuifF>r-N}o^1Il`M2a?~cm_ZpjQblFZyvuKsk zNs+PvBs-03Zgee%zUv1!$f`8YiqSo?@$>fih$$R0Um@hAx-Km1?1yPYPSzPl2mL1p z8QsrqkSbhPeG^+6zW=j40N5DOEr~O(&u$RY6);l7Fo-_$ERd@1Dq`XD7#f>Q+9VW_ zS%;NgK=up%-Kq@P)?2wkTYtB5lhb93l9OA<*EmLP7jYgWGzBRDvkKALWKy`LtmDNV z`YjKC?&nGu@D>d8MFh^-lXY!wBoCtG<|>?Ov++fwuQ0(+y>6Vsb=vZQ%Lr&}&NE&h z9{^50Fo)iD8vTX)6Yc==CY1V}!S|kBsVl!t?`9d=x0hhoIDaIy2rRrmOvOD}x3g%M zAUJLJ5FdYs&PBB%V_PJ1ja?XT1B=mMk#`Owe9Id<{ey8@jTtY?-|WUXrTQ&N}KJSgH6C4!)8P+C021DNR&*D zHqi00)7Di?Hwrvdn!r{EflGX!&*@Luk!T#X(SW)6CK=NU5`Gs`{jao%HC#+yRipcrdGJ^KX$^^PLrz zeangu65{cK%V>P%>YJz+gyaRxBF?X~DsDQp1(ir9jAnEoJBZO=VKMMRQ&tN8e zjvw5E3#c@mlAyjWGLLy;@b*?GMA>$r_Z*+kFkFgevr#5#D^R8D22%T@N3A|DQdN#S zUgqjkH6N&JOGCJ0pt_fiz$<50;l`x9K9TfDs8WdpD$Y-6hXa6a^VTPf8S z)!WY4R?lMwYhuOf$@b{QMk$4Cf?5vXB`H`Xa}0fL)VD6Kd$#JprR0vbRm-fIDyFUT zxhz{J3w_WW7%AKsTj27V>es-DGN3$RI!9{w&O3St^Xj@yIQ_UdGS^%a!*qx%=ES_R ze*{=wWPPUqfgQ^&+u+vjNm@72B%1KR2ncK{-wNMw$YkjG^c@5lo@vI*o zB24PHDgs?S2XU#p2895`8brgug8+hf}?}o$gz5 z&7kR4hmgBQI9o|7%DY~jU3*B_ULS4jK?Pdy_j?pMjR1RPPK^nQns|$yS#0bziATk7 zy;gE=V6)diJ%HOO@92d;uL9R+uQ)HdD>m>QPN{^6{;%8Fo8vBn+Km`Jkfvv^mv&s_ z4@Z`FU#yKd{IgfXz*pjqapr{8Uf=axYtTPYH+M*hww~H+SRhMKf@-fZ!tKa}aKUIW zsTgdBL^w*vRDWnhf~yKZ?n2%FTN-CA2{QM|kk`V~EUN8|a4{zz>HniI!p#6f`~T=A z=b-K;-}Qi5?mXqs^w!ad**xz0Z*hlH&_B3WDAbpX2%r66cYIw@%6;Z> zcHzcJ27XZ)!6B);Gd;oZtFz$In+2|tbfks|)NfpEJ6wZ{0$Lk1^oIOetTub~L8Hxu zae-lJM#Wh|c2eO{Z78|D2(Hr%X$^tC&s{}9AnG|tj_|rFPvV^hHSfIDDz~m)LJX8a zZ9RTIW1q*425u@rbpf`SEn_KW>;n_zABs}rPzN}BO|%^YhWv(?}> zr|)ue#`*B}G_cB6$6`%0D{pzbR<)dNOyK$=16+!vEPL8$1g8?sTudS`fU8-rIXwHn zo24SysyB-GV!sP`c5fu|XHByGwkntsILS%7EuG8ABfv{U$JUgXN#*5Lz*FY8&Qyq6 zq@w9iAReJwDDVlN&*^+U%#mo^70u)D`Dq}gx=O-_vKyvyXpp>t5kNHi1;8^C(L6NOwZ!IQqS(2zma3U}QLHTlTX7>7}h69BXO6A(Zd{|iWHPiCK#S{bi-)rvh5BzZI=lIJHUJ=0F4za zqWSk+)qs7&%7VYct^wzn8(1K>d#K&L1>e)fI4WHfpK(qrF_m00s-3u|G1EtWEm=@` z)uA73f4a_`L)-_h(WexOw^T}K%Xg#oj8zzlDQsC~iCCN{>7&IK=gp&D7%L=n-F*C( zzes#-s<)d%Fj3St!OMea zVNk}bJ=C5z;p&Q?b}(YhP|r-j`vG1muc6^3Y3H#p(5O@Tkw@s&j5$l|AG()n5Dh}E?1Q;_7zi%5MyBM8IM#0U=x;-rPZ5}q~bZwHoE~3@X z+#fhi-QR8kW%fniFM3#hZ~^I_$DFDl#=D)N=*F~&70;#nR5`mL0m3e|dyluu?zuDe zfWZArjX((sknTb7tZ%3t>*4&d0mIMm(J~ANsFCb^HlqkYF{`@fut`e!v`n+V@K_s1 zeYR?;pv|x4@&Y?U#o6;E$9h%PNtqy^(v|emoKL2cm3!VWqRywqe*KSjM{tH)tQ-`^ zGw779un)O+jVfM+bx|?HC-)4!7sCxiGm*8-yS(#t@3L{xKdfAqf~|&WLHnt(HCj8X zw}xiEm4#P|=~Q+d$BZRYIQ6UWYs~`v)37}1_F2Ju#y{-JwkdU$eKh{Z!z znaR{Ibb$u>?uj>!ytvb}Iza6{cRvF@$nw`nDhZ#+PGpxWEWg2Pcp zuF~ShO4F%OG}cj9V-i5oV%SpPkR;^hsIeaLd{iHO$JGR&7DpI4q0{#rI^r^S5KcHX z21T+y%mgyZs}Rfau>0fsDa<-<0#J@nPIhoD83 zVQ$jdhN;e6h8bPFfw*v&sb<652%kfzg!H5RWh6p}OjrmQp_=CJk`HHsF*aMGB6T}h z`C|gDg5!?~yxl3%hL%jDBaIiE2pFiv3AK^K!SP6=DkA~!YvUu5MIs7f4!hX$RZk3* zWF}OSCxVx$LbnH#$WRlR$;^7RkclNUj>QVnuGTD~*+vm@&-x|au`!&3&(^Mt^y?+w zBlaZziG>X);+&0eoDPJo#EwB{ad;zxXB^b4+6?2G`;$!wM7HPFLNH+lAJDyf5cnb8 z5y7`s8P9@QSYc1VDh1}TLWH$4bV@DXpndYbodrv`-pFd3Q_M1Q`e5F78S<+T$!=L8 zIpedg~c6)8#vI+%N4o>vcN6gYDL~e#{bIOiWE3 z4SdTde?JMjKhl#9wFg{ajs#MAUj+cWNKHb_lF$9w_`)%)NS5Q& zy7fZMN=>{$dUb$*`XDE)#^WQN0geO`2(pN>yx)+{ENp3;%K#-yLW#K6pCW3e{*JqK z$r@G5>UWl}BQ;`x{WVfl5>OwGm%HT?Ly9vFx9;91LuTZX}qBHPB=iK!qvLnmS zi^14^(xEsOQ4=-2rCJ%uaa6(0XKcYxMmg@S)u zOLp~Xjx$w#Oh;7r<2zX1*Yfx{3w1e(z>Wk{(-+=Rq$Q5t3tb)Iz?hftvAK_vZEX%r z%k?SnkU|=i9`rOCMr%Wu0Bz2$dlKPS$eKHInSwm+0>E?FM^)UB2ADq}m!crJ?_AJw z|AU0m&Tuw0AOAn-hoN^k4|eZNj2dV(hclK-8WzZ~IWlS9ZH<+&M6lN)ZOHEg3u1egPmR%l=&B7NEH)Zh$Q_46tB>5fz)zlHZ#`DrRYpqmbKc zYmRPkFe+cpEphDh3qsKYW~pa8PntZpWMY5yBxX5ecjQ~?n1j5aYUbLBMh2%UcXR2z zkl3{foX0}m;cITgp~VKEk3fX4npuUh#Q2iiH3tk*q9g9r9?|XsH$SjY-(S~-FUUZ~ z6QREk>_dQw;IEMqI_1gw_gJQ5BM$R64SEu3P&xWk_^l?ioKiQlD)nSmi%!u-ZMUTX zsE%k(N%jyY#V{!_+!{n+`o2;5YI8Ufk8+rQDJ)FVj_umbH0rULO!Qjbb$g5qp zAW#3imE5oqI1UI|!e(|Q;z{eM!SFxGzF0+xWNa5B!kTr-e$rpW0VPDijVm~o($^Gl zSUlk)Q<^9f^T)o^lFeHc4#HTmYCtra9VUPh1f*Re!^EI(2s@1hYXy|C_Ac*LRAA}y z`*3{0TO1*|Ghjzr_#EM*{IVGl&YM0H-!t7Np zKNTmVTi`Prk~CC}AlJRs?|<)+V;fmyE5fDk692q6j>!6koA3t%{g%hEyZ79^ATNc4 z&ooF+9~;`vaC$$7!uE*C)Ek+V2-|25-|T2bKwiSu=DfvchL-^XQ0d~z!Ei~(Og?_r zo^6Ib4=)vQwd2>>Av?_#i&iD{ZA2}Sm`a!ak6f|$DeJlJumwugSbvNUs;>G{f*1QA zwG&T@>Gq&bGOt{F)f-d@lMISF0)kOgm5>h*VMa*--79a8Px$5`0ZEevU3}(rTl|^9d#Koj^ zO%}cHSkDOJ#Y6jttZZSAfl#VMzxEF_!IO~w2uZPT$I9Jbiy0eu$^ zJFa6e={VBW4<9gaq*ys`xkS*(wr)oMWxcg*3DwY;h`GCfMAtDxT=1a5ZHVIH5UYNt zDI^ITT_ZyFr9v$MntwiMuUmnObzDh$Zz@(_=+a!8Cs@I74`e~{r?;^6HiqankN z@hW_3qP+vlXT2)H4Gih8F&DDOH-9KgHtWgiWT-Wq+)7l=5$ctVid0yOwWqVkrPq3O zigFW}Ae#q5qRxOUFO{|$vl>y1rrbth@W?LIcOjQz6kRUtEM))Y=ftnR;6YJF>*>4G zFX0{HpY;jp(nZ{vLgW`uUqzblv0s5K9Zc70KG+S}9W7btMd~Y4K z!k-(%z6VFmsefabK93|;xx>|=jD<8gcHB+=K}(TgVUI^qS`ac65i@Wgn4z(GLhv!+x?jAM+LiJPgk`i3Aemiz^*;>W+t3klZ3G9y78;awvP7!2ths1C*7!YnwE zq4Fqhm)xiuWCmj$^B#sDIesOb95$i+WiY!)EX>A{Ox-Ri$nU2l+RMO0gPCkzd}ZLf zJ-MabfJ%N?n&dmaIJlfep|++3;=X{+s`J)4XiPT6s8dRw|3ir>eUSp za|Q?nXDQN@h{pk^$`VGm;VV2ELqtb(1sEe@njed1d>56Dlo=JL^a3IC9A`QYK!o-A zPpS{>(nCYj1$fUrdAAG&iXh4($Qu`|y%?#9qW5$HqsmVBx;vlCvg6&=ey0u0XWlV(7Z;6Sls<{+WsRCkV_EViW9Ylv4-?O_?1eM@2+W0f@hxTyz{>XaQM{_jD=v&+z$S+gOPHU0I zMnK$97>FDxtmhzf}@Z203u7vP}j~8D9YVf?&~Uz=Ae_R#v%xY;q*gacNTSf3$3cZ zV^TvTP*2q9mYmRNW}!9-f%*ul1HDNYO}P z)%1-HU`F=%7}wHuKocvIjC)F8l0P!;s6Rqv`e7(fygjO6O#Akw6R4K2b*x8yWm3Hi z6QN_iHoHh94#FK%OBLe}p*QK{8_!8^l>n2alB0h*B&yP84oTMNJF(AXbNXL^Y4Y4H z9acI`e;nlFnA5yB!rs>H;JgxkE4Wa|by!J99Jh2O(h&~OMP)1`P%IsA$$DtkE%t77 zcxpK|M4bcMi(Lg>y-^3*N_CIYXTLr{@nz#}=?j8& zXy#Dwo+1{f0&+l1(0=w!d`1vLSwc%Wu;B^FPL*KEo+t@F;n#7IN_;CF zNON5ROCu>y0WC+=vF=Dci{H{|pJ59CnjBr7s@~QTFMa(wwmPqGFM4E(E743^!LIWQ zHvsv%`;Y|1eC5WcwW@ei{j^Y;GyN!+;S1`k3Av(j4;aE5j5IJKv?b9eq<>K5(g#FH zAJo8+fU?M#WJZ0>hwxzNtV$#OQh^^eE3P#hlv=ai}>Lh-DeTEuCN z61q`JBb^w(`ic zh*Q94I6QM-)f;p!_#Te32!qFVtAszGa`egQigxjTxg<%DAmGG&^r(k%t_dWy6^oO z1iym%FDayy51112s)J|Y3?~hLSJZ=#rvkY~$%_PG9cCzuk?b8_Pj!m6Q`2&kitNAN zMLX_%FC<+0J8NJF*l%0%pxzny>MOj}%7e_c<;$00ziugNZF^(sPNYiK##jc!!UsOu z>&$#1X%ZY|Nxj@+ARr}*lH$)DvXHXKGI0uWE(Mc|IfJar6|I&iujJe|BNyD_gXkO6 zldE63^1Z#*3Z6W}PQB(DL4H+9Y;e~C6QYIT3hWmwP>s{csU-n_D`DkI;OzHU^+7g4 zHz>z$*AQI$Oz8}^d69knuRedjMlCY_jz2UBy*fUG+X`-IfBj|On#BKh)<)4*h(HCk zBtx23K=RR^@pTy{xd*g4c`K`W6eOGwnk)apP;hh>E6{YsmvRkfobI!^56v zVkcwWL7$7nX5+NCd603KrS9`L9q;!JL6S5dIOr~Oksz(Q`QJ?2Ocq$hv$-!J2JGuM z#{ue_RbwF%jbI-pv;s-9i^Ny7T9dG3c!GdHmlRG76^=O!Vnt98DM}U>(1;i2TA+)f zr6Fg$MBfn(jIp1YbB*IY>Vy_s>R~s5$!6ozg(QpB=Y%3|6cD+5akBIe66)Uy>y0V!powT*{GDfg9Po0EZU=iaMASB z>aSoJ;{Yw!e!J;qDtq9^CEj^V7f!&Ovy*(0>9?vL@t&+52$2#+`<<=NQZ&aAZ=;Rulk@t<11qoFAaiGd#1UUMI~!2|#x$FKxn9E{ z!c}X-1NJ&Y0PmT=Och^{Y{;Mzrn>S$0#{Xuk$ht~dM}{)A{8OD(2Rp=p{9NSJGRO4Y9XLS%A!-bP ze1(fxj{$lI60LXdS_TT?^*~?80WArtYPKy;veB|MUi7C>w4`wT_R>hbDub8nd)qWKOy9AEm91cnHMog)Ld0`GT` zJN-|SRiL+a1a}`~5&{WbJ1cN4J!k?34iU#5z!90`Y0U7o- zzXSC+hW~9g#)s>sMiMV_vr-^lr%$WjlLw7WqJ-9-y2YrLv+Bx0_}y9-y0+HX`?V(S zt9=7*AKu8QROqN&aqEA;+=jIjl~XvBt&8Hug8B@p_hfNnwl4OGmLZq>RVENzr-^Am zF{C)&EG;MgyChzCOV?isvlN3wuw=1)uJ%!(fPMfBeh0Uw11!zXr2xak9xF4#QWft+ z6gf2_k9BqpRn(^|rnF6?BEb`w8_8&cX%jWt-JOPDg>p}XNl<+A!rrvBP$mV*0*#S8-;@-%=i7N-mob}q|}5i1@h+>BP-u&_Qv>Sp;q zSrqKnS9UNVzVY_pOBj%Cmq`es?+u+NFu6g*)=I8~ae2**Q{QV(@6*@gE53dm_Ov2B zh(GyDik9{SIYi?%XQ!U|V^sh%>O=u@>_KF&d6#xpn}(eT9=Nj-1HY6YsbbtH z-p{IOiZh>}a*;0jxg?nVfTDUoxWYg)%GSq#=O0L6+LF$W$RUVTXKt>g;YYsGj_Kk7 zBvC|2O8*CHLP78V#}s0PX5ye4RX3B^%&(9@w_BX=VgM)tZi_MoIylsVtG?lksT2Z* z19Csm-QUJHDi4*ObjF%SqvV zBP2b`!CD6YEq%xQ8iy3_9j8Xk7rZGar{9U~{Y;3Y{*=qn8z^UcH$=50soUY^f~5{p zDons~ZAMO$yCM{)8d|?KvYo2&>G250Pi`~>kjXUka~Qx6xtk^9$(Du7@gu;}$DD#X zhslx!(k1Z6jd9xT(_^HY#w$9+Hsofj0V!VHnXyPm7x@KTPNB_9`3YB@*@3gDOeM`~h{OZ^4t)*?nnpl?$73MaTn!XK_Q`1%bdoMc z8qX~+%cmyP(+mFzlY{c$r2wv9s?|O<%IFz|`$xuN-KI-^hode^1vXa(3SI~JGN#8w zXuCoI`}k0?-A`c!ZPR$A9GuP>4NK)N+!g)SR3@6stJUQiiv)#sDy2TOdKX zgZZw12UH)0n*kA>hx@Z5%_bDP2hu<}a%f88g>}yoSxWz}xC0kJ2!*Y`iP+GQJV^Nf zGF;RjBT-LEubHxYkGg)7G9J$C5Cp5*2p7Fk=B={MJV0lXF7sKh(VFWv!8F#$xy%Xx z5;@?~gV{t#&eelDWxQVDzTl+yAxVeJll;+m3tB=_x!~_k9f(zTS=&VMqpfPFXXqp()Q+ zc*Z1m0?Sb&iofxn=xCj~d94T=ahGB~(*$miPTUX(Lx=wTN=u%S}i9yHXd8oH8k;EF~#Z&;Kg|xr;L%G0fsz{NH!45JV#- zf@cK&R69_LtORnxDc0IHqA(#fjQ}-A`t_l-07}DUcHW-oUm$gIupk{9NYnslPh*<_blM9Lz;g7g(*Tvf4FK_q{^!yPC#y&R|J52Ry)ZY1djW(NfTIK5Q~Clw z^87=;9Gq^I8^4ZXP}C)F@ie z#!dSGt9@BO98@fPkq!OnL6cg6rYeEGH2WvB-k|?J9hT(V;ML&*(ksAx6B;6qXwwpI_36{^U2lLccu5e* zhk*3lZldU^J#GE}w)lCT?4?72XOG$!v4|sLIBq1^meXiS4+c_M%a0#v9`8pI?}0N7 zgHsU@)dRNI`-4eB!=MBJ4nLjs)&%hdM1Kg7dH~$>_Vjv)ZsIw;BGt`n@Y1aloJj~; zZBG6?5h7||7ndSW-i`BeA3ec^+8!!2c;sR4v?ga`Iir6XJ@pk0;S)?hz!@W9aa^@_ zrErS}+h7>AU*$9TpBOkq{^JyQmu!O`;jU6qsrYwqNbmEZ{)0Jh=If9M3)zSM@l-%K z*|10xR$!R`1o`1@7AnxtS$t5&aiL81s8+ra9(OS)Q_J}W&x$mv9#MUX0V!Hhhk^`B zjr6xE%FLnxVBR0bnkzogdZKo+GvPE?#Timz6LV%sbqwGVePPg+gP{tc3*7*6RU6=v zQONrxthf9@^e4?vAN(-~H9^Cyoi2#XbHBlfs*E`icjzumC?n z%je$`>+lfppg_@E(ES2uZ3wblcUp0zSy9&AjfWKH1B*TC=^IeP*k|hT5-;`O&Ek2P z9{kQoW+&Q}2>X>?J)jqg^ycB@wkFwkDD@9Dv6`f*2wkr3B3QyIqXZPtALEeM= zn6B7+Z4@H1uKI(NVuLJ8y~`#28Z5Ogm-TD3)QzUqd+-lD!77*0ee|M}waB717AP%d zvPTw?xLGTY2a-i%W2v*6)WM~`Ac*MvLzNo84l#N?x~0gIarOU(>vgrVEm-2eZ2m;mbFyi!22kbSm4P5UpzF45 z&cvY)?~llo4(8oDz!?cQ2cso`sOAE<-P}d&3J3Zd60G#=T@Voj;c45t#*P z@05$duGUC)+QV*qcgASYL06LA)5*V->Ce{-HAf30Tv&I0E$g!2w!?RjYU4E9pW5Ui zbi7QSKg|W*v6)ef!-eJaHgz4B_nVpvYhwv$Cxra^W%rq_m3zLe3R_SqEH8m-Cw~Ni zcZCF>zeLCk(2UY$uE}g?PFhDVXUxXD=Y8V_%Md&$Lih)b^3~ux+Wjfs#|)y3`aSh^ zc0)()j3l|vWraOfUfLwGfhk1MIn@8kGp5$~ftvDa?m=p*lcq*WD!~d;4D~RC7nWl$ zxNsn97iRTj=D_B#n+R>b(n|*N6DCJb%f>uYhO(qnV_`P*AAB<~1WwHv1)>VKQ z-RE41#MWKIUcabr2XOISX+IMYz_0k8TN56ePJY`sK$)p=;!Cyanem!&-nUq_4C5k3 zSVD}eNz7s%VcNY)EMn#=ph$xWne_tajcu{E%nn*0-Gzsj8kf5fC#&p1&C#_f_gcN0bmGA>;_YYYQs>a{d`8U?1(3MU3G zzkg40*%>2g>S0r)@E3$71WvKxbUVg~B^!aG#NFP<#M?K!s7YFvcdGTX*D`ve{Tdx$ zNZrlX9CSDd2XcR zr15c&>5Je&HO9ukiN@meTI}UhGYcQf925#uUN~}ngQ^f)I-W?!DsdDtef(==}VZ$wNpNn5Wowd#`8!}RE;o;B~iTtf%MBP-EA;#M;}{VV8RF}a%;7zuOc z2Fg=GUIzi#$H5go<2c>_a-vVMkFDvAi>!mZQ9 zNOM5QWt&*r<(drrkcE?b>x9-&`-HGJz7m62lT?JhD@C2D^;3oInbP|Z1ZD{Oqr$ES zm%w*(!@2n!@u%Ql10yOnpIEL))EkA(-rDQUskAnLrLuyS)jAO}$cSd|>QE;gaci09 z_wgWxo-xb)H>*U|c3n6!xYHgy>rAsvSNXJ*WZ{uHQ~SyV)AwLybxhM&K@6luHIPWd zA$JvZY+TtJ4sa;(*>Q!nLJbG#JyI8bU$-eQBHM;!b;bni!Ye#mrm)9-%U3y~9m+NhVzSX!w8HCW6w zbx)X^HKer=+1mXP&8%*Gg$Nlnnu8wl&1f2Je$2kTceb)LO8wS*Pd!K%H_)o?&VM7Y4YX$SbCKhY8*K!L2*LA5G(fJC4dXT6` z;r|;eMfANt+~R9qVqU;si&9fk-qnudzUaRsC9{(-5&|c_YFM81L-t9qumkkKw;?xpv9|=^KI%WdZRyN^Z0NO? zZOZ;d0+OubhsRR5Zc&lH1)=Xy_Yg;+@FV$8-IA4Kc{5}(SHLMUd=j06j{12@gF}O3 zbEnSuiCRcR2eo`m4IDj$T&zJU+)R9VdL@9NAI!y}R}ue0J$Y*>;GK00W@&SkYXfsN z&v-QY#YV5b-a7@e~X-RU$P3*E2I4t_PE%ayu`B#QQ6PzQe40{ z6~CCjC9aoMmHc(Pr@ia?;j%KQ)xei|?hpP5S}NQ?^!DNc@UO&yY~bVhy^fGq7~>>u znfzKd_@6FxEx6DJ7%_J~W+Hw}s+UgN& znTKW)>KZpQg%;)5@99TE6$KR6&v{HWK7LN)4c1UGoq_H}t7}~pe%{1(`aWMlE~wc( zI8Yv+yBva!F5*D#T(1UPd^F?g5l)}QGJzpadg8t6I9OR<^IKXD&MghxJ0w#aSP0(K zAVbcdYp-?-Ue|ca)qpWt{CQj}if<25Bt`c{ma;ZE1H)-b@?X0&Iq z^3Me5M&6q;Sq~S2t6~|9 zCf8;Wk@Qz9i6LoyM~Q&HVZEIA?rX`)WO3W0XBwcBy#b%7_+qb`%3mf0;-#a2H4~pc zvZ49gp$~wm&5=?a45{b7+)x^$C7RC!WjIhBEl@X&17aUjvf>K8J8d=@qn=oo)o6o- zqY+WAGJu8tD)-HR3ZQAAy$Cg#dK8I!I^yLaU={(ycM!i5q_N+FOvvK4PUN7r2gMv7 zZD|J*u^P_NKJp6^3!cgwKg+|8tJFG)Y#u_0navJd8y*TWsaEW+J{19*zlq4F5;PIC zw~{tk=e&#RQ3%15SfHj7uh@E0<%b9ow$7cnc%nFGlkOOhnCDfkAG*BfBehdwn7rUs zcVAreDnQ9DQQPpVbU**~??w;e)zOvk+#9+|FNn79BFePl)3WAS7c3;VmFd{g@mNy> zX^E8Dno0bdQKL7YT@53{n#cuVHaoOuB0Qnegi-@su>{m4& zKp*_Dx;k4R_D+En=tUz+=b{24%;8!tZPNwGircL|C?4)s%pDZ21hkTWwoV;MGCGDk zX%oAb15OyI2LcV&UJGd_e-fgPyJF1w7!VxJl(y($Q_7g3S*Md?z>db+&p8hhlDtLY zZ6=Ou@^?-U`6*tfUk3SB1iB=#TV`y>+di`xE(<0Qh8gzeOaVq9xWyZ!BLe0uxns;f zzV#O4i#hT?hu9BWgQyK@GeAlM*zla!Kf_EiPaEc0Zqhtkr#j7c=pXDdIa{1G z!H1YJkyc}NC*CGlPFF7pA)J8)LcjBQfgKVw9$KP#GhfCP>}m=>UrQ6K#Ql6wPcJS; zIaSIo&I<*27AT39v#U_SpA92g%fS|idwywBB3(|eNUaz~(Sl8&Ccu7W9zficPE;5u zV1O$#>&#FV`C3cT=HK{n`O_q56M+XYn<-ny`%6*ayT= z2Qvo(+|(|k1RRN!&nPxlaertkbZQ`!4X`CZpQostMq@*^rQovp1h#N4QwEFs?YK!n zPEh^`#8r#*{@xT+$2ggz(@)v}%`NPMb0jKsDnP8Z4?{?yoQE=lJ5&ut7g8?N#jy{z z@D^@C4gz%X2)g$<{|0`md_-t?EityfPzwEb`W1NY1e#&ym7kJxExvZO7Te8f^Dq(3 z4Wx;a;g&fZC|(-~(5P+%Mt0U24kl#ZmK~D5e!BAJZL01djKiOaI)jy`5;21qfQ6Lr z&|r(I7@2Y7h#HDY0aOOf?GMdFg9Q&H8I0ZcMiRjK)9gqrl!U~p@9yB<`FrloQv%4$cIXo9A^J~-{hQ6+S-WP5ZnU$94y zKTJ~yKJU_dOSfNizl+7!mjQWW2t2dhc1Kl_w2TQ1-{}QSe9nAH>G6rq47uNcB z3U0m$I3shkY8}Xuf9A&Q>H)Epfku$*8UT0iUuW$W+;G@VT^vC^oBOb)ksQQ%JVK`o z$_G4~f8Ivf9Qg48U*GxWi}+-7+T#5DikN$2FKWG6tzSj#J27Ev#BfsXZ>1Fv$rZhC zs&Uh`e{2?&k8yJp_-4w!DIiaIRWQ+Jdf&3yvQK?;{@LYBK76v$?{5{{%-HMEyMLp6 zjjxv4Ck~1)!?*e@hOnl-EAUOQ^9^AfF8JKrH`(J}eIOM4nMD`Y$-@n4;itdK2D5#E z+PKECZS~8<%D_y=u=O?cVt4fR!N&pJe3YdJv%LBK zvEKDz7MO7kGvv3Poy>X(ESPAUjF|Ksbsxyr<7<-5xpu-Mm6SKGQd=RAN2XGY$fK)u zR!c#PU+AQjcw?Nz={l)esgl=mnpuOhW-k4kws;|@Fuy$Dte=q~8fmy?+s_hTyp&25 zp^9rtLStPV^?stVVhKGo!pzxKPOQSTrclquUmdyXq|(+n$nv8xLNP*9v~t5Om8py2 zKr?JV>f7tv>YIk&E9<|#Xu_VT=Sfd`DSt1MJa$R%aI;!6yTWgFZsH227Ef6xxjfz zlXFJ5q(mDM^;CQEhl6;*mHH9WM>8>T_X4}2W+}Ow_wag)W#q;;E$RIv!%TpFN~911 ztW(D10u#6=dZ?E!nv*NK8H+}+>Bq|EzUJ9shgJp~Xq;!8$jqDWhT0q8?com58Ia~$ z1my!r^9H2(7bww@!G!a=nH4B1ri@l2Oqi6!Z@(oc?~<1!KvNRq4^NPg@P>rqLAJy8 zXj5D+1)H^Ob!~R?`#Y5{jQ-oUuZt1(VTDuEd@Att#@p5LvY131tUHCcTMCON?Rn+L z7?Wcr>OmJnh74sa)%STAei;5IdsvTaY9b=ixN2jtfGeDM)7c~PveX)8Pcvpz=wU_~ zkhq9C(B^M@gd~~=Z~V{2eHNIzKe{W5``+YZ->`ly}rQ zG!xb&?vN#CMA>&IfVfW3;exM@bN|%g?}`iHq)DS3)zvJ*vinLv?VUEaWsr5a5jAbi z@X8r0x`*{w)VG~k%1cHfSL6xKjr0c}8UBb#MLS6_t1 zAz@WfN?)Y3D~$7%ODNDrF<4(;2Iq)fc7d$+7%pvO%(~6&mNXb7w9`cs&cpbK-4rEE zS$`59l<8jEuRo|Otdp**Ps`~ssJP1+<2)#uMCYh^iCjVUslRb>aIk1GSOQ@t4i}ez zAS*NFXA$dlD4jbN`bH=u)Q^FTtxXCNuQ|61dwaUk#aV;C03H)JwOB{R7On`Mw z=f1G8lcykDGaoBviP)*l~qag(MxqfH2ZH5CQ#AEXL4%c;8LFE)s)03<6f;9VWOzrXc{G zF`KR%&Dg9Qzqu2-z}p%oM!VObJb`x-T<8R4k`Lv$_qe-nAOdJ5K`+B@GnQTIw{Nrk zDg)WradfZoj&{~b-g~Rq*N*p1xzd9K+pu;<1v~<&L5XFHn3CW+4Q8?#ouIGG$)M7Og?GU@M~&(_|tD+Tf>XD(j29rCHh5=KEw zM4mLclFuc{N?R++utCXdR5fGrjaYQ&p`^b34R<2rw^;|jf(GHmQx+8xF8laRe<4*A zmis(zgl2ds!eV5+`+-T$E8thDto4RUsOwqPtyQxZQKtstkXv_8VzcfIc%9(W+w0?w zx-X)-<-JOWtl8Yt3X)jj6JMN|l22NMJwW%!qqw3PYB1{s(ev*usPz7;TWd@ACXUf8 zwDaw#o6|rJ?Ph^AHqNGMma~)73?A&zy)b8h^`x6EUgO;^F{~-r%3`yP@gbgAM^EJ% z7HAXQJ-SK9*umi_V{jFtXisOA%UyQ-zY_=9P}d`T-&@Nb_|-EV)ZL})hc$|hmpz=% zH8PdB@45i}tijudv16K{UjF0w538sL?@w9Z*Zxr-f{Gh?gVY|b&(|mATIk;e9(auI3W7xCN`ascmJ#Yxl`Pg{kg(7%{_H)GS061_KH9wJ5X)`sN zYVA~UW%D;H+`q8`71kO15bga3XnmE&R!87faTSgAUmETtHl~w@^$#XcEC>9&sr^P( zW*g$B4$F3kj9x**Bx5i3)S>Gj&r;hG1EjsY`zyD;Zzc0wo-eN*(uW@Itta(Ml*!{k z4$C7!b{Ik*-|QW2(IH{i6nCOkmS=r`VYcnHg_e5UEp|s~uJ}uPI6u9*op$OSY|sAO z{fzHOFMrk7@=RVq*Go;Q;@5Jd;A^qhs*!u^&7jrsSGG(^D@9|>e0tgaF^}bL{j%!GZVg&zAO96ntb`4YW z1ty(kQ}=BeutWUh937mvj|k5r0+6E~`TcG?@?{i>%(8fIez1vzM;{pyrW>t5OpVhk z-;*1yD}I(rK0sn`etr)by^ zOL4LMx~vCST!ZX~tleo1NtDx?9K0smw=tnQTJ3!N6GzNWWfBR5%qx{oK)6ullIhYg z6H;*m`n2?nbPUW)UgBY(;vQ5%9N0RP!v>5Bxr zOF}2Su5Y9@bP~F>;fMPfljFxjn}_lIFY~8G_K!b?-ecC?q!UN>zQa@rsW)JSW-`Zs zVVgioSL;OGKHl`_#Y_lCx>ITG8PmGr)TSi$1!--m&BInE!%vK$O2t0H_C^wOCOV&Z z0}L0Bpa=v;C_%wQK#s1!YH}3=qfdM~V-pg{^0|l%+&a3?v48(g>nLH6I~+e*pfJKX zZ=j~~D}hEy0*K|}SY+PnHvwfU5_%~>0aaa>d)1Dz-9x%&Cuy>Elv8ew;yRW{z<6V- zfD(a*lp74w@zB)0&}HCZ4cZ~q34|9qiia-?s-;kuCBEIJ&HR(--=WDLqKP^(aCMRpI2kVo*TE;AwW_p;T z4;4(LQQ4f;m=nAB*+3WHZu159$zts`dF&-MtOZKSsq?77@%H>2x|4BO*gxdQx=ICI z>g8ub$5V;YT;sst(iMeC3xTPup<5X2at_g8{Uvf+)?4aNd_6%3N{O;Z?1#^9nixnn`Fyy>*$c?knEuE8z|kr%olNzfnANk%-)Hi6yPFA=kk8fQA(w zI5_qU135Sl$Cz+4r!|(oyK~()R`H? z)yPmN-XdopYP(q+7Ps~0=$Tf*DaFj5Wp;7Hpkn?rdGZGaTujCH!Z@*?N+5i`(h_Ui^i)`scoz1?ZBYk2>ZlW2JUq}f$;0^gNm%ejR9uFh(wqXyXR8~2B`4mBfws{Ws9 zGivFC{-H+~@r3>*&Z$4uGk9Mt+~mNmUe|uT{UR$bXbkXqfnYrp~Gn z3w%$Es{#F#=T)%?d|!+&e;w8a)I9$*q0;y_Y5=bH_0tWd8koJ&U*o#V0{paNYWakD z?9Q%Z@v|sS>|b|UY#K_hcUmGfzi*2s;%7;mQbP$fehS2DDsK-P?P@UI?zF^f3I+IK zPpx1C_%FxQNPe`OUI6*|U?f#h3-HUFUcmm8j4y+JzEf1 z9zP$|F*Q6tpOi3@)d)huKl^Ls2cr`90JmQP-{a0tC!+%Cx~_fk{?EG8cZYehH7t9h z0=_j2KWVOR?Ea{Le+|t~K2KNfrwxeSuqO`AQB!%ofszh#Z($qXx7Hx@vRs%6%`VrG z6{z25@=4|N>0iT+*=~n7x5hVfZ=Z*gO4w1=zMmdEjH}`Q@KJwC%I!U#82D3tqQmUniMyzxyJfMQ`md|hZKSTfK*FBifktqWE`MgyB=bHnl1L}x`;6JkznIPM+Z#y>u)u^B$#Ak#Ue{a3WtaAA{gk4><> z-ZaDXd(v-?z2EeER^!Q`>%~?&B0v|Z>sF!UyCN@DBD&y1H)T$rt(TflUJ z==;<1qo;6YnoJsfh=1$4^R})g9(UkGrZ`x zOP};xF&8hNjlH(@TUW1Ky|?w-FtKU-H0EJ$)tW$bfop&?0%-eE_hh2xs2}T5Tt5Qg@>5NM#c)M*{35q(KE5sbY!t z)5qrD6uK#OZrimU_6Mq2&`8m+rIMj%!N`S{3ab=UETx6`E9DbuMT1FO5P_m(C9;vX ztzT6@J*kFxb?euzst6fJgsFl}tJqM>P`9L%py@=>52qQ+)R(Mf*&q+wM_L`X$Wdib zS1dEY%s_*mh6IW97wjoIP_=Dg6Noay6k>t@L{3H$3o`~^5jxLz;m(zBwI=1wB+i{m zkT<7nOkN-VYw9MvD14L)b|)X?!AlUo%EQIdVI^IYmGr~Rv|H6=Rh=|26Z_T>=UI=P zKD_w|XrP!~jx2RBH{1Quxm@XJwxh?xrZ%jCTB8902^2J}BM+r{N%5XIc52UIfM=b& zS4ulBqMQ8rYxqH9&e4|GRiWF@fQ$x%n$0I^Hj!b(ikZx7vSGxk=`>u_hj`Hy{Cx4t zH%-Yp^_G%UTT3&Yb@i51TQi+)bvc%I9pr*ubmVst|1-p|0s*u(;RRvGa?~i1Tt&Pn z5l1S7;R3ElxK(V?*cl=#7l_$CY~J8sNT~(tIXNAu7fZQ{W!Fo&9V+e@Gu!JB6I?ur zGwYEqGc)U4Jiku==2#{U@C1AOLW&`2Bb17K#&LtOI2z<$$NtDXB2eh)5Bz> z)3~L_l_jXPq|=g0Oe?f##wQu9Fq=28+;|A^n8@iXipl?b&|66xO6XRO_?s$h8vi$u zuR-EnnylrubZY#Nsu!&=x(J2vINZcEu?%UO$P|@>5)$IWKT)(-4y6F7^>qb=IJb`T zVAn-Xh^2TeY$(WQI9|yAb`WcOjx*`!!k$Eq3%Q5{Z5?(On)ox*N3v@#wQx)!ch>Ss zC(ZK+i%NH=%&pVYOTrS#hYHJhk8U95g5paGlj1=9-ttO)ko-z(jN-53gN7^(7PZNt zwI6~){G&AziyR`+lnA2rwT4KG2AW*@9=(^GZF3;fXLweGjST(hgRU?Ooj|duW!M0H zeQ!-?t>v|Ro*r!ggR;%`ZkAM+Dnt&X_$Mvd!Z1iJR#^zMi_TNt$hE8{+I5Od9~TU6 z9j46m%8X(3()pYp{}l(ETKjtN%Jw~?*iidwdnZD*hjfol7_Wp79H~a9bP&kgHvB@g zjzRi!hoWT@xd=3A875Ro8rz9r48S!_D&~^?q)D;)mrAyAa6@(fm0D~|)PT1qEAz18 zLL$%Qo*Ywuvy0`ic35)IiG*!gXWx2bygSWxbq3*B5Pf*exA7asv)v)wI>)m175X3E z3BUK@8eH^Yyfe`eXip+9U)eTf5j9Y~vxhC7K5p+OfWwb==M~Wy>z$|uNn7*vzyvw` zh6X#Ttsb77p71v@X_qPpy8cF{?onO4tqM8?)iBc^@Pop$pzeC3i0vn6ghqyYP26vI z5hXOS7bZAnSYtR@WQfbS#UvMZOfjBP^`=@(znIXOUcBsp0Nu)pG#A6j1Ulky30Ke( z))lHkaH*UCsSu)a;!wCTA|YiwlVqA4Bwz#=8rjkr+w4lJAfLgs1Hb{Z%NCZ9X6Q4d zC{jDnS@cBrzR6?)NF=iQRF+^Mnc0vsav`RS@Bu>SqadCL{PN`!6F||y6fLA%TW?HE zzlf~WmPOmx1ajT4%{Dm^v!qG`t{&OETwyWiCnld%Bc!-?@zmI1i<~%@6ErD}x^zs~ zJ$>FL2ljM~DX)7HS*Btz_$jhgd4M}3!ys;)UJf8>R&9pDBj`P1J_7{4US&AzikXiYYP#sNcM{Eek9a3RE#-?>?ogWun7>n-VTG=4` zH>3W}xqh3^!@9KAZ_hdPK{npY$oO%@X&2wvmq@}1D6;~(l+Xs;Aw@wapj$-G*gsvpMt~d-n^q$?(u0+SVrsw{J@dOBhGy zGoTE#fO5p6ACu;`ADKLjDzK-I6O2aqw+@Q&mP_52#3%MY*lc7`G+e?vKWiTt$`;o3 zZ*rVXXFMS&qnJDFFgX=4War<;BYDjF4a}Ihy+FEZws;4MQKf{43M;7QG0Ht=7MQw} zHh8@n#I;RB-a`7JHkq>_ZE&=nvEiGKzZx8|p2f#^JTeaSWMPeK@igPR*IPz*Lv3Cd zZ*evmhIRlL4PTB}n&TktW|g6-Ese+Yp>$ApO^7i9DX17eLH&}jhsJ$ ze13vEoJ!Db5!UqI1V_ijGtC&i>g|lZNWp?>7}+zmfZ%pFS?rVHCja<+sW=)q0V|>- z{+_pkFOYD{bE(%U!*;U5LK#cmDAVNPXqj3}$kP-S5ta$mk2!sdLn(#O)E254uhURL z3Fl2#PODDQj!J)J*7<)fH8dU)*}umKGWYt{&E3$oZLi$Vb&rniW>jey5!*Av)bOBVY))z3OCPScti$-Kw`X>Xk8FcTx64>r zMu%J;$!qX(jcGOM>PUI<3%sERMi8NkGQtY;7o+2L9JV&0&XHD9)Q%u&srFkIkqm|*Yqk< zC1Z_m^0%;u7-QFWXepe~hpq;?KHf-&*x>u=g6kjz&V(#A!yHMsT((n`WBr>??^PdB zWy2Z)w{i(dX-U7a5=_+El!P#W21gS?0kfE)SKn+z--v&g7Mux7co7RwMnx23ArdwM z6W~C_43>p9WSWv$e-KJ{CWa(ZE#9esrvppOuNHQx7bXk5~JcS=as(w#eMc?9hwn(slEN@;K#WR5yvqreQe7*=E`B^l4g>* zc`j{JsId|e;;6FgMx&^|W{+s#wS1x{s=No>YT+$1V5;`TvUlxCe0xpicy)4U;eI7F z8x0r5ue%);4NtuM?Fr_OyM=4GOViGZ`p4v56*x`+g_|=6^)~gBo)y1fm|Ef2Iq)$-*)|#jtek=0K2Rr$$GTagKDy`wn$mn2F~2iiei5ON2dHaiPs*auti9hKY+|ur7HCzRkz# zI7nc9y>+KlO=;KUX0LQjPuEwc80O~pvKA4Y{cdbsJr8Jq3oChxFZOx{d|y#?lkMfz zE{TTP&Ubfv$NjTCD#sYSlksM+C1wyHM-DsK)8mS(PAg zWpmtY%LPo_$+nTj=)?DK(?{Q^dCa!xg{uH5gi(f+KkeLg00OjTPzvUbl4BG7lWFvK z(!~Xm#U%YbR9UawM>(f?_m{%jg(rrj+iQ#-eM~8R7wL)Cu4ozQC>d$5RPD#@`eKcj z1@~R-xOU_k(W{cHmh#!Dv>pz0-)Qy6ZoSrh4kO2F(yO99*8>8r`9CXVT~X3iB@5Cw zR~QAw=}^o3fWH^GF555SI81wMxyug0w+_|usYm_zrVgSD(eJ!O@WQ3BD^;Z`@2SFiod3$j!O6-rf+X7BO*@_{ zx&Mz%(MiY)xJJ}o_zxTZEAbmBzjqLc|7Rmmh%XymJUqX9^&{#xIn+9+zoWZb^RVIN zAi#}}Jsnvjdp;zN`tpb{?p(wvbNhetxJ1ft#h>D{4^|x&XoeY6kf~@-ymf|=S=kZ9ThE~(C<+`) z0wMycKjaEb#t~5_44TNg_na5mQ~s0Wh0x{yiqd60*u&Wq(!u;C@les||H&$7B(2LY zO`p9;pYS>=VJYORlg|hzKT)pU9D^Cg)AWZ)V3K{K!}_7Y5tGR9*#DK$Sczm}QFbyG zyTs|3N)m5`8EVMWl;Fw!<2@$_t{*A^kYR#0#S8=S!zIMgjYcU#mIN=HyKryUz$5<( z3t<%*$lRZDFbA;aU?a#yCx)XA4MHE>dGP8ZobZItotAQ*wMT8 z5-1hfxQo-V=O=E?o$cFOc6OWq7S+CNl07+OBq%VDU{2+X_OdM%hV;o}7t0(DmTXeo z%<06~DRFbs#>Dk88*>h+IlUzYtJWV|nirr>HkTxsPo5}98Ym7D3x)&DhGHe7$%hi+ zMF#csL#fP4fS`DSZ7x8ylpx!Xu8G&h8sheI4E&M0fv2IRo-u;~SnqXJ0KfCB}In5cr#82v{ci?+Sm56 zlPKYF$a~+kdH9NGpJ4<1ePvPOBU=6o$=@pdkSS!x-W2EB4nze_GW-2@{V0r~kWxn< z)TIO{xNlJg+;3L-#Sm{%3jALQApsyAU5Y_NMZ9gpXm3%35aS6!A?6xX=Yl;4A4q@9 zHcM%TYKo_fmwE-RRr&cp~VDSC`sa9mz2m7(!eEFww@1VjV` z0+fvT^NEB63C4vWB9#_a=z|u3YUClPFUp-XQrK@n1kTJ9E=UdpBr*kr1ca2?zX6mm zX5Ivg-#f=ZIX6qY&Ct|#`Oi_!U2&Ym^Z`;NepauHY2wFObohhV&aLpbG`-}E zn$Ua>l>51JnO1yY+rIQklexB8(#J+uv~}l$EAHuWqu-h`E`o)h2Y6*y=lu>t3^3K7 zH}iN0kT2)GYt5E=B=Q2WEorS=CGgg>EAg|>wJ?)S{03Duk8!^54|J9e9}`jKM=@FK zf3KZGx)(Pqyc3;aV!svvIX+C2a~NqnBt9lq1o;=&4G|1La0W-ccs*o1xo69OMAPXj zq)b-Gdf4I!3@ol+PnXi_yu$hmc|^CIW1FuTIE&eEFDCXIjpW{S`)z3juxIUvKmt*= z6la3Mz)S+>2viU5?T7WGM~%M+0L9W4gACtfjcCHTE)PnNe1<{Ec?{B4?6?ZK7D9M z!4sNn&S?cgWk#Ih1T%B&gN-?Md=|G8YA5`ztfmX-A4Q>Xv&Uy=d16eFs0A6#@U)9w=-Vr79{1kBEl8o~z!qKwJ5YU&>h8QQyR zBXy=EmR!xF1tIIS$vijMR{AIFqPDbZU#Stfn+N z>-hmS{}Xa>c|<%+jGq0XC20^7d4gciYVtZ5oRB|Aj9-ZXlHy&t3*y;VLM9c1T&X3* zC7pT7#i2FNSw6&TJL4aJQuAe}3gv6&ntvdA;m(PZdrQw1op&Ju3N<36LL9bnRJH7~ zR)BFmdu`b&NMKvO*`nIVff?9o=KKtT2ozn>YV8ESU&(GFdO~6!NubK>^C1NVtf1{E z!`%HaCws?Q1jlSdX|9yxn;8|=mjd@zH>->ZYW!f*n88I`AftisZK=;V8=<9nb^Zo9 z($leed1K}lQ2Oy~MQ=_~=#w_(eS9MN7-q`HRX=ZUx>0n?<9u>sZ2(1rXV-9vtbB0>m18kDOnx#ir;7b+K11x^JS zbO5N6cw)8hpXu^D!maR$HS&4Op@fe_#`Kj+v7Eo3m&$GclQHzy_p}_hXw0~qnYZ81 zKl0-r*ki~7fjP^BD7wOK7P&6?R)P4kXrq~OlT9Eq$bs~!g$yrCARaor`ZV`B2IdkpIsx7>y8#}QM}Yr z-1E5dec{jz1$gGQUo8q(6CB4!QA-HYe;p-sh2xf+CUd-6j5H~^Fnp12!jH4BFD*wI zcO)wcCViKgQFQ;Y<$sz{Kn}VqLpwd;R25F3 zMw97QS)9oyuY<{Go~H*e*L7kHg)-Mg+ysz!<#DAZ$+>cX81@oG;U(Eecn0a1u36;@ zE95E{w@%=LiJtHZh50Xfb#J*(C90N}F*<7z~x@j(wMdt;sKWje{LB3m) z|BJ+`V>OHVL)x+`#&7h;ZWzOkcj?~66b#11nA1XeH=;Xz=Jz9}p_~}2!;p3SWDr<0 z5jA0u8&rCEq4<&L28XeO)2wce`2w;~oMEMpD=ERvyhUXk9jNm>*XJnb>x+?sdUU`~>z%sD&GC|p>FNf_5P#@ir1x;K2c4`0 zg!i%gs??+eTJL1x9{dn}GI@%ToacyWqahbuP;?c(4~9aeDq>I*H5Nkzr34UIq|(q| zgCWPtA!RClx9V&0x@kae$dt7sg61=m`zkK1q9rNk&YRI*Jk1KK>*b>RkE}XNz1NYe%5-b_GptdX#OI zo=;|D8BM*zX(QHdu@b@lH)RXGki;QbY}Kj(rM*2At6pSfY}L_3k^3yhPFi7wYg(FB zsQYlqt zXA)uh&eG-Om%~-nOw_mjdbX|^IX!_(=Y5`drFHvYEqOY>FMzCWc`>o;6%v24Y}|0V zr88qsf4nRM%pO6K}smV#JPejMpmTW>^g1b;q9|Qw0vdOH=Zy( za7~sanzS`@)^Q5GuyzD|R*u4mLe>Pw4=|eVAG&gVo!L8=7Z)$*f1d+4#$3k4M;Z}1 z;-%N_a}Ppf-xGFe(rckkb{JF5=ceC0IGF6yjtpGc<~}5 zBSN&OtNIf)eae6R;(OxFMnMYT=K4Cb_b)FlTyzyp3EYi2jERplGIGRAr|su%#~*gG zW|=+%R8BL1v6{x3vS(>&`J&5d#J6@VH+uOKJWl|W%Qo<;)aUTxM@B?|U`bQyPi*|0 z@A}2Zsr#FP)WFS^Yi93UUb?vKCYt(L8-a;Z_IzevAnE^q=<=Esb9)vSE?<=MJ`dfG zbdH4!2>~MF<*uF26|}J3=XjDx>OoKTaI6}VE8V%gbYaO2B=xsGVm3Pr-_@J8gj@ zPYPdop19~5xlO2kboZplmG>8)UYlDfiX)p(4>8QmHk9pvwU*!-9>Drf`OQVcum}K% zm0Kteb-K|2%!Z^x2UCk&aKPA`RIz3n7y`g?g$jj{8fk=qu~X*Ixf(nQgnN44_Ie$j z5Bw+lF z7J^i&)!q!b>p_{%4`OYdnYDa6?KkvzY$Zoze(YHi@1%V{KmU^oJU~s!0p?e-0}hw6 zM5)93O`sZxHV+@5{Zoq`-$NWg3keW+wA4!_O#-TPU5SPMGgVKvzMj#hnyo1AXU2Z6j!EF{F9@>gVK} zjl-lX(`j-oN%d&=(;+H|R{ke$H0@j@QW@7nC$s;AQrHepEP4&@6Dbbw-zkb2S{m_v z7DctDs=Aj1drd=#zqGyIv6Mg0?F&!^!T5xp`?T9@L&rfQ^lrrHewlmHI1W>>p#W z#6X?Q_pZhcKp*1X#DtyHei7GAlt2ih+^C>bZ?6CVOq{SUWx%5Vyq&@7pyGHyJA1w! z6Gx|wjFSukJ5?VGFmp`eIFbb{11y*hM!1+ZBRMdU>%B1P0UI&E2Oq={WI10BCc7{@ zL(l&`S1oo?iX)U*-ppy4qphOkA<yj$kZLoTD*mnxUzB z>2>PbU2cu_N+B_l+Wa*j-8E)RBL6q2Jb4@2(|x7X(aw7{kp zY?9=wN2gRUwwehm-C3}-U^)NwIdp&AIaYk+NC=3my!M}aP=&U?;+7^|0kyG%7;C1k z?EdoQ#ii~MY0sJwY_uiMW_t&yT(-d#P+Y)=j}SRhgzNq4KXLOTKB{V-lW%Vtra*VE z?lZq@VQJB_tN0Y?_NepNxCoIDAX>QXKlk_kV=p%yG^J*x_d&z!uyF&zrEY3iX)q+i*NX!_$b<4PON;q zn@=g3O`q>JpoTHhK&eX-LtbCFJcbj!z3 zJ)iAJf4WG%Ahh69Begy0?rrw};P0D7A~6qh6j#h&QhSYm)}%Ql+Im)VDu@9Gp#+dO zU^u(j$$fZU&xJ|IGWM^;K#vxG&Al)Ig1Lunf?%<#ZS?Tuq)3Rg?V?@Ht5jN*WpWk~ zj6nak9k)dX^K$XN+p1%}H$G{LgO-#P8ZTwzIn7gtY3nHnuFEo56ryAr5%*viBvP@O zw1onIf&Cy3FVDmf8nviOB(TW8+OwvC?)JuQP9hkeLy6=!D}(#VQ5`w`(@s6l!<&!- zCXIMReCb08K*#(Y=O{z~uEzG6#1@<^s-Pgl5lzGtq73ZLYbnt>a}qpqtno}2${4VO ztjG)jN2zG5eApR-;gNP3OxK|wsae@L4z# z#|7RkJL7wh>Cm_ksWO0K7k`C5DFac2)Dt`_;|toyNRb^Dq+O&pjb!2Uvxp?bJ%k*f z!hz(T7Nky6T4qEhW(?RreV8;b*O5D|q1ykwyd(5y&fT)r;k$QKYgl#I1QaNsqxOts z)0;3i?ALzkf{;N&lS`z%_R}O9F}N_242P6GwU<|ATLKWeJvqU#8&JLx% z2fa3#;`SvYI);A{QKr#pzF{#}R=uaNfgZcD0JPd4=o13sn|HqlJeLQ+c+;TQ6%8(pQBa$ukbDb)mqRNY~|>VGTb zA&Q|qe-2yks5hE0ePJ*M;)stQHI3t3w{bD@nzgzunZZdzq&SIZx7_C(C&Q=jT%ume z(j=fYXxGYGPRtMpp(J9ifVd;nLYrt9XOo5Nwp5|<6RAZ;gyOp4?X#%kiR$T6ddyd%bSx#&fJ3azh)%#e=QyN}qU(5TIDX*aZf8bR4$GD) zVs)-vM2Yaj)eW3GBksal(J;&;Qak(4S`E-k%01kN^qyTcO>VafqW81;aG+S5b#aEQ zsLhzkK!eHl&pJ&$3IOBYqEgU*Oc0|= zKhs7fNly7%bg75r{6(f}a9f)ke?iG{bKB4i(;t@3C+IoQ9V|}SslJ>nlA6&V@zMRa zJCD}pLwP&4473Sr^aQX>2$$vPMqB<^5|@khc~PmNpfq@y*s4$n0ly_P@Pi5mAKawR zPqwD_*yHLF`y{4cJ{*zst^wc0Y$7{=hV%o*2?s4t>lY+0P^2EohV15nde7d8EkXUG z?_HfB?hK3Pax7NL!TjX5PQ&ZnQyKv!iX3Yy z$sBY=lmXm|pl}cLwi3mO=#D@~$$}Y3Y3hOHDZQQijHDVr+zC#bnm(=F&DfL4>N~e; zhgt7>*LaOlC?xG+xOeD`x%*8NaTE<%;0yxs=9qY$SmFhNKA5%MKo54NXC6Le{4swa zEZFC84JfhqgcZg$h<(5?39=m*isC_DMJnRxswz$NL~B_jUm$-KXSlqL!KeLqkSDmy z6oO>dWg+bR>4Pqwb4;oYmN9NsAEd9}529d-QgQe#PH&N6tDj7n<cy4H*wwiwq&((ATRk@Wv}8yq~Oxo)a2dmS@oaNh8!;63>1H4T@ zz|9N?x+7nj;ILf92U6a2232muO3D2M^hv$Xk>;vGS7r>L^x53AAE|nQ#Gl+3>O7#w z^NEqYJFWzLn#;@&&HSOBNn9x-~YU*lnj0|F`A<+FDI z2sU2ccLU7!mZUAH{OU77yz`!cC!vG*OPYcQgFsjg%v1W9z7?D8p7qavIA+)2$>z)} zk*-k0;OmmLco$aOpLsf*i22~hT+Di z!w87=lM&}c{m5g^3JKP-o@Y7`{|B^XrI<9!UKYX z(~xfN{bSiGCLO461SF|T@JPT3IBax~W*FmfJWejE&xm+p6mWb+GeSU`QB|mnmTGW8 z4_$2KZ9=iqAN498Hm5!{Io=pLVloPt&;7bG_i{Su$wXDj5q`o3bnBBk6&$D2>QxR- zZqm&bB%*LiyuHa|0hyZS#W?q~nrho!pMWcL)l)=c9#V@v8GGef zP6BZNFJA|&L#mZ1n>3Soq%n~>d!_dIVh6bk4KWN2r9K#yxQ01WCV!s7q0 zcJ+UY4;|o^%%RI8N|7l{F!3-4ajF@Uy4UQbE;&oIS?>&^(YH4uzy;m;PcdCI9(ebS2vkH>v+&?I6Xmi1xLx`J1i52OnH6PSHO*P7NnGd5}0O8 z!U8aUrXPCn$7GR>ItTOdeV~|{*Qv^M9UMwzdUjy?p!xVh=MGHC9)t()ngzAl(~GfF z8=}Fqx~G!MbfrnD3{$NlaUGx$hSOVk6nb9`KK=oN7!aL%pLc!Mor}e5 zANY(u8awc(#>txp;F5fUFKBemj7cZEjJV3 z2UJ>RZvG2Gxv-|xn(Q_8M^zFVw^NJ3jsc7UpZXH0+&bzkL957S5(}GE5?Y+Y&kW$L zY?o$NHzDp6l*PAi2gPuU7r?<$zBNp0z>0~B{dfnDk@UjOlY@sLg3IDk7!9}}@6j{k4 z^g+qM^@G|*q@dXl-wNGoutz0I@MrP-p3ZESdoNDg>RDmB?P4TQc)fgb!dQ(GhXm(d z=*F0G&#M6Y2x;MrQI0gmxOQ_CKtn=_mpqVT#NOJJ0hpLQBeHQ-%IQ5$)-hz7f9twg z1@<;0zV1AG%0O$f#+&Gbten+xP%uc8=r;xTL4}nB&$w)1kL6mFNJ#z<%hDcL+}Z^s zO7O%=(R-N0;eU$o>R|pfA#qIdqw$o6^zKiJ@6pkecc^>wPOEqCa?BIf!@gP7_3sIp znwn6V@nTGaOos^7_@B81JVv^+`pZ72vjr6_^G7Ls-t4XXDb67r>$Lk+n86bgEzo9L zHG4jytVZbT7zSs7dKVu3E-$lginioPZ3~a)HjZRvK0YH@0ZO|-+$y}-&@r+1iYV^T z?@384#L>ItZP;GeTNR>g#Oz<7`4+Mc&DDW+Oz?&UsMQsZskXR!2H6)eQ!(h;TQ>h0 zhTQnas0~5EwAtM?H(4$CizNn48e^q&F1sNgWw7@ph6s_<<;Yk@V)8>PhJ1@1GA*pq zf^5n!)PvgEn}}JmsTRtR+^R1K-jv~~j@HK`w?i)rWL_ZOLg;78qL=BaS*G1=JRBb9 zjoRcv7d=1Hk>{Ob1$y|uoLoVh0gH;CG&U){g=v9{LvKxy59|gCL-pdsWMX`4zS3lt zYIr9Y#h6>?9@KZj9F(dOAm_L_3{{JiyB#A;8o!oW?U>XU^NXomC&7nAtPJtGL8>v} zVaeop1>B}7y+OUVlDFD3faoC_9Iy?fl@ydz?s-Lc4~Ni$v}l0~I~&Q>Lo8b4m4(?{ z^G!VVJO?ga?hcsV zy@%PI6I`rGhpK-l9g4FyzyY7a#{47y{g(1osf0tuFu*cMgkAP}dk%J-TmWHvD2M0p+Rp?wF~veRRU z)GyL_gdVlc=Kf^_qcjP!wL@@?zKm@#6D^fi}eX@OBA zfz1|^;LJ?6>Lj$2i?_{hweb16k;kA(=Ok)|r&;LIU}wdpHn zSH_WI7a~sVDr#MTj57bpIb<%+!7IX7l4Kk5%HDoQ@-z_p_un_kgf*KW(JF4t=_3Ia z7L;SZ5RGt`zl1hd<7Fl*jJpyar*u@P#6q?<)~^pu_uG>&N)4~6m2Bl?R~f^mCw*;c zwb0}Dtolq9pXjtOu18xJt@fX=t$F^-1u2&t$7ykJ=bJoMI2x02sc>B3=4{T&a$X5K zrb1*w_%|5)mh>A)`b+BDcoicTVARB~VV&~WU`UkZo;zsJ-SX%nx#%+ocT)#(&p=nd z68d}`#=(m-o7gz4>*RU|hQ3I7uyZ0#bU_{etdNlaOb`BMs8nXTD9cU|AZpAufqRG- zoPu)a+0%sKR(=2AgE{XhWy7%_;L%VD05VQC<%Du-p(>k$L!E=qt4SGdw>W4P?Jp&S zS@8%*6~Mqc9H~ep>>FkUehu215SeMU&EUBzJKFAW!?9*8mI}h>l@!WHM>E_e{lI|% zKMTC16|r+*|Gp8J#Zdjs-u1)M3GEzEDE(~va;kw~{>^>T{JRfHZJe%yk$?V$>=Qt` z2dNC#!Me@EAvq>hv^`^h(aT@&qDgHmy=G-$#;%7jh8-i^?J+OUf$kXV#H^@6Ohr`( zSnq@qC^Gsjcf%i4!H3$=nHj3Hyp)D2kYA=n5n2Wk>QXvfmLO(tYJ^*oOKs$EpDdiu zmkN~5g8XO?3B5=Yo{#6E|$@Ld{l{dBPgeLyC<{MR^}jTx;A zy4PfwA~yw6h(WIaP(-av8@pK9yJeP@_cZ%0(Y*tYp{*E$^p6KC?5Dn^DKqoT`}|*X zmVhM&3gyvzIiKFhTsS}1gZD_~1x`uaP8FkIVYd#;Cm59u(7MBkhsbjzMMZioSpQ#` zX&?_t@#L`J@Hq>f>@|A|-fE7bO8yBoUpgiK1(s$e%?q02_08aFLYwy&TFb z*rIG0 zxyAL>u|ck+DRK2bCUwkCsJjkntKE5Z#45lGnN|YTRiwmeWJoYXY*u582QX97WIqGL z(UTX&k-XRhcRJ(lO>RtzHlc)@S zoRLD;^h%tr;l{_v&Ao=_xGHr!;oPKfK8f^RAF1JU2Mvt=5$zsConHu8vbIZ|@$UYR zp-MzxE=Q?|Y6Z_(**!<^@|Mf30E<<&qgsI&SQJBXGYG=10yKYjXA}MNaeC`Dza*D~ zja(k#>oN`+xLiASum}a~d(Kxbmp+23OxFg(WIRx*+vh)Ax6h1Vavd%LGu+~neSmva9v-zJJ42@{bEwMz z$eo;#i6i*y@)Ei3c1{q~BwHea6};{YoK}4%uq-8`R@FHnepk z{$a?JaGJ!@H>%`|zKF3%M4%h)E$mE>#{i_;mwfd}VMQ`%iSguOH+X=#2pME6Y~zuw zAe+8A1u2wl1^(l`)%jjj!!`^eClQ@N6TM~vUEe(5V3~?eGl-KIHQmT!Gyc_Tu~)@e z>^OB?X2^*|K_q9dU9(cZRYecYpp~(j402s!Z7%6jrd2M-;B+SQu zm{CbVx+7{+JYKX$s6|C(2-jCzMQ`%G3(B04)hn`yIBfGEBR%D$5+O|%s>Ffs zP3Vs8hy2|B`5YeDDvSD^juas**-7mC2D2nCj-L!BWe#tTqt2}4T-|ch$>Av^J)*a} z{jjiLVvyS(I+dN|SfkK&gLrY>yEOi#erLGN|aL2J%X}U~3YLS_hQ@<3 zN`n}!)v$2G%8@^%tsJYbKyNFd?<)JII}L^OAj3++jnfjhbg>r;Db6gQ3@_uZO9ZTy zMXaC;$k8lawu0CRS7=i$>#%{b90iS~JYy4PDF(aZj?Z^#K7AA_#d@3%5)ktJ|Nr;< zfB*mWJ)Zylf4)E83K6CSWA-pF`!RT>YH7>sAfS1gh_?-NY2!%4C=xal%;+;t(lS8m z7@@|T-QC+3x_9>1QO#={A-f2;m*u-4_cuucss@sf48rxzittp7`4^1#m)jvmv&2zx zxh*}q?oe=?pQwhwq~!EW46Ck+c~8!==eT)iKsc@7)_bCQV1P9HbRre-U0e;Aju&1T?Oq1LN5yXvfSr6+M&@R{es$ zvwcRertSqfGd+xm^y+lU;A^r8oxV=_$r@dqIX3e%O+|;TIIwc)67D?zU9pHIRPwei z9vxkd`m$j(=I+k_Rrr^wwDQ0?K~jNeAw)P)I-l2<;O&;tLQ+aj-YM;a*o7}$JrdZ9 zyMQz{!02dbrx)Nx+L_m761B^k! za8ZZkZ&R24sO}%)Tt{;Ho<^Y6+>^GzJ-)<+e|bCeNFsM1V74Hvk_Rn~97ex~orimu zm?_5lQXMo^A8eUsO{}s9I!!YD z{}9EkU-ByI{(MR?09eUBg?rnhHWh6FqLiHJ3V5RCmb-VE8ylTh5UbnQEPP(+7AAhr zvc``nTBPBO^%@~<4 zK8MB!PnF&$1$!6Gh4X?}BW=Ez7OjWifPTZwwj z;Ch}(cu19yTbg?5DMYqi?wN|9Kcg9RphoLf>TCYsnfk$fP82y(<2-{dV=L+M3=SZIP`l7*0DlKp_J!_O8Si0yT~t)c7q zq{hE|m0j36|7{|~$A);B6SK>nE%hXpAJI?1FCju7uKvV!uRyF|&<+SA`S+xI3|L@` zZ>pe6eE*>HSZNd@So~oLHBmWQWG^goUXy{sF%UtLw(h+mUv>Tsd`VW{uNWyHn~z;i zF|Q5S_G9w@3h|~SvHKf9Hu$P2Ugw#o0V)L5-SB*h__{^nLDu==tZwxwE^`(pQI-K+c)9Tk7DQ@Fd0OfK_Ylf z%oPa+3rrx+5R`6QPSuupbX@2@*CF+T==vghBA|o3D%@ia@V}<^Im#aw^{5(3Z>cG| z*h z@Eb5b3atmr7b>*U%d#goJiWRw6MD>Qi`I+5Q?0%aKJU$wICToPHNbTAic`p7P~$=q z!_zP}u`OvHfv2pFcrU{fw(u%GOA%+kn>G`tj<~AuL_=>illCdijivyL~CJ1Sds|y-=5l!?(x&je8Ha~5_ z^zb%tN%T)(oEN9ReanmNS5{uoYjLW0(fOIO-OIuzc{Uibjj=+}Y)Q#@+#za}s>Mvh z@2NC()*F|fUcC+Lg6)kMx=om{8vGv@d_CDkOxi*{2+WejmU#u1R2jqTcoGaPbsNfOZLr=pFN|gl-2H2d3def0Nw756EvjUSVuNTB ztL%8?3jpgDhMW9(`|Eu{)WqAH-yV9T5C`pK?tmoPsA@A_(B`sKazgbHBXs2HKaiF` zULeWfyD>sZ+c5~&76`|ORgyju?`DOO*@9Djs*dTSbAmuldYp_5`CZEPGgbZKjJs1@ z)DKh_{G_Lu?QDoKociKfqOB;-*fYOiO+*rfF@c$uI3jE zX3Ajcxb`a42s>JMZAviK|3e-L@^iBdzIqVms3<_V5FZ*oB3T+6X3&mS5&7Tv&wS(s zVd@Ou5D!8KbHZZsXpxJ7*X2CRJ@KAXo{(IC(Mwz&f0*R42_9&oy<@l*Rlzw41%Zd{-;oWRo{{F(H^NwJKAB zXrVNHO}k#cE)M5O_x)^^MJ5ijPR8DF$e&dyYaI(WBI%GD>PP*o1#c2BuKL+Y^!%OZ zdCbna)a}_6$8WGudZ88jaz32yQ6MKG$U%o2kbd5b{VK>@<#Mye&@qo78OTNd}gN@}fY|HW0|L7B=sUr)RbP=^DCsC#l zGFRtoisDgFx8}KaMCJ4qipLDvgJ`I%3$QHl0_yU$DgmS8vO2<1BsX zRI~9z=CqFl0@2)1PQC%Gzpan$w+3~WF@n1@tZd5epX<4046Ql@ysaT1tf6}L$gJr9O$W~h?&$438MFifb`>Vr|Ei$ zsb54~dzUq!E^F6%w;93mWB&dOg1Iu-pK3>ABMpLS|MD5;m;$RXb(X(|#ga(^Onqg~ znZ$gw&D%CfUVTKVsSENd>H8wOnmLf^05%`FE&SF`^X*Cm9IsY)%?gFDMB$%K}I0s=jPpAH1F@Tn=nU!b8izu?xt=`;S|?+$p!J) z%7!U~y$?xgZ340!SF?;M3V4j&iXOdhb{h$e`l%8fN3-5$z*|FoZ->M7Q3YkY`d$w2IM==Db8*E+E7K=iNy zM1BY>#udb#-g(R-Z3u=GBZQEhf*lEg#kGUzLUA&y1+r*dr?S*$QbiOJR%s0}2|e4& zS&4zAHvRRd#wyk;Nu46$nqo<>NYFA?4Q3Y z@7su14iHNHt;CZs?9h^-+*k$}glr$Nl3s@Q$0^LTzuq?5!Q3dHD$&w%IOa@IFUWtC zQwK2lwYcWQ2T4myhTf`je-ZaMrz#g`=J7O@r8B6hQ&n~l=_d5Sjl!}}IDdA_D>FX4 zQ4|NDU9o9tPzvFb_`=;M1*>*2Bu*(=$C*TSyNiB}jWa_SJl$B_Y@msYJ2J60|y_rw+W!bN`jZxZDMd_c&`d)%cFBQ9| zkI-kFz?k>{f8(=b>qECU1g9&3UsGGWaK1?Fp<<{``~UdA-}m~S@BjTj8PELxayQih z%2I_q!3#~RM;5c%-QP4gO`n_4g@))tFJJK;i8hIJc&WvU;}#uqdL*rc@M@H|xo-wI**Y&&#FKlm@2f)lcF)b*sZ+B2M}Y8* z{~;7~3oR^P?8zVGnkJ#eU)?tUP@3AhGE&vV87r4Xf8QoLMRMH^_C7OOEeLh@XYYVh zq&xIy$&VdkZUv8K+3Li@DAq%ogrraM1hzfSbNvl^ZHYrxI|5lc+!s(mV`yDvz&LMlVUCFY73g zxD007pi z6KPB6N3~P)U$d5s4@UEyom3^PADP&2p?vDZ2SKPAG=TV0E=Ng&bB{29Sku|aw@w8( zZk5d&wtP3Y@r*E|xCr%%Y65dCDu_kWe%OiAx>9Q1Ls zvkeFU;-!9Aton`+v4@Bc;=<$e?LgtOSxI(OxNt~oa>UtjKV@pS>kJ=RlACJg|CYa| zwcOUOZ#e3Tuae|_+tN4la|~HnJ&TX^c(DczAr#437$05dx-D9X^pi0@Ue?&fOa7g6 zd;i3&C>ZtLHBQg^!0o~vPMvvhzD@pf$y>br$dL>FHT0JWx@F3ABbq+^S~ahR`Z$)t z(sk?Ll_=2*Ou5|m&>*|guSpjHZfyfp-OkT)%Z4ob!)as`(l;ekn);F7N$oLkT8@8p z3o*j%ODPSJqBB`cjp}{_ckv276y2b?l2?+J9$_*KX8vc9FwY-W6hU8TvB#)XR#c*? z@Gf_zMQ>XetX_1sgG}2k3K6`u5BwzFbnfp8lw+~Z^Y2Ht3<9x2io@Wf13)flUS7*I zy~nh#5j6h5N;8zmH#l4+`E3MY{Bta}mN&IZRm*PalQNOyD3jkzCK4x{w-t!kcs>>H zx`y;KVZ@DdAujn8#=ix4S4?N$p?fNg$P0XgS)FBqH?N>f)7OGQ_#`%$C|ZYEmQUPg zEQapKehXKs+_rtRywYt!(3K6&IG$-@)*_Sx>e@jEnF!7CotApb%FjV8H86d=(pqn) z@>a^OB$Yt7EGe)^?H^&ys{?M@)ao6h<`9xNgu7^dDdCL8>>%>PQWOj`qoJ-?8i7~= z4oTlz_GgB55gc?N5@L8WeEmEb+B~nu^`z-bQb#?NLBm8@iSmCc6$0VtP=?gH;@uZb zRkh_Vbdbt=3w;m2!b$$w6qWoKKiLlxFL@ERCB5@>ThC#p6oF;uD3m&PTt5%uz zb5v@}-+}Vu@(nrL-~?g^#^-x)rzy^@s}(T^ksx1nhwv-Q_fanC_}zP)h3Wib!Vy_m zYt*a<JlL|98ocRsAw?FMUZkTungIZ>N3^2^!I<5j5Jh^zs>>2&#lvgD`C?Q|1 z@_O9OvxxX_aUwTc+Jp&?z$6?nBZV5nHRbMYlQcoixzvy_1j7s3mpYf%7h4txw+U30 z40tzQI{mrq8N(d`I6a#j zF@eIo$rZqdyY%23+91gVgn(sOzI%*D$41vj%(C1V3kT&go-N4bK*ELgpRULO%bX=6 z^xIj|B>RDJia~sgPX$CVWUzp?xpLPYA*Pq|2Id%dn$Ej+rimGTE`_=k;6g@uYVq0S zZWsl~#7eD`OS)EN9t`l&*)bnssspbO9i$QLl1gz;gyh)aA}V0?W3iolw9=l9I6^>{ z*)ecPk3N{azM9U7_~LFNJ-sTh^>%7%+&|? zu>UA<1PK42>3M$Rt}2{=gtz~I!-P?ZI5s^#^j4XP8mI;sfz%d~W8_hkw-+NCQo#(n z7`L3$gXVfuG~%s9iTt2%q`?;q&hhI!7nRBd_h6?KK`+5JIS02rNc6%!MHc%&(aOa+U#%tX{{a zOESOWm;AJF!cCa1$0phd$bHkc!5mb}9JZ*OKp^A-fdrJAbZq(1U8c#f`diuY-ryUZ6;Pf`9^NVfsVtzXdFEYQ`Dyw@nC zCjc3)IWOJ7_dK_f6k{Kg;?+Kl*O4Dql^0TCc*+NJ;l!74+W#=ogX{n{rI?Ovde63g zHUrzQ*Mn7kZ@DSvlKn^jQjH;Q(JP|sQM4W@2D>HG3ihcStz3u)17E?W9$azBQGKLH z^?otdj<7rlTs(9^C^I2yio$Gt+G>y2QFbw+48*K(qNtt7@?cJ6**ptcOxeIfP|J0c z2&9p+!|uA41a&>IYHN^Hq9Ufs6lWe@xjSa4Kt3K07}2~w0I56IO`Jk&$C|nF­g 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%0DEP9AD)$sS{HF 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

    ))#j3Iv=6Hsgi`%!0k0zX>67Zz)qs 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 z z#bE)2Rs;rUAeS*Fc(EyF+R0K(ke5jqAZUV#!kYbbmLL%DAN!Qj{7xi9R2nG##{gSNNKbsie&kjou?b7*~+>mv$=uAh~HukicNNusEj|0Y~Q})SzoFiD;e`tWQu2aH{1} zPWNRLA?mAHYQJ{qgiIjDy#nlwiNacT`Ze4_xno!^2&`G9^VN^kuge_39f(;h0d^nc zV9g%;HDW~NG>nG@m&mlktJy&(mIVPJ4cl%}iiOLZo)<0j!*zUeiFe);e3-P9q|sv0 z<@#x`*n3#Q%h8sT^=mb%B%pY8PQPqT8d9*DS+xS-ykScGbw#V9pLqg`}g0Cvt(vPKYmxQXhcV{-CxF3D!l| zswb6x5k*T$mm9Z>1xJCgDo8a9EJcz6$acp($0N!d~D@Z!~ zWwmpNQT!)j)Fr@m@^a~+PHdD1on)^~MvAEr-fbO1g^x2Y#p zD>lkNvGGB)YAk+dvuUv8FoB$TiE+FVliv#4WeaDsW@vEC`1e@TSD1OpGNOW*Bsp|v zCaKNkZQO&SeLBOE@kK#~Y-|GDCuC48q9e;ZOv{Et0tQf>dMOG!%A0O;^i$kcn(mQc zT&S~*2o?jt3SsaztW2fCrAwwna>08kz_17;gPz+~0CR91l@nXOInC8x+H`9}*3Gb! zL&SdilDNzY65JHfh*Wq@Q9KdWAMX|-`e0sXIh4)GD)@Qq!X-3&&L-^Gni`w%_|-pn z#?W4Fl*E;^yo4^IfbqRJ7z70c-RQrUfX#9em3^{nCTVlCmPp2Es%^I%!sZk^O${3y zET}V zifu97#1g&Yx25d#8Dj3}Z&x&t>TC3O|EH!PGC3u0%Wak)!$DdZZZryFcgd;IxPM1z z@9!gMfrV6ZU7;3m{zvv3j%GhTy}egBsu&hfS-pMe*o1tEbWx^ivniE(F~-Rci4KRg zDMdXt)W?apL9-{Is^BoOa8&%9UV?=a%MGpzN+Q;Hp^NVd<3UIBTi!-z_`C>(T2Dub zkv3XyziAZD3|MUyKXbY3qsMtbYE;un0HsM>)&P+7-Brbi4CH4fP3stV(TGx#D zb3=l3h0XobpVz#_GW#92!B{du_jYBQ8Lg-V&tA+kpv%bKU5kGwT znk?Z(UADPSPk8Xr3N|lz&aQb|;aimpe zZl_(O<(FwRo_j(N1iLs)Ug-H(*Jzjj0$t8e%c_K4R&w!0XA ziiiGK|F-y=HlXHN$QnLU&Vm)oQH*(GYT=MR$CGTS?dwV91= zaUZ2mYTlyZ0ThrUHqVE7#x$zH{dv*U^TdC*3HJiE%Gt>6-^iCYSPbLgq#2a(P+PuA z<--l-8CQv5>^nY6(U@mw&Tmzpaw8)0ptLv#9LFw3tyD;cmIbWUI-FY>nQkY@?6IMX zW}Y23aZ(ahcJ89H_gAZp!pqfBJC95U*d#L9si7#JkXX`wVe3BsR(?5JSd0+Y`cOn&QP^I_9h}IzB7gIfxsg~;3bdLr9 z2)9LOp)+M^4+W}}W?v>nbTJw(yr9rQEuai4iESEkIAN^^=^;!!eqbbs<|5P!`no5cCV8%?;Ax|7Y>xI14W)#p4PPkf+P{)AqGG_z&o7r% zl{btdwrLlQxy9w zKciydgJF$G`8iCi`t!24aQTC+HY{U}-nv}RS~GQ0YEfFik)8=&Ovj7+AZfS|H0Xx9 z71|=eS*k*@@UvJ#~2OHDRrqf zWPQRkCr8XiO8*_?B(fbijk(?;1_k9Bo%ap1yn`kWBfWw)&@5LIeo7;=0k_!+sq#VW zYEcm}(o&orB~Zz5`_fyMLoCO_jE5|=`SYy&5^cuPqmizj##6@7U#yqy51Q1sA3Y~8 zNR$XYCwQ}e(md-g))hZmoiaMiUxfc&1FsmqXwpf%NsXQQvuOGn5H0k3uELlwPV#tU z>B!?hO}w_(6EYA`v-H{_YcF!Y{}ViHE01^&ac{nkUuMKx}AoM}~7_9GgYdk>G27e?;7v9iTe8@3W?BD;JEv(i(dFG=+Pf==X z+R@NpnBaDE-8Grvl+zeESBb#FF{+g^h?6}sUCmE5udh>`)P)+Xq~4_9Rhqx{J9ENmKpb!4nRceitUo&KG(_l=() zr#h$CXtbMhczde;fN0>^uCO%{yN#0VCmueO{=NZ`7rd#$hTQzV`(U#hw48qOQ6uvW zWm>{Wx=6y^Tz=H`M8fCT?uz5(@1bM{x}oWt z13v``56W|i4#MZizy_@SQX*`Tij-$(Th%&$Nd4{2f1+fB*FL3BsX}>cdc;xespG=Y zgdD}eN?UlaX4FkAjv!MzGORzM;19ao_aPQsWoMjebBRq~Shi|1z*bez?1kI(tj-h*-{fY@sZ#Nx#`P%Ou z*1a2kB@aIT)?-T0yM2$&%fQ{M+gWTw@-i?a@KU9&l@ZTljz*!>j!v%Y56@~QI3*k= za&INfUDCWehf}_9UzQ(JXYtIym-}JyD&|!&b3aJ;x%6kP8eHDLgz7v?g*#{p8&#C@ zZ%X6=Z`@r85k|Q&49V+~Kf8G8bASFW5B;$tBKPeFU1?t7&2Oo1vSQ1$wMlL|7%ILj zL44>U*DcDsyyw&L=8985@I{AW9hSMLrz*@>uB}ekAqyw*=`Q%LH(Jw`sXAV_UQ6N1 zwOd$ljJ@6x*{D^P+OHmbH}w9Sl-KD)5MU)6u!#X)4 z)|r0;+O79lZ!Vly7FarMm+n6lL5aFK@*2Q78Rzg6jB0ZP+rdaVX2pT;)ecm7dK-PYAj zAO`$&fM=7Ij$irinN~({)gAW+RX1mJG>fzN%N&oSk~H(tx5Y*9&zwMNN+3<^dm?)N z;Tt+>&1K-cm9dVR6tTI&>jA9m6iuM5-boh>YgQIZt`wg?Om!HsB<%B&BDEr|jNMmk zafT|mfGWpN7#*}4Y$4n0PQ^CU(z=%Y)!$7*ls}YGD(9<$cE7;Ens>7}`c+ooDd_GX zI?OutGow{b`5CyBSM?|H;IW|HWg@xZDT)rP*-(6Yy%kqt`4S?8UpVzu{6W{e6V|wV zI`o)(tB6UfFLqtdBM zr1na{r$~*Ux6Z~yT@t#qD#=rnGxx}Wnj1z*uN>Z(h6Vp)ydZQQ&R(5@BCdz7EKRx- z&bvF=0-%GpZ>uqD_f;vDRVrgh2FXSF4ow@$hE6Jv+Huf~g75`-@9WMVZ`R9Uh6bG6 z?Y_$&DqxJT5vFp+_kIrTZ(pi7yF3M(^c5cV=g9`1+4lqwVldecYJ-G3nfggO%0}ql zxP~J%vlzMcebjQd4u+I8Z;PQygA2u zI37ujVQ@VO#<{#WKj!&dF6hkxfHw5iLU^5caMUsDE9C453oZRKcS}D)5@SLG-a-7HBVdbL$APRnG216r>uNB8&!{Mr}idSl=7bO(G zFP82a$D$~jGpQ+04D_&3%!-!e%q7SOwq))5jY=uZSdTF0Q_HpUn9g+WIaOPoUzYJ7 zYA#aPpKIEGnXJenwc)@Df4jfhaTr)J!$aoh_}2P^U~WBSNVgB|9(Uz_#r}9aNYY7v zMnQ!q7$9QebxFrN8AT)r_Q_H=6ChqxvO7$z7hOl}KtX&=SIQu1^SruM1#Z#>*cOkmwmGZ0%QJkPJ~5&9Zd-K1f#LB=WWb&X zZYpfvSpw$EYy#-&^_{s5*Jm?vUF3QC>o~(v89XD8?IvnKHp)LQ^6b&Y^lL%eOQoP)FHTgK!rwED)DnTrMtu#&Vo+cDb77rtA>6NL^RAh-p(dQVArJ_r%HHd z6Y#_4!&*l_@75Wf-Eh;k3~VBi%hq-KPk8<9PTE;s0!xWAz>F5`(60v9`!;7)-peea zX*lZd5`c|rhU0+@=}*W`Q^E=0zXM~=+l_>^jS>ecBsn+5zN@wz^Fuo4KC?Z|&c4=o zhGU_CGF)rcDxIG)+IE!s=5+SiEk-~MwQ3~IMC;w=LP_YS@(h3#9wXNzh9BF7VLgn# zm77pjXY z@wLPLcQ=G5P@63RSE&d5Qv4Td-=JiP~9*hNm5?`j5%XVV}`4KE06bk-6A zOFwN>-Jyfm-vo|`cYwVWhLR5%64p^L16-#$E1`p0qw)o9*06JN>XId5Xv(4|B~0j7 z;wv+=fA;552kKCBYUcam~}kHhF+jL#vS<*^h8~*(;PRz&blQ{ zt}jC3)!ER%#*elDdpXeB5e_ThFCtF%UY72mI!*LI|CiYP=1lro$`P^bd*0U0qE(qe zl^+qhPLHy%$81ao^80i-lpt|$)Gqh+)=xAha!>=<}*=N;)$h^pM;Ub7p*rOmqAB1~^y($57JlM1ujHYYM)l zs3#SeqOW}guI{w9X&|BJgu`z!$^`vhv3*FLxKaA+zGO-_Uw|`3{MtE^CmW&sm>yMO6Q*F&IHsYj-G$^wMh!=>Rh>q|7E(lyo(a{QT+dvmMo>0n#YjBHx%zmk zi+ldZv;&)%l_oi|e#Nfhq-#oV2C`1_XpMiJW0$|_k%>>q1}w?SS({n}jLEMul!a_l zjACQ6H9q0&QOb!JuV}d3{e|Oa2jvT8cr)JNA-&_JD+rp};C_ft$vcRVKf8 zFzN7aDQd<=X8-n8q6#ce$CkD6{T)1%zx|(+?^YJ4c)vI|tiL7NgzwGpX*Jq%jzQ+( zA59lb7^~oxvII3I0j=(C`JqH4NrIX4RiiX^|4H`2groN8BJMPQWQ-Hu) zk+bnccmr9*W-8}}`UxN48vg_>s>CH``18jd0v&a6IhlYqIIBWOav#GcY)A#}2l5AU zzPv4IQ{bwk=-?lr&HS+>IwpSMtig)C%2S1)@d`UZt#{qVIBd7|8~8lD^!9@u44% z_;scCf0VQvXT;2{6mY^|pkM3)T>lhmz`r;U{-Vj${UfkUTd2sl2{b^({X+7}^xUW`7Z)m6?s!dI9vhWCHDdk@;l zn{~}~dk6{A<48|sECe)u0>+?$A76Q4u!z`#6i|84{fg@HxH){0(i#@9J;7*^?ZhCH&yl%lTu`NY;Wn5U0)>qmmQ1SBj3Duh|74%^XhP< zh>+jSWS0i7`STL~%{kiad*FHS#;!_Fkf$sO%pYpfyJSXB|J5Ktc~dq(+R(5wI`&!< z>xgL&<7?}0c^CU>F6F1S!EHt3ajy}K=}g8Mo@o)gt+ec8iw?)pbLM!ntM+8oPh)4b zl-7GJdFORJJD~IMhXew4G3@e5Wph3;3>QE4EA-=;{VI{)6o)@yW#bwD+Owc}V=3s% zmrkkn;GH4d)yxhuUw_A9Dil8uDYxu5vJ+^0!mgb)HKDv~(f}_9-&$&A(&F!I{2n4& zwMB|}lqq-JP-D~~piE{ZnT?ycphN5UsU{g38`b0xlb~?R+imX6L%6QRT?ALm;F?dg z^Y_@3X`fJS1K_WbF6qnzag!gd%whNLog*;|}wgO3)xL6(w^-I2k*%lr;{m6d#VNTmv0^q&0 z=>8#{{MhCc>ybr$=gO70+og&~8xGMt1WvwLziuTXlfRyL6d|VgNLf=X76wbUS2zbb zRG4Ik*9QjU2)=Bhk&r`|aLmUjfb&(Ke-EBhKm&Xg3J4TL{^1s5)jMvYa(tKEm>^CTC0|gi` zeFoAyBjNZDDvOiuKV89Z$+Y-9;CJclZnt7kxG|6KXD9;G_|;N}3s3}iUA)kFooo_w z41JxM+c-Lt$3xF&%TDk81aonIFXaULBGP zH$CXgPd+*-hp=Fr7N_KM2MV{Ek`?wqn^l$C&tovINSr0IrCYgkU?IYwzb|3`F71hG zo5&H%2626M(F{>@Wjpbk;o#2ibjD5=v5&*i7V;Bp09@h*6HSj+-33XehG;r^0T$()%%^|)2el6J>Ef18w zj4=vv&+O>nliYZ+UU$N&mS6RXHd)n1l;<2%zh@_Z7^P`)ZUX21Q)1 z7lNIxpCjeGxiXF3q)joXVR-Gep5Me}@08<9J$X_xJGq%lml(t52U&4F^gZ;6uPTH1 zKt8cSUZk-(U%#m#&ub(~N&7Kf;BVIQ40(h;BynVVBrGU%7*k5MVi-J(eHa3QL4`>y zI_1uMp|HE-I1pB;S1RXdJTkr4U}?AnF0*c<)#OsMbbS1@PWC6^dK@iCcWF9)Et{>c z0awosT8V%if2h;s2@7_ZfRkflfR+~))zpE(ax99CFTs7^Z45wE&n<9P9OV?v=Gf`? zWRV`mE9~|b^z$34Z?1$ELIzx!e!BK z?re41NRtKt@R{SEZ&GOFdq`DnwMa~B{RpC(B{+!uQy z_B|BsM1Q|0>q)d7*x*O+8}oJJ)IAjRLn|Cxe9AQ_fHxiN-##_np6=d`uURNxy)bMO z#9zB(ZTpVfpy61zQnYMv2`^Q-!qlYmKK|y1s}iZYui=MNxH?pFL*JA9d0&|yyASlW z3u|sX{YE$mba_ktI+J)KWCA+8{j37oa_1r+io6k288?9@GEFChn>4I}E)M75e2w>H zSd~N7N)q2gi_`&b#Kh@s8+5W)lST?;9|7;$W+R_HH=VBw`J)!wcT~ei{Eavmg0Zwh zGnz;=tg~i~^Ms}Aj*26iopd%D?`<2!p8&Ev6u94epyZT+<7pcDBGT3^Oi`#>oB|x@ z9DGhR@R^DNSqcTSq-dX`D`4`kII}Zgu`DI4piAzOMeKS^nTK2CiVFIB_J<5}W~&>G z|GoOY-Z-8hwy9#psWL@cG87)g`$RwZ7GJ3c$E*$^P9ydM9j#p|ab~IAeV&hVO*6y? z8iW~JhoW#LZGt4*IeANo`Y>=8)kZ83KH>2-f#*I-myhuT!Ji2qw8hp=w7F^Iuh3p8 z#jN{LpaIh2xACD;bHq3yX_UpclXsFPF(>oC#ou7V5h)E6DLR&x+vp{!8QCF!QLshj z^0OG{%+7(NXDxhtLGcs>+m4QmITg&dSXuQuw)?l&&H%BS{2#7Zb~l8;Ha}{`guuQH z^^HRi*3#TL(lXm^YHEIn3HF7kImkKvq^16s8p!)QD>K(#1nfIM$7WD9aUZb*cOnCCY046KP14U}4*l1Wlp#AfcKcIN2`^-J-H7VGT4(h`WdNMuow zQXJ3_y%?U+h%vV-l`xEuz1F`Wv7sX??0}usD}YX>rA#~3e?mXAn`Dr9i3!>}Vad0= zF?O1FV{4!HRp^5~vA-HkiHD8RVG{AqE2J)IgSTt$8fmnM^>|@?hbH9iNfK?#iyuE) zb+wUEV^FwxV?oX#PFT=e?+@|}m3X}K^K%a*VIX+CC*JwlnVa=4Y}~)r_dT@dcKAAS`G6pdc^6;J>a`)V|9>(K#2+jXSSz6YiwB6h zb}oaUi3UBLDsS6eVg&oM+Dv^Eg?J3snN%*d^jro%T}A;EA~O<`Sn5oyNn>nUDI1k>dw^$kxMVt)mD^~^ z?zmAJk=3DjqWP-0N#5F88Hc^x)0>pz@Bs4tQ515PS~_DUEi4ggy;zv_2qCva>0sni zLzz+A;yMkC?cq|LQ@uR8c#m2Xg~aB3Vh)x(7B_itXo=N8DtQ2bCR!Dz=kPF?G?W4$ zf!M?uff{UWsIa5C3_OMxn{q2IvGTBpv-}nXX0(%q0DXR|u&=V|1zb zV^fLBTfEq9q#?gEzZ<|sIY+}&L4H`3jla^9WWln*`aX#BfnvW+P3ESIu98U4zEqT+ zq+&hnAhrJC~bf6&=m%T^xlqq>j ze?0=`$2L7s*mi&e8i~OHv_fGhm7w5|X<`Qu$tc1GU`gCYkQ$(YdZ93JTI!hc11ZK# zWw3B015hM5p-`~vVo*eI6cH2zO3+ExdqYlE9Ia^GZ!ct`4hr_YgRJ)Z$PN&n=P_c`!aYDc! z3VptV3|$8ia2f|{Q(&@~)OyMqN2LK-O!RV$&~fQZ)s>~HMIv8b{+zei&KC*?K3ok( zAfl5A`Q0p6X;!Ed2zp=qpPitaK}62~KXKX2q)BEG?4k=+kpoNay;OLywZs8NNGd?6c#qoEY z9gjAv4VF^NDqRPca-A*)wI)6BUeh)?m9B!dH3HPEiOJ5cK1u1Kb`>Wp-M~YglHE`r$IJ8~O)QSCo3(Uuv z7-KTzo)}Uxvfv6Vb3~@NR>)*nH)TDBcK|H=4P`li*ghctwt4g^Ee!=`eGsXCD0@mtyJy%Q&o5zV_6IpDhgee zm}a;tR$$74=g0;r)fLSEP#IZ7{)#Ys1VduEgiBT>pOar4>UL}vUF0>uE*+XzsCFYv zDG^PeOxzP8x{26{UGp0P2cZQ87XkvuCs5Z7oE`x?Yh&Y3_V0MzY#A`O%kL_|3VX)W>QX5Mq8$?!FZmr4Eh7YVJ=TA zP0^9BE7R3rvCraWUP*J2Z(FKs&Gyj7@22?Qk9j!4;SqWUNulc51@2IXt8Ek-Ls)6F z?KC5XeX>yV!|XX?S$;dQl>9&1ln0ao4THyo2;Kqnsk{|nVe&KOMj8Ck*kpVDpw-+uS~g2sZ6oV zj%^rTe(pU!X*L?&hs3cC@rNI38Jj(lngf z_5en}Im)^2g<^l1iM{S-WMqaS;4|sKl?PHf6SQKT5yl-N5JBnTUl}$pWt9q|wnG#S%^#X{g8*IY)AxL=s2yBbAR>b8 zolxX03@QDu^9M^JlXv>OR%9MM#u5A5iQ(3b9_O(_wC%hat-z;xdirZKv#&ryedFWZ z1|TXcYmcSxRa&f#jjg3#j^3|FW@^t>OG_(SJRQ8aA~+NPHUOorww@P%EgQoi2Jc(l zz|a)Y!NH5fG!<6%cf4W%t3j;J0dCwbQ6j&y&BMX$No4;Gepbm77X)qd6A55kf)huS zfEoxGmf*k%c@npYf#l!OXL!FgqJ))#T^!)X5%q`53$xiHj5D2w3fV(vk-W|39^h~T z(n#LIu5=!Yv84cBC2n15z9NV*FQ9y&AaWYWOxrWOmy|hW&E65l?S9J$dCs0zdzC`Z z;q@YjYaxg$8eLjUOvr39*qhMVKm~lBp&8xlglcHV?So#6eOPEHI@xde%mvz)()5CKQoN;%KrK%O~=i#o?0;c4C`Dm}%>-tYAGBoL#6;mAL3x zPi}6cP$TxX;gjdz6|k^mKHC(ZrPMZoIWVDN2v*843mZ7&aK+29=EP@CI_DHosG$i^ zf;eJIwLX}|%Pahq?rt(bt^w3DXfFh*CXPxCAT=gMRLPSxr~1tGUaS=raZ>^TZ!~c9 zQxY-^ci&jMbh`-*W{85O3jqeWgU^34rEEjU_MQa5%*={YPEb{;{Y+Wcn%0b*l1{?uCwmmTJl+^ovJZrt~2frs7cJ?YV33k#<_yfnEAB~KpOtZf&EXs;f2|e20k_S z=YQlO*54oibOpAAbaY>*keZE5Wgq2`EH`Qiea6(Puy95ZT8s4X}>T z`&NxIGb9m*n!RHwoh*BgRy9^IiTahTg~k2$ObpTB!r|j*@9{QHub(XOpih|&u%bS+ zZn#uxuNWElHB9@WY3;P^TSDZ-)9MFw=z!sd2-$+fkZA9vjUF8*v=6lLJTcoAg}IZi zOk7QU+6CqEdYBeU71e$qo!I3%HoTgmBCejAcDw7U^pNVYbQ^s6wMFj+fw#sQbwV;A z7)lH!2B1j*H%S3Sgk%=M4oe{h&2Kjd#Y_SPO^PJ%D~WX@4XUn=fx#OHMR40E6u3JM zMHGXIMI@J^K+e{V)}?;F>{h{Xt`lf2fgd&yvAaAq@@(%?h+7%GtHrC@%qPvZ8s|IB zpIo?1{P(aNqd??2Zb}_jU70gKf6f-f-G8OuKcxSCXlJf zDB46Y;`_pDugHP^=Jx^${%v|Id9otuoZ$F0{Nf$Cz!)z1tK)e2N#>#`=T-e^I8!Q@ zoLll<7CwUPOcEQ25)sOdfv5gyn9HI1J^2Qw=sKAvzb1E<-Rn~zsM1xJQ*KSempt1H zKH{CRa`i?0>0r$RX=j_>Ycxm_;*_F&`w`I@G>cbrgd!(2*$omA<`mYJi??{V4R50hmf%-HSVk%Y z1n+bN2gR!DjMD^^i*J|#ioj~DdjAA981H*2_o}cq6URBql(iSzAdFYADDc*X@-=8bd_6y4Iyv))cu8h zx6&=h*fhH6w82_hZxs$Q92vH(*U074=wdu>~qvB(5TQ zkcmOSJNz>SzQW;WwA$*s26JXqXC6H5M^G(fi{_QQF9K!LX{MV<#yPw=qQOGI;-f>4 z>W9O0OTvKXmtjs8QSNDtXhEQ)$x~-OQ6flmNVCWSWl?Sv6s_YM~}#4c|*A9wds)_PcF$GccHn$##YO#}&P6Cl{*XI-gISk_v=8gL!3T*H{oBk0{GT7H>kh)<}gN zl&yu;cB)d`?=howk*NT@%`^D=$Y5ydv7!@ynnOE;L?Sr>$mB(338|b$fZ3!>n#qv+ zA#@^aIEf(DI&@f)7z`b$K{y?mN>(^>9yg?|se++@)4EV&Aoi{?#!Da%7fh68{~#!D zQG0;7;L43e#Nt!gRhZA-1SZeDIL7S0miLa7^&2DjvK)S8vF8vJN z9Ui*n-R2qJ3)(HssNe7_W;HrG5;SFm^TfZ(pj9pZ61Kc#FjKDPsiLD@$pdkDEK(s? zEH_uil+d@-D^|7!=Y?SFpp7USZ-ZXt+6OTVT75$ zAbU6t4n?X1ND#!|BtD-+Qao9zZ@`KYmX_JmWReqyiH3_eBUwfOO-7(Rpc9e<;>-m( z-f}JN>?e91`Pfce)xQp4?zc53uLD^iDf=Ejo8(FZx?-f!h;NQQ9t-%}|+lh`B4 z1*wbLC6UJz!C5ALI8rj@ku8hLXi)h5q+~6Iznxu2%ZWx3=O7u~lw0N2cPQpWvO_d3 z>6Ms3t7~khq%y?Bj4veyxT>F&MyAFq93)%=@*{5##u)w)uq%+G9fh|j$>gHP3ld?- za@vqA=BVpLBqhfO=xale4P%XYzj|@<+WQ1I8&%ymaZ4{;y;{my&t1J*pd}y!6k+cF zmM@ReMqNU)>Fe{>nz8QG)DZt1L5W79EE7+GLpDgF2J-(1+ts<4@$niE*M}pv8o>F> zO&6xAUS(<8j)2{l8nV+aY9R<`Vq$_Fq}BGi2-Mg>0r^Q}AxXY{TsDwUf0dR4|XzYNa|v zo5YR45gU#~P)!PR6h~X@O@HWU5*Jw`W*~h$hWde~1cc#M=r;I;r`L)Zx0lg*-|1sfDpBm~QR9|0L_rFU1 ztGK_r+l0`?1?2O84h{Mr4S#=sX9)cbFgEV}Pp_`7@IO02egC7})6)ZS3n_poZr(kA z*E)k}{~y2q@&AvH{~N>q3Z>P`xJm-vF%Eamj3KFvEuwuPj*?g%Gu{w@FVjiL?La{Z zp-BesXRh@-QO~^k)5l9pj%7I;FB)Osiw^7}Ljn0P42LRj#J&q&d=8YK0 zggb82jfFcGv4%J4Gz^!~4=H}mvTE2GQEb~J3`saGx$!Q?<9tt_{+;cw7j3HsmsD{T z+kp+ec(%R?JEdy~=By9k(~C6&$6t_2!v^@F7k5MFy3Wlc7k*&^SWz^c1sy}jUJXBj zfS8t*UVKwwtI?eSux`i7>i5gP5JViLa0miVu-9;jU}v}Od`UD~!0fkKo3r7Q{K-7e zFHVBbvyLw6nMp34hT7lpVSA#yngi^fJ#8tQokE64*NN#0gjWss+)xiJxK5AielIKvB)VCOl$T_^E{ zYu3C{f>JV21!B@FA_PUxP`lbx)g&!}F3eWAM$Z+?Ws4iZy3u);pMJmHIS?XV_u|`n z26sQ2T*tf;bsOb1MJWEVdc1L90rtV!A zv{fSrs7&`3x15m6CEWJW>Hxesg5mldI>f0@W0)blUvx-34&Ob=#@} z9O<&ioKAyD18FzDVTZrmVnIst${aC%y4x17cINk#6%~SD_0Q<+Kf@Y_o5;5n2ko&WZsmpR}5jC0_*au2>>3osx5bR_+=IK9lvGCzK z-8}o+ZM!hK;Nvx%*%t2o-)V0I=8pQRBQxsQVcO}!8RLl8xOOT>qdM%`G&R@JVPoU9 z-A~w|Va7jMH49v|=+lTY)HC%~DoFdRuhq6g?q6FSNrP@EI-l9})94e%1Jo((+X!px zW&tIWU&rXCzwXbmMSB7&Z^VHIi&o)-oH3t@`fh@#Bx0XD=QcL6;V?%9iux7~0>gS* zZBu!+N^wBHU27B|?}jp8#Q`SAo6$+D*;tM|T(yZ`>(349vK)`K-ftvtIXh2W4ilO{T@NnQK0+ZCPcSb5o>U$1e_4slXIC1<@1Js}< zoti}I`8v!;H!lpFzm<*x;aX3)G^9AAMD_b5RE$~IJPj*-d2O5gIv7Gt3>WCCMZp?y zJK|~~tSx$^aN?L=zM_eKtX)p*Sci^vZNXp6a17&xW62K|M>h(*e8*iz`m;3Jf^$YW zxQ%O%qUq#U9n52PzH9ltRQ+bi()f!rAM~~yxb9a~!+XkCQE!xWXJ=Ybx*fyZ8Adu)**2^ptc-XPAAvBz;z&S*M>rp4-{? zH#<&K%v^SCn*J-k{rxN?JLK)H5@rHR%t*K!*xIuNyksT+r{tuaZ zpo^oeZonVZPxMiP2d>2zFyx6(5f?GuJ1gd z2Ar(YPcM@ox5NcFPss-Jy>@7DgP$`6|8bRFOWiT=pX}uKmB+kr$7qk z6>mJr8?UyCAJ_=yX|z2`jJr#Z9&tr3V~DfCQ(pW-KVDXruXyL4Vdbe8?h%QBbdnzu z!usVXzeV6x-bYrMiRr~4!@J&;rck_^)!W5eUETW;H#H!J?wVREvFzg1;E&bfvsEff zdipPaMLr6GfPac@_GiCNJ0(?D$vJCcm5np+;(~}KB~K82Cs1N-Fe!X^%ctg5VKU#n zL$I!{P44wnta~{SzD=dYP7Y$gO*8Uogk*>-{3=hXV%oUNbz+@v4tU6K$!=Tb;Gi9> zw0&f!p?XoI5y4c~SAmW-btk0x7bArc!v|yF_$@r!5-ddjGd1;z2&AU;ijK2LEN@SJ zd`=yp{0A2`c|zH0H7Eb>-s3Pfl?2IA^B2xNylH}khlK@EGq0eFw1rV`vT|*D)Qcmy zVs5?n(c;Hhp|AvwEq4(?1i@(n2ifmv%DCG%hW^K+eZ#tR%0UJizTJFfMvhhyk>`?J zPrD>)!ZdS&69dn>Jjl4_FhVuS`a#L&u0=kr&1hNx-1F+k#GNK8)J9;%V#>0!3tJRc zX*J3H%wQ!W1_cF01BF8kNz^pth7;+|kg$Z4o<)Weif$aPrlls7Aw6b60B24xsZIh4 zCs+Dol5Ka?d7c^>-^R&!_*iI0H?u1voozyXW8t$96V>-?e# z@8|OMgg~DEPEbT}hA0H7ADIdz8O;QJdYO}u5Opq7L8a0o%2Ru;eNaJ8Zq3!>1 zqPH=_p1K{bwMe2>|NhyU*^&N)2{iHM_ov}-T4Cr3nf?C(KS030UZYsAif@%zP}H)C zXT}GS;2=v%=QPLbL#Q?g1$}{?dzagYS>r=kAASYg_Q#?6C}RpfA%FmO9|_IOKuD-< z+)HfA5~9LPHle&d7&xA4M=b8GJthv6yBlKqwdYXQvY3GOCXlTJV}{|nSau=089ltR z!(8T>h=dirO&Gv{vNUQ3xG5IK1SIRn^p?`9;R2Ushc@%b6*~ILrWDY8dOn%;Roc-o z-o6~6InF;=j0gmTCN3ed*0#Docp&$c^h|N$@m>)ED;p?^pdx`)s7>05ZPPSc5>(O% z%_BG|>;XT#qmBUe=2o?!%hU499ulQIEg$xbxcGkUNynXo<90&IlwszN^}~ZFGs}v) z^rZ@qR>Nl5LPcDi4RG*I@!jg&UniT(yF|pcd?PpbjKT#87n1Nsfq4XtOtA9Y+mx0} z-i1CHH{CH$^Hgibw9AL`hI~k*`|gj$P=%>}XIkhVL%Oq`j|rM%I>jA1LZ>{mXDY_` zF6MW)s(b*b!c))k9^|D|$OvrI8Jh)pEZ*HSbu{hUL?~Wre@M&qz#G9Tb_SpxEB%-l zz+cP$fDMQKEiYyWKr!M0D(~)eyg2&VBueh%fW=QeYx`F&FZ>f1w@1wS3Jr{!6Mkwu zfUf^2d2j1=?P)1ny*X}_Kbm%OM!_GqtwL^sGhY(I_hguf90%I{@#D@XMb((38bKh> z65*5IRc}i0o&D%sXPA60UV6Mjd@|vFb0W*U`h@ZmN6^G-_sQtCy*;zqveGvJpI5tB zE*}x%lDJ#pkGzNSn9dlt{Mx#){Ara9$9{TD2+C7*U>7*HO$rEfkfsydEI*P2wZ;pu z!a{85=Q<|#U9cTK(vHS^3z;5DS5hs%g0)K=GNosHG!(Bl`Zw>mtKhP~Bs`No++!Hu zIWTxSE-qC*Xx=)@osF9=RAgWrI)pt4yt_w9>xl~epu_gW2vuxu9%GN`tt7Z%RHK9}&jV$<6C7Vc&B|U2=DMX&z}>KW9uRliRLPcSMlRchrY?2wIh*i} z<-(BxiUL{QOv~*$o8;<-=QHb;gEr*_rztu=uxF5&>!WRnk+u1k0XCwcHhz@3lhY4A zJ4aTKa24WVDDpxZfb$JVIXiou@P4-a4+M8nW8W0kOC@Y7qgs*5gbNB;k z{KF9?DWV|GLPxQQjfT-F<1q!({58a?j^#>O4Eqo&1HF?4^&JQ@y-I9KJ><@BP5n} zG4_&5AJX(}+*lZKKWEV4d_?mAB-Ja1coww)*Y`lDd2#xO)M7TG1Z&h{Qd#>CT>c=G zw)R0^B_wfDP9NkqD&Mn4R>+Acaa~i|OaN9o*oUD27SB?J^C&{qGAN0+Rne%F1s`g% zg09wWbc{Z;OYizL;m!+VYd_%}L?9}Ejn%H~#x3c9^n*dnrZ+tc_J~%v%GO$2+c8w5 zXm>(GuKaH-!T(YDPn7WgsGcuMnEvZm9X4A3W_k)X4V*LGOorxG7d&9a-VXT`wFaR$ z@c6RYJ2bftllyB0hBgX^^Nn9EoQ-#i7nDivY zcJZdT{#^@RrXBk)TPl@RwvsS~oFDT(_cj&5le@=ARS|z|R3--XF%y*B>xlz5D@&B) ztb+`xk>2>63HwdGRI{af6Y{;PC$c^-bp~f=Zw1hgjq_*7QbKS{y>IAZlPWP;Fg*-} z#1jsA0JwIh%%@cYk3_v)A0VsBk}MTdsu)67kBB~sDlbq9iMTlFx;PWf0vW=Kj!VA7 zP76-6HKMSl$@_boMuMCR_v2ZWV;-njfwo>A2q^pl$unV6-e6JO6 zH@#dM&hlkUeVkqIT-VweL(T$vUgIEbOIB~kE0_cT<9x^%4~<8GSNlcDG1nlIQa_2E z@T@Don*?2Ky2;69ED~T2^9DayEI;z0J*R_`?l8Xm zH}JqQ2+%hg6H<`BJI=NN5bI}PfP#9vam0u~0Nd)DMIrp*=vxo|oyC)aYlv@V8#yj3 z8zT8Mvm-9rl~8K?)LK_Y2dOG$M2l*9x1UEVw$$rnvh|>D*A)(CuAZ!B-rg`a4u7$M zgmt2dI-N9GIgSH*+Jyk#Y?$l2Y$~Z$%3-@i1p``vZ+#0O0A9ZGMAy8=er~dy)WTz`R5Rexh%nq+0oEkF|{*vZ1Y6L@g}{it^{;gs2;R z!#k{+HY2Mu=4qbVoMKCIRTSsf!P?rCs6_^(UpkJ*1l+*2Jj}qRK-8L-n=L}+-G|@# zWE$u}5*1(9$v!@Xsv$9U2u58bB4w0rK?8Ni0Ju4Iv?0hr4>K{^sC5krpthCYQPVlu z%+zEvu}+)1S#kF{b^~Up9x!Ufcq#7^nPjm_LBWJhB#=rVC;ZUjrA}RkQ0q(-$Y##q z*SYRJ1XH$NofL*Y?ib)fd2v0lBC=5!>&$Dyv0)Q?elTUODRtf^*YzWaYiC`5DY!XM!h8xZ0j@QB!z)McQ z4i9C@tzb4xYjs(fFbM-E!9hUtNo#OH6?`@fu9%%J0y?U-ORUOvXO3S}X@-dzMht5{ zr}Jn|g67K63U5;f*yRAN;r2P}=)2$e`vSP&$l>j6PSGprZL)9!Z3t26>LPfB^^`9&CNMeIXgu=s-#Ad#7_a95x6&L{jfCdak72|@ zsXfb@Y?+pV9eJV9Vt{P_)G=cfmZSInx@s3ectXU=M)npHHi6kc4{`C~ zMouunf>#uaFfRF1dPPpZ36Gx@<7Ua#Zza z?dZgre1MsSdpdg+`%x?-ygt`CXJ+!?65JV%xBhgD*$mKCNmnXZ(H^^0P0SeCvC9jm z#GsE=f=%1;_ZjDIyJwILv)*o2*fNTz;A0n);sAe ze;Hw8C#AZlFJ1J4ZslWiQyyggPogxlkU2Px28aNJ#%-MyiI&~0LU&hpX6a!uksILg zE(%5KLvdb>CIh|sJuLr> zkohJ+BPSm&Km+SmJx#$MeglzmgJP$Z=H*~C2})nGG9MeQvZC14G&!%95sFQ9<$}9M-#mr&s(aT>?@HfU}vcQ?O4N;Svk+YV~!^2E2J^R z-+5b!`I}xXA=C0%;nzH>^fIfX$br(dP1*-u%P}xP)Ffy8Y0WPPJ=N351vsV>v6XFE zSH^{~VOt<-a`p&9DKf7~PD%@Y0f_}4lbccvI3F;kz=989lF=*8BBOuUMtsCeLaGL^ zW3b_Bk`pl*sPQy34#>fl6RD5*@X8=!eKZHwiDIRJ+=g%9gki)~D&d5j5lM;3aagnA z?n$&~brr~bqV@8A1oP+eRTHM@@tyj({JF(PfRDgw0npwp4=zkXT6z?zLig+Twj$9; z4HF~QA<}}C%`u2x_qb|Z$te>ReeSr>*yB@-+~iFh7x(5^Y$$5S>3||4S%vUiXKusY z-qO2|2?LXwbiEtl!CwGo`D-{_fI0D~$=zx8Cg1sBi0lSIFD6Frvs%U37<^dvzEENy z*g&82{^_{T+3Mm5D`;%CBVE4Zj+w05pKQps&$7%3 ztT=E-DB0gyF}`8Z0bDay#B@f%m0d8Itp&eHRT@Dd1(a z)n%ZW;pWP&kKI&XQaj`K3?A)pChfo-X_%-0tSW3c8UJb%_in-+96$LZN3ARLLkKSU z9S@|cQ^k@0dDWCzpqmgo_(B0xj=4y^P}1;qA6_M(@*HUu5Tqj?KxMM1$SnPlcACb1 zWCb19_R_%P2*IP&L&en`XeEYk=syH7QR`+u%qBq5A98z-$cxS)SRc+>N_po_c~X9J z{e>u=6gKL^Fyx=djg5kqMk};39&7d$2#5(6WS-`yZV?Q=&fI6xDw_mJ=T2# zS6%Z9zAC(q(i}R=?>V{sl5SNsf4V90;b8&>*VOCI1HruEturB<;HYMTB{5z}lX)4a zoL-`+Nt$GL_u_EW{NvLR)F+)pTFTQ>lrF*hgwbq2&SaU@-HlZRJ~F*lV!vC>(}Z@X zkubR3pk2uJF&lov6eFb$*j1(g?nBwT0yh9pemw)SXAj(pZ@p@wO4zr(k_YL8*RY9i zUjl-RL-VC=g_pkJ0h(!LYp>%B++4T}QvkQ3b6aFM9pesNi$t8Dr=dd80|OaQv~8OG zKgT3XpeW%F{~PUr&M~|wWQ{Spg?4N~9GQoN+io$w#G2mJ2Wzf|Ya66a*-j@dKlP80 z|H}n257*)e#zTH-UEwX;R5iF{);_OS(m*uKGgIGd&mtX?(?ub|9{~k*l~_bUaz%hlL&7g^4468Zb(YGzD%%`DS^sN% zj(ULYBVuu5ux9DDCg+R=nVM{h{i$W#2_zQYj58C(pb&$`vgr+&krRO4@U=1{2#dm2 z(b&q7mzCDDA+i}JjimC8hZ-+Zt%lnOK5!Y!+I%>K$WJ`tZhFJ6L}snODg=oxx6h^t zBPw}GAIpRl8{gAn5wn;inV&j+m)Gjzc75!n%`RkNww~B7sb=44-Ior&nE4T0daInMc6R&H<1x8DskNA4 zTu4p?o)}5qU3_JT;_bRfRbM0n$x6KPnH*evPqMq8m?i${*p$}ZYFVdFnH@upWT;hl zR^I;lvEBe5JLqNwAVU9s4=tljfQM*2ngz|_OytHxjU!1}arDJ5ZpNwS9m|tT?8_ib?pwP3 zH!a#B4H*s(C;tjHtyPqpZrpPG4GEeJ`O7L6F_?H$Y$dr2`5UgZG8d|HCq}7=Q$BCQ zazIP4t3E%_jd8fnqK{V$V8sKPb-$_`x6>ni$Jt?3sBvA^ zg8?p*ytueV|3)^M3A{vzZu$SKJS@r`=MC}u0_#}#DuBhP65$fri=fuJiS#<7m09du zzr9~oj1eVg{YpwQY)3;PVcY^Ca`_Gjdxs%^Z)*=_>aL#q^jjQ@F5eq>7ugigdk^b$ zge##!f&cQ6Z47bbI>_Se_PlNEV2s==J!P#I4Cu;tz20dZ_K zJ+L-0)$hIfZ!~2P4QPr~1*q=3B8EYqPGFqKv)~OA&gf!qy0&)uFx2g~1X!F~NhNVn zsqr4_ihQq1{C@gF*qYYmxt3OllN!oll4irQzOYrimI@YtU3KE0vY|T6gH$UWtGS z!xEvdEE9nKT0qK!!khm|?BL%iUsgzA7EyC*sPo%U4!^56BcV#{Vhm^TDkhH2*^PXP z7GO})abzF^*e2%&^ZH*B(t0n*=6QE|lzp8{x=Ji>4YtWr(TV&{U)U z;tvbtG1E%C?Ywr$YLF@;!=~!)8ZaCg19o*SF!b-k9=&i7Vb;{MFG4Z1I;nz z$CIJeTh-3OTX<4Ke4(7qX|T!GiXFI56R8Az`*W^&Uk>CP!A@D;Y`o{Cf!rWUH%AMr z<`HFK+3f>(nmL$LU zCF*oQUkBM?h9_cl1t&Ky-G{9RNa`J!IN5t)2kRg}RSxtjj02*g#-z&#<)92Y9Sm6L z$iXgz<5m2>71J6$=;t}kyuq`hWxRNRZ>xWcL?x&us{o(ql)yA9pr=wAX*ERCdnpqNGNRvLpu1m=hSeT7JUEtV8)4%} zB7=Sxl>k}&HU#LoE*g$Ay5(|DA!06C;?vf?2vUKr1W_G5>bqHd{QoV$$S3uQ-B@^40qVtH!7L?Iz1c`zV#T?`QeF86+*o)2qeWt_#~|l7xaR3 zk%LO79W}EWM6>vl-qz`u`j>sZ4LzuWjfzXBCdADW={i!;Nim=*&U!dcVP>3m3IkBw z;&bWt$&)9qIphaET^#&NOsYJ>`ku4I`7R^fH^_DMam$U3>3NBq&LR|Lm``tK7-MhY zniSfwo*B*$W01pZf|c~9HMT2+T~WqqZ2@~2jWJnR8d{1Tvu60zv6pjWzjVd8Ug^eJ zbjX-BDwm5iBPeoFoxDH~-_vLzg%@v*!pS19$T&Kfv)l#azb!z=bGv{YxWyD=X9o)e z3z~^646By1a#wHEQ8k?$Qdu35#Kcey-NScS3{|b4=sZ{-D{&;J)WL(HKU{r zaoDFhMJBkc7$9Uty^s_7o$gZmof~Bv+A!OF;pJw--6nc&_=Hvp)`}DWrpj?8N5#T#7(ZhRPMuI0qrFqwhaXrIgy^H^-w?>YMmb&lU>uTjNa z0-6L*%}VWPM>K-lzR)cEREgm7*Jo83;xg^nUb30k{pu0CpE_u6cSN=_<+8{fEf7%1 z5&nihn%IM3=y$^{A)mVbKgwzB#5iXo_vkUBBx+C>Bk{#fkIrasAJFM`1y&u-hL+fX z+2S0ZS4SPt4c3$G%Oy_wkKD3;|C~)uf1n;=#8}8^E+tiadqPZlrZt6r=Ahjaxa;^~ z(-Y%sprt@HQM}F34`GV%d&Bwd?i&Y`kiX_d0w5#MN&q;KC5btz+bxtwtw&I`LAljb z-d4z7vq41lgU^moc<@NudH$^7b#jssy0@WF7*gl}=-C1Pn;)|X=R-Lgc|iirY?HV7 zF~|g${ZVPi!!S^yaxaXyK22Smw{2*l`duiWN_^bg*V1gP?PEX%N2;X2h=6^ND%R%g zc#Ao^RMF#k=oNH%f?7Mt*0?hzvrYl_iV2TVzv~rjF7J9VS?#(}DQd+SdC2RDHRCe> z5E*3a-&RzvhwB-DbAvWUB1z-g(de^ib&nvx<4~rw2IQI1Z(J*rFa+~*4SkeZhU1k{ z>G$Z}Sw!3VmAhWZ&~hgn`&UfzG38EWqqP<0d}Bq~bigQ9p3sCl6^ro@SRX9fKo9i*X8v(d~DsU8p8SM`oxUk?L^4laiU(xIe=`$*lrNVX~`(>9t6kG{^4Q9 z0Nryi6yMLE6aWI7`oI3moD5!Sd;}NQ%c7%cJuCC*W}P2PUX}h} z;@m3n!p4|JMi_)Kni7^#*?7YiMk=RvqMo1Md&L0TaO6%pD+DoFhJ48&O1&5=4q~@V zj(>SfVJ^RkytvYUr=Frwh=nmj%C%Q)s6uJVmr4|nbzZ4LH$_=tH4xZDvJazEb|l6D zIP{)WC{bh0V^y1d)wsk@rlA~!T)x6Tlc&i4$b6D`F~NFKi1n2Sd%7^&)!Zx2Aq{}{ zu&>9`VutL`LRZ+YHL!_eUK>F|3+NIFR~A88Te;^h2G7LecB($~Lsb|VUWq~*AbNPj z)=Zjkl>978(q6Bqai__5?z#(EPQ6bQBMA4fsCt8UyHtZ+X!Hv%+Q&7zc2{0&WlU_O zf9^SI18QU(MR>)%X`Eg?1OyC#%(JnOma|}N@E-s!vx0UR?m$Qp-@%YFN&R`~LS&cA zfFZPhNah;M(b1rl-IqFzH121c=^ITduZ7tl4pS83{bwge`OHaWe&2`;pvn_XdX>ZQul>U4d{_aP1bG($m~)myZm8J%?+h())6DsVjlP%HFw6Sx^@W z?QfyA0^IWfJ!jySsb?gIT}ghWnp=etN4;}&F1`+O?sR7$u*{aQnEvB>ARyh;gVUdy^q~83n?PL& zurS#pjQOtzs@3cnvQWKs9njdnN6t}+D)-ZKaYrjP{EK9^PPe*QbOC^H7xQ}~u|AWA z(+JCo78Bje2b#vY^f6HafHzx0YyR0UJw&B3G>pQbSjxOJvF*bxC46KnW(x@ueQblie+Hs;(ttZ_QZR#tSl<&O@(O$^cQ?JY}lD z-&%yDXX)g0ZnZ2aL}YwPlTt@~c2Bh-@wGK1m>EOb&3sVHFWs}~k#@ITq=g!OjC~+2 z-%7Bg5t;sYJ3TXKwr5O;4<&=IgEaG@_Sr*x!_j>4amP=qxtYAHAwJh4eVd0zR z=9%71POnLJlp5XDibhxd=;dq_xRj0{wd4n{N|!2|&?(pEV>kOcmIv6(XQ z%F5r>Su2BW1$~GPLaIwIkyyP$mqx>cLk$f9fCPk{r}%Hj??caUpatLMf;9;2t+QW8p8P zIgw_dqX34#D)cyDEchhH#dC9iq2~dO!9Tefo#*THFbm6?B6o{GLlx z6{8au>VIdUKR&SvZ>OGZ~A64kPm-CreFL2t3i5>kF$G{!-R!u4L zXCO`#G57!aGlttYc}Sd5jo+Df3!M+YG?SUNUy$cLY#mpmXCap^0?JE<+g@hW&fNU( zdqxemEtZFLuf#Od9nGYuL*>^VVBW8+t=6k+E2};4lD>rMh%3Q4dcR5|qHct>V67k5 zdBdIN1APUTcJzi|6nh87XtwBxd})iHq!c)>Ow0Rnz9L4-M309k>;XPvvL!#n zd!AZRfrmO7M-e-#=F*EYMHaZF^0l(30>!N~IYe6t>LQWQYTJ3TBA*d~}%0Vs^; z3n7X!y4d%EEYq|LQMnK$s(kYB_pt952_b}*!#ara;n@=^`0$QB<}yu%*gPgqiYg#C zTMRrE_Qi;`p@+VZDYp<$cKXQ(dQJw_(@=5bGTOjfWqlSF$rH82L`@E z6&$_qKe~Gl9ctCxnnzSTW!j1R$5pW^$EmVGe!dWkHc7a@dHA7Ww9{R7WL(QxIRl zO8~UB35cyYUr7SWKx_~=D#gMN=|1S(U>LaNE`Wvm;CX4GDPJ!!;RWijeOg%ZohCDC%DXPk2cbuMlICJ5iar$Qn>UY$71gd>BtM z$r35oP$wCb2axdtsVI9tS*Q*rl2zgWC~!cMsi{BWAY|~MC4@W;(AW`yqQ}N#i#9S` z3?RD)3>-Zk>Xcx0B1?r2NN6_=ig9FfI}AbNG|TPKa6g!U$zJQLiOz6m#l zXNKF-o57~=&2U?M6WEl#8E&O#0^8Cz!?y5D@ZA@2wCV`vzg&X0H{_tSJDz@`2;F>< zk7|xE{Yxcy`vVT5yQA5ci;%^S`6%Uv(~nfbcQ4|Qsw$R2D>Y8#TezZhU%H$pT-ICYJ7pA$@ z0kt{+^Y3XnV~&Rk%j<9`g?Z`zdCY@!n)6cUaST6z|LpnYjIw}`cp)OVg`|rYvIIMm z+<0Y(4`wph`g{nTA8bN7hwTf{g=bZJ+VMhOoF5{ub^VK}`-z~HQ1hmMGsG4`eRo%UD zu4^w`Yu*`0HSNT??!9nTb7vgatgM~EHKKk%MsJ^W3*s^DkWTZdk=>{|G@dQpSluFQOT)~3^> zVU267NB=2FPZyikcD1*z(S0z)-S$EzipRP;X*i7dnseLBuhhCu`Vqtzqb{9UCpJ6f zBvG6wKsFL{3h_(zoANvoD~UKsC{7gMj+195N-gEYo=W^uzfhJ3Vx{X%GKz@;umCZq z62D}!DbEA3(r%NC;zR*VH+d$a)YhArQ^YSt>125%Ryx=up%_tsz#Dcd@k>^k@;nkN zm1>evOccOclV>7IeXxl=h4`h?n4CvqB^ymLiW3E(c41E;eo2@q%OkPUbtW0bi2?{T zc_yONH=3AJiC@A;$?{07B+EpmF)~Y2Oc=BfRjS2=&q#c!Ak&m_VgWRnNHf9eS*GR` z;+L90@;neLQDTxPMiij0gFTh_rSeNz9*C7Rm?RV<3UG$WGZCe>#KcxsBV>C5vD5`R z6<<2&YxKs06FM4*k`|ZbgApH4cB##U*pl)R$s+hveCaqk@w0k|DdWTf_Lf+*5>+B$ zz|KH?iOAB-7_op$OAK0wDj8ey*hHP+Eor$}fQ8j1W{D?6BZwv62uZ#zEU}HqP{X`R z=Fx|rC07d4&svfz09C&d%>KMF)UkBR&@8pC1x)9(^fizehVOXPJ2bK-MTn&sMRZ`@ zlFct3pKwVN5gnb~=wSKeV6x~hY19XmCY;_J)pgXhS#fCi-%=Xx5WDTu5liqAx4?cW zSd)<7M)?&*@TBv{HSi7T^CymXqDKPpUJd8~`hPRYiPdyDc^4Y2Wnx)1Qujr=$E3qn zdm_$ia+%k2FKL|y1l*O*EUC}V8%8i1qcX)Ryp>+m2AJO;OjZtkf0UdY{(dvEGW`Cajq99OOg9=#q@a-tZs4yKSt8wp3d?)tEy+(rHkvn3o zQQ~K2j#$PO7VH_An|px;e+KUIS|MrNezEOmK-4p`Blj9f{7mkMwMG)Vkvn29k;Hdo zj@)Z3_!*fi_ZlU3M()bJVu78RyK>h^V0Y%O>?IQTow<{1i6nk!cEu=OB%nynu4M1D z6q>m!*fXqxXYL60jHTk4IfA`mt9WFN;Ah$@8kKDG*H}>r(WJI1Rj1W<_CQe$`@pH8+D}uU-anOx z1YD>1;kaY^BCoZ}l-7H;p6^3xZyfgun@OftP1r!K+R}bc>;0y=JmVT?_f~}}7>c?~ zvOZrl#^oV4IiSN9QIo;e=Zo}Z4iZ{~ah`Zr3R%zj?Nc{LsofC`cvJ22&i}19`-txt z%F=Jpm+5yPOkcmbq3~U@Efu0upChU`wzlq299C<032s|c_lEn{pFNAy*4$pjF|~Dv z;;>q~7u^0d+Vg)Gf6uGB5ZusIVtlYq*c1K<_rxDfKrbXXE+M5Q6B4OpS|X98B@^Fq`@yCW^O{WaAj}$smQyzW zKP6V+s!nMLkEL0_5_#w6`y^!!Rpcgt__YKtAhrK|Ot0cxfn*#KQ@_wMf}Y<8NpyHC zl9~cw(IdK$wEN*n8ZF1FR0AM*bOkP@Hhg)Ls>rpLzz7VkMxm<&Eq`7Us`6GKF$2Y@ zRdfMK&+o&eS`JlcOaXDKUVqDG1LS@$6$B+U$n?`Gj|X0oLFaS%lEW{}Qw{|Hk0)w^)Se_m?-$yET+qet;-*2q--|)xt-`OacHYH1|)GkwL!8ZQcrYiVcsD-}(@TO8?%{4y! zheRFd_N%brV*44ZYrq94X%lflul4G(a@aC=G6=0y{&fKOo0?9gVZUu8ziJyHbj`um zOgM(F1-~u=*D-@k-dJ*_nZkcd8=4TQV)CS7eZo8E%HTx+QjrkbB!sK&6$PF$iNh3Z z%}yFH%zy6gV2N8^a@BWqi3(t9N*X-Wm1D6@!cZ$hA6S{q1MfEJGvH8U=Qqn`Ykc&| zul4PV{zfS6vwuILuG%j8Qod_(kUSw+rD$X4ixi(%1h353#=djVcgMb?TIXW#X=@0gz`$~A)qrG@%I_V^fCs;b0l5xsxqjY3S z_F59+`6yIn(oy8X;HGpeXP$hn2{+R@7PND{gxm&fh`Kr+f75a}D7jkxR8zuDpWx!MlXfO42SBp_I{g@TCo z5E^7u60Fe>VPuVfOQ1%MxvJwyaE88Pg~wmw5z#Bm@Eg0uHANxW^}Xz>dwewr76R;L<~l=)yh=e>%U#n+`z9OJ9gA@NS-p$8G_lnF8s>wF%G{2shv)(d&Uo#koNkFwON@183jiqNT z;n1d&=kg=ArX|D7iawg6LU;C|*#tZwHjY5Aw2T}dBxrGH@w;u2BkX+*9GMj$mZ{ag z^RV+xEtHELs6+CViWyRUrDEbA!6TJ^mYy#1qnFo(#l`^@F^|9KN4dhP*aYRBQ2xaQ zMy@D`ncD!p@h!5QRU#=MT~zVF6i5~*im4(dugsAz+)3CL{!c7qG_j+OV8iOCE2bn= z%tmV^39+d)He0*Uc~)QIm}RN3)lz~P^NL~CF*~3M!&+4=7e(3%73|T5QKZPU0PLCxFjO_7M~XOiLljyw^J#&(02CG(7IE~i zQ4)Syv2EqeHoB_5YbB_o7QID_IB<;PJ|#~rr3|d#_N5`yLYYIQ1o?vvjw%OUQbZ?$ zPM{DJ;3NzR2_7 z2p-etJLDj=-(7qhJrU2dGbo(?q{{3`SV%u9kMvQT!=vfDDNq0I9kN6QX@AV2lrx&NBn^-biT&pym;d0jG=oB{9kQSbbrMFzs0JzkD$z;K)vTnps>3CQ#$-fuw2M~ z+T5Ne7F8Mz^W@o2mH=&Tx%}4>WX~;=`|R>d+c@0-R#kPdW_<@&aUb}^Xr?6Zmy<4H zOQ~BY`&$$Xp0iC_FR_W^G3Jya{`k{a1aG+_C!NMX9liCd|8;tLU0ppreS$70HBfdT zE8hICVG`&N=MTibTVIaH>`P9$s1rgY>u8ZGjI?8ne0LvFlraXz3K=aphE@Z=wGygz z0yg2|cT66NF-maiXbMZ0U15~})pjcP$nvdE4f7ah;{d$KwoVaXJ!n90n#$9l4FUhC5-8;nnv_H1#Z z+Aou>_YH~7_hv^qtk-`yCvOmkPs5%<)J&s%C+AL&Szf zgvP;txjQ_HYhv7n_%=)RF+S21<%^IXa4C)G1x zWgCyo_;H~>dD*gSt_xaCE2+*20M~lSw*2Gj4%E( zJJNR)6E?B#GyK9;XEobR6()3NPURJmc6S{&SmTw(D&O58?94+_3`NqErt1V{yqpSv zdF>8=XBr7;6iJ(!t`q+8N@JDpZV-0nAt{F9aLsiEC)$WW^GvTs=wYd3J`%kF#xf_` zE&dBuPHDs5=fIum*hH8SX0^Xw4x*cX;)6i7`l`+Xi0Pd}Koo?$mo?2eCPh=|x=nR5 zbnQqMkPj{k)+kHJ2bM)^Bqj9Y1p&sn?|yh@WW3r89lJK=pvjn~-Y^;#XSgpnO6`%( zQ^TcI>aL5w+=@sDPg2vn9|1 z)z&Gc0v(la3s4IxU1v%}bSk|qpcJXP#wm&5seDU7yEff z!_kS=951ix*<-|1YmMh*$1)%3h59=WM1Vtt&~YnyY~!_kKZ(@hsv4ML~RK#2%C6Rsfe^ObJ~wb}0%?!Z`Fb+0*eP z6~f(U<^VB&3gO<_-mi2?G`J+s(FL3`7y$sSmfON4lj$3>e?rHjct7>nlV{}$(j$*h zo8Bdlb~mQlHO9a=1_KkDWxNiYeR&rOulMg{(ImYx6DK(!KUWdJ^?d*D#z;0ff(}o3 zt*_6?eXyV%OfYrPwU8yk;pG?WD9P+&7KGdadP)+3QV=M`-E<0P0H{iqCB_a#v+rpW z#pR4UYYQ}~#x2-N9DU}1)58$*P0F6&^Ew0}gkvz2&Nzv^H7kw@XWRhj?X=pv)g*)Qf|fK_??Rt-}o-MeH=!(rpQ?~$1ac56plIM8l1yJ!x=O>-~+ z&b<0&qt%kzxiatF zcj{&9s5;^SHZ_rbr(QjmP1w{l_MLk1+%?|Rlucx&Cb%XalDKiiN@h-2jwP!zD@)x6 zj4uxU(b16(=dK%<3UwnK36DUyaXq0>C`3DjXJ_xtGVk?zy&h+CFXzu#u=LbZXx8hU z!ZfsAn;sYT&dw2z*xRPFNgW9*^*BDl(h~}WLbOwOcJ|C3Ew5QwuIz3t%W`v+o4Ciz zCy#__istYW?mM1hq@JRD?>O%GRD0^hL6Vy(HtV{Z#iNL%;(DT&EuGxY>%IuEm!suy9Tad zWy>B;*QaND>k}tATc#w*cbV5F7C5-ejCVY~<8cj~O}U0$kGHbA^Fqk+-Htc0Jia+A z>^g4lN@CaD+@^YS>K!{zy=5J%V<#%W?}59iNxfzrtGk~~O*qI?FIoSPf*F}&Y-+;6 zow|7wR?3_eb{6xEQO;tHo;m*XcrD4Csp=-I)PXKnl4}zVZsCSOVEyc)pCKLCuUa3s zPV(~13GtZ6lK(hre#Gjd*D3yJMu|U8?X8X4Ta#-?jn9y7@=RXhp5q-0_Z>ODcF0uq zjTn!3#5;^fjKyS6 zvU+L9v2dLs27-?HZ{2q}HAe2_5mv%GzWIqyB1ya+;ox3z*W;-As-(IDy3{+qRW|MU zWw4mU<2VYj(#Ufs@QbipSr)0YPnbk|z4b#1XHs;1`tG#(b8>UspHx}i`t*I{@r5`z zns^PNY3^3?)iKRF0Ofs1>E=6=WoxTAm^7=CH+IwBr1{*+g5ly5=CiNRRoa;_xC0|xIRsA_{Cut)I#Fcgh-hk)^UL>xhVtE8qkT^e5+b73 zKM-=47#9;G|FW|W!m*n4ll-Y0wSbO2t~Ksu;5rI}(r{YC?PifHI^dO{dH#fUctQ`b zLtT#y{mOfeu@&jSD0?p02~`@+d9h-0_Ls=Vinb%edHh?^#?VIbD3x4FAdNuaUFGnr zB5c--yU5!4X8x$!q^V%VSg| zzZbU`z93v`oAwnhW*wE2lp{>BD~tG9INQ&zzt`|gU`+aErjD=hJRWnO7$%5mCqZx> z`UW_u-@o7gE_cOc#4XXz-QY+GIx23iC~bb?rg3mpoyt@l_>c~REfX=76p!W<4|ko) z+d<>TDX-kT;b9iwFN1;PCzp<(7T`mB>k?mZN9KL+wwaBnXBO2n62p75>&cf|P-7R) zfJf5x=gPoOy9`@}gD@7?H6Sil1&o%NfncI%qylAvmP^EQ-6W*4mQR9HXDlTgwWbcs9c#Mi-FWrnn2}Nvg7j1o5yVlYG;yYRe%Z?8hvUTel|)&EYLC& zpiQN#lxzzihlN3=QuP7QqgBpX=M^X_H$T?3)?qqZa&6#{3QdY*2G)R)5h&5ytt#!G zg0X`Y)@@{gfIOlMX&nP(#gJHrQmDW`qyw`-cM_G_0XrB#S9T%jlr%8S1?8ba$QvVM zF!0;~tF64KKx%VPOlaRcCNoeSDlRRNpjwR5G+6uuOa)ujLbQ=LrzJ3x2CYKqt+^S9 z8AfVb<$al01~|USz~l-$F)-6rm~MPrOO+6?V>o=GchABBNSUUr3QSZj zG2!a)6e6}vi^%N5@SJ!a&Lc@Y%gW}Em<0Mil)MA!sSiw`R};v2D&2zvk9L9^p_yaU zbmG(I!fF=bromZFJ%~}p)xhPW(viu#^xRyeZl7*xX)>;>4sGwWKE@Pt9QR`|b zv;}i5#hZlAq)|HR$UF&eW!IX2PgR7*YCtCB~iWKak+lEwUP{~0bG zPdZC%Ee^SWjg|AZ9LJI!CYQnLXkaB%>L;4E1&)kkl5vi>6Eg*jEwnL7Mw&_r%UvMrE~-iq7GI1kc8=2&F(!%@Wjxd%AO+h-9#9>1N8St7E9;(BW^u z7h&%0T-_9I4m!pTL=8(Q%*o+wey^4Cfx)L5rWhd`C2^}YENmVo1>#vtShhOZm=y9J z;^uQGCjAL(XXQ73@^yMYU_GvbN)Zr`f1yS>QcR*2a`FbP8_aSs-Ec5pC_;ASNZ;oo zG3254T$li*5F3GF5DSHgoAZGKAbyC%|b`maSnR~gQXo$Bp@R3jP^Y1_-Sl% z1S7YWmQJdnBURs=tb4rB{8lnTGmlckEmyn7)?_^xrG^QsE}yTdrnS0J9UP+4rtXGO zCLkiW!zE}p?p zw7)LC4zrYWV*Grg2-5AWBkiuGK#A5&vbyq}{@t!@?}{-LcyZN{1}aLr?m!EnUXr%; zomG*3+i;*&8wpocTmNiVQB|%(ThYlWsas#<+}UHA29cnNL7?Vs_0*I<-dHS2L=+U9 z;Z>!;C$bI>MGii!ff-LnMFzmEK7BRdr50?>VsCD4|ZODbh9R;N2vZHL!q_zwMeJoDW zx4E*VWfucxCZ;M$zpax2hwgb>#OVB|zfL8Ej~uMpYRTX4B%Y}`mCm-+LOYAOm3gPP z#a!$+Vtxkrht0CzI;@us2S=kWQQe|{x5c1MM2!bNL4^h%1blUDHaS9e^3~0jufpp1*R1_q zjZx)uHC(jSO&289h?K>SbU#-v%696`#cX)_*0 zf*F$*UBD#0DI+(X$E5CEI$V0&5goSdzbTF8G+lBZGa4_M>nU9=nfTctdKXMg)xCu}9`L_CBF?VJ=yg2$#^j=yt?yU%Bb3U^;@6GzICOw(w~y_qUwKC%n$Rp zlh2=I^dfI~lqQ%Ye68iY6VIPO^s4Rmu4(WlCOit_TmAAR+&!$wAOGu#&-nN)0=D~7 z*>TH$lZ0pC;dFCH<1&LmzlT;s#D|nXboH~~Fe&AbBEj(n3i4Ll^kG0QG$c!~G3KxQ zgi?@;V<__g-@WP>kA3etR@WtVrrjdB-<-8xK8_8K`3WX%+OL(0SK>^K$TZN>*I-4N zyOyDlNOln6-# zranx_26(21{8F2?P@{cHe#~WaK0@?;_e2549`0h(F2M%HZp69?UqOB5VuDz{1P}bF znj0sLcZhZWt~LXkKbTvebnVQoP4nKQ>#e4yJMMPxyv$@)tbhUJXmNl?U`0MSebMHGBB?vh0<#%Xx zx})i2<#PNd*K*B{Qq!6mi?*YimK|uz{|LY?jRcxC>t-<3FbR5RRx%sr@xLb+!HSy1 zE@U>R!>wbHn9*l(@tepm__Q!gFZ~yL=)c&W4Y7RwcwXumj`scGslU(qAobCoeWZ`l z$XLp&6QV9S5fbd{Qrk?mwwhX*JJVw?>E+aE$7*)Jwb2Uwx0~2lSeW@I>J|Bn`HW}% zHdVV$j+UNNtm@iMXgf0(W&84;ctT%c z#|bDb3S3{w*N;(uqf!$?^5o%&-%;UndOfGe^i8X|Bp-F5d0F=Ab-5i9t=XwHP_G%d zXymYnU#B=zZ_#OgwrlqB=(KB=dT&}sUG(m9#Jr|DDHMnj!rAFREt0u0XxyE0Wn3DR zBi-3yG;_pcT-z^=Cg?u>EJtEhOB*3)dfqQeGH7zrQ+`T1{b2C*or7-h5Qp&-wWxEM zBc1mS-50&bMbKNK>@LlCimzDC2fChTv?A&)%@>747=WK8 z{|jXJL+om0Ljp|!7+g&YE=EGv3}oO}0`D#j0Pk*P^dyxp2Je0lc9rf&0!U&JnI)PY zhyj$StcU{Pfr-T~LV=*JdxOc*h;WUdp-2csLr_psfuK^F05F_^qd*jb0Z>qRWF}!y zN;v=oOsnHX{N9eUUw;^l^m4bRwoh~ysOoEBeENqBmy-)uczGO&20#b z6cVwTx`w7`BpP!t!yh_VD?;Hr>4mboGShEiBLz**W(e|VwEB8#)!u5&uDdYu7>q`G z-R?qJo*7wKgAq0?{wJgF+67mmg|ctsd|8aNCMU7j*=*Kxx-abW<#9QfJB5Q$q?C3D zdBjbckU(DM$~GI1nzhB(xH6k{ww_UHT~Zz z2oa(rN&f}=jw1D4WrXD0_n-ML#EAMfnq(+3-@Z%^N_sm5ZJa!AD=XKN(z3;@lynJ; z|6QPthY>Mq1s()AC*1*QW{a<;WZ2dRryJ**ZxIq_ zH4JCBv<82rzA24Y8iV5+-?WB1H7FsXL$L3x)gHBh8Q?n=4)aPA275#cJ20W4VB1$c z5aWAXEZ$cPfO)kBr97gA&P;3|Sx9Xl8Xz&?C;AS9a;MfuA`Aj8B-H2a+n^-H{Ppa= z-+n5tQ?2FSwB%Qt%I%Lg(vg!9qD1xZ8axOuDk@4UmD(8?x(Gok7P_ziOH2YkxE&^> zXc$>sOae;>g*>zp)<}d|OeT8O6pSP;E{;}90|^owvPbj)j)HWY8*nxpfk-GIhBWy1 zbP#L|pT~6o-#IrA5l*1z%b3feVO^Uxfi!JLM>LM?ynQ-Z>crWiOo1|;Ri5#;mvt6Z z^kCPvauMIoB7;0DTEqG<(Q4sfU5C+d60jhlGYAY4&KI92*Xd?&zjF95WP&!mn zf(F1c3?%$Q-Wn7{SvuYm41xQVn4J8Jg~=#5)Aay+Q49d;=ne`I-2$MZjw)IZ0%Ilz zff|qvf#!8D*QeF(05b~;MlRaf1uY&hTAp)tekm~sRIK6BlqRH$R^O%!BgP4^K4@KrtU<~X zGWfN>!JYp&oc$B`LUCGmH9Mt~+ELxy$VueDa{v@ByWJNJnb(FFu=HJVW#xEDbo=cv zElC%hu#O@i`2xP5GE6@gmyna4gV({z$!xFttFn{biS*#aM6rn9?`dN*q`hK>fYGP? zN~>9NA|KCt@1gNrdfB90Qce+_U*W;S>*d8|B64p$RbV>^k1$c}vj(9~w@ zyfL#eveCPd*a%_Nl0>PL&+Bz|#63+)F`vdKe+M<`0;WjF=YG>U_yeej$*1qxdZX0l zS$KWp#ms(p*2c@+x@mHq`1{sb5;lvrYg34WkfrBYGu zg-;d9?5gxRq>r)kjn6v1r zq`lak9Y^Y+haIf0g>1a?9oeMX%Ro|vXR>aD^O5z#K$7p?1gP|!fSDmfXmX3Ep}m=r zE@uJ5pVDmogFXEK(%1KxHNLM?fkSlGk(rY}uv+-{eAW|-O($oNip8`~ko~rx;Iyh) z;)XkAUiP16$S=tQq?kqp5JcQv&jcB<-z!QUk}%^wIGu}cGiaA34Zjah%w%gkCb*ZU zSHe*`R<|PirPl&TYB67$eVFtarF1vz2Qg7aogSF;i>#`skcH^AA>+NZx><~2Pi4kM z|25uthXl1_AYsS?#*`m~KcC4S`j@Y8pJ56`qS=qE7$F5nki5wuK0?QUkp!+ql!ZJn zcRt|F5=1F~d44$1azkhcSODsahcZwE2Fl}k1MqqIWDJH9pxZ|jRep(x%-`tL62lNC z3xYzCa}0zQss#+f53C}spogXfBT`YRD5Duuk7T{4%+hiN6g&*D+2qOhF!+RQv5nMs zH3Z}D*4%KKU&veg`Q+51)bVYrGMlB%_Lv6vY5RGtkgntGqBYnH#Fy-JB>3np%GNLI z6-RGRx>f3`gT z)ILgc$3JHucBw&(e}Ak5>^EX&R-FGG=SI?Oru42#XQ)(pLiyX-+G>sWK|U*)zy8x+ z_n@n)=Zuh<#O@QjH-V2Guv$=G{d$P#ex?1`}n1LL`QiUvob^~T2dwdUOqLKI_o;d$?^c6&we=^MDKc~a) zXy-Q)`Ak$CZR`vew3#gEv6?XCGB9S=#rZX-NHv`9C-R*2ElfX5@BGg-IPQtj=UF|x zb4Vck*%6XVNX#>{<&9Neu!#r*equ@WC`JOfKl)AswM-%n_6ng&6oiDSF z?&{$@bhWJgP{I^fCDMYCC^$Eh=vB4If7;5_FVV9mrHCH@*L-B+6VF+IH(I01rpX1N#+UaOqdW6BdD{$ zp%auG(al#7Z^4_{%ohu{KNJ2We!cww7&<<$i_0&clXf*m8r3p%6(_+ ztf#5fZ==7#rae=-2U3~XVTJU)2Q=igbib3LUq7+ z?MvqAcqCIHxkiQuW`F@`=7$$(rwYsA!FT^0*g+Z$Zh#|2L zhh9ZXa(+wFhDfayHbZ!tL8Z1slE4Yegcqh_D~$qF+kv-c%W#?;ATDTXh13d$aEJuQ zpbCzF67E7P2G3wZoDqomLqJGwp)i9b945;EgrZBJiD#j5Jp@4t9~vFbk`TRMF3#-E z3ja()A*T;@xT^x>%#=#aMTVlu3ONn_k9xyeycqTz&(=LA{V1+s2jy}>=Y6!sHTwy- ztkm2m{77(ml_VUPeR~XEU5{`86SjcCaHR5Zy1i)nTL;30g%OnVajyMKou#3cHXJvi z2MNI?A6yH>*HLiD5n7*`>ixwglT~5$F>8`O@t+u`wQagpo97$K6p+n}DSvWCdc;o? zj@P`tX;2`EWQr%iSw_GwyM&{2{g? zt?XcBtVD)9>Z}sxb(|)?B;A|vLX$%ka#stt$7XF}BIx}7TVfpt+D&u(W zj||R2U+$q)R)9_wP%pIT+>5J(o5m1xfA{Q=1^~(X6!TuI*P~2XtXf8!glKm|M$zB| zKKWL6R*!l(k%wxJtT*i8PO^&P1CSKRx~dMI zkG(fjU#Y+{$Vy;2=nrkLf-Rc&o&jT9N~RBF+B=%^CFr&^&STdRxHUa`=p_`&qR>L- z@P9*JuWH@WCPCZFUH{Qs$RN!ewHoA7x|KNeEImAxQl^lYCzFNRtuq1)q!#(f0_~)W zL(E>cH%*Kf5hgf{i%%I<%2!9CIv{KU-*X*#01Zud0aev9w;5)0>Z+pa8KwC{@A=Nl z`y1+!(io@wwvhYI4lGU_{4%Q*3jFjhPO<_~yYdIJ6QwICv52B%{#hX1!^_MJj?kE# zhbLAyNbma$2~GvI=eu?Z$4PLMg`m2-WKpAU83WtGkuF&c3;BbAJzxG#-Hg3_F>HAr zutxQ4)&)+JXWS0R@6au3aRp_gYv(w$RNSx{h?ei>4$XAJeWq_*j3T6NMOz3%X;!$N zmec0^?(Q93ZF8$)Jo+M_fZm{4+ZNtgo`VK^6)_w-(keoQJPPRENz4zSjo7nbR%TG$dmm21&vK{Qwd`pLu+`GgfWpwEEoq^IcrByp|W{5!!Swt~nswA|2SzyL@fLRAfDUfTp$qw-WMKTmE` z<|Vc->I~f>6Z#4ch$c6t>TbP8x|*AD_;h}}xx>_C7hl})7h{>p`k3n7a8IYNJAm{z zEM0*gnSa%HTmh7gYSlu%Rh*ja5Lld55I&8qD;kz5Zzxr9OB|J}v=F_gxHVNs`b#vA zyx(D|e+~J6Y^X}m_Q%UeuSHn>;QZ@8x(t)Nv|hUfLZEvTwakJP#^)-i=xGdXOb2nf zb8Pwp#HnA=h#?ADSs+ogD%%Jd24~KdM23DZiBjrt5`90-)K+pRQEeU;nPf@9ms$U4 zpQeDZlj5)_%lw^yYjoY&eg&O{-lE)1h9_rcWr9CQqLFHnJVXJDzL4R|o=yLXN%YIS zY^bPw7w*II7Gg;7Q6TaW@h2 zu_ForxwurNQ2F(|=N6cDMSrxvAui~?%`o}uq-Y!+J%rMx0A&?b+5}Kd(04KaLbNt_ zCH4j&Si3$UbnyC;Gy;ok9Dm?hC78 zi}`GdvpFmhFeh2VuJd6|J&H(}ii4eRDH$B*LPYW#mB+ejlj%pcnX`2uYU38|aglUi zxk90_7^Cc*UdANH`OB^%y}JS*s6gmLgy zjzDfN%@CbuoccB*O%&-2Ps-zfsqzAA_Qa~jj=XmT-!*p(%n^n-_vq8!v3ZSGtQ@aztdDlkw zQkBvm928laN-kB35+7yD zOQv>FQ;gZ+puQR}hhO|IhS7hdJ4Dunm>p-2$PY8LlgBwe=VxBVElHHI-WS{V08Z=N zuyHsf!q2h;w_ps-ErW9*t{y3x%lgM}%Q~_uz+a{1$}EdaAOFx*mr3k{ZB*@>KUY`= z+w9ku9Pp+ppmi~yu{psi-h^K6( zAiuc#cwHEZ5go;lw)7QOuW2Po`0K1xB63S;|JiuTzMEd0lYNMAYAOhIYsSK7f<0tN zK2Zrl=ojoppQy=w@m3ydk*;U028nWxw zw7Rq=I#Mv!8X-6I>Pdlgb0mw9(%!}mniP(_TOBmNHuAQEPO%Zg7vw*(P`Oc#rrn-mQ!LglGs+)~UWn4=ih2}%Z&hqWtzGwd>@E77QT;V3W7TA`S zx!hz+FckcRDmI{h)}5M4Io2Pf za^AWQ-8uXE zhf>SAMui8Gx%NZGW}NApqu9xu9Yj+PKCUhNK!8Dp<|L8nZZj`24J}kJWY^S##QH=t zM;S@HimxVl{;z$IgHN@=1h6WIb>4xc2o?~SaJV!*nKDl)_V>)hkdncu1KAE7_CDhg z@1j*+6K>&H|79+{EzjUzDJvOICy>RiEOO7Ed^yZDuwN@zVkQT<>+w6#tvP(2fI0U}5-GaW5kXOuP{U~uDB0swQ z-MHQ&Dx75yg(+@~yqXMm)yEp_c5VapnWFkuXnxjTQYi8c!a5iW!44O7y0q1 zdWhE2mqSt|>}J-WA!?^A#rVI|&)Hf&^Qu)j3rh5+DUD2fmpDJ(nZccaR^dRHfm*o! z`*qGVudb&RTiW@?dh>BuK=)Z=k?#kx)5jdBDPP0@{@%JKcu4*@P-RrIBQ(NR`pxj? zO`zF_VVAw?(DfBWoHh7F1)1X@yKPsR&JWy#s)UggJ__Ad<}0K`UM-X}L5l&gyG$ww ze#hZJr7)XrBX2fN7}w%I#==y+@Hh-oK?=nl=b&9iTm33%m*GWQLvDouG>LTPoY30y z!EZ|L)mf84JQH?%i+_2Ld$k1I2f|ZGdYOC1o+kK}`DJBbAGJAjmcORgcsrPvwK;zO zrPoZwMA%yK336sDP$D9#MGB6X&w`0pg_6%rbe$SF9|m(XK5`{ckVKET6Tr_ zzU!BL9);)(UE9wRcfH@?$F2rBxI=}o{tv^4EQEHHk# zLl|sM%ykwQBk#2cqZp5oqZ(fS&RnzUGSaMN++9AXB|kX

    f#~yWwVuABMCnOLb3lj)T{=!)x!S=GVVvgCgC%T@;(SuTyLPm&*1V_f@+hbVPFBmF}slf;Rv z+=RB`g>efQbreW)L>J-L738D2do3w3KLgc)q!i?v>zM&EOhLG|uEUdrV-ZCU6EYZ-gl4%&od$H38^LhM5Rtq8&L1JcGnQ^0gVxOA_rkQCgV%$0a*?kTtOmvfr8Bj#mqV7tnvFv%{I|lF z%FQ*iMmm&QZBm&DzpP2iwt~F1-kk!CM5F2hy*m}(!jlR~JFa`4@rX}lq$a-D}P@km!I1e#Gxl7<{;&wsIhq!Y#NiUFWx!u z-Nphw>gbv8=_64Xbo^Hu!CAi?XE7M?P@u|PPZnDp4+&PdW4a^--pP^t7r8DW*jKkh zcT$mE#(wMh|dNuP189w;jSMW(O{=e z0d_9!RsD!g>ogTzNHiS%8n+Rx!zY3?@+Pcx-vhe*zaXpo9 zqqU+~d{RO#Y`|&Q_9eO$o8Ac8={e&X=Zn=z3vH5o-TKxCi{kYsI<`9t|>#p@SIjC0VHZob<@*~4@?9Bst(Az%e)E1ra>ii_n*DB>A||D()<$6luK>ZJ^WJB z;fA@RnHi4i-a?YW?K$2)Ra-f}c-z~E*>1$=liNEuL}7x6D~0sNX+>AA>as&7|A(!{ zxvr7Z^C~=VoGM4-It>!mu%-!pV7R=H#dN+Lx&IkBwU^&*ngUD_LnfWl+|XSGCss13 z5oVVU`eo@i^56sgQJPpX5XKhxa|!n%6$`IqYGo-OcaA*wkK>%2@?r}**3;mh7po*{ zr}4hfkcvcOU1}{BbaP7)8?+E*9k@X8L&2d~B1A|!KT8dTXDjV`27T=nyjVxHkf_2? zb#AiISmV??Wf1a*R^m28K}sTHB~U@JTD3uGpD<(1JR)u?>hLq>FdFJCMH?CIC=HKr zF4f=UR}SV?zos;%&b}gy!C%AUXpP5s^7!n#w1SE$ZHFm(MGBKI4y*u#zTjaYY`aQYn#5Rw@v72&QgCE=(%0~0%~`aKQJ%iEo}jL5cX5QAWP1&EH^RJ5s*jzp{JRL+@-J(zOc#s?Rl zwJUdsot<_`DbH`_-6D1y{DlKj@q~*rU*9H>>0c=E)fTZ+XYR1!GK3AkY}Tic5y~_) z@t2H$@rwkWzbL@@FE2<}natbAKdpm^J2GHs$-}AxW$o%YE`P*vqo8X-A}oH06(kIxT()=zjlt%|^73<#J!3fg@(GGy#2 zHCdud+t4sc)@OhaY`})@DD$^{f=uEgNU6>lJ(n3H&;@O66Fkz)3Px_z37l4IWF0zQ zAyWbG!fm+zqVxTbVmhJAf2&@jWmK9=<^V1&ndFq zYYfOC%e83H0X2+zCFFfT<^;x4==S*(a@ONs#<8addY9sZAgu5|&st?c5@W_lVht6M zekR~gre7@ZIEKTWrU`%(+R+i%L1lCUk8_b5DhYeuSFkSc1kdL#$ zjT^Su(Kl17KZ5FejY}|tqpEeel{#<#dCP-1kGrjUwQwH268t_r6Oeq$`|XAwSUgej z5NxBCY+^@*|4JIC87~{WAWdlZ`Eoc~G4_*fSM{%f6)kFbePBn%3GT&bOgn4Q0{YF} zl5fdQ|B^ZdcsD2kBQncSB#vMGp_0$)b!xcbyMXHrto2gSj0An?chT!<*GMX@Xiq z6mfm)ntVQyR3?j;byn+Jjrr-J%V`73@u!WXnb0>&+-ogtLe3@#>_(g!;LAw@O6l|O zvx#WV*IJM-jpPA(n*zLhCwmrhiBupBZrmAodJvM96l1#4`H|ZD0BET&zJI#e^57fI z(Z$nh0y9Kbi(QyuGU!=zPsQkoN+>P5cjS0(JNtP&EU(txAMhep z=43=F!jA7yRkuGfsj#=^Kzko0yNcuRxhYn4TRW^nGc8Z$S7cVc5VXdUm)lg|iflop ziZE^{rpMhO7N&K*vaaFrPzH&uC^|w|a?pd%m2uuI2T%O2*?Ev4D#0`eb~$ZSJ># zZu3Itp8{D89*ZwW=_)3HdZf5lMMgYSAiz7vrwHbO zT0voH`sx&mah_0|CN394BVH_)4e`^7^TmzRm9C+x9u2gs)oLQ3SYwIZ>)L$HXCrn8<%v~b{Pkx zOfYRZXNtW97Uczx{!J~Zwac3e$m2_AAp-X)P%j^>1-Y^LzkBB;gII5OH9xGPaA5z5 zeC+%FQ1q(5FpF)1xl`l}`pVRw5-*d_!Wr}VJlli`zI^_BBUt|a<@W{o_59WG#ed)L z{ZH#x%dv-Kg`o1k4lmsrC~~|+&kbfK5dZ5-wmfqXP$D~Pu0~CqmL&OFA;Tj%1Rw@+ z-QWO+EECdQxrAtX1v8fIob4N*d74LxDF!g(xA!$OfN1GzJ=>s{NvV4!7!#eA4Geb@ z1|YWerScww3haih+p9E=vo}SBB?2t{THjXeB~sE`0i{P@RRzn@3IrtD^{w^a1_xai zqPNySA@FdXA$SjBpbv^qLoCVDuNZt|bG|DYf`D3vK0=NL@CzOW3Qd5azCw_YZks`X zlKS9J1fcAb=nUeoco( zbNxbexp3P$93mO2q_AEx@!v%O3_%hx8S~O2A)SMvVQ-Cr0wNcPk>czuAb>&_fDs@E z$Z!B&W4w)U^G@aB`Z#C2V~~Y9d^8iOdBXNFkr@%v!Y-%q|3 z1cyb=l$gwNz)y4kyZr$c8G4WGL6k?ugR9ZB*s=#Wx-LuI} zy{A8PVw&AO0yp6t1hwF%Rr_!f9_Un5sRpW1Ma1)S2ue5Iy4Be-rcteEzHs>&zMaId z)A)<ot3*Afv9*^*?rl!tAU|-r#{tU;5$G&Of3c1}8W=I*dcVtFep(w? zTb^fSKeI5&7ey@G!tnRW2!}0k7m7-no@eL7pX9*B8PBGtWSd%)?YND(L^D7|6M#_Lw z2{M2qmq}fkfjMt|Fn*6k{8aI+zG2BGwlm?Iph}eNjr?b;e2ApU_LI2OqeH=$tw%=z zgx(dNMns&*2Hm}k3Q8mBds2Hgx6jhRk*b__dxGv&b}Haq)E6qYg;cg2cQK3b$c9bc z3R*0ujg9|Zx2g%iUu+H>`#PGDY*cNqtd1rrxy;24B08LHDno$E19J590#?}h>gsKm zU*3tB&h6&z?nDnj*omeXKx;uIbAlv&vrcUJgHMv7&3sq0w@R3X)8(ZSJ6+fe(%}L* zaiZ5tfx)X3XDoD3%aVal)5(Dg3L#KROhqxxMHUH2(na}+lZZOqdPfbTTLOe2(fxSP z!I4vR>3Tz&iE?8wP?}XaH=)QIs@KXb&yW8=yQ^YPaEodrR#s>&EnE5J>7!787VYZb zAg5yt1dnl%F4_h%N&#IqlG$)+355m+1dyg@6t$VrA(s_zOAc;h*QHhJKSkkUb-lv* zRNve_t%Zu11`sWCC(F27VQ=-q>fx&&l8TnuS3JRd3gJn4spzfg9jxa{EJ>)-s z$goTZLE}+Q4lF3z<;C)55+ZL^m_bpO4lC9CML_ITLoE%1ww!F;5rP#k5;KJ2Xx_;N z8ia<7;`sA6BVD`g+mEv3;rfHJ=6*;d(M-T|uQrpXw&pv!fKbR_#q4EMdtWM5Gb@r5 z&DahvKS{~X{xxWKfa5sGiyRT~hyODT83?OPG&l0ljI5e6*L^9*zR34D{6_YoU5LX) zLo6|CArjK@5H5S8mUQI@wndmUoqzWs0jF(xvzIt%v(2|?P5@>rN*Bmxt_);Y$u|Nj ztbGw1ac#+HtC*Li3u5>lpek2eX^L9h2(-77L)XgxDVPO#l+1|N( zl*wp~B_3`vm!+XtSa?E_#>SNIKwCj;jk~NJh%zZN_j1YVu6m~0X6Df3ii;=MT4ua$ z>Lb-_Lj`I&u5h4&BcPQ_w-Wm6Q-}nQc;R!MpiVCZpccal6+_5tJd|$40o)(cOgogEYRPgQR0J^>EXf2^V|T#awybVpOjxuOd?Ck5v6D{evz{mn&c?X zVGu#~Brvw&nvtr{zd0`tYh+KA0Z7>cS_>Ddjvb44U9%`fZa(zI;UwNsE(va7G8p1& z{TK9&#QaPHY0_@Kw>N4MwX8v*!lkp}9F08|dv|FEhlHME1nt#+I`DBMa4=WvRLB>P zhg`OVcGO<8a8=MHA_Yt|*9}_1HNpqJs4XCEYEQ^gopblZlK+n0J}m!vr{lE*L~C;e@aYqp?iTCeC7@G|t}PuKl9YM&$|a3PtjM5 z*b>p~#~Mk?tK3kb6+WilCPjN%VRR5dBMCX&WJI6#^Q`oi0Q|w4@J$8=*oQ*NDVTOG z4E{}`xaN>8i`R*I>{F`9B_k3=Jy{_C2hX-xlKNVnC_aL?pd1V@5Z82APPgPpfkLsX zYRF6`(ETuAJYVNYXZ(|B29SOHsBoA!=%^GmM!Q8pNws7KNBu^wN!td;+h0+^x+Z zKDDGjJc%alQS*0)b6U5`tsE+(QB8>T8vYl~5vm4EC4FmiJMrUvnO$hmgZUqna$rFy zsIn2O##4D^Ka3a(<9ra{Dt6 z6DuYm?Z#1wLr`w;MBHC%P{z|d6gR_*z4@8zIyj!rgU9c6B+T7HKAQ(sBFfoP2v9h! z*^d2TmX4T`mqVgMQsKonh3qBmx&8;Y#tc%}M2XI}Vo%YyA}N8)_*L-(^8GA_zE}ep z#j?*>6JjGeTwLWqn(wgDM}ESPAAo?}t|&ss8lo60J(Yi7ZBah%kzk8zGk!Viitq~% z5egkS$TUq(O0Se^ai1j+XdrQ~f;Qsu1=TZJDbFrTyECw$_;KCEB*Wc7Oc zmfFyEh4=pKkM<`Kn*P4npDJNe+`>Z>ARH)30+S2ohiMDIKc-TuKTUfGBEK|+5qA23 zJR)C}KT^>HVv$?ktg;BE5f+Uhwii9Nofh_F2@7d}7*&(esNks;=5Ltl?xvW6)VNK; zP(Yp9H+Xca{5TIw1lLy!nqd_7EJl}eQb;$A7?kou$>ThPS|old3ZN3*qbeqyF*2o` z%e$NySquNAo^$==VN$J?RP4DEc4r4pW3E^gv&%j5wb@r9UvL-w;mdf>7Zj59%WU}PgGyV;;O&mneXWrXEct!iqAJvtAxv% z$pFY?>v*KZe&#-+IzL%=@53GS+~+4-A%VSkvVlc)(2^q5$-OOh%mwp}TO1Q)idIVhd|^=1c~ z)Cul#7Dl#dfJB8vE9-BIuvEsWhy{ar90<<%uNlpIr_mj$#ak<4BIpFhuRXV+YxHPL z)YaqHu?bcW(jr@1`+1sP>oI(8{#dpG_xO}d(wB(>g{z5LySW??vHrX`}}In^Kx#~-7uv6KzfC@D&?{fTypK`0eTjrs+-C; zi1?Q~?d@uO6=c}z;RiJkMgDH4GY3$8XnEN%R97KvYinWrDmrd18(R!5oKhsSa+K4E z5hcJPXlAJu_Vbvry1lwLl!Eq$gf!@YEno6PpE*_~S2=qR4@>rr4vFk$p^JK8e}U-- zU7{8gUEm|6m!jxd3ywm|^{ov$Gt9zRh8-LBY>;2c&pXt(m1jL@SOI+o?cf4Q@S+g= zR>3HE_Ek>9Z}c}L64sbq55x%M^I%_7S9ddt{h zNb;M%WE_z;$W}?}e*Wla;t;j)Xfo5fpK+~EW0}K`%8gVO`LLl3MjVVcLjRKPUMB&dl)0&swD^Y`(+I4+P3fC#n%+87an!i3 zzo5iK=x+pt0?1}gW({l<vzQW!F~3C8O^>J?J@H)O)H*Vp=^yQ2dR zi#z%^@>!BFMtS#Ds1-0>iPXi32aNkzzAyOH^PB)%uR-^01n;{PWO){*YhKDlB)ELB z3cMxT`khY9l%e-K{(DcaPvcB>XL+v{I|(ckww2z^a`ksUXI2+JHqLl5_uir9 z21g4%ylr)bJsSr|^bY8T%+_fJRWzHEW-MA9JqQKGq^xpTZl%!RqfqQ@0JOq*@>+ew zwuW&x78|Ziq};J*vKS)igz_0igK&i=ydGvEU<0XADt6;cQ#Pl0VNif1*QH*gh~owU zS>uGC!RlgG^|zfE#x5!y7m&z5~ILrwlf8zf|U^#fU*im^?hk!#lLaqc6 z3#FqZmjWvfBUX}E0oCo3Sqi`|FEWK2`&v|^;$*rN?ygF|7O}KAnIl*KLt!wYaKdbzRtNyMkRc7R|_=vd$(xn zX{CH_py*8|+45fN6eMFl7gW*^yeq2lUjMQ*npjv1w870I9>ss7?$Hr9@c99IwV6f# z9Ta4ywBqb&H<$0+Q;|eqB5P z8)D>k3L|j8L~rC`8v^D79O;wgEiMJAlEXMg0(-r+=PGqq!i+?f!1b?`Ri`C1aIs=< zTpenWxE{kqG~PD?lDLskxVwgXz5F4WL`G3*HU>bSFYx@2j2!Qz<-*p!NL#pLBE4a~-9d~`aTnr{qBoTKf$p@kZbZg0}-c-w5 z-3Q`1An}n)tM&7KAZ|SDoc#mwX@^hO8+kBg4}{eS-JKFdyedKD@D9I45Dc2%ZI`*4 z*@C)Aq$2Ydt|f@ov>`@hizkYRA}Dq-0ME(YepnxA0MSG{9=F(Fix|HH8shqOEb~MR zG6yF}#uFm5^0zW-j+3U?gB^<`S?7vJ;6AVHcz`gPcyx)3INyKu82s{0e?27KIX0>C z(p|%nqgWNYXwo%z5B@xzvr<~|l0eaZwL0B5-dlzwIlEZeEp%xaAj0)EOvA=9L5R|V zkPmO50atLpBJ%tIK+CZetsc(I2;BGh`R<_~NT(05+KXHqR>-@3E|~0#z~U3{#dn6q z_#%1p4A0TW8eGficQ#R>teUX-<*Xs*fQto9RU3Z{58N6m`6AE;xswU;gF9$yt6bpc zGDy)5o%@(wy#o|tx+`qJvqJ#l+6*xFjHJTksPbSQxxc4GSx6SPL6txSa=VC3u4L?+ zSl|tFl9bLW#oU$2#==Ws!B^q34u4m|TAuFdM!sryc@NadCL&J-{QYcyCu_YSEfyt1 zUA+1T_pbu)Ko-tpfLRsfdrb2IAu4GI4iZyI&lk)O1xu^ghY=&mWby;7QW8d+FeS@U z^oHOcf@79q1=40IHZuhGO@KVI!h=*fo5;aOOoYw3P&+t>EX9+Ad^wLHL`Y!dw&_<` z3Mf$?*;!rraRQ&5#-e`jDO&16I5MT4jnJC5I(z%G5HV^g5#eIeQbEavwZFWbm|G|b zUewwuaxE^fN?zMRd}KQrR*29YOo--V90g4cRb?(iK3FAk8rh>BWo_f!n-9jGsMuOR zuX2kStnZ_XZ#;?~VmNIPIEzUNLt)0ODVSUi(X=s#h*@-zU|VTm5v0ECqYOz8MC%)u zS;D>-X)oC7;WReUjd{%M;Om4iOw6R=MlZj!cp*BliF9H0*$b47q7fj_;A( znhLB&MzPaN(Dbezk@4NMi9qy_bKS76jTTG^1j@B|cEGe+Je6_WBi8>|&O8?~ggq=2 z$tRi>Nc}Ij9SJaIycwuuXh&N=qgktg$alrp8pw(L+ZQl$a z=E(oLp7pX2y^s2(c9U}jOVRtN#|i+V4E^$?9PFwZzLXDTE15Fh$bEd=aoAma0?V9( zy`w?u=ySaviFR_l-o2|e&0=Hq;N#J&n&rB6P8CDmXViurB-#a|vma-t73aAJykY@I zz1i!9#QWNqt;`0fxTXNWd%m28P6s=o)t8}zUtW zGBIF?m)WQUi^h}-_9DPsY{h^9RVK!wad**~aN;#n=Lb?xC4~SEMT6BgfH`6-Jix@I zH{Z%y*}mv~(p31w*~052(enY5!(BEu2LL8Buq$edjLRv$Mq`xCfx1(&C7H^)#8wOD zfKbSd2WH!uu|-~2;B;Cn=`xato^M@LUCG&_@v}*jno4C;Yh3CXglahQjN#cW0=H%= zDA_JwDU0E%qC8HKS#1kT`yum!;Dmco6PB7|K?PgFJN2~F>f>V!K$Kw# zjg3JglL+FWEh3~uQT5dQu_8$rHz}&jFzdm-AQjuXyyfM6ZcZocUkngB3IfXTE_zW5 zC1dwF;!mG2Gr-k`IddOS#T(B20!m6tS{;=Z7=)L@N)c9%y0<)LTmR|y(ZvJCkV~zf z|Ar46J#&;eEwC0ZmQwE^rh!YDIX|XtD@(@4U-Gsqx}}5lF}M<39rfwQ96m#+^+U)J z{lJ$XHXz%ySt_oZ-$UMgVaypib}fqgU>L`ZWL|tbcLGeZ!ca#x_|VQmejhv7I6%gN zvVv$PjfT0aw-@H&LfA?$5F;w|woZ8#6HrYaFVUsX4o?rp?|KU!x1=tZbSd-?z*UXu(F@uRaA(c_%crP$(CR{qFeu8(lz$UY;8lM;Gp6g8C4sgDm{Z z16uH!oK_G(>P&ODJUr~sjJQ~z!1;e3@i)?wCcJ-KBRQ}M?Zw9;uO5Hy{pTLK?Z0#c z(+DDajLPgzx+&PDha5trX9D0!?zr2QN*|`S)+N|PL`Y~8DU(bAVG244MG4tfZw&gn zuIpape60WB`gHUUJ3EfxqrMO?%?rfKDU0*W!c=vhiaNuYz05Gh zIm6WqN@Nbs8K`<@KQc5YMwJD29n|5fbG6rqhm8lJ6(_n+#rxh!wPTh*N zR$>sXEXg7e$!?FB&L^oRtUBgCu~b2w`Y76`6U!BerHE>)9Yybf3d@t_M$w8?Hf;`D z)?$$Xi;|PZlB9<+m%9<6%k?eUadA3Nr>yLRg~O85sp>WrSrL;>dShp$RbFODyhmM` zdb+YyuN;wONmmbtsd?@zeo~ zZLhbgY|);Bu)%ep=pJBV`PI5G09iQsb0H(j1hO1aM_84wUw+8supJ#@iY z&b7GT*@Fz49&xPPXAe|8Naa3zaLT5by9cIB%YF86l@OGl??cXveJGPPkW3bfHBc-DgEbHgMv@Igk~K9A zR8#YMHPGwTJK&EEbjPuGz!w|nieeZxP#A(>1A*Z8HPH9<4tTHUHIV0ZT?2I;$2Abg zS=&I?*6L1a?|>ZmPCkdr7dXhUzqd3wAm5w72l=u0LC)^|Oa6@f@Jk@D^2+SL($0pm zDWftxGy`!ME4dFn&kKp<3(jU`R~-%{LC|~7`_8uQehz#xgRvh?@FtM&O(B{4*LMSf zCV6hr<%c_a;c=!_VOx;2}kBv;Q9a(BwE8UGx&|0Qxi1 zDQ(AI&D~RMltuIfxX~zv;CH=_v(;&T;BT$9)>>Qtb)%)x)6(dTYWf5J(&*J6_*054 zrIb=iDW#NJYd^`)&6Y;=vv4H^x?3%~KkzS7iMZ=*g&o#(bts!dv+P3@fp{GVNg?}9 zAoNWkxn2q1tk3=R?0?u^AhguG`}7Y1OB_!#`f5Q96W# zbivm0)qT&<%)eHBz2EM zee)~LTgM+?Z&c*=DviV+%lE{vJmTO6eushF@(TF1wB}Iu$`*=3R-Jyb>h#|@AbSo6 zeFF#Oan8~kw0Y>e19ItIk?UX$N?}AAScwU9^+lMeFi~Ne!rTyM2@Eb9-*sKrb>DSe z*L58T-Q(!+dj|AQ_aVmd(>omz$<_bK-F+J%7}7ov1ZUj^!TXkk?=MK}{=+5kxHWK( z*J@X9t=IEBAU>xV$8j7tvr((zQF%|_dZpP^m!y5I$Nb4&koQU;w1y9cB~jN0zwCMM z*|T)qaqW9Gyk_5iThCf+y)*Kq3ocbSur!%_5PrBsW$tm<$lOEK=&`XyZ40K__kBjl zpBm?n!~8;;HLupgst|tv-*fNZ=eW%iQo(EF3LvCcQo!n_`$)|xUT`i4~`x# z2ZSH)ak!0IprGyuN#B}7IM#-D-^0lq4({>V<+%HtcW>Dp)R5+*39piU>Y}m%lQH*SMM2u2<_Vad_?ful&KDO)ALmKkr+?40)f5;d38?HN5tHPtJ0@_WcTG zKJWW<+*t13D?5_%bRCu!Gun)X^Rv!9`W^Lh?hK046-vwI5KgY&k=*q^C1oRdMv3OQn3;MDoRhK2u~qXdLe+UE?WpdG=-`FQ=q0e+1iw)DNn4< zIpv4}l+KJf012kXO9neiTo9m?1doyrJxWzRP(n(86f_EuQUe=Ov{-@Wh%*Y*8HFjE_Kc!*MnO7Z=sIB_ zbHV_|34<0!ZWR`Us~{tEK<&sO1SJt*ND=`q2_$*JBk76}q?kYwB($J}CJIccKvEJ5 zlriDFKn)cbcp?KxoDhTtc-TM<9Do4@C`KI+&7|=9!UJJek19UU1q4upz)FQAL@*V^ z`2>rV^9c>-6Qw8TlcUoK*XhKI(+L(-Oz}h$NDvWqI_V*Y)5#2{6DdwkCrZvZk!o-v zff2nBg-;lvI)c;!Bp?q(NHZ8AB_%;xqQs1&ttDDas%V0RHRX_xx z1xpK>qK>8nan!^GM@28FDMJeULI@Ac5HcX*i6%}ZQ>PLiP9-{=N^UrnOgWVtol1z# zBxjsSw$3D4oJpuSlT3kCwIu}vQVwSlDrXWXXA+{V(@2Zc$coeG>NJ{y>f-SbgU|*U zEY09FV&cW9h>Flm6&)E?d|rG3b45`XC}`jW7FAhCWHE#mL2Lm921}S7xWJ){DrXE@ zMNzycQu0NS5iw-I*a{;|4Y1hiA_f#=C_zRMW3)V-NUEGjo*+5mI#ULW^E~3^Ji_HX z!UPr(NKidAVaaeFd2)0fIf7LNNemZRSV^2lUI4^t1PczQkt(MVq|*q|NwjqmeUXI} zPMkzXoJ2pIL|0BCDkl+>G-Ra7BFzlaSf!atb0y7`G)>T)K{Ey#8lZUsO%<9bG&!JI zLUVLx>rB=eFK4XINS%2)Q{_xi*BD)AmzS<4x~96Gx~Oy+ozZoMm@~edadigO8Bk{| zopEFaml>xSSD3-Yj3dkl!VD{B#9)RKGiR8oftfI7rZCflnIg|NLZ*w17&2eT zT#=z714YJ(%o3TRGRBmVMHydmcTvU_)ma8q8BS%~pjF0FR~bycjOiLP#uzMe*d+(w z=eOby{QkT5c0@ubMP=ETQe1x&g7S=U7*tv5Ql?EeBS zgYN_UE1E%UO?*3&Ku@oU57v@yc}--(Dc8uYwFFZhlFcF6#~>gz*C4gKj;i?LgFcQh zdVj-;K`(Vwvx1`cA|1!^cleKGkqlzf4$1Y!5t}Du@WUdxhGhyMHfu0>t%}z?+c}+A z#7u~ibSSE@tLLd8sA;Xwm8A)!cB2k2{|Hh+@3f6WDe0JO6=@gkB8q}^lXhiys$4>1 zzUY`72Wr;0m_DUGMv?TL1hFJ%*KO73UB}-|9GQtzqj&sqpy-=8II0J>kX%J_o7uGh zgbKR!7^H&U=~)BSr_ncdnuq#On{1P*Sj!r{L%)R|NV6{a7(!o2>PpqpY$;SWuMW@H zJ#a<3*Hw|WvXB-@zY3is{Yz9u4eIc<`Fpk6uKstOwbk11ti?UNX8px~!jI?>&8K|I zhj1xB@*#Z6r=F0IkeD1XK|;cvZ8nF*Or@w4bpef{E|8*9oRl6tvQj`Hg&wpMz(J9w z&B@}ojjrpy9rVBQ`y$z5)7JMmTqN5do^5arMrgYl+4SD?yl<<8G_BJ<{M%UPgGhsYU73f^-7Wbpk==1Y(Oe?Gp;h>D1EX zG$^K?AGet#=uk=7J`QNBWs6WR=~0|MKxOl0q56R;hc%UwW&Z$`LvQ{AQ*O5%sa_-* z6I7r2^;#*0RB|ob3evt0^=S#XAaCX@#UXSGc(?oXKc`m1yIGvm)#u*YyM-@DKxm%^R7KKf^j@u8qT#z=m7iOyD`a@EXG+VD1$5vc|FrJm` z#a6_@=^d&SHckWS@GQ1)18Lq&T?A63S${^A`+UO6J(3{eG!ShZd+%p0k!(HhyN;Ui zlusb2QlLEDbMLrAf%14*Nl4*2Yk_!{cJH{W-J^%syz9IydJx5Ao|4WdA~Ud*$>J84 zE;4;F1*a&drmW;tbj6HXYps>mO1n@>Emu`*<+>=2|6d_^pW5V?8o>1?o0 z-HSM-JaE>&KgA)*0Y`tcrR8uS$}^gV_Kj|ydPQ>fZaHF>hbzQ4c6 z^G(jF=@_7aWZz$-fw)U~>UTjK*1S6RmwAO@(mAh{!!`zUfAi(Et$mSY_m01?_fD5Z zOpaaWjpD6fu3-yTU1!C6FNIMriFuQ8K8J(8AyOXekuw?_G?2)BWA845nB-B!ZJgWQ z@v?ttUtj$$h^zJ5?>f)3<;?yNb`S}Bn{5ugw>hji0fippH*K;CH4x2RZKT^S&gay? zyfKJ`)qIZ<7($80nr;kw)r7AwEQS0SagdN3gT(O@zpxzg8hsUnzHkfzLl5-6#|bES zw+vEkE=}+}jw?fO3<60zE+H+VMMOniLuio&LLowe2-*4}r0LXwNr$8+t}G~F>mcoi zI5@Ogo8l+_<;JiR%dRXt5mQ`&zQI76VOaK|i$U&O<}&x;kL(^f8_OdOZmaEs*aV(WU>&dj{PAhq}h|B`qVswC)?~j?1vP&!9H~V{;>1`-BmW4IzJo!C){L4E9NWZm^Pw(d%P1H8nLdne3DN z++?LuO$-)`VOZJyLEm7wZ#_zYW)go-)#?7R)=#lMr-cbkFrfq!u6UR*G$b?xMunje zLI5EIsvIHo=ux8JwH_zbvIht^G~G}ogdP-Z*vh93XAf~m68+rudvf~|RUdon7gBxt z*8hY2{vOqbENNMS2`8Y?Lj|FsAuD89n!TliZ0pf`v&A-t?L0!@xDvd^!)wkX1h4sz zV9bNqX0k?UacRn2r65>>WeGfb$E!$&P<_a<$90^Vq|H4x`_L?hFTVc`V)OSkubT3w z9Lo^ARv)Ja;{ZVdUdbcJ#(VAM7fsmJ=W8JP9KN|yzi+j)u0y}NFMxi3v)_8HCEsEb z#GWPpK4?wyK~NTp!C)j=Q}cR_qbPq=rVL(P%Up4Rm+^&L0NJ(mqIICbQ|f2SKxYup^Sa?|abuYQC=nt$opU z&vEs`Z~NJgeDNDU`=ABw2j2f4e2YJvquS5!gZ^Y`dYxbH?iN#P>DS=;6pOzBrZK}Z z{KDo?7R{T%dO;BUzOP>_X5anA_P1`W{ocM6VaUr~`9jTI>7;M41NSz(-#Z?0XultS z9C6L-HIAYfh9LNT_j+E}ah$cax>Fmz+xm{d3xYuIo4`l??|sxUc0c?vHiG4qB{3R} zMx)VaG+Hbci^XEGPx5n%J&{;RRvoUSRUOX!kxiJ*b5GJZ7!G2ykMBEMJbtDB_%voR zn{gc9yg$ZbBas}&Vr7q^wbq(HvJd~)`>11uYNcJCr+^@0z zqs@mtdI{vxY+^KbciIx#8`;>{*x1}Ij$wXHN>4k+yU;X~%wj1B?PHw~T{qz0K5|PXceV$o9uh`P2>A%l-oA=w)v(#2j3lhe?P6_Hk@w&d_Ps9Np1_k_fsUdDd79* zk=y?JX_4D(d_N^}8~%PFZWF-w2XUM2`+vACX8;5!!0UYN8v)thR6zcqZ`7bX?$c9s z{1ec_^9cCf`QU3DzyRML>cBfb2wM;^1n@26*#jJa{|DD_;2XFH1K}U9?Wpx#2ksn% zX$Apzh5+t-!!~E!IS20i08Fz3aOVc#&Ny)A8@MwN?jr_Zn}0CPp$@ize{cwTr+xvj z3RuW%^#_25@DH!mx8WdI2p&Rt>MsBjp*;05rbL()VR{q*>;a}qm@Z*j1yd$Wo4i(^ z15BMTeZmw9(6CI=N;U+2JU8UgWj!%^*!$lb?RNt&TyoCMVjH`_Rs+bDtz> zwEtSIr-#;*?{}k)CvcqHmXu8yQ}vA9Rz6{BI=SbYFX+>%+RCk^#8x&vn9BDLkXuWM zs_em(+kBKke(!nl+I)5OrSs?QCR>)a=4Cykax%et}3 z_sv>1X>C2EsIu0-?+)rJfe-4H&4CO!Ve@@nly@TWayonrQW$7aKfBn&AfPje}*;dGUMuU z8zrJqMB|7C5{)DpN)6PPG-=tKVdd++IorzD8-skzQA1D^`a*u;QNH1k`5omO78QBz zhGX*m{=PEw(&fsEY6|M9$!nL%-{!17TovVNpc~3XyKK%bHe6qbz#NH5;>Ij-T}=7X z5R>oI5JO|jtXTPeNXw#u;X<0Ve6!?1(|s4xBF(#%uh2<$5fvSYNMe$xBrY{jZ)LM1 z!ns>+J2L%5%1GJ7>4@_EJH~x(s%*_>*}Pl%eh7--_q|h7m8GPLREfI0=3~5ex4d>A z%CQHqNV7)1waRVa->+6~3;(_^dF}oPvfMX4kjfIDmUX|Ym_1rnzMl6UNVyFx``xMf z06@ug?pMk8otpCfC#oo`seCU0s`9-6xXSl-WwS=UFJy)^Z_`UVfQhX#6meTt=pw2@nVseE&f zRVwFjvVCfvevYHB{d|v*5lL02^N|TV0fyn9Mz`S=DOb=&|7;l;AeAvB+)314oYy z$I4kbtf@j*kS5KB*MzPhd)(*dIiV{^t~6)4$#8~YFZ=LA*-ZAc*=#nGbsc;&*o$xT z;V8~93|5jIU>dOJI1b8h9ASf(z0(`8mz7qwf)P^ooUEibHu&%@y#Xr|@OA8=JpMkk zAi=*iSZOIw=)b``5R0&tdwq88&I2y*CC`?zzmxW~Esq&z{3P=&S_dq?DaFuy$r{KYH%#>9o>1f z-IbfadH>Ruvl~2fo&L^o4tyL_!*MvrYf@kG{qP5;)|%r7M~%<%L~q3LT89_39p@dn zh2eeu{8+=VG=tbMi)Bf9>WlA<-!_R|(=4 zabr7k%%1`W|-yQ?4)87!RLc;~4~)u;x|!UL4{3TYldc zh9Sp=)};5|QuG>GhP*d?;l4B4y>H`|H;OcG?y02vB>7vGvHS1)Ua#^d0z1HeeUUuk zS169Sh?oG%({&%Fd9APRmD}uW)}Ikw?)TkG&X9ax{i`C>QoLTP=Bsz=e`QVY)cbw+ zemF6(I@2ZLXgnf34G09$<-y3s;fOZ_l1`~822ZL{43H!_qomA{7)!oj5~fLq1(N5* z2?)g#CZJp+lDrqd07R4yiBr7N=HOf5IT51?BHFw;xRc*Ap;LnNaB$%o1WS z@kJA1tgvvRqhd=p1s4vAE6#~0lz^g$C|-aCgcMj{pu-e5bm?S>K_^89+>;rIREi~1 zAfckG3Xx)wVTC8gzkKO(Mb(t0!BZ0!SV~w(SVcA~3NyTBVdRWrj3{al#(kyWOuXr9ROL=I`XDnxe4h)D4hNk^VILSiIF z<`#isj6`~M)mK&d%IT_#C%JlZ#YBln@m0~$7%;NO#gbPPS}^gfCiM!WR}|T^a-zhO zZ-~qV0i|k5vOd7zPf@Is6p>;|ME1#Li3<#w%YAY|%JfAgkzy`Oric`8L1U*_B`d{7 zu`t*q3&lRMPArmbVwu<__Q)!+Nvx4AvPkR^Ys3=OG!;!fQ@iRJ)r@MUa@8`GOf931 zsbthKsu*>v)}V$_!Kh;D7uAcZRnOW*<)VhEVCoiCi<(8vs#sJS)GO+jYDKMr%Ik(J zEo@2Jvcw54D<`}}>B_AnY9amG?8(&jQ%Y@4PL1}PI5=gF*SeN2x^KWz$`kH{?O|9` zT8cwyqIi2p?46pgS6c46yKdGy{UT|}?nS@GjzL{sdn9B53`y&`|2d!Yq)7Heg|yip z(Q%yExj=G#-PXU?T9Sso-@SM5z1M45hJ`9f25_F|d7kH03nQ&J={WAYjw7dZ9QU2) zd7jsCV94vXy=Gdn1W)tXZ93)kmHU0WrFBxISvT^c*Xkq{#TtkE7N*C$UZb}jgF^3f zKBqY`%Xc?dxbGWRl2ymf>Wr+P!|jgG3Ok4U{#zSn=?JSjw<}$BtZkCQ;G{?kQdeej zl@w!wGO5b6fxOpRvXp^xYaM-Ia+F(Z373uBT1QS<$ZbPVkS2Ya*Zd2R+Y2$E`sRIT zmsoPC>_VujWpKDo=@< z#D_#SKeK>_j8SFt-4n;x=XGA!z1L;wJ|sozVf(cS(){dyQ?vKCX0I$E+ibp8lcj9Z zBpN#+`%`bNCP{9qJ||Qivw^(#_c7$Q?!V3=^3glscfGM|kpwUEh2HV+@X(K{<9|Z+ z=~{cT`DSyuV6)JW6{IPafCD4L3eSBqAtuxBF{uhtZY?NX*|b_vwsLDh$;$m;ZY?M> z$g$j7P^vP0(MJtEg9{Y7*{U;!6Q>hfPz7kwU2At&qTC(2*xfb8INhdm%hL{Fa2;)7 z3PUSOmnd?dS5aC~u5xQdnbL|9ME-JXMS030P_j@;AO#Ivi!3BtxN@Ic&fMQ+vBgX7 zbBooMByyMg+%lEvi$S!ah=~GbjL=6FN}FoI@FkyDQC;f>OkC>JUs7JZ!j!75Rtp9r zmb2UjUvM4Q)qLr^&Lgk9>s_s+BPeaHq#?ADo?cEoX-Tna>eRJha5^J}Q?KU}Q0JK^ zs@V99Rqg7};-kI^YI%YHWQqVM6S9D`xv8cgk?DsuEFihuR8yu1palagEh)O>oBqBP zWog=7nn7xq%XjJTNvp#SGw<8SB94Ba$LuL=)Et% z;$-_~t#7m>>5apdx>unEr77R!)`D_G>6J@T8k&}Lkl|SbR_=4EixOZAko}{zMtQmn zb^v}KQXWMz1wWi5WcXFb_uYrs$5)b-e&6SfL13kx3qff4z6(HVnlu^w8oe>2JpMkT zIG;m#+$(9l!$I%(n;T?*lVMja;z{Hk%a6UU~g3U9j2w$^KJ)Uggh^=Xjp`kRDT}N0dgnj{j6uCa-9@ zi}|@r3gtC_bBk<>g|}r0CxR=VLWnWNAkFS_0t!``G9kThXTeC2{c&if02!{h$X+{v z1tX*rTU}hC2}yHT{btWEBs-Zz=<0-XhzE`k7Mat1*x|2P(X8F;X04X%+Xr+PQrWEK zvnQs7YH@KT)Kv(Jr0+$}7$Gc#XdrY&*OJ<7FO5M63@HSLH0hO8l+={9SO=y|w8_4; zM@2(~{1{T9#|b7_Yon)@gF_>SsF*9EErh}dZBazlbsMd;mZt5Xg)QWN4(G}hl8`>? z)Av!oN2uj3QYn$pb<}qpWOrOq$2f{&7=qyU-RpT>$8pxy>b*nXd#5R_=^gqtz4PiF z`X=bIh^2nT5=UcLNs-iDp9S0-aix+6-0a)#66dMr?k5vO<5n0>V@Qp`#8endWG#Ue z##3lR3}k2j8cKzv8Au2o(1A^hFK{5R0|NIbK%izNQs9$C)F5!B43QZIA!huwLj_?1R#>CWo+VtyQeG#%SLNt1WFu z+OM(fW%rJ?w5*m|YAq%5T22L{K6Q6@n!DFg0=1-6TlDqCYfS>p+R^kRBJx@j5mhNc zwH!}M^6J&ASFc_x4y2^|rXS@#N~*QKwY73tBO&FYwA;PQrY#7m*jD83tK2_?xUF;N z&Rjz7bCZ^s+{fO0nhHva%BOGCi%;Kt?9Jy*z+vO&zICOP(kex0qoWzn=)bv4C%&?{_G-G2jEEMW_@kn5%Qt zF*G9r00000GZp{st*(Z4|j|}Y(^u=0&$+kC<+1@WPm}&5MTg+ z2++)6W&p}z{}(Ggb|s@o7m;79a+Cv|J0xk{E{Zw&oT=u=-+9vEDgzz-ymE4OQf(^U zv_K!X15?MYe7Sm7bo7cB4c0}?HppridOL{$Sm(HxXS~^`qR$BLRmpw@+Di&OrGW5oa z3`;Y3;)RDv80#5Dxc>kPNvzr zyJ$^@-#ec3JIpgQMet7TH{p#%(BfL~Kc(FvmW9L0jKEXzn|5WVFrl1LyqOGz#ezr-PyjsQu^y%3HdnJGLG zh}P#lG8SzsqqOzuwx*-K8V<0FnAH4mOWmptdz@@(W)h;(v?!FBTo^dhXV`K~EoWkC zK%LV;@P;j#3j5L^nD!714Ji6Wu4TuGB!6%-qUz^hq0AQGNuoK6qR#ml@LLcGV0L*D zz*x9}P6$p|%c6|3Nj8>>sdD7tp?;cFH%RJ9DzX=)@P;GYYG_M<%>L4!a4)iS-oj`26ayO;{_zFPH_*QjM~3!ZWoS*s3~hVw^1t20 z4^qn8^~s%BG7F7hH4NoV1BAQUUn#&3``>+DjE+teMH6@@_&Ef71#h{R}dv1vQ8c^!^t&UV5Cxngr- z*kmNo#3}ZhjFXXTnqT*8c|(&$-K8VDtN+q_#=leX2f8oca?8AHWREY~ez2%$g=J(` z*k&MvG{G=C*@~q@25L`bA3JO_JUn5imQQ*RGs?kfybtJTX55?ZCNw70tRl9)x9ecI z)@^Ys>yY-XZQJoB>v|?j2@)Yz<;sr03~FJk&T{c1or!)bWQYOUJGo*3iD`i6 z9_J@t*0-jy&GNh(XB1{=O>SjvdWP1w710rz7P(oZE5qdq^RW9f>mgQggL0V1*Oyw= zl9}TSe~%m29T~cMZw4kDARSQldC6>}D1u^W?s3))Z_5F-cT(n}21+n)9?L$~{$0(c zk}h;OH(u2z3y28vmWI1z+nPsXRbtwz=PF4+-ZG$qw?nX4{Xn<%=ob8fkm3fayr=g6 ztA^wIu}PF)%M<7@_Po4~eB|X!mGGWgy&q_h`a$;B-k6@`&}f6$FDK{%0HJ%N;L{>S z)=uP199PAAd1V5Z8wKEEx41$3hK{Z+SsFP&Ww+MYtx8a{DT``Nw_06o)qszZ6;lcd zAVR;$7TZgxd}c=lu?zq+K+M0CiL&b$`5@zJ#Kg+9k84Us)@xmvor^j>m^93Ps5FH>mm>RR&PjfYObRG%O4W6`6_;9xz zBZ)zi<%?n$1P7C9)XXmy&D%|^86D)H7fI@z1@^5RxR&{dQfc3eQ#Q*`v|sX50~;Ye zT%2o;oLq-0r^~KH@Mm=_Zn5y7YMPuG{V>v1GBR(auK7GJ?0FX$Cmo(hx zEr41z0DPrI7;5POu+uW|Fx++96<28mszTkGyc4kRRXKpkZcYyc)DZ;fD=p^%;sYG} zJ>1|Y7D}1l8p`}t_2&rf`a;I;#0{LmW|}8_=F>fhwTnH|?nopQYNER<8hOk|Y9RwX zGwTuqtSWg9$9ac2Y(`(y!UlOJkX;{+z>D7`DwY%v9%uNYArHm)A7M| zT?eT-u-pHWL9wG&F;He&+wK~YJ|Bv+yzJ^6fo0Mb@^SfS@}ph;OnVD-q#(8Zk|BHy zZZx^P^ET{~u3o1s#t4F^oyJCTC$4vH=p-)|v#6tF7D(Dd3IU(uw5kfGvWPp8+nJWC z>3+lMQ2+ryOyA|3+*Ep;ajTvcb3n+aD3eo!~teFFwlOxFpIsoMSkm{#CkDSW^ zP>fMO-%c;i9O(o*JT`b%(3t#C@c?8eJ*3k$f(GJN=%&^Q@Zl%)7eRZxS^B`V)~=})+&bF1 zy2Uy#tl%EZ()~7n$Tx_qo+4GaIP#4leQizzMNrWFcg3i7&df~)$`kGwV6H{UgavrT z&4_R%E3V~=0{B>N2FuFDqU}N=+St+W$`iz#D42~UlEt@)VKYr8EOlk3u|Z0}E4*^j zQhRE^@x=O3koU-|`>xe7xxnTT#?o=779XTI;aB4&twkbcAb!-i-RgUiK=S z{22eqbRw1?ZP557bi1|%lXt{IUY3S0>iEu0CwWJ5wdzZ5NJIpKOv63OnOH!aiY1Z} zMoU%1glekqk)hW^j)zH^@2|hAIRDifg_pWiN#mOjhaIyT!#5Fb)K1LP1%vrmX?X?Zf=Ix*acRHEbM^imtYC=X zkU9BAy(dm4vAKZ1KYt^LuX(Q1M^Y>f&`uaNN)A6Ng~86Fr)ZUja(!aFx9rcKnY|t| z8|xEL`sEnfU$ouuGZLlZT!wJIiX9X|)+01kgwvFT4-Gjw8yM&sp2Xm&2!VQtcFza@ z&&gUZ=v=R0j4wxefoDrB$EfQfHmm1-Er|O z5l0fvlF+mLW4kf|TS-k&@yS4}pzNDaI?cQk3o=o&SPemUk5L+|+cJ=j8q&(9pP(c? zHk*|0W^9@kmgp!-=cB)7gH%d!s{%xpq@0&e$(pBIR6C@nd$>`pi zCsWX|y?TiT%B~DY2#L?rH2uU6>ysJv9fOepi)~!HHdJj@q0XJb0#Bwt>Tzl}gW0H0 z7)yL^8VdY`j3Zvf(0MloiMcIp?OFUS-#bsiidKY%7qP_7ls&VqrQMm(TnFEM zofzB#^lyx@*$cC(&$r>TU5+t`oxC`5Pw!(9AAi z6Qw0qf?{?$A<8Meo29W$NQp<5jQ`^rG$L3nwEesx;FmlZNL@N0Ujq4gru1_$QZ<8E zn>Rb-yaV1Q=0dr&G}T*Jm5$68OgbHN=@d|a+!7Mvu$*_n51vv)Z;RLn0LQs?r{(Cf z{*`VLTvf{QAHSJk@03u^?!!Eo?Ia0P2x!Xpnt(oYV1bq4;HJ358Z+u6S347x%rc0P zmxW9pgo15tW7+%?7oGcP;_I$Dbkds{9rZ$fG>xEt@N~w{E=Rl;he4{D-;^G@K<*(o z2RMW~&B7CSUi`Z8N=oQDW-bdOAiIoy2VMDA%m1KFUfH~p|L5=8Xg$;`>1XlSKMp(u7t z1>vWPOQ8;&@T%P4&Z!62u}VkL8DAMC|&bf^9cUJ_QCn>P*Ds|++IZ3|z6#XxaiPO{_c zjR2MjbA>*q&;jW4K+7HRy10Ajboz|?`rY7kyBtGTL;*f|K)2V`H`E)vktY@o?{+LVzfW=2={H9()X}h>tO%0#eLb<|>q^)Tw27I)f27 zu^?0^bt_C$x2ytB1;}Upv@4pkqH2Z(XZ>mU9u~?QR9q{rjF7#<7?kU$m6uH(INR2X!qoZ$(UbAInSl~8A?3jC)@7%1{uG! z&k21=*bP>94p*Rd#;j5bX_%W zx(YNgpSf$ECYwsvP!@dB!?!z(G_0UDQq9)b%eZc)eBj?^m^b~4_(p9~S{F1}<$;*2 zk~s!^u1w;aJr)C@i^_R%dEk6d7Adhvo_s7>)UKMpDb3Zm$Rb5JMHYOAWBlt`YBtP7 zkb_`kZk7zCC`E^;8#jzO?HEo7SrLRwj0m1!3y<+JwpR`8cP)?#1A?*HxXc2z>;1`$ zO^!h8zdW2!l;lDUVQR~PKHLBY=pdJ`J#=`gGt$aRYQWLO>5S%i>O);X zP6)utLUL>viJjBkhap|Xt#8NJl3!1(?2feh`SL&6ZQ?%bfHw_q~DtBK=aX zkKo7k0HE;Ch{AK!)gg|Zd0~Tcs)U~6rupS_D*wTE90O2S0@W2jOedGAMxf!CAW^2 zjat_%;?n(x2cG$^9ySEJ2Vk^1*l2BDUCpjY+pgqq28CbcapAWzAS02KloI6y7odeaj)lv3Z$VakEZ;BrDJ^0TQ;QK51pylqP@ zFn&#&6l|yo3l4ICqcvsOcq2}o*bDKKUjAXfPns?pB zbD>7<#79HNgf;b$TLZv2DDHx>vaJXuXZYPIRdz}7;<_E!OH+imfYca zbM1*6AMi}%pSQ?UDxf0jpUrK7Zu2s;&hzm^tY$ZEsOrVl5lN*2Ld=2g_zf9E@7kV3 z2+l^{YBx!rM`5l+PN_qRh4OXmUj%OeL3|?6dX7*;>0RenuF*^RHfV7Q6Ly~f>P5s1 zx|Zux6*gpxqGo2>j>FATJNR@087$B`xQGSiz_d63af}XbN)_0gr4H>2>Y@m$a!==Y z6#{qG+^KBo-iKKbvNACa$sX3sQ~&uN4m5JZTi2h1@=u~e(SFY1BlvO3L;M%kB2YoCg#FNCD>LX(x8>88bOytvZCuptjG4Mx|6!3;RErzTte6 zqYWJsm1Aqkn?iaFr7fomPnH7|8~?986uz4EH6flK0@2~}G@jIFs_d-kDtk*CSnNqu zY+BNzn;yy_z*!qeQDt1{oR&Uow7T*1{D3khX5Rx?w89XJb;(qx<;%mpy;J0PSP}SrOAg|_!bgewJ&(|Q`N`*{ zmUepukpr`0nwYgIiiaj>hV|F71CrX>^?g{CpHFtuNwl{j>PU$1l{DzxE~|S)>Y=ou+{&DC$Ucvc`xtPD2j+`!tGjCRD{ST&;JUYU$3Jw4b}tm z{;~EiOtKdLXOE1Zo{x#aMOf#H5d5ni7dwI>Gq^4F`D?s5w;W=%dbG#9`jrI^2Ip)y zwYWcY=wB8PvE?y#vzVzw=^5G!Cxz?+^~F3|A?qJs7(q0rBS6=3-{ZoMTf32Mb1I^N z$n$_jO>{st>aGx>LqLsb|CxrJ>31bQOm>fbp7AHUew0tzwrkRFpb~#kNjj!o-P5X* zwqkE9?nA56WcnW*K`Ccy2GeZ3gWd%K2~C;e61C%51|T5tGyc6ETOef2IfC{i^#C(N z!1UDqR8>e=;0dEA2^DNtpb(%gtOud8uV>}ivC4DAcqP+ZZo@s z13Y^`b6GpAwlMTStLWZDeWwm+V$*e3>K|nbwV?CA> z7V+kT3QE9}iTqY%($x}%7mL9#VP@;oIu_&`wTSE<0z=ul8&M-8%y2Mxj29tARwvsn zUsv?8GHkeAiyQrG3uCj_X)Tc=J-eEkP}x%F1{85*Oum$kpmi*LBpJ-;US0iW^8i8ht}*A)5^; zRq|~~H0g@aJ;V<`hiVOP7g~mrVJdlN!VRkc_|5|@c~9prQYTZwr@jnpSv_NQh~pxF zP94D*@~)pLtUY=@4TPO-kGrN$Yga{l8i&si94hT~O{PVg?bl@F3RYZGGBDI~471kI zSZ?^v?#7pSW~Ca-n<#0edNu>;ZDH*MkktV-!D`G{o*Feg*k$uz4(z15ncHG3b}iLD zBW32DXW=$~Os_2Zkd-h39jj2QycKPUei2!qH3XYa8GUkdg8I`=AIcbV0 zlZP?dOs>X?=r&}SscYpj29~$%EnC{5ro?WJynBgd#*Glfw>BTcd8iDdj@qKdgvtqW zvUOS5R(?%+(7l5X+J$sJDv5$ZkLY%6scrH$Wi4L~4nLuLx0cS~W5J1B461rcmpnKa zt7A2*JMui-J3i?EONt;h`NhA_R=bO)Y=b4=nJO+zQt?m0Q?RUn@)WGqw;N;X{&>jy2 z?h%*#M$a0_kq1u&YJk^(-nxn_@=HaN8jd&;#0#~@?+`l`DiQFOG#!fS|PT62y)XOms9{k1h` zRX^30ph;z)KB@FxODl9cASmylp*6j@KM5P1M)EGF&jsZk$ev1-DOc)Q?Y2_Z9&$g0 z8nN3*`B@7%MQ@oogckZ-lDdlfn==r7`BI{B14TI84ynSzA!J28Rg|4mN&(qrT#nY? z-5ywB9Wdi7WAI~qd55i&Eq#-f?@i_oc!Ao@l#dH(mDqV&EcheV2oODK=&qInjRdFe zFZC%Q#-_KifhhnqCILnXh;NAV6oq#d-sa)YDbc%ilKs4W?mY~{G|P?10tMZl@12d zEYxnHTI-NZ-%Y?F`y}u#iu}mBH&XZ4sN*2_Df@&AAPOaD%I1#q|J(fE_mF#B+ZLYR zKCo=`;54#q^_fiz^Xm7cd|}mOhE!Xz4?|?#`3PBEh|s1}f}HIn?qo#%rlM;u7_vW>zOE*BC4vRyg}5*WK9rdD{A2s%!JSS$l0@a&Z{r&ph?Vo3d?;y%EDcb z^(DP=syRVt<(p+g^PS9+nAT!A9ZclJDux)8QYgIhl{b;DCx}7yj0DTaHmxFel`DGW zkv76VmdFvXQGF0U4qWZ|w;~aqXG!8puU3mt@jFWv&xadX4`lg_OiE3@N!yr%N#X}@ zVP4hGoAM;oT#d`p40cBkTvR2`W5UHWm~tI!Q?X90fPWghUoq=AvsuQcbR=V{vPgVF z!F0AZAp)H+W`tVIx>u1JVoKC4@;Sg1sb5@{XQPk<3I0I=bP>taNT}uD;`r|&W78YO zU=-&<`#vx!yJg+Itj|nYG4A*S4I|E4tYA92^9Oi;YF9$ekg-s z%BZ4RYixKh8?P)?s~wyjyX)v}vc))|%2CSnt-~^*RoFpzx{qI90;VF$WTmdICwR%L zm?85|j7aCCoQCvNDfhbNj-m=_l-zonYO-C*KQ9YsloiqJQ;r%pD6}$qxtGK?(Qp{rHTQbG{qJUq(4{>pW597=;AX6&|ntVLGk?3MoM zPfr0sv?}!PcZ;m$QePCgq3~B*r5r3-s7T^03p;z%_hUlD>8)d83M?X|wGe(O)pTA+ zyaAe_O>wyMBDL=`-oRkP{<|&Vv>*~60Q0GFAo5_dgbW*aXzz`$D2iMNZ0=o{2wWVw z@HXiGb?k}y{n&%#0(t$nSltK3^Mh5FRme3KsWS8gkUDBf3_66iw_rh&zzu4Zb-ANX zO+y6SVSNY~Oe)UT8fn)@h7icR<5p7wEB}6~_-bVD%NKP<*qCWMGj6vlB7x?Qne$==7&{Ss|T?OH0d{a7j8gR?uU1>`Yl99IXcKQ^K?jP-)=4iFfFswq+rQE$lQW#Am&_<(5XNXXUgYxp*xV1-GqIzhXcp6G!SKrTUqmPwW4D>7m zlR#d!0eGBL#~2-Pa))FxV}fCpg8vGZ8zX^Cc|1=itEx$mjhAsGewR{4igpljhcNQ} zNV$vo;pwQZrp$_`Ong0Ub?lNpafc!RCPUku0I!_LS3{EW+`mvPBreR#7O_!a7>V@n zkV)VeAdSsv!7<0j0}iYp_5c=>2hq>IIA)-h8{{PhMFbj+R9Oe8C1uPrPya57+pDZQ zgy5Zcbm*`$=^?jM3;n@SSiRn^vZ?Lwun|G&WNlo;2Phrz6~@`TunA-tJWFc>Y8^P% zZX49hDFk~-RaOYJ#$q~w3zZzX7vS>YJOz8dxb}O00X~-@3`ScI8uwmRXNb$kq+Lo% zx1@+K7y|#{L8;|R7-Dq}ZRLrFO#oU%KGfBb0N=ixYUy$6#ZR$^SUHmBUR|{dIjMI( z!U*dHpO^&&sG$VIKaRWw;iQ9HQ12kB#_jA|WUi|@ypmqJdjNY~f(6;k?zIn_WDg^O zenF2al++FI+5aGcD7;dmD}wO+vH>2PrJ4X@AN9dXpNXGXr|1n}%hK= zTNBeCcWmFADufO0Y8C1WUZe5UUwc-oK7dhUe5-f#HeaQ%L_iv7mj^YXxO8?x)WpB6 zlYj2J8tr5BHX#gWIOi#kH=E_72BR;OXf;lAj8?&3FOX5)EO7gtfayH`pRqiI08GV+ zyJm4faG;772Bcw-t)5a96u?t%ohk=05f>PLWr|1x2o?79>5%zq=6SmmjyS2qX`xVSdr~6CP*6g*Emf+S{f3 z_xdDP8V=5gdVD=9nC8ZtC3Z|YK757}Uzyf_rYwcaH`JwFEu2|mprhszPR#Q!NLxKK zPHV{Q3*fG&hS3T9MCdRcgF;$GAnVK7o3uK#fyULYgrQn77x%`@5YJIGLFhMpr=LCD z6XNlb>+aM!{Uu`4`%Juh%y6o4?@q0gB|LduM)}}-Y|--xd40T2bcvnLGtn9NUDW$9 z6|!K51^j~oZgw^@>2djb1Urc|=6#kut$iY>AjV8;rw#wukQ=4}E(OqEs{$s204H$= z47WpxizBTXGp+30Aj?By^{wuP1OyXu@4e-LaB$uc2jo?h4??u05|^{GSodpsFc8aR z-1r9&HNJ)*#|B)sJz2|+f zk$P-~3cT}+c}l|(Z^W0>eS}nNuUE7`FI>sFxU9G^{$)S3)WSQ*CY(eJ_PfLNJE_+m zX>~HkJxUWGNwWeh3<;P$emf#9UHMO{`P7zrs0rL~iE%;R{#UlWMsb*K$3{{^hQuIy zN)R`jk&vSnIpxI`phz(f--Vk6`D#2iaS2%g`oX@WV;xWuqavQj>E$@Mvhal~KX5Lx zD!p;*mO3{Ql`WNY(gC?lK zM9&~L2=E6OZ}E+r-?IB2!+TN)BDDJ)_a=k1?bY{zdx zbMZxb%6vrGg;Y)^KdI%mpIA65pO_*BuYji;xm5MT@0)w_H zxO!;Na5{1&J5fPnK`TB$S$bG%eipZVJuz`^B}!R&=M%fl2H|wX;Z3zY0jikULb1uz{$cShSC&nZ!M`6+V%-gB*h$2?A^Dx z6&?4`e4AZ_Al2kj2o6fDKhK&3lqG)yu{PjWa6AR@_EE<4Yb`zD>A*)_)zU`TgjY#j zUQ3Fa=<<>~q1M;&AuY%@vn10$#f#6HNDCW?!wHJ@9MP$9FyyL%z3rL$-(``VBP)ZB zyz%1Y@U3OlW;`P>iA3E>CH74#M9Ni#mA}G0f5)FXwC9paVzP=J<50JtCu(jMyAp2XOx_Pa+EpImZtXny+)($~1M!$q zN;H1JMq7olXd>A}sVfUDGtdhQNsK{Mdi>mn+kxZY^VDhBw?LgF7tU(a?otqZ z%g^1L_B$_X9NDeogNFSV=s|L!S#8#xcAy4{Ook+#BSN4^5-s7s-5o&#pN3&As0a0_ z!NoTq`_limEj16{(;z^Hfo75xMrNWz!URgUMr?Ti+~Xdw)L%Bsn8%QHZ z>H~0x(32d|k)Hmx4F%ZUs#O93?rvr_JpyxTSb-g3J0*pF=8@LE8iIgzkps#i8kO~) zipPR2*qp4+qj69eQ$EteBke+DpMLGN-*#)3zD;}p($1{Ph&@6>NpAOM+-Ono>kd|p zk-c<;?gEIieR^DwM)QJFShSE08;4o8-?bxmBE+QU)jsJ10u* z!P;|}!r`V-`i9`v7KHUc@1POc>m2C%ZfyB?uk_vu%+_mE$K7=oiRQxF-2tu#$6H?2{;v2zhc^%RZzXk|abop|Y3>s47*mvqaH| zLge=_4_B>ZI@AMC`?7&orw92ku|rQgLC*MLvc(P|I`;(x&$3t&3Kgq`c#&A8s5(p) zD8-m+CApEr#C{GfGicwd_H(>oGa;J^D96_$#YEP_k`qo3k6?Sh&aSMD5=T9?hv0t*3S(HDUkH(E< zSf5}vPd?4g!njN(&qfkAKBvy93isrzH?_;cEs?vq%)}GAx8HIAENS z@M8~Q8HI)?98HyLbWgl%rCF=ggAccW^Q#C zed7v{9+T)-(*QNKbt1Nf_=rFZNVP`_6%5~S^h4DIvj>8}od^aSFsLE4PFzGt3`)N= zY6GokrHb*)b2`>RjeZbDm=6jXTW6JPCE-OL*u%`AtYT(xY+BY;(E9|wX)?xD7X8J` z^4;a?ZoyA$c*-W`X&@&yCrqw2nyU}uT347FxES|9nw|T-o|Ythw}ypAocu1$_xLlU zR4{)Ug1z3lrpzNAk?>T->gPG_I_j`C@IB~q4Skwb&TOqD1XD;8yICgXs~ZqzM&Zt_ z_kwkxlv#=JthLDng)5~6-z_HnFGdG{BWO(2wsJ*n0~;BU<6`(^_^{Zs4*=95J8u3a z1Ym@KkSgV+Q@F%u89`Ox>L6`W=vq1~67o6W$aV%QQ57kMwRm17+hsKDMwqr*7LuBb z_ZYvM*h1v#6u8XQ4aa>TLv2&zFCLcFX|fl-lt-QdYjz%rbBIot7J3$}1-6|H4-nwb zM&nPE!&TnPR$KEZl*x@B`DtR~g?#d=NhH$g82-_*YB3HS*81P#(Cl4O1Ie(_Y@+8j zMR;d|xR%?mnhI6(cHGadM~0@$;kq3Qr3=Xs0H;0H6|_++QnGRl{ceJj(r|LIl0UF1 zh_yoZc#Ly^GShwYRz^932#PDu-rQg;0&1nE)Yb=wk?)GtfNM}V?u||zDPwATWBP?0 z5hhOIAQ-4A7Si0r_qELPq?G)>T19ps94z?8iq7o=5wG*cu_3_6loa+;KMJiVZB=_* zq~;&vL>%bQwbNmcQSHM~&rIqCs zq92WUY2R8#kHLIGqf-Ttf#Pc?aqQ$o!sphy^14%vJv`+-p8A}%KR3SB?Sg1)u!5qV zNu`t#T%!^xP*$?1$Cq-E8og?S$SZV(^CUUk5FPU_W?oh?4@7PGQJHlR^~ZH<;CV!K zEXL`rHTFdttlX8WSd?ES!^9{IkXS0~u;`)s=!nAV;J6x0f{0y?Ue5BB3W=6iazN&V z>&E2+jojS9*Ex8~x$l(XAjdXR6F39&y-U@Vu67s8T@#`jTM`C$DUU9o7jh2)42J8} zl-6-=hO=FW1c6r$qJMZd*f>1GooWEihFiaW0M66=D?nZCM#p5VjP0-81HjK9JFApG zMJwRx&apC9Teh5(3AfO{#;Qm!;N(WI?NjzNN>J@lLa(%B5S{pD!x^5d^#arFBrR%$ z*b+t`J$6f?iIj3OjC#bjp?czIc=6Kr<~acV7 zw7Xo=O@#L35G5{$iF;y|{;MGFdx(Z@8+LLC-WK2q^OF47_&T89KYfzhV^iXnECZmL zwl0YE5xg@jj6K;5LKU!)bTXe_OjX{Zm*Kj<^#JtioHH{zwS_CZypf)q#;6nWo{8(Yni8vJLjY?M|5MAaq~PA-MQl> zAcx~5MUxpGv@h4?_27^B)JYz0DSsLt;$3(|to6Zy$Apz)eDr&ed366iAPCAM)8I&H z5L|@d^Qq8hBbq&)oi+eH2GDP7kZGsi^_+o}3#^&zta5}lZW*QF zItG4HIXE8OD=e3v#_`o|i*9xzF1g@06Csw_1?hQNtt#NPGVGPlm0G0##0s6y&RCLJ zAcpVpzx@%l-V5x(S7~z}uj-IMugz5G5~9#6b-`fgR%BG?FQ(A9ZP%ZPZAwutIBk^cc~%^QXX4>ax*VxUZB9qmb4DBN@XvFeVD5 zz!cKnLd3OEOMAQ*?d%gyC zp#OFW63QQW!ktvZ6V3Lu%H9?tF|f=&Eiw$fGibS3CHYIWpNS4=jxTa41o(d9%B2(@ z@D28cI`r15D>`n(R~=Hz86_Vb(J|6?MGT6guC=j(2F?f;6MV2r(?!iJ;@_d8wDIIi_`A z)yQ(Pd(wB=PV<#7Gl6s!uoGdSbcHe3ZYS?h%fDklJ~Qe--xIzv(}QEX6&Po4-*QT@ zn%+N0Zi!@~P;e%v4qc`%+q%)~R^sJU(SsVkIcA6iB5X@|RopNFR zs0=IZKo*mXB_%zO6RBjiG+G9WBITP9N|X&4EHaDAkF6DW*msfWk`llLN*T7!h7;|D1^I(=rXDVqXLn5qCW$A&? zH=>RnhZOPp*q}pc9&k~7KmpX1A~xuaRsPa90ilJ-z*p{0&3iuBjYjva4vn?ZE&(fh zkQOVQs6e=yW(ZTq+QAJ9D2jN`6mikq{*L*Lp<>>OAW6fnsy+)(Ms_mA5}hM92b9-% zb4wNML@9MLPbXdq+pIS%(AG=z%fau^zlIUy8>HT~pK2_i94?yRoi;`6D`}dxr>nG< zI;}k6+5LEbF~l%7Ps;u+JhD8(Jh65KQADtZp&jd(rO*`_#Y>CFlwtDq#FY@@Q=&vH z#VwUGa zQgv&JPe;0y3JZjHs39#i-MrDv#HDf3@H`u2FJI!`kVWV$a)htMWIzG)@d;1XdO#%=Vv*!iRlV7W zxONh`Iy)+S49|0SpVN|2zT{@FKBs&8Tk;tn;3a_q*@AFWT7a&1M>(*7$m|X1cqwJf z?fY&KZ%xmcp3*C#09ML*L?d)d>cBv_)ep7iDGkn!vd_S}1BxlsOF!Y0o}1j(y;CTM z4biDNT$x}QkJCNeLX6oD{(2GK5MwBqs&fyq+QK;nR1YyyQHU|P0@r9?Eqh%PcnR=? zK<-*CIAOtWnRW;AntwO&n@U?#3fjt+5(cLi*m|gJXwD<4{>bFM0wu zhtczku)?~ZWUDZ~%-v?IkP6hviU{QeRt-x*m-d!08P8J^2r^*~=!i_N3YdbAwjLtT zn04v-Awee6*9Tb662KWIj?PZ}g-k@6l@&0B_(=|hrQF4l7Hy;CT%X)4oOFx|??MQ9dI!OkawF&bdU30!N!IjpV%C;d}y zbw+B~0QC@zvyg*fu?2&*}j|oa3XatZlbvggT>dXtWKv0d8Lq(_jYs7h+I5I zJ%M=wCrEpTZQH}uc-Fnc5|~X;Qcg!+$Y!K8A#g(8bibjgT&YLBt|Q5HoMu3C$du&} zXXL(EgF`&=2rsaAsvOni>n~3$Bm^)&xxbK+7v^7y3I?nqLi+@J6l;VwA@%O9;c}m; z|Hj_Cw;X>g!FTaIb(vc6)_CD6)4dj2tucFsqS0~OCEiCdmQB-Zz3gUugnn|a3DRdK zZ$qSA8DW;(x0k>O024rCE&)_*R{2!mEf6)0B{cqv0l_;^N5NN9QuNWtKeA&WZhl%7 zz-C_B0{!bq?xbcuphRe6F&cp24x-hKO#{^k#zYMr8eU>as6@>I{V3A0@{Hq|D5C&#hYnOTt^vxtd7EchUr3*7aK_DeKp7#ISA+>}quj@Rgn z7Q@A0%9acv+)U(l2D+1kskH>CM2Fj|H;WyPq?@MTD;F!*_Lq*grX`>Uc&S|&?FjfS zd!MZc{kuTf;!GD6GpWGT#QhiN2QBhQp%ihUeAK4qA=p9K(^Bd0Qt32pdIqPY%!7-1i3d`L*xGrrn`(@ujBmB_AjIN!89-=WM33Rv66NZ_+2n>udf$3D48zDcTY-}-Iv(&b<`lL{y19Tx=hmf{ z@g3Tpck7E5DXTqWN0?T0lZ~kXVnc2Cp%Tl-{HSyxrWey-U%RGfxiI6*sTPkWMtWr+ zL*xsk9R)_lqAN;4XvG&pWq1Grf3Bd;hv3!fXz3H{k#h`0JkB)rb&+Lg4PWX7rxX!t?<- zFTCQ3(Ds2qjF1RuEtz5UTmdB=RDd06oU3&-g-LmzSNE%g2(Y;=Kt&@rLB(^fT{%p4 zvRdtP|LKdqR0iIF^~R`-aWJe^k6ZyTbEp()n{Iz;`qEK|5)1ZIJ+_>{dK+;A_^LD3;MJ@CrLQxP#=myik} zGaDztrx6G`tEvJ#71VAqNZ7|Y?LV63e#}YE(~sjs+_iQTHa)!=uj*^6Pk%7^j@*AR z)fg%ic>{h;h1Gs^q^}0$R~PU_s$$j>kyO@j;>nu5;jOj&?YAJq zz$ZAOQq~`l=s)rS2XX(2v+s7uk{4OL;y!f}m%gkWJ+|+oP)uIuMbQ zg0j~Jx@D}JuH`rn7HoGVs%c>=(I!L)%mY>-dS7#h>#Q+Cut>_nN!c;MBRlHVWr!)C zb}m}9N6V0*DiNxS>ELXH0~9(B)|mi@KzP5u8vAJgJT4=sU3`L80N9ovu6+KFglre- zm=$1$h40hyfj{@Rn9-GSLbw*+9yl(Mm(+IN7q2ii-VEl11Nu<9p<{Iti8X#d?LcHz zGEfce!7w-@$u9xW)X73BP~yabDCJMI!6!0tpDqt8jQWmF`)Cj9x>Qp5PR&$-E8=iJ zUb-6ZQ{40>xsl=+D!9T6oIg?}v_notbPrP#>!oOPBQ4;;aYRZ8VF|!mr*z1j4)&zI z)Q-l-9Ezobrk8B@MK63KL{F%P&|Qe0P*35zF#STk!Z%^6Z-q(i_XzkF)8mUnnqs7W zD=y*J>4DKVGU_kolX!l=7vKz(3*FMzQL$r0GOc6C%Esk(zd=kF!0zXq_wjLu`)h#$ zi${rxD6w7Fcg!FwSKc7TtzVaLpIkXdIk_ng7g2(TBto!fR2}zfYc|9{E-`IH#SG*vV$XK)_|G|d>*rhuZnl=ZitzRdVF9yb2G(zGm`jtS_{`+(vc zfJ{S^9#%@zF~Oqn&>zop%v`aZaAZi*PdLk4aXcEXO05P`%o&NZfY}ndtNhIhjGBWm z10w;hy(}K)UP?m-8wro`QH)byLb(JfwoL#L2w!Rqu|*hrcrO11BU$heFDiPp4-%8UU2rw46V_QU~g8sBNKBv;~bamGY0Am$(sT_8Wrs zmHa^9hPnsytmoV3!!%-(BGeHutGC($#lkq96uJblcJ&>@l5qc>ITK}tfCTq_KHS?! zxIERhI??$A_VeKD(3osjW4tW7aw5`f*B;ilmS9kG$jV}z6yGH(PIOrAweZC{D^ZUF z9(9C&B@~>kSb8oHAr2lo4%gCU!%dpvR!_BVGY5C$Rr_qG-0GnM6()_4fL=AhfUch5 zr&TDui=KCGx)^NM0}t$DJ3Pn;p4_?O$a{lh_9a88YcrUIi5+vrS^ku$rJNMC{8D_Lp;pgFe(7>z%f3X;bBr~P z5laVFP-3vu8V`Pv%=)*W+La_I--xZ(=40Ecec#cCBjlfc7Z!<9$IJ-_b8U>@Xt??b zdQag<=mR|c(w`YF^%j786EGCy2!&|?noDUf^WMV%l zZtHyLHUX!LVt&fjr^vF|C1ZXMZ}2EMRd$f2er7M3GOgKKTEg^>-!h;^Tp->cT1S1r&s+d5&hXsomQ{4};h*8lV1<^6gy`@>V4 zQZmQkR4tp)oc0$s&ngD;x>YAep*cSnw7k~n6FBzuIFszUocyTKZ!UXB5NtdJj=Qt4 zM&6$2lW}{Zl=OQPC{v$c2iFRtwxT}SfN76$e3T~)avH;2s#)BugCcALVEW+hYPyyt z>WB46DuumCXkNttj3ojePBImThNe#g($0+d(^i>7PTzR86yLZ1E96s8dBY*<%JKTO zSYcU+`g8Uc)%nK}d#U9(Src$+{Ma-49=kx{sEF)VFA43J@ke-D(N&^y_YMCUKAhZC zb|aRoz^QE;^FDi~a(FZJUMxPCj170L(>w5L!J|$HWW@;k9lHdL>6|=u%L8oAd4X1@ z@Gm`hJvK<1YJY`u$>$twwGs46sbb!pivaU8yj6CQor#=C``Hkg_fCz$SgG|M&;rsH z1dHQu^j8X(1Ay8MjE|QMYFE-0x#j#B57(xkaYKjm&-@h}*-L{M4(#Erg6}lNfY23w z^t>mmiq8wsjM$VK-Zu{aT!Jlvgcwj_uMgo?uZs8x-z$A zR1gB0UsOq*+QG2!CH%Qo2L*5ao)!G1^)s{3P0HJQ4_Ql}mkdb~I|qE}eTZKM&)s z=;FJ`%VOX|Dr%ZOjlSV9-TYJVORTNgK}<|~q$@fGiIT}rU`!I_yZs#ekKo5CK>F8o zKTZO(&GkPa2%9Ewx2PjJs(WZX{_Y;pHr9Z!ezv)0lm+x+omT9kSbZU*D`1$?XGq?q zekwRpsRdT`iv9Op5`-u^7LW$%bft0%0S>25JG(5KiO@KwT2!@Xj$xaN0}KMA+2-3@ zcq;}zf;-y5HKf2dv+0S&hP<@bw+&#nAfqR89b=E8G-3dR<3O1=1RGusghyePpHQOtVXtFHNQjMy{6v!c zBSU>6TfZVDpB7n-<0}r?9H%h<=|PAspsTj&Do#fl7cwB@3a1qpcqH{6?QjRHsXx}o zX3wIPFKq|2OXLz+Ic?NWGA=abq$uStH4{;hN@;Ukm^Cb$R@eE>TF6{%`b4&VDa^Sp+KeSyB^vorR&Me6qp>Z4gdf+i8#Qs?*Sz#l z8dlnmZ`hBTaL3E;S@8sXmVDu{H;R4~T+z>6b3WPJ2qQ>cuf)o^UH-<4B84`foB5Ik zq9S5>9R#K?6F9dNo&XP?Od8l3QJPd>+kh}4oIx7M524apu7l9SAMdjI40*_2Xn5q(R zWU4*X+|lBK-$kw0X?lNu@lTtWsv=ONRErV^4Ta|L{cCx#tO3D6rVt?)wH*h|J@rA^ z2h~XpD%pvfecn2P5JW_X;)WoC7!gq1A%GBpG>{ShNeNHAO&3cQC|t+{5%ZDRaM0XR zACx_n2pS+Ov3=7i0g6;qtF_%SUqo)TMOkkSxLCQG0HpO$0W^Obk?9Ub_ zUod3CIKfCM*GGF9fh2Upso~W_i0?t_ZQ7JjYasG$-sv{au@rF1eqy-z=9o)nFjAtd zKe6IRPVh7Q1fg~&xM$5rA-}C@{n*Y4R1cpU%XZ9S?Abv)EWT@$ws6IGTOpriWura; zQY~P*&J``0a_xIwsmI@Pp;@Z0eXeQ%=2b|)TF(*kS3<6Uh{SUPkRsv?GN|Tl)2Y;_ zaZB*GVeT>Eo5ZG*eQRA+)x>$k#IJB%E1G*Cp@A8eGz`H#%jH-?o46fO6HA98X2QLws=u%>|`%Kl)ZJkEb)w!Sf}G@xj? z7yOWm^N)hnZG<%q6jAmE8|88SBeV65VWj~@%e~--T%3OttZpN$4XuNtDMjnP6NI-0 z%|RBGvGIPFW0Oo8Wm}@Gjw{QSg2WXkPZQu z8>E3DP>_8>U&t1I za`fe_%E9W(X@zyk(1A-91o#N4=zMiCiuO=sJ>)4HY&byqKtK{)FRRtViQ}g`eHlu9 zDXa2j&X+gK-;&7s(uWJw(h>PY7F&(#)@K@Q%#hpg|hc< zO(gxi!FsKt5S=?kwZXN_Z}8D} z`cxTo3XY##O_wl{PX|Nj_64kx(;v{3POaMwSvPP&ZRl<`NImBjb3~{U*&>~P*1b#1 zyR_cb_ZmYN$c^BGN22H>M(ED7?mCyza=IF{KJ4bL2CVNYz0ZxMk>e=WKMv1P=G+MW z#__fj<;jz`PPd8NYJpP+q!T9zOI9o!`I%|b$orC9}b82 z#;LoAeIJj8wpo8X*sMRav%84axfOwQyNLGI?cJF!;V8X=aXwUZ6!kh}j+Z11no?YZ z9jrfhspK(r+S{;_6?1eK0kK8oUrgKjh?6dJ%J3^t%^wz33&xY@-Z;P8;p6ii-}X_- z>C@V7Gr5{fthi}Qnx&rI(rt8^fF7>!Na)rZ(T7q3&_^Xpgg_8kD2k>(KfnHxQc<)5UDBnm{^Lg_ zr(1codqI#7CP_ClIr{3MmX+k>z8fXwK}kJ5aona(m84H?XwGrd6B7DEg6vM^QSx{1 zAOfQ;)K49gr~1$oIy*J_*s;Tj61g?pv_nUe4l4{&Urt*lgJ6LA>OY16O(7=W4w*JLpbCLI$nMmgw+FEF<><8Cr6*yYw$6V9)gQVvgyXo5+oa`& z@X3MoWq#pmzK)U-(C3~fS;tgKEOH&n=XpBF9G>TKqV+rGu$%Ni7n<{uywh_kS*tjL zY||zWsxx_L&N=DkAju@naoOnpy_d|nN>G3^h@P-%b$j9HORq9(Vz6w~b}1FLq_R(quj);CiO9=4#+~G&&dM`eL8u_7*VGb+R!l< zn{?>#8AXtv>UibwZUvh07+p$14IT6E2}$aZV2rCkGc-w$Q+tO*m2z@qWMrHsGv>&+ zjMXt(tE9b3=uu49*e=7^sAG<0oW9I1UHF*Kj6)aKS6PCO?GqdZb3G)39hK~CnIkOy z>64%C$$ldJRQfrykk1emx_XV(Yy)W!?Mae&{*hD23i}3K`h1-t#i350Zi-Z;lGA-A z4-5o)t>1OGzDg22-X!FpwGx@3IWKd~>9xj8y%E~^1YyzHR%@-GQT@4N2_)pNAf6MMt`3r@z^V1)|-1FTK_;j$iFJ zer;$nzn&xGFma}n`SqD!|51NFzdoe?(D?Nb>QCs`NvJo~}D?0DNdUW-FtS={)k#Rd_S4IC;P zFj!d`mkVsg!JOz|M`STfo){+|%@#4ZJ7ZqcS3~qX0k%9UlUaap0iq1RZo8ky*@6 z<`O`tHGpr69A6e5DLn9C(Bn<&;zS-G&o_VB?B@iG=Rhg!XZ!yf&+Pn6wIh~z($OrnH5K5Oq8=Bh-5eveKe>5 z1_lp=`M}l+o)}0n7c9&G1fdn9+(ZaoAc7Fe2r>{!NU&9cttKXzZ7Gp)X<=r?1=$Oh zsGt_R;e{_vU6n&d2;*kZ7Og7okhr zI)Q>bB?VDWJSaG1AaWq11|4E-EP>e}1cL`~OAl5sbDN!zP!4O9T@q)aA6bg{&Xpk}n zlO)!dI%CQhN_??|7F08!lBHmxN)sIw8xl@Lfq@V)@SzG0GC08#G-zTavr&}>6y297 z#E^oED_BfH1r{q*G+~uQ71;dx8forH3b`7Y{yQA^ngB5MVUP%piyu z3{>!f6~LUFP#^>sH5Pn&)hHaww)6Dw`pDlCIEpzz3u!prisutJI)#T6NROT2f)6i-;T1hIvOElPO{(hFI% zkp))xvlA2-isC z1EU5QMi*9?Ej7rp1{N^^NbHy~bYEJ%U8x6I$h_hw?a4AxgiEWWu1l`%oG<{=y7Z0+_LT4g$$Lg)I%`bLvSx|HPiNgR`vC<@K7Yk|Zre@%H^7`xH4B!P_(29FDI~ zMZ(%k(`01P`b)P?6zJ4Rot&IH(yg-qr7!cGfzp@Q!C6F4EvhBzejV%plBR#Hjmy-c ziwS#)A^3T@kO=VQEGzJ!}DUhZJd%kw?)l2Xv&<1nTYTxG^ z8l!{gDXONh(Nfc7N=Ws6R?>P7ma8v)N}3D~U)={5tFNwuq}880X|?xdEsg@5J1U98 zI@Y&A<&Y;|-BzI?NZBh+Pu)7LK-2Hg7+sdxz7<8VUbl`);_6g@vieiq?h;C)J><$! z2s)QiC2$(u9b7(gRHt+YW&I$DNRcH=QRS`QEdpzeDiwuvmFRXzL@3R=G#@_Qe>jOf z&mDUYp@pEMV^c4Fpo%?xty(@@`C5~JxB|ke)}-)jIvSeNrKa9D4i!}sPRM!4^hmJJ zi6Trdq1)vO&)s=1{=R#+5fmypcbA`=!e*V{X7YX3i)8O@A|#!c)baOulO;mmZUTC^ zHiD=L}ivDg=M}?|lszQQ+x&D+6&I#6gx2_}yKa^6R z@hX;d!(2wj#%3%QqYm>Km}8f5yn}p>@wzJk?gDIv0UMaM1MJK-`Cb55O7}^Eys1p96lcr z;M5Ucpx!}tr}GXxL3a;sTBApmynX@=-(AFmzV+=_THE2{Lz3<^TB#pwPjAjL7IdlF&;~bSm>EG(NLK&o1f^Hb*EjrlzGMP-~ zF37gq9ZT9BtKX7tX(M&Q>8EY#t;?*%FE3kqsq7nRI|zPn=lBPX&^J?;RdR-Sy3eNr z8Dn%!vDMzDU`@GViWMwKLIx>SY>=p;LIMhjCM9f2Shc~04X(E?+p(jFwxa_zeVyAo zDoMSd%8CNZ6i{?VmU1f?b@>qlCJHEU(2tvM4)yeLQXey_uqq0b(At-q5?D`FSVb8D z1!L^x4`;tVWnUIY$g`3t40Rk%BGz=Ds`z`a)n5pOI4IoC(E)?K!*m*i8+gA0_v!bGUP}G&=*+5ng07G8~ch*Pc*Gjx(Wpt{oH4 zzgj(?pXYgAN4mXAJ&$f3Ifv`eax@1Py`Z_F$-{Y2mDL}P6ruW%W0&C}&WgW3G-Tui zJ2ZLB=eWv|7HHm3mQy*-QQ*d*6Dmok?9Mz=WxKo7^Mk4wHCoF`YHH{tv<3nrqg}3G zG`$pUqYd19uLu1Iqpg=deEg^Zob`vSqzNV%sU$U_lC*?MQWHJ^PMu4OusXocTMEad7L8ENI&OG zSjbL<^SsOIoOdJE0>wmxl#4}fk()!2bck<=X?4iNA&~de!6dEQojcO%j`a?#H+QVt z8k1Eri%@H|_rBY*O4=_LRx)oQwf4ey8)w#Pe~Z-YgLQk_(q!D8w1_;}{?4sscgspx z0ZIfuFlNk{F+$u{lB9(w)^Gjb-n(;!0h|=dR0(uRBWaagnHQ><|7yg`W)2IeXe^j@ z^w)Yyv7Szv^G!ZCA&~T!n-H~{H3xR64f;^9lb0;D4)vxz)aPc^@a?6PTD)`Jp?*gW zXpf!Z<&T3L9opmT0GFP(6(D_?-}9Wl3XtCOJg?F^?W^GahFKVUk|F4 z>^jdeADD2f9T{f^Xp(2 zb~LxTQpGk^$y=c+dFxXpZ*8jNW%|NzPM%BqJDcs!y?E^TZ(aKU)+n^Ae{Erz;~_tF@K->)3{aZ8q5U*J+K1(PjP`FWs-#(JM*C z=(5IEW2;hsW^Qd&XrQUfx@JoCr#3m&Jk>ybHeTkR3M9jF@MgR4%{b##9HHiGZ0My-mcK5;@+-Q{F0<&g zjrG^_cU8&jv+=W4@;U~rw2jmF&>FhbS2Wk5-S}**H#^A8tJhuQuPOqWd61peIIXeq zPz+(o&wRFR_6^S|;l_3$%FJK@FdM4B{=!!*-0+iil{sI^#xmy`+h;3vRaq1D z*K=yLD*M3(WwZTo1OxIx%yj&7`|#v%J|tbMvCctGvpI9eKW zTN0x~Er%_v9IT|s!OF`jnSv)=V@SD4ar$|a^5n}bCF$o42{AvBNCSy14HmtiX9u%_ zlX4@Ixt9oWbG*BB0qd~`*~#ItIu}e&olfWGHe%9wp0o3+WQkDMbv{Si)oMBKIPPM+ z?F7>}~h}5sHzt*OO3Nr?T%zdfTWFO8sLmdOqsL1E5Uu>0-@HB*{b}VO>uSzO8 zm*mi>MPUdGT~4hMNEq_N#}1zyIvx_$K$kS>Cr$bS&U$Ah3Zu*X69FJNl%>mh^s_4q zD@)7EPrp)CtF=M(3bm@_%<|K1R8mn-PE1QmNk_FLMnyv>m{0-my7WBw9mrH}DdnLByq}gOgfoUpPeUQ)lvY*8tM|77egEOGmEG3UvJl5xSJ+ zaN9>EX}6=2T#@TF+aO@G>d8aM{Oi+WlLyvz=Li;EvGveyaq`s3Q)QslUd(mb`@m3q z!9p$03DaiS%$TB->X;c%W-wW6ZA`|DBr}j?LX0t%nd#!13A?WAW@K4dve5H9Pc{Q% z1!fk4APCNAz(CQ^)PP|E^Q0z(!C%4{~9 z-QZA(P&i>tO-&6>4%60>jg5^>&W+m^(w8nA92}e*IJCZC;RtWsxN!r=24AecJOO)& zTIZj;B*Ew80DgD|)z8}*R%Y0OYYVNPw=J%=u=;u1!nTE!r}=r?qA3Ni3)EB;;N)Vu zlCzRIUbehwdFkTjg$orI*e^_9oV@H-#u&4VEB;mn)rVya@v>VPN^=x5$pB;C$fyEA zP<%}}y+TnG#TU%p$ar!iqb9zP&@qogBy8cQ&o5p0xuXDS44USQGqkp3ZQ(-2y(IK# zCA}&_<-S@u&l{ohI(puXK3?_e?OI12K^95(`14r38*$D@FATOmrzgktC20@a1_uJb zex1lV9mB@oEdc5Pt+m?QAuFm6ZJ{}@9?svP)UmFrWHUS!x?S1+_S~$$mU-?n%dFP) zZ-%zKnBV;x+#vdqAWDy*p30Lv5`T#@1`Vci*SQmv}G!rAWn z_~^)3i^qK(m`O56=xGtZsVS-#2n)4nQA_M4!v`QLN=gQX^g2&ZP%}D)2S8JklPu=s z_tFy6Os2_?N=i>?W{%!#WK4bo+6;!r(bXl!hUSI8v9-l@QzNT=j+T}e92yo@R*sF9 z8#lLhYxf8Tj+PB_Y?tk_V*G}d5eJsVvRQirEdX$PWv?t3ol#2ww%xK@mWu-bXz4)5 zYFRDog$#g}9S*FO%_4vfvRkq4r$+4q_M*!Alt9UQ~Ej>Bxl%29vK0I0o;6YTB zQ~`Pn;G;zc0knKjfFA=`Bp@AFCuHsT;L6C=0e*M@_1Lks0+){iXqiLP3j%l~pa%#( ztVqZbga9p{03i^xC?K5UO%jD@dHFEtB5BbxSAJe31t>r%2Nj^b+in^QM*2tD(~$-2 zL_KKg_R9VW*?q0uPe&vD)>;p$*_Ku`&C8tEve}^K296mH6j5x@;{Z5f-~?9e00Au~W%Hdnb8`@K`-<{+6bdabA{drh_Sio+i|3>y6jrMr{ zjYT?WCQx5@X%Fqe-o3HxpI_R8zjUEi)8akPODmoS`Ro=37@;0`TmZ1PzYfwKIByX+ zw?s40c8gWQ;yUJGU0q^0+s21VN>94W#)m#WIx-gXFd8k#-)!;!Sq$Dth zd5|P?gkIObw3dmV8ZS~UsztrLz%>4=)sA2x8vnWLXp!s1w_fHP#$IRq4aK5ZG)o3% z#^YRFahcIzekLkPN*3Gt87r$SGnp?h^YjEoGgHRPR8?K6k&*E=N=i>?GcR8g6(wau zGse>(Atl|^(BNsFo}h4Ox1ZT2+hm<`Y_xu6vsJlqBgV_@l3lV)IB>#v8J(h2lxl+< zQAia%1IF9fnmzIxS#Q(S=;%Qx7V)h1JJZ))-2>{;3>#Z#=oe}G`k`jFqfNj$= zTzpJR%L@kp*y3YINHnPfoi1;&u(HSiaQS+5Rk`eNpv7BSqcwUYfDX2N?MfnM0Av>5 z*=$vE>|8xJHC3s21c1eNSSMt8Fn}wbyE4M1Cx@2DR#r8O4^NiARaLc$03OWX@zx5H zs{lP#{GD1u<;KPa4|r4k~gXQZf0bqNFtf5aeGi^tne(Vpu>FVHhlJf$SBM6A}E>zb9TJ1hw-Hy%`2{WxqJ8RHj$nJLI1*gX-~dHM(EF* z^wGRR$bMM7o2Ui4^Xd4CK)lJ5J$njZwC6GrJ_p5a@?;067;bP(;S61N8FU#DxQ*<8 zZe$LSnX?`ja<45#^l(!V_p}4>!f=EMg<&3{AZej+PrDP2p-?x@*Q>4tGDPI(0yIqH7&FA+Ta0aCGA1PJ5`%Lft3={oJM!9sI&P5)Gj{cOoIa zOMAGJS?75(0 zxN*Yfy_Qy3_Y&{RdKH>FSP6BZF2NV1qEeU9s!yF3-dZe#yw7Dm9Jj|P*}pLg=iV5l zb1>K3RgA9?s?NESw{jduJI~W1bmYWsslR3$eiLt+_tBo~RLr#J)>~_(^SdwW6W5GG zc8~~)?i_oyQ?{OipJGg@dT@5&3_Zn|G9|{8sL$CwyN(BP*%P^2f9xDWzr1uJAvAbD zEF|0|{cr|~4=0c>9A~QDJ@WtDN@}$?(*OC)6F+0+ zLoo=^6yh@4<8GWGF#ntg2J`Hi_TVA7;|{! zHtlF)ArytfBHWMT#2ea^{fac&lf6g>J?#z#V_phRXqSl)?pw*uy-j-sRqCLO7-Z5O z(Q>rMGWAt1dCs+#+Ltt1kg#0gziBi%UYsqEjK2^ZqliF%cZEkPRz82^CBJew?(KM zsY0(d{KlDuP&Y#Pyox1&Ba#;SJ}>(x261o}&I)uiu@E|PqK}+-lqfiN59#K{34$cl z=?pW}pId*dkr|R^pgkS;qB9||XMFGNoKlR1ujAW&-e|<57AZ8s`88t1h!(%jY9rcK zYpu<0ZPlaebVjVzMvPc%#9AZP>I+c6D1bFfi!6%LGMP+gX{?(4)*rEkT^CaCc1ZUH zXiw-t^#ZiV%Q?RhN8M#gDVHfeK&n^BwDy4cjf9`$Zl``6Uf-b7}`FZO~`db=SVWv;%bIx&2 zk*te;z4~-2MN6!;ZY`@j*u62wM=}TKeb!oQt+kz7YrB^%D&oU<`44{H!bm;sxv?a{ zbKK(`m9)0jDa(!DF0T;JIjO28Ra~%rrBa_){V5fd(s@a#p4R)xIQ43!n=C3K3_~ee z<;&{b=cFv9@-`9Yc7$)2pLgEvuG^*FT?g|xFX_W7wUtVBcAWDILzoUl5w?l4zg*NX zu}JpUrc!86SQOq5Va}D>Inm3Q%=nF9*xkZBdGJL#6^=AE&MU7++Vme+g4j5(UXRr2 zVI%k8IR7HD_02%@$8@zQTwOZ}V>PW7KV1uvK?-qf*P1NR8Kou9TG$WJbF1)$1~0AQ7J$>|+(TWu^v9or?(s~ZY+a`Ug^oSPka@ZCUYBGw(3_VkL}%z~M-{Ya>fh7_NF+vkor5z7 zja$oEu2#;{o@QICEM92qPEmi|`e(P%eHy2693vAPe#2TEH*ny<;dZPW$A}$=2UQ&3 zXQ3*2ZIgAnOZUmWOi35%*2HjaX=N=vSz=1ENJ(OB%^q=WS!=DWT(yf!CGXXR!XMs5 z*e%84%)vUb5Hdf%@!2@v#z8Ym|LeHv2q^?Z(8!f8=amr?PC#L(ejz?X6vY*?(B<4( z!6=E6+7-hr0+~5@>rbt)@Z);DUPyL}E-6wD5-CaP$&z;|8Za2FNef-lCLKOaPESx# zAGWd(mWI}Piip83S4L}bc=G;pBe|c(NuO!fBkk#e`8PeNJ(~r@0fhVL?H8L<9zxwRcopK(0p43 zEM3;6xx_@{&4@r|`$!Em6AjIb&v==C#SG5DtwtuS5oZq0e&)IU zd^A3D3xsB?;Dx4f&*^L=LgU{Kp^`J7B9I}Kob6iuv2mIg)pQMxo+cB*InjtHd^6v@p2sy-V#n~sA}aI)ylb zi<&f1j?d?)^&2AV*m14?T*pTk2`6Et$%9toW$i(=XpdOL`pqt_=WL=G5&QZZr&_c} zZOZW)sukqM-)tmMaCmK^J?a$gxi_BEG~y%b{!wp zA36f|*;wR*F6&gyQtQ;@f#cWfl*!}s>s1Nbo zTPUC|z&Q?FZS4=$5Om&pU%V)6)`dgWsF=wkBlV)DRFy?!x! z%%@(#AQGcXe>Ar!D(gNjpyf&cF9w>NY1=-dfuM7_4=o zsav}5Jc8wRLHc>)()E?gl?Nvfky31ZiuQ^wTi4LoDV9mmrR;YsEo(pF0!Hdj*VhD8 zEu&@4J|j?FbO%%yeaR>J`WdX@H+s(bH!gWR8rk>u1?CpdX^KbscM4%4l}3B0+ly6& zRG(Q_`3P{*E7;PVLy4?YDkSU`yS;8yA8VNvxr--VBw$Hr*jie=O&&)_-eaD-G#iQ){qD(q^={Tq^6!|3_5nD1p^S{Tgg$XYECGqeu7O* zGTr2aa zi#^TjB34MGo?ysTd4mcbU0bN}TREv~4EmnFHAG{x`CuaY$0g&+k0^-8R*$$98`guf z)kQjSKE%;$$+$(}TBQa$Xe63gk_nk#l>O%Zv-1*ocz-iD}-eiF*u`fOoBe z?|XG#K1!l-l=dS?oSr+bnWA=tw^X>q{z_!v%fAAzaYP4`CBvbS*KFM_{8B?TE^!mC zX<;p|NkGTTnKg-et{ia|>gC2MvTn-g;jt?{#wXtkkr**d!xIX#hsrSCnti?w?xn-e!YxSgV^FY!=OmJfHcOU>;HBD z5K}u<80vCEYJzaLL{x6r(4gu#=W|>RuK2nB7oKPk6eUTgm$Xqg`~QN#N66U>wF$2x zRp>kuVauN($P18V2x&$BWc0*T?yeEm0_B#e=X_AH7rO}z_JjF3SmyS zpGnP(=9+zKUGWSONLLlJtxruGFfKC&v_=6{>TPKCWRX@7uR;zn_wbrvvvXL5+!9$) zeM16i_;~i?iB`4I`q{ZDzZJ50j3@9Ob@JpH-s(_{7)bbB9+xL{RwnOjl#yBv+{bdR2}%+M4sarm_rZ z%5w-J^lOXir%iua{~Z<*MZ)Aw1%(<8_Q8GQ^w!O)%qR&PQkyJJmkW?V5bj^yt@8q| z6oKxH`x!C0=cRbX7vPy9PZQ-Z%xlN+P6Zg@L8;^2`_v$F=a<3 zk)DBC-ddFoc{{;_GJ7eI`=Va>zUDhcraSf8O%-ZzG)AZLcY{?()G`0XF+s9c{Bd%l z2RA}ZBnV3CCgUSm4A0L+to=^GVDWV`)(LD^GYif13k5)ARhN-Qd87cI%smedOjUJm z?usD}iqsPhGb2N6zN6{2Y!G8xe2qGF!tFRXT%oj-^&AXV8>=nMFE+DE`GkwF&r&LJ z>fxyE@_rzZZiy(WhYF$A=mlR$9iJ;d+GhD2pP)xTi&FRD{T;3tZkj{ZVPXt?hJONl z?=05UdgEuJkcMa7;P${+90RqJ+yQO^13Jr)7-a!bGjDWLE-vIqpevY75vuC+5KNJV z88;w9lVlVPVd6JXhR7cS(Ko{NZ#=64F7vp0PXto9$ed=mVT-KiLKlQ%kREF@Q3hL% zNBPBeK}V&VOzJ?r6b7Zzt;%gQT*I84P8Ig%nEDZT~h75)rfU8#a}|zy_(FF(U|q+pX&0o+J_D ziSD{jRUnsaOeml-{^;yU;QfD~$Q#iR7)4M7rSp(qyVlb@r$=l(SyEk8rQk(J8S+)*dNB-q5FqF*?;k=d{F0`8L$Y zLyE$Tk&F<9;Ua#lCLmRvF$g={v8nh*82)A+X}+E3 z;P5n}BAhlGkSzRDiS1FGA`$`Pt&Vb^D?r|rozD+9>Hr60szte${=te5k|E)>whLdN zCMXqKXQm`>SHxzX5lp>~jkq>c+g$Oym7~OL)QUC<&cjM-6PXs>R1jkpl@vKpUaVAb zAi#{^bysU>qF~l15$lJ=wE)NA-hHjWXnn$3lr@N(HiANaS$erAY#YPiciFy!MeNoN zJ+bf#SHNdbG}dgyVz_#vlLPPtdF6T|Z@Xt=(wRFcpiImgnu0nNgBijl_`2ni%*03g zBt@DLTRjSJxfCT~7g#Sv*g(TyntL7t3gyb^Bx>&VHQGeDO-0;Y(4LW&DS0-{Hfiun z13Ck_*~O;M4A8Dkt;QW#@T@94%k{1ts?kB(Tw?9Z4J|+|d)(~{k(F`?D~`ROEKg24 zxY`UMn65zI*z7g1>6H;Cg(zZ4@L3^!Z(Dkv&4A{<(!4GXd#LB97SV29;zZ-$ta4AfZ}9AaKKyacl$s zh7<`2>~3IjQ?{8Jv=4G5q=EdxvJg(&V zN`(TXPOt+838aAtAW60$)$RYjIU}lgSp++x#^t-ch|k9PG!m^#hT^k5nlLoZ<-sSg zW1t&r53&&p>?J~y6TYLRF*(|tI>h1ePYW04;1}3M3W?2)%-)KW3EqPbi>{q0rMwB= zGeS!8xY2>k2X0EknSSAx=t7jv!PkAL>q=6BR&c=|H|h|2E7;eo%-8K_T0zx3c@#tN z1Yv>9S_S3xB!ApWgTC|*!BLcLR>w;T%BtPTjWX4L?#orWLcx>NsZpL9`=qc_KAV1= zJf?+G*ANEw3V9wDUE<%`0@-d#HtTskZ-ik;t3=TH9Mvq)#y$$~Q?6B3Y_6^U?!wHd zG<4M@GUD6-y6qx(=K{3#mjIXqboLD#T!KP;4Z+$eZA4MjLa@0d* zyx;(r+cCLnhs;yp2+j@A$G0$sm-F4Wd4uajb~mt}@Y}o}W%2t3oqw!2pd1#sYoCp& zPg?F^JCms$ce!16FDw36?a55o8NI(qKtEFOJK1)i{;*SyK7hEpeCkcU(y^Ki&z;-n zyv7yUNL+Qq)u<2$TMpfdMev(>M|4x-vfR1c1l9RGL_|vE`)&24E$)yQqfy$<^NaE# z#%7@L3tLQ+)9<>_oA!NRTt-A%F(>Z{-Pm71JY4CJU)UE$2rG)-R0|UYufo>RS%iGZ zPpy$atAH~DWG}FzY=hW7q3iGh5ed8BEHn$#kX+0`N9>hb1f`A+(}SlTS1yMqq>orN zC9;A`eMDIICP8#;z>w*cWFTVN?i=LCg@qIOE+HnbmdPRjM2))=Tx^@5x#N&)JF!6_ zqnXXV)B4P8wW$Z>no;w2H)dpM753bWE6^Cf6znTd49nCNt%TVQUXWz9i|T0C=WAxN zhlF@pA5t9!NIJ&?;B5telREEB;Kil#{>-Jz=_b6=O^{SPfl%E`{XsPh$vhh>C}Xh! zC#}o6AlNLP@r8|c6ns*o%83V0hnczA(03j=R5T;#YUL`T*G62X`R++T+dJ3}Q&h?_ zUCCk=!WjF)7saB2Ix6>kOwu zUpS!Ua^05HkJA-=h$r2}VP%Zb;cTySz&8nD(IleaFih^lMN{#Yff#*470Qn8eIu64S z;j+-1VJoh)C_ljnSqrYsl>!Xv@~U5i!t_x-0HLZ|CtWi`np0W^X)+kw;E`?8jAUHq z@Gn8^l*=)+bRSH3(&IP}4cYQ3>R$>ptSNL&U;M->@5n2ZI~Bb6vXdC&0>#B3wqlWc zKGG=6mnuh!h&_UB_N@x8^xw|8--k4gyp+r&FY9pr@$>5#yUXg{U@f(RK3-46u&dA< z;{}LuhReAF0=FFvZ+HI0S==B!dP7g>jP-TBiMW-?LH#A<%2=7p>rIzjF5dWS475#Ty3hV6$bG@O%pq* zMA-&Z&+E-vWXH$#3;<(zi9jZ>Vy1JB`3e(a?MhlA+fT5{;yJUmoyc6V!dAS=RsH1B zlE$qzz4PMEEMWH>zG}*xjUfyGog3dn1*qKw6P|neJ13F5dRVJLH2`fCbycAUmSr0H z1}V)jM;v3iQfVYud$f%__1YKp^hO@jM5kbNt1(z1%}6*fgvYLvDqu2JXBAC3a2Ni$ zZOJHA1{v(bQ3JeSx3qZjkP0dbdPYn)xl1sh3lcp)aOZWVdw$@aa0eE7p=&@#sBh2y z&Ah%j5}}WSlszB>y~7Qo4Dfd)=_#3LS3*&oO+C_;o5R7soz}F+h|n z!9_JW)};au9RxGAl_5(KTt0nUx5?Tas6Of1gSv3ZhXed3P=`>mCy)18xp58#`eFN~ z$N_=|T+z&kCVrqPn<7V)#$fCUA9r9Ty?4+Fs*;=mcKW5^mCJVEdP6`q-)F5jy^YH0H^V;w@K4OxiK;ejQ2QvjBdG)O)Q zd>tCX1YA}SwrA#S(Ztfg?N)I)P=u@~P73$p1S&54?FGjISjVLYGlF-dI~a$Dkc-~$ zW}4_l(V{6O1J8!A2$@t5DCWqxBWz&T(SGhPpm~O!SE1+m%XZvFLa{P{nlKh-zy@`+ z#!1&-uB6hbJ(*O0DfvavHa5M)RV_$dp!d}z95GHEu`D95%<~4Lm?jZO8W(bT1++5h zMdY}ULWx0-?tHoK%@}}mSn)o(z<@R=Jm3OvhslP7X=7Vu`q7=Zp^QC#)w7U}KG?nM z01R<2@nAUHmxo9JTR1zw2F^Yf1w;v~K}G_%UrYb6G;PYo67bWgMZrP|qegxLfu>x1 z=YZwnW~VdUW_HA#;^^>?$n=Cy-HTe_&r>pKKR zTe8at3g{K^zIl+?;{w@NbdXa`U4S0D$aBIlGarff>jgCM3?#t0=RFLMnc2DdkYZT) ztF*6iHw;GZ3mP6H>vZ&RkyuV_pkGyQcj~3V1}M1iqyt9p7L)@qFI(F8^2r&>>dB=< zDj|svRC)p^tS)=I4>&5F;PW*6$RUhnIb8~pgmD(avw3-|3=m!Oyih7)g~cMm(Ipc& zV%lnmYGj4j_{)Anlv9{b378U4AGQLk=u{)h$rVH~ijZzb{{d?ldV#)K2p9q@|(l+)FQ-$FoN;(?6|wrh<5D7I{5 ziMAG&Qu9eJvGJWv_ZXSgj#96CLN`omCI9h(MX&96Y`n#93nR84d|=QET_-Atfm{s^ z@f`5oXh*SwtOp17Wz>NSbbxVs;eDI$|; zs^L;Yd=$94X$FWyEwng}_Z&(anyeRM)geV@lv`qJpCRg;H5it6C5;o#HNJYZb=9Fxm;+|rDNFsDYnFS+Y zM~joKY(RV#vHjk8{1sB~zC`|()STL+{^19Bw|*Zz#ge$k?i@g^{s;;kXv62{#cY7G zrG$wHH940T7V$U4Hp2_}G3n~cJF^H*DBkEG(B{0gDyg$JFX%!yYB&L}{`NYp9 zRo6lk>rCJ)fFIj=agDa;`?Lo|i`9EU2__lKXV3I*Fohb00NC)AiJWk0Cs zw>yh{Z~xeDz>X29yGl)gKdEdSVlnOw&*e|a~&-*2_=7I zVoh-;7P&;$?|v~b@&P)-*oK4(ma8mp(iJ`E#Rc>Z~b}>V^;8Z3*xIFhH_4KzNOs zDxiKFNUv-2Sv+P*Ln@kS*XMlPg2pwF(4O(G+M`J8RWw|wPWuh3#r zrk3@9^ZsG11?O+Bd zeL94?a(aM$J|6-MEAh>8_RatV1FeKgkWOV^zFlMMOn$-%8|ccz1fH1ynhh2a!f=sx zFukZLF4Ko-;t?bwcJF9U;Zqukwu-{NgR^lTu-xRZ9-j+FHB%~h94ZO7vP^gwRH!YVkbvh3M`w7B}$#{9b10t z?+q89`^ClQesS}?FK&FxeLutH6BHHqt zD9$e!uL=3_4;jm7fbW_Bg)-8k817=s)p99>ytqMGYLo-bmZ1f^Jsejwiyz~`(Cq+aaNs0 zQblyepi0T%Y~LA$1H5DvNJNQ6pAArTl289ObQ}3VZ^K7X-grsGRvGWHne(_|F-5*qQY46ibdl(G?ESEK zc?4P%B$El-NKmtu1PS;2e8)EDkbwp6xr?aM9!&=ooYYeV4GSd5c!39!*pw{#7P0oj zKVZshfC_rl!qG$Nx1ioNY^B%WY@CQP%elRGG<^DtLX+P3rH9)(F)H$VNe{D^RFnuL zzGGQje_rw_t+%D!TL(h%q*l8LS!DicYrT_5HF7Z8I;|E{dhgbcx~GR9q40h(6XD8v z6eC7AL3wwE4U8L7J5+socwwYF*9Ua`b=0fHKmi-WE9rwhJzyZ4x(*5}24fLCjK92D z+uJ{pxejJpIl%%ruoRigniBTNy(mVb&C7W{c#h($&84>=HqTgUwrmR}0`(g3dcqV8 zmEb}?4jvLs>LuX~L?sQ&X4?iQCxu$G=w{JFdE>y9<4ch|OgCU|wepAGS)+rX4k0|O z@hs%IOVsUVS*!5TyViv!NO0~D%8`u)LO4gSAmxW+(Yq(F8)!-vRw!b)5p@vaz z>eT^IrS%6Ngki`L%6CNK^Ppa?`&o5`&oXiE!KRxeaqaso&8^H4)~N^SG^ab9MnT~- zKAN&Rz%h{*c4>Gzq?u@+u!;D1(1)ixR{=Tb27@zg*tNjtgQmgKeGnz|;g8BT+4oGvKJ^O5jvO=b{-rv2@Kve_U@XSlO@c z=p!;9SXGvrm$A1AXXvLP^s{|BjqsjcBM}c4!)dm=%Xh$ko6=lw~Tko(+1ZqD4hw(D?_8WuQvbL=@#Xb_W};`n@^a{(W9=si;A*z2^%fV z+M7q-1x;C+gfCIB`Za7{@D&byjgQt&D*k&12bHpgQgV&MxsvO?f(CyLq4F9g zZYCl=1ZU}r-AyQw*5?~er&uRd1Xd15n&vdigJ!a7L=iy94EX1B;3H4UnTd%u{3qaIePGqM8d1AK>T^&+B%KJrwDomsUe#)d)z&?3U z&(^^MNe(b3YBoH1@I!cW=@}h3cXPLrF>Uh64R=YzLqI3et&q~)QPr%ILL|9h45-=A z-OzoghNmvQ!2yu&(r)jlapM)zySq}ftInv;XX_)f!bk*;dte1^k{q31rTw4LQ@{e}VO28C}H2S|ktDRuw9~gKsHWAE=u;NcUit6Rz(?Xcu z|NpNx6wuGBNogmu5-2}|T4AB&j8-D+Blq$_Xh^~MdQKR6D}}|L*-`~9O|qL`3$wU> z3Nrfdu%e#$Cg8Khk7un3qT{@0dH8T8SEsQe|C}?}>NE8pje*%LxZVlMT4zk)R57I$)t2QpjRje-x|3r@+nDK>>jL5t)_7Uy`a||x(U{W$mE71C~+StWhuMg zG~xyC;RIV{0S91DSi1z4X zXR=#dsWhY;1zy%v-iD3q#pcAOUcDFdMdW@DL1Cg zL&!4^Q67uVN!6(XG^}~3^G|+Y^e~I=>1p6;Zp(VAbCPQU5X_1K;VF4v2p9T@@{nre zz?sWt3)uxdnMN#-?rbew-x1>HT-SVgEA}ubiigIyo+I=@Xpxx=XjDaR1}l|t9QN!2 z22kG$ToM2)*rUBZOs2({lVU)ugX~nreQ&Wo9$k65&~w04aedDkMP`>eWUv zV|0nUP?a&}`*>}16@1CQlRiYAq(};4CUuDSC6BLv54o2rh$bE69yUoO?Uh|7`tl-#(K$@qzPAF^H!MTrbXJ9H+SiO9eCHU~UN_Q*eVGArfXgbw$>0lmJ>O^Lppu zwkourNSeK6T_<#h^8_-(+lhYBOPMumMCjtwdcDG1b}BIA1WlZ_i8A~MC&@ZaKsX%a zj=;6+-)V)y9s^uWDZ}>fM)pZt;BUf3_zW-d?I1y>a8b1VM0UAhtpdVpLB1Xfm~2ES zY8^=qC@1{N^IQmwwH)`SG`p*|04ZjXT;ARK#w0d`k8$~ldPWCmWI?5M)z^v;xY;6U zD(g{29r_DkqVModKB+Z+-JMGT!-NMD6j)P+trI=KD&siElK_*Qjx0(%m~Zy@5j_94 z{s|z&8;m{|zjXLkw+>ig-q^OjbVPiR?_M_sz=?IP@OSr`tPL{Nx<$}Kcpw;G#bQv(O}JT*6H-Xv=`2F^feLYMZD z>^6SXpkmIO{E=no0&hT9qWQ>=GI)F0H>62{1S$5mC>aUfGNpZ6Mz|j4qc#jKE`8Ey z8i`93VyO|4^C^lr5U+sLV`qdW#-(}L!kpT%J&D}|I073o`4=^3Tz#5^g7|Z* zyK{kKo;oSWq~(0aiRW~sh@xQoB~-M$92L7OUf>fwXLpdx_YmZ;z8f(JOC=Qsi3S||$iG7*&FxrqhMWMgx1E@lt1yC)`ah7(% zgB?+a%n9>4qQIk$vyd@j1-NOC$oXk7 zt6Z^PTi`l?n#J0oC#wWXz#^?s%*D_L+gGkKM6Q@2<=r2qf?cdrL15#(m0c_a#etVm z+b5O?5Qw#&yk|>qw~vI}kwc24X%KE2!vgE3*X-(wl;bJ?@(IP=A9)~tLJyGZa3}@y zqWSKIOkoTMi5F4pwQ)tQJ(N?(lx1n3``kJN@cR(G`p?D@P_W7Vj=&WZ>T|Xz1!oFs zzN(LTMzah{c;~?=SM%GlydA_+dAMC*-n6Uj)Qrm9(gs-OW+qwDnMP5$o{$5>*5>V)vy1Y zQzm)43@TtDfL(DwN%eg7fhX2Rqf;JnI=DvNJs2L5<$r0ar-S+hI+WEu!U;#%P{~$(Cd+^9=CH51bsj=M9w7KxX5TT^OPt7X)xE94(a4 z7i)88LIe{SiZ8ji(@r~8hA`@j;Hia#^9FH5v)WPh=yx{Uk}xg$gJcC2 zlV~But7rh|ch&$j!knkYp`DT^Q$#nL9NZA$&!tR&QxN^8^B+Tu<@G%aGve)fHof)3 zsgs!ST!VgE848%QBL-1vXdu}kf_~$s*RII%>SsbL_iIcnYnIJPqmuW*gjh%m7EI^< zE(G;Y3(2l>VIh`q*r|K0C0YGCV1v9v1nP$I9P3fM{yKDhTh|c^&GQgp%mApeDMfv# zt|phGYw~~Ruc|?$=&ZGaxCpRs4YQ;{aaGc(T4|6e6?i>yF2Q_+^#Jt1e{@M|% z-Oz?hx}DDO(ZWmf#SN2u8?>-f|>v>OMtZFd3=!jIfW)lCvc z^1`6y^P4TPE93bd69;tpuFkFlO|}WMWxO{iFJVKam$BY+HPfHYBJtHUC-tPFO$Hzs zl^z&$8ryg;PvgJ_!EfepCcGpS8srz1zH)Er8HP!0anG3H2%KL_S7QNq29Pzdz*L4t zp?gl__^a{UFCkmAlC6u0LSYVY;jK0nnq(L~e;j=8lB?&WC~TCGB? zDr~@Q1w#giDnZzLOG4*@amW~?%7vyA&@9RhE0)5SZD}jwxf?C9k5VVlkUr}H;uEs!5;aZld42EYJHD;9>vC(1Rj}#k z!c=|fhl7iov9zX`a+%(jzbqJ3a#}9T)L0!hh#v_pf@(51TeKh{r+ZzT%FYSK<_%s2 z_9$zB#aIQ6$O9!CJyN>SBjp=BP`)&QynY*=CH5ei`Wk781K)a(1(mnkXM~#A`Yz|u zLna#5Yp4Z=8l9A-m^tt_$}3C*Lz{>*(CKj*uWicVVJ0&toKZ7fZ<$&E3yrb`0$kd7 zWA||ivRp+AaEeE@F>b2e`~4XAin?gOA0rDHskp=oCql>b)a(UT{d|s%L93S~&WH8J zO`I=CR7JNW%OepRieOcE)HF|rQ>Y}MezlXgs$DkKP!nP#$Cb>#zlk!7{e4xV;M+z= z!^J!;pCb8k>-?Tvt+=EK992g^9HkJ0FLs(YekDR_IdXKukdQu!Jp)8ly;PUVkOT%u zoz(+7x@i{(muK%l0j|qn6IKNOZm{e@F^^z?vbrQ+C<66bDP$gkn|D;YFEQJ zU2ZCIQb&&$EpBj_m7X+V=6|wqVV9EbBg(HDV+9P03X;6?D?WSyS`W1#V61CT7L{pVRg3aa zIiXDcCXnLq*2X8n`xz6EN6TQ3BOM<2v&MF8PZ*UQU~+S*7X4l&knQRq)HgQ4Z z!dySAeS+(Evl!jqVZSH3?^1G>eI#r_TKV|isJ;UP&nMq!^C{ds`rJB#fkoDaXWf$}fbOJ_)| zp%Bd`>bqXtz{k}-^g&fl+g?y|s|=q&bi#{F{be@wMnDBwVnI&R@(dV{&i*s2q_Iow z$C<+R8SR9qTnO~PCY5og^3gq;Cjw8?lbKqB7?WAl8$d6hF56nBrT%*X%yQy%gl$0E zgbJwo5p-Xb2wB-ws1zn=Q#!+>EMODp4c+M$5*4hrH*JIFPfO%=Y%trvcA${x?h0!Q zYK2#V00mMhsO$E8pBCek!CcZ3F`~yk&v!$Yu&hhCWJ^k$=0g!YGOOYdt1~{F0K655 z{i-p{6fxmbPy~jWzZvY~Ad(vz94_nI(a3J_222QU8E7CTZ zfcP(k;#TdkU`hTTszO@*!dF_%G*ylRpEX-UvSe}E+Mu{rfGplpe>e9AM23VV7%XV@ zrz!&VeCLp^qE$V@UCZH+jcGm_rw<}-qE#xAsxS|?3wiv!pI}3_hL>wUP`lj@16Jzx zs`7a72yOXZ>aJ};7t5LpJ|AXye5u$)7QWX<>Q}mO@-iwE!(v_^s!d2I3W7||f7CO> z6sa0@UMR`Ia9kZbK6umHnVfT`q3Oe=)Ct2kgWg%%x@bAXnRrrQ-I=Sd`= zKjTBS;%o_8e3hJRm=@bJQ0{1gvAh3bJxVpgu+8qK`p!+VD!wrmbd!olae+(C$N`u3 zTk~}yf|K3PNlqIsv zC=*Hu90nRz4&?<11G_TpE390q{}^L3w*B!{&an_Z$TRYR6#dp%GhBDz79M+|)#oF<1j3qpDeU zk9Q7!K~@|^QV|gUQ0cU1FTYXs;zD!+5PHQUq}Y0hv0%>ulvjR20JDG&fuG?dir*)(wdooJxW@^Dj?K?45@r;G(16KsG#T>&DYzuy7j)ozHXIswgFr zF^VCWcXcZ<2ng`UE8j|?y1^>jJp4!T>1p7xcVw%F@hIR9%a{rsnI}4t>`Gz7N2`uB z5**cd8e^iNM)fx5oqD;Iex)ftOC+w#4xKW~u)u+bR@cznKPMC`8oNF8ZIS`JfKnsoN{OWkF5>eJuB5l)sOzd~&VJr(x znu)mxP($Z!O#i&|pcFVC7FEVvrCs9_NQ8OKCN@%b!2S*GO4v<|F#0bI8=ADWXdtjY zRDd6lNE6Z3Fx-?1O(eU@(VgxTnd&a)9?@dUG6V*c!zdFi7n=tHJ;Znn1e!5!EDtew zL=64PEm4AUuviW<3?a@L22i(hsEcZeS4tU?6Eg3mHriBj_VhjC*Q)iU(*uO{*4}Tb zuGpZf_Qa$LWe^q^oY@(qrk731j5fWJ5git;XWJA9r!5ISt$si{ypBO>6P3SRe@u-Q z1>;sW5d;KD0*N#iPCqf|8!K8;h6yraRwTq>Q1ehuhAKBC+Z!UOZ}Q{@k*$l_>+)3i zC;AensC{{8rR3>~!qn~3gX<)gJc33Kd?VGF@&`Y`h-WN8>z5|Ib(8&9hwtZbICTCW zvPf_gi8I#b=lIAOED!*SZ_V}dqrZC3X$SOX+YZwr!-K^~Mu?%IhYa-a3GGtvUJajn z+X%v;Fqat;p1`W>o?`)EHq>`XKNh^Da#5G)^vkDxKy^g0CQ=$(MieG#OC@5Vqz#3;Ou@5hu#58LPq4_Kd%&2zJ^(qTLiE3Z zjr!D)Hzz!7+b=bAmTRZn@L3lZULuD4#nwvEXoS*mGOHg{)yF=20~gd?RT<@Rzx?>n zYXHoT=SRK=gr8pHe%h4?TJyfnd^0hF3GDEOC`=Ku^sBX899qCVJUf~U;gdLKP{IY@ zx4ksjtth55K~>8j@l60}+Y(gco=ud-xl5P4YP{6hPJoTXTV>Z)ic#OQJ-6VVv+_>* z2x9&JkjQBj)uCrwsUSR?68+p=uxBqB53Jz?5_G z=)f~#(FMB(O?Nz*l!E34SARTpdf|rNltZTlI;8eUIds85SNNh6$Be=D@`VcR!b<=M zT0!C=Rn7&7zrV%aUtGecUjmz3Om})`&(wq9%f@%P^XF+2G6C3Qc9Xx~M~`!HKvZXr zCCvaS_q+7Zv!@0SgGMb)yg?O$l9P~DGAMO}(wLr&1nFBl0Mm_mE4}wFaz$@e!JNxc z^0;}oNC#^_wKtBe!Ae$zP%_iC9!Yr*3)|JtMCz~4Z{&$1=rfh4^)oLVPOm6h8TFW0 z?=3&d;1oJme;<)vQ)me)E_3(HBFWaO7y8ijHsQ&1CjY3E3hvqFjkzpZtnj$pX1%O3 zE9Fs{jOb@^4$Nc)izfwAddaNV{7g^55s3NP@7roM-SY`)x0H}7)TbsAQk zAuoTmWjb|&D3aI;L2Zr+V^y&%R!;b5jb(#EPiDU+OdP;eQ$HrdnUgLYR8iMxxv41g zenXG#4eg0L9F-v+X|MqLU`-=T-;Aw*5S6!fQ&z zC^g|o4{nhRZpV18_S&7SwqMF7lFWsJZ@{^^Bq9l5Q zAj*+PqyjN>>e@+k0XFO7`}Ubn?3rt+EdiU1ogX1^1SR|dzytVUSvJ!aAlD;r_I_qZ zFbSRPWqR*GK_-4Ta-MO}xhsr3yo|#bRbYdND$J_QFVz5i0}+ECOIwQ4iaJFCXuqrN zm{_|a20UxaM7l9OoE&zRiT3)o#V&PXh95-t2Zf{(Q`mkV1TP2sn5fYV_$?lGAL{1u zMWww|R8f#4ymQFkK|a9xBQBsRoWMuV5{1PndU{vBmqR9Lhj93g#iYjYeN>SbmsEo) zh>B*)7jPSuDP18BVw8-q6*PQ)9ukZ57>$f!plUB43oGdYFRFjzaBD2!ncj4CGn(RBK1MG`9#Plx;bi9F0?cQSyKStPWgq zxUNL%CFp`Z$_o0jELZRT$7=u09dw^;4^|eOHAOh(J64r;OirO^7`KtM_CdGc#dg?4)X`s9c4Z;(_%5?|C z?EJzlo&iy>J!~j6lJi$4c*-&4>k z#8{Cc;em@iPpfPzlXjHfqeeEx2^26>I&TaikMSGM;`;FH z1P~BEnt{(1Ugup(k!9^p=cJ9e{KeV=K#4}uon`N^_Bv{!P+H!qa;2qGJ-g}6o$s4e1zt0`0{FE|Pa1btxv=V9FkN3F{|cF}MvQz1`4>1$vB! z`#{E@>Gm|uMJJ!)!3m04QyI8*T)X4>{GLi6(ZBb^dIj6iwTG`P$X=_9BTOV&wb$+q zlspazT2U+5e#OGLm6mHiWQ`1hc{)k@M^c|Nx(1GHgy$LL40~Iqo2^&owR(a~L`epF z;hE}rMc2@Zt}?dL3JckxUy&AlvPk1{Ky3pv%^J?79d^9O0rG9{8_o0yBFh+1`44uo zw%x^x+6i!?)FkW=VDUO{Wt*P9^1a(twZST*6T5N9tz5Q_L5mmtT&srC=v6u^cgGacp78Y zzIe5ANJW6k0SH~z@Zgzz=8Jy z5}*sH(6vUG%YCkdJoiMt_PSp)zCHJ#08chLel>8&myfx_%wai6O9P+_Wr{0toB!ig zQ^ezUwKoi?!P}|Gia$R;GlUmFCNUWCM#cObA*c(@k zy`tn)P)=sc0{|?Q-}{8CNEcvJSEt%r&+ZwpNydY|!@GgTA%Is8`@N8=uwK*NfvYlR zR{!v|a79;>k=5K`iz5gmE@bPji%sm)d5_;d7%qOru=XXk%SyP?$a?$cK-}1$J9ifL zmepInir*o+l5A`pS3sxJ`9cI8Jdxozh7?`@J@Df}9;^7iz+JOmPi8CQ9BVX@f#`{` z+&Wd1EC>`Z!YF|VVh;4ZrXUkln8v&jvxiFsu^^pFN2r+3$j4FN4ORB~5ZvXaA!oQg zk0JAOpQbn7bO*IQ0g@l1ll!dW8P?zY;?$%N?DxdZ-X4oER(&d80Fyd7JZ$W2CC?sO zeLPkmA39?d-EfA>x=+0w%y%JmmzK~ZV-y?5lA*FVOF-CJZl;d6_AS6_k zpUwj^LY)$c%BTwExhAEaJ+^rUaBa!3QB)IZ!O0Tm`yLhtLx$*keS!P?{v8Za7A;H# zZvh=TcH^5SUVx}~?_;ym8|?OpwXNvepJ3Q4M3>4Zpf?jJ`Ps zc>w1`R!*CX^W1@PT7l=#4nDFzUkeo;9W7-k>#k0}!is(&b-WM5?7G@`w)mxBzKmZQ zy>JZb1wTY!E@Ms7n+2B{L{;T>v`VF%y9FMF5lk?XNDyj?QpAthOxYyBR1?3Sx9DXj zgPxQf`eL+vv7I%N+7G(MZPp}gkH8ds^6%eZ4x#0E!>x@U7iC#)xVo)>tUpBYKASN> z>3=a2QA}Hc-Zs+{+23Sbwfa@zNoD=dlb1+QkmvYg?-q@{EcM$HTX$r$6{A$t@|6o& zan<66yQr#Vl0x4$k<{f)PXr(I*scoqCTnVnCYrTzNB7e#9nrSMk?PRP8noqT3JFu# zRc5{U>_k|Ac{J0jz40- z-8N`}H7Ip5PHhIMvJ~YSboe#QIHjBzdExM5G$<>=>snNlCO>XbH&zA`Rbzt;nM#(z zRMI3+=3q4lc4Ugj*6vhBR-J6R41rl!h_}!^-7s79{fl3~ryvdk$+Yf(@|9OCbz4kfJRgeJ!HB zSP(s*$IJU3Jw^cFR!IV7Wwl8F1A6N5nkX?eOkqUYKT`O&iR&5}Ohg}7<3qYZUDFA8 zqg|o@)m%}}{q?D7t>lxyP6=cp=^<0La4H;7A02s}UC@qAZ1QyaK6@K(gUm1U_kGcI z2r*FrSRtP7O7k>n9@mDCN6LVA8g?oSnCcuMWdu9YaFC%`mVS2NOcMjm*4TmsutOmG z7F*%5S5?-kV=Mz5=24bVq>pqh0|_+vVD;3rM!PvBQnkJSi|?%B?c!zEq^_ zJ;!@DZbtS-7KYsn*zq?$4d%lK%X^nYmJ**nuf)Qqx`R&vJt#t*loFoCTiRM4+`JIh z06{kxRd=QTd*N(?15Ou&&~KbC#aCiPsoNQJ0`&D?khYZtAoI$-4qCwIrVprkZ4Pv@ zomV?SCv2;FNT@~9Y%x1ib)G33nCuIUrta%nKvBJ{<>eaSyDtYoKQ7ZX%xXxDr09y% z_b$AS`KqVL{}f2(wL>4QwI6W6Hz=RmD(tEAPHH<@(}vI2=rYR(iu9sz5B^?|m?k{! zA@_wPSHqNt#!d-W#YPI51_*3moa1DL{pkFCTrMt7N7hnYVh=~rYa{%tvzzY%4b1NiWWmH^E zkR9CJ-QC>@?(XjH?jg841b2s^!QCAOcNpB=5+K00v%7!psj05M-Sys_C)Ka3m;qbx z4+?g!&@z0Pko zSNjMt#86BMm9tskN@x9tRCMaezgT#0*~a5ENO`8+(0;(WD-((2TI!i3NX~WI3&p|9 zx~}X06U`@(0?;U1KTwT73NA$@+_zzOERn;8M1}}j0)4;Ptx`z;bebJ~$}Zzb zEK7A*WVPqTj~mI~*^gVn??ykgLJ}9R!aI&fZ%nDjMx#IXkflhEzQmJM7}0j8CN)|j z{Ocgy$ud-7&q|1~P0U9}?P~BvqD?_PE^;#XBtqhYkHSS0%h9w8mM&?$z;YY9S5t46K06LBT%cXjx^ z02fR5a!O+4a4Ni0HfZ$P=lZ&ZzkwlZxI1mm;By*c8)a(B+aGOHuONEojjwID&=jMA zAOS0qT$)s9$R68!weeoE9ufVsfKnDhhDqmi^o(3olodI&QGu_O1UbU-%pfRcyg*d*%X} zSXGYAd3_a#)!5GO7>2biO-zj!T>gockafh*F#Mm0Z`7IV|&jwtj=BrUlcbg z-C>3s&kER?nzolsYHY=-asofCn!SV9tF z0rp?8#X)rwq~O9!o8ntcw63+BaG!_kD&&% z#?FeN|DpJA|Nif{X?-d>q8NeUQ3qDON82|*3!5r$MJB5TD9u`@c0deBNROqcOUD>{Qk(7x{=1OY9shi1Z0&vxS!t2iBvM0<7&33W$w5VPWSD zd+4Q~1|5bb9jGkCa09JP_JnG^C*Xh6-0`Ekt9Fw6Ar##c%3s!HIgNHe^?>qtzTP0C z0m?BUP5O-86bVCfjY|!SX1PP|6>=6v4Cda#^yGsC8M@0c@_yLVTmMvQK}*ha?rd)LG?JS}87SG|p%+=vPc6~QmWMy@PTiC=t$9g3Yl!mqLn z-EKYp1D5ypw%&mYwSIiuXZ~lTFJ?DpB{cW0Yz4}0fO3eSff~pxM|ghFOx)x!(-+P% zU?M4Qo*>psV9|p`2yuObDpR#gGsKTLz6k?0=Ed93KDBd&2>?`AX5&AglhiUA7tnay zv^`893WJ~@jWzpj2i^0ZN{LjdgjV++{h(S86(_oj8#(Vf2nd}mcs~m>tL|(EkzRH2 zd(cZuB|tR(yvW>xhADBQ1r$CFWL{M5f3_bhtSNrAqV>6ly%ztyxr|x1gl$whG8AET zQH_ng|09_AUWj`AmN&<`drmriJwqo*q!~ zO_Gj4?yK*bNz7HxUw))KIt4Hu zr3f2m>s-vT1dWG8R|1Fx8+41svPWnBzlVB`?`R_ahmc%4h&SG9u`0O{{(;F= zv4gRVc|xMGM>h7AnvxEbYPdF}l*Ao6OWvmcp17@4^amd*9l6^XPI`Ya!Dyb%Mm!4d z3R~69;xzox`IjN6B43<|!zlS5{-wA$Cp!4!z%*90i6J!IBI-n(^U}1V6|(OI*a5nd zkoZKdn!j6Qpk<}BO9@z`#}aGqdhkrYc=Ct2q zSoPNvHHGzvn!j)(uY-nG#`qzejPao@*tJ38PsmFVWRFm$^1J=9O3f$A0J>25I1&-n zcovv4OqLcxKyW+uoKlLBW%>xrN6#R|&!}f+mSHmYynQHr7nKeVMZnm~O$e->iG}`7 zd>P{NlSDd~=d1Zj{loKz+ThFVXP=S`1gh<>(OmChl|oHIE)B`WY~FoZIzaj6tg_}> z1#z}iT~lNJ@s1rrP;QCOpSI!5!=9o{-z3i&*KtlopF=Nvk**DaDg^I}WeGF6Yw_p0 zuaZv>XWHYiK?(L9_#n`$boPKJi6R<@+Cdv3a?~-`hY>TBcwQ~)7XI*b^cIrpIfZAxxMQ34?y9pE z>VgYmniTghJ{2Lhc0ik<#M=1LRFp^dSjYGx$=LT~_ZYAl2x@@qK_=KEZ9zGYG>xIi zz*sLnrnWs&7(va|Mi74=2ub}*x_8?oP=p*fsm>+O}9Sey4{5W%ZtoAdNIvUUTAf=F7Db0ktHpl9()P2ECH)9 zu}6MSTKt6n(y$^gG*^nH|6esTtM;lATNuEiNDdDWwT`y{o8)c4sRE1o@riH3pKfGy z+tk^r?%`Z=eUv0>Yszk zN)Yx?*Zx25&d?i>99~Gs)2UlQ6A0%`sa(@{?MjwUVj(2GfH8SP`6AxG5L;T?TCA>{ z`<;FWR(()7iuWI@efyx=BBkss>=4WM3+Nw|KRy2ICb{4$@XC?2;~Jrcq>j)KcaQ_9 zmVzuFcljIFmN@2$zf{kwnzo&1`P*k)mV|kxYRC7~DQhhymK)d=8tZ_=gQWd0E5=8!|;! zN0JZU(>{GR6Pe_%jCtNV0l4YUs!DshDOtZqXt_{&Q*CdW4GbPQowO^~1zXcvHA1SY z2OiBqm6v&cJB`Id$=oh}pgy+QAYbxPJ$kvI4+Ri0Te+TK3L%=IK9jyD4wAmiq?!J` zcZpI~9&{8Hu94fcP0UNeyed{$QveW`_HRWu8_0`jFl zx6oQv)0X#`XIDF2Id1R5NlvIu*H`0y2jbM?UbNsuSr|P@49NM4*H(0s3H{xo? z7gg(L`@t2~Ey1WTHqS(?$oAl58ep@n&hm0TVWKe$e_QXzXVjsQY296AH_*jx`(kt4 zu;(0wC$KMq_rm!6+AX~E;Haf`f@7BeBs=S{^b)V`fg$CU2Z%h z^|C+n`i#^bd%0NjVvo!Gq)>ldF8A9qM~C$Dn)7qiBzP|D4H9SfSN>|c?@i?@)VDx{ z2Zr{6!wq%i_w(eRD_OqInyY2suGX2iDt{UHYtZfO%J?ez0S?V2=Z~nk#q%(~Cx(4E zLY1S)5mBV*j)o6MBckF!Q+sGr`WgJ|#yG-8lH}Kh^y7yO`XGy!&Q33sC(UYV;m(#I zNttJcNUZKF!=%&u5$A-#ITjqZt1A7%5(i5$GLHKODfoHD^EjLU4cT|1*cn1yr4Rwf zWD3$8RWAvlhKs($Gfc^oaFDDE{TWx{x=la0N#3UDI;$2^K|=r^ZO8y=Io9Zu5N9SY zFy}om$h4Jym>y@wATXyr@SB4%gvMh7goe_q1rVXn^bSvf_(d<3J5tgeBx#5Qq2w2n z*%e-mvIxx+8vd@!;wP<&ElGm{G$Z;ik6b~Mn!WyGIH~4bON2)ht}B82rjll9A1P>PG?=JoI`#rZkGQrrG<-jRoj6flZ4O52sXVgI95pj z7Y-KuOL62PehDZJp*g09Pg;lKzeNTIzA=~@Jzm`^jXg1kP&**ZCVV7>pDmBPXm+ozC0X8UvoK*)YCI_w3d){K~r3R@qe%ee*)fyf}0>(TG3)t)!I< zsxuuh%V~5tQR?dzLUQ)Bw`{lEq$}K5rPH1mh=rNlpG7J!fx1+*{iTU6cg0A8PYEr> zy9KW_+Ng6sL{aV=o3d6n^hy#vB0v0TFfB}!$(^IZ#hwBs6%vSp;D_GRi(j?q1=ZX# z1UdX;yVhvuKjHT;DTS_%9Swz?a^w?)V5A;Iv_`+4-JB9Q(BV!_Nmhq|ug%6uJrKOt z_o3a}HcGp9w~K28RgBfueJAH2vqQw!W)ebf%#g&_ruw9QzJNdlqQZ}8xPZVWRNYm! zlWT+?^j<*V0+4vf?BSARc9rksl0@l+>E;?i?qxXuB6HlYMF??41iX$Kt``uP>^maZTs*XH#(bE1HN^}**Hh|C1|={Ex&Ot8-x z%$4r9eFQ|V@AU@Dseb>!V^nrX`P%qF*FF9LQ*j^GCxb}>kVXm!H2nX8P2>HDz%u58 zPL!ijLpqFj16KKiJHdxH>n_oQmm#Cj32(gQ6fV7vy!!}sh zPw^P|;d9>}CG@2E)IM48cClZdD)clnG%{oe*vT=??U22ly@Pd4-N`9J0fE3oJbo^{ zyr5ICr0WU;MyKA@1K`I(FUerR+v2`+n$T0;kRc@492tbW5Bym3a|{uBiXYl0xt&FW zbwvaBVDpOyt6Bo`!00(-NP0Wl2;&;q$@Pr~#0c&I>@@~cHSgD>`JQ%!bs&QqaC)6X zyur$f2c0P}?%zOx$r3wu3*K`4d%z9={qn%B+4Ne2U9#?V2BVhi4{$&1UYJAR$E4pC z*k;`C9~h^5Bf&he4>}jXk6}Ne(So>la`v4wgr2SrZ_s^DC&mmJd{6mae5MQhqdMF!fXpL?a-#(TQ5{V&LR|BPawovv zCtS|m97ER_ve#uO!||4v}O z1fC&?p_BnV`;e3nRpb%q4#gJOHUJ6ust9M8cR;(j^uQa*965XZ*^$F;8Opzq_A^O? zIwI47M03CH$|>CvUdKKXseed8p2;vo+;KUE4dJdrj`(YYV?l9Bu0^sauE@ld z-DV*lU!CSk9p=Q}TptV~?HK~$7=g?K{X+_jC#x_2kW={hd(wwtJ*F0{t0f&;Bb zmo{9He^^CaRxy{n#zPbV<(WNeySJVhg7c)x}TY$HI$ET9P;n9?%IDnrI&H;1`aUM^8Cj=Vbraf@Jbsvlxw*uI>g+ewXBzELHK~t-ABR|bjmxUQkk*O zbv@->LC<1itONY{slaF%pVfVeK_%d?S@bq{XPID_P=`;2+n25pFnv>pV7T3Qoy4=e zBg2y3X7RhF$v}nD@~NgxqQ+c(MqZ2PbXOKh95(*^b^A;1zV0Z$s8!hic}R@`AvCH}adUw#!(g4TP_$!!MP(e9%AVlG zu{6iNw93BJh8yt5t?aKk{6C4TM~?m-(iSWR73v_A$iu;L_I8#2?+f+=M$cva_)-=8 zH66x07gg5v7`n_%QH}+iK9Oja-kP9jxj#3Xd~oTb;F?UK%FDDUW9-Vy-1Rp8)4EA8 zug@SZf6MT%Q)LVR7!0e1xN6GSgkO}o2KtjmIEyj~yUNfje=Rje|MdQQcyJfnSL?Az zNJ*sCbh>l6m|fM-CYG$4tK&)6XK690)c;87u5kMCPMuh%G+~m+$w29;zOR0|!ojN1 zrZgf=uS=$(Islvwa(pwh^41LYFq&=q^UTnZ-qTpf$}IYID4b~IJlePPTtB%%*NIJp&mK>NX+tGF9 zk3<$YYpja<7$tYXoOH6(1r)Su*2|xNp<%8H)>kPQ)4tFowY|zA;sLHFmTof?os<_g za=Ee~Z6hsf%gGTum{E8WO0wUT=jgsLWQRdUiP}L`@TIQM_1L zGH|Rgx$;tQyc&4n^2K~*Fa^rjEY~dqoz7k^GI-tRw`{8ng?1&feq6Mo|G8#qZ|JYn z04f_4WvC!}Gt`ULoOFMo3bt)uJl`<8Og&#_Si8oUHKZ>ev*u0)sfZM~8)sLda;><`Uh}A5imaNO zBq(brn~$~?Yr1~nVUWF;X%0WoWJ%s!(y*G z994Nr8gA2JN!lZ%Gfg_s$Et6g)?>ZZ9vKAXb!lTv3}4REoB*sWWc8jp$|{05 zPjS|W85vBbBJ#`W;Eb72rztPbUMB_qI?V>|G~dmx9Ik5Cdz|x<)_0tf{a>h+<#UVE zxJ53+=$LK_l57dq#jEB8j|A&R7`%ncj`S0Bay>i*&q-zk0~_Xb98VU0o<@+h-j35gymWWMi>yPyL*yK?@zFiE=Z+|UlwVf zIB!sZGt@I^SimII^BDkiN65E?aZ6IzCvJ30QsJMV1`SiQ0v8d17zp`PMEtVc{1deK zM;QDQjQp}xZb?e~vW)x_lx|5<`@~spNw#iD%!2|AfV1kb4)mF^uI>FD@xiXW!LH5y z9kIc#A0eLq0JdEbo=)MOjYD05A)ZfwGtiLX26(`$FN1NZ5klz<9 zbGx~4ft&a{2>5*o`1x>viIDku$oYZD`8~)$7FZw&ED!}2s0@213IY6t0p7p>MPSc( zA%MFuz&WrS>6ryMqlEy9gmpNN)q@kd@+|1?oQoPkP(+|h{2#!ZwGb- zQ*GMnn7A0mNIW&Qh%jOt6Z9i@FSjT&_z_urLnQW)2R?p2)={xjI07AYWIDef&*o&N z`ixCvyzaRb$NDCdOa7SpHS12k5jGGAzoAz{hYjShBAB^JwOqgVA=QmpzY4k{{FB!0 zbCG(HvrTY2=Qe9t7Rbdtv^~H#!U`hY&7;6`wFmdF=@7e}Yl3!7y`4*ec8!)JI7(qU zK_}69$vc1-jV#uKB=pn}FvK7GookG1iPeLrr@8zPJRPgI);!HLIT?&7Q3xODc z2GBRRN)P?hP2Ep|A>S?1M+%3Rv~M_N!T6wUFbuIHa-FKXsV^=jE~q!;&94zj@}qfd zfrWs5sr{{!t2YxvW~-g-FUOLP6qLq1W^NV;GAz{%gnGfX&w@go(CRGCzO=TD0otPJ zpw2f5aMW-pt6a`_x?_xGlE|@Pv)Ogx7Z9u`Ate?O@Ou4-ARk8aVd4&326E_5@lnmF>X%s7m(E1b<9_dSl!I*z)mNE;MpkL+O1)x0d0Pp`cs+{fs# z?w<8UY|-fNsKJTjhmj^@Y4{11`wE%_pj`(DmDAO4nz@O8`HhLKaPH(pmS06)K~ag6 zk&%t0B6H6IM&V`4CmzlrhvZl(Bx6?8Mq^L_{9(ti#E>cB055zoOi1iOfDkbN0%5-d z4u*LU4wicmLV+z&I5b29T|x>F2Tdy$N-sIuDJ6xWm7P%SA%%shljf#T z3aKc}u^0iMB4FH+P7Y5j7#!!dGp{1%NUW|zN zNu8fjJ&38Q#BCnRq++y>K#y!C2BlZLA%?BaF;k%L83T*;@WWNs7O-6`;JvN6qwk8A zm7T>3Juh567Ov9^SK@~z2+`R47Zfhr3-?QmiX5x_u`q+e1RJrJ^)PZvrHM0(T8_%D zZq&?H-6q{ePlqnb{*T4lTvU45^47u7V!CAXY4{vL7>alVMt=M}-NcBv#C52!7^du< zQsD+?=vFLLBvw;F%~37h5eDM4fgUO%A<#!l?f@8TzF`9I&1n?AP_PV|5rkMz`5BU| zHg5y8n6pW_*dp%M961eQ+{qjLi9>&V*~B^UyUMW0EhBC35jYAV%=rrv3s zAx~v&4xK{f0F3a=(sGG!kt7*71UG{0vH;cS=C3dbs8DheA&~fH(NN^%5W>&JAuz9l zA+Y>nQ&8PB@=CcMfQWQDbTveY7bpBs+;=1xytMEwflU z+T5l=96Hu}Xlz){VhCn6r@HhC{Xtw-lIr0&Ruf^ju`JqqDE$zKP+W?X zEy@J=(S#6an(V_;B&>vo!+5L|2r6Wb=>&0D#Oi7GBV;bSa`HqZPb|vz!4yS2T4&yK zc7>UoY8OF_arIfq@$jysUDKjUqYS=Q5%&c-x<=fhHSbsgPmK6*1@>IL**TG&=e8s$)&=GbO8 zEiTPOuS4<`%V)eKhd)a#NKF66GW>rQQL(8$G3M@Rk-htRkD`2a-H=OwDfe*f&L)ux zI3vrLxvWhhy^kYR8XttZ>zIkHb7H3*J&z*;aIPm6e~OmP$a#$-$!eSMKT3QeC=Urn znfDks1Fy+Xq^Vlsb)0! zK5l&+gRtWA6O;{t0{Mo&xkFwV+CGN8y_``9ILP%?$qZJZ~ML4r#pOm#Xvm_f&eR1Gk4>WAyE^0F4 z7T;0!Ibn!r^g4948m=seL4#FOoWm^jJu%#zJh>)DhR{F>RY9Coc%vLooYj~-3$GIG z8iw5pA3?^xIqp3)wKxN*++q+PLBd=Bie_XEncvn)M(|VU9)6;X0uK7{DMcbiT*i(< z0F@$C4uL0sK{_m<9N@eG0U*7bM3gfK;p+^6T0|N|;()_90B}f=*s!;}D5C6hUVvr>}R7o%yTj? zH~h)t(1jI-3acS557V$?9|Yh}h4w&$ZQ$prIE6yeFqo=WCGGyQ;VLJ zinD2aB{<#?p6L``4serYdo<=HF?vZ@UVK^$2!`*~X1D!pqbOh5!3X#mh+M&mJhUBP z8)eWtcRPy?O%UeqcsI))-|-iS{OulhFNXpbZ2%hID;&JNkytc^EMbDTlx-M0d-foE# zQBtMtm*lg}4a0t&4G!x$KIR~3=xuDREa>Nj1WS?;>>@3y<}WQIEt0cSWWY(ZL5TAF#j%NsVZ=Dv-0 zYZktD(#&c~s5IcgA2oWIUAJlWcd0H`>Nb0VCg1s=^HYrLU{d~7Eq;UmQ-?O1m)G`L z%zk4mAtS7L;Sn$B&({OJQpQH`2W*RHoD!2_pnB!R=pgrt)jJN<@`|OdVuJrH)z1Qx zjX_*3^Q@mm1phUZg6rIx=qSGYink{9taGfvU3N734!GpFrR@dN0|I zT?Gr=>LSCl85c~BO8^L&*=(0Er(*8KJOhU?RjE68Pkfjzv&Qx&I~qv*HWM1JrZyMD zt6$4&U!7Zke>SO#Z%>8lx|DiaWmL?6iE(Cm`#l2pkG1Ts$7tXNH6Xj)*2 z%JdaTaLP-%2V`(v(8(~I;d{2{lQ8`>G4_!E>uNRh6VtliNFXP6S%KtR#%AY_P7>fB zIhh<%L2awi;)w+n96LP@YU6r=_|ey46sD$yP$En06FZ0zNNF+FpWU;`_}1CzLkvU7 zM(Kb_1BI?U?C~gd1+EG1stgT<8uh@;J;%-1j4Bm_6`9vuo}vKs_l#|eJ{igxh&Sk* zz2z2XF|;4&zvb^jNQe2f$5h^KT@bOp4dhvjs-o(^Z@=Q8H3X1Hna~`JYeq}B?PAjw z3ff4YQ1CuFEofB+J^xixKrlUxJHf2jQdU2#`OEyt{pfL@5qOiPS!-Stv9ZQYr#?QD zW4uZFT~t7Tplf=UkAhZXkLZRY@`tXx+rDjveYlfl0&8Zlgc9|%FVSl4cIyvNid?u> zKwTG+;8Aqkent)-<+2uoAGP)(W8xV^Vvv0;X-tO=Yt8B<#9ercI9hat&YM#qz|XdOFNCCe9f6r=Dgll#7v(SWd_zgR2ETFCunold4} zuV0jrTr}Z#44eX5T(6b2OUe$%@Lts=8!F#con<4;*od^LTus z;88fV!;>|wywo=LskDD4ucC+=l)S~-F9j)K4P&C3u=2#-XM|^|s!>T@>|0~w{a1Q= zf>$Hl7M`VP#m`9ETV6{!R13#ezW|uxb~LF>byU!M9Gb77#VQQGe?qv7peO%GI6QnG zK0U*$DX!rQR!J2PWrY7$Q>)Pw<{WHLf{|;V8C;p;=);Wh;8i0ZSw&eWD*g~t`p6wO zvw&AwWm>M2&3Sl%O@LcnD_l|QFmxGHrDGScz^$yhyuicCO!2Uxv3xZ(ZKc?y?#deO|ik&B<1{o1`kJ+eIU4$ULE zGC_#b^Ip*y^r=x{mn|0Ng_PyLAE~=Dz+Up?lVZwmF^w#0Re%BLyRlLzSv@_c!AfftW!hpfzKa8mHs{R zd&-dPe9n+;Rt_v#AUzst!IjXuVMlnWqkhbL=GDQ&{qW=99L_c#F|&tgak@0pEGoQT z>mWuLX$`TVS9V8NG=mW|O9MtVz6UDy35yJI76r8z0AXRQ>z7|%pr24$>o#Vo+b#2a zdIvWO$;o|TZ$-^Hee{vti5u=o1Nye&-ju|1?{WL_e#U6=xgnyE0nAjmPg-pWzZMN< zElvPTJu1ZrB+`0y0&%ju}xPW&U z64794WXg~Gq|kH-IiOis>Xmx6tOR#8z^b}O*b(S2$^}xJUcQH?$3%!+R)R! z>adyF4!#wzEH5rjd0nm^bjQgjoG!#to#@ac@-0;-yQN~7r0XN`&HNmD!_LW>Cl`kI zpQ4aXjY)1efMcc{;j*wA!2pC1BZOH^qVSkelQIKYPMuL@*)h?UVzYEX)A22>gW!q_ znaXmsAPYR(x94_~{1Z&qmiU&sLBpFv=AV9!Y`~?9n?C*-YS1Cr`Z3enJyWi?uZw@C zvSWKppY#Fu?2!3a?_3wZA{FS;D4%9|du>c#!@tMVJyW{(1gxe69d`0hkoVqn@lWu9 zPQmd%URQ5$$PXR#4i5IAfxe9L%g{hkZth8rpg1s!_z4Y<2|VuCo8}*(f==T-wVpD2 z_+?3YX$}sFJ@0YP4~gCH+auyVm7dnX*gLe11&;i|x*Fr1>4kTQ14NU^95l z6Feb8S7UJJ+Kxu>Fh?wlV*-`?&R{Hk_ye|_*{@HI_iTK?jf(f2*uMeGBm2(CcxS;w zh6JoY=NBKap8IJHJkfc-e_;CY?Xq}J<|7sqyfe8M+(|IaKFiXWK-vQ@SWbG-0b{1W z(D5Ph7C zC7!E0_^7giVD}G+tH5i(?nyL$Od;`})I)|OU{h#UIIzkBL<^3jV)W7sjtNBh8-km6 z4(lOUf$EnxsNh&_SO*-Kg9Sth<`BQE#6u6 ziF10qr_<35n3{jg5F8m+kLyrj1#--6(?Kl9ei=K5!k8wc>WR|b1hmJiM;rP;lGX5a zXzQiqNGQk0+1-o}U(&hUM$@&s^pPz8=p0-V;U-wS71Ogk(E1Uu_d5Palv&p~DOrZd zT?@_=wJ{T{PO~)=-2Bn?;-g&VGe-vBMM|sew9r#JMZlwfh!EZo5gjb=suPJHB>MX% z3Lb9UgOZdK-km+aooH08^x1XC@?;id1g=wI>)+!DBA$UXTvRPBI149y2s(C>;tv|` zfhsuJH9RVZhG%{H#Z(P4h|Zs#Vqkm^br*)CmNAGTC5Q_K5G=8g6n*Wx4jt672)lrv zhT>1IQe>-E4~L@sydvV_x?}7{7Pr4Q{JCT)yrnEFC3{M|z}L^1nbJ@C2Y!W&)Kp(g z9?u?O>b7(KZOp%;d|HS6pUquFdC!-zzgeQME?O3v`!56V1+r5viIZ#cu>Klvrn|0K z${)=(7SqU!9n&axx$N4gbJUk01CRSt0ESdu9nRbkQ(CK`BZ(}3L(sJ4?fE0f$-Y)r zsDZ1ev`AHiRT2%gNI=v*PK~D2?-GCgZKo5pBXZ&Zm)OPM#g>?6qyjb9#oZ_YyCS^u z?=v6t;iNnXH;L?&6xV2!Kt@GX5o*b)QP}XbdOP>qVv?haD?hc-O);p%G`l4;B)ixw z>0y85CtP-LfX2YBZq;Ach8$J03}pX3qosLU;IMSapdGkWtF(->lmf~K9S`p5re(%2 zSJ@S&go>|_x)&DaEH%-3e+HTYW3E!X#8NNvOhvpUBT#3rI|CanO`?VZLycs^6T*@x zu~E2&KHD7kG#$I9C?6yzG{UmZK=r6xwu?DL*OVmph0ZjKV@feCw-=qOYXK;?I+r+pYH? zO1|7VAaSWagOS!WIE}~z2PXMT z-G3|V)6nsW0hp^YOt}=Rzo4}FmZZLG?N;m5N?|8=r3E`127O-YMOl~-#z$qdJxMB$ z9>a)E^g0I4KA3|_{a49nJ88cykz?ByyB*aZOB{exV1DS9>7{YZRDpMJ`YUGodd-QD zaDP8UIn9LUHN@e{-+-e@i$k%CHLSHouMwa%cY1VqQ6Zyz{>R~BP+M~Wy=sV0HxB#t zGmEoGd9l>EMERoBdXYv(Nwahmjz+k+`Cgn!s3sC!qVjL$_O>>SMuV^qhZ6`c@2Xr% zWE7u}!HCo&b=hp<&!jkjEHuenC&>J!NivNj!_S6#T;8YJLVw6B99sSxU)XV~|2f;~ z^-YYNM{zet3l7feMj3r<2_A<)pvyfvl@&O<^F9Eg6gpxW%?{d%0bG-WI{_unV&U0G ziIF%*A1O zdid37SSm z!Mx+6@hFCucrUSUtzonC|CY;)HZ;dGnO}WcEj53~w(BKuidY9E$6{_DWysOton6wJ zIW5%~w}v}XYf{&GU%Bgkk1LUv?8~Vh;aQ;|sy$_pA@T9oM+mZbk9NM%t@~DKf$q)u zO-oE$V&Sr8gzG`!dP!U}mEHmas(x^gktIb5TYC@J`{hb7{<4M-!}97dyXpZkqD>-( zD${2XewFo7xw=|&T1J_W+cCeUl#$Cu0Z|E$Rb8(^n5QkCv+e5CkJiV2J*%dQTR|k! zu0P%Fg5}sHINPFy4^^OQdOBZcZLScc0siE&o3zGXhvRfVmu3<=>qGzU-Sa~P-wgX$ zT;!|*LIMHt&ug{;p4ZxHcVV>NdQp0j*d;$v1fNmXie%Bdb<2wQO3e`*)br4hc!30h z$oFMU@?Mgap1i7*aL4SR&2riKy5PBq)_zt@*rf*7gq6(5W+HD%c#7E#eaY%nA9c2c zL0YqR)P_(;@;sNvnlC9-dpz%|;5RK`weiZHB&r-62hW2=xKXYg-15{yO?b5=>rE-> zIF6P&>Fc8?uvv$c^)jHI5)a^mz zOuQE>6j`jMgK}*e1Knhop(y>&F|^(0Z8tn~e5eifctmV@UJSbZWk!iof+`)%EF9WZ z_($1#%|lhHy2a#~nc@>QhSxUu2uImoo8_7@u-%Jn*DL0^S2>BU3LB}v_4r+7FdD?4 zRzlUnFe^;;>$fv{GUF1WxEG_S5zrKJ&oQR>aK=vJSFm$X=AIr%M~pb_x7dHEPOq!$ zME`fZj9|5)lZhJQe_780yGWL~v1OT@m67u2{NZ_P6;D|~>U$>7xJVT@oU*HHZBNJ5 z!RtdI=?^JsVrwbkLNXsnODt?B!V^ITW8Kg9bMj=jPPEk5-Hg4k@OVm?ccQUeia+zC4<2z@*l}4& z5IiO-)mbl%<$eKE5efALCpT*2M5Uu8L~wpmscJ(9_-o>%%{!vR{ETb1CW2~k1@sst z<(N*5#)1v$W!$)srtL@`ZN?smEJjE1BkXvOq(?z@Y(vFC zV|XK*4|!EVa|#dcK0X0@D*F8=4d?px^b+%F^3rGptB>m*WrccjOo}Vtb`G;6nyqiO zk!l%=EB7CHd*oIczr~qnk6b~Ep7MF-I{x9fV`EbPZdrJOBXmriB>UUNrLU?=XWkv@ zSH~$vRC2afv-I7ucgeK35O1CV{KmN+4;I!?mxhLv3p)`Ct8pr6q~P)G_RwR&H6~|T z>hq+ujM$~El$-oot~JvPwq4WqE?FV(tfO~q*N3b-CQe4Yyor7D=}F`z-WWabTauLV z%(m(PXy$h~dvbksKCU?eQIPs2`9(^2N-Tll8QW^_GnsM*HS7yg|1)t&Z=kgaul-hc z)oBSIf@L@+>sv^q-PHpor?=Zh1sZ2RWzdp^e&L?)BC_$3~031ud|7`-$L@93ab z*qz_UL{IJJy%o*PCC%W+$UbT>C=wyA+STxLX+fF1WDs4-KnG0$>r7QSJ5qEH~?Z&GGdkE;sA#! z&lu{!{seOe%=d_NsFvsaz=da(F=`YsOVD4cZFfcK2Fc9+h9N{KW?9{$28gziY313N z@k2m@Cgka5T*624h_YURi^_q>x-iL=Z8Sf%Rv|UQk|IgMuT8Xd$Ci#Nj}w1ya4s*W zR%r%1;TSbi^msTRF3)MTD*vyZN4_eP`q16Hmd^PYD4G}jx_wW4@`pLcMw7?Vk>xiJ z1ziJV0{!8p9QT9xN)wGA^j70+yUpX)TLRohe}7d}oQt^aoO@A`FR%!6tHSAi(+ec^v{9=XJ3P$|TIn;v)1$pO0kAH!Atdc=~C)ORRaaar02$bybp&^>`jL*a#Hsw~gMh z=?Lf^dBkxd2!{A~%HotK7kSLFC-Ac|tZkc|!Mc|CZ-el&1h>5j3d9L}hd-0G(~5e) zAmN{|k+!K&H1A~|5q!VCfXCg|&+Z;IiRC9>!TJ7w+vvG!*hlj-Ei#ww+Pd~%&7oYQ z4E2?xL=UcU&%!C*sW&X4>CbyU2wDDDfZS2KARR_q+fiP;?RU?5MHk zN$NWI#QW?VrdT40X-*U5l?KcXuPT-&YSkgkcVyUpZa-Aa5E0sgv2{H{AxtUIIAs^@ zEyRl)B;4ok*1jlN>Fd1DsO8b4J|oHHpumM45oGE}TpJWd4TesRd$vhUh+F@ohLabe z`~!a)IYiPIscapU>W}Yusy8UiR6_B*8q6>H^t~@i-t%G|ZjeJhHOS&G5E5R(Ornvy z9rj!o55Kj{r;NYy-jE)LBK;qVv;Pa7w+|}oQ+tAOm-@o#NG95EiEYS-A=ji^q3%w} zOWohPg2F?<8br&prY$7tUTRzew zJ^V;%`fnL9K_cX#vljAvnYe|XBo)Gk`Ee)7}Jy9omB z_*WveUP1qgMPKv(ZWPLES~MC&+A`S^E&Y<;Oa1h!Bvcx6Z-`2Hc7J*Vja(a?Jv585 zX}g}nB7I@Q9{a^Ki7$XZbT;@09)k})x9-5=UjFD{5xc`Z163!?n@zKIHv&B`f} z|91Yh-8uBy98l%fNzS%F$ToJZxJj9Ck@NUP_9~1t9F3vGYV9JEcwJ&*ig8o-F0&w+ zrIEn&y}olzt+l5;8;Xq(v*AywzHRW7>S#1?C0!1?P;BQYu6*oY-AF?<_lY9(IdjWa zb+NTEGoqa>f||u;d6rngV?UcUYs9F}L>F;|4MN9x=GOh!!wZ{owgk(J}=uEL4I@ocDv0m9zjpQ`Cg zlmn#SeRtX82&ThLshh`}tpHq9r|9!N7QdsH?DFtu=)Pvki9q@8A9_+|T){URv9dPc z{#-J+z1v8xk%$oZxjLt}uSla891*<>k_!O>3i2pd5CpnFsNa)x!WmFP%`^Zg%#VX; z#X-ICsBNYA4(hiWA1H0`LgmNFdWYHE6>*`_eY-;6wZkx;L-;Gnk~YGP0{R)v=h1@rGEaE zquVVj?j%U_$m@jhd!5KR3JErw1?9@L%n^r$I!!nmi*?$o3IY*GsdfNjm*ORX#i%Y< z%pLg$xfoOqBgiZdn0C`2h7{GI2+1E?6@WU9f-jfNFoEF=n>99_4ntH$y1znUMH+}D z0s@*XX;vC&QmGIQMEIF<&fzp}d5;sWpURhMFW$NWtL6C;XM4zR_bOC>~9g{dTcg)}O%rqI~xiZ_@h2mZNcGmVowUBkF88M_80g8fG;{* zQLmXZv6e5I4^R+x;MXizQc(Q73!BN-3H6u4jZN0#A1d6~9B#EGSg2So56qGJmnk5K zvc@A6ynm{%zD~EtTK}f~8(prK_I@ABIPGVLb8NQjiaJ*ohgOQN=RA-CtOCrANg&po z8JA9m=kIplMk944u_to_KRaxC!j;K-p|>M!p~rgU*h6#p%hR2(LM>OY_y?Z)^hdPe z#c$o213-3Pf&WD*2}X#!#$RqqwfEuW$0nrHhlV$vsJxdfI|odO>tnf~ zAugf;s-zDGXIiKuO9VoKw&{XC*fL?E5_4ATf4+Ru+wOYPcgzqi>;0%TX5lebD+K5$ zq!(2C!?GLNG{(s5_b5;iv%yji`-5OhloNC$F~cpKB0?XZ(MWpAiK{Q8(p%(La%w2N zmvqXmM;BLDExJyDg!Qt6^qJ5KRt(!l17s6*jX$!D!t~YTZQ(8fvyCHX?)#*YIEoM( zb~)KNxfrAxh?o%GAf`UIBxx>Q-jtDiF?4a`DtiJXa&d}qv{uZgwh4(;0)t$W@49if zy38Mi-k5e@q+49x66jZPbi@6&Q&1gdr&m%>?N5BegsmN1c$0lVBf=-NNUHb*l2^fa zSQTM%h&S3@PAHVy#lknK)ayWcyIx-2E@R>Blzznplw6`S$u9lhpyY{LxA>MxOHmBp z^+M26TXUfA=LNVkb`xWO{dg!mC!E8MlUe=KE0habF_tPNkq8Kb2AmqU_)<*ecRhBj zVG*+k3XDl<0#k6usCOr6Wm3T;m1cQ0iBrArT`sJQc#Sg9IVzC@mSKSO4=WywSRV)q z%podS)s;brO;tKFA^gi~*Bjp$m!d&92#62_DThiF8D1J};uS#?e8TYxJ$g$<6>-+h z#TOk5Y6)$lRHeC*#)_5;3)u7_PugSavv#;6*BQ~=6?qBe1j7jsx!CUMaSiychV|C4 zrA&e?8VE_;+zPi?}_$^8nSa*$1Kh_Z*wlt-;;g#CY_V4LFX!=%QH6*y(gAJ6QOpA}7R9 z8rX=0UP6>jRUDcx8R6}Y2W^BijPR^eHP8*PA&w`G4yk>Xl7-xAuLvKXUD|4Kfz+jv zi!tIC7);5Xq`c>WcX;c?1(1y49m`e9Zfj)q_!Yp6T4 z)96!z;1&k)GI_P2XL@;Qw){3C*IFV+zi@@#^sChV(%-oiu!61dav^l|-5@`a!1w~k zaHXEi^4P5WWh<`OUhzysd8;J;a2sSD9;gd#xDy;lpAKJridqxkmr9&>P0L(V)feVf zcSiDfm^2a%hdfk7d>b9AeZ4JXoHZd594)0lzAWn2;OK|V3l%UjjH-uavqZGmkmB1##1>z5KNAhCYyc3ftB#xE<3!Ykc_!Sa_T%$8~ZX!k(?RQPEJ|a>H`dwS1@Kxk>YcDr=K&VyyT$R(&oP->Xyi^^i;Ls1!^4YhEyhqHE zpCNkTA}X^jUigU0vfT+UqW5G2+y)J( z$P&bnD6nhis0BuX);{$M9j#~se=|TLJiBJu62s1U43QJkZwenwdr@z^;C}ireq%Kxhs* zNL!Xb)lW^}w+2_WLM!Tko}c?*n9Sajw4?DR^R`6g3GabAMCvASpMCyW<58B=Ez+gY z6hGfh6Q&s{^iE$VWEFQPEt0;(_tCINzFf7$Bn#wW)W}i)5s~X^i}cMW3Z}?ZfC!{- zla0r^gtGff0><{u=mKR({vxgk=?^j>CH<0QQF&e$`Y3!)Npcf{?Z85}0kHFdwg5|# z>VWyx)RiFHpR0yfr2+xIwvEoAypn8ThXtuq9JL=hl&jZ8a>KH*=b>66;YA`TYo79T z?t>=bec$wdGNu6W0`|E!tu^xwwxqeb>OaBXrPD-rxui~dE+l%CR7R=Xeuw*;=mG89 zgCJt8F>>fxnMMOPej#`gFd*mmYlBzowcn<|vB6sUp_~v`ufZ)4e;^XGT{xmU*GwTc z62%M1t;Q!uGqvCWLSNeuAfy5ZeX!~i0icIAvUrhE--~$-sc)W6>!mIti>f7s15~%0 z*N24eX;($GoQ%o_NTfgDb`IKoyCuoGtMGyqIVA;BIX3(oLJ5vHCH%ZY}AYKWkYps0$uvsro#rs3% zMXQ|$41eIL=cDe;pwWJXXy89iz#$I)VA5HIb{| zFh?|EO$Y)Yr5vi25&$I(%H4&4+|jj`$4wRv9+jJewxrtfie78GqXG0Pq2Xob(?TR@ z9ycU*p7eVSpB)w;p0p8nnsWqnNDci9B~;_y@Od+mnn80~ ziY6*i(L3T|ZR9#X-zTw1hCh@M9`bGOdxIw6Q5J%81#{E%>PT^KIia&=;C z+;osS(qw64iyAT*z3Aj>m%z=2!J+s$okW9loAIcR!04G^_F4DxprHDOD+Tf(^*-PA zXX7-7-7%E2tx~^qoR#ZxNYyH>w4zwQY=iA=#sdDO$)h7Ue**c?mE|F&6`!n}5Kn61 z^Xxy-10;Ti+Knl~SD!{Iy)OFz{e-o|xVr8~eE{=LgYn(#NZw4l^l|ikdEf{&ln{u} z4Z;#3q|b`BOGfDip#}^xnAQ!-*IhtmECp62swj)B94L1cIMfz8TV6r#&REYWkStAje(OrGk@ zy1&reI^Sd8&@?%|$s>op8K{H)Uyy@C7N%9Ez3%y6pdhoB+_;EKyQ=+q-L^(az0kGx zBO|(VjZ(}bRSqC6uhn$Q%V9aBLU<7L+ti>o66+=&=fg!&!PncRxUo`bXqFJo4 zEaub21O!G6AG5Pb#%MrpST>PI_p8QlJe$qdv0oE&A;f;6$maCGW@cU_r2|D$@Lu1@ z2}}{%Gtv;ID+9THel}c1AmTd%U%iIcki;zFoF3aumgj~6jbkv!rnMSDsO?_$uIim- z8~I;{hVN>vJ<4b9g~e z;+HmJ1FKhIjKKx2|07O~2zRSjp|NvZtpFm+JR#}iic5)?J8byHD5a&3)U({YO z#99h$G>(;h&qp=UU73YeOmRTtxVTvc^jn{$yV+INw({`R0 zFMBO?<^v1h1FB(BBGILQ2xthQp!fr08T+VaPs;lJh4#L9sAb=&vnr-#Ty@brSw_qN z$)DsuJ%dxr$LtDQjXHhj)U1+`@j)#7CcOm5AwyjTc;MbUFjjG}XAal>t#)0r4)j%g z!n2x;^_T8jH{4!kIYIpcE#f}-?rNKJ-R(b|{+iN{fZ!&`B7762J``nj3T^sr z?A@y1Ja40=C3`r#m zK(1i+Q1jjAC15u#n)l|6Gr|j4F6tWrltDoo1t{I(c5I%?z-+>C^jTh;n7nPGY&_m* z<_Sawtc~Y$zR;1CdVNS~^U))0{Rx^;b4U(HrQ4JOlB~9-M?a^hLOFW^Vw6iuZ=*`P z@vm_?i)4}kj$inrvyMRQ>wkwZDb?OET`|8}MadJtXQ7G6Ju_V&&{x*_UC74%Qo_!-It_Gw(I9Wubjx-p@EzR$Mz;;j{) z@P|U3=Lp(Em4|r11v11iPV*ziY+4Y3UMU$(QH`AQqXndJ(*1yLG0)GbMs0W-#b*ox zT<;Xd`RGezf`PRX+!wZVSFSOOzi12C^sJKp$D{ERbD&|tM216?1UK7>d@Pzxu`0P4 z2%fSU&d`1i69u<8SJ|LV7M-i27M~L)j4W~kI^^hk7UdzUx)4nA6}KbRUoQDEyC z*+|1518t~DKs|CAM~OOHENkA*`KJ0 z(nfb@=QKi|xlav%uXL<)uR6DU^cW$6kJkG)4f_kryi&d(6r#!O$6HG)4nk;^W*2a7 zjD)so<4tLw*b9oQo>5AtJ>Ug>JVgJR@QVc~Hhgj_!lcG%ykyrB_W1+#pl$-sHSLql%FVRYSEsq|u@kkWFHsgb;^&wld@$;2RD)_FXqK-5ANQwZ}&TBa3_~C+hE3+3*rE7=#5?d_@{w|!b;ha zuhRbe02JaZWAas67{pPZ@>Vs{UYVs|d@q~8=MO({jO{>3@8T+Ak6}3a(C#)U)NisU z%nZ?v9!m+?6tB(Zw=Z06hQhuk&#SC*1t={I7791B!+j|;QB_VD42#`NY?lcN8f**a z?Q!6%S#d@lB-F}EpyF{#SQh=^xp8#-(G$%q2>_XqF265oL7h7hfu~z~uzhPNTQ^_* z*0%M<6i=23{D*xeQ$%ze!Y8M(Gd7!@(ZsM;&^m@Umsb^>krT+t*65Hv%?ZQG-l|zi zt6k!a5VPK*M^MFXvv&(_x&Z#3IC3Y1!|EVC zBVh3m2n?Q(cm%TWgU5-&<(89t;gC_{K0vMWP|>;fo0mbj&OV;*1_|2ppwY`UC0jiE7fC_I!i;EG_bv037 z)rQ<$&TwYYUF%QB0YpljzIaavEO$Q!r)b^Ej*)}z|BzP0*=-dj&T4@Y2z^sZO>#cJ_+ru(+Ee%3dM1|TZOs# zd(H-|(vryY-~D5VZod~VHc^K$f2KZMelehqwYM}MkAc;GQ{P~;?v!}th{l+BtJnQ= z9Gf?r9=A(DTOUrQ|@k$_gE@Uh4R~ zh-PWE$|(zv_q7O_El*a=A-?BE$pTgOd$bu#v-z9v0{z|7!+Y(D#QIe|pXlV8d?glT zZSGqH05}?MOX_0suGk;|><-&yTFqjGuMcfS=f%wOwg|bNP>*B&3I3>$Po)Gz_HN&F z;E>%MONO0wd`$=W1arPr=Z`qI{6Og(Y0Cpn9bQr4wwg5+=NAvpB+C3dM%=~!ZF`!` zon^>dy@wSXXDW7?54CB8b>up<$ezA_lF=97dkp)8c-u^m;pjf;%6E1mR>^z#+eth>_>ch!Wy{_ zEizA@_t7Z5L}>5bPX_L?!&!&8bB6}>kXm6*HOu}5KNBAOb4S_Aa!B5FG;-*PgFC@0 zV&|f;;VVj%)xR&IOQkCq4vWJ<(nw>-eI11wLU_|u+4XOR>yWXffyc`T&QhfSM>rE| zcKyWv{z~d!|&O)Jpqr3@v zc78YGB?+$h1L_AW$hbGbvQNLRfDst!?vg?Yp`7WI?D{vub;z*Qz+ojscd4L)Bb*66 zIlp(~Who94rynGYnsaFCv+M)+Jb=`i5sWUxPDx&(sMmD6PcBwe>)E#fNEPIWC#ca3{DcPe?Eu%SYzU;(`FtC<7~U0D&bY^#Wy*$w(ie zfqCHU{$Pndk&G*}I;S?|239>(u~)(QoJUri0{oeT=pswL0PB<$mjYCTTf+KUwr8`8v!m8ue#XWY4uj91v%J zlZxDUUcvN(8CI5^_DXD0@nVZz9|=XxzzawmiNXg=7hUOV9BkaETCw0E<098mG6gFc zl_D$tmA##I`@2mUzGIf*`34!DYs&aM!Ez)3n=){H_4CZl=SXc_a#`hUHJv&YP_buGe~$Oh^L_^bt2n6LxhzHF8L4&?Ca?(s7C*Lk{wi}K$|Q>u@~=omM7~_a&Wrq z$Z>Pz<$`vc{7q-%-v|jjPsMDLu&Zc1pyHQ`*mDS|Em(%f({f=8qX632C<(-y!ua4X zwac7wi<6^zyOBzt85;A7|Lrv=B*ibtHu1@Hc9gWhIbWhTEC+xjt|MPl#m-h8jTk2b@>|=YPYfGHx_H}S?OMh{d;^dxvbBXBazVqsq zes-1m?w);kiRkja^YoT}dzJe5o_&3Z=={F({+137u+pF4Q`}%;AK@2W;c}i~rQhLG zA7Wx(;uoFba^7O4ALCQwH74r!`16BY>Wi%GlYF9^Oq@sg^{ZU!v#jj9e4@iloR|6a z(_HG?tnA}_qU%hY=lS*fT7S>MO16Gku~vO`M1N^-EpqQ?2Y< zeWGJcoY(sGb6x6tt?Yw+qKi$OC;RoAUFxH)?5lmEvrU|L`}MdUR{(|w}bO`OO3 z_3K^g^R4W1zmM7rIjmT9F&>$~X5dSVX$g>PQ%eB!_gr{S)=H9Z#sue*3Dwe4<4687 zK8OR;U_5YF!9Exd%l~V^=9!&%xoSZqLNFfor=I~7_ev{-l+OT=PfAVd;Jg0E{|>8U zazmD0XMAU*)pnKxD&tU;ivbLym8MFZSdDtHY+t34WA|bzGHhR@kek@+{}jCyR(v20 z!C?UCrE?W56gy+Gu^R~eraojUW$s=CNc5o~lc5>r;R_ z0qAc}mG}=lu-Oo7hvTse#Xma)aB?zLt+Qv5g1bX4UJ~OP_J90{J_Z?vsM&=lAMNSCU;U!MtLnFN_5lrduNG1efJL%EtVuHq;Nag+#aEAj2Cwt9yFztg+c@VkVHfx`ShwAw{!#sI`HSqmx1T~Xkx8Buo9Z32fP8r7e~9};s|nC^QTS6=zjo%ath~~)7W2KMvVssyu|=!c>34kfCjgJzdpKwXit! zgG!G;;f$9vr5&iQsW^4|b{}y42V~P7996ct$`<4&CbauPwI9(Ct$uP z1qL_x2?HI}0>&Iwam_n?gX@O{fj@a(7(V&pajRXgW{8cYfUrZnIFX)g zA$t*}Okf=jMd?hTWiS3h?K|pTsC_}*D>X0Fc~9L7HLs6)=ZQYT4aJy+ry&uL6E>Zj z@CzA}mj#+`FcykRMBZ^W>A7O6KX1&+R8u~M%^LY6`nYDj9+m0?2lNCCLn*32LXR>2 zY|w0BUfdP3&f6WQ;7m&i(8RWd<#)~RDd6Ue5FCO8U}~;o zXETHa6G@Eb0OJb`(iis&*}`0V2;X3={}8^xP-(0zm% zOOEbE&UZ*f^Aj?x@|rSRWd=?3GdAi8Iu*2N3klvaf@2>V0)h=H^!Yd=*9)f9NdWpS zhd4$bmuF3^uHb)HY)n8&D>g*(w}`9ZB5o-l8*>J(RaX#f$-ifu^ z#OAhi&e{(ZbX3DAb-2$Ume=Tl8%@Fo8b`T<@HtdjK^NTEG<=|86nD7KLzPwZ!A)aw zvH$zRQSI8TC)s{m8t0ak@e4`9HZTe|MEsQ|e*|LrIdBEg6HO@yoy;b{d21|N`-#k2 zPde+YxmzXrmhj3RplV~`oKm{pkbz_6FM0su?2lN#w+vp=y>0{BH=P z?pWlT;Yx3`B-T6>c56|O;ujo!KX5wq2I`p*ON%W6R;P@4p9DEzV&7Rz;U!u?*NkY2 zm23$yPfp5{6V^QC#dNN^-szH>kiHjXs=LX8{vL*rAXXp$T&L}gekI9bCIsan`G_Kb zCI!*^T3Yp%)|Tg5V^UB~0fZ&O2}S6Zh$kpPStKx_3}J!LbR{TDgj33pEhC;%fUrzt zLK(s$qG@`SMMTAmiHZ^t6Bi>QDu!a8BE?0Bh>D1bi5DRzCMsg0FQd#QfSpu9e}8>^ zegF9O_5Jbr{i{9$e^t@$EijoI9xG&_ph7{9hK7QUf{H#GDhdi3Dhd>|XlN*?QP5CO zQK6$pLx-pqozU57u&l6;-3a};CCYTI;Jzx}nB; z{J1E*u=s#5356gl;klJ{*|?|*%7`l3sqTMVG%uCL&IwKQhQ)lVUqbH7645hrcG7ef zr&u#mI6Yj18wsqPHX5N_-&^xru^&Kq(;uQeS$Q3*idUJ|O1H8CI+o)j2M_h4r%s5# zT%|uoW#kl%R+L@>1Tg`h;T-*}Fa!u4-qP!_sam&PqJJ(a`{z#+6aL%q`*U8;<&6Zb z5ba<4Rv`4e9Z;7dmPfO8oRQEtg-n?vy!qU`(j7$sKyW5N?g#MG&mcje>i1;Hj2f=| zm%EB3$cby$U7)=ijB>r@?TWjUrv87pYZvGMxG#cCs)RMx`BR3ezi#T+CfJ`RZmLE{ zKp^dmWa)nMit<`aZftX_)`e;~2D5u_Fwye+J3*~q+bLWjGikov1V}5fB7uswaOZ|) zH}b4Z*M3BAfQNSDPOZqoQxd@o%%Iy6d*9ZN-14Ms=@y7^c^-v9Mk1M=z6;x*YO_Cd zQXDJng8)#HUYXqSQFCAnlXi@=bFXPe%DCVOFoO$1sZjVGIRkDk7+{&@WmHAs6JS9N ztni?W3h_H&g%gF<%K$4|GjYZY?&PEy^=DXbH){_L?gdiutyiGH49Pam)C(KJg=7xs zST&q_ZjIsS6?f&jH#aB!2aUP$9a~6uh5|X@>QJMkCCpi77^xzEz&@;31D%M57W0nD z(SPGoxa0$k<}X#t-;|4X-qPIFnX?N}=W}Do2B;mMe-e0W7{F_vGz@Rj%x|JzAv0>ErlW4W%d0|7oV=gaRtQ82j&n!`SG+D#Vd!U>p7r%RnTMr3P{4SvaW z5&iq;rR0L}%YcDzC(-O-`c9yrL*Q#B1E4gZY4zL6DTToMg%B@S>V z9N?7%B?Gr;V~iIp_H0oKmD+PjlWDPSp?|Qi^!07xadCNW*P= zR)T5O*V@1zego+r0CCMVpcRwH3PKiAa-oWa{e*qFJ@rYyT2YI@I?&%(cu4NFeOt8Y{ z>)3fkSV$@bwKtNV=xW^(l%4TQY&H^PXrqJIjYSS2pQd=*5lRaGRfV~H0nfHcjr@N& zp0Zh@tt2kVicFqcKpa7>Z2eSiJIw0s2kw{elv(qmD%Oj$R14jMW{?AaiUE^=0FCM6 zjb$~WqqB+WKN7~}(mB7*Qxv24O+~;H$!$$;dgNQ9M-L>4w_S*_q4tt*_9D^nMGsav zs$Vep3orvlZ(y8P>rEmoKNp6{ViX5d+5%*5(fciif(rwTiw4@v^x~I6T|p1WK%wWP zk7){!wNPR~1T=($3#1Fe{kxWxztNc?#k!Qf+&yt061eYaE%6?q(+ zh#`vbWwXq@6HVmgR2#$%3S3@!&wg?Ye8c?tZhFv4wRbFi1@e;woXQ5%Ev?@q* zhjy}T{_vE`Y(7<%c``6y6d^OD398k33KeV#K0|n8@*L<8Z!3=i8~cQ6P&#Ag%tb4> z0lE@`h#zR6mj1i{XR(i8x#VElV3EA`n%@+7WShjYCh==u+mTY*adL(hL+rh@J;Lt(xojC~-=U+;nxVh5U@kmP6 zOrCj23t}<{8h%v8bA0Lp`t!sZWvsgCIRLFAY5?izPR4X_A5l0ewGfK+q4K_a=QA7I5ly5QM4zh4}qc zUkOftX}+8VzMyYz!9(?LlP;0$DQRHo730Ep^tE$%sHH-@dPJr72F3E_KgY`@4^i8w zf|QQB3xRm@g$o(6>I2)Q7=8(AW+bb8d&#_$j-tF}R<2Qs@IWSowRotz2d%8D>2OJD z7+Z+THVEW)n^C?;)R7GzH()y=PJTq#-+Lmx<;t?WRWzXwS#%J!)zBE$#!plz8QwF7 zN-0qxG;*I-OGHb4;7IeR8?uz*P4CVIvmk^ELM*%I{Z4P*pb`K?C(ob`WZUXcdoAaxMDJIs8y>ddu71f_#aVhKat(4~O}W^-p( z=kVVKwv0EFOW{6_W-XUGyuGHmTz#8_t&bBK*D~G0|ihY-w2{zyep1~KF<-RwA zOc5~8-)qjo>vdFkBo559m1btW%M*-m=tBBFU-7=>Tq|V@XVigNaGegyyLc*yPpX10 z1V%w7Fd>hAjN?-lOIp=d>20hbT^i((AW@s;^LPO$({Fo5Zf$*nzMQCHPe>=gfke^> zRRDUuUCXOUDy< zBK#2hECS#DWaijoCGI*Ug3eFzG`+xv4P6aC|qwR7Y+&8N|OI2DTJWUcczQz3OA*3^S~8iUo8%If!|`h zWnI8MZ8`L87==P;yKoulmX`5bR4Vjr8Y^g6?@MC6MPxpuQfTjU6*B4&xTHkXtA5*L zCWE9Wd9#^TAXj19PF!SZgE`?6g|2vlNr>{C?LJ5#IV}k$&IuY$-2R*z(MjrC4^nM7 z$kYK-L0!N$*0TsO3DW{;He2fVE@ErakZBnkYy2|T_s+D4a3g`o@ zd;F{6#ow(h!wk&kvHI{VP*+G+@3dhF73?~pLW%bDl=7|g6+Slc5d)U{3VFi8Un9?B zo$5ifBzW@`{k#8}d5mxlu1~hqk+c%J+^ab+wrjoSdo{KC!-^(sd2J%WuvM1SdNbSO zCaF!1a^GsG`euy+o7C|S4h8OEeCUHiX1pi2-~5P*d}kDYFv_tj1G3-M0yYqiz+462 z5kWK7dqmE-fsi7SAjtuPhF4L3Pd(2GSDa%O)Egy2F*QxPh= zvT+#Uf_omaOnSIN$mkHugS8WWE3zhVpCa~5B`_4AIV@IBZ-T@%=e?5ef0xY7-t4_! zHd;@bo{oqfY;NZPY7@N!4fczXcqFmeMR8v1*{tQsSC`UVS98O?X~4LWH5+9(jXA*ef?mhrMc{{Xo)&HlcLj;t|52K zflw=Hw_&LS1DH~9hSTMr3;P15XCMDbHFXgF@s;}+4{^)nYPT%47+uFf9<8QdoD=qa z{#K_Z%f+4wCH%1Vp>J)7`Y@DafjxR>*d{ixn^>~P!-q<}^@EH;u7B&pHCid|K0f@M z7b3Nr@UgfvrJ0-p0leB%1JsL(ok1m@t|Z%7ClGdeEH(XdY)5ul}mxZE+4BUW$o9TmC>{v9Oq7Cv81qr!>kOM+CVc!QNZ z$-&<~r8>s~=c~O9VSBrah@H2xT(Qn$zWeDZhuTgLSxMs^^zm`mOLeJUYjlQI!!@D*Prs zG@eieWLvT_tH@l3C(XP$JQo#NSu_MgyDiC|WSQ(Rtt26LV+v1A-^a6*p$ zd~!O+jGZmdfte$=#4P2gzpL#DqdD|F7@{N&(R6ac*vo<;}@8EDt!eXY>h%r>J2 zVr3$f%qD0P1o8{x5YspkKm!d}mdeuWx3l640Q*>xf(qyq5DyHE{(Wgq1PENi>W`#{ zvg1Wl_L-jPf23?=U36amfB!lC-1rFnxE(I8wY0SxYh_z!2$pNyKRBC<>!9BnMhkS7 z>VFmC@;s^_nlEn1lh+7Lj@@=dNOlL7mUh>f*Op^L6$#*fLhB|r5e>F>e(T#&SCrd3 z?f0*JH_RzZDEJ;m3vz$ikWyKz#~-Yt@Zn^ZH|q7wM09-$i$@hMjIXl_=4@ozUi{3e z;$>wTZ>&}wFYv`rIQ~i0?G}{xL2clR_i-?JWG@fk6)C~U!t985u^IT{DQeG7?f7bm zr9)FY)A-^F*e%eTxn}@}ddEAb`CaUio(XA601(Y2qv`x}UW_-Vo_TUeJ-~>Rl;C5e z;(Ucccv(P1|_@io8)>Id>TXctKguU&`-JUZMQR zmz%(6=(zkz0>rf~+`!Uh$7E+`MqSFAz;5mJmB@GB@M2+wH@ z69=K;LjSntM)Fl@sKqSd2rsWfXR7pPIGL3`IBW;SnZbF-!BBi$>fJz}H;z>j&gw&= zYuRmBjmO-J{!h>#SB_~cLyr?&o;<09I$%F)R7y+sWKW_jGfPFqZE}8~ljQPKwp6Q2 zsvk-&;`Tdfw2o6>WkLW!SE4{VE1fHfVj+x{KRLxYum)E4nG*R$eidL~ny80gP6APj z!c{rO<=HD9>0>5&)|*ErjdvxL;wgHR$W0p6NsnkmC8YRxVH|_46c0_}@$PyqO9)gh zsPLI3YV2#F!^cQ<;5e3GNlc|Uixz9A71YVpWx8BSBIa4d+UZ<;b63$|bRvmAz#_$= zm3*#z^8!)4ny36qM#b4ZA=Td@RuuxSvovL<0Rk(w5sL_ZcfSfYJ%i21n`xUWV4I(FS)Yv#` z*cP*@&JPWFChDr}4r4)VKcK}uiRd)8A>uLa_Zs;)Iw97Nh_KxFg6R}~9)b2?)7Rj3H7ypF&ym9VD}#W^6c(38(rW~` zD^a*3AJvyweoZ@&nUm+-k=a2_CXX$Tnq@7imBHju=$DB$*M~9kW`iUt;lpO*`&v8{ z?*%xL6{&=itryi9f)UscW^-r+7Re;XUmokY$izks0iDPY_JnUTN5OSJ%D=j-sSQ8j2`-tfIofL_zh(PGZj?=(O`-h|L7rr zl3I9JY6TMVZLZ1_qq(Ru9k?TlXS47ij6;g) zYUxN38soa<6bLf$Rg@I#Vz3?O#&|=wa$OfJ_EvfGJ4X1F2 zVXj|AI)a<`d}WgnT9zto+f$Ou>Y;Vm-?vYp`vVwR6)OZF*SIgI9NCg>@$BLs zmrvK?^n@q~4mdhW;QhOfxru)%tPwkT74MLK0U*=flqcxdTpq7M8Jkdg-~$^zF&?6@ zM)*x?_=wG88;??S6n&NPP!G6ksbyUBR4p|-nR7B()z8&2dB1d~KFtGB9zmJaD$@6kD7lA`Tn}BHwP# zw=(6ZV;fQil9Sfd6uTx|4XNw`Ah@ycB{SCp^sSAjVk=(+m%pHJ7Sfmav4QR_q{rp$ z!Q&Rqj$-F2uon+qPKsWEgo-Vw&(OiFe(`8Ywtf#TeSo8YiT%Km^a0WF5Xv1zdrzgK z&fr=jQNH%X!j%LX)FiqT7#~V0-v#a*ApjcS6HGVsIngyibUf5dJPO05;kuB-DQ>32 z-{aNX2y+wwxMVg}IK5Dx&5{&+V_wJl{7 zKH~FN;(E&coZYFhT0T%3g{|;FzpLl@@$e%{M+4cWxBX6j zi%b9!gd74-GS?lem$#Q{aS_9tbV;ty$N-fvQdgjD9x&v z)Y*~ESau7v6#yf!%-7)rpOE|Rv%jvEFUIVh6VgRh6EnZ4RgC&c#Y6PG3m*G}uTk+( zw-eA`UUDWi75z4}6=`gzqSG`)qVdtP+tKMk1rp$1OFG7`;b>z?bWbzm!T4)#{Ue0x z90=K!g4)2mq=Yk&UP)-)M)7drEHlXq&Jj|YuHp~)BG+B+_Nj8A6z_FFRQnW!0x@1* z4+L^?1o3cf#|X@T2nB4{{R~(HnLl*`HySy_kT$Kd6l2VuL2t$t@A7)&FzU=L@*xyQ z8(1JifL)?T_9+orEZ9!a`MZ;`$QrjwyUh(@*Y6I}@kvLO4QWV2ieiB^0Zke!4&o9{ zLkkDI3_3Z7@*z6SNB~N!?zFZ;TJ@9zt(2|id8nR3;@MmL$YE$FJU*ji+GH-!H0UlO z`f(6|Fgchi;PKhy`i8pj1Fx>#g91&!b_EYQ!{NZH8GqLR%!k~BDma@;!v6rW%OjUE zD~3rSKshqUSIeZWajE7pFdsq|XxBXyoO*vaFZt#+S|JP2D0aXT;2Dv-C#l>n=0lQC z?8&s?#H07SOkU_$&4Fs zmbFWUu-cgyc^w&eJ|uXv7~_EW zo1g75L51f-7KAqepAQMYv!XW)IDkHc1Zs0z;7Be)PKnTmI7xD2Nu%c38TQ9^j{)4B z1gc11qEs+m-J}C`Rse8B0B|oSuzrIvuA8_qaw~Js*ZCyu3g9;pme(oA$Ffflzy)hg z!626II&<&Y8~Rx9d6p|$xqz6xc7`Z0M&GO?WJ|fXlu}BWWD52PHVPIBl~${UarsoS zq*b2kF}$^QZvD~L+F~&}3_I#rZEN+lh#6fxl}04;rHjY9^UCdwXK!)&*sRJy>(a$j zWmZD$hvun_8BrE67mtL@p^FB*U|ckyl&>W#F=;OzN#m86K;$a`qEnaBb_c=IujoUa zpD!IQ8`i5Tv(8=RZwN2US{j#T7XUWei$;8A8qQrk{ZhVi#VlW_=jZIsw;xnv8;);R zB#Xk>#nUb^p8i4ksZE$)JXNM)rYiuJuL$(S^X=#6<5t6`dd!SS{#nAcUOD`^vDm0J zO6g@Dnq4$>xSC~%P4E^`E3dLeiV;Yj{1QZ#xWY2R9Q4VsC<3;x2|yj`RtI<}<(aCg z7X_Y<^vZ(+y1jb1Po_yEd-d?VcyUpnbtJ#b#=U5aE($mu>6hq7k8Q2G_3F<(jCrPV zhjq@Ytm=Hxu=uU(;;GlgV`V^5;K3n1bX5TAMC$!ZXcj~Wotg2IiCGXKbYLa~3K2Vk zp+X<&(64-L2{9*S$W7;{bI!JPA$QSGsQQqE4B3S)2{Ae?h89AIL5KC7udia1F?u@2 zKN%yWTmIsZ6emz!^PEPL66K$t_(M>Jd;y+QNC3n0ghKW58l{v`P8p@gSi8zAMi<3+ zT~S^*A53Y@?LDFNjIe=AM0CJP<>d4S$zyI{a5w6Ye7$_&hpwLYA(zf&i~5B&AsrnQWgC0Dw1M^pAH|y1{%LnFT21yvq)kB@L={e707PeLIp1sPj z?MM4NGkf{GJp0SllQD~n2WSenJ??mR78egY#CX`Uh&&U$@_m^R$cfwTkL1L8cz~Q> zsoQ}3kEQWs!=6A=pin7y7&k+NX!hJr| zr%y=hMFZL^y1i)Fi$-7a>T&-0VUq{E(3JIC6f;&x9=bE-O&x3Q$wssG=e;9#-ks=6U7nES51s``TF{_U8;fB}jR`9uMqN z9lvgVasB%BgAPJb@-KhCdmz7dSLhY-+N&t&%H7^(dIvKYnD2})Q2Ap3;r~2_b0GYk z>wfRe2}J$`V!j^^=ziV)-h1!4%{hOfMz0a0G4sqb-`5WyIw0hMfd2eBAfV5@^Jv5R z4aYloOW1(%n~);jxfJOS2q1j<{O}Hl9}ajR@}uNI1Mhz5@WTP`Hg|(h>|B7901c5s zf)&UjxD>`zXPTy#i8ZG9=r@Yk@)3v%Ic>73(K2x(J?FF*n=++OTP8ZUE47WB8Elyu zUCtfw#U@FRIA^3tl8XoFIxHPYuayMy1GU$7wW9AtnQcF#TJ6SD)VProb(DCfozz;_ zEL0*$`RbZlM99M5ow3Zz*sUyLdX=7l=hO_ke044cR%VdpEA-bhn4m{=+--%eSy+|b=T#P| zM^l9X`Jpu|Ji~AC#%G{=5=_gcmSu6G`+bZX(tFF3AukcEzQrF zQA#PLbRIuUpuFg%vzAE(2;{vHS(so*Zsd|*JU3A8ZS7ecJvi+KXNr$Fa(dXg!Ew$x z`YE*}$w#N@nie133N%5D;lY!Kj)F^yJijy2H8C&TIp>HNA&oAM9@^%GL+4SQix$}? z#J6yom+~=QV`AL7dyc_KAA^lP=e2O*L-R2nMDsD(cH@6&KBmf;%+y-FL35ALazqYX z#CQv@)HV;gJak5?BYr@S*a1AEh$CunBp!j};RQs6+aBZXExh*C6WhXz2Bgu@y2$FZ zE_T4j?V=2szJ>4jn5>j>Yd5XI6O?Q6?esC3x8{CmKE@rkX-`|LwzW#*RU@`MUp3}5 z>hG44l$A(+LOF4IAC;it4>4}VR2NT724sZ$T)3k&R9!Z%Xx{o#$p~Axu=HD$s&q(P5?90-5n(&7iv9rP z#yIK5)K@R`lgN7nAEKbs#AMr#{TQF|n^2GOoQ6Zl!op*m#$-T6xX)X-ix|H#F@G)eYb|l>`XyE+C@w{9wjk9@t<21PzpS=C-4847tFQQ*Xc*GnLTK-;aV`t$bfAJBvMQ7L}`t=vDE*mk+;Kc*X3;R@;@tnHBkdI+0 zJf~^^HkmOrXr>Lh+qftL~ z&1J)K&Y)Kp(-rWXqJbJdgmK6#zjn+lL!3paoo-?j>jVtN$-jK{6bzuefAUR}Zgvpfkpl)r{r%!K9=HSsaHG&ADLp~jegv(1HT~l2y`7AHJ zI=8`>KAl#lmk-R>47MgSE4y35n^#chEIcuqkfQw9NCW za)+dX6?930F!^mpc;x--(l+pj?@$*E44sS+!IQ4-=7^Gc{Vo_Q5w4U zA|0`rZ}7-Jm$1mzMjirH;WoiCAk2W6+?Ga!K;qcK#=??+FH38bwhn2XRMrKX0jQGxZlqjTX%fyz~5|nZoP!iYq6avYs@#6!f zo9JT?eFV7gsUBvipp=`m$WGMQ+e3{TCzR6ym$>pkNYGq&yg?KzRI!2-peL^;0tw+t zr(WZD98NpApgWkIeDL5_zMZ6%&Wc%nHb+^8H*>n_1mu}ckFpG%Gr1^Mc;ei=oB{pd z^1F-{v>A>HLot`+*X-09v@#!D>f4FR=cb+0`p{bBF(;p>z?&1w&gnRMI8lK&CsgBr zJc(2Y;e!u0xz8iZsNTL~bImAcRPL&*hTFkb)**JXSugqd6^syJO1T9oXLLtoPAd?hJ*Wb66}Eg8Ean$f&WX3=wv#3^zUPC< zl~77KBTM;qYVd$k8KJr+Uxg!IxkAf5xNs8!Njs62Ogro}rMU22KBd-ryEM}@DHf-b zDnv;+ji{xWSe`E)CYF~wN-B@qX+*7aU411e9xvXh5jMOlc#S7)WXgYx~PWt>7;xs7<4ZKHSc?xoL( z)$qB|+RR3qGorPo?PecfiRYRhwME_(7<9yS&g`g+z&Yn$Kicu)X`m`x8UlDuQDKVb zi>-aA8yw4!3Qu?lw{Rpz8ArDiGaxivp4ouJXU^h^fFa7a19_N+nW}F>zGh!}#B{XQ zICg5>2;CQDKZL5yaDI3&hzr;94adSD4wVUIgzzGj;)SDSrv^^W3Uct!bK0G_zG24K zg`;Js22M_lRHVQowJ8;dd=+)WXK&ZIhg3lFwO_mD!ZPZ^+K@x-Pq@K)t%eG%@WbaW zpHYcqx?l#BhC5QyHPKtR3l}-J4e5o$@EGn~dp0pL#{@?9!t(8svW*ndu5a3J+QVou z4ly4_EHapEL%n1-+ce+&%B*8jv+Y(vRNUz@mZD7yZzs8_g%Wn62IZl{2lqtM)aOVk zp=C|6gNF_uAWS{+g*oa<29^B@CEocIo;-ZQiSLUC2+guloT33wx^U)33F?RJ} z1?ltAW5}?(ot;jh$v?Nx`@s|(aio&Qxm!Ag5ZelLkQRUL)o`j%k>p?Ya{aZl1UTUz!7mq zh}a;g^bq6+AX8XW5J;)pP(e`XA;=FvAVks7Fj#S>GwkrIk^R%80B+*jAIxa5P&*=( zTv|k2C^MWXa&~TTrj$C8eAA5PoN>Acb7+jF7rc~GD!aaXeAJp|LU9K4h6o{q@q&(G z88o=PiW{Tr5+gmKAdL<=^TG1$0U-jq&dFASDt!K@3c43QuzWqit0=lJTrUG!!+kETIF4aM$XD)&56^~DdM}*7 z)Uo_w8pPzaGSri44;llhal${05K=T40q zINGN23cG2Uc86-Mp9E#O+sUTnChcjZgA1MdMxvS5*df_FrO8*0+@Vd#JAaKB&<-y2 zIkP@eq{nmy5Q*}9@t~vq$@foeqtvO)w##MooVo%P&liv5!ar1UMmr??1S7uv#`xHs zoP0Z~Yv9AK71^aSm2QG%xF|enC|r30Jg1<*&nYP!`3j{_1b#bdC(b$NoO8}O=bUrS zB~ik}iBrNwaiWT|;;=Mv;+#notk|$`pXa^P!p_V$In2ylT@>K-eUmKQq zzI;ZP0|DW()_&u1&H-tyfuP*yR0t#=b+C-qk#r5Gpn&qvJ4x3h!7?1r#Fo(vQ(AF1NM{);n#HQfP_2}$#&B6I zp-T)RmjQ+0I#b)g6AjB4Mc@3zv%jzn9pWL)ItM-A8Yi2mleElpZY4bP8VML~BWVls z@&y(!Rg748A!c;(H2oGaU2xHY3X%&hydX^huJE}n+(Ib1xQ0cD}x z4gjz(uFin4a5wl}ilGDN5MrKbhfeGjYLFDJoALyT5>eiJ5WZ)GQ$i$25I_9fNJPzo zC5Q(_Am)lVBdsz2Soi~w);MU&WoBk(W@cvI91%j^WmhtxgeNZ=jUJ`zlRlsH>fw6}Y7d{2T65AjAPrQ4 z8-0$Xl-l1qlG$e8l`2+hnMvvzc~d=Yi5nD3)7(iALLeBxGty1kyE z%K(DHZKn))Pd>+SGuYO{|4^bugg(@qL{-lZ#--Ih$ntW0dWWmN1sI)|i^Wyr94 zHfqheuQ10maf!`n%Rt-O^c}5Dj(%J7hC^jjiDg9pDF!aj{NTkf4A)gxP?hU^qb_6E zH5r`GCRlfxUPOEF|(6KEhbQ@CvO6tGObP zNF>TiE`sfJqS^71No2iqf(XWAwp|XBaeY}5Bcr((DhU*Z^JuN|9jEQ|a5RP@4;?i! zg2@ZUfAQcTfxAKnMn+pErjoq7L|M=gc!Hd;px>NO+TUwb@|zP%B=S&5OL37Cg2 zijM?aG(`fR4;NhNk5;eh=y{0(Q%97ALKn{kM;7xjg(oyanER{7%Tnc^@0cDtn;tq- zi7{j=wjmaV$iWDP$iWDP$ia|@-}Juf#>=)1yu*QAn3b5l0i`$Gj2|47%8!+$q73+n zZLSA9N!&;sUS64l^b*T>E~RusaJU_&jHJimX1E^k4$esb;M*q^BhH93;+Pb1txLkm z)KcB_=QP9*<+dN*1@RY<4X*n+t?a^rv{pIioVA>m$x*((TA$6WPP-;bkk+J>QWV4l zEFDqyLzd)8Q}*D-OpB74#D!SNNkxoCqbVJJjF;LjcZ2-WAf*hNqEZL@J#I}p^q(v4 z)!vP|CdMngYhXpuXs4ezkT$C1x~FtL6vGqf4Pjq5*a{aPKg`tHh3+Q~^HM2g&!qIB z^T3#CJQIgYd!Pkq$gQWYVap*FE%XlENQ#60l~pI3?TD_rW_ozV%1#=klxo2-70_PaoO6;| zo7qTaL0TBW5>QI5Z#{$LcId4G@0_J1n~^N%oU7T1XWDc4iET5Yul(Yws;ZHjQF1%9 zkEok56Q5=?^C1LBF(Jy3ASE}awf31`L&&S~Y;yRpjRshzyygUz{X@8rh zX;252Y2PS>QFLG%A1u@E<7FDpD7hpz1fR2J+x)3QN+~V+{HKapRny;-Qp%adkdIPI zX|}|APR~uqPZdpIEi^_H#{{Z@wK$#)59_{j9uwYZtx=SA%aN2?o{bywWFl!JT{PT~ zhjaU7IJhMzq;io9QKDGuMqCpB*4mkCh+NwTe$G3C>)s(T-2*UdcEdB4vsQV#k0H42 zeU)tsc=42LVz5TN;u=zGJz0yvH3nb}qiF@qIj6%=3t;VL2&gDg2bE3T73rm0k#7_P zAB1IG*@lDbzUtO++>9RF4k9gtmV;;7dvMiNsr+daaC>iA4js?1EO$9irZu-i zPgzx!)2Ls$n_+?aRhA>;i2J0&t=s2U;6bUbWFcMxj#yEkCWUgnmlYzjS;E;`E|s@U=!I|eUD%uw9|8i{da z7<#Co;Ne5>C!Gzu_yr$ywvjO)Iv=lH$MIwoeHoVY;+eKON~%X7PK*GDEC=ZEH_vr|Bouh}t=8Sos+wx{GHXrLLx_z$nxKynL3kAw3z{tECjT6E0m?gX zmr;ke0lb8H8IT)pbc#Kl#wY-+c)bj$4LAC0oyM5-Y}(1ROY3`cpND|wlo#Ic@alo| zVk75;DV{IOGY?*`it+K1JoB=b&+D9XhFn(hOjq`8xsl2UEAL-YWkH0{p)m~cK4&rN zoPDt1YFz^_kDg<~7%R0Fon(3R!3Ty*xIaF;3g2Sisc{2GggnLb%##NDcWRhOrPzI4 zSr8#~tV>74jVVfT$ECRTnK~lI03uPoPVp3jpCbq9$;2LVP{EOdWFr@*{Pf2KC11OV zr`UX&cE>WPceVj>8cq9lI?+@-Dg!~o8`2#;X)^Uhzix->oUesakM6Z ztZ=22PI8u~Jg25m;-_05s<4$E-CQ8@(sekV=^oVQyLhHs?B@yV)nX3IzB+3iHh`~O z+d1wId5f|bFU(;vzP@gLFNQWDdQSJAySy@`A^XEVkjsDY7aqvv?ky&|M3jm!>!B%< z{G8IV{<5wf%P+6)vNSH(Ic+0;$Q^ch2xEuYdi7j9m#glu%HzfJtV@e$+AFUnYq6ea zDzJQYmWn7!T_EBmbaAM&?VNt2H5~JzQ6t0AbIuus6TT}f0#OkRMB+rDZe%+(V2~K@ zb{|%O#GE)Bg^o(CgAw$E+m@R%#_6xU#*NmT<8)11?5H<(b2*iXq1smR75r9=7F@*j!y`y1yrt+aaOC(y^y--y}@q>3)$r`|4ui6;~G*~;c z=TsP|#E^99Rw^nfDX#nu&nYQ{&_|SLo0uq491CZ6QB2V`E?T(2Zp%b(ft6Y&dJJ}I zndl?zX6FZU;j0OGTq?VO0Af<3V z*dv1w)~Y8$>K3%~L7JsV3~eaGO?pF|cis6|ayM&l2};O>fBzgwg-*818aFp^P;ij) z(P@0VwHRq@F(?doD}D45yGc8-&*#!36)RfAj99>z2}Q7LoO>~xi}xv<^IvoF=d`r$BLzNC@T`v_K2BhQd%2Gi%*qFm%6fH0m-WyZ^g)7JU9TbQV+hf$Ij!AX zL2$Sh6(1vrFFuCcjjKEix&lUqi+_nYErac}45Ybw4{@X)~F#^+QQC>u>sml*Vh zE65F^pfRf7{|{h2#g3|{3VD>3>(A-7bP3C zhI_rp;W|zZPIV#Tq2K5zc@@G(%=&oQfHBpj$wy3nydnT|a2uqCdwIWHJU`qO*I%Af zU9|Akg^dy83_wgrI^he2s7I{CGwyN`!1#;1s|T123F|N3!;5|P#bqzsqvuo?GQ6{@ zn-Sf)X`{K(HSm?};9waK{u{bH)B!u>f!jmZM29un7(-s2uThV;{4;i!E51ewhbr$b zpP2Qa9^Lw>!tGIA9)ajr$858Hc}_p<@))DY>x@y9)%YWX#o)o;bIx3qb?MpZMI*u- z{tdUC*4xnQll@*O!WUvIF*SHYm4EeFYBiK=q$dLDL1c!+bAB?;-^)fBSr3hvwbsq3xbjTD4Lg{o`p@F`<$?5(7tYly|884T@INJK8m=V`D~*G!p{>xXoHcbc}{VO z;^TYI)cl;=S0y_LGj@m5rXlVEc&65B9kz3WGbhbX@aA;t8t2cUZzY(S+&&bxk0Dy+c#c`(RNm(N}i2=YCkr4FRz&aB6C z=-m!w<=6#=j%6@}FvCLRD5ZRlMoN{$DCLB7+DIo89?GkdI%u7&q;(Efl@)EytI)b2 zAmpoBJy!Q-#b!V2=6e-ZyQ*S+)+GV{DvK2xhJ2(l6ryCPFIdJ8_a1Oxd7!^?7CC!; z!C0quzsqa2hALL;u+v(_2?1-pTGcsgt3S*VxiDTM3=D=uwf5c@%<0_f^jVjW^y=5e zW7#?5jCQ{0BJ8n^^RiroAyF+5_01WI)zuUIs#lC&vejQ`H8ID-0<)KmSDOV^a-P9>hjtbhWAHuF z#Z!6K&Utb0&InK;lfsy&DS&v znAqGz`G%Q~d=4+3AMY!N!QxkzF*6VJzw8J6%KZzrS%*$D?qS{X>*7IPHmqBsoAYeQ zvZ}T6lJ>Hdhp-=)5B-n7TdhlJ=T0SjzHbg=$a&~?>JFPCv+ORTu zc?JuYp?FShVIqVf(ZllTqRq0LC!8)X8GX`wA28hO zIhBSiv~uzaB`G&Rfs#r?lq5vYsWd2gPFXR9KBv-<*ODcr1xrfH6^D}BEj7)g%3TCCI>eJfi+;;#8I!v(-|N{bP`I#;e=hbmXqW$BBH zR3#%d=|RzQ#MR#1zn6=rS&Nc)@exAU?S&VIU7l$eW+3t#ORceJgWCpkaB) ztA&wTvv{NuBdp{V3k*ie=-$eC^yNk?@mzxV(q;=vNk2yo5(Q+H+0G25PMLHJHd4h zUj{%$ljt?R=Mci~Ib(boa61I?&vPE+=cK68t86P@`Sa?z<=94pc!zD2r}O26yu*OJ zAfOl?3|`>c@K|sIIJ3{A; z{Se|CHVi_dgPOP|y-4K62;q+uclxsudqUp3_-|0zv|S=3a98LcA*r*ZZ~$Tn#fTvB zLx>?SojdK1lxG?a_edF#WXbXjr@!~QLsJLOx_*{as@%J@ zll*zP$$!Lft>+Y$BL7|{L-wXMR0sG9_^|izx})o&FwP+W1&t6ig&-q(galz`W@ct0 zK~(OJ)*Lf4zn`Ed?#5c)dC(N+I&$E+v6FLiYRx$$-yMX4pedxpz=aG(Ui1RE4WdlUc+l(tN6PMU~GkfRhr#t=db5dZ)H z000n~LDK+-dN1B9x4`#d*!qFBLDLv0lw+&*D^=UPH@b;25!Z$u~TmIFY9 z1+*u~@=41blmKEh3PRiA(82>1%T{bUynT){+=`_Dd4iAbw-(?b!}H}DPH!s5vX3Lz zR78pqF(fAOhX}<*DL)=AEaEqDud-tSOyALAl4&R!s#F{$4B3ummL%dv`U2YysT(}A z9U;u{(|NqYe@R|;;Nipi7cTKA;>^-^YD?9!Ka0W7XeNx1l^93pC32=T(KtFYjeKw& z0v@rrH7sd3%#YD9K6k4jX`K<*% z=m~+@)F`8?A)HWAXXT*N9Z;Mq0_tQi_7ZJDnrk`f(QJrVG~jTbKBn1CN7BE+N~aMd zYV8dFhORfQQz;LjFzcS(sIIWNFd@R!iyG{Yfz*{f(zFT>M8Nc2Jc0qhNFi>cJO|K< zMfdVlr?m4ZAnXG*Zf?Z1|B&+O|Xkz>kv*WkoA$9_jIPG3-?N__biD4B) zqJ|;HISZzLo0vnk*7i)r$}elirYK#3W}RMb)Tf!X{rKQE+#ad_yROO7K|Fu6rt4<_ z;r(SZ$L`4ov*wls=qZ5peS|Tu=~kWFN(qaO4bY})Ww1X<-41P>Veqpuc8;*c)Eo>f$D$p|3?!R45hZ{7sw_-#&81=}e{Y1dD9iJq6`+0dj?f za(A0jb~AuKQ~uU8ndf}LkHy7RmE4Qc3b5LaKggI5+9W7036= zR-M#RgR*~rG!>!ARr*Rj_Wl-U5~Aptlng3%Q#vVGa%EVW2R1lr1T%`}3h13)H^mU8 z>LLlWKGdUC&139fitk!S6q=Om9F#r{BANG#1=iN?-?)bAVWSCQyz#wSe29_u^V+y! z9nIR$2Ua1+RC{Ao0Y9p@;sKgI*lAMJ$|2ByNq#cEN%k(a^pH=yX0J%G)?6NskS^IN?U^~YWQi|v8GZ zY@`G!5f_kvi1NmR7n_?kW(+nX{$wA&HX*|Gr>5B{G@J724Dn|u9y~AMPgow%gWM$t z`J<~l@L4?dN6W|7yp6x?Pj@Rxe~RCV^jHj1_q!rA2@kzUVEZhG@rgUJ<4{5w%}gMf z69_k!0COfakFAW0C2wrG9m@|DZ04i`JKIG2az%xaT7fVzK~2MMbd9uHVx(F zUk@BD*7#_n^OBcaObG{BP+jYNahcFU{n85h=wjTcIqeVK78^Aa($5eBrUu-7yMmB# zy-b$oqg#$m%WKNSC1?b~$n=596m^1%Jga6w=<#}WUHT?EM^nd?cP>*c+=3CXqt8UK z2%w*3EMLRA0~zVPGD}j#;IOjVfgW98bye5BqJV48c=>IXP0W_Iu{L^pNu_RY-2wxB zX-flZq-%Bp6cjOP_IrtiX6%cX$ClN84BLu)N-sPMNAYK8H&bujbSK*iw`2>(VOvw# zv7~B^m2cO7oy<>zg@jyNA9#_eLC=NiQuMrRi~=B5@zlyRie)g!xVUfs@o%$xNafH8 z(m284#$TLTHd!|VrwRcZc}KMUcY>YcLeR%eBW|>FzmQ#}NA88qlTedbaJ9xbF|x2o4ahqLKrCPRYDv66|FviDbrqb@bAvUL4UPFra~oJ0-`mUgo@hA(RpOB=dD$7X=LB zi3Y~3aGc|4@nqx@remdPwFcy*QlMUOGoX-$FoG&qnSq2kutw8v9kMGBPHEH2;QGb~ z8fa%j*@n(-;ST6dJAHIMY<&5DsjxUIJAPjTJL$93s>;iMWcCQ5X=nNB`maCd3bRYx zhwOIewu0fD;+~ZYM?$@DQ%QN?;|8Q7WVtG5o0P9hY;Hph#X>Eku3aP@2AuP6#mARja%ln7Zf z9NJ|Pik96=g=%xi<}!jHx_wVeloDi3gt5~rUp%Y{7)aX-Vf2`CTo=p8lLV^;utG;Q z0kt+5AG)`C7_~?R49I5bPSjT+(T%=5r1b(^rPyRrn3o!Ap}egQwvVby7shh>t5HCu zwHNaE{d5&1r(7b^_=%=?9E{daz?h7fw_G2$pxMumfVJwaBfw?^7-w>!9?!=j2a`Hs zbAydw(hb&SPkP*$OHrzbFWMQ*bShqY+IBEdKs@}i;3U6xB{_sM25b@Y|38L`=%=yv z)Irs?54tog`+<0R00|*q78rPqkY8cg5DK7S%N43DJK$43Z@nIl<9aM#O+C z3zGpD1dMQ8r8%NW(pJ^|-^bfRcqevcS3(iZUu><~M1>3=1zpP2sFZoCp$_D#%U}^L zh~Qp>27448NiMLVlvAGHDm5H{_Emj^iBYwSjQlU>Kl<++`z&T7_f+P$%zEWjX>;m+ z9L_2<>E|Z5nu9b0sPS{fqZ`&cG$!Z>BDc-34sK@A`9WMk*nO7F(KBT&L~2G&bP@f> zR2U#I#0Mc#c{nUwHd%^+PjOmSFs>A0=*qU#5tTNf`yY*H5-4_{295Sitc^s%ix(6b zFin3_mzJ!~1DTp||Gpc;1<8o#X;ki`%biG&TGDgaq-x#x(9+d6T7zmA4CXWVR!Yiu zVg(i#RHotWZ|+3_p~Er;mE|W%m5UVV1ptW@wJG$c{)m>)dA@(r7DWtL)fP7gnFVQyP%I=blYJv1^>Frc|?Y51#%6Z?FjzHErr#-Ar+Nn6e_ z0D2h>Eb8V)!w&x^$*%<|?Z7UxHG&ogT>Ia6ssT3mos?3b{3eq>~#rpzZ*A z;%N%7=jdE%Sie_<=UjSN(*9Dc!EZ5!I|fZ&%YpIK0%zbS4H4R_RWrD zC4{DK@Yt5EF_Ig8vl0qR!LS0)ktt=|LZB*Jo5Cc~DIE@~^2fLQfWS9DiVSMflXOasEob_(xHLIRse4VXP-vV ztxZq@Rv-vA@oFZ5y%jRhF#Mamb*GTsU*UeP^?blz9du2=+qlNSi;Aarh3YClGTF2f zN**=O^nu!!N_aCPuZdtny%N>e_<#vigurHg_r1a?wA4Hg5hWml#y4o61H~0(yFIvF zMFo=c%`>A$znZkkWZ5N=D%DMmai2Xony1gRw7)3D6LH@*xz3JS#SyPvapETtD+9+( zUi43=QSvCvU@#7w*GV=%A0td9=(NnSjY z@Z4ywk2Y6ZPKTy;t zC{|p#&ves`jaVGr5Wf!co?DRm-J`w(JRhu~LAu3>4=J{xH8m~=lT|JD_*7x2EfCHK zlecbz9Z5?ACx_oFN@!5~Un5HZeE-9@QtVl2q0!Y@ek+ zoqCJ4lW@p+1WU>$r}-G@|Fky|t_2eKK(PlzEipgBfS@(c-Puzdu-Umumr8aW^WeFu-To4X5XJoAL*Yprxq7bcixmLKz{@8PbN)y zPB{$2&cAB=bPhocsvr!C6S;N2w`ZvfTGBBux?7FXW zm{^lho1fDpK^FP6C)61IvC5+3FjT<^iyrMCp^S3ko#j?RN%BQni<2Fq+1o! zL6b~lQ{ELFePvbjXfYLwW$&24c0$ynFJa7iTtOxvNH_FQ)r`hg?1!yxl{*dW)$WC0 z#ry$b5SW@D6Ep;e`b#Zho{~p)*SlioLPu$+i57_z4EX0Ui zqxU^zeJz^+xhSCJN%GWQKtaFH*-G!Xb1ZiPDflB;VwhxE2Me8`#4<)B5ax#or$-## zb2IFgnn;>ae7i22jH7~EWu4q!3Bye`jt%e1oz~JS5mbH;edR*DZ-NOiYc|?2peG=4 zc<8(O*l*C*&Zl>|xjP34ONHn&6s)`;Ls*|T8BneaQL^;c$2c{(cF{}hs-kWfp}>K= zHS8(q4uRh4hODJFLU!)mLA`Eo!DfjjJ;C6o5tX^8;6S)%6YexF2^Qliqajs)WZL^< z55=6x`C0n+;j?U%L(dBwg7kY3UrN4ZXwn7B%A~O8n>==#m{YTmZBK5h_P3jeReZn+ z7^ftgf9Ni(o?PBM=Dd)}j>Kk=g;B>F8+gghZqW zIJV9vh)wTr*c6srDmd@n)6Vu9 z$bk=ue)Uw(3myW?C@~>f;_5Ru)hRc>!R=h|>Kti^QQTG zeWPf4^DAFHe+ETFs#qxbhX|OG5Br8xyu?S*`hchev{T~`doHGcqJ=6X3;th<$6_;t zrF!y+eix~HoE0D_b^5~yfSb2CGN;rKSnkgbZqB4tp?JOaYq3DK)938wucNQB&*(2Te(4Qe~hjeYLcNEE!H#$U}Hh@b_Ioj&qie z0QNPt5uEU;95ExKC8&8gT$!7i!D9jUjRP%UGq7^!GSOXj5Su;8A z7=J)?USNuaWIR>vXZ%;kd}H8{wTj#$DgDH;g)+$;P&xbpojIp*fG=OUg_Ln$rzDOA z$bKcLg>{4Vo2&XjX+gFl5(Icuxt*TY#DxbzzfjC#imYM5PYjldPvnMj-NY-Bx1{mn zk4|Q@2%~}=Jt?gJfvL9OkCC2MsW#dg9%OE-UDsfR0Y)Tb!T7OeVOYQOI$a1<<^X?U z3#8+-<(1Bk(2C#BRV7y-lh91s_YDBL_jVB){zCZdpP435H&I7I16knrHU1VD)*Oag zt-xf_Fzx{vkr7&Gu^Fq&*_8Gnl(zX(M)kwcf$zB~rO(14)gYPx5ZqiFjv zx+*H{vYR*Xt(Uw6U*(mZ^J$Yt%3(q}mVgRQ?=uj0fkp<$V?FB?F5m$s&qScwu@k5C7RW@xli+iBnb54uz0d zXSs4#;nTA!SPc02X9os#auBnYv={Rs}QBKBXpR_PO!ZLuJK<_JdD4S*mt!&!sE zQCSfACo&4&H9_E?kkFagtGCpZBf{W!fM0}eM>w{CQ266#LX4`R8X})d?G^yBh?X7M z`5l+htk0I$Dzn9piE!?Wo=5>~^eKnr|3JBZf4_!NCOU7Hm4oRnoQn2^bL^U z+vGRQKNLApaxn4hUNx+<2qNs0j5t{;--d`sYSd(c(?hBS1N?I1{t8GIB~D7#;Fdg6 zU8;++S_aBjU<7G($`lNaPFA@7*-^!ee={m&`bo$QLSu(R)1vO`iF-QrH^)l8Sh_vw+F+hm~=?Hd)y=*J-5ZFhSx;{aq@CK^6&;EGIjYUzC!3T#7wU zUKpV;sFw}E@Au-{;sSa#CxBno5;hMnl<|n>x}#OK)DkBh?L5K^1}{fmd9qVUf6dN9 zH?KjZHo|GsZ%VW7Ju99^xjy0srnHS-*HW$ml&-)cB5L+PpnFvF>NEpnpBG@tY5bu} z#IW!S? zZ@ph@7y%ytCg^5SswX0P_8ziALw7#as;aum#CF8(pdqPZEMK)W)0>r4hA{#f-`1?an#fuVmkS0odsYq=blk24TB#e2sn83&@F_Q&0FSQN)=&(7^y?S+!)CPH zbCj}3CkWJihTFt|`^#$UbL_2F;WlA+g%I*DA_Q(_uwB#7+M))J+C{&P)HiXIqN?$4 zDvCIe?GeyV}d>H@>{ zUyIlleN)}4vVb#jB@2)C0SGuOC0)PbE(i);1CFExtrYKqpLB%@&mO8weB*_DU7BX_=7zY#6qDLFq87Th{*KjE~R~gyk{g3y+stamE-_Ffdsjzz4?HAI8L7^k3O%fj4zSSsTsG zqnqhq2aM7MAkU5uCK@?=?U#u;4GG|Y!+XW364_cdjX!#p^ekMb;~IdE(<-SOGmJ+c zh@(v~d%S6;BZ`nENCrLafa+m{atT@(AX)wrOE)$G1wygq!I2BL;ty00T!kHU`y)E- zF{XI})r(P9i>6hsmrd)}Zc1^8iQA-rs<#@R3`Qo}+iKMG{%|+qc4O zn0MQA#OPf_4p2S)ERJ4;0BlzTJTqTe(fpW&YCahPD;h$%2l)sZ7{L>$>f<5oM;P>~ zJQ{$9F;3E7MZqE(H(NliE+GrZfE630HBMVYr%VgyAZPtf<>D0y>?1j6f@!%$?VfS* zz7^pj#DpSHj`WPAv&WI)0}#bV?qDP-9)=zbWcg8}mnHG-!<2G;oBaF8fcKbSf)!un zPtM6v^|cgF#4G42QqG6!jbaCzccHO%c=^GZmf3^IIzY$rvIG+;Bx&EAK=AFu^;bwinX(nBj%cSdXfmP} zTvc(xmnHnVtwv1?$fhxC;qJ5mWi@+NLrSl&S6cT*K)FRJroGo@lCt`$0kb&@nr^sj z;|<)qyoi9xEIQo9mu|oi=s~A>LFvW3qjhL4H;mYO6VKK&r#0Raa) zk2068!KvQtva{%UnA(-i=_9Kwoszuo3I*H9{RKp(V`WQ7+qO?8{X^$Ah-`9#iAfyZ zh2Gq5Y^^lk_Hsrt@D4;%1W?MIa(ATO2d*?~A+xO^!(#Q!S7J1}mACw|Zv+KvzHN;MvC9^$nj(~r$1!?VqPF;mT< zMQ~gH1~ka-aEu!bymS%M4$tQ6bo!y?I8eJJxUAP4q;z5PC+#xJXX?b=PV49L5_%J@ zL+>(e9qv@H*EAaUOWN$uou7R)5Cl7nA^H5~*I_s{pWkAB4#RPA^th`ZaxhCEPE39N z^%y+7O{D`VY-B+77?a9}n33Ku5Ev2G%j>Slh|t#cW!T4uk6@bZhvNk5*9omBg+|J* zqQgF}BbSvhNqqX`JWBPv$cr&nW3gP8toAmrETPyfaxVVd6jjX>AQ>vfbhGYo2LnV! z`zan``le_WI-zKKrg2kPF)7-xgn{s4jg1#7&1zeU!n8U)FJWm+R?7*H?Ig;@V&eWZ zx3Ks!Ce35BNRQD9~}O)iY86%viW!$6D=vTO`D)DUGFIQ5g5%pN~PvjBt)`Q`yM(jpq9 zQ9ED}h(hvZwsbycHY-9?6X{FSljPZE+F>Y;IU^ck(G}P*-Io~$qd(SL4`UU(3WRGL z9g>FHz+w7aV{=*-8e1xYec5%~#xqUhSZ>FJYT9V}L3rRzv;iv&+<>T*SCBznBHoSL zv6?`ki?S8EsR#v;j!hv!RTeq8hQ3?oOrFo*W}G$^3pBifI8Xk~wKsO7hyFc8F%s^| zW1r;DuU6N?&mrr;$8)(X8qRjZ&EVVHMmD~ zKnt`F+4>@0hK8m#>NoX5sAoG85CPT-mO;YnhB8eC(BNK++!`B-aRFe~hAq7M4C+M3 z((C+&1nwVmHG5i653uP)cUkasoRJ_5NR;+>h6xick@A@3g zcwI2c91ZiX(8aFR0~~$A= zE+~C8)TZy-qVNw9O$q!ih$sT-pKg_k+v+yAhG^X@4t!o;kgKuR)9_@wB3)pQo_TCH ztZUp&cF=~;c!%LJjj^(chQ_OzEiu{Y`x9m7#jfChp5sKlWF*sQuGktlL%O7dc;7dY z*%}Zh^PmB;G|@>!%SJyWJ^2n396bj-yhe#YDw`{oR1;64R*d0aosjKat&qNwaN%<$ zB3UiT{}l>tp+q|^p0~A+Te+9fP}6vMOP`gekB|P6SD>%Vt#dHhCIhA+OFr1r4AgzUfkQI{~Me4_GjYN{KJ}C#Fa;Fy%njcSW zzHWGPR3xd7Jh_2dt6B<$RKM+fAP_uk)uI7eyb&wNXaME>Tyy>AWa0Fv5jrw2B{4(E zP(g*Am@V|KtTd)rf^GXyvuYe?tre{M+Q}$WYt8lJd>f(D0e;nRewEoEW>NiH{_Zgv7>sMg5dEnXiH?$u zkXi!~MbIdr7_y*?`<;MIP(4J_9LMZK;X!FZo0{_OlPLby!&d5#%SJ(5XT<({JzVeY zJ1Op6pAHaM&U!pt>2$cNLtS|YN%FcDCQ%6rE0aOEWx@b7`&=XJG*$ZnWzg>$!MJ_Z zmqB%=Ikq(ro_oN^X6LWf9NTIt z4+_Bg)q0LiaI1P#4VX(6#~9Bj;C7rEM^EF#%Z2X(fjQD_Ab~r`x2#b&UcqJI{uEsn#b9kI7jRiGmzIfdOI+dg zDe|Z`aP}i;BAsz#V1_wiF812Bv8|sO?TVNn*2&Qmu;>%eKdm)tPMSDBgen2iEj16S zq3Hb5TS&Z1f)49UYDN@=>zZFymuhulJw22&;Gt1#14vCi%Bzm*RYxKm6S3-S@JDw`cDnB^+DQwWp(l%I=p&+St=Hd09okPE|%X9~J`k z3Xp12=OJk(%rSG!ijgDJjNAzxKgSS>1Wv010|c|jZ3GaqGQ1?OjfyC%$Phne8e*f? ziIgyxuIQ`dM{Vs~h0ysz&GtpBlo>YaWj6Xx+ss$tj}-e>BJprVpFW}#z|n;vC5|r% zAf&ZF?;BeK$V2Bd{v4$B_Qe?1!JyH~WFzHo5{v%LCh2aO1`w~F1$w&AHgJl<-YS$~ zeY9C%PUZr+Whu2yTJB8Po-_Q@W<_2hQt>6-@TJCh$6S6QmP8D;by4 zu?lkf=;~lo0Ks+FTSPW8@|BhEl(#G!(`d7~?xO^cM?_1t3I;eR4Z*yP_owWe4-iy$ zjd$qm*k7i+*0H34sVwF42AZ}=($Js!)Mu6qV%XDxcTh@?4u|~40bl_~FKA$l@;KCj zPnt45CC;05MD>S3-OrkW_-C`D9Srswd=nmhDpI>v=8VcWm*{g<;5z?+TBrofrbwy^ zF${2YUH6BJwpm;gXc#@NASh#qgDK3a`oJ=nD`$hhb4?~!0$5j{>ai$4`4}xlDbm%z ziKAk}3pu2BE6$IS)j~d&0$XqitO*nMK!H07H}j>MCc`zO;JDnGMl1WROI+J81zp;F znQ<@UO?TWu=f=|}O|lvWLMwnNUU-fP=Qxy~oPT&RgrUffd^zo4eJOLsr^!=K2`Hvq zpR46om!GRITC`+4!mGpgPA7Y`&qG#RcXSMif`Twa^2G_x0ou4Bzu+8FV@<&O)QF z=d5p_yh%j&MAEGMs%KonV~c_SeMv{0Uk)ZE4*$@<0)D?VvVB z>yA&*I411$0*r!#%B4<38RP7E%{%)Hfk}Y=s)Zu^J54$wWceXj)y!8*qZc;+PK(0R zjUWlPcu-^B!~jchxC>d0?ArVnVc8-m|Lmz*|M@d5*O0~HUX-6j0pBje^GhFkR5wW1 zb5QAw@x(-ZTwJ%Os0n)5u;W6J!p>ohF5SZb>=SkpARbxW!_0W;&s`2Mx&5i@H!iM~ zYpv#*s)Vn0O%+PJ|3GDajCzyn$eCGyfdXQ9_AL;#D`TCmgK;QwrC00|!)i>)Fqp#5 znd$h4M91QAl($C=*f`7eNF7+b>r41mRQeKTgl!e~Fzso`gOau^$CgOGkhGL9yswng zbIr)%2I3sJ#I#4o{J{DR1X*0~2B2j6?KpeJH}3%rf@5ixZtARE~ zF~i+fLX1Flw#&EKVcDs2;U4tpNwD;F#K6wPLj*Gutr+_e*-+r$OVUAVcw;+TR4Xbhu*jed_!JgUW2qBt z<)rDV=Wc`PZhLOcaWKa+w z;Cthps!9t9&aAT!cOvu!Iv8om&`dt7py2V{*ZD5!xsL2(Azu*k@sh`23t7P{jt zN790R*vu7r$zwCLs3A(Smzey+{%Vjhd4GZ8mqG~6CmS6E{;ir53ZxB}z$|LdMhHj1 z6miS+jjjG&-|*N<7VjLIg>lz4@=M+zdwb~CiY9GbahvByHh72UGZ^sx|76!oIbT$D z7fUd}7Zl#vA_*=|skyne*7g-yD&9#bjrKGO<28RDYE}jZQSXSLTEV`)j0Ig zRzck+HT|4AoYo~OOn}Rf7`&47y6DkLT1|7`W`lZ0iuOr3BiP9pS559c;yJIvnvK-xsKqO^kk;=ZC{G6|D#MgEnVF0DYic`lJ2^i|8)Fs(+4HtS?!CsaOF z3Fj;8=+2W}gukbQz;QP!Q)Ieunyhy1fn|DJXs|ai_R*3eA}nD^kgvcO5Ozr9tct;! zTFW@M`!}EGzAY71vV83@-~+QkYE>zn1y^yvhQT`9h` zviD4>aq3)7eTEnV^Qn`MgjwDfSPwP13L*zg1EtFj7X~pNkXmrr9LBe9@1!R8QZQjkv{GQ-vgF3c}8Bb(2GL*~)L!tVcxEWKF{{){RCpei$kT96h1k~}2%N42q zk4Lj*=JAJ^3eQ^MgZsCZ8Ou03FKn~~;hi(%N9Lu9mAp|9gVv1vo%X!GKW+(T0XAv8 z7Zt#ShICwF(nt!8A_AW;)@+mMy!^yZuy%ei6rMl8Uo7V&l(Sa(ZUxi)Q2kz5cDg(5 zLH&V0FKZPBKi&Z)p*Bq|lJ4rZ-2L5B7S5&OqM6DkCnU5};>s(Njx}4)@2#F^huc>SFU0%VsJitd&Thj0G@x zvzIqDD6Ncw^l0<(%HW>f+>XU+M+NXo_wCeggaXvX%?{$8pD72LY)2$3sFX)$(zol` zj?xj}Dr`;XX!I2`i~j31zsCyp#YrRNxduVy)TtFqm=zW3DzsKPv1iuiF*VPiuXi;u<5%+)AhLE& zcW@g7`dhi46^!*+x#scI7<6~CM|I&uNnv_zycbCw&)DiX-QYz`P!0=jpJ#{?JBcnNGR z;>h9!2_s{RSaAnmJ7-v3UE__%GKeTLR+Mn`O%1|xb_YGnkx%3;s^cuYlWm9Z2=R5; z0Lr>3Eg1+xmYN>%jehH58=m8!x4rR;-$1s2IZkn8e-*S#;i>W(Y>!oLh)ToUvIwjb7`QeV*}&rlvE#bTDAMRslQOt>+T%oT>p@|jrHXlU zj^3s-t1>>Tfdmy89tn{PWK7b$;Npi4yAipn}l1&-2oA zRp2(9c&JO%`Ev>@_c%;Ik7gi-P8tifCgXk^ovj*VBcwf%|!Jyq@OPpP2 zKk!*;DpyB4fir)C9Z1HaKcl2Tg6G<0j+`=v;r>_h3+Qf7$|3@wP(!8ec}*pSzAz>@ z>J*S`DC|5F5pT@1(`4Xktz2iF-79tkzv=NtF##R}0lF9`!vR)NS)NbQiGRAo4N!;` zw-Zwg+UQ2R;L6M}1OP%1+1nXnH1TjmODQAw4y*Cpv9?LU zlw@QbVdg{D)WRCHK+X77!Wl1cjKb(%}vFm4*w5Vl`c zBn*2;oCaDO+23|=>Z2wqEoQOTWmtPu%8u3*V;lIeXC`Jaq~k^6*yCt%-$uXDA`VJY zEa3x0Yu>v&W~1XU8?Q~sF^0H=%x;!io{Q-p8G&8{j*0}^74F&@b`0Ti4w^vA?C z5IH|L=Zw+Om@Y8r{nJ|q2+;krEA@bax-L?_yfNga`Y6F_q2}khP!fwX5K8!;&HPr> zlA=0`ql932nKXJ6VvHfC2%V&j^@C)bxx)yh0_;y^aIH!;8+LD>xd5{9g>kvX6CdSs zuAt}kC`x9(Hiu*0*Bru?C%%4b<3N+LwpAqEg+M!dbbmtTZPP9O5prp@_?-lNm)23Q zjW-u%d!FSy=chY^ zk&WCd@&0OYl(&oM<~pZ^rtv~yaV#Ggx5Tzo=0pBhWMvXK(n`x0GV`LqoAhN{E_mmC zlO-YrTU4y|W^HViRzr5Bs!6VAclQ&K!H-Bm_2Pn%jqo0f=1(1&C``e0PYdPr2MPUg7FkR!ADaDdMP=80%$fTiFu1t zE4Qs-7k{7d=wiF5Y8b&|OoJVr6CbpJt{k}6z=p*{7#Bh z-j3OR#KO)TT2g^u3fG-f+7M2iC`6#X82EP>jN3t6k@7vOv#?sPviMc{#%3BSpyZE zDm+4vh%#e|MR(OjcxbUlM(6&j(0!y8t}~$aR2e03+esniZyK~oP8xUY&2eM+Mz@Wx zsFO%1=Drg}h7gWcnMBN?VF2_n6<$ayuDJo6h5e;8>kw3i$&enjms_W4pk_eYrZ7fj zrs&N0bR?r<5#aS3kxqmmbojaq01xgcVUYS0dUE4`*SIWOY1nfPz}@0rpbBI-5r6U} zWekl1lQFG=mM5+bp75-3)u(C|91BhpM4EKr`o}o7exP+<%1^~s^ux@$EI2NY z(w8d(oi4|_G@m&cQp!V&?AG3^CnyN3l3@3yOELRkHfBHN5i`(lB_LJ7t~Vz*g(gwU+6&JsOL2wkzx62$LC z^vb9y*^I7;0qKqcRDsOzQNEYnyA75ne|MX)x`-h8>kXTxY%+M-qzy*p$;JeO_Dl11pJ%KE1uX`HD_BliVZA(ZRL+EGZ#kiK@C2Bh9SAx6K{V{8kyc+@P zFWI+-6Vwg`_FKC3Z(&%D5|+klC6b&#jJy?=oCzz7`OL&u+u#ftGu8kX&KmI!I+lGL zSGN!B8#CfWu~}*yHRO55KNxHyu{IVDBY=x(dd+DrAOr_t9^wkTFTV%TDpUOZ@5o?V z)ZeNpw3p^y(xM!*4;}zzS!g%*X4!s=6c(IHJy{p3o4*Z4D$-!ls*DQbpw~heo!5+J zQgZydQAhJiWby}!I~1P2zY=H`YH!@ph}=#}8|}dj?K9QNp#emFGH%Sy*2>!@h4yC6 zG5QRf%7uiHg;R0Q4`>ur|xDXdW0F zAbf9OD{NkUpzlNE^3?k!$USJTtQ>x5lGQ6_g>AC{9eD6rpK>Yjd5T}Ru&X0s%a~oM ztXi9cFSbie%(2`>V8ftHuyLG26~;ZK@BP7B)HsgE*d%UU!@fd*aIx;3xSszEJ;+;u zJhrpacJT>dpVZTS|AM~ADwpXzq)$)9D`32lC$o0sPMn)6qrKS73Fg3ZjBrYk=3UxT ziN8Ap)?wx1fLJKJ_sE<7Lg1ee+ZtoPip_snT3X4z4Qv5U32?n7BR0)rQGK4x)GfMoxfAGX=4FfqK*Fa- zeF7!VFSpL@GQak6+s#;(iKNs7BbZ-1LDVTRIAw-}>(eNPa(-^U*3~51S z%`c|81Wsc!qIxNGyM-G+KK6r=&{B6YGZW(_Mpa;3gJIUa*U_4(;H9!xLQ# z{hUAQ`e0VKD{K3|SBpNt?^*u$4T;CEa8*eeS8+tGcwv&$Ub$1Ix|av#Ji-#ixuEJB z2AHi!OZM-<`8=#$ zeCsqxu>FYeAPz%rc`;sxHiSJhrBMT}| zUm6}cic8Q`kadNpU$kL)KPd!u2{Yz{rPNC^=ix$8prnmeOGHk3vM-{(xTW3NK=bk- z!C9;XNvsO_(-BX=M-G*ii6jh0SZph|nE7JRGka);Y7s*mglLV5{0Rljm8Cp|ns*Cs zwjz=v)FwdElWP;YjwG3U&S0L(D6g6(4&%jAtRI~jko1~A_7`BNl6P*TO`(U8at80t zfnb5IF6{RtAW<47?a=&7X-H}45#l8xSx^2vw|`&M5&R)1z*@WN zyg2Z>_c~?&83bulaP{ym8vFR7^ZPwFw}IPc}v#kF=dld!OFFL#HlHK=b@mtjPe%G(Tlp}<#lQk zOJ}iTVNDPHuxlY8)X%*EO=CKfX5%*;#`!7cq(pYieTXPR+fd5*k~qhQ#{`5oZnGn^ z+P)WZACZal6KoM1Gw zeym?(xEyNm^9>g>IUW^FgNUHCpVeN*?=F}^{bikHH^QGabIeW~)Lzy~JinLI5(B68 zsHNx9i%TcrB4ZHa^qppL*k9O6NbexdV&_6%b6 z+}avS+iir%GeI7!4?l^1+hCZ*hFB8jgr#Md@*ZO#5+X^F5xB_HHh{&MuEZIQ|FF24 zncJbyz3T%jaW-Vh&o_UOC@ACRwqKAcHegf<3(NWyBz@k$79>>e%R~bY!$ zz5C{x-$eS^97TVN!&&{piPJ_kgqHUa0PQlC{uJ_wa1?$jRc4n3ux5jxIe7!y(&L1k zJUEavujQ7Uff;KXQUFFu>M!YbRy_*DLzH42pPceBjgI=NHu>V`Y>O|d(#l6Q3AIbj zszIsQCz*nBDP+tRD(0^m`9R+JnL*B@~%1j44(zORVObkF}m z`NM>)s!;-|#fH889N#9P_&d@T`heEuUuesnHP530{@Xy5WJY`!h{i4k9!Y_Bg>LCOgMk&&gjd6V!{$lzLu#?lMj5!OEhUp}%2(#c4i4 zqqSV}xje0pL`p?$Dp@amW@N8Gur8-lfzK2wLr=;2j>5>aCv22=vrkq zi{uvVq66&)8<|*Cp0j?#8>EdY&G4(Cu0d4hwLTepPf64#2Xq|W1ijufQ4>XuGKn4v zQKLN2@YN{RppFB;gsb~`o(Dy=Lap=aA2P*5_i1pF%2P7jzz{r1$iX(T*Z;I(Gca$) zUdEBBWNQbZGc>|a5hk&c3vL7kuRxdw;MZeR zgi(Coz)A-PiSowf&a|)gRb#RuN0a@teQ~|hCkZn%!%@%a03;J|Rn<`pR`zKm0-Ad| zWNG$J9Sio#oI!YwcBQ-vARcE$@_=DFqnlIy$B;*3QzBI_^&zRKuwO-3s1u6xWC(jz z{>VYW!;p+>eq$%rSG4HFFm3&1gf)VfH6_hPfPqVd+WoKfv#3c@Yf%eFC)jR?~{1kEkm8s(kL9d zzm@juA(-G%#B|W4b_+3NDJn60xnsNTpwE<1iee^Kl+EbCz3JlCb9#??7da!&tAD7z z@Rc(2QkL)=cN9JHkTBR9Q z)pqMa?d#Pg6Z95!L5O6P4OpYSNJ9fBSpB~fh+F<0yMFp5aeau@&!ne9NAO`d!69Q` zNiB?VvNfpH?I3#POP`1?>8kYBg|~y`!M&@{ulV6lmlf?Jor5t;|255LKf-F}nojxT zforjx&OWl(JFr|1rfIJ(h-taB)r&M4gnjCondSv{*>C@%FP?M>WTa^RZ^}8YxQcSS zL$GRH%jacDk3X8g0J>ZzZy2v`vyuxeH_RUU8K>C;A+Bs|Id4?sfN)Lp!W}2QeYHIT z6t1O%Tb|u5?D!%Y-e@!^o)tUZrq1>}2+c=-(i^fdiT;_Ab!c20GzN`27Ubsw1xxUo z?O=nPbi%^jn7Gp~3av(iMS>1mqu#o3{l~(tnJtlTSvsEb170HNmNfy){$n+2N-)mo zw>{4d9V>tIN{2~6_=b8T=!anM0w9s)uU|mEkk;~QZ=AgNB&v(wj2q}wJj{~EP`uxB zkpy25SG z65+OR0O&-RvM3ZB$Nbg9mu#Owv^@wCtYUybCn3FwdKfRAyNY>D-d~i6Y1RSH00r6e zhqtNf;Z3vfHP8LwWjXNkGvVBNd`oyPML~HVi zIIBWDeS?qNn! zX6hRb$-}{|=h~JXh!(_zaD)}UpP+UiERd>zXSbz3OJU{&3(fr25tD^eYT*M3s~ST| zjR0?F#s~<`;0je08@_6+ti79i!06qLIQp)5$&+)s4i89txknI{x~PIL$3HM5j68Xh^)ASC9D z8JZ|sl+la$#7Vee>;}dMcgx`l>H9_%OeYS=xjYQ01YEK?>`Pd2ok!p?1#GZ;uSLKR zeqY7r5Npi_cIUrNj@arw9^!hRh6o+`JkGtaO*HxYho&^I=9s1g*}Z&fU>(FPM2^JH zuo%IQY+<+qrmIvfQZOuXWcB~@wH$HB*;+A}zes<(A}7hbGfajrgu~EkMhy8r1p!6; z5><&FhU4h1t~#9Ka;IOW$CfrOW@!IZTg z`wTYmZ00dmoyQGmDsf4t_g+gytmUb(8v&go@C3kwFM`k!uM&Gc2~lmjt?)4{m}j@B z?x{vHfZKMEj0@tG2m7t9$e8#F8piie_);ddu2Z$r+MVztnM>$F2|xwW%q7K-Eo!A0 zl2uLC zMeS>My^z;0ud))xIYZu6;%56*I2Rw**^x9o9b@^Y7Tka^RcR%$&yZ7eo|smlt=s1@ zVo;4Sk%M^~#UmX2mqkXI9`7Ho!)O(swT{!y(VRP!nvq2h1Pab5HXwy=cEu(5xci|) zm@=eNE+mi=;_TZUn4CplDSY3e#;Mj{ceX|=UuCmc1lq^8`qn6$J8A+BHoL9>ULUsodj86}qeV#V0OqBJ@gy;^(U2$t(@1bBRgYQ*$0@ z7WpJk`0?sOmpG%?D(`l5X>E2 zujACX!YzTEqy^ws-5rE|zsBUzk|~D*l6fK*$Yxal9Ip}cd%ok(y-`F*qLDoAsgg?K zZW-&nSYyV+8plX84G@4!B{mORGK3Eys|rSK{)Mvi zE!ezxZ@|QwFQ&63@-KI(zzmKJc*tO*46-2GZz>MlkkBtxyH!d^e0M7SA>*(n+aU}? zJgUo~@Yc^&pcO;=K`L>%@dp35i}14+{@b}R3mq4fTI1}YB)-+C!y0I&?BJFP7dZ+U%Jx+$=M9MJ-0jSPb)TkB&uR2 z5W>fO$5oS*)JGwG*|_jPU{RGHpdw8mI1U|IsW_|Da^--0dx|9;oAduI3`4T@wPwYW zsS!Q-^yyx6r&EHDWboYFW&-|1?68QuJPUJNoF~Io(8k28)he~f_~mX|Myz#4@y*V$OSorvtYN-B|{Bx(+=J9u4TA+5wqR=g9q^H%m@#Y12B-Y6EI25!k z;~Ot%R-$!t#)7Ig7~+P9#d6 z4@GZLpg*fW5;gxQC#6Mo-rCEnWnrpC(^#ftBDdm&#IN}gRs=yrvqvO0+<~yO3V_;u ztxL|;*5YbETzj;>P)~O9>5Sbvg2n`Z!2+kLPY~`E&V4O76+=SW6xU(DG*P+1sh*4&M`Y}bbk*=Du(=OxB5WWZY8aUhI+H(1KP z(%Y65-hD|Dj!=*Aysd22Ke~$ZOxH8RcJV$b*xFvA*V|(WQ~^o>?P33&-Q;FycU~Zc zgb3I#rOjKrzQyF4lle|MJGcTP;5+=h^e~6eJ}|)IaK%}V%=uIfJZFuUTR83S zrVcwgjqx6(GZ9fr`Ae&8JU8N>h;VoUx09Ab5W%7ORbEi4c{w`ZVt{0t@Zb$Z-90VZ ze8T^JKWNYI!)=Z5nws~fy^x{yb7v)a=xgq>8`M+U%viXoOv*#=9WAKXRW}Yy*M-}E zlg)5_2#bOc%+pmf*iE76&XGD+=T_N>r=?Sdu`Cxnu+iCb@iQhXa&EBOWB>&eXN@c3 ztXH?ObTq(hnGKTbm_WSW9kStNq(K0HdX7^lZkNLwPV$!kOV^frUtn@#JG#QsQ;Xo` zungz4R#zjUY-S8K69#``1gdhP_POu=FTy0>!k#L%ci^#oqKLIkR;f*#9)D4P4aO2O zY}&1Ikn7w4`><)%85}G9v$WmL-{H}M4H_$#Aade(dMP2wqf_UlN_K9)M(70$H>|B&1eU-}ODnuK}=ISnrUP<&M2b zCl-4E)iVdh$HH%^%Qh-szHlBgmTJvBbm>o}a~Di~T6iBgtq)cCi)Mrth7~m-#QT;D zS@wR$!HjO+BSkrrFkLNy0ivqo(8hBdFt>0%5tq$2^{VynbtyYW^y!+VmHJt?iPfeH z22$=fN#uix`9TOguWSn*G5)R3O3pm zwJ<(%3qe~{WeytrtoQmi({zP)+;*9!2QbcOaC$tdRL!gk-^JtUSk4poJ;xLs-wAiC zn^YyR6kEvf%2sl}-J*8U$I5qf^_%=)*a2-}lwA5?z5&BH@{BuK65ph|)1N`#vWoyJtCfXbBd z>wV0O&%hiF$Vy@zR-3@#&FMGQ*+PxdWq922-=01?iM_2DfzU$}dC(PnB5MW=FAEeM zS^%IxU%xuSS2sz&C`_bOf3V&9p$TCx?24f@FRX&2#}agjT~5wNIXBSUX%*yBtlAd` zJau1Z(o{n_GMG0)DO+HCG&+f?(#NvK+>`y{7}L6zrVQ&#iuucnp+3qDZ)PFB@HVbHF0p8_4L_}YT3vReV>>9TYB(T;bNw`A@r_lGIPFtNMPab zQ-U0p%j&NN6wTR+Flowq2(dm1EL3E1-3qMe0v!sqee*Q@Ff6OAS zikq`OBM+$}MC~ghb7GP1{i1%uw+jW;J}SBwtbW(=N{_raX|`^&?TcZysuXoYS4u3u zTXNZK?tbhXOR*>JcwYd+6Qb7ISJ&^L+nOcU;!3p9j>msJg^NPW;gUc4JQufGr+V@hK@#BL;$5sH^{dQC% z5eT&{BnedczPLg_v;fnTpHyOic1sjXQE>GmL;o2){eY|4b2>r8DR|slg@L=*fk<-E zK3NX)Uea2IfPrw~2w6>*3tjjHMj~}?<()<|)u__9!`sFSCqUnB>4Fu8<<)Dh5MXOi zi-y_VB{8ce+b;`b4clM3@7X6;(C5ra@Cu*n;g3@0SGGlE2V)4R)u4T4wf#|5JcG?> zhiaa}n~HOuj_1Cx`NGB^;1vwNO1o%Y8VyWFQzgrG3tK3Pn{>)59b3qZHvl^tOs7c# zZq9>#q~F~`UUnVxx9PJQ5pkgwLqxFRsDNKq9#MZgI#`}HrJS=>upv{CxpZ#}KO7lT z(mT1vKa+VC%OF-~Th)Y^kqEg;cEhK5QVR>7*lJXq=njO$7MRwAa=P;m99S8VVAR}y*!*=3 zw1leu{)(UBf0`Us2gEm9?$t?h$T6VJW&t_x+Zx2>1|hikSrKt5i&*<4X`AfwAa@|9 z%FL3jY+HCe|Bm^=ri1;I<>g@YbrLxHL=!-|;8M_gu7+;;$kSsu*^Q|K5+_8Kg<%pa z3(m~-=~9Q;g!CuEi_)QMKJ5q1tbSIu^fZ7v(4*B#lS%KC3hzRPUd^X%E%u@pV7?ZO zJhSUcisL6QIVSq%zuAZ(p?3$eE9;A*bX$7pA#lZxbR6f&T1$5t%ShFF($tOE0Oz8E z27G2d3F%*+L-`Iv)pv*pOW!a@Gs?N-{#prD5_%cxxml?JtTHlm&U>K66}etcCo9af z!{iHXRjL=WpIaF;WEzs%8TTc=HaKK)HbDFfQT#hPM8|d=Z#3ii1Qs2XzSS|Z4Cfo9 zk)Fzvu~5O?Y!v@LN_;2CA<<$Bi{KU$DkrPq_rA*)Gv^>J9*KcegvKeLyVm8>XcatB z8C3(xgHcRq<}Z`X@#TvmbN1_O&`l=U%}a*?%p5z@H&slSVv?|aV&yU@&iO2>>=r|jAj3zfyso=C2eBO?` z_Vv|PMDtkH8RGw{PwdnpQ=6ga0g^9l(`DM1@$ChFjA}1l)pcLW-DAiw0-TtGbSxFc zTA*lQ5=u7IWz`?qjKuSa5#B?Mtb1C<2y|SQ1l82g8!<){B$l>?0tLKGb*WY4+g`{H zXv~L;;R0HzQr5H6hMNlv1HfWMM#V|EDgq{x8#l6WQ>U?Eit0iErk8EF?&7YVNiUJG zE@hpQNi0NWNjeZTMlNe&xw=S^g{Z+RP3z}n9_~38>Rynoca-@;kRAT=HnZ8X9FSc> zh36S+R?eJM9f{XZ(+2T^@{lCJ(g<}63!eD$hHLn1tN=TRpPJ8@wrZD?f%HJZZ=Y3Q zcjQalsD@MQcuqL3lOJDQs9Xsa?8hsrVOIT_FaZh!&9b{Fou^K`+;kKpwNXk+WfZ3e zU->_bvmj%M49D;~U-J<9zAe?i+si$eNU!aV>NdS76OqEYYG40)+jKy=YzMNJZWl?q zxMQ3U8&Fs(U&3gz78~EMzAfIX&!+mm&t7Hd%rIdynrfT?Bzuh>Nr7>M9Au$84{CgiW-s@E& zAHOg6lTUZ6#;8)I4k`)((Xg0Z5G28w!hrUG5XebvpC>la{uUl3m%^5u^^cHND@*Yw zRckg(x`bq6KKSaV=(ng_4vg?^WIH?C#vSxkt_LxYpO+09x;Wz3SDMA`SGY!v%HLWE z*Cztdul+U!^D}$fnfNY9Lkr{^a-&mI^KBeBfa<$dl;-*fIcHkdZM36M-*bK^WUKBo?=6s_QfpQ?wUMn#zQBOoIY3#;Ip>a!D z9z&o^LqYOB>6CmN3dQd@NUStHZFZt|{$W6XpX)l!@(J}5xF zA{JeRepiMnL!!YgJey{0bFn+J#tIAe!QcX09=lkxcEwwiXj}L?8mresy*m~{THP+# z5id4n$_=2TnG&;8r|h`|30b@%pbd0<)i^OwJ`UG-o&&?z0-5*J^OHYGzmN|kz%}fY z_K|dz>OwNm>b*+Qz+4*`YRiK=e^pod#jf2m_q>~`SK@rIOd$)(V$D%`F^K!MR02I_ z+*!x6s_=22KhWx!_7!{%*0mwz2^~BK%QI!e}=+P}B#V&by*8)dvW9*p@Zn zNehb2GIh9PEOC}g>WmrB*iTL?K&-wx@COdR_7xvo|3;X<>WLf(g;N!_pnXqxgzw2o zfC3zZCm;Edbk`^L!$f2lPDDWOtQ(zZ!S{_bdrZ)pq_GpnSp-|XF%ZUdKd+hQO|myp z*4_dIZ%r1adWtlo{`zq&n;RP()8M|%`(w3D zd&>txFNx5^x4# zPFGDg^%LDmn4e_3!8e*eYyF{FNxWhbd zm5F!9pWWn^al@agx!Cvy!88%CR-^UvYNyat97)z&7p`6j80p%k|sukHt5F>w!75N(}uHiu?31LOw|R`hOKfz>oqL`s!y4HlAdLGFL@mkHeY}|OD2WA&YPlbT zT!CAXFxKRz+zF${DbTL4z5roh_5Sp7({z*ls>cXYAG z=!kEpNutAPfG+3ngaUIeu;`s=*?~OvvT*S`lI87^Q>wO%2>D!YH{U^Wed_|;8Vw&r zBlADB5U7v|66y4)5@wBByHN|#bY~*P8xI}HfF3*qV}|UGwJ8k@bueXc6<2`pTTkZe zg#?ppPR;B~jB^F(56RuhFqFt_>Jb}4)mG)C#T@Vs-JTaYz!P|2ICRnHkU9#&_-Y8< zbP6qCP!0+-cKyhi$JL9$n*Hf=pkq-#If2-MBtkBUZlcqHL2t)Uv_J0wJQ*t;(atgI zmMD%z;j&T?f;dKfMuL&Qs=wqbgrthesR6I}chSBj`KxL)Vel%B9=G9J7`G!e9*Rkk zhw6>U3xjPpKDod|{R;Z6v%_`&f!%+|&2P@4f1-}IqpZMpY|wsviCraUtxSg5xHQ7#$@$(j|wQhiB z0i>iDg%Rq^ybCcpbm%iR0r4qd(9s_#w(iW|GxXJQJqQR8m&)XEI}Bpe-5{~70JEl^ zZC(oa<`qgFiVK?oPd+pP3a{tfl2Pi7eNjvnh@WFA`~KVqPH)IzeCOK@DXqdF^q!&s z9G+3mu*+wkq1TZnaVnRQ2@|9K&#zG(vPh=BoN221m&SgMg%;|9?Uce6cNt9Q6*@ut ziVkjOO_#=J=~*J$QhlzJ$8PBJ_``Ip-i?eW2$&fL)$io0Rj5Y_E(w7)Kt@T>FFb_# zt(=0z{sc(@v>)(fZuRr#ub^vqlXQpZ4g1DqF)x*QV0^-9oQHx#aWNuV|22SeDnWnr zmnwDwVX4486-f@&1_Oa2J|q2878tA1U(xzp+k&>d6wQ=h8wY?0<~@Yz+^z^~?%j>& zgG{r~w7ej={HKw7=3UFryzlRE#8MBFO(O-U)8v3@k4KDp26CEzk0`U34RD{LMoCx% z(O3)qcMA3J2Dtz;p|UDVN)!Oc6GU8xc_dN~mdqZ=0%D4S|Hjiq8-ix#qXc&yzDgwP zTItGjh!j%KB2q|vKWc-v2SmI*q5|X(k`hj?uO=%Zp-jJtYp5vXc6EgU++eE@bnpSz zz8LiOS{S_)7HZ>%Qwlg!6GoF??X8+%zp1xg^qA=*2+gR$S|=NYAfv616zCth9pAh5 znOb2SRMEX2r0#rK&aDgPJTb~;3XjhE6J}}+vE-X?d>l7Et~fb2-?{y1T6JD%MqKBj zJDrkHxc~*io zQ2pL~89G&)Lp{^S5hsLPz-dWnH@HV@l@_Q2HBbE0(fWmIb%$;HMHlrkG$0aJ+Tvm- zPEs(T%tgoqow5H5yULl~s7$lcLMM1T&5I6q1cy1>m%x52e7QP^7_4eM-gA0fWMd7OfznOOqkJ za9CrMg7u#n28$V;0hiAcLM6T_%tYC0Yt0*gm7V`tqg{Mq;3-dOlJVNGF-AxRvjmLp z;)l}3B?J}C$iORGGxcIuQEc1UY53-B(FiDesJC=YX%iRA!6`po+}T}rqH&MLj*<-S z?aO4R9mGun$wujr)(X2sO?OtT2pRimgyS!}&q8}1LeA7x_wYZbCwX3Ayfb$jse*a_ z=CcwHiM;}fD7ZPQa-TUU>h`j)-^H0x~D6`nz=SF`sG(v2RH4hMbM z6B)noW!XO_lsN)`xC(NpdcCx<=fHq3Ghz&$agB2N)~{F>`1KVAJt--=TqdFt7_LC2}{)TOb1t&E6 zFV9W{Wy<)_E@nyfk>R%FQjl(5T0sTJc;y_JJ+XW1veB>AAMgVQw={OAPtqL?AelL- zWizQE>cKM!UcFUw`F5ZZEAz>n2c6CgMO~jSR#oc8n!Uce@-;)Dlt@dLNtU;FM%L(K zkUsb+01rQ8cB%NW7g66s{AvsTC&$7~BhV9Uk0%5Gu4q{)zP4uYLpyCQB)`e1SJ z7Mr2poye;(0C1Jg8D_#TKAhvm#MS{M71&P$6bKRV)nX8|$H4=_e>sKKcU;wvRu66A zyQU8~;o9E;gObGMQ)?MzolGVC{V6$onPj^) zw#>wT6b&`~Sd%GR@Vj;+!gy3RXTL2}8rN<{?Kmyz3aBPv>LlleT;}cHK4VeZmOZ5% z7W+5tk=nX2#uNMbg#X4+o%TG8Tqf`<%R8-#DbM82hK2~OW9Wl4Lok_Gc;|? zl44S0SNLzgW#*mTxbJF1hu3`EZY1k3BG;Am|FYPb_X3Wbm^Of_2@^~R#^i@Un@o>K z>8A6nWXq&cv)+FmClY!$HF2o>LA7|ylqUw@2Q|;}vHlXXCpWI4R3_jcPq)fqXUX33 z{g-gUp#T*$0m|}s_cEi<5P~G3%z4!La)m12p}Zu#3Bromp?(6rEU+D;z<$j;(#u>* z^Wxqp^fvW28LAU|C&#-3PZ3xkJ$~#XRvnz)1^(9sX%tTo5H5>4CJaR)R^UD%M!-Zw zgiFV)3>aW?(4-(jqZ3+j5s^qY+_E`JA!)LN$g;l`rsAERD&ga;i3re{$FI(4WrUEW5XS_np)Hj_ z3S;z4VJ20!q%Z`HEI5b~loW)LpkN>YJmKP}$djR&b;5;>!-?7F1SglzmnIxTkW3iD zBRekaqpO4@iJK!c3NUZ2fE%Ra-4MXQo30N2juZTgFXq4K|EI_vDm-6H-0_*q=iccQ zIJ@1B@0qW5I>qV_kkw-I1YiCwmL*f8*_l?+dE%f^QT}b7@1`>q!E}P`XXGr}$T%>F(k6ObYgL$7|=VDmHRjnDIm!DH&R9 zX@LYAUE&m-k=-yOsEICI&aRIYkQApW77)V2Ns$?j;Jq>61~O?CAkfJH1p=vhwZ+sC zI(Q^mK<5e+Rv@OZAPk!l0vkq!QGfxW3ro!Sh~vZ?EQ%Plh)n^78eez-6c$Y6#9L@GFA3-O=T8RG2{ z(*F=NTQB}p`H#B)usQ#qL>Q&b67N!ji+?sDY<&)=DsL-r^M8c=7xDbh{@;dX(u`{1 zUl>N|Nl7Uy?XWaO%2g_JyL{@9gAy;*Q8+3Ik{wfJ1$6+_mD~YPRXH#?E2y*%&p8Wmmi=AB0Q&AS!2 zd07Sr|0vdd#p=b^*L9YU>r}HTp9ISCAIw*mcYX7^d0BVy6}S99nJ0gWSo4W$pf0KZ zcvznN;s2l0eK~Mzth}l>`!cHj_U?Az_H~_ggKJOoRq^j;<@Dm4>R#5}-S3&Z`pdmz z2EsfrGdh|T6_vSV%G|QN58T<&?16i4_vk)w@4fe5={DUp`}$U5a;03}bx)sJdtJ9~ zr&fml-%r*c_@34g`G4L6Krzom8$-oAo|h)V04d%3=8MsNH~fm?TZ`*z^ITKPVxqJ}Nr}>u zl9G~6NlQt`I$z5lFiq+|o-2m`N1ueX!PoNKzoZ{9&FkKgFdY7#DRA>H(lr@yvg95q z31i;eOYwTMuisSPtkK&!@ON)L)j2JF;x)H+p8M^U*Y}lPs!@$sE52KCz8-L=Pkl%E zdN0jef?fSR{r?b(fqjS1+;>^kdg{8TuP`ZD${aiOwA0>JyA}8UcigS`)F{SEp>`{- zBwcC1hG68sQPG+;PxmyRP<@xj=%irye=$$KSSaBC$05IU^HBV|SD>V%B>n%B|7YMy zR~ow&Hz}c%N=T>PNS&v9m;OJPCtVllG}_m#!~ZYj|AYKLkpKVj|4{!UlrhPg|MwyE zPryHqe**qr$3OZ1IsPBWNx6i?a}QeeEt>yd;K^~!=icR0sccdzAu%=Kx+LC`l2Vf; ztkWq`az0t&IYHXGQ|1nRBX+90|8tpR>#aP!|*C+F) z_@?`sMnx)Kvr^#g)=?nOROUT1isIc0Z(I2Pt0zM_&)4$j$li}2NjjH^b9h*9y42%4uIOs{6#{chl(%ShcYv!pYZ4os5e~%|E zoBvNUdZpZ~yC(|VK7NfZ*F{$=pQ*kXYya|^Q*jpm_woO~C#}#fW972&YJ2kc{D0O) zd27bnH`w(Kt9bW61Yw5k|6{QKzyD$I|Mio9{y$&K{^RX7isGc;idUURlXfdl(rL7F z;F_eeFN`RH7mOSO*A zDyTV)w@T(u6kaF$^E4%1*btZs ztkVkiS|Sx(L={-4k?03||3_yN$kE4142gb-;1!N5&~^`3t~-X|0WKmlqSZqCaEOf9 zNnA*@hPTIXAyIh4(TdiJSC;5%b|3d5BjRM^IF7Rmi;b|^D9T{48H{L*IExWoiQ_nq zqBzpR5z4Mu;&l;q*mYepLbxkS1_CldI7<}H?iJA$?9xP6c!uS~oZP;nZsSfia8LQ}hGuG8$ohR|$@*Ak&QBVO69;5yBS zw!|wVLX+k?(eD2&Aa03g!~}k<#2eo5%7)TdC)te+rLj)2I~zh%0Tn0NrG-PZJN^Jk zV7#3Wq9~feaO#cx?qEnlv+zp@O@rU?iG>3>9m?(6$j|cxf~sR@W7K5Kg>fAlTa4 z!ojd$Frse7KCjoM{SN}KD-w+{)2(X=cK>R;t}U-C_N&*mxDF%gGTaCR%Lm`D#A{um zY`jm@EiSwu*lUSCu=l&gjYM(m{U0${LAa18&fk|6yP(-I9Ah8yw`;h5#xdrC)n2Yx zO!gXUKeYS0v>MIja>=@L>9b6F%0eKs=e&X z1si9vA1tpso5g;l#w*^~>je|KqU#3QjwgUvE7}}8{^o+cMC-Dm zor%_3qA`|yq*@rnD}2#jFWKwoC8OcSC^g!J-Ph|Cd%b{WFdFUt+$!ShX9$QE*uDRQ zKy4Pn&@spzxX+U&3>@v+Sqx^Qxc-q`MB^A6$2v0$vo<7ua?D)m3$+?q3&|O79C{&k z#UaxEd{TJ35H80f)gB20QIz4vp&de4UN}o61|WtLhhB)?F-Aml)kqjfd&kt!GDrh( zpC?TWq8-K11vK_~f@TKs&SI;jxh`zzHH(E-tc^~zR}J^qj$&v>*%fiJ818?t&~SFo z;Hu$d;t0dVh-Cj39b-^(-Ov?U*V}tkBn(|U!XhDZ6kS(n3y0=O0|gFttsO_mQ461- znc)?C`NASp0O1P)G2)OZWn>bGe$R)v*U$?wC)gE-UPvS4^h?J47Y_#hCgG)>_@h8z zlfui#3)eV=iZLGv3>g>5iQ(2xLSUoltLKBWLsvuklTsLFp%N1va4c+~-LX2Q5a6 z(Ny0HH;Pwi3nvokKMGMjWGMdVdckZ=1~kS@2srVIE*oA`Rz7f_Ck+R$p%LdALWz7h zkm7}H`GNa97Oe4ls&YjL?(A6(a+|))wv+6JxR1D|TIDcxhG??-+9d z#bB>jp7H0k1eZI$uK2Q#l-40F95nHc;utoeKnvUs`v7@0j&DU+6Nj*%NSt`b(RIf> z!MR-H_#_V9(Yoa1p}-EU3`qop_9_84n-Rr`9*(TzV%IgkVrFo$A+&~r5!oGFVlAY= zbzLqO4&)f2F-)G+io_tIOB_Ymz2dzh1sLF5u2HJyie1?d%;l27nayTDKR-W2K!EPm z&vjj(AJ>IlGq`bRObs{UUO+=*M%);~jjtC?c1PJvCX4MRUUtr_iy%SJ>_8iX7Qwx) z>viqxT`rf)6|;ea-Pa9kxDa+nF>1iThGMWEMIdNJMP9EW4G2K{cg12P$zyl$-H zU^mAQ(9clqr#71nku%qY!NwU1Y;b>Lv@t?|T|ZKfL3q)m`GNWyi_vDIjA#s61owBO z{m`!h@-GpZ0~xb7i})lKS|wY=h9m}I4>pRm*U5i4ROE&`Mj_WY(r$R4W;7aY1|uq} zk>lGbf%ZV2=<}Ru1NV8(@WJg!@|wv+Q6|Pl7cCZ}{kU8}wEPgg%MOJ&8mwkr_60;6 zdI9LphI~BI51SNTkw^%|L%MLE=gbvjgkT8#To?>yUq7%JZ5E@&XfW4oW?|xxh@;VJ zH7m0&5=N83T&^D(O(qj%_jP435hlWDI^^I&Txf@aJPAoby6)^g$*v4Hv#tyL1PKHF*eVcHhIoq5QbqGB$P*jJwIfO<0$0Air4G)^6{gG5V2S+ z_5%nH8D_KD3`meX5&$4btyZhmf(Y5sM@S6_2na~X5FTO-sgWc}4kq%Yq_CiWrII*_r@XL&Hc7 z2oNAZj2J+}W55vuj<~!Kqt6sWh71{Uq^OS(MMgzNu{>wq;Kq!7guso7$@=IpG&D41 zgaig8H6lca5J8fJgd{a1MvNFqawJBd4vuO^jvP61gwzKOQq9Q7$Ox&dwNciRBuSE_ zOv(`k5)u+plG2YBO0}e)Co*t5!lI-fG9xZ2NoncD;L`-|#o$u}P7FRd;C6&XOEo1+ zKQtvZ`>{s~`LN(Bfe!|_F_sS+TpVfO#^7FzI1Ye|$>IChn!@#f z+t+WJvGTn=SxH6RlJ|A1dBxH|GFkt0Kz`TFdEVvp<`r|^-s{vYSKxVrUEf}+uW;wO zU!HeI@lLP1bL~S_;ND%XZ$^RV{#~wpy@xsQW>o!Qt$b75Rke?=InCOcyAq zT(IkP`#KQ!jdHD=mPTjZrNEu0_y*C-aaPgQ%IUe{UaE7s(zn}cKJ!M)CnuZ}u%~%t zuxk{jK;Av`s)1zknoo_jSM_QYU(>wVXO+Xgey?`fXN8x$-{6X|E{f``i#tAf_N6-W z%AV$R1@3P4bu2fCswyt~PVc(8KJy7gcigwrzO0*nd)I**i0)E-Q+&0G<5o((0#~Hq zdUD`}n!?@ev&!|{E4j|Tp0TiR-S;S{gSurulJdOI+jUNN)S2S!>%4QVl`l_U)5xfa z2`FWky%go&t}42cGJ|UdCUArKiu1glCoUN<^SO69pvJeC>U^GfqiUD?<2u#9HTQg$ zCIdQ*nUz!BQ`~t9bvueV?ifY!u4KSOQM}9L73*%d+szDfbFR8&-{G~Vdx!7tJABWq zd3u*se)0Y7m3L7T?=HT-b@SFdbvsZ^bv|=Bj(eTwGu1u4Zmr_JNR?W}cgaO|3*~f!fOQ}^{b<1GBx=C&pUb#lE6bj~u2Gz>xoc&tvF@4qR<-gC=BssgUYq4QM`FDU-8T{zxd{U&zyOgJXwVPhpeKyNLk5UiRvOnmBW(Lg0o`fNy|;K zuirK2&J?)Ui{oplV^S`aN=R3Dx64;sF}t-T!Pac+e{1W*trxfcf~{Y(=709G|4;L; zX6t2JTM}%o+4|qwQuAA9{{Md_dS#B$KC@@?%xs?K&eWOsa||q{9CxM4|2Mz@d4)+% z<@txxzQgKoTe;nK`P@4tOMp$eHLF_qceUH7Zbfn5J*S0#TKJc9nPXj(k|jVXTKJc4 ztDn;oYo6k_+tqHPPEBW4RlRn8`*EBl<^Owdc@mey|My*9*S))ar~F=?zL)EpeO5P$ znOk?xJhKyDOWyTQqyN8oDO5i3+Ecqwb&j{_u2U!nG>TJ=Wv6+n*RJ&xL{$~{%bf=~ z_D!vMiiSm%68<0Sqg1Ko&U2bubJw|DR(aAcV^KMSuceP;Ukc1W-BaMIr9_2_O4I+} zn`z#TZ|=DBduG0tC`R#(Z2IzLSsv*bJ?c2Gz1w%xE%`+;Mu9sN?|P{|Q{c@jzWK`y z%~%=DVV>f(-^eK@GzqU6s=vm4PVs^8Zjwyxygk>Qv)jUQgWd z|7XcPs5?OXv`Y_Lty%X2M)j~&J~x*hwp#OvGu4{0q@;SOUh}z1^<0%Z-f2_?Ug^2& z|DQ&^)2y9drCm-f#pTpeDBkIGr+Am{sQR#vRKG{Hgbd}=RRxo0$6P3`oWf50fK zr>Z9_QBPeGc&h59dhJzASgg8Sd9uP$J#pz0^|S@|L`C%kg$2qg>gfv9wX*VrfRogg zEnT9XtgJ{K5CuhLRdubPoT#1-c(RIuio!i@k&<#M01HQmXTV`%c}M_87{STLsu4vT zArM$hZ)Pz>C_)WV*f?O&VIL@g*sOvRVhy|@K8q0vp%x*ACm|}2h(NH&<}E$q5(Ao8 zF9GP_$>4HrmLD9#E_Uc+pCH3VbR)$F8^purtsJ8tGXoNNq(A%=D;iM&trdQTTOwSO zr0IX4p(N~5Mx9sd-1!?`XzUSV4iKiWN6Ln3{+tk4mWvyTyqGuo*bkiO*eOZ$c}u5C z*yDit9;Bd!U#5WaRK~b@2C9hB$M)&dN9@yQjOPGI&l>UTV@vR2NvsmgdNiU?dU1>D zsn{VTL{b0;tP5Yr!W#~tz>{2rpz*_#5HOmA@Bk2!B8VDOknuFsJos^s5X(i@;ntQD zEF4z6@ITbdZ=%io20|v-3Y3r{1akAnYVfzREIC=CC2G_J0{@{Ip%)<LPWZ^*$UI2+fiiiajOM*-&0RuQVCZZe-dL<+^aHY=% zM`8;>4Be?B%1{8LBI25@D_RBmNa|N2s(oZ*F~Igi3cr$sIm$Jh$nIgd#rIpn{@>?D2S24?rDL9A(&(V1p^~2 zST44}g2E3YxXF1@f<*!ZBsqwALj*TCd|+irqDhqzNrb?_6b!5f6@;n4gD@l*F$5Z$ zm4nrt6oLg1%7Va(IYXxPKn`WDDCpKnh2IJzv@s(K0n{GB!j^IVP%{wYv_Bqj(MK)- z0Rznc8AUK4#0@7hLfTk8oe7YLY4Ae;Ig9@v-fWSXFi2ts7*rr*r@|5yMZj_7KMe{} zM+^vRL-fSte^p4q#DW0A*z)~XZ4iNyCms+(jQYYfVAiX6@Vf|M$p`YDX8dE-Vs9+(hhO>)KL@D(?$?EcwFVcr-%VuQ30?43?x7y1D_b$h#?0>nqKAu z7Wi!7LY*H_fb#{M4NBnC>$s6sL^X=whY$EH5JD6M7~1 zW5fbo&V@pNz#0hn%yiIU1{ea+XA4e`!wfXKXafLS5ODwl&^W4CK>$23KRGPcIOFIc z3mMQNWppi|5fg_S09>K)gbzlP2*D~23XCYgl_Nit|Bm>7cmzzG*Pygb>l$A&XfbOagL;fXJ`Jt5H01XKrAw5oo6#yt;+Q36pG zkuugWv1bo9fs70r%;16&I;61&%M=NSDO&2%W`Z&H9Az-4fEhS2vq#FEJvJb`bYKSV ziU2h&;8>$imJNG=h@*uR6>w-F0F_S=5^auH;{Tsd6L1J&fFDqZQ+_Csc^H$tBX@trDKUqYJobD*|rdxMaiY%hVqdMGyzam2Xy`A|6 zPn=g2bIIE4x}Da&u1{HeUANOu4iSh5#MYR>*0|+`drm!>y z)mRX~OU>4}Mb={$L}-F7nF8Yi;t*PY)nZs;Os|<3MQG+?Vk-t`Ylj#KWKTpB&ZyPd za`oAA)qW6QtJaBt*pdkWg|H~DB-aONc+h-^aAw3{E5}fdArZ-z6ce)bIpazaV}eN$ zbBI!6ENqEfmXcnxmke7X?e$|kqAiJbtc^!AEUqLl1zta1v)7o~j@k~HkgNwx0Wpp< zuOH%@Gp;1IjEot7H)ll1c&p`j*+wfOiB`s`TF@(meSraiMY(tY*%wW8jWtmeLlGv% zMAIfl_^hlYDO7JN5~v8SeON*qWU~Rg%kyBpu|RmDsAdm0R<94 z@KD1GNu>cH0Q&}fRpS79w5Wm#BXlqmK?7nI03#K30G0xV1oepHgP9s=h@ebPNRXWt z090oSGQX`peArk+Oqie^HY<=gLWm%E*ujPkG`JwwfC68nqM)F7;s_^xV3Q>aETBNb zh#-J)frT{`OmF}_R#XuL5OHomvz1S%C)WJ|Kbi5Pb_hS4?W~yLku2hfQA7Cpr%B*Jz=tBq{B9T zpD*rgv4j#w7~w+?HpJjT2O4C6ri&Z{VyGmQd*IljB?nLef^dMr8Zcj!RLEdWP-_NR zACXTOhYODIjhFz&0E97wFIXkvlBi@$8j_eqygdpCgIFN2AEFN{GzQroG6Hny5Xmt| z4T${tQS(6yGPB8Gu@@|Sy<9HQ{tL~_2oqZ{8B8_;#hk!oqL7-E1W`n>qSq|OG}dz1 zvG&T1S>lgq8|h5YX6pqM!eryoj}Rsrwq{;x=XeApLC6G%tIKF#Qij-?vgL|xf^eLT zTa4J)GQb%mb0n~?o2`H<5`^Oq5lOW}O|B$WY`tCuOrhbC!-)d%00}JE@*(?D+fm!$ z02Ur!TYnfT+n8ZW>=g4hW35@K^KkpK)8WJm~rCf0@sKq1Xl#Rh{i zYRO^VoFTwfG{Z78;3Z~60)uj904W@BCIB1sAeGSk?6#;WVv7dkkubrJk{s4c5HSkO zhZ6~AFetBC3`l$eb$}>jhGmVd84T*DDwYMv6PB4QORegZGJvh1@yN;SbtB;CHKRQd zHQ>V5ES6=6Zq1fUBwhBEz-#7;@#In3*FdsixWJSg(SrjWVkK zt$~I)a^BPs02b7kDWk=&czI_wAZ7tDUb<9GZ9yQ*jcG}d0Y-@2@dzXOm@x(zRGN$s z{qO;E<3tlLxRAgTm75SAHQK9)I6ce&!wW2|kb)Z%x)dErDoJQ#Rn=!t8oC9{C?km6 zwt29D<~2o`!C>fsgD0{p=)?fS4T_VX9kf{t76b?nJBZ1rR1^YGSe|Z7mW*`RfPTgk zG`PS59d?@hPy-DCF!ROB6DLAD#wg~X;iYMc6B+DfLj^tDph5@$Sn~i1C!DZ>R8&)x zBQ*<$_(s^qsOOdu;u*mRxp3LBScF!D1dvrxqautVgd&U++91{tUX5dH5nDh^h%3mC zk1#0YVRzUFaOntbmK=dXnrjxyVzCegbA_W7t$qFf?0=9$K1lVd+MgjpLhx{XNg)Fu zh1fs}Swjlhdh_!3HM&Lj=2P=jU#@T0H%f5DEB5U!*0%?BLUKZ+NFiECAyZ8A_EMdF zS=Z=Jk#dXfndUo13Iku@7@&PnXTYK8JPn zus}AZWPI}C2jdV}7>l_^(b^9R%MafsFjBD(i{knmFZXl!fa@*_;Mh$ zp@oG#sH}Zi*oXF~6vNl6Xm;%wh9d`dv^JbsH9{+UmmNbfTRSGSHjH%%frK`EjiJpG z+R)n2+E-{3utC;}VT=fu2m`V`tmP3CtqC@?uh801%-L|9$(V#S+Z3~|BH|Pa3&U|q zoQ0t^%HhO5FfP%sh*RN@AGTmev1oLKR(ux-whQ~=lO*}}?Px<=hK+?ttPNdZC|bM3 zCfS&+g<%-Jtk@%AIEGe9ENMPs2G}1RKSB|#EA(MUE7}jI!aK9$hx+x`v>Av$M1=h+ zM}(q%*%4-ctjHz|V>i(SbV;Ylf30&F5lC;$mJkR*seLKPA&Z=YJX!$>HqI|p*E%N<75Ox1=? zo2@TznOrVli(}$JKjL6sNkUS?@HD2jn?x1SxF3AlV2( zvN?fdlZ9lHM2bM?OO4{ogUY(p%)eb_ULMrFndU_*kxGs)isr0)IliX3<}~YOnipyJ zRP*+|z10fO@KzGhUXdnu52QJeyQzrDLRUtumGv=KrcG6Wey zSm6JcJQ>0f5V9aazyJgcND#_=X{3dJw{zf_qH8h`h9ljytdwR?f!m6C({=yuPM7Yf zbvKA+<&>Z1MJmlxJEfWnms_6q=-f#>&9krHD5uulkjk7_UgtQYw^!Y)`~ULPI*d*Q zSFLL0CZl^)q?OMUis}H|KqJ4*S=iUlt=FvPI>+dVZeK3lIo?&BcX>ro-BS%Dv*xKY zXYE|N_o{ARmUZEX3_xds4Fu8H9PT|s_=nwaxJ zP2})FO|bc(CenOR6Aye)6Kd@TCit)H3^*ruec^-F~ zp2r;~&*RR~^SD!_BS(q#6RARP%aLjSbS}^+NwOte&9Y08wL#M~*kKA0apY|FNQ2 zk)jWO1_qA*kJ4s|C~cPLX~tUjx;~wHds#DzVk=T8imgO2L{Aw1pX134u#h5yB5wG9 z*OL(xAv1s>0~JX4AcF_^8Y-^Jz>xtMsVPn}Kr$eM0y6l?z=Z*yGHhVb2JcwqJuI#} z@4GWQkn@Tq-5h7C6Wv)baP!w(_qyg>2dd`(Q$2~n)8}+^-LD4TBP9f))2#v9djp!(apT+ck`j!zYsuXb36qL`QKt+|{F z?$W$>Ja^{Kfoo5JxgYSSGxv3!mCL(z^El3-D9&Xp-7%J4^O@tgD%drudzY-kPU;VL zo`2d32gQ5lT+1rB!|QJU@)cC?QsB0df7{BFs(qY`Z0rMq_^dO+^spU&%4P;0MKJDGO7$-5M56y+$or!tn6 zGhd~cD(%ua#)7q{G6&)*EvtNPE}4g`_|9{;` zN#WnRLE--`3IDdu2>+Ii6(NLw3xfUNKbW;t@u@y~w#e~A4g%_TkwOqXVX9F2Dx$b~ zl0g(qpM)DN$}sT*n2%Eg0cdGzc;1E*u$ZZ#&i@NRJP6vrMZO79eqa-ZnSTK2IjO)w zi7dZn$%X-(tD8T=M%5TN4W@qpidGjK+^Bf2rwG*nBsu)A2NV;oAx%7Q1vF>CboWgU ztRgV81%qEe3pAdvVAsZXDWk>(W$gVawJD2eP7$xAhG)Tww242U$qrOF0YHYg@;7Oy z$k9`oNs;mciPJ}!I)E&qgERig6FU4r#Rfgk}ZWHZz19;f82aN*+;ESXLh+$gT;)$>@@w-!|%HJwKhLDKq;fH{+ z?XmL%oDYJ57qCa->3?WJ=Y|=w7~_3l0fR$o+Tw$ds1t=Zh5R077-o%N=Xv~$!5Z~c z@dP|U02; z-pCmfNZmk*VChG)2M7#UA*6~Z1qou{n81r2k^PXcre2zYscrXfQ$%qgz@u0C4iy&Kn9Ed3Bm|4fUH6FH8XZ-K@AuSUrT~Uom|#> z8Ycn^2$_?g9f2j~!~xEq5$VB@1lYmLF4*G$4O%GiF*j5ggQf+}$H+t>hsYRx9(D%I z3IId^=V3u6auDOj#=~L)kRkD${Og3<0Z4La;a|5MQ<$3Qcvluz}3 z!@H7>D4+^&;zur^f-4t5{3wEYL6$m9KPI4tj~14=;ztq$AavT0FHWJu_e2dbyf}gq z3gV!Fc~J+%4+$3fyqI(*j1r*~KJ3GV%?n`2@L?2ZBrpRSH$HsfsTWmb&WC1(91!GA zn-3N6QiKXqGkn-&2{mjb=nr=&@I!>Q#oIKvsDg%&lDAeowSWW>y|+G$;ekQ}OWvly zWXDg36W*p#vqKqAuDm7VMGYE3YH!0xAOR2pwBBM_!wNc0!M96RfaP#O@9hwOBS!_S zx8#=#fPB%#+i%)}hJ_{n2N05h3nD82UC^;|0}49+tJr8xH46ME5k(DSz(C+X&KXA# zDM5{Y8;~%wODO*@JV{w26#q@oSu&>e|G|#@RD^*4HB}ujASM1!5Tt~SI9&LD;0sWN zAY%CMH8^^0ru_eus%Qch!#^*M87OF+@NdRIMHA|n{{_$>9jNmEPL|TGI}qJfe5+Ca zFZ3VQAs=Xg%#Cv9d$CImF8=?GJQ;x$8vzKuC~cN_8-WQ-QMPFC*$A?La}xjot~Fys z2TBx1FjzAduwimT2cI>wCkdt?Qlzn48B9HCB7$Qjm?GrF9DmGJ>BZY#ZJdk_kUM*3B7Nj^dEPWMSB2Cy5q7bL zSVE2wl&mdVhYy}2FmCYJHM+oXBC!m-_2)I>59}2)gq(ljmh!w<~p#-FuVi;9)u8Jki2)x5ozy?!qTtrrK zhS0D89hVwhybvey+cH{Jayiv#x^q9Bby(L+^;NoNtbIVbqk<{!D%Cu_%4*OmsP!`l z)UE%AK)3b(5Hzs$mH=iPV8sBkjDX|+?V3CV7_BZT0{DNM0RrVcLWC9j|3ffPNbyFf zP8A*ezxbx6#tKLcVnF@BojL;z5H%xhF8F^@0hLMsRqW`4#{b(fvd-LEIABZ7|Bo=J z5W^G!J|ywv|HBukC_$9M)egS@w^>k(h-f-gq4|GH#e*Rod35&h-RihfC>kE z{~uaFWCsdf7+Hde|F`N35A3i47&C1+ERI517Ird#_o=|2|s&!h$aVdM|z?^F7Ul~Mm$NJ2_pT6cj z>N~wrOrs*-uA64>`nP8F%)WB>Ro$zq;+tX~)J3|tqh6|gJ(%LV&)av(H{%7u$*ns@h(&s6j7?w0|R-)=lKR~<>YzNT5;?91!6QdZ^LvCquwwxY|7rBjS= zzPWrtQEa8W`M1rSv1}_7sCHn^JQT&d(nL{g#mu~;t5sZ2^Dl^}a^~fB&*gIFZC&N{ z&e6S9B&0N}D)!wJ?|S-Yn%CENnL{_qbGzqwxvZS#cF&dQ-l}O{-bOJ$bq?KIE!WM{ z{qpbL?AyL9t>W@7-BD$(G*2j;neJ4pxGH|GI4iHYtd@AqKaJ5{kEd@2uDOTR9AEPl z?mWlwnoGQ9(_DePeRB`1c+I(T-T3m~PIbJfT<$=fUVF#C+_hG5R(j?fS8^3+@w<0c zFVE5{4|aWOAQ_Ej2Xv}`xenYpqcZofs%n&9bg#Q#Qw#rcsm_@<^DafVJaY%`@=y1? z)2n(j17_c0t(;poFK33yeFMo{Jau#C+=SA)@9H9Oz|4T%6dJZ45B>VK2z*V^||i7L-%g?y{egS9@eO;;+^jJw>uEu z^oU>WE^p%-@0nlTzGy!8@AguS;Av|2|A1SEFGn@*`Ml|hGkSNw=-%qR z+E`k>s!X@eVU;&~xjoIlwY*%fc&C>Kbr~>kw>6t#^qPTWvaj>iGPlKXP#Fzuct20%y)W^_=#qX zFHUdfIHObduKVO2sNOThC<^4QndkH9%pB{Gp19zsuw2aX4(gU^K2ad%n{`K-19Qg0zFo(<&QpzhILOm$_Huc~!WqpReY&NY znz#FUnu-gTBhx6oQ%ufV*Uh8i!X=mMJnMLlhclX6e?QLKH_ffTU)lFwFBKOqSF5R7TDhlthXQ#ymAa)-x&r&TV&CPu=)9b#Z`mvJJ>sawyu9xC)w;8K zPH*;gj&~>CtL|pqPK!{y+vu6Qns+;Vv+f4bbe}2C0Z4CC@z}8LU}*ue0lWe@0dULz zmsXtbfV%8({=YZjZSWTO6kj#(nmOMNxVxF+3*13dU)##XO2Vqa>ZA^tG^Kg80#m44 z9<7_#H5t)*O>(1j3cTh;3ZiG4 z^~%dXoTeMaxAQW3ZrQc5BVwoSe&~wOp`Z)uwtSg+y73Np3?{&|^VpViBj-ZyOb&_{ z4Mfqv0}Vvk8X&ofQFQOP#=^eNfxlGq;O?p3DMlFx!vGR7V2FW1%mOwsOeN*Mb{;VRS{_a@%Bx#cK+>t&vjoFcsob8Z>uX%wPIf0 zHn~+bK<}J_Q?kP{VUN7)UF1Xjyh-2+v(bd9KUZ|FARAK@NVizb?QdBIG;S66BiZe+W~)< zb7_N%9xf(uVZ+5~3mLX8amw2*`*!&0OtBBRZ;7v&49@ z9pk9rp#sA$uSY1#)AxwV7L_VmtEx#)$=A*I?oCMqweES^nzVAqDBkgGrRjFFaHw6tNvXgl#gtNu5~YPG2}D_Pvvb41b|YiEDS>k5%Tym7 znVADS2aZuMa0hQ*j{tWt?Q%;a^L7K8MfV7&(^?tjndZ${JczSUoVm`*J;f^q_Ab6@ z7FMgEgn^=i3D1|DNevSdCZYc_KUv_3%?T4uE^zYHWRI;$3$`YwiDr(S%ysu2#)301 zZ{wgjrG>dfp?SS}w>if*h*2aTXHozr8Q7SZpEK|B^j$Mn&f30v6x7}QOS>%DVo3_N zC194k5-PGT7c?s3+UU$$Yp-gNPKlQ#KDH$vmTFiM^IzVO%BtMH=|*v0bLWZ8Y+K5q z6i2Cy5)@k!o^r3*fviJO{pFTOB@b%tpShYm6#KI7@+{~P5P3u#NcqZlOgyQYJPGwXF z+*hP%ZKos(BmshC3nV4{XJ5ZaxY&?jF*4)7T*5w{$y1#R;*Rs?rBFsNs5q}%Zv^K5 znchg~%(|IHsZ>!BWe`1ck!mXRlU`H95qC9hN1*$#Gd(94Dt6Ojr9L7jofTTZW&y4*GgF=g(6yrq+#aF%z^j!+q=Bp{KIL_Jj`z} z#VD%z?SLq#C@S0+A^;#FMdSui5H_NpjYudfr#FayWN~wS1+ILbS^2iX+qdVc z+r+=^E?~R10`dyn?QquB(!9LpGX?5^9C-7ogI_KZBuJ2yTAG(vm7`iq0TsO7R=`#P zMSX9o%S{vLfVK@OfQqy4@*_RXzjUt}E6q2E>VBDXoGyRyaqMfdQg_cB`_w1C<{yx! zd&ha1ig$bkuTQs|m8$!YqJJT6ybw75WiQoS2u=u?PqVst?)88?E2lz~zU08Yw=D>r z4+epw>TU~So=Im`b+-jk>S^5#Vgpjcf2r!;cX;)2?6U!B0%V8nhZVLTGuVElDUFtj zq^eYH#ZeT+zr0Raxt!+Gb;L(ANN4N2~*?1J$;e>6+2|ExVAdNqAE4pJ zO)4r?TV>@aRd=Lv3sn~+CL}CYT`s;limLn3x_K9=ykhcOnKSS5BWupSAXdk|?(6xt zxs3oGI)Je0h(Jft9Gk5Oo6YuwyhB<+ZrRAwMv^)1EFoE$rS5$HP<(m1Yg5%$X;!6j zzrhs$Zr1j#IcuXq6nF2@?%pG$@Mx0+9G#k@gXR#o8T82d`o%Cs_XFV(l?YgSd= zO)K+SU8LY8LZrL`byu8borz*p1@<$q7~Q2=-5n{-+GkIJrjKKvsp_uke(^n1)QXSe zEGy4^qr04WIn8S_`XN#pohZ6%dW?9ws5Sr&tZCtFwX41R7^5NvIL_@8$iv(k`H!bO z)nL8?;{R4<<+KS!v6ZIF@wJj7MQb~uDBjT&u+f;1ASrXYPoxxx1WDP`oZ{b_r))DX z{$I=6W^Bsf?suQSDip=GnUuaal?)8>Z89rlX#UGw?zdOo|Br8zsWzF9GMKNja%yB| z<fYZ8;l4WOf6wWW!D`0Y_J|q@z3^3 z;>14NE6pp)_KKB3-9@p@W#=F7vd-p$;s0G*|8H|y*<4I)BcA^+aZq<{Bb-OV*+%tC z(>6}&^pUrXx9{FXQJhW0Q>GmIY~mX(HgU@)f_W8Zahs_0|0T|{la-@vAsk!i`*mMi zSj83=eTlPKJm-mdaCe-|x+%}R?ow@@P-nh2J5`=mRwye++1}3om$sL~aaPdV-p!Y` zSF!D@{J+rK{^Bg0t&g04-j3?SLCL%3*w;t>|2|dLtoF?L==shki8L#Q;*;h7`H(lL zi^C35y3>4Gi6f4wIBwZX_vqP^#2ya*eO7zS|I(=F?qPz0qYV`A;BfO_=5_yqDc<}Z zo!AG*)c?bA{|!C=hMX_oVDnIKsK1PRW9rK{gvws3q1>?3OZS?^u^VhYE7d1(yTSC2 zeL*e!b3^E>+Q9Sw--etv*!*@?8|MENs5Z#|^6Wch1I`sK%*6zf$#>mp{sB}onmyIJS-mO9B$QnG9JqLq(?Z4cij(V!OG&M=dojI%Nm%Hw%<|0Mw%P)7$Rc)n( zx!i76y6>`=&hr_}T7vnisp%dyH9_5@CMi*w$JQ&ZLLW_7z+H9_4YsN2md zE2k>(YVR#)=s19$1DtRGEC-P3c|wl|dZ_4mGi3OG*;R2C$KBg{ahIoyE?03D&pxZ& z&2{sxR=%meXPP-iclo?WRAva3fv1c(WoS?aRT)so_=1c#Kb(14InB!H59e-Flz+Pl z-D^;Hrub+j<3ZN!^`Zee(3>I`7uIX3W!h7|63kj55Ta^RIh8 zF??dQIfUK++$7*BW(fQO3A@l?Sx0|O2iD;Q7=fQK{y7X~OHb6I&&d~fEuc`G)+ z>kB5n(BKO#Ul6$y#+|&=eW!V+*Qp>-r`OIiRS|#zA zWx9aE#U3tP-~!EGG|ed2TnO0_!wwvzbf+tjckM8#!$uu3>Hwfl&$unl*dm54thP|f zzFvR{3V)v*Q^5hMbTe2&6}?@nszC%a3ZgG;|dwB*m{nlJAQ=_oi2Ewg8`i=Iz|3{J>Yiw zc5MV2Z?D&+iAp}6wQC`rYoVw{48DL9xSiWGRHXd{IbDTONvB%*L*8g&g- z=3SbBWHfqtd-J1T=X=MokLQ(_SH6QNTAu4J)u;~Zb>Co$yJcTDkC%};&$^2*$2_n6 zmpccd7%L-XsyTh;EHUTJ9NioR=D47s0SXBI|ChT_PIoZHMYrqi%eqJWsOthe!NU_g z@`*4{AaQ~VC)zjx#tP1zAK`7Re*VB`#26%8KTDqj&Ef zy1VsOT$B|lig{Zz56!z2Ct+uYB+4XFCNZX6ez`-TI-GTPrz!9vWhx}fAYoPYBog+B zG5*ZTU5*%Y#L^KkBaARY1tWS!_%LGpS8-NVUVAu~W}aqlUZkMzsNCt_?mvyuBGe+f z6tUyKJaaFj8cVM#NdyQa5ebk)^dQ1D#G4_s{;RYwm)#He(^|Mn2m=V=Mu;s$0&?OY z=JUkuexe(f;=W=P>0Gt1;~ysYq4xvS4@W4TFGNInGl@TIDIPji*3 zt%7)6@#U&kbvG|k$yJT(frK75*+WwgLu3zMnrBu{k*o|L%m83;YJj5voY)*5VBkUJ zAqcrc8f7<4^JZU~uWQ+;oy&bpbqBW2~Zr}}4_ z!4;#x9hV(2*a6*v$qqhr7(xdbzBHXW2maEYE;HIoHNW@<_u6^ZVI*_FAqO!zK;duz z9B9B{0~~ZXMBQ+E@`fV*pJ(0ItnPK{mpjxi`+5qz*>@z}EB?aqHM1|P>fX#0cW>q| zcXQp>%)51CF?C*T;9~<5HpE~98XK&wC+6N0}F?JoD9Vqvp+g`?BtdxxTV$p3f#<*I$BYy07F^qbJU1(>;>1 z%U+srd54>nECB{lE&RJj_o%0u3)U}p-E^k8NlI3ORz1~RvKs7FzucjC=DDW4)9V!f z<*qr;{c_hhj$*8)rmlZ_%RM^tnF6;H?)bcNLZ!Q@r~21)Lj7`w`sJ>3XHK*BmAuod zJ_B%ZG0ge@62--!g;!h*2WS*mt-Gsw-SK>-Yvrh>CMi!+w6@dKn$s+)VAgWGS;4Sj zK=Q&DD!dQ^`9jqTI!G7hl(_SJ_sGaRa~HGdc720ry2~@~?wPf))~&IyFYCDeB?Vn* zS3<3QYfH*SdV(yymPGx<2!|3+hM}g!um^D=F*7 zqC%Sge-(7QtFYwkJScQ;T?%tP^LROhIRB;9?Pf)$pk)+9i&9()Q+Zu8kK-&HnL^Qj z+2u($Nu)>UQHn1Q@3QWmSylIXx=Hh;QPDl!Or7}G^-lBhi6h-Ss(T8&XI^jC1@VvL zEF6hK694JetF|Ih(E9(fr+BA%I_+uh>+8go4RrnuS&e6aWQwvRI5(9E#&S2O@-wF$57A7ytke2m}EG%U0Tn z=o*iwQdOCRxEi1=mu5~Q!n3!Y!R}L@1yPgydCJ6+pO!QB{zY0aa_{JDazbmY-yMJ6 z*a?AX(9Yh<9I#5u+YnmjvboFhJ1}2K9X(7 zp9sn8iPzqkxmMBXqXqg-&*>QxCqu*dAI`@CWxa5S|BcYehR*JLJv*Vy^dWOFetr)+ zR8SlUKV~U~b2;p`7bd|#_efL*4wdx;i&G8|Xxh0w9h5My@=hbhtX>5inhOe(H#qZw zKE)nx^D1`yqJ8x)7aNCXtV_aAZEV|=&yga2)YrJ>rX$!7&xQC2teDpc9msZ)+w4Z$ zI&_C(+@sv($Ff1@Gzi+UYmE58WOHq^!MuSbP3CwcPp7ItXvl!zDhmUZDluYNE9_gA z5MGt^{)YENAuY3G09so+8jbV*3s&19Ht@kiS8eJL!!1#JCsnuLkSN$Ql0ys(PIq12<9mv13hUP41ZQ;BbUzrZlz7A12y3fnmq_|`)MG4OSVd5N17eTi@(pbqxi1R zW-Z@}^NA4a{$)YCy7Wy^iqr%dZ>YnK5ae=aQB#PG<{}NY50NiVPFx54RVi;^@Q300 zJcrSag&*A3-hky5xwz!^*s$vu(RLmASC$?zg|D4$eoD$RlY~Jn87rX}-Rmo6xsgf& z3d@PbSF+6VP6IdiaH<>K5$hppamrkS{v-Xe7TZU_cd`h@;myqjkgBW_+MBs zoXk5|e2qQth**#riCF{DCT0Wd!rdW+4NHGBF)-{Ln)Sp|B&;<032#Z3-hp)wmG|T} zecAgm{tbj|b_M1Jy0@d~UN)j4f?UB?55Y@OHH(FQ6~YaH%X)6^w}!}hTO zoeX6+4pGhW%Z=-GO?~vUJpTT<=2>5d2s4O+jV_ae@Im(VB?Rg5Knx(*Ba9{Ao76lQ zL%wIiNBGB|xYlD0_vvD_cVsdgN;qz~CoL`SEaJpZvqgBhz>m>BEtj4?5wEk2nlWj# z*Oi2e#=pPKGBMLmKiIEKx~InSyv0YEO9Vw2BIq+S`+ETJL^*EOh6Ie9Va`>-!t>Y#s3ZKK>q^_X8_8 ztc~LTzrRjgwbH@MdDMadgm7 z#x660)ZMy)r@*+*dkjoDD#ke+6DtN+-ve4dOn&l_MXxC3+4wws*Z{Rg5m~E;YrQQDkQ39uW{58OTD`LK5I@qe;7EW+OH zKWcBK!MS;+!Cnt_Y0!U!Yje|}(pxysGiuPKG;n_eI(!EO#nmTR^!F4&BO#|6pyQi( zN0w*?cexPFHk~JOPC#MNz|Ej<7IL8kAqz=VSlG^{u zSLo7XViJE!m2=-HfXjjtINO(~7>*2W1r+$0bGsr%%;ej+aYeo$QIz?x&4JLa&?lFsT z^mgioE7efq$|xld86xAcvgzU!`Qu=!7M8+%ON1>S16&M@fXoh(_@@7mv9vC# z1Y`5gz>{Z#y59&$1j z@B6BruHzaxLb>=LDzyvhT=VDnN@mJzWzmZsYiI2T!?Vjb9 zO46I>zuUyXM{8E;Pou8b7T1qhg!G^%P6)OtjU1JefmRalC^1NYRQ-xzsKfz2PHe=4#Lbf!9K^3-if*YPd_6X9~KCb#W+125Mift(Xxd zHK-EqFafq)5q$`=*%kOn5LzT9&@~O4^I*LIcP|gnn4)tjNzqB6mV)SFTb|nX?iz3~ z+>Qtj-wb0F5-TEeBco2z#)Wvyk$*_T?u+PkJJf=Mz5j6(Tf!?V%OvvGzee;q)5*c~ zRqAO-zJ;X4#O(HMeSU#%2(lpgE{`#hkjK!_!i?^=9laS zS5pMKYnGL8!b~V)*I)bno_By(j4lc$&(D;m8(q)s8>7~IVn|?{O&MP4HSge@$ZSs-%oR?rrH}W-GSka*^^uObS8W;WPdLU}N#;E# z{~Y=sVdqRN{QHmkMWonce(MM=fduo*rAkTz$XQigx2?bHQ$RT+9fTne8>Co+h=hME z?_qVUKz!$U{$a58j->GIAxV%TA54u=1>A%u$CJ#wQLD{*duzXv_DiJHFlYbty)!uS4oid4oRxDOA$zmc;)*Y~OP_-9!9C$i$jZR|+dvhc$iNJu)e5>(O+;vGkQ zV2csl*Q1@O!@PLh-Q1#U;tyoUcedB{dFidg!!H?~H5!5^7p*-6O2>v)HVFTV-om+(|?iI^z}? z^~`~w9?PVwI@=?lsVwc+57V-iDdrervr9XH#CmQJs}X8*or2PIn62;8RQ5QVY?arL z{oUk)UKV1hS8QWdXcXFUZsNX*fv2*8B`;PgKb{oAQ`1D?r0Uh{#3%W86o2^4V0j7a6 z9VfT_I^qkK z1MzFU4t)KW$u`omJ&HdTl>9^E9ct1ChO5^ov7-n|=A)F1%4VgvLN;T-D71VPUi>3d zy=5TkM(}*9obWU|Jcb!ZTS1qzhng8zVp)~-aWM{vz!%-KnAoIOIh9m>Mv4?4e1rF_ z%f$6VIJ&}lpNHYps?w~OY5#Ee9+uPw3Q~= z2_`DQQ5qZ2ChouZw}ya3y?c~{t|tf!LkJ6Dvm3MOmkSuRyX`w&4_uAZTBL+VR6-#i z3fcnctF0C!7x}~I)6pjOg}q84XlAae3Gd`xr2D1r>vmj|@fU`pfX) zGu3vnhItF}k#D5{*yy|^=rWxy=fKBQO{}-t;?Yy$Tz(y6onmDOuK!vf4K@u@14e+du^}f2Etz?RW731LLz}4rD;l zoW~-T&auQlZ5Z>MvJmqzl3S2RK;4&0Hr8;UJu*Awtho`;x0Yc79}yVYL_`TIFQQ+k zZ2b%RgHn>G_Ti=kDNE&<)K6l2>}tNvQEOQ;Z#(O{DLo+-JF`F8+wPFSQ`TqUhn?0R z_UnlW@IKf)c@suDnE8$ozYe&+{Y`cd9n|2ewY+Ex=vC@VcY+2;`D}_J_3TAjX{QO> zfD!2>gw3nc75$`ig67N?U<(JGH|auU*Q$-XjO{5g)bBn$nm9C5ocKCNGlmzTy50gbW5B1$$rMjnrAEQ=3q*^CmR+)9P8_8D@N}=k zr4n;JCR!oahYp+tnTt^T00+VkgjzOP7)kf^`-buYE#Wb=4d`0(JS{}R?O!Estxz`H zfCJ9Q4xZN;_Y=-D?#O(MzY~Q+9{lvW6RIKUJWG&F(L!lEP?%eU4Q>~#<18rx00h`+ zd8`ajWRBr+a!!gr&1oGXkE$pNp3u`e&@AWuL0=R?*vYO^98J~ z6-J5mqdzHuGfblqBQk9Gqy7^SrFu1A>Yq^2mjV6}D<#rFTkGZwAsbl3-^3aTLTw;o z7LR?uPC7hmHT7@A3K#$P$}feN;HKoAvD zq{#;}Zoq&!V|lVq_NV*$9R7gnLwskcuRA#D3U}OyCo}EOVAI#Aca5U@trS;#XiV5z zRe-c%lYsr}pdpseTWK39X!7C3m!U**^$(Gpph9m~nz&nxtEeIjdyL_$sxEc+0{Cpq zh3Z>3wjlGrelo2 z`uq1CTqjDk(D4?hdM)Aog&oVCBkT{O=;$oVSy$xEW~1i3_W7x+ZCcUUt4S-KH)iCv zA6vU_d<-gjP0?Q&(9THlrHxqu)RS-U%C)2DsaIAfFSArf6lFQu?xscSXT;=h2w3j7 zpLN1X=cM8aq*e{>I1|vRL^1(&(^1KX4QC_gv;zOohQn4Vulf1n8C9pH!XpF^H4O60r4&KV711V z%-iSN@{^4xb7+D14W->(8RJQA8(&`hUE`?I>^ro&py+RE|9DlXH)$F)0Nn}0_SN+K1ViF&6s!?-4~@C_fwW2zzr3{fmGFju^c0$qkYfB_oSh{I3veEm{*AEohP``09#V^A19?1Z z01h}-OBcC}}om`;^o10C@Wsf)>=m}Blmzy}6f=A_d0POoi{Eg5usLa7jk zzIJ+@z-#Q`c}t`}B(y^8`Y``SVcE)Z{x1yHimRw@DwuHU{(P87#iW#3Y&0|tds%U8 z6_ZDbI~L+f^LFbw?{%eDtmr)@9RX1=AvWBa4l3Ug#WxwYZ^I z$KY4uYP*V%g!w+Zjm##yvmXrrH0dg#_XJQEU4J6kM*g9$p3eQbfY+XYBMSl3p->xT zqWvT+MBbS3n7=3YfHS7@gY0Op0Jkh^IfLHXJ(n1+y8M2(!Dn9$qi0&a9&Z)jl>Eh` ztr#s-Rk1K_E}mfjzwcQe{fXq#e--XJ-b~{$xs0D3(|#I>(3PXuR*(@Hlq`hdzCYS6 zmIA*sU$&M6i0jJ4Fy9_X1rbz|VNP1F z?_t?ySSrU6eEWePTKkcOMc%-?rfcN?To4&f$Zz@C{CW;fSv7k>EDNT4%I!Ggb-x&h z-DY>e59mnS0m)LK_@aIDq-y(~DMF~B$sUvzb`NyZDE!BwITObz&Z_9Ve`LfW2s;Hn zi9Wr>LqM9*eh~9PHA4t2X@rPAgKMk-9{A}p)|#UU6cLt6I@WVz)eDvXOnUw+4&Q0d ze_>s#Jx~A!Lms7D^M_qaknf6awf$CT%_NSq0#o#e1eHPq^MVb;Rc>8YxP>UU2`s|r zFVA8z`2__XQ10PFD|}z})Nai^rC3BR1m9}~Lbs!&LoORlDUYW6L7zmh_iP%<&G2KxjezdCl9f(jD@lOV7 zWZe6a3bgMJS5yC+dha?trKeVI@pM!bROeois;4uYE~1p76UT6VmK&DtKF~?v#9`$Y zaFX(t;fvC#Pu++5L({E*Yu?Qba%An4_b?C(32y0H9*S0XY!c~NH(iMZ$p+I zDH2Nfy%vs`LW^`W3ep6{yQOZ=tOP3jfR;1cwNxB*%|XIl@fVf(X>eEi7jQFk9*hv; zhE{65gD_JbMB0MF>y3kd28HSD>V`*$XTkLo#ioO zP^j&gQxSW*-+Q;hsE*TlqdaZp`pYH0Rp`n-FHzmkOBsY<{nzMpg`r?r@pFUNNWj?a zk|Ib*cW{5{S^fvncP9e1hX@uz{z5uV;fGdwTt>Zj$~fIN$`>D}Xs9w{qRqt-zt;Y| z;x_c3_D)3)s+@n?zHOAL-9SspSFM#6nZ*43}^hZw>RZcY3a`LKt; zBJP@q!F0ZNB-DlF8e%Q$ro>0}^B`B#p7-ZMhp;PcBwGJVW5QM?3VzWaH56BZxTvv_ zZ~A=zRsHlO#-mi!h|SP5N`k^)DxRa9{1opd-SJC;rdbRy_fIk^U(I={v3L!xb?kdT z_$~e7JvJ_JZ^Bb`CXJ)ECR|`(puO!0_BfT0ic8x{8j&v}lxiKzTBo+cn9mF+Tpq;B z?FC7x7ZVT_4z8`3hfzfh2=YMHMVlr3y_#vwx(}!P6!hJ7rLBEUFecTO=E*44d7lH9 z0Gy-47}gZ}m>I5fL4nS3p8UK{!5Bo+XLbeKckkGxJl8RdjusN<6n$@E&YUMSW9?m3 z7+C3VSC|=Dn`>ahY*(9pC=O^(X$Kz0ND~+b7yQms$6f6?XI=Q7Q{w|uKE$MmX89RG zWNP9tu&4(FsnFRn0Uu&X2d$VvE)Tk~!4w^!$N~uJo2i~{#}GwwG41i-tDwgi-~2pP zV=Vf%pb0P!A@fi5?>A-_U>OjRx6G!)M+dhVki5Suu7XZCYKC;iXqkbQK+#N7s;;~e zW{j0?a4X{1aoVcv&=HCK0QXz3cjx=<6g$1IUJgUP17EJ*s7vZkmIh#)x+} zXW$+S57C&wyKk`0FETaW;Bl+*CS7j5*gyEzP!}zgx^g%x)lq(gb~opn+=_@bOme9$ zkJK%lf1kx&b%;+~xb5z&aGL?9KxA#?30?`L-(8rvNPVRm3}?Oq@&Xr0dSdM+qT=`v z2mCrCyL7La8>6;g%4D+v8on+k(%OSvQvv-*0qF7mM5-3;hgbYLqp#QBH{#*G4P)&$ zY@^9aO0fxOanJ02D_V||#w7-b78hzTA`OXyPl8WeHjveQI%j7Gv|#2-F?f`v*iQ5? z%RWZGYxjW1lNT^f39k4S4bHaQz&xq{=E~~TbH$BqjHqoaTUHpPo$T%1Cftj0xLb_b z6c&*#pHqtbo6yQNr97_^gt?|htk3d%3?&%ZQ4IFPanu50pBiBo=1L$>f7n&NB_ydk zKqWPrU4seSvmGMHe8QD80C|0yU;iCW%N!iAPj@3Kr^7UM%FUoVB~U6OHoYqur{HoX zxv%uD8RF+J?3{Q=225Wbf_9@ZT!7H8279uYCRUULTk?wf0dl|eRJ%wXEKXQncuGbd z2#Pv^6WWP^0KmN-aX@tM>USYZnuH}}O&r8&A+?6^&KSh;9iA`cbq#ih*yz8Zkx&~# zB*I$F|0G{=bt4EtCU8$72cph|-H<#J3FY-8EkMWNv`!>^$o{r23LH>1DwtGRX{5&& z%JzJTq__b4e1P=P&o6Gj#2$_n<%*>@gbnx#QsbK8k0T4{WIV$iSL`-wsRLGxV{^DJ z0z3Ox?f|`nc}knxRH*wiQCUqo!kFwKzo+4)G{hW=IOR<6io!|tt57ePN}Zos4>J&vAs)RO|uPK5$W)b{A2nY#!i^tX#c zVl!l~shW{SA$FjD!+>vdVq`6gJKKSN#KC%=v#zbN3T_-)B1sKW(7F=ScxjR*O8qf# z=Z@N$Iy=t|`u2I*hnEt5wz{QJx2^bj_sl=CSO~$SJ;uZU%~?Q^SG>A|-%>WyVloIS zI-f>Y*F1*@J^ERs!VwY?BKse2krJ%6mFuW|`OK|Qy_QEN!i75k=Nl_y*2?w9dn@-s zFGgJ)Z4Nys1k6a$IruNv^ap%sb&3pYR~}oIa`k>TZlaPg^=$)%i+u@{F=vx3mA#mn zTxxz!N-y3t>uhfh=H5pyuG4jmUqOYcJ5 zL~?IW-x+JhynM5trLuS)tbHOD+CAwUMFlrkmh^n=sMI$CnLVj~v=IBmV8#+mlEkDo zJ;te&B57Vbb#jfRIVwY97s*!CgLgm4!&PY6S(_W&epylQ=;o+psN-s|+}RQrZ)}JJ z^I(h?UmH+6&X=mBS>?EzcUBRuieL=UVkw)!Q);V(kv}=^>M|-6>jmTkOvBVB_vADz zENx=ylD9Cjnub1lyq{`gg7J@n<)QTD*rUK*NIU8Hlg}bgM%l``-1^-}8eq~TsXH*8 z@IcTyvx`PCG|<|4U~&5#Cf?G25KtFGU=wd_NH-W`uHf?L;SPao&Le6@VSEl6(zED? zjE~iqZPg3;p|=n>;*bk7V3rGIs;TTSYwi#Po{3leP4AJu=+!$U`%qDti4xk^ZX^~{ z+OL3V`~y!xY{}_ZVy1MbK_6=HiT6Np=keB&FT`C1#SpV&QJ@khx>WT_oG8QY({_U$ zhQv@{Dbr|V)0o`b7S#O0#UpM_&iaR9o(TzR*)T1iP-2umShf-ypQM2rkW;xO*jat@ z$+_~FPBD;ZxuSwBaxoi>1|ibu;)%x9+(K}EUdP7&5k<7sK}^My+k$UBC4!JtSX)9zUx zEeT3dO>C9TubP=rnQwX9Vr^!8yhl^rm0{7U9+t*j zd<3JEfM%%{#vKX$klKWGB?ydd!YD`^&rB+`SQ#)W5qsY<%Ikl zs2rr6vg`)#o&^~(j@V#XX-QF(1ynFmhsaLhT3~`DKb{RJnUbY6m zRmZ9Fk=DXiyOXO5O# z6teLMUdhdLX`YX|ea~gDCH{J^vM^cw+N^uvGJ~Ww+n=KCE>)Sw_v6{s&kk>BhzB;_ zuZV}$Xdhkk^-E=borC6bv*7M>!5~vCXs5XCm%!l;-359s^^jj1_e9J;Z^zZ&x%RRo zylpY(^EHVL<`0`i;QHZt2$x;cxGdKMAg@EPMKX7O3;EW-rK7%pTWIEaQc-r&QKRAl8V zG_AlzN>{vrQc`yCf_<$NsSPi40NOym3RGN{35vX^qpnm$$*!Y2u#8qioOaF@p0HnoIte066#LnnvMlx?rM@lj0TmD$qg@|KmYLK!!BRx6djtTqWgHn z7y)KC1eKJle}e|oyxy4?s+CngZ&^aQ5+JTNnU0f~RfOWCdp5oAdIaYfssiaG8R1Vy zp_^RD+-ndCvmL*M9!bJ;k;aJLj5MFoN8@tQ###?p`m>w`0@l%h# zJ+n<~!6#t-j;-bd@ZQNCLN$U|%A!k|_L|`hITPUtc`m&cRPOo==#xDOdjuQ5y1nv2+CY5$od{Kd?YdLFRb)YJN%W zQc=}AT@V3h;wUF$y-yU)t9kJIQ>1#Bw=WLZZ*GGkJ(%(v);qfTA;Pi&l~)Y92oKj_ z{3@)%rybV_!iu!ex<$WCX(ZwD-_AC(-ML1QL+maE6c~)eL%Ki6GF$u z0$<~hgxlCavl1^_M=09xYvIPIM+u3qfp2A9dzh>;0Cb|5*S{dZDg6P)9KcOT@W>SXJ#-(s6;;GL`F zHON75ULleZOMXihzGp);m?a3y=IDx{J4fO!RkXo-EQ;Dx&-H8jqYJf=o{@W^KCQ%# zP}74R_lx<}ICIOh%t|a}$a`cRBHNFE4Jy7G78BP($673L>4OP&tk9GC-V&^~f6+_S zki$A0gh%ayWJ9Cl>K^>pnNt+DeMbj`M>WE)MkEaH81 zUA}bdI+It_18UuH3pJ!JwN@~6!>eciY!@(5MI%pk*^OY_U6FIakb>ydp_z`}?~7dQ zjqs7reA7CqX}J?8fflntUcTQbZ`D@5m97%l!FfPHB!|wk_htWn0D9eeMg|Y2%)Inj zrojhuR4HP%KGeXEQn)zLxk{jU2_#DP{ut|Maah4aqfvJnS~B7rL&M$}&;-KC99 z;f&6YpZo@#hJ6?BH;v{O+fqCgnb%}#gt%MT7dpM?ZPtQF>zR;sx%Wphl7V2Xi;ws< z1{(T8ZgZF`H^y&x0m7~|SL0tD{C-$blm|cvs$LZe+31O`m@%jDhqOO?f$nXQA{FB9 zYx_ant%ALiQ=(oYa)+G{c!&1$eJdMk!GJbxmtt;AhW%z=rGk3z>-9Pr+zz)0yeT%w zqnHDF80znv1+_8!%)CM|xi&Zdz+2YKv~2P`%JX^|YHydAOu{l(Vs2r3Y>EjIP)qw> zOnwaO;tRw>lWJq8!8=6=Q74jMhr)1>Nn(IYlGxOBA&F#1YZWU#5|1ik7->)Nh}5kz zwF*?cKx{BWf-M2--p1x0OCs%c0?wPQCa?5|z|OM=PUVk7lrOEhCi+)rcUtO6OP|;K z>01I`MeizM;07Qzoo=Gi4Pq0(f zB_ha1#Q(v}&}k33YoGxw$aB$7QogLSmp_iq9O;hn{DfHzFm(tk>A;vRbh5jVU>Z zetvLNW)iRfteq$_bg`8xwFY=jdIa|*kk)B6gpBs>{5W7o5;?z8BLa3pDS6JV(UDm} za`3!dgx6G#G>pZ6yW-$C8Kt@)bNn5Lm2SMRh;#?vlh?I{$b6b(pn)*AWHrdPX9d7_& zcnAXALk%W1$rub(WJz69l6-GXSy1{Cm@W4{&*VO zHt77mpsD^0qXN#hi?9iIgMGo0&<+4Vk!3up3R1dJU8q(`(bEf1>-yccj|qH35wqEQ zfLbgq3?ESp>}`Zy^eiZ2IzI7qhfkrYmUx&?3J@@@oG<7?au3kUHF4p?f9edU|DEBv1mp2S@R2F)XxoSTlTX-mi^eOIrEZem2p zYbe;c;Sdt&$6F5q@hbf{X21XlB@Gj~%QwBf3#etQMjKXnn?&jHr*P~SUC0Tly6=ym z7Imx{#tdqvcLv5m`eETMYVNR3?O?Y%*Z!Ri)X-LR1gm8W;kQRy>vr%=HQbuu&&J0g z(Xd#BXJYo6E{Kt=KOCWC7dFifu_y@gp1)4>a4A8L!)74WF@r4bR}MD`JLD7}Ht%*K zYd79}_(DX@P{j>2htkT@%|izp5;oJNyh3&DjUi&q6Ls2NhX7_{^t>Jj4Y_%iWR|+V zxHpKGVkM9%d8TNp5U}|(lrAJ)hXySY+ZGrPLk8w5ESrrW$Ur8N+kq;`kJa9tS;3Rt ztGDk}8#LZX25{}`cA_1VEafwO%2=>8dF}2x7E`WLG@zfi%Sf{S_+}PAN0wiQ(QDX6 zkHrICVtrpl^n`0xpYM^Ip5qEB6j>1((x6MNNe$qZEjnc9a{}d1U<5J9(s7#=gNIh5EY?j zlWaU&&%ZI2xOcpG#d^cH#^M539^^N6?7dGmdiF=7-?Hb-9}`=(cJBFp(QHUXb8|Uf zWr+PL7Q?uWcMH+{`XK*r$!?Y;-x}y7?J@|{LGBwy7KQd)H+c~MGGmoUapJd{yfPsX zMS)!`_oUTD4!-CTkw|mTQ$R5`dpsWQN!WDbRZhS?XV?a3YP9UEY?;><{V;U!_bM=y zU{Dc~WG5vNNZtmZay;SNFplf~T#JCyyhD;WFvhRDHWw$HS&g9~#>ht>nrgr>oceM> zI{}_9OZ$ahNp1GyoOARuv?z7U(M2UttTw=4>%PExnY^E0Q$;MV#+e@#|BaeQ5FnF6 zL=6^#RIiAGp5*m_G7`)5Qa6cD+89}5avl9xY#$q62jWhB$b^$6a+25k)j z+Wlp@X|UkZUal@jR6Js6_i9>q8hoP-C_|8Pyt3YHp*!ipAg>26`v7E8LFG;d*fz?eoVjMS!T8h`@Y}!tK z&c67Vd@qqrJ3z=8IS0yz&b9Je_;y^}RWlGIRX*{b1A^(lY2c9nqA*sG`#d^d-yqEo zBlr(BDc{3e_Rz@r@QR>g=G|G|PGqEOO-+I5H7e$$qv$JK&F*>BMpIRejbKyNOZW4x{=^ z+`jDdPsBnupJ_U;2{HM9_c&>GQ(E-kK@(OVf7xOKISv3%TLdJ0iBYEY@LNSvp1ZGvt9kX z{$}HARjVJH(dUNVBdwmsu!mdK9eeMZgl~qzGlRHvIneHI=ud4i!s-XaeW_>X+YP$v z&TJ^;r$G5{n2+xL-Y-VTXZF2atlHbIp4J0BEDJ+&_dEXV`w6J!?Q{2ICJ)(*&utj* zPPBV=QW&lad0ibAO2zE4icbP`W_ckSyQ>_3QtW;sFi*aWFpV_RHwo8Iv_BrAA^RdM zdavs_Mr6bmSC;orpiWjmsSyvU-|GoX@Q}1;VC;4 z;{EY{PQqx!BS>NHRb_*f5oeNsRp;$Cqy3@;?x=fB9P>Ct={9_-Q2e5_3-Eks(+-qq z_EeXWN6l-p_s#Z_J)X|)0JxqbHAIj>d~?y0zTuHcOkyk<9d10YyLzM~13{Dq0_5Q0 z=+!&<8$b}359#$nz?L6vkRaHZyJCX(Ea|?CTk9HHnMDCETVvo;ip^oi16?JU_rh2W_;cvo-osWd8{m$k_sSZ-8gNTS}xr)XqQ7Pk1>B0*5Cn(pQxHP$7QKRh?3JcDop7w!p-48a21Po4k z26?sU$tnAnD3F_S_u*b^QJac$8AVE}qPCUR>kPNM=B81@q&Q8p-0GsVj-xZpVbu`+ zgWm^}cZMaCzF18CFYlx5&vEZtN&Tjle=WcAiR_Z`RV=dk4W2O$vo;V)uS1(>(Ho1y zT;W&jNfm(I)aumr2o8o>IIKOIG*6PF3kiUp_zgu#&iJ@DtaJBCRsYL0ZH8;Bxnw#2b!QY)9Xr23k=cSDaO+fn@|$jiWh9xBmPofTQo{AIX1 z2@0Sm2UW^j&9xdlajxxN4K>$+ecaCwQ``CF4-WfZ%%uwe3AerELnGwUQos7q^qEW0 zqAGJP<1QD(r{6_$vKaJvA83FGhg&w2h5*>2fgb@6R_2K(oQ-a&Auq@hkh_X1>Lisu zR1ggU=5sh)2h)Yhhj$x{TFK4YmkB6%z>*)?DJMl@_4@uSUSGpS5v?{J9E*^w+++gP zCa_L2*Jl}-qv8dPi~UN+*3CG57D#-rtThtQf)mLE*z+)x)N{PDj zN2nS&`x^r{)($Wsl*Yz`xN%f_uA_a*cQbS|IdjA@E!~7>;(W+9FsW;5&Nv%B;vOQ9 zLAuCUdtWx31?bYnY}o!O11IXg97;`Z?*jU!hA8MQJE4;kb*@FmD?ukC7M$td1WE8j zg;pRuy=9-5)y2GFN_3f3Jq7guhd97T&BEZw9y~K)R34x15g9?~b4FR7V-i$(2ZsUq zPwsntE>9~6#MES6Eir>khUvFMvl zsoDP?Z1T_wx_XvQly=Ga28ISDSXH5%Ut$phXJWQhR$i7g^Ze05sFj@JsSZAx|FYY$ zeURC!PMOju7X!g8m&%reWI3@OUdB;ZG3~)2a5OHJR~Bq1$#Q+$2?34#m2*(A{HZ(A z>bMwtO(+0u$tZk9MqT?@!?2Cov}}JDa&!1b084LHh*l9u9T))A-VR6D9Yi~! zBON{)qA5iD!^)gGC`O@_eKi?qsy(y`ztfOJ1T^x7k@Hx=wS~Qy4r8zf*#n9STMxv7 z)@3@UoBEEyb8`7}_s+V*KPDhi^g^QsUQEi}FNA`#WMwdfG%;N6A-WlH`8zcQ9?imb z8^n63sa{uyjY?yRrUFIjvEEd8+jcG=48O;PCy~D-d;ssFuWs&DgKiO72a=MvL7x5e za==UZMbYPh;uX@(nxdn$2fi^aj>0|^&=Q7HNh8Vv_j zw}g5O&WW4JO_?JCZ7`j?_g-={C&bg!ITh%hz90Ffc~i$oMFm8vF-Y~{7N&%c3q;ZJ z>onbpWQRhYZ<;7s&VteySRqJhGuUt3(LQoDOpnCy^fM43S(VH8ksc@=&MLti2@lUA zL?|=`-BRDo2a*iM`IJg+3B;Y3jjXz373xZD7SGh}{?+Fn_ND-qy4C ze{x!}_<6kyt5lU(kiXycfh)(L>8C~=TK3Kkx+ z0O!akuJFejik6Lqx=o6yLfkwLz%YYBrIR}E?o!toYH8PWPS6Y-sEaHwgiuFnHN~3+ zDAJF3YeR~*@RQ>&nupGayYiY;Rq*h3SLZ>dI}ZezQs*hSr6yPNH#7jFTM3xgl0vU0 zf5Ag;WurM|)C2|=%HPau7K+JBPcJC>aXBL9PM4){yTf9HPjPM`XB?2)->!wk3a5bw zz{Ijx25bjcL!y+C>J|4U5FfNyP-Wt4x*cLV(?-}{K(|bC{5prv51_^k0-3u#gymfT zTXUqu<^~2>ca(Hzquiq4Y2cGgU?@No$d;p3Unz%zpTe(NsGl>S>-9=7qhopnB29yM zqO8&;@h~1q%e+mISi#EKHG`Do&|DoGxUv>-&A)RhX1h13L1ic8$6b)XVxGjIaL0xO z-md{NR6hjjQAhZg%%k^CXj7IJ=(kn!rO1m;eYxdn&h;6w^0Vbj4Be?fJgsW;&n**K+SU7{jfqZ%=75wi1n0gQs;y2&~Vcq$uf=Cvwq9psVO| zk3myZLT**LmmzW#xEBKNOk6VFbH3`yGxM?UzUp#?UwxS?QKP3(HU`*qtSOU-*+OjGzlJEvs|a`tMQ9@qRy+7pK;NP7Aw#aQMosIdL?+lkEq345;C7V#y9oPE*1 z@lU`I!+op%BiD}%+RW_Y)iI-v)vT*Yaueh?!$(_rG^BE37g>6f_LW2~P)&(Q5(=QU zZPBPr-A{wQh>mh$QzOrdlGIvKM7!Lj4xFeri%he&%Ir11SdH*d9=Kk_K+Hd8$ZW!_{T9hQWknnFn~gXSI@MXG|NMr@?B}IX+$Qh8?Vb8;b0P zxj%U}mSz~63PqI-)lekxH_@RVd(33;80R(zj2^Dns;e3^iW7u8 z8-DK&TAD4b$|3={0!+G#0W&viJNa9i;AxNTV6_%()^$u zpz872hZ%@FfVhc3_y19pexc#UE1FD**sq3y?|#U}&%n}v|6`KyApPkK7lEkrcF$02 zVWhbFVX~+*AfQfP{89SIR8dCDJjyacx6A{fRpdlL~>V>LSyTqxQ!E5HJ1pmFlrVJuHZy5E8aepfgo5!T%$zxU}8ZS zTaJUqSoKI6qTwJJ;Tyn6mvR=Tu?iw1%)ExxL0%U zO&|GQFb0=rBMU(9W!SnDw4|))Z+dz2sr&j?U$Lk8xX#Ma)|U8$7;Yza#a2!O#kdg+ zCWlijazc7mq&&sM4+OWXTYbfvetXm@v-6C&=;?Qjjsr0F``Q~tAO9`(02;;P8Jw0Gu3&na9 zkhM)echjJpf+|@M`L}=Ty0y}jedaw~_%%)vrPdl-7c(T8IX#H#LhFY4+*jL)gb| zWdxUDBEf(Hi3>ZR&h8#IzT(`hbce9+Im4`2c;n4@4E;2{EGP_jAM4(x@#fBZlaXJ4 zzXwX}5#*||^8o3Qa`_-;Yf0w^LF-`#E-)``FXY(V0*y6)u-E?P04grYUGW0Y*J3Bl zH=ro?BLPgD>P|2FQ5&*(MeA_DL`S6&Yp_8Q5??6y{dm>4lRH2yEo57dzs8SLD}e zHvq!yC6QNKyT&rQmYI<|nLA;a%uWNg4p`|pQtAWx?JNn#vaDVXKV?2_mg zxr20#ww#s{PQa9*B8}P(4pO`{W_egX^u0&Uk!5(~sK9hLmNKx#mCf8tzw+NR_EGmP z$eO}E|K&s9yTX~1`mZ3J2g)n>ID;eDJnp66pU3)CV zGPG=&TjI=FZiba5^Gl@6qhr~Tp>)z%BX7z@Wj@(J{=kG-hpuItxJ<+-%EoF-OBJIj zo^l5cq&r?Y0O)xzWBFBwmm^o`TQ_o+{BRNbZ?28NjBK{mi9;XYKCg^Szfm+gM`DQ$0^PP*P3|>;$xm36Kb*iH`!6#3@!sG zO`~7Sr8QGc=M8#s0?58wI#xk9lT6-D-OxD!K5*Deq}PN7C3@t^EgOWn*=jQonNJIM zuh)AX-HHY*V8zfs55RHb+e?4~WB1s(MnCKSe9rzKKi^0DM_W54^TgFY%FX?p!3tzP z5a~nc`Sn)v(dT_{xM)hH2svZ-tcN1*8$!G&4{??b$^wz$Sm&w=^Oda9Y4iWr@x{Y~u%{bve;erZiL!p?a5F& z1-=@$5c3wta<=*zgB2{iJH94UC`&}OVS;t!Jb@Xxux@avbV3M z%>F5d6ZqQn_s6%kpTK46@|4hXk(B$tK)I?*@X^1zs;TF~`~Ct4kxei&?};pF=B>}p z$aUjSY8$rr<`RH2wBKzT3}k^m{qL&K14Uj*2mC2iXj&kcn^~Cg16$tC1o1^`d2I**uv?uAQWu#YsbIRr#V|CLk z3tunjfL*eQKGA(2cSz5i%(A_>Qqbx=+E(D$$)K;&|9Wx+GwbG=>4%nb=cK1?+(!F9 zK5ljSRc3n2O)qQMg=`z)>3kIAUqpIWx9CYu`CbbYDk=n*=BJAUw~Y#DOA2W>8$HA8 zVin5;Ljv4}bRwg|rG|uz0|owEXLbau43RTM>NHxMJgpbfXh>_-ap9YPIFYz+A-VG2 zecZ@+e{VXs&|Xc8UpvQOF&?4syu8=?3tcfF^~IPD2%$^^a789cnWq>w$6fc@8UTq+ z#h+`d*aH^!PN^2?V7ZFMXDz{>BKrFHumHP9!BJ8fQkU(bw?9gxDE&_dA_F7_gmU<_QE zQ*lMCS_;U(dZ=CZ4^~#mT+kWHDa&}Y+_{aAac5_lBo6C~ohp29&1GDU<^)a zbH1DkJtX)8?fBHB`_#5G!RgH07KO4ThaT-vK=X`yP>qtdAGKoW%Op{APtXW6gw0Kk z(10x5Zsv&63X|vFWDsd>4>DyB+_=;$Vx6LIsJ(2Ld~}La1fV*X)KiKL$!6ExdKF@{ z#Mt?I{+JG3fDIEuKm{y?;6O(DqSyFnM6S}4VXB5imqfGzEfD?UhqH%DWqTHrCD7x+ zVrXN*B|wBG=(BjDT!%tRV4L-xpNEw;=g_ATjBNU;C#9-RR#=X@w2*>yz22`?zz$PL zj~+E`%bYws?jfa;_?HbYosUsbPvCw%ROnB6tG&E#J<{;OO0`tZvD-{ta;cf72J!pzMEcL_ zBt#`=DrF#_*-GX0bsc=g#c=U)Q%0_CeVaVLSLg{D`NJfr9cF{1vCbKDj`FgTIBHG_ zTP!s1U^DM9uV?}9P><~&KWfG&Q-bd z1B8Y#{oU0&^J5b$$}m5yg~h{)d|BZeu5`kP8NR^iK=B`tc^w-J zO{61ZCex-ShH)m)Dlo6}LBjyhBsg8(4$CWyh8W7w(F7aG7$M;Ylok1E9KMAnQ|VLy zKs-M@UYt9urqXHEc-T~Z-^B;(hL*rsl_N*E?J1i%Yr&T)bX=n8$&FFefmP?%S(AxL z8Le-i733|TJUjiH(xsiKyRveyWNyx=-!LPKqd*H!c5#ARpP(hKIZd}*dMYR$GSAkf z=HyfxpAF^}ziPF?=qa`zd>us~beu$qO*TnwHo+2e=ghCFvDNeJQf0!Y%M%~iGXnf2 z{L*KM#6gZ4S0x?>yxlJqb8k4{-=>eHew6{brYqkEvh4j)%m{5hKnDH6Q|2@;Jn0?E(hsX`B53By(NHiTTp7S!{OGD(7Z->+??%xO zP<_BvTy-p^CCG^wPdiH(Si&Lv*}08a%@(+)VJ&QBlBw)ARPIj!u5j3@{rrccKn-35gC@!QA^asm!@RP%a@7#Lz#>dXYpw18$K)a=@hKW-8 zTyFqZPA&=E9JfR`BIfxy>oD=}%WBGA8AJ<#UkPH@>;cr2vNL1=p^VBdv%`&z>4t)$ zu*gUmLrF@5!j>rjFC?Om2~X=*C9a)G7Y(6EL`OWLXD+fBvbBrrL6Bs=jmPrY=|iR( znpp)3ly?#hPE+))Zb;Aw84Ry7WxLY;5BCfciQ^W3uevj2Y?{P6UL4Q-<6;#5sQeww zuTGrX?joowhodd=O)-Ez=-dMQ#- zDdYj+fnxM<4RRjz;Ig(qdn`PJW{X}`m*x{LJ3ZH8NZff4^hA}lVOfwRr%rA0)<)R7 zjp&50^WAQ~&U1@!t!yDa*^6cpBYJ>g%u1CYmq&yN8XRPaoP-=D%Y=+9@SIXKw)nR6 z-|Upa>vRd@E+mTyqaTK*+m>Qgvn*cLXvAW4qZS@KEqus!avAB)OFkp_w~*YPpX?SP zXdHDi)5esA=ZI;E@{t3Iv<7@yC&zbyz`ryaC*<{tz00>^w`l=W+|$b{-Isha*^t+P z!@{!kX}^omYo@tW!;PqBhWg{WN`YZCG+f9}>bRK!^I(qQ6ae-uGsS@YsLPZF9%rI! zmdF(fq2X5HKLB00|B+Q}mmsH2YNqzxM?Nz1N*+m#rpjEbmV^pHd!KqSsPMI7r{5wvsXA0+$#lcwsBj{T zu16Qn^P50fAOboLsW>#gA#%DB01TFBV-0s1jc~9mfs4(mV&5QkB{0@zC;++?WT!B? zzMX^Kcnbf0q!%oN?8x6b<DP)-12t#1^fnKv|P4(gU>5OQ^c4)@xN6QcdsQMY)Hg;` zO!T7XS){hTm&NWPdf653szcy;vmoDa>j{^55N97?a{OAkGsu@-SjjfddAngz9=)xYFtCQ>y1^QzF37ZVFQ|B3JNDJ^BtAjplBl%LRb{L_t>pk-QNbyjM+uv>_38WDm8*zWGb_$+UFxf6kjcn`a zOMrSO^nL2`46}rE4=WDwN+)+@PwNNWx4&1wo!3LcM&K1B5hBV^t8lG0`_M3LQj>G>0JVna&|BN7P^-uCnatufp# z764>wsSn4aslzz6)2Pz8ksXW`J--UX^oC+!MIYX1&$!EIHH0OKhRW!UZB)@b?kw9Z z4~&Y5z;n^L6O^Z;Rbj-3>~coPX~eR9CwiT@H4shsLJ18*#XO@I`i()M%v0^Bn4x`2 zv7$;0O-0nu8UF9mv5$Hsjzp?>i72m@gLB)^whNT{_kz0VHEp)7-J0fMr*1R9i?Zm^ ztK^}l>_BcR$Sm-2xgx7_L){&|3Q%x%P!Z94$Gp9^JgiyWlSVMHUj(3Vl?{u@e3l)T z-lk8dmAo=0-d^@U6bb$4&IK4t1|#bL1-yq}Ej=>@ka6dka(b{>IxkKsj=*KUkmTFk z;{N7J?Flk;Q|0a@!S^?u!QZPqBOHrDdn(~G4=s}^;j9&~yFI7*N}m(uj{tK(jK3Cr z7LZN-iji!glfVL}pJBHA{YI#!4}MSADwC2(bS@arngfSGNGLFO?^9#>91w|#Az{-H zmH#hIs@(%3Z8$v?-Nt_x;DkLezLv3Cc>*YHN&n}wihlgjtFCX;$t#qJH=OpMZk?5Dt8Bmx_=UB+glUH0I_x4vsYxDc9}&3 z2hSJzDEBenKoU3IFO%}PLZWR}fNydgj_SWXlBLo&!+pNiVsM~$V{6#z*`D%1 zS?QFL8^TJnrv>nmI!8ur?uY4(aGz^v8Tepp>!$G2M7nMHEcDo@O~wEg7oV5{Ok2Jd z$%jK9#xHlBH)cs=`G zHw^39X(e7`f;n&~6>Y zeP|ej`F&leFcYhc_&2-!lrz(YV!Zsz{5u)|-%%4=Ze|PTN5VPB z(&XzF&}uZMxdb<@CRS_{y5UfFpZa?9XAjzakLC9 zRPqoto{!I4l3}Y8-yqE06+|u?beMSpP`)K4f<5^ys{eJ=AU- z7gA1Qq$~G5M!Nxwa@D;6q^oI({@kA-WBpW=)RDxoeg=>Qh;+cA0SiH*r)|%O-kn85 zH;?{vM}!JU>B_=}JY`iR-UYaj`7Pq(yq$=z3oW0=jTh7)qE3P8g7P5h`@?WRGBV(x z)OKX+lprk~InQmkNlKne7qw!Y0v~kWP9fSvl>w9r>jV$aMV}3fqZrPF)!4jt!!ui9 z6Tj-Z{KRC>Cs_l>#cQ($jBht3019&Rk~|Ie;FVrSH}a4PlXhLA8PhfNfi-x3ZV8n) z#CdVZ=nQPY%GfP>4pUx9fQ%5pl$i+iKws*O-+>z}L^#A29`LNeOa+P1%Z|KELEzTJ z2?j>2$iy7ialT}_Q~|Txulm1xxrrv{23I2;p|CLYf~~9D&cc#GeuG+pIqODsanp zdl`1Brw0!k{%R}N$i6}Uv>@Xu((pH$|IkuB3V@<1?kJC?Mvz&xeH-1ta;mh=ad7`7 zRC-RFGr)GaEC&&6oH)?{O&gl*8goNS_ynT-jxnP^XMFXgFae0JAV+9r#qW-(r9nywWGZIc!$d=)-Q>Z>adi>O)=NO{MG_w~ zK-&Wji|s_J*RlN1$OlV3fkYz0OZAsjb!8SVvrC}tGolvHl4CXk>cTuE zwJiX#MlU{_qTXSgHwmSS(Nv4J0_9EDc@BlMK!dV*;tj)uNJSx6OEInnCJp{poIk=j zDD&DukX&Jm=gEN->=U?QONdH4rBVTR6i~>Ki-jc=)MF8~()EaU4;7FB%JAnQf`^8% zXLT}QqxpT^Gao#qTmFXk>={1;&_L-{ec_L|U))-|#4GOc7fM{zViPJLy;1_7Rrvor zS!~rn?ouW@cWzzc{!6h0=aatvSnH>Sssng`R(OirX}bACR`0;3Y=Wh_T2u{Vc~K~s!^2z0sOKas43vC1oex z)_UyY1v&YHOO*-+9Ogzpv!E6>NO^T_81dmn1vr_0E^vlfr#WO^DG&?dybtmB5O`5& zRf$qkO8Ar8saNNLvph7%p245hST-5Rke0*rc7E*{+AzO98U&ZggFITV_gS&RYPBOa z2XvStSY;_ld{16Ewy+0_=|=Sm<^1}Yn&A_6BL<|UC?tI-chh-ECQs&fqZ0~?MPb## z;6QzrV=6hhRR-SAvsfH~)Q@o_yM_GTx%}BL*35BiowZW`h?NTae*JwDu6=+F=o2f> z?$W{f3jyO%DJ7aQoYb^K%^-Zyj+*PYWv5LHyB6yl zDj83L0^OxOH~F7{hX-{P=~!sEzPSogfgA-3vJ%F%oW7Y&bJ^Qhkb)zt`Rq7~kGv_) zll?wcPdZXAwAOvw#*z}IZHaGG#X6XLJam{~``vC;Ff{H-sH zQ((AJgQYfCV7Z&U#EYVRumnF3w81A-E9o4wM>}`3FBPAfXmuMNdy)Q3y{lg2AvoU@ zwvGy3o&v-Z0?}hH!=O65HD5hlT9VkgB z1=N9bOvAV*$v$1MUji>*&`*=FnKLXh}*G`c$sAJqmiqd^W61(ie&MDL>_3{^(_&igZ1nbuR|l})U_8# z_f0qg=qfK%^oJ_cfR5N_P5cN?1tF}-@n0{B3YUeTqc(2_M7;~8OR0%M(&s%K1um}9 z@fYgo-jLDt=-%wqQ)fsZZ(8_QMxd8(?3@_-m4+>XAtc8D$WYofB zDC#P(_P1f>ytFyEy6_}j<=)bHbmWw^Iv9mF2@7E;7@Q^u-X^~&9!X&_%>pH3E#H%L z@!=WMUXsL>YbF+$2yI>lU{lFX!?5K+()126kXr!GjfYT}3O~^w`ZtDH9XW?7K-B|X z7KlFcv>qA;tti_UgmgyJ(xAEWo42F$w$Z$N_xHrGI?#0tKV#bS$ z%2{51q@eg0kQ+kePrzqpCW?y^d*_^KkTzqP-GzVkOd@5Sofk%Sh-i^#(7CP8AU(`M zYICi5#F?T#+e=#!G2a;9)ra#rdN)+5rU)+L1Vtp3L-1xl+lEUl%y)F|bpxm1?kQoj_G{-s|k zmex{lY1}B~wYZe-ED~8x=dVWi&WNd7Je;&2E)F3?r4N!$1yt7+bA3q^JH_8VVwzj@I3Ld)u@2p}E%KAtKO!hM!)V9D4(j7a9wqqiP7fBzAIK3aEILX!4c_ zbbM{NK+?WQuVG|}i1aEV2)Z4Coe!y z+(uw|4z4}c^qnt&`pN@BNUHY|AbBa7ihg5l+)#%D;e`Yt(WnY@P_Mj5PRAH`(v==%g%d@BCpb?z|vg*3WBifk+Ax}KzMIe z#wXf|?D~g*_}-d>3Um7<5--=~NO?t> z8f$j?P#I@oa^_@yXkZFsxa&)dYc!X@O91VwqXmkVVe|)R>Ou<*GHx580e&;C03Q&Z za3kBed{bucRYHgZcCHg)LkV$!pDSOUxq1WyRs}la!kbGF7}GW#vcZ_`osp0)W3COW z4-pNc6;hkBmsEW0yxr`Uq}w8UgoPSOdvDn^w1S`7z5Vz&4EyI66YtQD&}!WfEUa;3 zHcF42NCB4#e+k(Mq@LJ*e{pC(ytA$4cP$Qc@z=1Pfg~Yx5HbTHr$HY1i!Tnxnhom@ zc^S)W<4=ns*4hdU^1~o6Q1g`66YJK~!-5Tg1AmI{Ct{atuJEyg((fY)mnHf zsGnx@ep;IusY0(@t%BM|Sv!7*7Y>pBIz)?UE3IO9;Z>y=N%climM<6-`@&!TxAYTCT0U`wu z)JcaHRz7XD(%z){$8y^_({<}9)S6-?Ph+{K<`HVm|4{l=K1~#BP@4N1&p+SGu@~^S`0?^1fj>6M0wsWk1W|7s8Oz^3v|$aqtdX4m84DgB9wXoZfH!Kq8RL!UuDbZv$8yI3?l9txOWLu9 z9Y@$<#hret&)VWT;HZPCjxKc|;O31RD%{lEFmZP}SKf$K_^v#Z>hlSZD^2I+k#!sPLDpNJmJ=q^MIkH_!bVsXrs&&1|y}-~`>eiWg%&u@-}Ve&&EP#}#vQ znL~j#S+wcWrU5ME*dm7m?sQ|EZGZ9BzpMDOO||Xs(zIcWXQ1p_nXHO)#_;c&L!3t+ zAD<{Qd|Ae-uaP3&Gnt)z#e1gaEPslAs%&kwye--l7Ke`G$hECwx!)Cs5+(1|B5G-Y z2_dnDU{`{Wl8jtekZdB5kQDySV);?J!a~ahyON}ZwWSL9Tb3MP2o5?-zyX4fPn4S7 z`c=2i@MYK1a;?q4``_GxkLJVPXyXkf-bld!b$on$U?X@T#^a1JBy8y+{T>G4E#2xIGy;m!3G<59yXYka1a}#ySrw?3L864>l$%r_|~qmguCy$h6rm& zK*Ni{*HaBT)EK}LHAJUsEHNVuC(Us0XD}QFS7qb)7Goq~7!`)fcroTpNU1tjK{j!k!z!D5?9bw^<8YY5e z&`;Q^^1E&q2_r}uTCK)4CwG}K=R>PEiKn;5S!S4t#qew)nc?H^HY|!bM$`&h`Tr=i zu>3!=uIPt>w=A$5tqdZkWGv!N#u}#~8D`vRCL;?Oc(^+aMLY)67-GgC3i?6$_>fS- z2r(nQb3K|V)@K|f#+y%!F}c28B1RZtgb{_)Fm4EA3I(GM7)(w>5rZ)UsYVIq;tdyPG#4}XC0vx?bc-$6xYI4lY!RfzA?{AK#kRj< z1+`#8iz5^jalJ6yS!hNUnkkOv zil!^PD<?pBBiE0Pr+4ewiVsv?eGTdUcrZ53izRdlIBi8~V<`r^mb1JjgW znm^l2JMQ$7vbux{HjYCoZX*@b-RT@k({+k8tSN3&Fv+j=X2p?0%tz`e#ZZ~8u2Il& zcmL`o^Dl`airclakK!l_B~T;+#Tlodm0=MI9iZ^>s`u^h2?}?AB8|57iQ5xLPu!nQ zv~lW06HW}xiP~SDT(2{8z*@zTma**&)0sJhi_R#S_sb^MxYHSW6I0xsW;~-TVS>&F zGQsA>%ES^TZum06)LsG&7Ka#j32{G<;TXDqKUTpWpH;EGxb09GV5-u~5n0b?xJnHG!^|g32yfx$4 z95Ly_=Q&qi&HFZr`o*ee8^{b6I!7dN1ePNvFk%5loC!ar^^3C<%j#o979+YMoxFu!6`DB?I%7|Vj07RrgL=Qx486uJ)*365onCnj)zA8_LKZHsMJ%kt| zgpUvscpAwQN80{xrpk@8o-u2OCJiUnVkN@_nJz&=6cR)kL3mSz#hQ_V2m;~|AeI1v z1|X~e!Gxk-R=1v?Glml0Dw3nUwWc$ksF)SMo~F#wbfxLKX}WIK4_f@d#1APf`9Xs^ z&iP_>`QU^PVV3wH!u^?Tf*9-}kRH}}53wFN9suD13La(@Wt$t%rsm0b*ORKO;*S&W zvW_CgN4n0yOdj#TB#j-s*dg2@$(S_8jP4YrPg7%C3{Sjd$6Q5H_Ibu|h;24pr{)<+ z8QwHq%RE*w{}NV}BDU@78Uuk2a&&;gsjjnYX|uewoFc|YQb6@~U5iAt3hH0^WXmNNV+YpKvpi9X{X{aM(5S;q&h2($eSU*F(vLmSGnVT{}0gF4x;Gk~T6n4#eSMjyb* zy@olqh9;+DYUtw48hpgeaq4+u*0{Tv+Y&KDVy4qT!x|dOxU*;wX$ZgkCf-}KW{Bey z6~1eR8E)=A!;~d5)N!X-apNlk6EY0BJJmJgm`<8hcI_|eB`X6H9Rr;uF|5hIV;B>I z=k6ZE12A|2gXiv4U)#s9Dki?p_ueEJl(;*6Ar8?CO}^xX+Y4QszHsu3gUUJF%ewVa zCbjJqwpOdxjm<6Jf^37>p0Lfl{KEHbxZ2HYN41kX728lGl z>yeV$-1vT+(HvVxBR1~T$c*a8xznN}r{NcML~A&r z(Y+!OS>d$Iai=ys`x@3_y;?{uGwRYJDr$k2=;w2|IuwUk`ls|ARz{DLJ1J!K_~>FBtc*Vg+Uf@ zK^)KOuh z{-wV#)J%Edd#9AKjM5@EpncGT}2pf+=daDYYpdl+Z^BY)TNKgd_6x z&cB4co}Nv9J*|u}#s1 z#@{22z#4%A5!i@8itvFuO{Hv}r%|d$I)xyH3&ADj5h+%1Qo^H_mut(TUiraveot1% zI>AedqW#&H)sd6p?jFU7C^JM6athn8wTpV1%j*i{#c<2##`!#f(g+7d3MfQS9H3fI zFq8yUA7)fWst;(222vXSl}SCX6elfX4(-=StNL@z7K8mRDa~`MN1K1t^+bZi6s3m~GHx zgA6zg5YgbwRNMWWrBgiVq&?p%^FiBA$G?i9@7 zC}@L%(cLFU!Q>`LfgvW&J#gY4aBk;~yZcU)JKZ7U zj+eNdk=wE2PQg0PYqL1#z#Mny9ALswI0tUdIbel$YYsUFm~aiOp}n{U&X72#z%_7$ zL9T%l*MK{XljQCgILE*mr$ihBXE5d%IC7^P15Bvi--odn7T9R_-)fCp;LHM9I0Y1O zryJji!&xe@g;O8^38cX#;DfWiOL|j(8He@@nwn=Mab|G|1aSz^p;0F7R-Z|`H7~vR zyfDH{$DZ+>%QdC7Yc$3Hw zi4Y~iCE|{Xax$8$^5zFG2K9?%_NI!CB+jy0{XAv!R%@#8rz-ZY{4o3154T%{tf(fts zJc{HuE9(1s8i+c{u9aQO05R@vdj?o>1}G^cju*mINEcjGh>|a7ijXzm+&q`cd=WAW zjR-kmkt4*NW;~?~vSyH(SKA;ygE$q0jk{?3m>@Snf>57v?KI0 zXwU~6eTeD9ggzFClO_%eaZupH5I&ON;|D%|5|Bs&+DO0-2@t{Ed**yHKW4?LxBZq@ zuBoDwtj#DBr=rZ25tJ6nHJ?nE42vft?=)R6s%|W>a5C~{3=2T4E;?P_be)X6R7yov zNupTilj-tiDtuA2QM{Uhy(W{wdz!o4BdF3>mGRWt)1)}gly|8YWvZq(V>o6(yS3c| zh&{YLe&9d?Ckr@VC<%Vh3~yy&KA9|>j41utMxAWNyQ=DJ{jhG8=xg?MZLR6iMh`Kr zM;CY3gGnBCKV5<8;T49cjLgv*YIOc1)pl)T!f59cJp7 zado)dltGiIjk|l1nI+#itXt#@wyXo+8cLdCF zr)3>)%_In71c>qaIen!5(GaXwKU3HFk^1LV>R)V2S{_14sdh;1>iUU9A&_P1`aN8 zR4^wDHvc2FwqFf{8LX{Vkc$OQ)tsxX$yyS{Q|DVf%)Rl%8#KH@d*cEFz(Hfz_BUmK zCI;xhjYHf3#0@fTv^Y0LU^9nf;|H4`*vuTs^Su8UrKr<>8AYA+i*~GG5MR&pRvM2g zyvhHVRmE)W``FxUDsbAyQX49?fdU(I*f4^PA~u?=p~#X=VQQPdcvD4hA9_;-lYORZ zn6ZZF?)%m(o8B5p)Br?{DbyIF`qY?d^pS=SX^22Q>dkBIX!9>U8f(z_0u2!j49-x5 zYLxBoX=GEcl$@CdhoZoM!lJ?qRT78TfJHtO30vtBjXA(wvdr>I@?R)>zdXzZ#~8yW5_W^ z6i&U5)ZUEYkJOZE9@ZF1#3)0IEX3dePD&`i}`g*LXi?kXhOTKgZ3`cYw~ z@(IUo3&*Yv#kW|(mcH3ojC9>tVEDLGFq+o5JC&xUrXerC*>ti^U%c@znu@+4ke z&z*)}SaFYiG2M$IFW^A(0tPQU_m^dHUA&=PjImw7+&!y7fSN4Sti0d1E1a4RxTx99 znv{z#T%fou7TJQyolctZ7D8G$qQx35KrJ#*#AzBN((E5yS@@9!5@NCd$^wN&9ayY! zryomwEapvB#;MQtSny!MKmpbiV2c8Pso|MTs5OBm3(XB^QgvK0=87m*;95%MO`6P9DWblrEm&)}Y{AbqT;nq7NY3)ZVP>}Ep7cR0 z)|$3nx$8{&Dfh>o3}G4X3WHT~Vrt|5eaOT#hUtjuHPa3asc5>oQelP)&%NbwR4|$1 z4Ml~&PjiYUI)&%{dA2E-P?QvJoRdP0O9~sL5J6*cZW5=W7$gcaW2xy9=A!W2DHny0 zQz+u(-&LHUJ-MK0a))B1A6h7^K(X_;O7uh=f5MDA^?qJeVn(;xT(@}hiK8t~Os5!c zC+GkTQg(H?<|e1xpCB#1u<- zS>gky8G9+4|1%a(i9?jwLWvvPrxWVcy;RG}Qo>VW$KB~pd9z(VgxRpJ^>!tRSQ1K* zAOi^*5-4y;Bry|-87$0jIU_<1C8 znWE*?k`*g#{HJ;I>J;q7ug)Wu7;%OXq7g$zJTW4PQ`F7m>}Ok?&*d~h@QIRyq-h}5 zqGeUYqGeT#{pVOIinWL%cUBQQ6a__>N#kB-=I+#n?`zgFLv+6;bD5n@#2RLUW#JxYKQEpv|HK98NWfMRFu_On+|+SvrW(K?EJB{_tZn%oTqZ z&r}X-T&NW^U09A<)Alz9B66tW)K0CZ-Jho{hXim)^Q9=V=AA4Y$T-Czi@Q_Sq$L;= zbJ7iRZXk2IB(*nqPQQS;!H2UUjtys6HoTk;fX)D@pgL&Mzc>u5j(J+wnG_tmE!S%G z1KM4;Yw9{zt5=m83Qz+KHGpv!6NVTc+`UFaBs2sa;72t~@C)DPf96Idx$Xd2{6vg}1)!T3P;@_N1I}!i?h0SnKU2Q@j3B1*!aO zhxb$ZW%-HnkGGZk&kX~?bhTAm%6dy&aW(!VH ztTdy2#wJ6xA{q=G>I*J)Cl>&7@=dzxPOtBvQz zmx^`9EY39-(70F51qZls&RAxwf(OB4U>WwIo|Gs(M>4CuC@`3=-h55!kJNMDY9nz8 zRuY$ZRjYO3mKdZ_U~7Lb?HHse@}F1^;BZb46w?Z`BAS&LIIlwJFUF`SflsLu7pAQzZ$ zVRQirbuoy=v5RgjVia;(?Wa=x(w#UAd~9GTWW*UjOc1!x>^Y$Af1S2i|DjDXi3muv=KU52VvNRp(0EU6GE6IbZi`*eZ!)0 z_gSY5i}T4udi};r*tUCmen~8AuHmg)g;lHY)>up9TAksoFM^cP`uOe<&ucTDsaVUl zECaJOW@enGYFeDNW){fqkljE%R1{T^ZOICG zK7CnX+S1>632*5hg0LyHAsp($C?Fgv(!eTyGvz%DRPz1tS@G3ADpinLrruCTs0ny* zPACBkA(yq+X2-T^-Gsf}&eE{znPD%qS7Vq($;fr6cpsL(9 z<1n>0Ri*f)&6gU!;4eTd2*N@VEL`!Th!;7$lwQDiVW0~gU6&cUEur987WOvpA0Y@}uj`lp^?Hr&{_=4ez7)vW#l|Iu?%UhlxsvFS3j_B; z@n;=U9Y|y7wpO%6QwWKu2uX>r5J!yD6{fh;6?VF#Hts=3WZcW|s2V|Hq{e7w^np7K zKUZyQ^V&K7)5LMsSr+wCG(=Z)`)ox*tfC2s*0}TBBcdBRA`*ypEU6`pySKE&v`lyE zQJf`CnB|N+{V>asyVu!P1*T4gBi}(PFln`M_oEh?mY3EJwRQ5`Zm5Z8DC42LgHni- zf*C4`wWeD~tQ4wb9GfWw01F)Sh2;e-POi)`M%Qa;MnOkNv(lY^3H-3;D?YY)!(Vu- zj>X7tvV`Wi(-Q22%D6if5(+{jNQs~>PVt@^Z(H-e|5r8F2hN98WtIE%h zFpe|TIUKLO<`op6jO@oxTaw|n=%n=v4+{+x)en9 z_*-8x=Mu~;@vejxN|1mAGddE)IIX|O-}*sY)73UfNOdD1GJ+G`2rs7_tQ%j{X=WA` zp%j591Uf>vA_S!nCXn()cfz8RGNzLfB?_D)$WhP;kcFp=!qpL_+TtL*3J2MH!4zYl-oqUj`*&2%055C?@8 zMv8R{__r%C+u!aq#ZL(M6K!p^@PIYO%5RtI&v?M_Fma!jrj)!GhQY3dZE_R<5dyG5 z08u~?qyr%k5QYGu3e~9?4$1OfT)&tu#gu-##d?378EYGQA2fYH1P&kAx(|Asxapjn z@w}-@$?6y4t6GU-on;*-o?$D$hjZAPnkN%2y=%34!DRIlZQWu08Ok+NTTVkWU1u;S zN}9Z};R`lta_^d$A-g7@S5YKmKebw9hzDnM9;i7w^1$=Jr}JRCD|w+P)}ULJyd>34 z$}m`HVfmM^DB?ViL=oq?>x@dBxw^T-rGqx^T?bHfa8!!BHM0B^p0 zRk>jx3;O}U3>^S80Gea~Cj%Wa@RC6V9TP^}y^D8DnqWfIF=2v18W_Z|bsh8kQM2aC zt6rUWQzb8lzw3w&d90I>6S00u z6ll>=pgRh}bQBo5I|bfR!0ISyU;;H0>N4i*8$x*aC0wb=KvJ<{k5&J z*flVA4Q$}<5O~)>*D+8A1GA2SpKbv{x&_MU7N~U#G*JK!du_#AcM2GF3NYEVOJGcw zfR-)+9t8O45MZK1fQ1f$1t?0RG%SW;PG-;a=9B4pC#o-=NOQ+KN22o;B5@>=HX^y= zi=-8a{w7TzsR0rbAn^x`@qjWkhE=MIAF1;Q8IQ>Dh!sa1;7A-tmTjubV* zNF!((i8Z2u1L9B;mvfe%SHoY0rP!oymIIO;z(Achb;#6Fp^g%YD(8Ro1@q>=YvyfZ zC6c!p*?|!-j4+a95jUJRY0?CXFC!x)64amP%g6{xW6_IMsLNXq>FCIDr=B;9SVOPr zx^}5C8xGLl6J}Fkp~SI3yKJM#DL6FBAX) zTCj{@-JC4XQ=L@G7-M7r002M$01yBn-m31dg`DUP*&(cM!C*S5g7{$rSyJc758mOk zq{(~TRy?Ql;SswD?Cl*)Z@w-HsE*j(UZMh(qNx+n|147<@X6~ES2ZK{n~FUcJfD@S zxQku}kGvfMQ|iHJsaTkkCJX^e1dZ8kD-It;mWWcHBvuZZpOdC^-^kD_ETe}Tfak+n zae-QG2@Yu|j<*GS@sKr*i>NZsHt9KrbACN#GnQI>5i2J&_(>EI@NWRORiy(4qc3@q z9B2T~!xOuMevx4S2P1||*7uX(b0hM-#)+f1b!X8SdUUlly%#+lt~Tt3Gwy8-4JR+VFc0r%*84Q0uFbbG_B5TAQ*z#_AyL&kY7qMDL- zjGoS4Cn2RA{frqT&^$zcx1o%BCbvoRqUVRs-f@|7Keg+EtbJB^_kI2h$xb=m>P?z2 zX1FtJCvDFVjj%xfiTkEjQ!7#Ylvh2Wxc2*SqVaBU|H4JR;We5?eCBQ+)KKiHbby{j zyTkGo-L!Z21_-`qyn%{@)jm@zfZ;uUx|(PetJT zpP1c*`fYrUqm1y}$niC;!nnz=zT>!_Z&2a|6HKG{%rTZKl3_jkUIhO0`YwGGSF4bSc z3RE+lG`*ZkqygTSx<>F*mEH1Lv`cHRl=_0a@Ms|Fnv~bI=xl6MW(jqeH!Q2JO&gj?1&qNfgJSKw5(?RIY5Wx~ zheXX6U4?CkmgO#DthFaz69Qg*vu;GkbcRHE;sJ}l?5EFP==M?m z!D$@i!ZKTYc~thsr-{6xl7E55B_~dXG%dC<;<%PdG775Yx48k46O?YK4T}@`yMWK_ z2TYgRo*N0aA@{eR))-$ka@uSF(qBjRQX=m?T3%GJ*UdL(3Dv{3Dyz(9=wScbZiPd0 zc+8Ze^B}tliYbmc_sokAtRRL8o?$jC01;47M?DlR{kocBqPsU8L#VZ)#}-_H*s^CR z{%v4=YpB#)|7oZbbqm?LYu4m7e8~=r+%ldf`7n7qebrLMgp!*0T362^q$UT!YmKcL zF7VibK)+T|r>vhD+8M2imuTG8@yjXlet7@vW;&pE7Tl<3f&#TJSupcPbXt3D^|G0<(@HIg4MEZK{w8 z4FfbAOQ^^Yo~VOoMJ+58MVZz0;WH#ISvXiU zCiIe#VNQ?)v{WPiOX-keS}Wog!)5oZqQI$R*h*d&&u{#QZm90jjc+Xs^rb)0Zhvc* ze~L^fIwl8?^uqQmLxQaM&JVJ;(N?0o@?B`uCxt*>w!k6N+mIUZN^kV<+COvz_eYc- zPf+waebZBif&k#$$b*NZHfQxv{%iy-8q>Qp*eJcPVH=!V;TJDwNKU?eo>`jwoEu}a z|M%geO7VvT{yYfdWo`L^GK@phqhIX6-F(w50Y_T){BeHn$sC!5^8uf*u*4`kB>g|J zuqkHhCj45))w$g>nnQVRN|dBV0t6bUV%2bhp?tPs8&PS?4^%FE`589UN*%dLyO=uR zR}6J*M*!vqCNRL%`kdw|{@y&bZOrG0RQlHBFWPV_m;k!&YoZaR@y2 zrMFEjbma~0laS1o>`%hWhq?^(BBd`m+Vr7jZS>TD$et*-+cIg*S(>K-ffJ z`lCYyUSCIE48wNyvyP*U>|y?$XiMUX#nTUlOV2j1Mge7X|27mz3)cDUw_~hYF#hK9;H9$^_1DCH(=Ab`#WsW|_Ot8IaZ>8A0xzK7$=LB3|)s)Q_i2#g9F zj63FjOQMHB+PZWn!A`>fs@Im^lptBVe6ENl<%-}k71|9~Kt%ayST|oHAhhv9Z;N%j zRX)+&&IehV&4F#`o&v@o3)U=+ z<34v5(tq|&CWT#A2c&p}2e(xShb<{EpH%PolW5Jzir%JKDQXp{25UV~ldGq*5f6|? zE&Jy#Gw57H(lx?N3)F%N3?y574o_1<3R5N$o^_<}HbKl5K_f8s^PCM{^FB9lx#9k7 zFyooP!zq3!igootOaMDT#J@@8JDwg}lRoIaFRxI1d5|X=@#eKIq+*vpZ;-rEK0jYj z-aLGExU(iWmz)8ANTtVy?5p5d4suev6{tQd@RK7PR$PO#TMWf7f(W_O_@>b>mA#Ey z`G*|T;FtFVquRGk!?Hkh{a}Dms^-&-hgoEFDvOLY?Z7(k_k z6_EYfg`tb8n)|cagmezER880RgTOyLM?rgh`U>1w* z9p_>c$ND0qa%zb1STgApL_?zozr&I)uR=u&C-<9hn0DF$#S`9aAA3x#iv)fn z3>N0N%i|xx!0>sh60s>}A76}IsEz(1X#SK(Gr!#Fhr&_`?5lN9dD}6c!&wYB0$rRcEUo~HX*qu|>CVRjo^Pe{p zif6RYhNUrnB9r#uU5GIfclEahbCCYFNw)wR$GF=Oh^#k0E;WIQTm|Cp9NyQXF)ZOVZvQ_}fBLbb1vmkmVE#F&CS8xf-(oI`Qcu-`^!pv2h z_o>_XK(gsPpNN^(+x%W;L5K0%dmWsvBZ(Rv^Zz?osp!?Stlf&ga9Ug4YjG-}2U+wO z3GnX+A6!non*wS$a@^1)g8nPnv*AS%k>X?Rsu`(xrnspo(*3k6?;j)Ym;k3MdSA~l{Z+BzV$GG^kCz_)V=A>;SA#Hq*wmF5UH_g{Cxy}2 z-FFYuw~6~*KdZq3?{wgF4TWJ;Y>^l1iS_5TM2%a zVHNh6{XP0U-z5&|=cyT}O!VrPe&Jm9YLDtM94`e|uAqtOJG`yBq=GFw7m=ZKCQ)?W z8EO2ua7+Rp&11$fAvudfOk|NVBjiCW2TRN;N;3VdE^h~2I#*jYfoQVCuPH6k9%0d78+k05^3?R&ka8&4|;b1jpGf^KwU>I zr}aYa=*#IK?Ew$kJRS9!qQ*-g0p+fg_%j|+vjHLmN)m)6^2zOY>0_$P#0SXN?s~;) zJ+}bSJi(;(!(7+)B}k*9y~k55Q7SFmZX~y$2drK2?Id*_yhvolGyI0IV3UfECrW@D zFl*geilbq~*V;n?4c1G#hRX6uegQz?;Q>bnfr*qmXi$WXq#-x^p6sGV5$Ly?n>s;7 z*O6$;Dk_>^=uL5wWVd{7)y4T`A> zre34M9Kb|5iiL2G`>+QTBfNoj#(4W~apvLR-kC**)eUIx)mDjC+#10 z4|?4Wy82LgiQeK1dIh-rH_OOQkrq}A3%xWUQ?-K<+hX7O&K>D5&>g#?knBQ^qEI|Q z3!!fz`^dpV^-VJ(0U11pjp2ein?8e(#-0vB7%^)z=6NmInl8KPKf!Y`yh(72B)!~F z!fS`-71c|}B{vjQhh{%^oy*y(k+bW-<&;UVN^|4wYg2xS z@w2WOZkNyWKz<@+fv3Zj-%}biAKh8GnQOFq)86#26OWBr6Uo6ymDmSr(CtVeW&G+& z+a0995xh8s9G^m-97s}maOS9c0X)qLk$@ubdcC=Op?2+QKNLFmzE2c!Ugj%w9ySh2 z`k*w*M-u=sLm5AGvq04YQ0I~O^#gzL9%kH^0DA+lNY>tC_0l}^b5z(PDO68X)7O;; zTp+V-f=S*v`$+>$1`80Xu#)tdk#H+#^I>OhO;F~ZO*Ys$;<)>hI#p`T6Ro_0M3Dx{ zMy;^(dJI74v?)&}j-Jo`yu(o;y;g6aHWWD<=@^Ck>Rg|+5m#S-$>gI$W4W?DQSS%C zD>^)}&2bLwBN2b`Q2u~{5lF?T^A#oNO-vow>$zI@2p3MbanspxQ!UF{pRlu?>G=st z--{0=Gmx%@6l`tK1NJ<;^>lyJ++pYKl>mUZk_?~xUA0_* zW-b?HZ@OW5SeJf8nxYU3h-PWUZSsdjd1`KtV(Cqa7eS*I1|`Qso~4-;vW} zHvV|yPU=k@cE1I`botFUo*5^9wD=us2Z_&76`J-R934J5_-K*qA9xL&-g>}|Ix6L z7#NYqzKFHNC=61B+Z80z(wTZUqh)j8F#do{BDz5GN{U;c5C z`%9^I)3URn3_2xA=fzY9q3|^1DHtV)KlQ5%XakXsWWYXYm;>Ai_C2{7ztea!slm!u zxg<$S7m_Au32OczUXf#bU%5x>{0aUZ$>*si&98%W4Uf+%?$Z-_k4NE#qKz4RERqL9 zk=Vc9|2FY|FYemrUms?r9D?bIq#S_9MzB0R>CtQ?|zEm^{fq}RW1D5KJ(q-78(LSrg$wCzn+(-|4 zbp9z2NN4RGCwFcrk>a}qBG==?|JCE`PWr|t(eubKQQy;n2+FRUW>U3pw=K#Ps0kF- zAosLEOFRBw0uX0zw}I%sr7?)O&oej|uL0-I-R=uhp9u<=6@oSNLvS&Q;|@tB7rY$X zOccu91V2=uw>j`M{-X#b*ZjgUnnGzhqSPXSVD}cPh_VCqw3pHK&=1KuPTc3}i9X8! z>h**1anWt+dpr+!_Wd-0LfJ)#0&zvcb+Z|_`+cA)!^%)MI!d6RILzne^RP7`W2y-h z@^`bc%ZhiyXz_h%?T&Iaa@_v&9aqX-M7U=6MpRtDOqThn)4hx*kcKp{7o(? zdCI+b785<{-k)5It--g@j)P;-g+cvECI>~^tK;K<5M$bbMGnue+!uIf(=f4_41ZG= z!Z$;Vwr984zGB@}(OX}dTO6)op;s3?!xnqX+WyM>jKyPQJAFWN8iIHhRvq)fvAShS zgaq~H<84IMW3gGRiiPkFll^6``@I1OX)u!fo+JN`rg&G$Xhdlzb?YX`U1F4l`B0aQ zi1+v;NfU-^W)w9SKTREBlYNqX-a_6DW^=4be%0Uj;~?p4VnW;b&FzQ)S1TpHw@y~g zaq*tFv>rxQhVL~)8z95Ag!mEC{)R_ZOgcSZZdfqj?HO_-32J7;Ew70;u+U=$dnMFUNC+PIm5x^}nq_-Ds z(>a9>@9{sDj6rvqG{cj-Eo|0uVTlPo3bkJz#gzWbme~ywv#cyI{%Ga>;%ef8?HOSs zah3|aBd=MHYod*CqKlH@rCwp@cydKUxB?GX$;gi=XDMj-+Kcluhm7v4EG`LR9RD)0 zKLkcuskAD!;6M#lb3uMz&w1rC9wdAA+##{{9|g-B?MK-8?rjA&POOXjPGzbWBd;!3 zR6vX5taNq)NgoR&0$19dG_AzhGp+yC*R=~ZP+flQmkM6CU>#EI4{&3Yz}@wqlPGr#}hsTnL>R*wyBna>8NBZL+1x)6FtT57Be zlrl;l+Sn@_!)BY_^O$BeNB(M19*KHd9mc5TJXk|jTAnA;gv1b+IoC7Rfs>hR1yz=s zD<%Fvs}BGjA5*RPq%}gEC5aa?I`Om!XCc9&a_3wPT1(LZU~@$8R7JONwLUjF4F(Z_ z^H#JP(YXXFV?Ro2=P6$s`?ic#C_7dc)TBOhz-oMPNmVvVfuF#<1z%}IrOLw!^u$P7 zER|!Nn2@~*xTOr7lU_m)F4t+1&jySr_`mWS0Jc;?c3!LL81USx$Yycz4JBf2{pyQm zzR!C~Rlo+joSe^ll7}bPvS;VfU={}_D_j=pyAq$>yxt3S*Z=q9Mf=_=H{{n(<9rww z9_xA~yZ=w4myAv#ifEI76lYc$1VXhy|HHx^WOm_c8t1b`Q%YMQ-reZN&dJG^C-Oi8 z47eu1%b;c6{t54AG$1K8l)M}!v=!iz1ekUoFT^NRd;^QKE-~n3V!VjX%3-0Mm{fAe1f8TRNJEjDM8~clX0G|y zM6IpPR!+jF?O#V=8I2tWb{TJP=+M-5eF@@Z@mz37-P(a%T|kO4L@!wy3mJxN=t1A4 zpmSwmY0Lg`INp2^0s8Ss@uNys8|OkTxZ9G4UVtH}PA9|>UYseM2PWA2A)YkFZ~q&t z5u{*^y6MS;P(D(*CjUGZFnYBv=++?~q`p|I`pD&Tar94_v~p1?6O_ME&6M60FOWJb zw=50~wt3o(j~h&T!{Pe5oVkv)@Gnoz*X zE7${2i`ZLUamwqtIGm)a$_g|xicX4nhBci>&gY@WFE&aj1EU?TA5+NDFCqLkJJgv+ z`cV0LOxxl0eiP~*xz9X5Y;Gb9Ji~#wJ6OIuIsK#H#l?-MVeV{S!&#{LXcfw-5+9_x z)d1&$H2#D8_XylA=#+*B-4_!b@BD#X*UR1|e4DHS4iO}USEF7;pk?|Pko5)P_TlR; zB$Q~LjJZNSjUpx#vZQv<4#3Jq-Vylw>LpM+*G@hnY6`V+5IDC1jG7%sZfK7nB6l)3 zY6B=k*FUyMb6*Pm$-o-k%2NWq2++mPgpdw(2fRBb^&?uKRH%g` zX3-9-*H;w`ur7qrzc-j>y98+^uXaWRbjFFnYJf1*T@2ij;D1=3_EHbOL{CuA28=<< z#%<~JW3%VdAQIg~9%yf=+?j%#JA1}zjf+mgOden@IxAav%XG7V14)%ydzA>mOnMcR zKU{XQvtiqh2`VhK%X*Jhmi@H}!lQ}K!GI!jekCsJ(2h(stJI~;fSU)08sK7@Uv1R- z>Q*iq(Y@nqP}--4>17VZ)PQMw?}N$r`y@?A&$PhM@jxatk4*FL(NTli=~2gUt=**$v8@ zx`Teyw`bAEKXBM@BWZZP98P{=!28tbH@$0&>tgX5xf%J>HI|efYgRmj88m`jCf)36 zvT8RIpQ5Z*pMYMJWQaJqdJS1SKNf`;v(%VPbwo-l{q?4jU}3$Zt-zQh#u^1nh;#5M zfJ)dR{JIkr?*dYxKS88sYnP#za&LpHhnkbBmjQuoh3mc?1@#TW-CJ1?-cF|OxZ?E{ z+lUT`AUw`a+9&WR?f{X{0M$Lb!U#rY`M&8%m>E!hU%U3%id%Cq^mO1Kg%@{IFMG{3 zUH`vf(Lw>ISA;dvIX7|*?^|d$L|Y)k7XjB4%Orf>BiN-Kj{VzQ#<{ zTw=lRupRt%;kf)J38>+TRu)^*_*)#uxU8`=WmJ#^dcku!M*!oU391a(nbA}I^vIY| z3b!9gGt`u1$l4H0d~L4a5Qxn%uX{aW2RUDKJbeLQar}T)3C=qrJEkgOb~B5a>=X=X zan8g-iw|j>D2V?7^*<7L2jd;^|K{3Se_tFUL3ZH9hkdE%PnL<|EqFdz{a`j26=#~g zJ3Lz=;_#R2&ER?!*8LVJyJ4a}It|g*9)?NHT=hd{z<b(2=LycoPazXqDz7zG|g8-7?i^~pn1 zIf<7`pfE7bg`7f^Zo@J&83PTt+_XFSTr z(y#a%pRbviIa<0HN(wMo^_0j`bGkDz%h~Y%Dsc`gy6$WAjVL;Tw|6>K+Wb`f|I^F$ z#=mtY`%XN;+l91(ZgXfOC$G9-aJnnBS5>eGH-;WrHgSu;KjSBRsVBR4zb2FKa2+_^ z4Z6k>!`!_-uaqYr7$-pFZ+7q&%iZQ>!qvej8Lt*kiIqa)B1V9{qj{;DA`v2 zH>LkQ42U>?WX&Dm*m|d07M)1$*BgRlu$J(;v{S+vEO5}=(H1q^PZYgEsqVJr{wz|} z)H{JV5hwqycDc5~|nl&{S!(P3+0d?H=w{KR94E4g*SQva%rF zMTY~`S4M6>X*7oh1tA;B3s@oRFPP?FDEelU_GN<;JGIpU_*LAiQpsH#?)fs9?@{ zTJ8f`-M$kq&wK$Q8S%X>^A9)|_9D}GzgqHpAl^D47f{U}qe?#$aJ!5;P?5AwzulWBUS4o{VvdwTWotp)W0;Q2MH)Eiq*vm56E@#vpA z%^AzY#g=IMh|iRR{uT!5P~dqPL367gLMMdqG~v_^~Sd6M^QJb`cgFz0w+;*L&xKYX=Fw7`*&|l z8yu^nlDJ<(@qCfs6aO0!PWbN@_+!iYw`*{={%qO*5ru)7Lig2xmfR&TxvUzHxhSYp z+sT^fsaw*liGuz;T_{Ik!%4p3t$)J#W@d}yU*>=o;BJD!1W({mp1bV!2w$% z)Y<#Np<`{9IxzX~#kt;*5=3 z22xbXkNR|U(f!z5B1zV!o?5Ll>DLB3(%8GsZnp9&*&~W0j|xdEBCKhx)z7{A>Q)!H zPE#9hC}#zhsX&yvXxKxf21NuM)rbZ!9z{J!HVp+VCZw-|JA_BoYJ&$)59V#23lqg` ze~>HQ8f-ca+!;{g^1TM%mS*^sh4-PYmZ@Z-&Tp&?uu&{MO~8ifZ=PIqJ-QAWW!AL zzNnsyg#>RmY#SU{g4Ck`eF(G5LK0OTK#Nk~H`H>ZJ#yq7_`Fi!TAy`bnLQ{-5H@dE>1l4^$g(Xco6NDy8vYwJVOVasapKAtF-xv^8b?-nK zdl*ukKr;eHiC`SG!gFTALYKPvI*77`GBO}~LJ_Q< zZ4QX75~Hqnufe9U>Xt(&9xM5@5XQX)D?rj?1b}K?BC_O?-hqUop7YnZ*e89m8L5WQ zEpad;%~1s@Y4t&g1_taML3>7L`6>Y@YJ7tF91@DU=|^`$2+CTlG;}SOMny7b=E3B+ z-(`6oA|!I&hMiyObk?IIIN^#>XwZ7*g#WJr0)EeD{eeTG#vgMhM+9QbDHV5F5fW2> z4VhmK^anT%!zc#jwG#F#**uw*W$=PefeLMY4(*A!J@=s?bA?=ATSk(J$qoXgk`eJwYbgt!{*9x4o-bADtBtpn0xj|g_+%SP>LW-4fOGCKgw zDvYvV-9)kTjB9xMe0bzo8UQ?Bp=txE^x`BnDCZ+CFR&t2ezWA~YHnnQSw~1GNJ@!7*Z493Y|BcP81FSbsNifaWv_4sy8>@`&zAQZU3Vb6^a^ z!$4uy_jCm1E>_$rJQ#D?O3Z5F7SyOq?-@2%io~w*q$9!AWZrPzH(fPNL6%v)xeoMv z#bU5@4RA6oW~IdQJsY;<$3Yr)?&BID%tx~w06Xm({3U+Xv*r=fSh5PF%+?4i{8EIV z`x^S6i+N_Z_kaYx6{a}*C;d~aDE}b7U)vE6D@Pn^G)Lx7&l<`TIg^9gu?ObxR7ei3 zT%dxh2&L(A(MOQq!pq=F0M}7tI6Kj^twJ==?pQmVou{nb__fBjwLfJFPd;#e@z*Wo zxxik`l=BAe4{U)SCwcpqjgJtEe1}sM4;{J0bI}LY5!}eZcjBb69Z5T?IRT>!wH+V- za;W7Dcv$aY#&VeR04zRf?yj!LF=63|=OJMZpO%A>EBV!Rqv_CMIo?1~rdUH+(o>#p zizVnwsf*|6L*UgLF6L=~u3F1qPwgPWRES}({Y2pLLYBeQxiu(LLGzwrd(@{{1H1kO z9WCk_YG;jf_-U!Wr)sSLtBLVJ=tTN%FZgmKbYDL&SO#JMhb*4qvz7lUkHbJF#0jJ$ znIv!y@`|Sgq;R69~0JXC8FtjuX zJcV00QY4HRlxGmeh;BCrv-bm@^--9s~S@jzMan{x@CoQVJ`2smF1vF%!lS~lo8s*_b4>) zIIYD{!RA%&law&P4n7+NaJ$F&Nmd@%r(1=cYg~S{#oVLhP$#lC!1PTYBigfZtODt` z(l=$$_Y2v;0o57na#MyrH5jTK=T@Z2;_tceG>*Tf2;r0O78H83#@ZsufOJ^9Xh6_K zunp$ILZK&BASNy5p^DCI>(J;7S~jL~=TpIf_R=K1I^b~LD z{K%i%6g0vWGDyp{B;63ySW?2Z*39!`hGjIcnFptbdT5P{0DDhyQl4I?=o<-CTgY5A zi?vF~8vw!yIJ7{fMOKEGX1vC#ZbE*y=L9-#Sd0*Rr!jo-k&sY1xweT%HsAI{dTA>- zR6y5jHr3;y~I=D$RCBTUvEj%EaFe(X19=C=ZwX}+I6WtJh! zbs2LB_G-};PaOhgHMt$;l7%5F2C(ZQy98?sE~Gc`Sve{i!vC1yyI#0X0C@0-$Hkex z4`_a1iO}kSoh9g;3_E@Uaw^hS;sE_9^@K0C_{;?qTPV4k6~;8D8X(B1hziDI4%_s@ z^e^lZ3E5m{`l{PI`=y7_s@mqS>E_3IPPgVi%5K7n#aI^UG{IMOp)+jlLpX3#wXw4CbK$2>sPNu`` zR3%q)w`d;2=nCihG7XE)re5u3jPf9^li@5+HT(FAvAE67l6t&d)WJ(ec+k0kH$FtI zN&({QVhzLg+pJt))&FWz7<3#4Y1(NLJ6-KARIZ!wenFbgrjy2O&kwEx+nnym){`j* z#564mh3>3igN7gso6nPecy%wI?hw>{gSVy>>p7wZ0r2kkwo!tjRZ6c8AiRxz<6wXw z0os-@pLXR)^-291#_Emhu9R4k@GP9`ZR5=_P@w*O*V8u54*1NHss{%T*wq}XKr*- zY;wzmVU`T>7xJ+YCqP8>QA!!vU*wx~Nxb$GMKMVNXr!B7dublXV_xL1v>Ti#?*Q!l zNX)Om%Zj>5>QP)(Pd_$HaOp@be*TYrx2vDSjE20YIK}g05qA9KLHsHaU+&hJ6D=H7 zyfg%J0AF7IYR!rd=dHU(y7oJxc!9Pcggf{KF+S+wV9Z}NDVMRkYOE6oj*e`s@~Pc1 zP4Sk4kRDYiTRBZX`INXE6d-50N)Wz$Svu}{v20ScLU8jC_)d-ZP+N!NdLyPwg|Oxc zwwKoevwg1|9y3;|pwYGvUHDe?XBl<$(ppyk3XYApz6#tOP3Mh2tXb744E&$~j#b>+ z;?t^upivXDjb`3b5 z0W^{(oL#~#0e|EcbxVjtI_~i=Ax-VIBZH4@O%Z*}P$i2ZfN$hQxV;k=YEOfUT?%UMy=Y7Dneq6UL~I5JES2h0XMY|Peq3!X zI*zIht}f=y2KM4Y@pf`)1(LA6I3L_A9Db5uq9_%bG8Tf`NzG74D$A39y zh@XG3isfUkf_>!*X6Qr!86AMnfv2P0HE^7CxoOYZZH3;!<8)K?5u6b4f|#X2j!aMo zT%QWZ-;PMh)d^DP@X)3pGi{D}m+Go*Qr|P@4&qQxHrA?`?n|jaE0n3%J?Mk)C9^>* z*1F1k@W1lv&>v6{7)ZRBj0mT^rD;B&k-M|Vzhgbu?g{&U+ zZ(z-?9#qt1Fms+GpQ79$VwZ!s9A_t(ZwJRk_ZGUaDeGG*vk55E8J=)KZhJo);AWr&mVn?8z(Y?Nj>S@|A1s)w4@x_W{9TP~<)6|EM4 zJ`!iynY>9aZZSbJF(|}dhXO!DxrS6xNz#6%|ZJ!Wd;W#3fBkOgC z*o+?T_?6L+TGYSYRe_)#+H)l}cz9I`)YXV&{-sNe(cUFH!qgBu1Si<1o|hQ&|Kds% zZb(;xzPAOR&mv$gpb|Pi{*#B@$ zu<_}_AXscHUB@#|?Ta$Nm_&c$Y=2N8+U*gMz7?L}QA~%?V{eW(Nu)|?2@zQgo1#}N_rlWAiF~?8 z!?iJ*ETEO0$Xchj47&bKCd#?N0$8Jd458WEEQ~M|RbYt0L4NL?WliVf9?X_IE@a}5 zYT#&T_^S=Z$<|MUzc|~PYt#_|q5a89EX%FJLr4okDZxh=Ne6p41sSCMEHcwAfJl^Q zX69k3c;Phu16&DilfeO^Im|zR-^Ojy3Z=&8h^gQ}AC!jcwQPaEY zib5*zq}J|^gjfY+e`J;+EkjuQjALjAjxrJ^whrFWs&l-$Wewh>J8?D#+NN^;HV1(L z0&2N`^JtoBN4Fer^2E3)xq|n>^{j4-ArO-ge0B1p@jQ@#+%(7B{jCatARCu)o__Bj zULys1>ZH(m9ZBpqHzg=NEhLS zrB*JO;a4lVvWkPrJ8ggV1bQL9Edz0fd{v99Z}w zQ29Vu+b!*W&*d2Iub#b{dLNxd0}7N*DQAq|f^87=ylVj+qvR3nKo>3Gqj><+oBEQ!klbQo5W(r zeF=^&z`XLqb_9~7Pa6PQqmNZ275uIAiRH$6gNGfVf)Di7xEO0GE-Pr*>P{|Y&FM4f zf`-#F^hl^-;=8<;dJ5O0r^uf0x&B|#htds^DN2m#VavJRV=Gzsy0f-P%^BLdhni6kMJ8zjkoz?nVa$GE%nMh5Fdbf zJdwxWdg2fFyyNhXR!M7iT>@vx1K@N}zT#4o4fwN9HiALI;*QL__%8!TZASB>Az(q4 zs8~djR%ixgxrKOx#89CNYh*OTgw-d@7kE0yM`I?`;>o80<4}ho76LG3K`pS^XwoR1 zV_6wk@V!+IpdVVQ#a-;VFc2x@Z@HJ*eR|dFc8?=b1=N(t9Y)l7+j&}kWbb#l~ZbhMS2i%GA4fn8}x6igK)17xiar|eWnMnl7 z5)jMHf-_gW=@F_lzu7}NnU1N4!`K=C#jV7VXs4%O4sWbuplMp(d*lTW;<)KjId-O| zDN9rw=@kLm#4ugIY4rAA1>5=TvPx~y8v!i^@qk&&mh5db91K2lv&N{zWv*mR70k+K zE4z4U^T!Pmj!F$YXJ>Z)!klRl#N7v)ea!xqH-r%x4jYXp5(&2z0;AKu=RT9K=88uZ zW{IKvanV9{!4BwEyC1IVuX+KZ0f_J-t#Xyj{^HM|ZSIsdv<`g;^ED3Nx3?v?dgEuz z4e)h4ZQa^ovChiS_{?=(7h2TS+kOJM1d|31#U@`_`M+iu7X$@j8z5_kAXfQ^yS74?CJarMCP zzdK`EW}pGRzVNVtNJY-IZ;2BUHuEI_WtIzbq`-brZ!^cDLxH1_$b=*?C%8Ak16;44 zT5CldQL?CCS#>V=nu3lqx}KQkP@)l$|Ll;XgEy`jB%88+x?8+oFLv@kry0sM%M&0& zt4>#^Byz%B8cq!H1k#sX{Rw%Q*$~uJEwOzT$l&9VrkFzsfSMgW_yr9i~K zgw`K)6h=DDC6>5|1@6?K~|F0Gh0^(>$E z=klZ_OXSsWjDl&%&k@_GEiHC{|AF42b@5|8#2hdp<;mQKf+1UHB!@6ku|m<-_mI zN{ilJoj#FG2~OBbku#@hN^|ME!7wpq!M%a!wkGQjRo8BK!|PVN)O3tso0E=&Y9gT6 zs3!ig%ckzi0hofWVJX)_>PtnzS13^FAW2{ZFopjU)Pep-4gFthZ^$RBq2J(x8?jI@ z+2RzoHj*^_8YCv?33>b6yxmwUkw3PD(VtF3M*otVz&P*o+6whujIbIi>@*-5#k0{| zH-V{Fu^#71x7!K2n>H9#G_siSYBv!oC_ZX>EUTz)CUkmLKpB!`MRq{d{BX{Ci2aG9 zl?y*?+V!-(KM&hvJS}>EQYn+*{fcJm<@V=zEqpv^Zm)39i-J?lcmt0kcMHP{eS_}r z)Tv~E++TxfM}R|F%&&0B-TBCOEelyF2BiG;c1+1GE(XYpJRE7>bh86%NKsiLZRr$M z(Hp6*P<*eE={M?ZqmmVersZiH*YnfI)#N{|UxS~G)PCbcwH3z`7k2$@N9GAIq9 z0Xe;E_OmYfy1C7Y_r0hM(EN>@J?pbNNo<31)aRaOmwXHdNio;LFgqWpkNMp81ef*z z9YAM@?3IS2J_SyWjWj&xKxi~|U)2w!947l0qnK%>Ouzbi~-ng2{8Pwxj ztNhh%%nYWj5P{cMZ{?ju&Z!A}WO9@%y??UA1-t4uMa^$0|{{-cRW{ad!!9?R_nx zmE#nG1@!%NE1Oo%&!q2by~mp)_%xe4j=zmM5T}`BwuE5rbvi=*hUIqt_^I0Ne6%CZ zA{QFo`J<$64vgX57vXvBLXB=UP6*_mzh21;8=rjW=i_`*w!;DSX8;KPO8N8*%<7H? z*0q=(_GKf*PNBgGVS_=B8fCEak|{K`1A5@eY}2=F$wr*#LL>bD!jTpG^(PmphID`qA>rAahA`DzCeeawn z7C#cpTNG4_Uz>kn{Umj2eiOeA^TGPJ=gZ^APl3^ePEg-V6IUCuW;+Vx{RleUx>J#X z{HW+Rg5#W-^w5hWw>Nse@H;1DzQ41#dh>q~HGUNKj^D14Oob<$i&Z_FG@#snC+P%s zD)F;)N|WVJ;`Syl=c2WYyDJuN1D6$1TGjjK_f0Z{Cta&<4*nS6^K}jDrbyj_D^Lpg zrIBmc7cJ*khg4WQMxG`??h!(tutqMOT9c7}Z(bJ6<4I)0n8w8_ANl|!AXmishm z?yt~Clj=;pL~kZ348S{Rx3p%cxy7Ek#+bmZd&OL7A<16lJq9lu5nBJL5y;c`##lE@ zx`gzySM7d%C!|si7Wj(18_`>IME@3^b@^lSKGp}q`gjcI^(`@ccZ#kHsfqqV{&zgKr=21SBe4fZa^|GVg+IlgiZcJD0zAHR9?Ut>dG~N8lR0n!_ zs<2t1_kzprGnM~Lam^2JL;<_cjQl>(%*_KzcK}jAt-qw%NX+qj`RW_X#E0E~zs?DI zrm?B{yR)hQWxkwze$`4egXM_cnn!}Ih1w-Z4{ugrKm-K(rnj3 z^t0mVz({GIint0Sb_YeOk~M(gpq!T|j>(pww0(dkOdUU%Q%^j()s~piYrsBA!PN5b z9svri6pE7muUs`G3@E(n$j(GEvg}A?uiv6^R`x z2E=p&rI*S4{Lt%uL`^M45@jZ)OIIz)N~a`2%`Qk*l<=QMlcMV5qym}|9Cp!9@Th|a zgs0{*kd?U7_=p8NLVkn&XN#)?b0?a;AulPBX5*qo@?yd_rkCdcRf$%K=z#Z3tQ3a| zNmm*YvV*w%{WlAH+E9K>b1ZerMEre30x1LbQ)IXUr~nJ8z1XBQ?|z4vC~A-;A0(_X z(qN(QDM?zuLj}>&iMF1Q1RKEM7znH!*+{Hr1LrvP%pOM5Y4OEnU?3~qVZ}ZN_g)E+ zrh+BUn98(S@C%7SA$(yn-I$5O%6vtG_)hP9G4glNG*KF-kl0NzMnY6q%91W0goHRW zi>-sS=G9gkAOu$JS{aEh3pQ7B==dR_?_?BW&gLk34Iu1m%Zwa zW7^akUJ-r`?N*Ja?B|ZCERi%0NZF$stQHLQm%MVR1OhaSyyi1pve94E2>~i?2~@+1 z)O;vM@3(`2%m^-*8#)1=90+=35UK1%#v9i$7CTv1biq+_65T*+f5Knf8Gbhhm^(%7 z@uwF**Yk+eIwL#;_7G!VLGe{=G-)-Ja5_^Id#dtc;3K01cu2vt4v~9hhaw(EhAp-Vkh^fytag;CGky;_E^6Fxc$CSybq9;7QiOkr}jzT{^__5uUvj*ASOZK(CQ20Ktigox>ValUdt|9BAf&{6p7NmV^}Y5WkJ< zsG5KDm3Ki27`g7=jKuuDB`7e;HPZm^u@rQCMh-PG@Sp@e!xqo=h+UBzOpLvdlJ_zx zt;~U@Me>DeD!R*Ecwn8X!Ne%FxHh=q?sSxIFd_vNq8%0V(M%-0#&iXbv69YGz1rF2 zBnQ!qV!kr7UlpqkyNCxUr62Gvk3aCM`UM^`X}_n5YGT$F_`uL1Q+f8)vu0&?A`%dg zOd(0WE?6@=!FHvJ**M>XBpfER&7|jE!8b2Rm3csAHXxXV z^SnL?1Jum8-rVgetz6fK=}d#=t*tvbw&V)J9VcVmMSmmfz)f~yA_&ocrn5|M;)xw4 zfCWxz4xX6u8jX_-3D3}UmI=O}iRRaZIB>VT3ON zSYLZ>nq^jb$S9A>mqHBowe`dw=b2W2kI}35ONW#9f~N;K=4|0{9r9>boYq-C=xhfJ zex%yJHE}*ZO|F^-r3nYw;c;C)5eeddEe@WWS`vuvmW_a?MTM#qm@wcpWDt!oBIqKxKrX(8i1kr2=qveoDglL_5i zzOzCj2p<6kT|jV6#9{+N%yJMrV?v`NU>}$hCH-`k1g1VJ*_hnpvq+|>91pkZYXfE1KGKk}NLna>#k! z$8M{x{muRTTVQxF`T&FvKUb2^kGby*UEuid0*Il{mD_CLDc;2S+B6q)<1A$@>?0T7 zi04=d=n2#$Y*f!(Wpog2)2HkPOMVNoXNY)c*YYusSn%)PG$o>zYQP_+cS*yV9w)}r z*Xk@0OL{vBj&_);|Jcu)$ILBG@u0@&5MFIeZPu(xVOXKCMlY$z%Cz6iwGtDD5vc;} zbQ%#5kQ4^0T8cP$CB^e7PJJn5bx}>87+eDCS`&TE|8TDOkkCq!!g=uQYo{&v{bH70 z7Ck$M$7PzZ0}1~1`_X&S-Ruxzde_S_G%KDXUsvU*djggwvp?J9#(?l>WYBdGXjUFI zs7u)R^M{YO4E4jnh}W^w8_C#0^bGMriD=0Ro;#*N(XR%YCzwu$C`tL5CCxFXbv9+$5spG z=b5Ic)CJgVaNpNg{CG|)x-|30W44#z`$zRJOhAG&#$eP*H$y8~QnolG@3l$NK)R@_ z^Y}zE=f%m3{hF2j!j>N=j-y3xzP$Tezs#35tSendCPm4-ZNLE4zRJ8p@4cxM>T@r* z$6fv_ARb#O?yfb^-A`;oiiOpmX4RJWgIw zJU^ew^$Q2f*~(2zz;C+~7G!$0|HZg`U0{mTaqA$EZ==K9{~mBo*lY#ifU7cr(TfI&o)WtY;ipT zQ8|v}-T(S{@&++{;HEAx`la;1Vto|M8t7dwGvOrJh=D2-3p5g`|t4ERtwpKu%Ku=(`J zai+0yx{eIZyw(TJO;D#vF`z6p5J7i_9pQjM{}XMb%=_lD=K^>MlPGF{g;bOF1W-7| z+qGi%5{{t}I#CUp`jP$_wEXhJE5Hr61pmdtPe`LMlotk_s!&SWHWc!QUUw;!$nW!=Pug_QG1;Nv=X!*3)GDT1N7rO@Ywh-U!FdFVMZgVlh zBXgI~HHhDd#TaoPwHJ*_%K1LCgS|_HQ-)N>NqL@3_vh|p#k|Ndx-eFWjHU~(Znt0R z;ZBMV1+VCz5z#b=&P{!hMZ5<}^4&za+}sSzA_B_syJh)D4-$YBkvNc7gKUTl8+H>0 zxZAc)C&V_6^Twm@egzi3OR^iXc}FC2F=>In>Pf3pgz~_r$xpKerg|Aw3ayNMv%@V> z5|^;YVUiP9@7^}1e6UNGGbSCcK(K5Sn7Z)D?4x$NtaEyxN}d~Cmt-M#{i$bI<$t>i zZn_U34v!XQm=Pw1Xr~2d-_$?@RQyY(8%D2H3x0}Jl#7Ld5+vNkxiIb9Fux>9R z5u+;p+eVm$D;W+FS372tgEOY<}#aYoI=hhwxMj$w1%whFZfW?gzYo&qhpj(v>u^bEaIt~~iJmdohVf)7leGcv#3aZYHDRR6ZY_;o8kZNnGt zWIt<2E|`TKVNR{Jz%QJn-M4tJhb+bK1+)z@J~0h5$@c9saD|O^c6CACZ@1xLp+mnw zDid%j0X7LTdJm+6AW{BA3cjXD+6`I}*HX-S3=`1qJ(m2^1!oOm!86$>3>LWf9iGI)-`XqnA4f?bHRnEOoCaGuS^JgIN zR|nohNf>9qR6K<>bo-YA-F*(!XbxMHczPi#P**k7rCj88v>0+7Z=b^Gi-We%GIRQ z&r5RY|0={UX^}x1tfKt7f)Rfv9TSeyI`VaPL>WNh68hKL$d-isUx-^V1YhbHT82z&VzW`CqPtJMAyIuIW;4*N&Jx+uPU{U>tr0~^)$*#L&LL+7*EX^Zxp!; zx@`Sq!3uf)u%@Tg{{q+E6FCq4_HRa9(71!bD<3*E%_QAyV+(7rk9b=~Pr2{-32u}| zUn>xnlU*apHiyv;Z-*;)L@ym;>RxK7^&XUhudo_>xOzU{?w3v~)@*fK(vJx}rOV)w zf1k=|um~I_!=h<>5GDCg(kd1{{9b;~UfoLMX{nPgVyyPm02)f_O@{7?=0X^zS#$6e zXF}!$Z90Ns0DcWhu}|SejxoQH7Yy7vi14eUv6#4AVs!lv=FWKdYA#0T)eys&!I+<$ zyRrv68jQV>dAsR3m?VL$fpal%O|o)87Qc2O%65`L7~L1~)*o}u1sis`8Kim}%z2__ zd}(53BAZEeH4|n9?`FD%HXGt9S*RCyB;~SJASlkTHRJt>t){&$axl(XLoL7r7N0{% z%WV}*k5)K)gzv$Ayk>Bu(GRygggpHblYHPPwzmqcR1icX16dLUGjI?GsL3r?I7d2v zY4GrAHJT2cNE*mw9TBm`j7`AAM29@zlA=oGT7$&XkeGjBYxG zDBxdRQg%kf&E2E(cEp(E z0KC3cT6g|k1z3Th5y@$sk+vzm+tx{EwNn7vL+E?|{o#Qj78F68!gQ=hg{@0bjAu0^ zpBz9Oxyg&*+y2C8fhqP{ce{|W0reI^>al>>mKw+^Q33oRLj?mlPbICVd&t;{=L=hh zjAPpxL4NWTapr&~WBZj1+K^|F8XTX%MRihNbA~*?u~4an!#(m}8H-mqshZSRAfzHK zveR)APlx#$U5FyT;tg?@j1dV0;j9sTGU&I<)&a5b9^>oLQ2)lmv)(_IuYG=z-nWtU zOyD4gzJaF@11bmQGGgX);#nGQGWb82I*xa%OJ==o@t#8*pKH7#_kQ{W zA&FaGn7MP0Hqx(seiQGZ@@;>?@NvE-ODG0KPj+}KQE&O_un!O6DMed2=?YC0k+|C) zn@oWPl)u@}_}**WWXZOjp&RS-CBUQ<{%yT+b_c~X%uXfz1I70!TH1qNzj@$Mg8>)= z^gYL-(QuPII9kzhr@{_QZ|KrdKWX471!Y>oKfm+^b?=VW=To4~;JwRyyK8st2NSl^ z@(yO8+qv!(Hsz<$LJDL*rI0{Ao)|PtJrhv!f4KxEAm28J&Z&x2!U&KhG+bfwe|Vop z0f1PpV;g1w9v~vLSQbV*!Cz(Q?*RFx7$@^KLpjc{h;6(m9PvBz+4q0#WSdh6Kf@z5 z>V1E>_-I(Da1dh_`W;xrz=gxENbX+S<#F8x4ek0l??wW0o1BSHfmt3>@?|C5_X=qF zQNl^sTjX#R^2DIgkYy-8n47LQ4je-c8piQ@A$Fac?zOZ2LG5F#ra^rOR2~DVb`4Ur zG~Ol&6~kf1D+5b|v_Ma5B)DW7uVTR~&;7(8&V12OuBA#>+g*lM zA|^hZ7D$ot6m)l0$Z2mm7}Z~om&I16%DDItJ_Li|;|gUq@>mfO8#zE#P!d&*Ey=(i zEE$*D%n;?seCdP9MDcc!E@Ju}`g7ts>*9+IJ+LK&ykkv|TtZ&VjvT)QU!#MSdts;K zz`N{6U<*FKAPsSI;`rZN&$H-%jDhuJwl$6f6*aHc*ItB}qoK}_hvVK*72sfi)Xr1b zg^dJdm86dy$oj3GtmIdeRW(7@#w9-bgCn&p3(YG%BFiiQvov9*djTu-)DGRTVsL>9 z|4+eHj59T)f`rIe@w>s?j!%twk*+)d=HuZw%|+bcs2>fXjCniCgK?@DTx*q&K;FGm zt@l0ue*L<3woV)Pf)QkMO%}wN#5!BHF+4pdW7e|T%MPYTy@8$*1r_{6@s1$xW)mx- z?tlD;hccLi=;?Z}8c@&iO>Y(>2rNrA8qy8bUxEx8a(K|>^}wG1j|0X+`;XDnbaK{A z0F)1AcMZh*$zRJOxw%*K+kDlIW8PhCfk_L$$Fa&aa`xpjgXv?R=Q5YA6&z{%)nAd} zl#ui6@J0ka{O@zePe*36Nzzy>5UJCDS1l#HUZ++Xz7Xr+2gM;j3SC>Su}&Z2ejTTI zgz!l$M`rA~{sq@$w?1oTBi?;A@^`+(S@1E3b(E-&Gyrfm#w(xm>XQ$FaYG;WG9rre zIo~Q{6NdbPYYw{5E!TCrywJv%(2JJI(nzMDm13Z8M%Yo-t>lkX96~=l4w}CM2b9miW4L2=0=WF zC59zWP50oRZv-s|8;JV0t8p)*RUoY@0hKH(BFsDciAhSvOtwGR; z@1LG?3(GZ?wY&fSZ*VOmA96d%^rt!N9RnoFN7t+Gl?*uF++~ip>hDRW)-W3PsSpSd z_1-q=(KGSxAt<%RD;WP2+Uo*+^g?g1L?-PajHw!STP69)>++@q3S^-DIJV`f9nPOr zn>cPC>z?1k05VzohC#QqE?T0sz4?Rk&hafgjZY? zXLHhwa$PQMr@ZJtq*a;Ok7Nu>fVj~XhwiFf^Qm>m?hGbOwM*|=MR&M`$ab?WOqH`jUDhcB947CtMtO0>J2FWa1N)EAx&-SHIi`T zDz`h_@^4keFtugo8r}0IUeD|2`|OgzE{%4Exjt&WS+}a?s`WbbOv(B;HS0bL*|iB!F!knAc5ZXJiANRCRgD8keq&sk*^alp;I1LFu3D3pfG z&WFZ-%=#Y897z8La}g1uL!u3}Wy}UFcewyEb3UjN%}PMb@2d5A0+T; z{gSrW+Oh>DhesDpTF{1}nA;M@Gi|QLn;b)oX!K*OuF9 zf^oRV6qzorWS&DqE)LmGu6sT#ZoGp8SY*doEmGiZ9A0{Eyr~ZLs_hKQYs#{8Oc|KH zjS|*^sx)?mRP9(Zvq)^6hlIu3WKw!$F{SF;lp!EAdrm8R$hDH(Sy9>iG$Ekbw3D=^+*7?6C2JSbjr3a-q_hk7IOpt6K)3W@NlU#G4K@GW7m+PooDF} zq=yI~ib1|(>cMEY)fxotlF((WcATaj2I*IhmbI1R>{glJlkVo`^_ zMdry7pI9TG*(F8KfXpagJy2c74)(Bkp7pddAo=tCTkE|4^MT5fVg2nd(jhi6$~U0$ zU=OmA(;y3u2URv_^+GGO)C6RmPk0)#p>xK`)oTLap7|XkYDZ$vT>93*))2fQ3k)jN zO7)N`q1=solnH-U=Ad9t%6c@UxTP8P_i`cw_9n9dbgieA##h{QD*yJ$0JgreulWF4wDo`*T@hoSYmpC}v1NnH_5Q z6!N_NH3E!+Lvo#LC&3{`>ThT@{Hfm+ngWlOOkMuKQ(B5x$)5fxO_}PltR*5> zAK6cX^}bIci8m+Kh&g4ub;Qv2V0@I z?Un;}dSjC{mPC*K@fw#(@(Ic?!llx~1GWPh1|swntlh_YOo-oHABtKcn_B_&S}8B2 zJijx0qtdeZF{)6(hxn!80)+o5{Gx_{W&`L_D3CO#sG_2X)4E{lIp6y>YJ-xiv=Kdz zamJvhOF!djcm+ym7}4~dyyFu_of1qjIY^NGJ^sKsCCkH=Oc{~9c%ZdmP)OUHfnOQz zhX#l>n<&Un?ETIzw2@VYJe}*hSxH;8e22g-M4gb*d)PNkXkp=taLd@ql`$K~_HT)x zs$xRtf(H_24fDb#mdX3l_DoD{v zP%y+Ii;eY9DWO$RUQfoP0Fj{_u$trt3x|Cx0MNkrz6edR`esv`v5v@&SGqjZQeTSj zAXSW|wuA0@kG1&q-!Tcz0Z$@^M8$PexV zXyyq9b|z%REa;D@xfxK-p>uQ;W8{XFn=`V~}1 zjaG4jt~YGM6@HU7zXZ(q@eK2Jx9>rtFrx zN=_8E_Bx+R_UV7nX{lsgK!n#egatD{)zp!$cU#Lyf8vLP%&lglf{?zCSNlY06J)h$ zZA=rj)j%|;xn}~{UDd?6iFk0{+y2jeqDY#!Iu=`5AORa8(t#N4;=*1HzULz6teRDx z8Z^(ks&If>opRlD2%NuF{RU}&s=Wen12F55;&o43n>wS3a5K>eNgwteyZD9xpdk9J z=Wn8)^!Z)zYIJ~hTWZwy+J6{fhOHIB2?s(S=FiN3wESG*LVBGa7R-OJAKfJ}gq{SL z3hBehXXTNoA*rl_lL+hJ!PN_7Ml3hQ;fgg&0d|wuwE;4@*4;jMY`y{sR+I2}Cj%+0 z5)va=0WPM6V-DI+JThHHLRmQN4y+zjlR<6I5?y`XX&X4&5nrwb*~dW|+Ma0ECMC!? z^AR)y(}o{Zh{gD++vh>gCh&p|ybNmIMA#OS^r-~-GIrJ7)XYB5FmN_c=6MUKoo}pb z5YH)3h(`%wYU#@=fafaG3geJGK@tbMkqZuHb1$`{tPZCCDr39O*e)QgB?ynM%i>=x zY`^RH z@hKjbJw}@S7Uy=y=0Q*1um~i6w*y#0#JQN>W9U!&k&8AFa_Wwg&yc%N{@-df`==uy zc|Z5^{U;BFEj<8(TZ>J>AO680LxiR?(5UvEU#8J0o~}k6Kj4AzD{`%(l$V7Mer#T>sX~dXtnm5kO7W zf%^op22c_=BEM}K)rZ>XD}TGY{)CoZmaUa8&`7c8Ee~lv+@6W_bdW;%?29I_v?8Ig z!6hcicRlw7r$Q5V)JjuIXckrr?wfr7q!?i)e>X+|KTMR*BI-8WfNti>EmQ6KIf}}N zFJB&%wt^puzT;2^Vi@}>Am!R zxEndVE(U;hUOYj(YDiY6<-?EGf$`eCClm0GB;WRDbsFJ&X-NNU|5fw^oao#x<5DLE zw=2kUN1te)w<|3NS!c3HYd;RXQ81;48sI`Jl{`CHK=CtcCvAL#Ao=z+4wx#w+)jv! zq1F*q>V#EkBiUUm%FuJu_;o6BeB8gW=rxzchz?URr%??hF(~B8d%#fvod2K&BXRLB zhmoNRPHXYE0;kjz97po!CL1ns3`atsJqM?$Nbn%>+n2c3s@=uQnFNfN=^SNV)BT6m zK?BQ#v(Q_ufW zha4y(-8^MPQ<=30wcxTy6*JV^VRprV;{aVYWYxK8)OyFA&e1E}Mm*yi^$}SVAn~&M z?$6L0lS7eU0#|rjsb-!k7V4n^eGxBziHFj?b?7ZT3e<6n*$uWlwS8@iClDeT&#ZIc zX!4YzM~?2vS|Wz+>oFdI2i(j)!V_`?RDgTP&DzQv6R0t=;B10DF|{&#*l1P?GxD@Z za>8*no+eLY;|z;AH=Ai1gZjWjj`f;S&}aoRD~AR<5aJH`y`Xi~Y@TYlo^6e(ZPp9j z8CzZ;9by5P5%L^H{Af&S?lj$iXB)ONafKQ3fQ8N7&&Fwd_UY}n2R(5yF>B}L`M0~V zmN}%}`9Et4+#Sc)-c7oV9pan>v6W}ZZtcEe4@N#29fd6t`)<-7 zYQ&%snC-)74RjyObWYL@{5`NTyEW|4Fz!fP8|05#?R;Qx#ASFp>;iipuX^p)_Z36Y zw1)5TY)Fg`g7YiN@Qen(A7w%NkXklxFld8`3}CyHV7b(+yHu(-T`SkzJjA>&0vRC^ zKS%k&j8!RuhNKN;^`JBm+0f0bCE{C)qv}P8ej?aBiDlNikow+Or{;+KQtgg9s?g zMd5a}Fz}IqQ=B{l%Sagpk@fXz=SWrWB629a61ARl6UPH{!@fQM01f@0>!hFIXl|Id zyYpRz+?TKjl`&O|WHzlqr1@n3vj(gRm4BSglBV#yF@T`6QzJO9#TG`fWFz|G3)z_$ zAk_jc%yphZ&AJHIlv|yPIW`YpF>P!*B5VDmcm6b<&z@Zb1CPV)7NC3OqZ6;zdi9gN zf5rd_`Jc92f`l|KnvhJ_B$6DS?JF@+Jv{N+>@4V#jg~54Zt`N?I2D&3HQ&a%&6dyj z7?xY<7YEq3N6G_9mzs@LStNkwF$L38c5Q>SVqn*CV-#?m*`@pH`nuo5?{aQQ&s!YG zo+xyBdIMsT%-#20rsOu+l(`SrCd$aW?}YEg)!`0=qj!AQ4J2W3&psk2Jm_rOIzJ}U z9KV>Gw1#Qnvkl^>CU55E7l`W#h)iMfB)`-RidF8ju5@!{?h)6g5# z)rj|-6T=yZVByqvSEMm^{bdZUGN+@%W#auctD-2!>)IN2L1EdG!|h?$fG?0#ilI=X zo*`TZWNAr*0V0cMgCQ^pQ$xkD=+8a#G(El8^2bB%C7PKup|xGcxRNjb08}>-)g_s? z))8I}N^#SGXS>jx%DVvOthf$DdX%wVTKeNXMmH7U`k=B+52J7@{qSgpou|D)8oh)e z4xYsSS1x5U;lzMlp-3FXnt=rEWW!u1b&MG8ty1K4e(|fF`6N{$aUNG<{)Ew4+IjQD zfl1IW8QJ~6TlU3~In&~4KDr;ymlfuS)rO9edZ_rmMEqFNBo5bkO_#~>B{saz7*<+h z{cDUNf zcNo84VO-Xs0lHW1jQKdg*Nqe5w^q(KS^?!ESY!WEmC2hMO9gPFe<3`tbtRaOn1>Zq z9DZlhfRM`QQwUzBK1Ht3{h#+j{q`cID65{%7_uJ$FJ-@pUf^ z=T2+iRevtR%gCwEFq#8UHlItviR9GEhexh^)lCZx$rZ8n7eB$=%~HyEfD^UX#&KVe zfk62SdYl|1to8}bP*^1PCSq+0X{1H1UoAi6%qYE=sb>KJ z;cjpLQ#Xt}qJ#ic>lEYQrXk4yK*o3?wOz1zk@SuIqCGvi6X~hR2!Nkb@YtfEgkbg{ zt}APq7w}@EU0;Kvd|ey7GGr$6Tm$h++$R-rz}0%rHI znYfq%PMcQc?N~@e4|?UbH1+s=tbH}@mx!W4U&o|dy;u~@tr6mCu?#u)LgY#h$&98k z42&AE&-}rLEDpmXAP2nsUu;A@kAurE{7z3>=`u07$pp@JsWkKL(`HuMZYp{tH){Vj zwza7A-rLlg|7``f&}?g4zY%X^^AlzlG5WzT<*!br2;)pjk#WCo3rJ#&Q*S8vOMa`C zmpeMU8_S7MB!Q@w#TY=B<@KAw7IEj~!N}0S5e|PhHClj4=T?Ae{8o9Q;*X)T$?S2$ zCP-C4HVhZnbVbkABw>$54|Z-Nu$F4@0tnwM5`1%PWlH1Xx$4CMD8xM z2+WfBPb9WcO~h6{dV^@2GZY0_;9h)M_Nr0@%S*DQ5ndKXO25qbLQ|bG;Op}lyBI*a zf=m{TA=TC7LCr0;bq!xq0ydG_W&s-jAC2cQ2A47Us&p`?Bm*p+ zOO1QZVBQ5ON7Ry$-T-aVgKHZTo6cxR)@vEHR1GdiTSS|( zVI~W&`(JDQs!JPB$IH2O@J_Xm$;Mhu+pZU<2Vv)z&oqLBPx|dH(DOqXCByG)CHf1m z)iY^3Z-@#X#f4AitRvk+e^3s;Ah?IyhrROL=r^hf(h+UXp2#3#k9ctEr6NftO0A-h1YVP@6hngo5@F z=?=bo)p0?+U~i4*C={VWKZ&$}xWeJhrGX&KPB*Fi6U>sb5=^)=*1)bY?3jtjluewJ zt$)`0mf-qdn6CWXu$N*zpHRd~^3ubSJx9tHSuDP7eGzF0(2mInm#P)~Uh~h{b#7`( z07ksvI#5FQDCpkpc=LWpk0O z!(-K4WtbRAx5s6Uo36b7wF%E^Q&)i0Yg_Ot6d=lxm_Y7fSlT}7F${1Q0v-E&=gq4X zWZ3nUaQ!oN3}|lMGgFwe3v5EPk-UEx#cr#(lUnx=1ntHHDzN`PQ@yH?e6uc(v=<7z{eM{SlQoi_ENghKmm zxA1uXQIVx(>y)^QCg|mt2f6{_)GGw|4pHQOOX0~iM%VXNQcl!wh%fC|9#6jx6v?1q z?$5uu`7SEjMNOfSm7xW)x|nCK3kbK66Fcr{GKF4|YqgEAGsXJ(<_jB=NLnTlNt8~{ zD9hYD3VHtGq(jWasmAU4*_c$=RNY`mNZTeH5P{x2rbcD@wkXJp$y3aFqFoK*dF?=r z^+INrBE)ntDfNS>L zik+g)iLxc+QU1HK62ft1QPD1fR># z=!tL`kv~@MkK^xJlX0Ovd!vU@=}_7_^b3c}%A(|Ih%u6$&~#PQm~%)gxbc3>Trc+F(!FR4n6@X!DTx3i>vMq zkv#XeBpr;x&sh0uXl=FfGY|GdG-OmhbYDBnAFnz5!01KNsid)G<;GnV3N6xyTfh7# zSfVBPHMrBxomhf7EYLU<19ly3XVU7y^hozQ;b;e#Gz8QOWjWLT)7-rT|(;aCsPv<+~Ojzs;d_Js^JfmliA!h+FN$iHT8jUf8@dXN{h}nX4G5(XH~{ zRK(0Po0i6MJqD6r(#ylb^su>ai>93X=$SCUyhMFItH|CW;cY83$GmAd;!QrgaMFS8 z6RQEw29b))#f<;A8UB!kF2P};`>iF9|9yj-D-OQtY`ClY%NsdSWk%{TZZ-$DKbBM_ zmV`K6?$s;f*{*_>pWiMe0`KWDtF6wepf57!>CmmeBYQP4Yer)D3VRF zDuzUB0cuGJ6JCfQCIbZoQKE zCIZd0g?NQ(c^AQ%LN)S|d9er8-P}ZbG>CZd)gh95KMvJCCNc_&fST0)CKU4S6R8cV z^90CLMAk zvyJ6Qr5Q}TMTP~^8rqV~Tgsh8N^I5=nMF;BH<0~>y+6bQR()wrc%VtfA>snI4cI&x z0!0p;0y+uy2n7is=bb_O}J0WmhP#oaf)H(Ck1 z4G(N&U~>RAPEoUjc_NxC%|qu5oGO}g&9#y^lQGI-?dV+M+0ADE%53$ubro4N^;ay6 ztRJ+aV}cRh*ELg4O0xd#uUJ?hI5a@~aCbn4u)F43i&gUjg5yrLXm7b$1LTN14KLuu z1!Na+;!Y>M(RQ6FBXHJmz4>EF|FOmWPNGR~{(v(7FyihOAQJ}7Yb~JU76?+^vH~Bd zfE-S1{tDpSP(Td@mY@LsD2|53{JUpO8QK~F+)Ut$2>=1+j0EcN+R^$*U?%~Z1S;^u z3qP#z!-^jjL?Da^91#I15Xb-oz<|I*pyz3}b7yzsuI8d&rtVFPqOG}Ri7!kPD-A1A zQmVGDH5MzjW4l&Yhr<6W7KUQQcJ{+qM>8cwwy_A?Sk$}6v1TfC&D3vv1Y>$#a$&s*M3-NW&5>^6~4~3`a&W8c4&X(fD~Mf19E@WjA6B=t}_&|ni14spk1xq z&4~A{w-+5^!m!eDbEh~LqeI&{(D>{5WQ@DF=J4{(fyMok@EC@5 zjwEwL;O=s$A%~G18lZ^)-n+-4Q3A~kXj0(RdVd^e#BoF%x4L!zNqBsbH3thTc*&ZJ zgM>JYc*p<+FrbS&1ws8gd>Ie}1CTiC1jiB_I(OTGpq1RIvt@HAq;40|nHf03`)TQ2+{R zI6w_5)S#k<6L;{H`#Zr;6^eL*L*Fc6zJ_Rbr}x{$vi7;sHWF9`oFP!FK_5M|9~Qpd z_Ri;-l(e@b3Gg8SLJ8O)4K``$k;V^c#E?b`1?o%{SUO^jc59xYN^)k50(IujJZXwX z4;mPl$-~SOW_B>+M9mp^oMFQmCo|BP(SsQ$m;rz?ytpYtc2kB0IxjHi^)=OL&TBy) zQ0FyEm^rUm!W^0M0L_T z4v7);7SA$%e0HLf^SkCU`=*SM8!}J0JH^|zHGbW;okHe@%)F5|VJzVfV~jfu!n7CMOnC7#d7$9Q3Dtk3=O`3`EyQf`a=itP|G0$_r(?{x{h~2h+$(9vfIg-J)x{U5YwXAR z;dG5@Ew*SO(ku>{B8!(h)%GR}9LJ)KV_^dpsVnxl!iOvV3Jl1wq6;fvu)+uhK@d#x zw;j7!q@`}&GxfAe>RH44wi@30<1X(Q)!R-`gOvogEi)Q-&$|jRUaQc#)36F2clW7F zJnk;OE&Voc){phGtlhS&)oxoVUSiO=7%whnNX(HD(_%eSpqWB9g%di3OK~HGm>Vfb z-A`1;r>X6Y6thNQCJG{02-736g z-*6b;CKC8ptSGw}yjbhD)%`FLh6&5WlO@>rwz?&t!;U{Jf+5w9bV`0TQ#3z?fPT|lQ@PEL(jqS@Ar0AmE`PVqLv2{qyf z7c_slfZ=j;E~g@v+`R~;`uU~^Cq;xrocR%lmk2L(;%G#aLvK@V$sK%<8+ z?oLM>t>(=_opKec9&L=pl3kmcDGE|Em71wk=wh*C*N!{mYsb9x)JaIV*lJ7r&~|N7 zE_<#WZP$*O#ft5`NS3i3+8>2hw!_JawHm%yhc#nMhcOfkU10974qNE%aTk9&h(1BC z9Ma^lL=IZqK`ByBL@2uJ&vveVJ55mUUJ58h%IdaDokNi)eI|1_I|Y}{`!b8|x$A7|@^@a6_2PG4z_yVI7E7$uz&lpCd%4Qg68fN`h0Wdjv_ zW5daYBf8#dVB_v?yH?k5rUoy5Q-hMb*8sYE4LI&jqhXEHFymUS#%LhpH#F$*rd1kL zSeBfo!WZqnrPWx-xci57#IgkomDl};1!o2}H#3;InZe5pI-em(-x-X2R}{cvv0^(l z66e=0%kG5T1v)WwSjWN4xMnj><0~ai#r8Hv2{yKjv}aQ7)*gGd@w1ff(kRdn2uJ)3q&-;FYZpKZmMX0 z5LDp|!AarazTl*IxRg`d{iJ$J)&F8pB8FKEDa3%p{$bUyS6C}fkw9G?iXzq-7H#=o z`AL})U6twTUyE6|b_lGZn%CkOkV>PQ18zikH{4AF&vwRXy?9o6C=ysDrBl1#x(97T zwLxl5)O4`*GYI~!R*JudPZGuv65)kZLLFKlG$?45h5~Jb85*ZZpiN4BzU5ECIt<4b z^UjI--a1qG&T?uV6^g2BtzrNQ;uPjr&XAQliOjjRWm2{7Qjt6D!z_fz$>>GNY_$Tjymlg6~fRxu>*6m><|7#I<-E3lJ0 z9h$1CgxanRZ_Qy*EHWzcpoKOqIG}|eS^&KkrnC^jE6ocC??rm*r&hA+nIX{pG$V=x zzKAhN1PD%UW zQYX#2Yo57&M%f~wlNB*0vla5dlfs54C5x0FDMwgP!vYX2D6yb&ExF)ujd3qw<|o%h zku*4!P^8rgtTMF{EHtMQinWp%!o@Bpo(qY8P!T~j2!kkkL=h83hA7j+zZS=EpCnqX zl*|(5oS_mrl~65WO#W?)7z6F#0iE#E#>t;D-cJnP4-|Krq*G!RK2v-I&=Y|kCA^*( z5}3nQ*D&s4OV;dEJ-Lg)z$&XJciV2VhONid4J(1@hp%P%!(4ML)~-b|7V5;3u~@Mk zqnVni{H)lHi1Ev)=9l3sqhXx2i1ACmh>JvwU;0IyS+O0~+j6}@sR7D~f~o)7SZZmjW7_-Fk|b0vIoaDeg{nQt&({a5zx{$(nmX*My8W$>Q!sO@f-7+&zcITI&QgF4qY_ zoN)3YCP}WX4I9pUo06|Ful-q@0#tVwseWDBf9NwVJTSmGT8b#g#j)rBrnB!P{) zM}isLtsV(WNN9oX#GLz&)g&kPmxLp`fpn_EyToKFgz2tlwjl^=P$v%rG9Zu? zdmwo3-UntrAaOqUT18-vRe2MQ`>x;2vVW(6do!FT59pwuZB-PjN+%h*X*=bnZ4P&9 zky!2C(P1789H0yD05lu`bb6AB)o$+qH(m#3bU?a${aY-i@6@UPyHKr;&)66qf;CX6dyW(!8bN0E0!RmQ4cqw=t zcsFo(H%YAU9(`OH<8I9|yun#t;M8whHP>o5SFvi@hb)b|wP>cU9c9{XT}1+narX$2 z#d-v|c?7`8wJ=cQVIaoCz(&J5@wTxeMn`fsZ~+(I1zawea)FR{!4Yo&hmbLVE(3@S z;E20t3^YlYDNtJwoC0Wh0x)?Nq~Td0h6PtV3u2xHN-CH@1#eV7q?-vx2+R7KW7U#22wv zQvWuEkPZZeuS-J8u!L+Ogd`;Bh7ixeCMW2~bRJj5S(6iVf(AjICYbRn`N!2NkD~-` z%0P=L0~|6K=bRdobG2X3S(wLBmoixx*8H>4;&!4~W&dJnulp4XK}YtrI$5+-L`wlUWGe$u|5gk>|C zZp(B`kl}J2>(*A3Xd-v&yscvpT~u5vHy)$`0$lrpAanon9YfJlj4%+DG;Hz=IDR z_;|91AA1b3M>t}fA2$PcAqB4;X9`4}T&+DSNYlp4(AJGV+DdZCs&JhbeKn$tC@Ah!ZyBXvR+swT0&zfhNUAsK7fZCc!Wu%Cbf95@G#=t zk;c6yRtg&3p>szCc95}SW=ByS9jHT!I;PYy0v#T(_@g*&vn|P;nA+9c+}$dQHut05 zHMhGpMp61SrxGP%rD0KtlKHnSCgGh}ll{e4CZod%I)>)hz#L)bz+sM*Q%#wa>PK9K)l5|Z~a-VUf0_TtWt}y>aIRJv_E2L7z}lJ zW=h0(cG~3QWHK~C_>R{45D)FzMH6(zLxaTKi(}1<0ex|dX~i)_4Co78yLLlY&#rx| zRg3{hFyM#*7r=1`99qDE;qY;f0ewPmB=JU-H&ku_;zk%Zthj;G#su2v!fOMEHgeo( z*FG=?^xaa6H3szQT?1V-2K4#3Y9L5sK;LQVjAbk*C5bmHw$nr6y#SrNt1@0d5Vqw4 z=ovK>1alxNMdEz|&xmn9qeR2k)uA&W4Mody#)!Ma*r+^gT*1b-h9PTwu|~N@&KeQy zUdq;0XtfG!tcVKjUJ6)ci}f~Jtk@1t*O;zb?;a-$o$S#5i1i}zmi-m0)lj3x7pH%5 zD*m+i%66&7Gd9nsL%+QvBQJ|N0q>?W#Y#RrOz+Dzb+Ex0q3C+nJYVH{ElF2WGTkMizH!D`#`pUPJ;#pB<$?Upft zGR!EWRt5$h8De;3WN{ZsOS?9cSc{b`r?y?I%bj@fIAR*9``cd4pS334c9IsS$R*F6v!FZUW5NXB5}PRD>_j-iB)p&J9oo%*=MSaPQ|ml#*L`^yt!g)(cL z`nbxFaafrwUWSU(GB{<9kXhqo#JD>h$>_*Hfsr}l?qRTTr&`;gFwQs)0}RGtXj;QK zzrwHpj5ol@0Sw)uxxf0_s%hOd{Gu<^d~wGYJbVH4g*&aECy&ppQz!ZSw^`ma)7;GU zuN9gqTEn-AI)M{MdoP6WLI*EWUF)Bu|F5wg$n`bZSYADrmkXajwpd~d7q*CCj0VQ2856{qCR!Y# zg&23L$$y+xq9jK2DN!=gZ zRb@^p?ix;QS0+pm!xTGGct8p{q(GfyGHvHn)oz_1X7Ro}d$4oLB)6Fi3z28uQ1%)Zg&p z8Mc8aBr8>{oW}gENv|EN?(Mu~u4DcU#%~j|-E6*|ttND^CYmt9#FBeVh+#tK&P31< z6GpVR1RI*gI0cKqS?A{^bhNFal|@Uu=n_VpYHP#)vh>Bv7m#Xvy)R50AN|HhN@yj% zPy*bEV%?yp#1VH2;v~)_k%UnaP^OoJ5f6za_mCKa#LbNB;GzZ>B)HsCAS&l`-Boa^swm=F5gjN3k0Q*dF1}t7WD!t`C_;oDM3}jj2$2XM zB0M@9g3Ayd7A0>Bjw4w~;ajeXm053EmaMLx7BE_F zTAcW}rYFRbI~4*9{9@@U_5^Vzh%Q0AfY<{FJb+k&qhaxfK7O#{2O550lCckMd?3RI zn-4fXcv;wFnWIdWC9>$??)Z~L5r?;8l8PcGd$^(pqaJv8z<|dC9z5tk!<7CV%-Esy zc1Xd~fe=rJFz!C$3{I66MNH=KOw}GA{5tK>{>av?XEpp?cMfW}=WvvRDAv>5<+^Vv z;-vXFsPS+xgM$(dKQ{z&!xT3tInA+n!{`lA+`$`+)bN$mc<3pOQKEvUr*wi1YV?cP z1~E2>UPA|J5K{xJ1_RJg0UD5?!3WDASkTaSX+5hof2cxPEL;4?V$o@3ob!(l76@h- z<9;y~#~E%;XTU)M?+fYb(3Lh$b63W=cSUz)g&oqht(_S6Zx`h5_hCm`4>NHzA zFjPnCa*1xzs=Zt;OSxHht-+KOf<6B5Hy)g+honbG6ur=U%>fa7!vDWBAknj<$mjPiA0QFH=7N@IJQfoU3;O& zxtLgQy~VVCp}$17zLebe!QEPfyR|4!cZa!YOv7FE8E^dU#tuCEPqI3fv@d#bCfX2x zZ>ul-6>XEKa#j7HjXzN=O*k#SWa8W%$xSf`V!IZK4%|HjD{hM6rZZJ(OkPT7pHyEQ z$De&3tq3**cb}__bAF^MH(i5dc^qY=meGiOvBkUGbbhq?rSTCF9vfMNsn*7Q*Q}~3 zpeDxMEpSuq3sBL~wN-qY?&;ZN2s2F9rkJC3#&%FWTFbSnPdp?Ych1 zJ#Wh&;-1?k-$xW{kFE~!?2_Cik*-l}Rg56#0V@Q9m#wX+(zZH#aaOe})Gki~h7Me} z@%L)oCwEU4Bpvsi4(IT9ReW()b#;gc%8Jj{xCeh5e;a>8RB6IFDT*fKCZ@E_}lpN$rxyczwjSutl!3;CX%Xvx1ej#Kah3~P>CS_3w4X{ zT_c~`0{KE2j#azqA z@=g_0kd5W_;dSFO6VV&)?heIGL^_~Oc(uy-gB_xjkI%=3hIYnd`o=IZeJ^*@XL1_a zY^ZgOXqQAeEVNr2e?%|{{mak<_#<+I5D)HNX0et#+oK<$t;5Qr!^#uhR`@$(*v6l( z5#du|$b9X6j`eC!ANC@u!f}4JL(3xskev)SQkGE}eU7|l}S6`bfGwxQNcVXiX z=YPQqE4(MHJSO-+areQ|*ACIy?$$}e`?E9FpDB)3Mc7z=RBKG4PDmhFCAC4o(WHjMhrmI6#C$Zs^T((a(`MA{F(ftIpeUjBS$%Ylj zO*>&sJ71=@)3g)wCp*VYJ4oE!^h6N9Hfwrf#@$yOFg@|&rY9}9?b<2&i%(Bh+v?M}?~=XVvtIJR+; zeO+vAM5u5w$i`oi725dwBr9}t$@A7H6iYlMtUS5r8sYpe;4g=Tiuj-)2obM|55r%0 zjb5D9YqYy{2;*205m1PY;qERsHEHA5sAanr+b&V~IR6V5e?1p}n}%aRIHtq@?}+v! z?8o}io`gYgbOIagMffnCki}i4O(z^tFT&)Fxw_Hz7ZVdM?*0K7CRT_R-6x4e(QerPkT#aXSBkDqM;xw6yKz{;i1g@)I4pJ1#-FYZ z)m?pl@VBoW>e=|i-*v%4eA_?tVuj_6KeFav<8PPH_}dl!CXKF<&&J=2v#Q76uGdD_ z6}rO8Bi4(Hw6G+L-nEM}Edkx%w4{kUy+6TQMN;POJ#L~-kTYr4m?+jBP4&?H(Z(pM zg0!icIUq;_r%keX)9kFye)hxD;;9oyvw1f6)-_chSKsccRl8-oI5;^J^%|UbpHiXt zc1PB)+ESg;v}<9LqI90&sY#so{V9`z9|-2CK5*)b0xCM1HOx<*Cf!vW&Tsn-!ax-j zqA4*D2b_5Sl-Ywpu_)h(rWNZ)D9jyvbdrUF$+?Xl~ce_@-wS zXJg%Mn@ifmW(boi+4n}nB#uaRUqnROoAxY<7-E`VK5z)Uh!pNlBntiZtrzLR-txAY zG=V`UdoYH2kpvWJgJv3&CgorJgh`Xqi=^3hf}&_~xVpiaKk13K`q~=}lRqI1Uuy__ zFcshgQwLVKgQA`~)1TFui32>GUc2OHl}DvgnKsB{gQeNU5lyg}NFh{lA`_Ur2ADSB zvR|7v(7Ai*rVSu489)Q>PAA^;&M3At!G@;oxP+$dXwo2!UZR)WXuo&c=1MLZF^$g3 z+qSkPOIDiP`!;ta=M$3#XG|s$+~*3{u8W3$iM40z(nmk84uvtGYh<%L7{^|r<@t@j zjX$Ft7Q#3dS{|F_5yd*fFpjwwxuHmyzhd>&P6Q1Tk|*xk-X(b)ZMSCCwN>>ZF0SyX zB=x1+pky=x004jhV-Nr!AS5gn3`c}gv1m3^9~1xpQ>K()-KaFuBORs;Qid2q00000 z000mOIL|Jt=!&8L1t-nqACROGVSVe%C!Ec_!aHO9lQ=O{IV7C0T_3JAxhux3`=(tS zs5u4Y;|z<0iMM6C&6?W+gqr)of%B$QjXf!`^~x=)t09eYvCtI=11;&QFSM2qwE$vV zKBm(1Ra14)!+Jwr;~Yt)^ShHiB-&N?sP1l3X%vPBx>&;fBV0Eqs>9wC+(Lx&eqRmU z8I>rHmpUu~IboS7&cI*z50%n6#iWw7TGo(gN+a*WtPDVQQCRn>dJ#7V$u{ei^Z~!mfw2ck70Md zM@OOI+|~eKf*2P-_iXo=Q42KX#(~G&koAL-;LB-oY zwSx#Yt-lQ*#s8Z&F}rcTSWRmjB&szyOdxSD_Iq`i)D?*lv2Z>N4Od=^;IrFll2;g? z7nTULcU#`YG)zW&pIC}TF5G1rI}+)0{@`U-zG$L(l#wjLd~&y)oVX%}UGm||W z#k%Km=%+=lrigazu#J}kK!*<YiZA|ZjeovIhuhKK*Bt~PRD>Eh4!sJAH{lOJe${t%OOC1Dpr z5D6$0E?Tvr>zqPwg=pc%!dBT+*QUTM3PEtjwti9U_%|4a^J}}|u_?S)o9sT+Lrp7R zV|@f7m0@$~w?Q1dNTJD$vXtwCEy6hu9im-!DkA71Z^p$V7DKOGjgVf>SY1&%+_Yqg$DGEG5QY&^U6;af$@lGncW!dcpu)t}O_t;{y2Ea!C7u0Mk@^a^c%J{|^ zYwrp?EA4+F1;)y9v{S?Y*iee?_7$!+67a8^3iXa+3jVp;6H7y6>q9V;mc6oYO9S5G z?56~?dJ`GkCbvW`z*Dg9jHpn>RtvAvO??)?0Fw!s91GdTag&_7^xDs(UH+S<^=LGKI_CqgvB;JOfLpfv$x2{@Nt&XF9g z?B8VeL%`Vn}0{S~rLf)(dV|`!O`1DThQJ82C{xw`Xi$IHsHz{Q&%9PCl5f zZ%GX`v|x0=xjXFFie_s9VODgAwOSg=PedJzUMX0=m`n-`M%~;~g%(Y#VOQWzWcuDC zqW;qA_P==dCwgSpd-zGZ_YL68=~1Y64?$Yn6SsQr6rA0qM;|G8ek!x4q%!N%?dl-H zAJptXfNLa&@^{*T4HXCHJaIVhXGVkL)ER@c~i(YY-Z_n7Bg$mlSxygslDl>uuCXk4W5YG6RcGlY85RWYf61FC}&+s2h6p z+EN{tU*^3Y&7>a*jRgb=5>R2t6G?2OdPS0e;(wZ2sCBP9X>)eU`}heT*HQ+buTy{* zVia3=N@Q$fagJ|~oc-rG1)-m}F#=)b*=CZEKlIE8aZeY#elJ)~Ezfxdqt8?~LRK>b z6-0T+I9QlFejy6{HpC3?MX~>cvYj})%g9+VPw0e6Vj){L>>@MF5KxU;!KbfJPelAw zUh@GQX9+O`JayVaN2I3Jeu9{Furi^O&&mIl73KfzYG4?vnzXxSD)=U#KP5wP3>iK4 zYSD|n$qTX7y-o=je<=7XlplN6^Y%K<-z9;mTJ8dp?&Is{6R)n?n3qf$OhsREFqZ%&bQL~zSnlS_=uPhYU%40kZ&!a zBVj3@J52f}DHUu-muwkd%VF4Hev7aClqFX@7;?yENgxAvEm^%c25H{9SZbJ1>g)nqc%XRrh~T`*6roN z3PM@(+~ChV^WO8?lYzwAb>Bow!`9C~o754YYp>W=Rc%)*EJo{ap9B>%*fSWV^x^8j z7z;#8&H9`4%I#x-N-(w;jk+RMd{PIuj*awC%9@YwZ&fIF443&C!b|+lglw);U)HX` zPf9f+3c2>Y)xk{ZMvGxB9uCh*WP?N2>{sEmOZV`vtgbhfR890@*@6PTgJTUJ5c$37u8mP|Ag=t#~~95e@?d}=yPBSvB_|c@UKdC%_<;kF>9`)+>kHW z40ZZ0$drv==IL3|r)&Tg2qOy18EjaIQC>oZZ<}70+f?4`bPbV9+iq>oZ)qi~`p6(0 z=p}0urs13I#XjguD|l&k-ogOJCH7n;27$<4𝔚-u(<(>TT97UXDOn4}=f>+9qb{ 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%0DQ?{ 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 z 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

    I_ zi|8?ezMIg~ZYI%-FOXylbucs>;1b&!aE+eElB*hR)ulDl=9Q0YzztZ9DTF#WsFBP# zQpM&yOU*jg1?5aG=n3v#^Feq{maOc4SZo4jwrQ-XL>I1=bVwdCo~Ue$I5X zjA60x5O`USSQo(5+Y;{ZQ#Jg1L|^H&44e68h?mHYseDGepk8KfBnywsJd2}A&#A=NqRim+KY%9gTm@3>GiC5`gp}EMb zgb0Z$WF?-^y8nhFbBEC^(rGqTmM3oVpK0aUbEZ2a&Vzz|qGF$c$DJgg_XxLYr5d>rB@%M)XhW>z% zuC+lj=Fe6dwTs2^rqMxfDDTH8w!sSYC{`R&$th?oQ`oVa~uKTyGa2FSo}q^o}3 z$X=;h3i+;2@bGozX7uGta}$^FD+YsJ!6A~u-UIoB1`2@ZkgS0;$f9bqUFq4lp`x7U zjIb8Q3?u8Zf^##dV&+_Qh{43sM|Xh`hYf�K34zt_8CIF9z=a`O$3Yl*P7p5adAc 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

    #3*2{@il$`A_VEYgsfMM=7WO*9{6#I%O=a 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⋧{Z|< zqr`Cu29cl`m=g}2*#}1on-el7mZGa#JqUp7_q??g!N;`JQzOBsCOInnsI8|BMbLz} zjsyiy-2wHh1Q~%qePZ;w6}d7EwzjYYL{}^$wly~`w)R8>o8_M=DKQb)&heO-ipR9A zV=_&NQOA+oELr}OG zLsAlIsKc=2xVV#TPhqbLWI(W@unw zz^yfqCX|g;fJ*W7d;O18h+}^K5rjn0_i27&A`o1nONR_9*S9e4n)a&AeyiSE+CymLh5F#j;9h=nd)+iYdP z{G9XObhrnwS=FC`K3SHf_R6f{{lmDI4JlzfJj+9b2k=X-*PE#di0V+ih(ika4M{ul zKI5EQDmFfG_7Hj0>(;E)sKj5^{g;o`rU`^!>AMAeq7^Dpzvjx49jep;m4-Sk++3v~ z3%_hlr&Df~KR2GtCT&gMB-^(4MzsO3l#XNd*-i7x$IWu;2?+NVOxCh$32e$Dn0lK4 zs*bfjNhBCbe;H5{2>!NIFbJ6MuR#+(v0;~9VSu+R!9Nu4T%i>C7LL|_RYs-}smfc( zXZ>C$cTialf#u2;5rYEnXlX`~Ng+}-1jA8E%IkRwpnQ(7ak*>^ZdxW6C_0ZQCK6on zd8$nz2HvSoB6GgoLRRu1YnX*OS^FTw8nGP0;}A9B3{t>d4{qVi$MFLtaF|VCqb02a zf0)N4`NlKIHQ+FpnD+L~9HJ%@DHDUC>23bA5F3DiOQvBfAoS4-t^eZKrIRr_w!{L= z5B#hF2ulr`BIxbbn~RCZQRwY*vJ4&i*inkg1-*f^n8xd&YD76Tfo?WR)<%?)Re2^R z67@2IMi<$ah^7*#3~_9Nn6*HTA#F(wBO}EhMI^&-kK%f3DeA$3ZcBWxnks)};A%CR z#vg zF*;!HmY&3@rNpIxyE)$EzxQEpw!zm5V;Y&S6A~EoPYI-5*^avKKy3)g$t%_B50P~k zm-o;^;RH{)a6a5V$6+cGMMuxSlL4?P6mj6H(mxH5cIVXsX!82!^{+87t1%*bEKMDd zM&I~tM}-msd9UoBmxelE&y3L9qwtsGp#Ppf(x+7X3kGeAUx2@zeUuS6L1FbSJ+o`~ z+WB}1R`AvCKq;}w_d$>v-U6UXv`Dib-D$muYs}z{L!MP-pzAt5)fR(7IDD>@@;q-K zVBImqCZWmaD#cSvMAd{iI_BqHi9t#}4uY==Rb5?boCYW_f>2Ed=4^D=cXkR-jn0pl zpNjVmqK9MHEWlguMoiD^sY02nC?w0Ffo_mN#I;mR$5xn=A%hs#dP11Jw0EIhzXF)l z06{DmO98BGD`48B;wvD6Fz!8`(_F+Be{FIM%cr;uQ?mq1l7LopgRrdT(f5d3KdxF- zDr?Z&6jr727sFb}W+FIBc9&Dqv8#J9^o_W(oza8LeesqB?_0? zb7>WF)`?661PyqLC$*SRjB$+iNfs%=(kPN#S&7h5=K%W>Tx)(SAu9=;B#UKeyZ2RBl6F$OM>;s@9iPyhgcnadgmW_6nMNQtM# z3G3$eUzncyhHa|h_9`=q$cQ`g9WBxdd<%QwezT6QpV|$JC}G(9fKz$Jq)6N&yCm}> z8W_}fH9B@f2Bi1$PzF5nDpA5}32IIA>?(=p3LdZ`mWua`m1hx;ec8*4}0M z%b#(j>@J7)oV$w>URQfsI@EpPIiTa<_Ai^)h-@)9~0?t&~GPwxW% zQtgU|NA(yWIG$K3iI19^dU7#^su{NtFnjF9I10Rw+*-I0PFE^Uv-mcy#Ih7CPm#hU zqKb8LUZlJW>NMAK%%##)C;_)3TLh7oYlUda1h{%jB!^c4e4l%SMxnf1OJ!0qO5vEl zFgA)M52X1e4q}xY__ zkxL{sx_TiJw>#)dlYh4=ruS4DhMK`93O~Ck>+bI3C_v(f(3^K=d`9z}!BmmuDU+Gq zurS*6yo%Y4FRb%(LEvdF=#OjF^f!Tz&2QL6+(yDy{Y+!O8A$>5&xvNk>~5F|6$Xk&YSqez6ys$s^8+sP zf`n=OP_wmbEm1=K(N0pU!E1KO5#@=Qs|eMJ8S#O_kU^TxKc_l3h(`8Z9E#%_H_?tN zrTGf+7BNJmq=2uG2e%i|WN+of#Dx+hv(bQQ>}OidoSeM8tgOpLG$bShiKN#<>eFeh zxVa2ke)adbAO&ymxW|hJNAG7xLNpT4m-?f*`NsVE7pk193?>{w%gq+SKb)3k6Tj8? zc)8SF{`R_Rg!@l%7f-|O>REdGaPNf5v?%~|!+C{a3674LxiboPQ<&C}J91cwovb^r zu6fMG-@T}-dE~P%cKZ9wA^~Tmr}&&rC`{)0;4_&qV0o(huBn80O#*waaVsaee*{kD zPR(!E2rv3a&9wkmwx+KE_6mnpoTa(m&pyoVWs%jY?K>?#1JBWpATkx>qG}qdQjO#j zu_C~cBv=`xj07`vCNMNr9WHN?F<5HwfdDi(@pWx@(2StaR9xC)oKB^{)2M8)I4r91 zxPi>Zz*u@`M;$IwN=PI^W(Xz`C@`nwk*t6r7$YW%&OtCZnFMJQ)}ugOS8~`7GGkc@ zu7d~|X7msy%1#DmSQIHES7e0k#8ap%-j)uIQPSVgycNqC+=KSd>qCxo1(k}Y&DYDX{EJ!->&fkdA$>i17)X7;Sa38N4aM3qE8@B11I8x5t$5N zLL-+k3-Eddcyvx)7yU1#FGc{%j)7A918I2rfzsGkp>PDfP1Jya(w*JEZ&ZAN!m#kv z3Cb+2-vJEbkB$~5r2U7y0Z|0Vj-Fz)1?hOSr;b1WdAK-?0F{`0!dr(8EsLY9%geJm|LFp4SCK7f?PjXLB;nXly!K|d0%*#W(-%lXc3{Bvwyps}Jx%PZ!nU4sW=@j_&U ze-sHAhHwa2BMd{%Cwlkhy7fdrp5!K61DlDj^Lc5^F*NN3BMT!se<_N6;B>Db1g-LV z;>+E{@}uIeduKKdYrhRf7_coZHctQT1Qt5da2x6Pv{lZwRmpGM#J0d9nrhfE;HheCglH z;*Lf@OcfoNb&})wiHK+-9}xVfGb?}3D&VSz9wPclvnZ*Yy49g8@)O-bP>Mze`fUJM z#Q5I0Wb8KvQGyN_i2O)S2>RpJ+WDOvO8u%6QjW$->O7TwZG)X z!+Lx7&b{~ujd`VmNK>v%i|$!UZRUxXJn*%%CQ`?d2K+VrL6NfE)ixM6DyBAir=vGd zSt7Z!Nh!N$eG(#(c#ydO*%6=7EkIiSaG#b3mFh!Ae@8d-_g)SW$MJFhC!RQ_B+%K( z-KWSDtCd_~9pNsK_qz z-9mURB5j%6!%RK1(|vHs){q}E`3TQ!Pp7QM0gPN^kM655%9Gz#__v*NW>5(<6XF#LC=T1uwh{-=78au4U_c7g! z$*@_h>SRno$3nQjgOaU<0r$%*&W&^a4v*`mJWsp* z?V$WlsGZ>wrnHXrC6EC}h3Z5|E;?W(LG8MF(b}%0UFRvMEp+X-CGTJ@YU{L&Mhl>{ zIk(JmXysNKNZr&02PBG^VKDE*A)~g$kZhrAm{h0nsEn)YE9Ood7Z3`PVD1lpwdljm z)3t;fL<}wv;PS>!DU8vnH_PxO_*iExqyPlVC!k$Sa*PO8hfKMAC9qKJ+KBMWV$E%A z_#r_Ao?NJ`_a3S?a+{fUC3A;_LEJ1xnvVn>(b%~rh%guLTnXI}4Gj71P+^AU?Q)kd8tgQ3x$cEOGdLCeY* zAP=WZhPPDBYlN55X_O^N|B@15QFhWi{**KMZ(65(<51>x7k$db*jKCjdpr9lX>C-- zlQF9QumC4r4oS(;4HGO!n4i?X1g@T9a?eJ*`I7sp7vcU>-Uht_O=US#q$2HsB!xWR z9e|r*Q$Akn+>3ObTF}cfMu3$Y3Y(QZzb-~Yy}UZj@RUos1VQMK7;6d z$fU()$&60bPR9h5pBJdUQ0_PmB?PpDm%Gv=Pd$vTQ*~jHh{3IgJB8Z^OryqLiFfs6 z8rEQRPw#$h!_X%40fUsqf}__n#@=Vee*wg&N#qm<_18YlP*_6_Ito}ZZFN3{!4-Bj z%QH3)n(sBuZ;A74^Pfv!%saaXYgYnp2pBBKCJlJ2Mcbe#7Yj`Atm{8$&g$6TNl8M5 z#;8tiFMpdF?~SYfoW{>K_P!>ku5&h%+`$#hW6fv)BE|88KxYQjfzK4-6{_0eS|xFV zJrR*3;EyXjWl#EOZ#j`=+3Y?Bt|Tg1lo_fkaOM`5%n=b?AHyaj`R3)9vgznMtB!bpx0GKYmH!JfP?5`LH|LUZp@Tm7Bnf44?|Mu!zEas8D9kX*6o-5R!mHSbJ;q*wMIE;1GuO4q6 zPnktZ|2$)E**9S?qXS;GBxVrZiM;nG*|B#7E{sZ3K7`*wJg_?O1DFvlBVi>S&j>A4 z9hsDT3Up&xZ*^O*jo>mxDHlY_f19+GgZXsNy)=v%8Nr!TLp_yMFsQFuF&?RZc%=Er zoPyL7a+iQ6F~;QhO!dGXYx1AG5{!!9kyixX*}^yCg{YswX zgSZqLYL1`}aHo+SIfwKnj-N|XCxokZ^J1yF;L9libSXstu2E`&>!RXYce55`y{UM) zGsNZlNp(h)b?zs+@FmkI7TFXk3B?Uoz#F%Db9OMKonLfwZZl2 z;Hy~ccRh_|Lo$~>-Q(tp3I82n^pNxS9A+$KSGKm`%WRK*Z`f#M;G$Qr#<&=#rb`cv zxi>q@Xtx6qO$46S<%Bh~Ofs``6WP&RDyEx>Ai1hGcEeeBSD?Av0gr zEKg^xpOK#ZwQQCyy$6mx$#Rx`!P*8+!Wv&Ku{ zYIqHs7~A>N`upcaa`X1qqq+C`@xFvCK1FS3+Lsg$@BHj_oXHt;g``V>x^LU0;dXxd z<+!V8%jXatvw;$#wS_D`jjDIpZK-F1uHpX!U_hV02BKZnVP+F}L7x&*Bx+3K1~z5* z!p`*8>Di2s6K51QQ3M2qtGS~vRj_iQ9OEV6&;km4J4$+2&9Wrw_^pC}wd9^$>9wVz zFV3XUSQBfQv&P*5X?dTiFL-Bu_#|C8P=vDTxC-hWl2~LCtmCsvhHg1VR-3Wo5(<~8X2UUBU0~;wq@~k zLls5htS}aStDjo)xY(?pbfp}MN&v{j>@c@%1#fA+TmK?;3)G^IKB8_wQ=#QYaHak$ zzdXv4x0;zN|2BXsEUb3&x*sOUo+XSS;x#=A-OOKb>flgTZ@KIsumksqL#V+wv_^P{ z0u1+;68j8Ege<&*_l@sXF@YOyaL`D=1j(`CQbX#9Y?1cXc*#f3P;|1ZKi3CP`(SW8 ztGYP&Z3(nLeM+YG_qrSTY$>U^(ayx7wp;2udHY-$_555MA8m0A&8hLnlN|kFzxlGN z@?FZlQ~($vtQ8lXJ6Y6|JExi)!0Ll=9_!ackUX4GJqtM9vLLB~Y5N==76Wu@6;)4a z2vnfP0~HTckByoWc1SxxWhk<=$oQyn!1y31n;{(xy??}{w_d6(dHHa?;4?B+JTmVP zKOOc%MWv!x8WNP~7e}+L@H-nyW%N9pxRNvurzBHfq4<7b{<;~X@rCD?#S-VgJG-4o zlwd^W4VDL=Nx3U*5no^g-(-x``{YqMzp1eP(PLO~`K_L^E&HBFDPfYBSHuU}25ug8 zWL+t@9bsZnM~32FbkehHqU4P!fgoICDJ-UN9l6&FFLOj4GA>)IT)kZVhZ_kExJJ|o z@yJO>_za0#L&TbD=Zo-456!c?fzj2>DfFMbBQ}1kpZwfoHXl4JurkXc*81Lk-BdJ6 zuB-Ijg_``cF+iKNYkKPoau`p9{;1mux)6zjNHcn9SeAe#@ZFbB_Vk$}q4G)@@##cezqq$i0ekt7oE z>f#v^xkOBuHlqw;`e@TLWhbTRz`-zkq=ZDfK8RU6GTmb$dw6_6>2nXb`_cDWyU_Gb z(^m*%$<*W9JS~aUqj2(Tm-q}{`ZkAfLJXnr{G$_zvPEQ{ltbX{Oc*RUT`KA5J0|V> z`sD!`rICwZ6rKpvyOuATDmNV@x)qymYi@~12bjeNIG|&`M`C5V5=4gq&}jlgGY<-> zJ3sP^??V7g|1r?PFz+C}jMxolN1x?B8U8$c0z#&TrmObE!gbBZKr!J1_@r^v=KeR; z>DarNphr)Lgx}O)@z#9~j#gekb9%vq@C7@P^b5D?X9;KX%GlC(>nqd>gm04zGzh4> z%*|sqf9{>2XJL^MKk8nFt@n&3(C$&^5wu=&wSksrs#mP_=Ckaq{X21HHfP#c_A@n} z#OA29P;loU*uBx#8c-75IJO?B8Gag+y{hVzJ@b7mwlKa8BW~7>1?7P5PX!jj23_I7 zs_2>+9RUF;7lrb}gB7MKk|8t_&__uYGPW$iB%zh&U3ALCbq=sI^A^){#R!=vDB__q zf95O&2Cg!0n5lu{ji0)eBZDfL8%U=G}$e6@b7PK~u zxLI6+sW|z~y~sz|6Fb5}dpvAX(p;!eAk^A{Am4~o zh|brD3p+@7fx^a@Z8|*gtv~eq|MLM1|Gq_MdHI;CQa)7UGjSlK^a*n50_pPLrO>aZ z{;EN>GyX;{mMj!$;%1%P=g=IwF&^r?_9*+Q*2kb(M zs5rZk{Nr3mR?O8<$g|4ge(<(IT~ZG%83%!oSL;$Mf?wyDI2tr*24+3@HBT_rpfPyJ z0E>FXfvzeyRQnrKIuZdVq*dGmIEGm#6uZj_uj@PHFw2Z}-?Ry8uAqd+1phv5Hlo1- zO77&BI7Ta(YG@QKgv*cHg+g z;Y9W9UP5V%;la&gMx$X}RIjV>1!m0Uv7}ySp0ioS$!MfUML)IX$N&bsbPHG!M^Xh1 zlgqt;-M6uGuGdph#OJ-1FX9Ohtayq}?OPLjTcBk?oUfZ14z!_ff54v`j?nJO4Tl{& z(72vba_8>AhVyo@Gq9k8B&}Msgx@eI_FRFxLbfXQSN*E$qDkX=HGqf@`qW;wdeS2!k!Vk53(VbpfSi} zJ0{>RC&;kFxrnCL2`0#$(DNgCb=!Tr02w5B-9r(RCJa`tI%ZMMYiH}Ewebj0Hv;Mm zl(V%Zh%MpO4j0mcn`G*vjRx zr!KhOQD~(+@?+Ox$&V1Vf;jfUjZu-z0IFgm z$=4}jsr*YobtlQ`A1E*tI4l1W#J9;ophN7T)jBPr68NaqJBEv2fXm)GBiVhO@IQrL z0@odGEw|IHA|St0CxPoc0rES#D0A_VS#Gs_VA4lY+ zvR{D&2B|Et18b3y?&B1>RPrZqUE+3BYL*@Uf%RMZBT!vi;+nP9jpUE(#2~rz!heE1 z`@{NJ8O4s+7Wyfc#0}6_PF<=TF8ksp=qfyrOW+qLL)VTFckUjwv4l+?-(Jq@%(BbB zc;ecp&M1}8W=hf&?hW52M|IF>PO&Y?m0f$53%>+;?5PW`cNAJFkNnuRSn?ypw_hEk zx>LkXxTKezrSd;PT>I*#Pa^KR?8nPCk|kr_acy$(?1^)rTikS>*|CudaM|Tphrb9O z=oV^O69-!ORlTABFXs+{>coyR4GywW*oUdbh2IR7J z->Vb&W|aGf@k;#_l1%!VfbXewg+nmUh5?%xW#Fhl+&F!D;ALy(zX*j$Bb%sWvCOOM zRJ#6M`bNOO%q|XFpBVS^V6VBwx&{sn+*nWivcF-Va)z2X^ zSWkY3;ut~&byC~fsIHzUZR~@n(~jOSh0;ih7^CToc+l}GO!t5QLm$}MEOw`C!so|* z4)A(h+6%zhE1yD87a&_D7X%VaU$%?AEI)0+M1VUfuiA!9$<9=VA;O#=l*83F|9Qy} z&jmL7@jM7BJ3SysU=dj56VoCV$3e-JL~9h@So-foQ2gTUIy{!+xxXarz~F3~4x8!? z7$$2z@;#^V-Tr$nn~u`~KGTR`ELY0F#|E2@u_PGjAKp@+ws`SmCHCci0sOIJr=Ac? z4)%rY&Q_j8&X@l;B#*@UK3$-jc=bBpiK)0!#Jo{;QvA-E5YvD;i0DJ&u(qOn`km1v zexwjj*RN1l-nwF!ky6~Xb~Hq35?Dn?7JQ0;NN zt~}6836RA%uYPw)J0umkoEDMkGjo zg?oX9WH2=u+Hb76V`Qhb+pw}p)G5~ZJ$@Lr`ySUrMH2;8z+Z-~1mZ%00l&3`=tc(E z5&|E1Trd~BN8N%jFrE&SLBJYiil9~p+2G-|TQZ5vj}3dgj>~(%U!MeV!@NM^LN;Jl zNW6!Tx*NgA#cT`j$M>|zEMTgv4VH@ZQ}rec8v8riyvv?=k7Ud^H={Drk`0`A|e}6!PZwZMu!mI@S)fb zdKblI?-*iO&{R*Hi^ND=1ko7(BtfPkOcMiWYyr}Db(kFLd~Tv}OetU6K7ZLj(a!a5 zwt!zPr?sF!F0uM&^Z3Hc0zkDnM3!xQokE_M<PK}D-v>Nd8Fr>}2qeQ#4zsn~a} zEzEgy-V~sq6w7tnH@_L@9r88P<4krClqkMTP|}Dab36kNd)&|(HV^~)HecRi=EV}U zvYq>*id#A0ME4(pZ+;%DO7!@<|22hC?+ zgQ~JkBdP8YR{*@aj80w5YpjB`xstX7qO(t;>5cwea*U=7-H9`xY}`=_1MB$bxMmoF zZr*Xnw@32r3958PPEx|O&F|VsoB5$%s#CpF0-(jBThFA*|Ols}qqBAO*139OeS^KJkxAR zx?q!4;EIW7WV?+fIe-K@RYr(wKbIhACgIirL?ULfda&ajq>RmD6`TgpH#byK?{;a& zoVp1501U3fPIFn|Vx81>L0kp^yu8j4o#8re326&xb+V0*1#u< z5V2oKb?W(Xh5s_0hS2#i1{0 zqt{m&F-mWfZqSA+q{ohjr>&;wN+_{N(g>pOFmfDD24>GCJTXK(zvRl zz-QA5BctK{n5vSlBb;t@{Zx?u`KdOL!;KnLNA;^Rtz-a10Y9vvXb51#!QX7k9}m>% zsqWBZv>{f3+9XFi>yLskO@i9n!Vwb-=^YVWR|8mu!>DnQW`*d(BGQ4Bs(wK?&9JEQ z>ysc$X}yTsKvjs_#xYkB1$E@@@=>5D`+gm&LUOTg(sv06omEMt5rT zvf5xYOeyP7*}wAvB_$V}h=`@qoIZCF7AHk;*2nzlVWP?fmfzSk!*h5Vw9d;ag40vd z2iMGVDZy>^gQ)q{OLt6l&o@#r2xWi0D;;hMR|>WOh@^@aexC z0tsH+HX}$Wv*MJr^?t|&>#2|D!A2`|9i`?X=5KRMvoFFiFmcu@5u)njw5X8Vnq}HD zvXpB>dshh;&97v-L2LN3qjV7jaeH8W9>bl41N51O-~v7l&|C8V5J{&SPT!qjHfg+a zw()pYTruC?aASu@xNQ(pUKK)oM$khpgkg>j-phf#d*&iq%nR^;7;aV<*EI{QBt9Y$ zlyBN3?C3vNgDRhEs{v}eRB`E2FZiSHPTjX8$p0R%G<)tXh)}ydfkG)%{t>fGPH9eT z2c}!Ldn0t^{g(G$-_<{IAPi^j+VEopVo?DX8*YlwHNc3$x-JpSCm|+vokt`>6taui<>KOa|Q0J75V1|rCJBw zCy%uxH*6HY*6&63s^T7Sa)Up;wz%P0?R{fq=yjo$hI}Xe(K}i=@nDQAe=q)jYA)zM zqVtc3Kw4hfNsAAnNdyv>?$FP3XMF~3aB#m*5X`@ku(|I)w+1CdMmC3|sEzvX53k7k{@6lbLg&TJOwZVh+11=VpG4lZNV5dOF*}FG zx<_ksfP70rZXNvAs6MyaCvN3_cFc@5f7aMS!8{3`N?|r8La1i#Y%ZBh)vaaV1ArbK zJ8HLdnsuM3t`$`g1Y|id>qYGjLs!UzQO(yR8p=1u@Mss-9%5KoBElPtlzW@&<_$!J zp%(j%OA)fKm}gm1BaryGOT*P$-X7{lJ`R#kLI##G(OP@9LayC4)UjffyT5sDC~8x2 zM?HuaVAMb!0(}Fd&Cy}f9ZSLjhk-#e>6WBAv_Y+BK7n2hvx?G!!I<Pq*MHPqwpA5i7evib`be;kJLz6=|8oD2V> zZvZZObbg^iT{k8Ht-WyJ(lMvr$X0`DwCN%Sb9s(A$_JXHm7& z6dOG~NsE^10mijKlqz2iQ+79#{dl`**bEo-wqcrKAA6>Owtj79HkC?;Yol=Nc?Wl4 zCbXkYl)X%2B!vO9Y!xtt^lN@#Z5HUINCw5N3zzBjwtXm-tsIle21>^>rwkQOdp!1nypf^$eS^O!zzY7nT{2c->X#crV(VCZRO)LbRnw?=ZEzIx z2n37>dzV*poIIy>Ztyl>kRjX7|1yb<1t);Q<9ZVmhZ$aSw`0@g%kG%2MV-fqQRD_w zUw&-SsxrSVWz|ZBmQ{vGYr6-s#$~w+z&ly309pX?z!TR8)L=% z-eCwHAXs5Or0@gSJ;epqXU#>R589gt3Jl^fzY-W^Hrz>j?haxoeo#yT1g0Q1S>2Xt zj07hHs9MGTK%J3SqIac#*egf~Db|bcS~hZQ@m;+}4wOhtux4Tv#&>Oq2BJzmfC^{2 zL3*qK4U~)vAkh#2>yD#39;O6prp3~BN(2XOAjB6J|krdS6hQy0$52Wa8b78Whf4wxWt_3L<9m(F=LP!q{h#LdM3Mh+jz3vY((28&?;`7 zN6*Ej#uSNZd;x{a2;Ht!=7Lj$&1?%VU3D=zi|+&$1PXB4It7O0~`$4+k%m{sLcK?-{1~`LmA#YA((Fh zZPMOH!+fJ`K*%|hkj9Dg1}d$M(R*M3St^i~#u+qt{v4X$B|(X32!5qeClM%u2O->t zsMk#NIJ?tvZbYUgv!BK^4~Z!cd=S8>hFbfi#G#N2qrSf2%#|A-Y|;tpkA`7Vl{bjt z-oV{Br`7{Qw7w#>C-9=aIBGLUomNu2DK#14Wyq%pq_*`6w@>?sjiHS;8eJf~n@QXwSF7us)1p^bz2O;0`#F}wqnHnyKU6FrNznj2Khi+K0I1%A>Rd4r z69hq5>I4^=lSd$pWwbCjCj4nd3-Gf}i&3wZ4XqzEfz1UFLt?L(~~4t?dHS zOusX(V=i1mJSj+53H4s@eh_)csPAb`)XLj~87NZ&cN9?xFA z2yG1LBPfH$R@YT|5Fj@MI2r;}l4nM5I<1XvJ*M-2FzatHGxY=YY?P_N{1BXwr{tLhyas0JV(cm=DDqm}jA4e)QU1W=N^=l55h3}|3 z3aWhTZ%b!<=n@4#o6*S3qVWO2MSvVB>opCgoBOkc2=Xj2@DW{z2srF48@5mb2UNcv zi$T?ZPC4~=914-OtyZ*oOj&3A2s$Hjl!4x?Oj5|?BukU^Cu03+M}>2Y84_@ylZ(2< zw%vir!_`@s(bU&|ggSMjScz}3OPEQ1_EcdwhYa+^ilYJ@TcT5NR*h66Z5hsE$skS+ zn5i>|4K>GFtKf$2bl22Clcb!61E8`(^Co0X5$-aVWH%NHAmC7m)C)e@W8lz%N$a| zD!X#I=ADpt)`{td%i%#m*a$8}oJ{^(iZy(Z{#QG~Y+@99#I`^qQi6X*}CN>0BL_n16 zqQIcj%!1cV3?H(>n>YY*vh0=s9FkWfi=ZWg)$;beBAdMi(hYJ)VL$VP? zP*!B~p%tjt%f>DkI#QF(bnJuSPpiu3$tiIsR&tq4I)kj7-zVt|{a(#} zMor~Ld{wf>h3@8hhlsLd4qPHqlwHH0uhRcIgttF_$b459;9-dhNx%k+#pD76IE3ph zJdlM$i|sASk~n^9nD5b`3#%cb5^m1|-|_)9`9DFqon~P3Ndk0GcI@Hqu-Oh?3vQ>Q_dQhmI>K`+-8!08U zUdNV)M<&il%W+UdlcDe~_4h`-3N6ZyaYbTntq+NDtLDtLJp~TAw(@({ zV*I_&h%(F%7CkPRh^;u)BCwgpbfy|a$5t18I#E|F7X8BS|3HxzhDoS?1Pb0G=p#lG z5xaA){Jzmv?LrZSKBxLL&$G&;orCHfZ#VZv-+VlSBc~kGl5kk$?)$rbHH<7}svjzg zY_37_C$5^qADhE!^oj=KMlX8N{V)z>E0T_1GyUJnqZ5jk1yr3K-LYs@)sUqR6C6-5 zebj5kq_f^5WM@PCH+sAi3>_BV1D7UON8h^v5!(LQML%Jic+enWt6W=0K@WmW0z5qo z2$mx2e84D%u9*Q>u7FKA5YRILS@ay3JR;(l3mj>tW%OPV7@_Sus?U}2*P!lA>h_BY z^nyEFA2OFwxCXO~p}DP$sOc0rog(ud4T0dW)x71Jj3V6`avxIE3V@*zF6Z8ug2NX9SW7jP~pWyx8W7OIY8wAbUtcOhGBgXA^Q%!#6_WpOActmVwMi z%`|g=^)rX#zkZBj%Zgy8GsAX;toHF;2bf4mG^=#aWQY76Nn9ja8NN837C5h$ip?Yuy3=O2CSCMLf~qM!zs74o05&!f%9v)t7p}71o(v3Y&q# zZhIPxZ3onS!(aWngW}Ita?sJ#pif=x#z3d#un; zq6d=seLM5EM=~e#?~B}$q(Q%G+3RDUxKi#AD%X=!5*TQYkZJY!9hPvRkn<{wFsOzQ)-mu~ZD zeETAA=DoxN?*|cyysVunDY2nOq_a$;i!5Au@w*~z5+tRpO&BPdSyFcLG^w=rB?He! zi4S_mWaA`JqrGSZS=ATebXnm2oocg&%V7Cim0$XhdiC=30#xkjK*7SOqQ#AsE^7)i zaJeF6vmFdp5bJ3(-Xxxz8BcRvtuU5J9i(>?CuXB4>xm-oD7q`i&U@^vf1#*D+2sga8w+!keaukm$MbOnQ%7K1Z--6hwzsgWfM^dGfv0xy7p zctYMS&5J#l0HqX78Vf;5x-k>UJl8bPUFLylY$Iyt?6qp&fmuy8r&@B}NBSMKAvg_J zKJ}({m~iY6dOH0^D}z1+@x=ncvQ3ETlPc34FvWgrkCmT%(Q7*O(~id!eaAQRa1 z5(SNrxZ9_{%liBJFE$na!AgF*fwBu%0_a;5%<_vK`Ksx+CEQebpu@d)eL+)ypbkRJ zHbBkR?tw_~5M$ms9LUUjDMj6z-Mu3Zca{h9va)mBy0;G$11)H}l79jXZgmCi^j z;6?S}>-se97!v~G1BUOla&4$0%5_u-*bgt3_cW^5g-8N0DXL7Kn0jE;q?P`VpKhay z`ML3D^GT`1&z4BX*f4RL>?3A2K6lPRmmH+azez;!p}%}a->%iX9p&n=(d8qZH|!W) z(JKsTWL3LCdikTDeHB-n4&<4lBN&y*{3{GrK zm8){O!Q2M{)B*EtId515Z3Wp9l@N?dKN%mc?yul`RIX0~XyY}S)TwmlX**wA+5Oh% zv4L54YW^Sa$oRsR)lYRxqBB@;6jSI+^+lX;99#_9p+T*;Yhz05F4_tE@=edhV z3nwj00$CZ6x#bECDCx|3?2JKS{i`%;42-6go&c}3rQ#5vp;0g=we|)w%+HsH?jSnw@)W`t(m=$0Ew8& zhjlqIm=p{*Ar!M_0@iOUt^>CDs|lW5Pu!EGpnbrsM}zX}7yI-u55v5J>M9DYZlCYZ zkQqCmZ#{d|PlxQ^j^K-lpDGUaCw**0!`E|!lV%!Pz=Bu;|%I%H-X7dW2o|C<>P2cuYywLB0~ZafN*}10OPaxsWdf zH4Vb*W!!I5%0XUJt{dAO#`FVX7}e}g%(lf6s=ywBBpY3S!fZAn5@sF*Vi9RKn4JK) ztp-UJi6xSyMt_Ft32#C}DB}Sz9`*T$g$GB?i{RN5VvZviQa>TD4X2&Lm=_wP6*6XS z`*01suzfL=_G;hqW4^qI8cCm z+6Xi6^$^bESac_=8-L0RXr@j$Ph;Q`8%yTu)|U^iiU2=6+Ey+*mLC6_GQ_wv>kg>Q z8!yDKW-zGQmS^P$dR1O{A+PXR1q#@7Z#5#YUBr?cPG&U7t007?J^z3Ta%;>)#?(Ra@&ORQer~f%O}&8yAboQ%R%9mI_$)}r zGHjCro$1I4A7{L+3fYsD5_kj$_@t_F;Ik5_et(58B|&%}Heww0M*kF1r=vq*DKcA^ zo%0Qa4>MdZN4|X@1g&+Vj(5{&aw^l?#FVR6LR>mB@X~vD%)yp;MZ(uEc3}?gA87UF zwHgCmsKg+|Eys!^P&^&+U$&!qUvbw+_->2q@cPDxNa*7n^TP|v-g9f?K2os!91)5; z((SL^=LrkkTVgi8z4qn16fETIr+7I3Ec0DDURk(s`rP+%n-r&9&4VPDHqF;ih%)FO zNI7{-dbOFUu3l>VZXr~)R{&j)XZk25f5fw;>O9qvY5XBh5BwOb4R}w8R6R5T9IvKY zO9_+`KxP3y(ZO^Enk4o`Y6ug7{(TX`#aahMU_IE2-4Xq<;epX7E9li@(dpyDhP>Ah zjYT44PY;nX?M9eRg0*#_TiFYdBZ=c^5QpUDJ4yK9x@uH)4z>$MvMzk8GC>FiMV@~m zV%6OM!zFCRBnaz)4|MAaL9__Z{s`Tex1p%X7r5cK`f8%(!!u$4MpmDAOye9~Ch*Ip zU0o&24~z%~{WT{ENw5*h!>s0X>;=_X_-PORX!jXFmDTkJo_GfSRC(l`2x{OJH-&a& zHkGDZuudzNDu%B39e?p%I5+TH?xKErMsH#nZpZaUy$Gq$?7nvBPuK%~&z4$l&N{^ISi;sfr^+X`uT3ES=oFXfEv08pZbw-HjR z5IH-LNv>o_D<_uIayjQu@;2g8;J_Qpoy0XVB?G}&H9Ov(6wUEqvoF{Y3!mXE9Y_S1 zdq))1S;6Fai^8me8P~cPa6$wYmahj#fO|qE+~~kQxJK9>18iX-A84#z^e(Cz2ayp# zyIr6wdsk1;n3=?JND&K%rY7X37-9u!526&TsdyP;N|*uBzSfbV9vx%O^fR<%Jz$tN zBJcEiz?J1B3Rt+ul4ddfy#?AGZvkIQt)T^k-DUe|&>2GpMVH$PD2x^}7Ub62HwI1;-*1f)Xp zg?FTen+PU_e@msl@4Gd`4HJ(yJIyWv!@YP~hN2I(-Aa^qi4)0Iw*S7mQhv2V z(L&1AS_L=4QUEeK;MN!eK4Wl}X7c~BuJ^uc=^%28FtV#h(kb{+Lq`fvD*RI;Aw+XT zDGs(A>9>0Y1HS9`t@f?Uov`a8xlpnBaiDb;4BSvIH>pGt>H7!=L$)?a;LGAP-?P49 zh^4-RJNxR@3MCD9^&W1s#SS@ATw$2}?rL(E%99*Ahu_3i6Kd6Y0kOSA<^ngRBs2u(^U zn=3;1-(2-Kn*I&VGm%4vRb=#q*LjwY=fhB^1#=C^M{ zFy1+n(z=i{R?7_cd8;ic3Kg3N0r^RuS;xEf$BR zgc{3Dd2^>q9=F%23Hx*H`3Dt0P?B~gU^??OP5!zQBMNXuu zaoEqcS5)u=JF=!&tBQi4qYI&va{RyFj!R4IQQOzDMXTD=3f*>xMkKJ21QV!_kCxQt zqBE#D&H%>tAodcb?LIodp&k7O&)d~bNB*@HSb;XG4_osvVcxv$WR;&Qmo}}EvGQp$xZ6Z;;n_vKmNLKfc)&<6 z!QD$WGjeO~xdC-_*Q6MfIdDa`A6ki(DWrv@htdF|?WaC!;&DB~Zr&d-XeTvBb)s$y zVO&D`;j^NzW1=GJo6;UAo77>IHz0|t1xg_kFvnIKHl*?TDOdn>aMp!2s_9%qoWcY= zG8^Xv8PytDvvz8qiUVeA^hTq#?Ae4#Lo)M&o+cBO4a1)-M!QsSQhL+x;&8d=Q3U3| zpuNV)PkV^llEBBvZfO@{B5+!fnNgkaSXOEWv&keinq6(+$dQiHjq`tT6(*dYKL549O;bQTv%mO9s9^MYix1BPb=Z#9Uf8kdVvnY3eA z%I`%{?f^y@Ftt|#9AgXuQzruuTY@EDe$HWzTPF%6k z#2v90E{moq(xch3lJS>d#E+$s*mb4I6$MaGZ6aLe7#=^r><2%r7z8!10D2!SnJs+q&A zYz_p30QZWF)HDYA@h8#fEKehICmAC8^4@14NOWh!);CfWLWXvONiY-KTjD-L1uk=? z);-(683O~@iX(c1b1ptfs`y_oI$z~WvDHI5LIgFX%?771JM|PR@2%y+T{Qt(-f^*w z<8<4xS~hD6N}TcVjq-#dp$4$#U+_ZZKgQ)p^#KfiIn-}Vj9Pxk{)jO2wVVO@JLOp_ zTKUQll0L^*tw3??XDb&*X7}#$1$q~tO2QRY0pRI?g1w-<$EcZYHt8$UgN*e99=F8I z5K$nGG@T9tN}Y7-(T;E{NCfmh)E~*#b!mNel?nvQ()#2{Sh!uGQ>3Koq4wHptF5-m zLSf}r?sSA}&^E}f8*oxlpP!!|s!NglA4{giq z2pTXpZdipI9t$i)C{xtn7`a?FNo2&G(dr?`D@7WrI3=5oDs8YN15o6}*A+ZoMo?fB zWOy#N#v*J9!WufG6fj$Myl54nfr(x)5G05mEqbQJG468?93ypeg6!bZCyf_?D?`Zm zI5Q`NA0S}Dr_P%@X;H-Zknz$GA>$&?F^(G?`|J`X2#n@jmOOhx;GLk-V#OUPQqJJe zz`!IC^TJ7-4>5IAidL{llLq+)jq=13CUctD$paU|hn^>VlE{ftW`~M4V%&VC*x{uE zF0DqME)iGA%wEJmLJR@{6)3u*sOe#f;W2W;iWnzp;-C@HGULG%J2S+{@UntQ6G)pg z#$(-`GewrNI9512{x*6wr?)146O6BtdXQCLBUscS&?6Yo(i#1iIpy0Z(&pGcR z=3m@ZsylOkv0{Q*wlk^Av@@%jo#|AMF5C>}q0^&Bfv4IU4M|vQDPZ9*E zS;O?Foaa+zJr%&ueMCa6+Qf80i3()n4Jb>rjHYUj1!{+WKA-OjzY(#nGSSQR$(DzC zh~M74_z74tVZk}~kB8Is#6&{kQ@G(LJp{P%$qmRr0}g%=a0dY`+LyADnyOMaXrV!#4wgJ8by1P9 zNN3F}5@uuwfG#B5fQx7-6%uA-2!8GpcJOnb-e5@((9U-^0K%?lPneM*U_I3vbg8^E z6=oy}@CI8MN>1jcoRPUHYXme~tj`}FQuaBz2ftr@tNV{(wMmty-srd0EIsoNAQ#u{68yd{5#a8u%pA-wTXCydK3EDVP@DtyY4 zoH^cb+dMmDuwcnSR>MmMovc$GLywxKg}kphLs=3PLnMiU|u$XIgo;y6zOcXavUa^BSDRo%eEuN!QbJ+AeF z!1wF1)M5uzoizqLRX-*+<$%nVjdxb5$1^LvPUKezLGN+(gx>-tk*MxYaFsYUUhZJ5 z_ufa*praap0L?k4S@>w0>K%%rnx}U=;XTvz)T!`M6h$u(c&|Q%f9jnO)xoR%)D!#z z=biPQI{QQrrOg_<2%@xDuRPQzf+#K4tGe@HbFB)Qga}x

  • >K}ondB))15!4&_i}9Q-{Ffq#YKmK*_DD0)8>7cX%q2M-=O z?!(ddLhYh4__V|DDn7w%$x~7&P+V|!ZjpIuUraG=!~#0ObHtyxbh-4`t*>LTURW(K zpRSrAJDtB+hyj~&uM|3mN_=GoO@^nyw@r|8r$Cm!rI2tAIpdZ3DUGu&tKG34D+l)S z6#pDKf!!o;$Uu+fO~5pZXGN*Hbx9dFjhoO?_~^x|-hcL=EnU)JVM?jfD2>Ah$E8oI zZ;uZbDKCX@H+PR2grY8m846t$mi>ijGtCjYFbYxJ0cwI{JrNj62jbMlq4{M(DBoKh z+NGNe)n?~jp6nw6xOk~kxp8g5EnzGiz9*3|x=N^prHC&~q)j^aX76t#XGxWYG@@a^ zEh0o|F?_%a;xL_bOecy+guLu*{9{&nNJgiX{!IO@7*v_x|I-&2b}Pvb&9_Mt8pcDf znwK9_;328-G~tq2AnV&qn%Yl^G`s_e6GG>+nHT^dCq;==A2?ZWCczP-fV4}=JzxVx zo=U__59_T3Gu-*OqKLD}v4`@&AUtqy`#DMCjDas|TMfsv0$L%f%+^d_fcHRnm{PKA zX*$KeIvB#yuQe!YiSU6fWRj%{7MG}N@%ij8m94 ag$N02q4}iF2G@onCNzxqHRo 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 Date: Wed, 17 Jul 2024 23:46:16 +0300 Subject: [PATCH 048/252] Add 'missing_docs' attribute to dummy package (#4992) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We want to add linter to the entire node based on a template. Just like `cargo clippy -- --deny missing_docs`. And we have the error (pasted at the end). The dummy crate is used to test whether the WASM toolchain is installed and working as expected. And for some reason this dummy crate included as a target for the linter. I added an attribute to pass the check. ``` note: To improve backtraces for build dependencies, set the CARGO_PROFILE_DEV_BUILD_OVERRIDE_DEBUG=true environment variable to enable debug information generation. Caused by: process didn't exit successfully: `/Users/hrls/src/atleta/target/debug/build/atleta-runtime-b15153eff20cbe96/build-script-build` (exit status: 1) --- stderr Rust WASM target for toolchain stable-aarch64-apple-darwin is not properly installed; please install it! Further error information: ------------------------------------------------------------ Compiling dummy-crate v1.0.0 (/var/folders/h1/_5gdnk8901n959lc28fwx8400000gn/T/.tmpUQCLaV) error: missing documentation for the crate --> src/main.rs:1:1 | 1 | fn main() {} | ^^^^^^^^^^^^ | = note: requested on the command line with `-D missing-docs` error: could not compile `dummy-crate` (bin "dummy-crate") due to 1 previous error ------------------------------------------------------------ ``` Co-authored-by: Bastian Köcher --- substrate/utils/wasm-builder/src/prerequisites.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/substrate/utils/wasm-builder/src/prerequisites.rs b/substrate/utils/wasm-builder/src/prerequisites.rs index 22caf895063..4de6b87f618 100644 --- a/substrate/utils/wasm-builder/src/prerequisites.rs +++ b/substrate/utils/wasm-builder/src/prerequisites.rs @@ -102,7 +102,10 @@ impl<'a> DummyCrate<'a> { "#, ); - write_file_if_changed(project_dir.join("src/main.rs"), "fn main() {}"); + write_file_if_changed( + project_dir.join("src/main.rs"), + "#![allow(missing_docs)] fn main() {}", + ); DummyCrate { cargo_command, temp, manifest_path, target } } -- GitLab From a053d2cc3add1728d5c4c34fb8319713024ae8d2 Mon Sep 17 00:00:00 2001 From: Maksym H <1177472+mordamax@users.noreply.github.com> Date: Wed, 17 Jul 2024 22:07:58 +0100 Subject: [PATCH 049/252] Update command-fmt.yml (#5054) Add cargo +nightly fmt --- .github/workflows/command-fmt.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/command-fmt.yml b/.github/workflows/command-fmt.yml index 586b8c77f27..fc37a17ac54 100644 --- a/.github/workflows/command-fmt.yml +++ b/.github/workflows/command-fmt.yml @@ -37,6 +37,13 @@ jobs: GH_TOKEN: ${{ github.token }} - name: Run FMT run: | + cargo --version + rustc --version + cargo +nightly --version + rustc +nightly --version + + cargo +nightly fmt + # format toml. # since paritytech/ci-unified:bullseye-1.73.0-2023-11-01-v20231204 includes taplo-cli taplo format --config .config/taplo.toml -- GitLab From 4bcdf8166972b63a70b618c90424b9f7d64b719b Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 17 Jul 2024 17:36:51 -0400 Subject: [PATCH 050/252] Update the stake.plus bootnode addresses (#5039) Update the stake.plus bootnode addresses --------- Co-authored-by: Oliver Tale-Yazdi --- cumulus/parachains/chain-specs/asset-hub-kusama.json | 4 ++-- cumulus/parachains/chain-specs/asset-hub-polkadot.json | 4 ++-- cumulus/parachains/chain-specs/asset-hub-westend.json | 4 ++-- cumulus/parachains/chain-specs/bridge-hub-kusama.json | 4 ++-- cumulus/parachains/chain-specs/bridge-hub-polkadot.json | 4 ++-- cumulus/parachains/chain-specs/bridge-hub-westend.json | 4 ++-- cumulus/parachains/chain-specs/collectives-polkadot.json | 4 ++-- cumulus/parachains/chain-specs/collectives-westend.json | 4 ++-- cumulus/parachains/chain-specs/coretime-kusama.json | 4 ++-- cumulus/parachains/chain-specs/coretime-westend.json | 4 ++-- cumulus/parachains/chain-specs/people-kusama.json | 4 +++- cumulus/parachains/chain-specs/people-westend.json | 4 ++-- polkadot/node/service/chain-specs/kusama.json | 4 ++-- polkadot/node/service/chain-specs/paseo.json | 4 ++-- polkadot/node/service/chain-specs/polkadot.json | 4 ++-- polkadot/node/service/chain-specs/westend.json | 4 ++-- 16 files changed, 33 insertions(+), 31 deletions(-) diff --git a/cumulus/parachains/chain-specs/asset-hub-kusama.json b/cumulus/parachains/chain-specs/asset-hub-kusama.json index 36cccd9b0b0..58b8ac01922 100644 --- a/cumulus/parachains/chain-specs/asset-hub-kusama.json +++ b/cumulus/parachains/chain-specs/asset-hub-kusama.json @@ -7,8 +7,8 @@ "/dns/kusama-asset-hub-connect-0.polkadot.io/tcp/443/wss/p2p/12D3KooWMzvdGcUXxacLdMQzRVrsP1mJrZHcrz8LtGbhLzve84Qx", "/dns/kusama-asset-hub-connect-1.polkadot.io/tcp/30334/p2p/12D3KooWQmGf5z3DU1kKcZoLzMNgdbP31ybjuwxS1VGLKMUjq5ez", "/dns/kusama-asset-hub-connect-1.polkadot.io/tcp/443/wss/p2p/12D3KooWQmGf5z3DU1kKcZoLzMNgdbP31ybjuwxS1VGLKMUjq5ez", - "/dns/boot.stake.plus/tcp/34333/p2p/12D3KooWAzSSZ7jLqMw1WPomYEKCYANQaKemXQ8BKoFvNEvfmdqR", - "/dns/boot.stake.plus/tcp/34334/wss/p2p/12D3KooWAzSSZ7jLqMw1WPomYEKCYANQaKemXQ8BKoFvNEvfmdqR", + "/dns/asset-hub-kusama.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWGfJsBTxWttMwFkyBi6ZvEzAU3mvcVAzE7yFXMZuasicr", + "/dns/asset-hub-kusama.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWK7hHQbFEhhgZURY7V4LzY6BkqLsnCCpEJ69eUF7ucPcE", "/dns/boot.metaspan.io/tcp/26052/p2p/12D3KooW9z9hKqe3mqYAp5UJMhZiCqhkTHyiR43fegnGmTJ3JAba", "/dns/boot.metaspan.io/tcp/26056/wss/p2p/12D3KooW9z9hKqe3mqYAp5UJMhZiCqhkTHyiR43fegnGmTJ3JAba", "/dns/boot.gatotech.network/tcp/33210/p2p/12D3KooWRMUYeWMPkadDG8baX9j1e95fspfp8MhPGym5BQza7Fm5", diff --git a/cumulus/parachains/chain-specs/asset-hub-polkadot.json b/cumulus/parachains/chain-specs/asset-hub-polkadot.json index f7f53f8d724..3e46501b007 100644 --- a/cumulus/parachains/chain-specs/asset-hub-polkadot.json +++ b/cumulus/parachains/chain-specs/asset-hub-polkadot.json @@ -7,8 +7,8 @@ "/dns/polkadot-asset-hub-connect-0.polkadot.io/tcp/443/wss/p2p/12D3KooWLHqbcQtoBygf7GJgVjVa3TaeLuf7VbicNdooaCmQM2JZ", "/dns/polkadot-asset-hub-connect-1.polkadot.io/tcp/30334/p2p/12D3KooWNDrKSayoZXGGE2dRSFW2g1iGPq3fTZE2U39ma9yZGKd3", "/dns/polkadot-asset-hub-connect-1.polkadot.io/tcp/443/wss/p2p/12D3KooWNDrKSayoZXGGE2dRSFW2g1iGPq3fTZE2U39ma9yZGKd3", - "/dns/boot.stake.plus/tcp/35333/p2p/12D3KooWFrQjYaPZSSLLxEVmoaHFcrF6VoY4awG4KRSLaqy3JCdQ", - "/dns/boot.stake.plus/tcp/35334/wss/p2p/12D3KooWFrQjYaPZSSLLxEVmoaHFcrF6VoY4awG4KRSLaqy3JCdQ", + "/dns/asset-hub-polkadot.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWJzTrFcc11AZKTMUmmLr5XLJ9qKVupZXkwHUMx4ULbwm2", + "/dns/asset-hub-polkadot.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWNWF2zwxWDuZfXEzL29yeXAAubFy8tCCMjPwWLCZdLRqc", "/dns/boot.metaspan.io/tcp/16052/p2p/12D3KooWLwiJuvqQUB4kYaSjLenFKH9dWZhGZ4qi7pSb3sUYU651", "/dns/boot.metaspan.io/tcp/16056/wss/p2p/12D3KooWLwiJuvqQUB4kYaSjLenFKH9dWZhGZ4qi7pSb3sUYU651", "/dns/boot.gatotech.network/tcp/33110/p2p/12D3KooWKgwQfAeDoJARdtxFNNWfbYmcu6s4yUuSifnNoDgzHZgm", diff --git a/cumulus/parachains/chain-specs/asset-hub-westend.json b/cumulus/parachains/chain-specs/asset-hub-westend.json index b4334bdfe12..42717974a0b 100644 --- a/cumulus/parachains/chain-specs/asset-hub-westend.json +++ b/cumulus/parachains/chain-specs/asset-hub-westend.json @@ -9,8 +9,8 @@ "/dns/westend-asset-hub-bootnode-1.polkadot.io/tcp/30335/ws/p2p/12D3KooWGL3hpWycWyeqyL9gHNnmmsL474WkPZdqraBHu4L6fQrW", "/dns/westend-asset-hub-connect-0.polkadot.io/tcp/443/wss/p2p/12D3KooWJaAfPyiye7ZQBuHengTJJoMrcaz7Jj1UzHiKdNxA1Nkd", "/dns/westend-asset-hub-connect-1.polkadot.io/tcp/443/wss/p2p/12D3KooWGL3hpWycWyeqyL9gHNnmmsL474WkPZdqraBHu4L6fQrW", - "/dns/boot.stake.plus/tcp/33333/p2p/12D3KooWNiB27rpXX7EYongoWWUeRKzLQxWGms6MQU2B9LX7Ztzo", - "/dns/boot.stake.plus/tcp/33334/wss/p2p/12D3KooWNiB27rpXX7EYongoWWUeRKzLQxWGms6MQU2B9LX7Ztzo", + "/dns/asset-hub-westend.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWG4YUe7AfSxVwyLQBRRMU99krssmGAUghqUFoVY1iPkQs", + "/dns/asset-hub-westend.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWFLR2UN6PMAUwNAjiWBAiEDoYcWRrtjDrUfRkdUssge4v", "/dns/boot.metaspan.io/tcp/36052/p2p/12D3KooWBCqfNb6Y39DXTr4UBWXyjuS3hcZM1qTbHhDXxF6HkAJJ", "/dns/boot.metaspan.io/tcp/36056/wss/p2p/12D3KooWBCqfNb6Y39DXTr4UBWXyjuS3hcZM1qTbHhDXxF6HkAJJ", "/dns/boot.gatotech.network/tcp/33310/p2p/12D3KooWMSW6hr8KcNBhGFN1bg8kYC76o67PnuDEbxRhxacW6dui", diff --git a/cumulus/parachains/chain-specs/bridge-hub-kusama.json b/cumulus/parachains/chain-specs/bridge-hub-kusama.json index 2c63b52d783..36558b325bb 100644 --- a/cumulus/parachains/chain-specs/bridge-hub-kusama.json +++ b/cumulus/parachains/chain-specs/bridge-hub-kusama.json @@ -7,8 +7,8 @@ "/dns/kusama-bridge-hub-connect-ew1-1.polkadot.io/tcp/30334/p2p/12D3KooWPcF9Yk4gYrMju9CyWCV69hAFXbYsnxCLogwLGu9QFTRn", "/dns/kusama-bridge-hub-connect-ew1-0.polkadot.io/tcp/443/wss/p2p/12D3KooWPQQPivrqQ51kRTDc2R1mtqwKT4GGtk2rapkY4FrwHrEp", "/dns/kusama-bridge-hub-connect-ew1-1.polkadot.io/tcp/443/wss/p2p/12D3KooWPcF9Yk4gYrMju9CyWCV69hAFXbYsnxCLogwLGu9QFTRn", - "/dns/boot.stake.plus/tcp/41333/p2p/12D3KooWBzbs2jsXjG5dipktGPKaUm9XWvkmeJFsEAGkVt946Aa7", - "/dns/boot.stake.plus/tcp/41334/wss/p2p/12D3KooWBzbs2jsXjG5dipktGPKaUm9XWvkmeJFsEAGkVt946Aa7", + "/dns/bridge-hub-kusama.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWCujTih2WeQr51xSpopt5LoYVyXy3bgGgcN5ftPQViBmh", + "/dns/bridge-hub-kusama.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWDSxWZ8RcuPfKSpybYHWUdhQHG328Euyo2PwkNUTXcXuw", "/dns/boot.metaspan.io/tcp/26032/p2p/12D3KooWKfuSaZrLNz43PDgM4inMALXRHTSh2WBuqQtZRq8zmT1Z", "/dns/boot.metaspan.io/tcp/26036/wss/p2p/12D3KooWKfuSaZrLNz43PDgM4inMALXRHTSh2WBuqQtZRq8zmT1Z", "/dns/boot.gatotech.network/tcp/33230/p2p/12D3KooWFQFmg8UqAYLDNc2onySB6o5LLvpbx3eXZVqz9YFxAmXs", diff --git a/cumulus/parachains/chain-specs/bridge-hub-polkadot.json b/cumulus/parachains/chain-specs/bridge-hub-polkadot.json index 7d3ba835703..eb22e09035f 100644 --- a/cumulus/parachains/chain-specs/bridge-hub-polkadot.json +++ b/cumulus/parachains/chain-specs/bridge-hub-polkadot.json @@ -11,8 +11,8 @@ "/dns/polkadot-bridge-hub-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWPZ38PL3PhRVcUVYDNn7nRcZF8MykmWWLBKeDV2yna1vV", "/dns/boot.gatotech.network/tcp/33130/p2p/12D3KooWCnFzfEdd7MwUNrrDv66FuS2DM5MGuiaB4y48XS7qNjF6", "/dns/boot.gatotech.network/tcp/35130/wss/p2p/12D3KooWCnFzfEdd7MwUNrrDv66FuS2DM5MGuiaB4y48XS7qNjF6", - "/dns/boot.stake.plus/tcp/42333/p2p/12D3KooWEoTCu22Uab6prbfcD1FPpPZmfhkAVeMZQJ3fHnkCVmJz", - "/dns/boot.stake.plus/tcp/42334/wss/p2p/12D3KooWEoTCu22Uab6prbfcD1FPpPZmfhkAVeMZQJ3fHnkCVmJz", + "/dns/bridge-hub-polkadot.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWGqVn69EWriuszxcuBVMgTtpKUHYcULEiuLiqkC3kf35F", + "/dns/bridge-hub-polkadot.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWMiMJbunJa7ETaeanKB7hgchjQEbmhmtNPRRiHYtZHCTZ", "/dns/bridge-hub-polkadot-bootnode.turboflakes.io/tcp/30610/p2p/12D3KooWNEgaQRQHJHvGDh8Rg4RyLmDCCz3yAf2gAdHZZJAUUD8Q", "/dns/bridge-hub-polkadot-bootnode.turboflakes.io/tcp/30710/wss/p2p/12D3KooWNEgaQRQHJHvGDh8Rg4RyLmDCCz3yAf2gAdHZZJAUUD8Q", "/dns/boot.metaspan.io/tcp/16032/p2p/12D3KooWQTfRnrK3FfbrotpSP5RVJbjBHVBSu8VSzhj9qcvjaqnZ", diff --git a/cumulus/parachains/chain-specs/bridge-hub-westend.json b/cumulus/parachains/chain-specs/bridge-hub-westend.json index f98a046040f..40c7c7460c2 100644 --- a/cumulus/parachains/chain-specs/bridge-hub-westend.json +++ b/cumulus/parachains/chain-specs/bridge-hub-westend.json @@ -11,8 +11,8 @@ "/dns/westend-bridge-hub-collator-node-1.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWBpvudthz61XC4oP2YYFFJdhWohBeQ1ffn1BMSGWhapjd", "/dns/westend-bridge-hub-boot-ng.dwellir.com/tcp/30338/p2p/12D3KooWJWWRYTAwBLqYkh7iMBGDr5ouJ3MHj7M3fZ7zWS4zEk6F", "/dns/westend-bridge-hub-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWJWWRYTAwBLqYkh7iMBGDr5ouJ3MHj7M3fZ7zWS4zEk6F", - "/dns/boot.stake.plus/tcp/40333/p2p/12D3KooWPGMsGPdGJx6HrByiKUyz91wgUHmjG5UXTmkJ9tUphAQn", - "/dns/boot.stake.plus/tcp/40334/wss/p2p/12D3KooWPGMsGPdGJx6HrByiKUyz91wgUHmjG5UXTmkJ9tUphAQn", + "/dns/bridge-hub-westend.boot.stake.plus/tcp/30332/wss/p2p/12D3KooW9rqdajWEpC3i65zaTVR1ER2RmY6e26vndPsKhBB6WJ1k", + "/dns/bridge-hub-westend.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWN55mz6EQb5nrCgTiNL6nroVrRXygCiFDvHpeKk97Jqqc", "/dns/boot.gatotech.network/tcp/33330/p2p/12D3KooWJHG6qznPzTSEbuujHNcvyzBZcR9zNRPFcXWUaoVWZBEw", "/dns/boot.gatotech.network/tcp/35330/wss/p2p/12D3KooWJHG6qznPzTSEbuujHNcvyzBZcR9zNRPFcXWUaoVWZBEw", "/dns/bridge-hub-westend-bootnode.turboflakes.io/tcp/30620/p2p/12D3KooWLeExhPWCDUjcxCdzxTP5TpPbNBVG5t9MPvk1dZUM5naU", diff --git a/cumulus/parachains/chain-specs/collectives-polkadot.json b/cumulus/parachains/chain-specs/collectives-polkadot.json index a6ba01ffa39..5ccccbec905 100644 --- a/cumulus/parachains/chain-specs/collectives-polkadot.json +++ b/cumulus/parachains/chain-specs/collectives-polkadot.json @@ -7,8 +7,8 @@ "/dns/polkadot-collectives-connect-ew6-1.polkadot.io/tcp/30334/p2p/12D3KooWC9BwKMDyRUTXsE7teSmoKMgbyxqAp3zi2MTGRJR5nhCL", "/dns/polkadot-collectives-connect-ew6-0.polkadot.io/tcp/443/wss/p2p/12D3KooWLDZT5gAjMtC8fojiCwiz17SC61oeX2C7GWBCqqf9TwVD", "/dns/polkadot-collectives-connect-ew6-1.polkadot.io/tcp/443/wss/p2p/12D3KooWC9BwKMDyRUTXsE7teSmoKMgbyxqAp3zi2MTGRJR5nhCL", - "/dns/boot.stake.plus/tcp/37333/p2p/12D3KooWRgFfEtwPo3xorKGYALRHRteKNgF37iN9q8xTLPYc34LA", - "/dns/boot.stake.plus/tcp/37334/wss/p2p/12D3KooWRgFfEtwPo3xorKGYALRHRteKNgF37iN9q8xTLPYc34LA", + "/dns/collectives-polkadot.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWKLVfjCpW2syecz39UPe4QkJhwME9HUehBvf8oRcT4kot", + "/dns/collectives-polkadot.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWBCewTdMPoXNvs1ky1VLidMdS28Jnh8fNbCP81FYiQHn4", "/dns/boot.metaspan.io/tcp/16072/p2p/12D3KooWJWTTu2t2yg5bFRH6tjEpfzKwZir5R9JRRjQpgFPXdDfp", "/dns/boot.metaspan.io/tcp/16076/wss/p2p/12D3KooWJWTTu2t2yg5bFRH6tjEpfzKwZir5R9JRRjQpgFPXdDfp", "/dns/boot.gatotech.network/tcp/33120/p2p/12D3KooWGZsa9tSeLQ1VeC996e1YsCPuyRYMipHQuXikPjcKcpVQ", diff --git a/cumulus/parachains/chain-specs/collectives-westend.json b/cumulus/parachains/chain-specs/collectives-westend.json index 6182218d367..f583eddcef1 100644 --- a/cumulus/parachains/chain-specs/collectives-westend.json +++ b/cumulus/parachains/chain-specs/collectives-westend.json @@ -9,8 +9,8 @@ "/dns/westend-collectives-collator-node-1.parity-testnet.parity.io/tcp/30335/ws/p2p/12D3KooWAujYtHbCs4MiDD57JNTntTJnYnikfnaPa7JdnMyAUrHB", "/dns/westend-collectives-collator-0.polkadot.io/tcp/443/wss/p2p/12D3KooWBMAuyzQu3yAf8YXyoyxsSzSsgoaqAepgnNyQcPaPjPXe", "/dns/westend-collectives-collator-1.polkadot.io/tcp/443/wss/p2p/12D3KooWAujYtHbCs4MiDD57JNTntTJnYnikfnaPa7JdnMyAUrHB", - "/dns/boot.stake.plus/tcp/38333/p2p/12D3KooWQoVsFCfgu21iu6kdtQsU9T6dPn1wsyLn1U34yPerR6zQ", - "/dns/boot.stake.plus/tcp/38334/wss/p2p/12D3KooWQoVsFCfgu21iu6kdtQsU9T6dPn1wsyLn1U34yPerR6zQ", + "/dns/collectives-westend.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWH4MtT6T9BE1nm2TL9ABmY3mSr61mZcge37pEch7Qw15S", + "/dns/collectives-westend.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWBMRn31J3wJh3eu96XFUiAmgP3eKUxyNCv7249NXrAarZ", "/dns/boot.metaspan.io/tcp/36072/p2p/12D3KooWEf2QXWq5pAbFJLfbnexA7KYtRRDSPkqTP64n1KtdsdV2", "/dns/boot.metaspan.io/tcp/36076/wss/p2p/12D3KooWEf2QXWq5pAbFJLfbnexA7KYtRRDSPkqTP64n1KtdsdV2", "/dns/boot.gatotech.network/tcp/33320/p2p/12D3KooWMedtdBGiSn7HLZusHwafXkZAdmWD18ciGQBfS4X1fv9K", diff --git a/cumulus/parachains/chain-specs/coretime-kusama.json b/cumulus/parachains/chain-specs/coretime-kusama.json index f9310d6c7cc..3e4ffae403b 100644 --- a/cumulus/parachains/chain-specs/coretime-kusama.json +++ b/cumulus/parachains/chain-specs/coretime-kusama.json @@ -9,8 +9,8 @@ "/dns/kusama-coretime-connect-a-1.polkadot.io/tcp/443/wss/p2p/12D3KooWAGFiMZDF9RxdacrkenzGdo8nhfSe9EXofHc5mHeJ9vGX", "/dns/boot.metaspan.io/tcp/33024/p2p/12D3KooWPmwMhG54ixDv2b3sCfYEJ1DWDrjaduBCBwqFFdqvVsmS", "/dns/boot.metaspan.io/tcp/33026/wss/p2p/12D3KooWPmwMhG54ixDv2b3sCfYEJ1DWDrjaduBCBwqFFdqvVsmS", - "/dns/boot.stake.plus/tcp/47333/p2p/12D3KooWKKKoyywqdkkpZzCzVWt5VXEk5PbS9tUm635L5ohyf8bU", - "/dns/boot.stake.plus/tcp/47334/wss/p2p/12D3KooWKKKoyywqdkkpZzCzVWt5VXEk5PbS9tUm635L5ohyf8bU", + "/dns/coretime-kusama.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWDG2iif5zcFB7E1huEZUPAauEP34mqt8UVUacHTxC1wJY", + "/dns/coretime-kusama.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWAcZ2FG9uPa3YXzk4Mots94Zm6NYzKKaWvyAFEu2k4WMy", "/dns/coretime-kusama-boot-ng.dwellir.com/tcp/30358/p2p/12D3KooWSoPisbYQTAj79Dtsxx1qAiEFTouvXCfNJ1A3SQWQzuct", "/dns/coretime-kusama-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWSoPisbYQTAj79Dtsxx1qAiEFTouvXCfNJ1A3SQWQzuct", "/dns/boot.gatotech.network/tcp/33250/p2p/12D3KooWMpgcWr5pb7em7rWaQV4J6P2kn3YCjCeP1ESMsJPffn1a", diff --git a/cumulus/parachains/chain-specs/coretime-westend.json b/cumulus/parachains/chain-specs/coretime-westend.json index ca723aacd88..42f67526c29 100644 --- a/cumulus/parachains/chain-specs/coretime-westend.json +++ b/cumulus/parachains/chain-specs/coretime-westend.json @@ -17,8 +17,8 @@ "/dns/boot-node.helikon.io/tcp/9422/wss/p2p/12D3KooWFBPartM873MNm1AmVK3etUz34cAE9A9rwPztPno2epQ3", "/dns/coretime-westend-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWHewSFwJueRprNZNfkncdjud9DrGzvP1qfmgPd7VK66gw", "/dns/coretime-westend-boot-ng.dwellir.com/tcp/30356/p2p/12D3KooWHewSFwJueRprNZNfkncdjud9DrGzvP1qfmgPd7VK66gw", - "/dns/boot.stake.plus/tcp/45333/p2p/12D3KooWEFQapPJXNyZMt892qXZ8YgDuHWt2vhLeRvny98oUjEto", - "/dns/boot.stake.plus/tcp/45334/wss/p2p/12D3KooWEFQapPJXNyZMt892qXZ8YgDuHWt2vhLeRvny98oUjEto", + "/dns/coretime-westend.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWBFffQL6MvzM9rc8yVwR1Z8GcC9jfLhZpU2NRjsAAFeTX", + "/dns/coretime-westend.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWH2qnUkKjV9Sevp8soFXdcs6r1mj2D2DAoBH8L1ziLzs3", "/dns/coretime-westend-bootnode.radiumblock.com/tcp/30333/p2p/12D3KooWK7Zj1mCPg6h3eMp7v6akJ1o6AocRr59NLusDwBXQgrhw", "/dns/coretime-westend-bootnode.radiumblock.com/tcp/30336/wss/p2p/12D3KooWK7Zj1mCPg6h3eMp7v6akJ1o6AocRr59NLusDwBXQgrhw", "/dns/ibp-boot-westend-coretime.luckyfriday.io/tcp/443/wss/p2p/12D3KooWBzfzNhvyRVTb9KtNYpkRf26yTRHorBZR2LmYhH5ArCey", diff --git a/cumulus/parachains/chain-specs/people-kusama.json b/cumulus/parachains/chain-specs/people-kusama.json index 3352cb25a28..300b9fcfb18 100644 --- a/cumulus/parachains/chain-specs/people-kusama.json +++ b/cumulus/parachains/chain-specs/people-kusama.json @@ -26,7 +26,9 @@ "/dns/boot.metaspan.io/tcp/25068/p2p/12D3KooWDoDLtLvQi8hhFVyubPZhaYuAwSAJrPFtyGWJ2NSfBiyP", "/dns/boot.metaspan.io/tcp/25069/wss/p2p/12D3KooWDoDLtLvQi8hhFVyubPZhaYuAwSAJrPFtyGWJ2NSfBiyP", "/dns/ibp-boot-kusama-people.luckyfriday.io/tcp/30342/p2p/12D3KooWM4bRafMH2StfBEQtyj5cMWfGLYbuikCZmvKv9m1MQVPn", - "/dns/ibp-boot-kusama-people.luckyfriday.io/tcp/443/wss/p2p/12D3KooWM4bRafMH2StfBEQtyj5cMWfGLYbuikCZmvKv9m1MQVPn" + "/dns/ibp-boot-kusama-people.luckyfriday.io/tcp/443/wss/p2p/12D3KooWM4bRafMH2StfBEQtyj5cMWfGLYbuikCZmvKv9m1MQVPn", + "/dns4/people-kusama.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWRuKr3ogzXwD8zE2CTWenGdy8vSfViAjYMwGiwvFCsz8n", + "/dns/people-kusama.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWFkDKdFxBJFyj9zumuJ4Mmctec2GqdYHcKYq8MTVe8dxf" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/cumulus/parachains/chain-specs/people-westend.json b/cumulus/parachains/chain-specs/people-westend.json index 8bfbb332641..ac24b2e6435 100644 --- a/cumulus/parachains/chain-specs/people-westend.json +++ b/cumulus/parachains/chain-specs/people-westend.json @@ -17,8 +17,8 @@ "/dns/boot-node.helikon.io/tcp/9522/wss/p2p/12D3KooWHhZk21Wzvsd3Un1Cp63diXqr6idbG1MEiUWaitUZuX4c", "/dns/boot.metaspan.io/tcp/35068/p2p/12D3KooWAtw8ybFXNmNdTUsvt2gfKwtuea9wDQT2b8FpbVNKYGwc", "/dns/boot.metaspan.io/tcp/35069/wss/p2p/12D3KooWAtw8ybFXNmNdTUsvt2gfKwtuea9wDQT2b8FpbVNKYGwc", - "/dns/boot.stake.plus/tcp/46333/p2p/12D3KooWLNWUF4H5WE3dy2rPB56gVcR48XY2rHwEaZ6pGTK6HYFi", - "/dns/boot.stake.plus/tcp/46334/wss/p2p/12D3KooWLNWUF4H5WE3dy2rPB56gVcR48XY2rHwEaZ6pGTK6HYFi", + "/dns/people-westend.boot.stake.plus/tcp/30332/wss/p2p/12D3KooWD5T1YN8oZUEsRXWod69kYH67jrSXHm6tSvs7RvH4Cb3p", + "/dns/people-westend.boot.stake.plus/tcp/31332/wss/p2p/12D3KooWSByQrekhxx7pyDMTZcnnWBBFdj2LtqN9QtTCBDckc2zi", "/dns/boot.gatotech.network/tcp/33340/p2p/12D3KooWHwURYtEHpexfrZa8k8hVgVi5FTFr4N8HBnn9kPDsWfgA", "/dns/boot.gatotech.network/tcp/35340/wss/p2p/12D3KooWHwURYtEHpexfrZa8k8hVgVi5FTFr4N8HBnn9kPDsWfgA", "/dns/people-westend.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWE1btdwDhNpApg8BEe2QwJxdVDtz6a6BRhgTeUh9HMhWs", diff --git a/polkadot/node/service/chain-specs/kusama.json b/polkadot/node/service/chain-specs/kusama.json index dfe79fd9c5e..5d2413ac1e0 100644 --- a/polkadot/node/service/chain-specs/kusama.json +++ b/polkadot/node/service/chain-specs/kusama.json @@ -10,8 +10,8 @@ "/dns/kusama-bootnode-1.polkadot.io/tcp/443/wss/p2p/12D3KooWQKqane1SqWJNWMQkbia9qiMWXkcHtAdfW5eVF8hbwEDw", "/dns/kusama-boot.dwellir.com/tcp/30333/ws/p2p/12D3KooWFj2ndawdYyk2spc42Y2arYwb2TUoHLHFAsKuHRzWXwoJ", "/dns/kusama-boot.dwellir.com/tcp/443/wss/p2p/12D3KooWFj2ndawdYyk2spc42Y2arYwb2TUoHLHFAsKuHRzWXwoJ", - "/dns/boot.stake.plus/tcp/31333/p2p/12D3KooWLa1UyG5xLPds2GbiRBCTJjpsVwRWHWN7Dff14yiNJRpR", - "/dns/boot.stake.plus/tcp/31334/wss/p2p/12D3KooWLa1UyG5xLPds2GbiRBCTJjpsVwRWHWN7Dff14yiNJRpR", + "/dns/kusama.boot.stake.plus/tcp/30334/wss/p2p/12D3KooWDQ28HsssSyDnso7ZRiMXGtCGPRi2en6djKDsMf9f7mqE", + "/dns/kusama.boot.stake.plus/tcp/31334/wss/p2p/12D3KooWANYqS81DkERRrBW1swoMgqUHK69pJN8XjQCnS6dnUAps", "/dns/boot-node.helikon.io/tcp/7060/p2p/12D3KooWL4KPqfAsPE2aY1g5Zo1CxsDwcdJ7mmAghK7cg6M2fdbD", "/dns/boot-node.helikon.io/tcp/7062/wss/p2p/12D3KooWL4KPqfAsPE2aY1g5Zo1CxsDwcdJ7mmAghK7cg6M2fdbD", "/dns/kusama.bootnode.amforc.com/tcp/30001/p2p/12D3KooWKvYf6qKaAF8UUDw3KsTwjHLnvkED23yxHbH3npMe8w4G", diff --git a/polkadot/node/service/chain-specs/paseo.json b/polkadot/node/service/chain-specs/paseo.json index e307d5213a3..35ac9aa6aa9 100644 --- a/polkadot/node/service/chain-specs/paseo.json +++ b/polkadot/node/service/chain-specs/paseo.json @@ -5,8 +5,8 @@ "bootNodes": [ "/dns/paseo.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWSdf63rZjtGdeWXpQwQwPh8K8c22upcB3B1VmqW8rxrjw", "/dns/paseo.bootnode.amforc.com/tcp/30001/p2p/12D3KooWSdf63rZjtGdeWXpQwQwPh8K8c22upcB3B1VmqW8rxrjw", - "/dns/boot.stake.plus/tcp/43334/wss/p2p/12D3KooWNhgAC3hjZHxaT52EpPFZohkCL1AHFAijqcN8xB9Rwud2", - "/dns/boot.stake.plus/tcp/43333/p2p/12D3KooWNhgAC3hjZHxaT52EpPFZohkCL1AHFAijqcN8xB9Rwud2", + "/dns/paseo.boot.stake.plus/tcp/30334/wss/p2p/12D3KooWDVqd8JXGMPsdYynu2RoBhqftTrFibZyBYibqcjQpHoQu", + "/dns/paseo.boot.stake.plus/tcp/31334/wss/p2p/12D3KooWJ4HjAGR9FUHZhc2jjLQX5Zb2zdJBxPYwrE6Ldpg5jjk4", "/dns/boot.metaspan.io/tcp/36017/wss/p2p/12D3KooWSW6nDfM3SS8rUtjMyjdszivK31bu4a1sRngGa2hFETz7", "/dns/boot.metaspan.io/tcp/36018/p2p/12D3KooWSW6nDfM3SS8rUtjMyjdszivK31bu4a1sRngGa2hFETz7", "/dns/paseo.bootnodes.polkadotters.com/tcp/30538/p2p/12D3KooWPbbFy4TefEGTRF5eTYhq8LEzc4VAHdNUVCbY4nAnhqPP", diff --git a/polkadot/node/service/chain-specs/polkadot.json b/polkadot/node/service/chain-specs/polkadot.json index f79b6db90fc..553ff1bb3e4 100644 --- a/polkadot/node/service/chain-specs/polkadot.json +++ b/polkadot/node/service/chain-specs/polkadot.json @@ -11,8 +11,8 @@ "/dns/polkadot-bootnode-1.polkadot.io/tcp/443/wss/p2p/12D3KooWFN2mhgpkJsDBuNuE5427AcDrsib8EoqGMZmkxWwx3Md4", "/dns/polkadot-boot.dwellir.com/tcp/30334/ws/p2p/12D3KooWKvdDyRKqUfSAaUCbYiLwKY8uK3wDWpCuy2FiDLbkPTDJ", "/dns/polkadot-boot.dwellir.com/tcp/443/wss/p2p/12D3KooWKvdDyRKqUfSAaUCbYiLwKY8uK3wDWpCuy2FiDLbkPTDJ", - "/dns/boot.stake.plus/tcp/30333/p2p/12D3KooWKT4ZHNxXH4icMjdrv7EwWBkfbz5duxE5sdJKKeWFYi5n", - "/dns/boot.stake.plus/tcp/30334/wss/p2p/12D3KooWKT4ZHNxXH4icMjdrv7EwWBkfbz5duxE5sdJKKeWFYi5n", + "/dns/polkadot.boot.stake.plus/tcp/30334/wss/p2p/12D3KooWCZKEvAMJRk9nwTHJcTjgVw6bDEqryQ3B7n7scNtfNqPB", + "/dns/polkadot.boot.stake.plus/tcp/31334/wss/p2p/12D3KooWMFwJV935CyJXE8twfkKxRDnNWeEFd8jZWaoWZF22Hv8S", "/dns/boot-node.helikon.io/tcp/7070/p2p/12D3KooWS9ZcvRxyzrSf6p63QfTCWs12nLoNKhGux865crgxVA4H", "/dns/boot-node.helikon.io/tcp/7072/wss/p2p/12D3KooWS9ZcvRxyzrSf6p63QfTCWs12nLoNKhGux865crgxVA4H", "/dns/polkadot.bootnode.amforc.com/tcp/30001/p2p/12D3KooWT2HyZx5C6BBeLbCKhYG2SqJYuiu7sLMxGzUcQBko3BMr", diff --git a/polkadot/node/service/chain-specs/westend.json b/polkadot/node/service/chain-specs/westend.json index 1bfb5ba334c..9059d525689 100644 --- a/polkadot/node/service/chain-specs/westend.json +++ b/polkadot/node/service/chain-specs/westend.json @@ -8,8 +8,8 @@ "/dns/westend-bootnode-1.polkadot.io/tcp/30333/p2p/12D3KooWPVPzs42GvRBShdUMtFsk4SvnByrSdWqb6aeAAHvLMSLS", "/dns/westend-bootnode-1.polkadot.io/tcp/30334/ws/p2p/12D3KooWPVPzs42GvRBShdUMtFsk4SvnByrSdWqb6aeAAHvLMSLS", "/dns/westend-bootnode-1.polkadot.io/tcp/443/wss/p2p/12D3KooWPVPzs42GvRBShdUMtFsk4SvnByrSdWqb6aeAAHvLMSLS", - "/dns/boot.stake.plus/tcp/32333/p2p/12D3KooWK8fjVoSvMq5copQYMsdYreSGPGgcMbGMgbMDPfpf3sm7", - "/dns/boot.stake.plus/tcp/32334/wss/p2p/12D3KooWK8fjVoSvMq5copQYMsdYreSGPGgcMbGMgbMDPfpf3sm7", + "/dns/westend.boot.stake.plus/tcp/30334/wss/p2p/12D3KooWAzfLkJarihZAyDeDet2WpYNkzjpXocGmmDFiRaHJjoyw", + "/dns/westend.boot.stake.plus/tcp/31334/wss/p2p/12D3KooWBdcVpUwnB3AgwZQXcyrvd4yzPBXtSLknvoBSHQZNoftP", "/dns/boot-node.helikon.io/tcp/7080/p2p/12D3KooWRFDPyT8vA8mLzh6dJoyujn4QNjeqi6Ch79eSMz9beKXC", "/dns/boot-node.helikon.io/tcp/7082/wss/p2p/12D3KooWRFDPyT8vA8mLzh6dJoyujn4QNjeqi6Ch79eSMz9beKXC", "/dns/westend.bootnode.amforc.com/tcp/30001/p2p/12D3KooWAPmR7rbm2axPjHzF51yvQNDM5GvWfkF5BTV44Y5vJ3ct", -- GitLab From 25d9b59e6d0bf74637796a99d1adf84725468e0a Mon Sep 17 00:00:00 2001 From: Jun Jiang Date: Thu, 18 Jul 2024 16:01:37 +0800 Subject: [PATCH 051/252] upgrade `wasm-bindgen` to 0.2.92 (#5056) The rustc warns ``` The package `wasm-bindgen v0.2.87` currently triggers the following future incompatibility lints: > warning: older versions of the `wasm-bindgen` crate will be incompatible with future versions of Rust; please update to `wasm-bindgen` v0.2.88 > | > = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! > = note: for more information, see issue #71871 > ``` --- Cargo.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 160e7031af7..7dba0d24199 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -22869,9 +22869,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "serde", @@ -22881,9 +22881,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", @@ -22908,9 +22908,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote 1.0.35", "wasm-bindgen-macro-support", @@ -22918,9 +22918,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2 1.0.82", "quote 1.0.35", @@ -22931,9 +22931,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-bindgen-test" -- GitLab From b6607cba79720ec985aa1388d65a5327908d2a9d Mon Sep 17 00:00:00 2001 From: Przemek Rzad Date: Thu, 18 Jul 2024 12:56:56 +0200 Subject: [PATCH 052/252] Update the template synchronization script (#5022) There are slight changes required, after https://github.com/paritytech/polkadot-sdk/pull/4716. In order to follow the convention in the templates, we need to specify the internal template dependencies (runtime and a pallet) in the main `Cargo.toml`. Additionally, there are now dependencies with `path` in the main `Cargo.toml`, so we add a step with `psvm` to change those references to crate versions. --- .github/workflows/misc-sync-templates.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/misc-sync-templates.yml b/.github/workflows/misc-sync-templates.yml index d8027014863..835a3116d44 100644 --- a/.github/workflows/misc-sync-templates.yml +++ b/.github/workflows/misc-sync-templates.yml @@ -90,7 +90,12 @@ jobs: "runtime", ] resolver = "2" + + [workspace.dependencies] EOF + + echo "$(toml get -r ./runtime/Cargo.toml 'package.name') = { path = \"./runtime\", default-features = false }" >> Cargo.toml + echo "$(toml get -r ./pallets/template/Cargo.toml 'package.name') = { path = \"./pallets/template\", default-features = false }" >> Cargo.toml shell: bash working-directory: polkadot-sdk/templates/${{ matrix.template }}/ - name: Update workspace configuration @@ -116,9 +121,12 @@ jobs: - name: Copy over the new changes run: | cp -r polkadot-sdk/templates/${{ matrix.template }}/* "${{ env.template-path }}/" + + - name: Run psvm on monorepo workspace dependencies + run: psvm -o -v ${{ github.event.inputs.crate_release_version }} -p ./Cargo.toml + working-directory: polkadot-sdk/ - name: Copy over required workspace dependencies run: | - echo -e "\n[workspace.dependencies]" >> Cargo.toml set +e # If a workspace dependency is required.. while cargo tree --depth 1 --prefix none --no-dedupe 2>&1 | grep 'was not found in `workspace.dependencies`'; do -- GitLab From e2d3b8b1f374ceeb6b4af5b9ef9a216bba44e4ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jul 2024 13:47:20 +0200 Subject: [PATCH 053/252] Bump the known_good_semver group with 8 updates (#5060) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps the known_good_semver group with 8 updates: | Package | From | To | | --- | --- | --- | | [clap](https://github.com/clap-rs/clap) | `4.5.3` | `4.5.9` | | [log](https://github.com/rust-lang/log) | `0.4.21` | `0.4.22` | | [paste](https://github.com/dtolnay/paste) | `1.0.14` | `1.0.15` | | [quote](https://github.com/dtolnay/quote) | `1.0.35` | `1.0.36` | | [serde](https://github.com/serde-rs/serde) | `1.0.197` | `1.0.204` | | [serde_derive](https://github.com/serde-rs/serde) | `1.0.197` | `1.0.204` | | [serde_json](https://github.com/serde-rs/json) | `1.0.114` | `1.0.120` | | [serde_yaml](https://github.com/dtolnay/serde-yaml) | `0.9.33` | `0.9.34+deprecated` | Updates `clap` from 4.5.3 to 4.5.9
    Changelog

    Sourced from clap's changelog.

    [4.5.9] - 2024-07-09

    Fixes

    • (error) When defining a custom help flag, be sure to suggest it like we do the built-in one

    [4.5.8] - 2024-06-28

    Fixes

    • Reduce extra flushes

    [4.5.7] - 2024-06-10

    Fixes

    • Clean up error message when too few arguments for num_args

    [4.5.6] - 2024-06-06

    [4.5.5] - 2024-06-06

    Fixes

    • Allow exclusive to override required_unless_present, required_unless_present_any, required_unless_present_all

    [4.5.4] - 2024-03-25

    Fixes

    • (derive) Allow non-literal #[arg(id)] attributes again
    Commits

    Updates `log` from 0.4.21 to 0.4.22
    Changelog

    Sourced from log's changelog.

    [0.4.22] - 2024-06-27

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rust-lang/log/compare/0.4.21...0.4.22

    Commits
    • d5ba2cf Merge pull request #634 from rust-lang/cargo/0.4.22
    • d1a8306 prepare for 0.4.22 release
    • 46894ef Merge pull request #633 from rust-lang/feat/panic-info
    • e0d389c Merge pull request #632 from rust-lang/feat/loosen-atomics
    • c9e5e13 use Location::caller() for file and line info
    • 507b672 loosen orderings for logger initialization
    • c879b01 Merge pull request #628 from Thomasdezeeuw/fix-warnings
    • 405fdb4 Merge pull request #627 from Thomasdezeeuw/check-features
    • 1307ade Remove unneeded import
    • 710560e Don't use --all-features in CI
    • Additional commits viewable in compare view

    Updates `paste` from 1.0.14 to 1.0.15
    Release notes

    Sourced from paste's releases.

    1.0.15

    • Resolve unexpected_cfgs warning (#102)
    Commits
    • a2c7e27 Release 1.0.15
    • 1d23098 Merge pull request #102 from dtolnay/checkcfg
    • 1edfaae Resolve unexpected_cfgs warning
    • cc6803d Explicitly install a Rust toolchain for cargo-outdated job
    • d39fb86 Ignore dead code lint in tests
    • 14872ad Work around empty_docs clippy lint in test
    • ed844dc Work around dead_code warning in test
    • 0a4161b Add cargo.toml metadata to link to crate documentation
    • 5a2bce1 Test docs.rs documentation build in CI
    • d7e0be1 Update actions/checkout@v3 -> v4
    • Additional commits viewable in compare view

    Updates `quote` from 1.0.35 to 1.0.36
    Release notes

    Sourced from quote's releases.

    1.0.36

    • Documentation improvements
    Commits
    • 5d4880c Release 1.0.36
    • 1dd7ce7 Merge pull request #273 from dtolnay/doc
    • 0bc5d12 Apply doc comment to cfg(not(doc)) macros too
    • c295f5c Revert "Temporarily disable miri on doctests"
    • 435bd1b Update ui test suite to nightly-2024-03-31
    • cc3847d Explicitly install a Rust toolchain for cargo-outdated job
    • 6259d49 Temporarily disable miri on doctests
    • bdb4b59 Update ui test suite to nightly-2024-02-08
    • c2aeca9 Update ui test suite to nightly-2024-01-31
    • 376a061 Merge pull request #270 from dtolnay/bench
    • Additional commits viewable in compare view

    Updates `serde` from 1.0.197 to 1.0.204
    Release notes

    Sourced from serde's releases.

    v1.0.204

    • Apply #[diagnostic::on_unimplemented] attribute on Rust 1.78+ to suggest adding serde derive or enabling a "serde" feature flag in dependencies (#2767, thanks @​weiznich)

    v1.0.203

    • Documentation improvements (#2747)

    v1.0.202

    • Provide public access to RenameAllRules in serde_derive_internals (#2743)

    v1.0.201

    • Resolve unexpected_cfgs warning (#2737)

    v1.0.200

    • Fix formatting of "invalid type" and "invalid value" deserialization error messages containing NaN or infinite floats (#2733, thanks @​jamessan)

    v1.0.199

    • Fix ambiguous associated item when forward_to_deserialize_any! is used on an enum with Error variant (#2732, thanks @​aatifsyed)

    v1.0.198

    Commits
    • 18dcae0 Release 1.0.204
    • 58c307f Alphabetize list of rustc-check-cfg
    • 8cc4809 Merge pull request #2769 from dtolnay/onunimpl
    • 1179158 Update ui test with diagnostic::on_unimplemented from PR 2767
    • 91aa40e Add ui test of unsatisfied serde trait bound
    • 595019e Cut test_suite from workspace members in old toolchain CI jobs
    • b0d7917 Pull in trybuild 'following types implement trait' fix
    • 8e6637a Merge pull request #2767 from weiznich/feature/diagnostic_on_unimplemented
    • 694fe05 Use the #[diagnostic::on_unimplemented] attribute when possible
    • f3dfd2a Suppress dead code warning in test of unit struct remote derive
    • Additional commits viewable in compare view

    Updates `serde_derive` from 1.0.197 to 1.0.204
    Release notes

    Sourced from serde_derive's releases.

    v1.0.204

    • Apply #[diagnostic::on_unimplemented] attribute on Rust 1.78+ to suggest adding serde derive or enabling a "serde" feature flag in dependencies (#2767, thanks @​weiznich)

    v1.0.203

    • Documentation improvements (#2747)

    v1.0.202

    • Provide public access to RenameAllRules in serde_derive_internals (#2743)

    v1.0.201

    • Resolve unexpected_cfgs warning (#2737)

    v1.0.200

    • Fix formatting of "invalid type" and "invalid value" deserialization error messages containing NaN or infinite floats (#2733, thanks @​jamessan)

    v1.0.199

    • Fix ambiguous associated item when forward_to_deserialize_any! is used on an enum with Error variant (#2732, thanks @​aatifsyed)

    v1.0.198

    Commits
    • 18dcae0 Release 1.0.204
    • 58c307f Alphabetize list of rustc-check-cfg
    • 8cc4809 Merge pull request #2769 from dtolnay/onunimpl
    • 1179158 Update ui test with diagnostic::on_unimplemented from PR 2767
    • 91aa40e Add ui test of unsatisfied serde trait bound
    • 595019e Cut test_suite from workspace members in old toolchain CI jobs
    • b0d7917 Pull in trybuild 'following types implement trait' fix
    • 8e6637a Merge pull request #2767 from weiznich/feature/diagnostic_on_unimplemented
    • 694fe05 Use the #[diagnostic::on_unimplemented] attribute when possible
    • f3dfd2a Suppress dead code warning in test of unit struct remote derive
    • Additional commits viewable in compare view

    Updates `serde_json` from 1.0.114 to 1.0.120
    Release notes

    Sourced from serde_json's releases.

    v1.0.120

    • Correctly specify required version of indexmap dependency (#1152, thanks @​cforycki)

    v1.0.119

    v1.0.118

    v1.0.117

    • Resolve unexpected_cfgs warning (#1130)

    v1.0.116

    v1.0.115

    • Documentation improvements
    Commits
    • bcedc3d Release 1.0.120
    • 962c0fb Merge pull request #1152 from cforycki/fix/index-map-minimal-version
    • 3480fed fix: indexmap minimal version with Map::shift_insert()
    • b48b9a3 Release 1.0.119
    • 8878cd7 Make shift_insert available for inlining like other Map methods
    • 352b7ab Document the cfg required for Map::shift_insert to exist
    • c17e63f Merge pull request #1149 from joshka/master
    • 309ef6b Add Map::shift_insert()
    • a9e089a Merge pull request #1146 from haouvw/master
    • a83fe96 chore: remove repeat words
    • Additional commits viewable in compare view

    Updates `serde_yaml` from 0.9.33 to 0.9.34+deprecated
    Release notes

    Sourced from serde_yaml's releases.

    0.9.34

    As of this release, I am not planning to publish further versions of serde_yaml as none of my projects have been using YAML for a long time, so I have archived the GitHub repo and marked the crate deprecated in the version number. An official replacement isn't designated for those who still need to work with YAML, but https://crates.io/search?q=yaml&sort=relevance and https://crates.io/keywords/yaml has a number of reasonable-looking options available.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 320 ++++++++++++++++++++++++++--------------------------- Cargo.toml | 12 +- 2 files changed, 166 insertions(+), 166 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7dba0d24199..4d730f6ee1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ "heck 0.4.1", "proc-macro-error", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", "syn-solidity", "tiny-keccak", @@ -285,7 +285,7 @@ dependencies = [ "itertools 0.10.5", "proc-macro-error", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -484,7 +484,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" dependencies = [ - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -494,7 +494,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" dependencies = [ - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -506,7 +506,7 @@ checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ "num-bigint", "num-traits", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -519,7 +519,7 @@ dependencies = [ "num-bigint", "num-traits", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -621,7 +621,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -725,7 +725,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", "synstructure 0.12.6", ] @@ -737,7 +737,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", "synstructure 0.13.1", ] @@ -749,7 +749,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -760,7 +760,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -1094,7 +1094,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" dependencies = [ - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -1284,7 +1284,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -1301,7 +1301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -1360,7 +1360,7 @@ checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" dependencies = [ "proc-macro-error", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -1508,7 +1508,7 @@ dependencies = [ "peeking_take_while", "prettyplease 0.2.12", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "regex", "rustc-hash", "shlex", @@ -2755,12 +2755,12 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.3" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" +checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" dependencies = [ "clap_builder", - "clap_derive 4.5.3", + "clap_derive 4.5.8", ] [[package]] @@ -2774,9 +2774,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" dependencies = [ "anstream", "anstyle", @@ -2791,7 +2791,7 @@ version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "586a385f7ef2f8b4d86bddaa0c094794e7ccbfe5ffef1f434fe928143fc783a5" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", ] [[package]] @@ -2803,19 +2803,19 @@ dependencies = [ "heck 0.4.1", "proc-macro-error", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] [[package]] name = "clap_derive" -version = "4.5.3" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" dependencies = [ "heck 0.5.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -3002,7 +3002,7 @@ checksum = "d51beaa537d73d2d1ff34ee70bc095f170420ab2ec5d687ecd3ec2b0d092514b" dependencies = [ "nom", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -3557,7 +3557,7 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.5.3", + "clap 4.5.9", "criterion-plot", "futures", "is-terminal", @@ -3691,7 +3691,7 @@ dependencies = [ name = "cumulus-client-cli" version = "0.7.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "parity-scale-codec", "sc-chain-spec", "sc-cli", @@ -4065,7 +4065,7 @@ version = "0.6.0" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -4463,7 +4463,7 @@ name = "cumulus-test-service" version = "0.1.0" dependencies = [ "async-trait", - "clap 4.5.3", + "clap 4.5.9", "criterion", "cumulus-client-cli", "cumulus-client-collator", @@ -4592,7 +4592,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -4631,7 +4631,7 @@ dependencies = [ "codespan-reporting", "once_cell", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "scratch", "syn 2.0.61", ] @@ -4649,7 +4649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "50c49547d73ba8dcfd4ad7325d64c6d5391ff4224d498fc39a6f3f49825a530d" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -4752,7 +4752,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -4763,7 +4763,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -4774,7 +4774,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -4786,7 +4786,7 @@ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "convert_case", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "rustc_version 0.4.0", "syn 1.0.109", ] @@ -4882,7 +4882,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -4942,7 +4942,7 @@ dependencies = [ "derive-syn-parse", "once_cell", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "regex", "syn 2.0.61", "termcolor", @@ -4991,7 +4991,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -5137,7 +5137,7 @@ checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -5149,7 +5149,7 @@ checksum = "5ffccbb6966c05b32ef8fbac435df276c4ae4d3dc55a8cd0eb9745e6c12f546a" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -5169,7 +5169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -5180,7 +5180,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -5385,7 +5385,7 @@ dependencies = [ "fs-err", "prettyplease 0.2.12", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -5457,7 +5457,7 @@ dependencies = [ "indexmap 2.2.3", "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -5725,7 +5725,7 @@ dependencies = [ "Inflector", "array-bytes", "chrono", - "clap 4.5.3", + "clap 4.5.9", "comfy-table", "frame-benchmarking", "frame-support", @@ -5789,7 +5789,7 @@ dependencies = [ "parity-scale-codec", "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "scale-info", "sp-arithmetic", "syn 2.0.61", @@ -5817,7 +5817,7 @@ dependencies = [ name = "frame-election-solution-type-fuzzer" version = "2.0.0-alpha.5" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "frame-election-provider-solution-type", "frame-election-provider-support", "frame-support", @@ -5889,7 +5889,7 @@ dependencies = [ name = "frame-omni-bencher" version = "0.1.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "cumulus-primitives-proof-size-hostfunction", "env_logger 0.11.3", "frame-benchmarking-cli", @@ -5979,7 +5979,7 @@ dependencies = [ "macro_magic", "proc-macro-warning 1.0.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "regex", "sp-crypto-hashing", "syn 2.0.61", @@ -5992,7 +5992,7 @@ dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -6001,7 +6001,7 @@ name = "frame-support-procedural-tools-derive" version = "11.0.0" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -6252,7 +6252,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -7045,7 +7045,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -7065,7 +7065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", ] [[package]] @@ -7409,7 +7409,7 @@ dependencies = [ "heck 0.5.0", "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -7997,7 +7997,7 @@ dependencies = [ "heck 0.4.1", "proc-macro-warning 0.4.2", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -8324,9 +8324,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "serde", "value-bag", @@ -8411,7 +8411,7 @@ checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" dependencies = [ "macro_magic_core", "macro_magic_macros", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -8425,7 +8425,7 @@ dependencies = [ "derive-syn-parse", "macro_magic_core_macros", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -8436,7 +8436,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -8447,7 +8447,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -8640,7 +8640,7 @@ dependencies = [ name = "minimal-template-node" version = "0.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "docify", "futures", "futures-timer", @@ -8811,7 +8811,7 @@ checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ "cfg-if", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -8823,7 +8823,7 @@ checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" dependencies = [ "cfg-if", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -8935,7 +8935,7 @@ dependencies = [ "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", "synstructure 0.12.6", ] @@ -8983,7 +8983,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -9133,7 +9133,7 @@ name = "node-bench" version = "0.9.0-dev" dependencies = [ "array-bytes", - "clap 4.5.3", + "clap 4.5.9", "derive_more", "fs_extra", "futures", @@ -9212,7 +9212,7 @@ dependencies = [ name = "node-runtime-generate-bags" version = "3.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "generate-bags", "kitchensink-runtime", ] @@ -9221,7 +9221,7 @@ dependencies = [ name = "node-template-release" version = "3.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "flate2", "fs_extra", "glob", @@ -9370,7 +9370,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -9537,7 +9537,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -9604,7 +9604,7 @@ dependencies = [ "petgraph", "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -10309,7 +10309,7 @@ name = "pallet-contracts-proc-macro" version = "18.0.0" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -11543,7 +11543,7 @@ version = "11.0.0" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "sp-runtime", "syn 2.0.61", ] @@ -11936,7 +11936,7 @@ dependencies = [ name = "parachain-template-node" version = "0.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "color-print", "cumulus-client-cli", "cumulus-client-collator", @@ -12187,7 +12187,7 @@ checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -12299,9 +12299,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -12633,7 +12633,7 @@ dependencies = [ "pest", "pest_meta", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -12674,7 +12674,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -12896,7 +12896,7 @@ name = "polkadot-cli" version = "7.0.0" dependencies = [ "cfg-if", - "clap 4.5.3", + "clap 4.5.9", "frame-benchmarking-cli", "futures", "log", @@ -13754,7 +13754,7 @@ dependencies = [ "async-trait", "bridge-hub-rococo-runtime", "bridge-hub-westend-runtime", - "clap 4.5.3", + "clap 4.5.9", "collectives-westend-runtime", "color-print", "contracts-rococo-runtime", @@ -14736,7 +14736,7 @@ dependencies = [ "async-trait", "bincode", "bitvec", - "clap 4.5.3", + "clap 4.5.9", "clap-num", "color-eyre", "colored", @@ -14834,7 +14834,7 @@ version = "1.0.0" dependencies = [ "assert_matches", "async-trait", - "clap 4.5.3", + "clap 4.5.9", "color-eyre", "futures", "futures-timer", @@ -14976,7 +14976,7 @@ dependencies = [ name = "polkadot-voter-bags" version = "7.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "generate-bags", "sp-io", "westend-runtime", @@ -15030,7 +15030,7 @@ checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" dependencies = [ "polkavm-common", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -15289,7 +15289,7 @@ checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", "version_check", ] @@ -15301,7 +15301,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "version_check", ] @@ -15318,7 +15318,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -15329,7 +15329,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -15410,7 +15410,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -15518,7 +15518,7 @@ dependencies = [ "anyhow", "itertools 0.10.5", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -15531,7 +15531,7 @@ dependencies = [ "anyhow", "itertools 0.11.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -15766,9 +15766,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2 1.0.82", ] @@ -15970,7 +15970,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -16125,7 +16125,7 @@ dependencies = [ name = "remote-ext-tests-bags-list" version = "1.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "frame-system", "log", "pallet-bags-list-remote-tests", @@ -16518,7 +16518,7 @@ dependencies = [ "cfg-if", "glob", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "regex", "relative-path", "rustc_version 0.4.0", @@ -16973,7 +16973,7 @@ name = "sc-chain-spec" version = "28.0.0" dependencies = [ "array-bytes", - "clap 4.5.3", + "clap 4.5.9", "docify", "log", "memmap2 0.9.3", @@ -17006,7 +17006,7 @@ version = "11.0.0" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -17016,7 +17016,7 @@ version = "0.36.0" dependencies = [ "array-bytes", "chrono", - "clap 4.5.3", + "clap 4.5.9", "fdlimit", "futures", "futures-timer", @@ -18200,7 +18200,7 @@ dependencies = [ name = "sc-storage-monitor" version = "0.16.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "fs4", "log", "sp-core", @@ -18302,7 +18302,7 @@ version = "11.0.0" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -18416,7 +18416,7 @@ checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -18454,7 +18454,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0f696e21e10fa546b7ffb1c9672c6de8fbc7a81acf59524386d8639bf12737" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "serde_derive_internals", "syn 1.0.109", ] @@ -18722,9 +18722,9 @@ checksum = "f97841a747eef040fcd2e7b3b9a220a7205926e60488e673d9e4926d27772ce5" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] @@ -18749,12 +18749,12 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -18765,7 +18765,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -18780,9 +18780,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "indexmap 2.2.3", "itoa", @@ -18813,9 +18813,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.33" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ "indexmap 2.2.3", "itoa", @@ -18855,7 +18855,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91d129178576168c589c9ec973feedf7d3126c01ac2bf08795109aa35b69fb8f" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -19622,7 +19622,7 @@ dependencies = [ name = "solochain-template-node" version = "0.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "frame-benchmarking-cli", "frame-system", "futures", @@ -19729,7 +19729,7 @@ dependencies = [ "expander", "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -20112,7 +20112,7 @@ dependencies = [ name = "sp-crypto-hashing-proc-macro" version = "0.1.0" dependencies = [ - "quote 1.0.35", + "quote 1.0.36", "sp-crypto-hashing", "syn 2.0.61", ] @@ -20131,7 +20131,7 @@ version = "8.0.0" source = "git+https://github.com/paritytech/polkadot-sdk#82912acb33a9030c0ef3bf590a34fca09b72dc5f" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -20140,7 +20140,7 @@ name = "sp-debug-derive" version = "14.0.0" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -20296,7 +20296,7 @@ dependencies = [ name = "sp-npos-elections-fuzzer" version = "2.0.0-alpha.5" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "honggfuzz", "rand", "sp-npos-elections", @@ -20412,7 +20412,7 @@ dependencies = [ "Inflector", "proc-macro-crate 1.3.1", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -20424,7 +20424,7 @@ dependencies = [ "expander", "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -20685,7 +20685,7 @@ version = "13.0.0" dependencies = [ "parity-scale-codec", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "sp-version", "syn 2.0.61", ] @@ -20770,7 +20770,7 @@ dependencies = [ "Inflector", "num-format", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "serde", "serde_json", "unicode-xid 0.2.4", @@ -20795,7 +20795,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f07d54c4d01a1713eb363b55ba51595da15f6f1211435b71466460da022aa140" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -20809,7 +20809,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" name = "staging-chain-spec-builder" version = "1.6.1" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "log", "sc-chain-spec", "serde_json", @@ -20822,7 +20822,7 @@ version = "3.0.0-dev" dependencies = [ "array-bytes", "assert_cmd", - "clap 4.5.3", + "clap 4.5.9", "clap_complete", "criterion", "futures", @@ -20856,7 +20856,7 @@ dependencies = [ name = "staging-node-inspect" version = "0.12.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "parity-scale-codec", "sc-cli", "sc-client-api", @@ -20984,7 +20984,7 @@ dependencies = [ "cfg_aliases", "memchr", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -21057,7 +21057,7 @@ dependencies = [ "heck 0.3.3", "proc-macro-error", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -21093,7 +21093,7 @@ checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "rustversion", "syn 1.0.109", ] @@ -21106,7 +21106,7 @@ checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "rustversion", "syn 2.0.61", ] @@ -21119,7 +21119,7 @@ checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ "heck 0.4.1", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "rustversion", "syn 2.0.61", ] @@ -21128,7 +21128,7 @@ dependencies = [ name = "subkey" version = "9.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "sc-cli", ] @@ -21568,7 +21568,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "unicode-ident", ] @@ -21579,7 +21579,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "unicode-ident", ] @@ -21591,7 +21591,7 @@ checksum = "86b837ef12ab88835251726eb12237655e61ec8dc8a280085d1961cdc3dfd047" dependencies = [ "paste", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -21602,7 +21602,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", "unicode-xid 0.2.4", ] @@ -21614,7 +21614,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -21733,7 +21733,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -21753,7 +21753,7 @@ dependencies = [ name = "test-parachain-adder-collator" version = "1.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "futures", "futures-timer", "log", @@ -21800,7 +21800,7 @@ dependencies = [ name = "test-parachain-undying-collator" version = "1.0.0" dependencies = [ - "clap 4.5.3", + "clap 4.5.9", "futures", "futures-timer", "log", @@ -21897,7 +21897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 1.0.109", ] @@ -21908,7 +21908,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -22071,7 +22071,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -22278,7 +22278,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -22320,7 +22320,7 @@ dependencies = [ "expander", "proc-macro-crate 3.1.0", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -22889,7 +22889,7 @@ dependencies = [ "log", "once_cell", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", "wasm-bindgen-shared", ] @@ -22912,7 +22912,7 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ - "quote 1.0.35", + "quote 1.0.36", "wasm-bindgen-macro-support", ] @@ -22923,7 +22923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", "wasm-bindgen-backend", "wasm-bindgen-shared", @@ -22956,7 +22956,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", ] [[package]] @@ -24021,7 +24021,7 @@ version = "7.0.0" dependencies = [ "Inflector", "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "staging-xcm", "syn 2.0.61", "trybuild", @@ -24187,7 +24187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] @@ -24207,7 +24207,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2 1.0.82", - "quote 1.0.35", + "quote 1.0.36", "syn 2.0.61", ] diff --git a/Cargo.toml b/Cargo.toml index 0999d630401..f3011994796 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -654,7 +654,7 @@ chain-spec-builder = { path = "substrate/bin/utils/chain-spec-builder", default- chain-spec-guide-runtime = { path = "docs/sdk/src/reference_docs/chain_spec_runtime" } chrono = { version = "0.4.31" } cid = { version = "0.9.0" } -clap = { version = "4.5.3" } +clap = { version = "4.5.9" } clap-num = { version = "1.0.2" } clap_complete = { version = "4.0.2" } coarsetime = { version = "0.1.22" } @@ -818,7 +818,7 @@ linked_hash_set = { version = "0.1.4" } linregress = { version = "0.5.1" } lite-json = { version = "0.2.0", default-features = false } litep2p = { version = "0.6.2" } -log = { version = "0.4.21", default-features = false } +log = { version = "0.4.22", default-features = false } macro_magic = { version = "0.5.1" } maplit = { version = "1.0.2" } memmap2 = { version = "0.9.3" } @@ -986,7 +986,7 @@ parity-util-mem = { version = "0.12.0" } parity-wasm = { version = "0.45.0" } parking_lot = { version = "0.12.1", default-features = false } partial_sort = { version = "0.2.0" } -paste = { version = "1.0.14", default-features = false } +paste = { version = "1.0.15", default-features = false } pbkdf2 = { version = "0.12.2", default-features = false } penpal-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal" } penpal-runtime = { path = "cumulus/parachains/runtimes/testing/penpal" } @@ -1069,7 +1069,7 @@ pyroscope = { version = "0.5.7" } pyroscope_pprofrs = { version = "0.2.7" } quick_cache = { version = "0.3" } quickcheck = { version = "1.0.3", default-features = false } -quote = { version = "1.0.33" } +quote = { version = "1.0.36" } rand = { version = "0.8.5", default-features = false } rand_chacha = { version = "0.3.1", default-features = false } rand_core = { version = "0.6.2" } @@ -1164,10 +1164,10 @@ secp256k1 = { version = "0.28.0", default-features = false } secrecy = { version = "0.8.0", default-features = false } seedling-runtime = { path = "cumulus/parachains/runtimes/starters/seedling" } separator = { version = "0.4.1" } -serde = { version = "1.0.197", default-features = false } +serde = { version = "1.0.204", default-features = false } serde-big-array = { version = "0.3.2" } serde_derive = { version = "1.0.117" } -serde_json = { version = "1.0.114", default-features = false } +serde_json = { version = "1.0.120", default-features = false } serde_yaml = { version = "0.9" } serial_test = { version = "2.0.0" } sha1 = { version = "0.10.6" } -- GitLab From 35fcac758ad1a7e3d98377c5ca4d0ab4b61b14e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Thu, 18 Jul 2024 14:52:56 +0200 Subject: [PATCH 054/252] wasm-builder: Also set `mcpu` for c deps (#3777) Closes: https://github.com/paritytech/polkadot-sdk/issues/3192 --- substrate/utils/wasm-builder/src/wasm_project.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/substrate/utils/wasm-builder/src/wasm_project.rs b/substrate/utils/wasm-builder/src/wasm_project.rs index ff6c8e38a33..20fa9fc1aa3 100644 --- a/substrate/utils/wasm-builder/src/wasm_project.rs +++ b/substrate/utils/wasm-builder/src/wasm_project.rs @@ -245,6 +245,12 @@ fn maybe_compact_and_compress_wasm( compact_blob_path.as_ref().and_then(|p| try_compress_blob(&p.0, blob_name)); (compact_blob_path, compact_compressed_blob_path) } else { + // We at least want to lower the `sign-ext` code to `mvp`. + wasm_opt::OptimizationOptions::new_opt_level_0() + .add_pass(wasm_opt::Pass::SignextLowering) + .run(bloaty_blob_binary.bloaty_path(), bloaty_blob_binary.bloaty_path()) + .expect("Failed to lower sign-ext in WASM binary."); + (None, None) }; @@ -783,9 +789,7 @@ impl BuildConfiguration { (None, false) => { let profile = Profile::Release; build_helper::warning!( - "Unknown cargo profile `{}`. Defaulted to `{:?}` for the runtime build.", - name, - profile, + "Unknown cargo profile `{name}`. Defaulted to `{profile:?}` for the runtime build.", ); profile }, @@ -793,8 +797,7 @@ impl BuildConfiguration { (None, true) => { // We use println! + exit instead of a panic in order to have a cleaner output. println!( - "Unexpected profile name: `{}`. One of the following is expected: {:?}", - name, + "Unexpected profile name: `{name}`. One of the following is expected: {:?}", Profile::iter().map(|p| p.directory()).collect::>(), ); process::exit(1); @@ -963,13 +966,16 @@ fn compact_wasm( .mvp_features_only() .debug_info(true) .add_pass(wasm_opt::Pass::StripDwarf) + .add_pass(wasm_opt::Pass::SignextLowering) .run(bloaty_binary.bloaty_path(), &wasm_compact_path) .expect("Failed to compact generated WASM binary."); + println!( "{} {}", colorize_info_message("Compacted wasm in"), colorize_info_message(format!("{:?}", start.elapsed()).as_str()) ); + Some(WasmBinary(wasm_compact_path)) } -- GitLab From d97fbb19c40122c480264390ca7a05f935051673 Mon Sep 17 00:00:00 2001 From: Nazar Mokrynskyi Date: Thu, 18 Jul 2024 16:33:45 +0300 Subject: [PATCH 055/252] Use `Mutex` in `HeaderMetadataCache` (#5063) Due to `LruMap` usage it is not actually possible to leverage read feature of `RwLock`, hence change to `Mutex` that is faster --- .../primitives/blockchain/src/header_metadata.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/substrate/primitives/blockchain/src/header_metadata.rs b/substrate/primitives/blockchain/src/header_metadata.rs index 30024765add..b2910a32e99 100644 --- a/substrate/primitives/blockchain/src/header_metadata.rs +++ b/substrate/primitives/blockchain/src/header_metadata.rs @@ -18,7 +18,7 @@ //! Implements tree backend, cached header metadata and algorithms //! to compute routes efficiently over the tree of headers. -use parking_lot::RwLock; +use parking_lot::Mutex; use schnellru::{ByLength, LruMap}; use sp_core::U256; use sp_runtime::{ @@ -248,33 +248,33 @@ pub trait HeaderMetadata { /// Caches header metadata in an in-memory LRU cache. pub struct HeaderMetadataCache { - cache: RwLock>>, + cache: Mutex>>, } impl HeaderMetadataCache { /// Creates a new LRU header metadata cache with `capacity`. pub fn new(capacity: u32) -> Self { - HeaderMetadataCache { cache: RwLock::new(LruMap::new(ByLength::new(capacity))) } + HeaderMetadataCache { cache: Mutex::new(LruMap::new(ByLength::new(capacity))) } } } impl Default for HeaderMetadataCache { fn default() -> Self { - HeaderMetadataCache { cache: RwLock::new(LruMap::new(ByLength::new(LRU_CACHE_SIZE))) } + Self::new(LRU_CACHE_SIZE) } } impl HeaderMetadataCache { pub fn header_metadata(&self, hash: Block::Hash) -> Option> { - self.cache.write().get(&hash).cloned() + self.cache.lock().get(&hash).cloned() } pub fn insert_header_metadata(&self, hash: Block::Hash, metadata: CachedHeaderMetadata) { - self.cache.write().insert(hash, metadata); + self.cache.lock().insert(hash, metadata); } pub fn remove_header_metadata(&self, hash: Block::Hash) { - self.cache.write().remove(&hash); + self.cache.lock().remove(&hash); } } -- GitLab From d05cd9a55de64318f0ea16a47b21a0af4204c522 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:06:02 +0200 Subject: [PATCH 056/252] Bump enumn from 0.1.12 to 0.1.13 (#5061) Bumps [enumn](https://github.com/dtolnay/enumn) from 0.1.12 to 0.1.13.
    Release notes

    Sourced from enumn's releases.

    0.1.13

    • Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache
    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=enumn&package-manager=cargo&previous-version=0.1.12&new-version=0.1.13)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4d730f6ee1b..4d28b9ad95d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5175,9 +5175,9 @@ dependencies = [ [[package]] name = "enumn" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" +checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2 1.0.82", "quote 1.0.36", diff --git a/Cargo.toml b/Cargo.toml index f3011994796..759780ce4a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -720,7 +720,7 @@ ed25519-zebra = { version = "4.0.3", default-features = false } either = { version = "1.8.1", default-features = false } emulated-integration-tests-common = { path = "cumulus/parachains/integration-tests/emulated/common", default-features = false } enumflags2 = { version = "0.7.7" } -enumn = { version = "0.1.12" } +enumn = { version = "0.1.13" } env_logger = { version = "0.11.3" } environmental = { version = "1.1.4", default-features = false } equivocation-detector = { path = "bridges/relays/equivocation" } -- GitLab From ad9804f7b1e707d5144bcdc14b67c19db2975da8 Mon Sep 17 00:00:00 2001 From: Juan Ignacio Rios <54085674+JuaniRios@users.noreply.github.com> Date: Thu, 18 Jul 2024 21:35:00 +0200 Subject: [PATCH 057/252] Add `pub` to xcm::v4::PalletInfo (#4976) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v3 PalletInfo had the fields public, but not v4. Any reason why? I need the PalletInfo fields public so I can read the values and do some logic based on that at Polimec @franciscoaguirre If this could be backported would be highly appreciated 🙏🏻 --------- Co-authored-by: Adrian Catangiu Co-authored-by: Oliver Tale-Yazdi --- polkadot/xcm/src/v4/mod.rs | 12 ++++++------ prdoc/pr_4976.prdoc | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 prdoc/pr_4976.prdoc diff --git a/polkadot/xcm/src/v4/mod.rs b/polkadot/xcm/src/v4/mod.rs index 57840562ba3..2a279f989e9 100644 --- a/polkadot/xcm/src/v4/mod.rs +++ b/polkadot/xcm/src/v4/mod.rs @@ -231,15 +231,15 @@ parameter_types! { #[derive(Clone, Eq, PartialEq, Encode, Decode, Debug, TypeInfo, MaxEncodedLen)] pub struct PalletInfo { #[codec(compact)] - index: u32, - name: BoundedVec, - module_name: BoundedVec, + pub index: u32, + pub name: BoundedVec, + pub module_name: BoundedVec, #[codec(compact)] - major: u32, + pub major: u32, #[codec(compact)] - minor: u32, + pub minor: u32, #[codec(compact)] - patch: u32, + pub patch: u32, } impl TryInto for PalletInfo { diff --git a/prdoc/pr_4976.prdoc b/prdoc/pr_4976.prdoc new file mode 100644 index 00000000000..72b7b92bc47 --- /dev/null +++ b/prdoc/pr_4976.prdoc @@ -0,0 +1,15 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Add pub to xcm::v4::PalletInfo + +doc: + - audience: Runtime Dev + description: | + Forgot to make v4 PalletInfo fields public. Without them we cannot make use of the struct. + +crates: + - name: staging-xcm + bump: patch + validate: false + -- GitLab From 59b11ca68cce780be1597f2c15c9967f7446ec92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 12:04:06 +0200 Subject: [PATCH 058/252] Bump actions/setup-node from 4.0.1 to 4.0.3 (#4990) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.1 to 4.0.3.
    Release notes

    Sourced from actions/setup-node's releases.

    v4.0.3

    What's Changed

    Bug fixes:

    Documentation changes:

    Dependency updates:

    New Contributors

    Full Changelog: https://github.com/actions/setup-node/compare/v4...v4.0.3

    v4.0.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/setup-node/compare/v4.0.1...v4.0.2

    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-node&package-manager=github_actions&previous-version=4.0.1&new-version=4.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher --- .github/workflows/check-licenses.yml | 2 +- .github/workflows/checks-quick.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-licenses.yml b/.github/workflows/check-licenses.yml index 3bc95305f74..b7713580540 100644 --- a/.github/workflows/check-licenses.yml +++ b/.github/workflows/check-licenses.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Checkout sources uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: actions/setup-node@v4.0.1 + - uses: actions/setup-node@v4.0.3 with: node-version: "18.x" registry-url: "https://npm.pkg.github.com" diff --git a/.github/workflows/checks-quick.yml b/.github/workflows/checks-quick.yml index 1fcec5c80fd..678bfb6f205 100644 --- a/.github/workflows/checks-quick.yml +++ b/.github/workflows/checks-quick.yml @@ -109,7 +109,7 @@ jobs: - name: Checkout sources uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Setup Node.js - uses: actions/setup-node@v4.0.1 + uses: actions/setup-node@v4.0.3 with: node-version: "18.x" registry-url: "https://npm.pkg.github.com" -- GitLab From f8f70b37562e3519401f8c1fada9a2c55589e0c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96zg=C3=BCn=20=C3=96zerk?= Date: Fri, 19 Jul 2024 14:09:44 +0300 Subject: [PATCH 059/252] relax `XcmFeeToAccount` trait bound on `AccountId` (#4959) Fixes #4960 Configuring `FeeManager` enforces the boundary `Into<[u8; 32]>` for the `AccountId` type. Here is how it works currently: Configuration: ```rust type FeeManager = XcmFeeManagerFromComponents< IsChildSystemParachain, XcmFeeToAccount, >; ``` `XcmToFeeAccount` struct: ```rust /// A `HandleFee` implementation that simply deposits the fees into a specific on-chain /// `ReceiverAccount`. /// /// It reuses the `AssetTransactor` configured on the XCM executor to deposit fee assets. If /// the `AssetTransactor` returns an error while calling `deposit_asset`, then a warning will be /// logged and the fee burned. pub struct XcmFeeToAccount( PhantomData<(AssetTransactor, AccountId, ReceiverAccount)>, ); impl< AssetTransactor: TransactAsset, AccountId: Clone + Into<[u8; 32]>, ReceiverAccount: Get, > HandleFee for XcmFeeToAccount { fn handle_fee(fee: Assets, context: Option<&XcmContext>, _reason: FeeReason) -> Assets { deposit_or_burn_fee::(fee, context, ReceiverAccount::get()); Assets::new() } } ``` `deposit_or_burn_fee()` function: ```rust /// Try to deposit the given fee in the specified account. /// Burns the fee in case of a failure. pub fn deposit_or_burn_fee>( fee: Assets, context: Option<&XcmContext>, receiver: AccountId, ) { let dest = AccountId32 { network: None, id: receiver.into() }.into(); for asset in fee.into_inner() { if let Err(e) = AssetTransactor::deposit_asset(&asset, &dest, context) { log::trace!( target: "xcm::fees", "`AssetTransactor::deposit_asset` returned error: {:?}. Burning fee: {:?}. \ They might be burned.", e, asset, ); } } } ``` --- In order to use **another** `AccountId` type (for example, 20 byte addresses for compatibility with Ethereum or Bitcoin), one has to duplicate the code as the following (roughly changing every `32` to `20`): ```rust /// A `HandleFee` implementation that simply deposits the fees into a specific on-chain /// `ReceiverAccount`. /// /// It reuses the `AssetTransactor` configured on the XCM executor to deposit fee assets. If /// the `AssetTransactor` returns an error while calling `deposit_asset`, then a warning will be /// logged and the fee burned. pub struct XcmFeeToAccount( PhantomData<(AssetTransactor, AccountId, ReceiverAccount)>, ); impl< AssetTransactor: TransactAsset, AccountId: Clone + Into<[u8; 20]>, ReceiverAccount: Get, > HandleFee for XcmFeeToAccount { fn handle_fee(fee: XcmAssets, context: Option<&XcmContext>, _reason: FeeReason) -> XcmAssets { deposit_or_burn_fee::(fee, context, ReceiverAccount::get()); XcmAssets::new() } } pub fn deposit_or_burn_fee>( fee: XcmAssets, context: Option<&XcmContext>, receiver: AccountId, ) { let dest = AccountKey20 { network: None, key: receiver.into() }.into(); for asset in fee.into_inner() { if let Err(e) = AssetTransactor::deposit_asset(&asset, &dest, context) { log::trace!( target: "xcm::fees", "`AssetTransactor::deposit_asset` returned error: {:?}. Burning fee: {:?}. \ They might be burned.", e, asset, ); } } } ``` --- This results in code duplication, which can be avoided simply by relaxing the trait enforced by `XcmFeeToAccount`. In this PR, I propose to introduce a new trait called `IntoLocation` to be able to express both `Into<[u8; 32]>` and `Into<[u8; 20]>` should be accepted (and every other `AccountId` type as long as they implement this trait). Currently, `deposit_or_burn_fee()` function converts the `receiver: AccountId` to a location. I think converting an account to `Location` should not be the responsibility of `deposit_or_burn_fee()` function. This trait also decouples the conversion of `AccountId` to `Location`, from `deposit_or_burn_fee()` function. And exposes `IntoLocation` trait. Thus, allowing everyone to come up with their `AccountId` type and make it compatible for configuring `FeeManager`. --- Note 1: if there is a better file/location to put `IntoLocation`, I'm all ears Note 2: making `deposit_or_burn_fee` or `XcmToFeeAccount` generic was not possible from what I understood, due to Rust currently do not support a way to express the generic should implement either `trait A` or `trait B` (since the compiler cannot guarantee they won't overlap). In this case, they are `Into<[u8; 32]>` and `Into<[u8; 20]>`. See [this](https://github.com/rust-lang/rust/issues/20400) and [this](https://github.com/rust-lang/rfcs/pull/1672#issuecomment-262152934). Note 3: I should also submit a PR to `frontier` that implements `IntoLocation` for `AccountId20` if this PR gets accepted. ### Summary this new trait: - decouples the conversion of `AccountId` to `Location`, from `deposit_or_burn_fee()` function - makes `XcmFeeToAccount` accept every possible `AccountId` type as long as they they implement `IntoLocation` - backwards compatible - keeps the API simple and clean while making it less restrictive @franciscoaguirre and @gupnik are already aware of the issue, so tagging them here for visibility. --------- Co-authored-by: Francisco Aguirre Co-authored-by: Branislav Kontur Co-authored-by: Adrian Catangiu Co-authored-by: command-bot <> --- Cargo.lock | 1 + .../assets/asset-hub-rococo/src/xcm_config.rs | 6 +- .../asset-hub-westend/src/xcm_config.rs | 5 +- .../bridge-hub-rococo/src/xcm_config.rs | 25 ++++--- .../bridge-hub-westend/src/xcm_config.rs | 10 +-- .../collectives-westend/src/xcm_config.rs | 10 +-- .../contracts-rococo/src/xcm_config.rs | 10 +-- .../coretime-rococo/src/xcm_config.rs | 6 +- .../coretime-westend/src/xcm_config.rs | 6 +- .../people/people-rococo/src/xcm_config.rs | 10 +-- .../people/people-westend/src/xcm_config.rs | 10 +-- .../runtimes/testing/penpal/src/xcm_config.rs | 12 ++-- polkadot/runtime/rococo/src/xcm_config.rs | 10 +-- polkadot/runtime/westend/src/xcm_config.rs | 5 +- polkadot/xcm/Cargo.toml | 8 ++- polkadot/xcm/pallet-xcm/src/mock.rs | 6 +- polkadot/xcm/src/v4/location.rs | 6 ++ polkadot/xcm/xcm-builder/src/fee_handling.rs | 67 +++++++++++++------ polkadot/xcm/xcm-builder/src/lib.rs | 2 +- prdoc/pr_4959.prdoc | 45 +++++++++++++ 20 files changed, 172 insertions(+), 88 deletions(-) create mode 100644 prdoc/pr_4959.prdoc diff --git a/Cargo.lock b/Cargo.lock index 4d28b9ad95d..a424738685e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20902,6 +20902,7 @@ dependencies = [ "schemars", "serde", "sp-io", + "sp-runtime", "sp-weights", "xcm-procedural", ] diff --git a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs index c736d3ee442..a11dca4f6d7 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/xcm_config.rs @@ -55,11 +55,11 @@ use xcm_builder::{ EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, GlobalConsensusParachainConvertsFor, HashedDescription, IsConcrete, LocalMint, NetworkExportTableItem, NoChecking, NonFungiblesAdapter, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignPaidRemoteExporter, SovereignSignedViaLocation, StartsWith, StartsWithExplicitGlobalConsensus, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, - XcmFeeManagerFromComponents, XcmFeeToAccount, + XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -413,7 +413,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = diff --git a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs index 2deeb73eb12..5ecfce18b6d 100644 --- a/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs @@ -51,11 +51,10 @@ use xcm_builder::{ EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, GlobalConsensusParachainConvertsFor, HashedDescription, IsConcrete, LocalMint, NetworkExportTableItem, NoChecking, NonFungiblesAdapter, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, StartsWith, StartsWithExplicitGlobalConsensus, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, XcmFeeManagerFromComponents, - XcmFeeToAccount, }; use xcm_executor::XcmExecutor; @@ -429,7 +428,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = (bridging::to_rococo::UniversalAliases,); diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs index 5ec545ee059..2f11b4694e3 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs @@ -49,10 +49,10 @@ use xcm_builder::{ AllowHrmpNotificationsFromRelayChain, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HandleFee, IsConcrete, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, - XcmFeeToAccount, + ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, + WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, }; use xcm_executor::{ traits::{FeeManager, FeeReason, FeeReason::Export, TransactAsset}, @@ -223,7 +223,7 @@ impl xcm_executor::Config for XcmConfig { Self::AssetTransactor, crate::EthereumOutboundQueue, >, - XcmFeeToAccount, + SendXcmFeeToAccount, ), >; type MessageExporter = ( @@ -354,24 +354,27 @@ impl< match asset.fun { Fungible(total_fee) => { let source_fee = total_fee / 2; - deposit_or_burn_fee::( + deposit_or_burn_fee::( Asset { id: asset.id.clone(), fun: Fungible(source_fee) }.into(), maybe_context, - source_para_account.clone(), + AccountId32 { network: None, id: source_para_account.clone().into() } + .into(), ); let dest_fee = total_fee - source_fee; - deposit_or_burn_fee::( + deposit_or_burn_fee::( Asset { id: asset.id, fun: Fungible(dest_fee) }.into(), maybe_context, - dest_para_account.clone(), + AccountId32 { network: None, id: dest_para_account.clone().into() } + .into(), ); }, NonFungible(_) => { - deposit_or_burn_fee::( + deposit_or_burn_fee::( asset.into(), maybe_context, - source_para_account.clone(), + AccountId32 { network: None, id: source_para_account.clone().into() } + .into(), ); }, } diff --git a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs index c2ca8e47f2a..7f94b76a005 100644 --- a/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs @@ -42,10 +42,10 @@ use xcm_builder::{ AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, - UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, - XcmFeeManagerFromComponents, XcmFeeToAccount, + SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, + XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -195,7 +195,7 @@ impl xcm_executor::Config for XcmConfig { type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (crate::bridge_to_rococo_config::ToBridgeHubRococoHaulBlobExporter,); type UniversalAliases = Nothing; diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs index c68f230a16d..ae4fe9e8433 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/xcm_config.rs @@ -40,10 +40,10 @@ use xcm_builder::{ DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, IsConcrete, LocatableAssetId, OriginToPluralityVoice, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, - UsingComponents, WithComputedOrigin, WithUniqueTopic, XcmFeeManagerFromComponents, - XcmFeeToAccount, + SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, + XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -209,7 +209,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/xcm_config.rs index ef5ded1731d..6a41cf75d35 100644 --- a/cumulus/parachains/runtimes/contracts/contracts-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/contracts/contracts-rococo/src/xcm_config.rs @@ -42,10 +42,10 @@ use xcm_builder::{ AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, IsConcrete, NativeAsset, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, - XcmFeeManagerFromComponents, XcmFeeToAccount, + ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, + WithComputedOrigin, WithUniqueTopic, XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -191,7 +191,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/xcm_config.rs index c16b40b8675..f56a3c42de0 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-rococo/src/xcm_config.rs @@ -43,10 +43,10 @@ use xcm_builder::{ AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, IsConcrete, NonFungibleAdapter, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, - XcmFeeManagerFromComponents, XcmFeeToAccount, + XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -213,7 +213,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/cumulus/parachains/runtimes/coretime/coretime-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/coretime/coretime-westend/src/xcm_config.rs index b12765870bf..da8aa1c18bd 100644 --- a/cumulus/parachains/runtimes/coretime/coretime-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/coretime/coretime-westend/src/xcm_config.rs @@ -43,10 +43,10 @@ use xcm_builder::{ AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, IsConcrete, NonFungibleAdapter, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, - XcmFeeManagerFromComponents, XcmFeeToAccount, + XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -221,7 +221,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/cumulus/parachains/runtimes/people/people-rococo/src/xcm_config.rs b/cumulus/parachains/runtimes/people/people-rococo/src/xcm_config.rs index cca964fb244..96ab3eafa78 100644 --- a/cumulus/parachains/runtimes/people/people-rococo/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/people/people-rococo/src/xcm_config.rs @@ -40,10 +40,10 @@ use xcm_builder::{ AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, - XcmFeeManagerFromComponents, XcmFeeToAccount, + ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, + WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -219,7 +219,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/cumulus/parachains/runtimes/people/people-westend/src/xcm_config.rs b/cumulus/parachains/runtimes/people/people-westend/src/xcm_config.rs index 3926ddcf21e..f35e920d7cb 100644 --- a/cumulus/parachains/runtimes/people/people-westend/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/people/people-westend/src/xcm_config.rs @@ -40,10 +40,10 @@ use xcm_builder::{ AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, DenyThenTry, DescribeTerminus, EnsureXcmOrigin, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, - XcmFeeManagerFromComponents, XcmFeeToAccount, + ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, + WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -227,7 +227,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs b/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs index 08a2da260c5..eca7c7bbc3c 100644 --- a/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs +++ b/cumulus/parachains/runtimes/testing/penpal/src/xcm_config.rs @@ -47,11 +47,11 @@ use xcm_builder::{ AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, AsPrefixedGeneralIndex, ConvertedConcreteId, EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, IsConcrete, LocalMint, NativeAsset, NoChecking, - ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, StartsWith, TakeWeightCredit, TrailingSetTopicAsId, - UsingComponents, WithComputedOrigin, WithUniqueTopic, XcmFeeManagerFromComponents, - XcmFeeToAccount, + ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SendXcmFeeToAccount, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SignedToAccountId32, SovereignSignedViaLocation, StartsWith, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, + XcmFeeManagerFromComponents, }; use xcm_executor::{traits::JustTry, XcmExecutor}; @@ -351,7 +351,7 @@ impl xcm_executor::Config for XcmConfig { type AssetExchanger = (); type FeeManager = XcmFeeManagerFromComponents< (), - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/polkadot/runtime/rococo/src/xcm_config.rs b/polkadot/runtime/rococo/src/xcm_config.rs index 96416821e4c..05e0ee64820 100644 --- a/polkadot/runtime/rococo/src/xcm_config.rs +++ b/polkadot/runtime/rococo/src/xcm_config.rs @@ -41,10 +41,10 @@ use xcm_builder::{ AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, DescribeAllTerminal, DescribeFamily, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsChildSystemParachain, - IsConcrete, MintLocation, OriginToPluralityVoice, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, - UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, - XcmFeeManagerFromComponents, XcmFeeToAccount, + IsConcrete, MintLocation, OriginToPluralityVoice, SendXcmFeeToAccount, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, + XcmFeeManagerFromComponents, }; use xcm_executor::XcmExecutor; @@ -213,7 +213,7 @@ impl xcm_executor::Config for XcmConfig { type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/polkadot/runtime/westend/src/xcm_config.rs b/polkadot/runtime/westend/src/xcm_config.rs index 9d7143c96bb..d75083929a0 100644 --- a/polkadot/runtime/westend/src/xcm_config.rs +++ b/polkadot/runtime/westend/src/xcm_config.rs @@ -42,10 +42,9 @@ use xcm_builder::{ AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, ChildParachainAsNative, ChildParachainConvertsVia, DescribeAllTerminal, DescribeFamily, FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsChildSystemParachain, IsConcrete, MintLocation, - OriginToPluralityVoice, SignedAccountId32AsNative, SignedToAccountId32, + OriginToPluralityVoice, SendXcmFeeToAccount, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic, XcmFeeManagerFromComponents, - XcmFeeToAccount, }; use xcm_executor::XcmExecutor; @@ -211,7 +210,7 @@ impl xcm_executor::Config for XcmConfig { type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type FeeManager = XcmFeeManagerFromComponents< WaivedLocations, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/polkadot/xcm/Cargo.toml b/polkadot/xcm/Cargo.toml index 72174bda234..862f5557a01 100644 --- a/polkadot/xcm/Cargo.toml +++ b/polkadot/xcm/Cargo.toml @@ -17,6 +17,7 @@ impl-trait-for-tuples = { workspace = true } log = { workspace = true } codec = { features = ["derive", "max-encoded-len"], workspace = true } scale-info = { features = ["derive", "serde"], workspace = true } +sp-runtime = { workspace = true } sp-weights = { features = ["serde"], workspace = true } serde = { features = ["alloc", "derive", "rc"], workspace = true } schemars = { default-features = true, optional = true, workspace = true } @@ -38,6 +39,11 @@ std = [ "log/std", "scale-info/std", "serde/std", + "sp-runtime/std", "sp-weights/std", ] -json-schema = ["bounded-collections/json-schema", "dep:schemars", "sp-weights/json-schema"] +json-schema = [ + "bounded-collections/json-schema", + "dep:schemars", + "sp-weights/json-schema", +] diff --git a/polkadot/xcm/pallet-xcm/src/mock.rs b/polkadot/xcm/pallet-xcm/src/mock.rs index 3941d104b81..8d0476b0e70 100644 --- a/polkadot/xcm/pallet-xcm/src/mock.rs +++ b/polkadot/xcm/pallet-xcm/src/mock.rs @@ -35,9 +35,9 @@ use xcm_builder::{ AllowTopLevelPaidExecutionFrom, Case, ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser, DescribeAllTerminal, EnsureDecodableXcm, FixedRateOfFungible, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, FungiblesAdapter, - HashedDescription, IsConcrete, MatchedConvertedConcreteId, NoChecking, + HashedDescription, IsConcrete, MatchedConvertedConcreteId, NoChecking, SendXcmFeeToAccount, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - XcmFeeManagerFromComponents, XcmFeeToAccount, + XcmFeeManagerFromComponents, }; use xcm_executor::{ traits::{Identity, JustTry}, @@ -504,7 +504,7 @@ impl xcm_executor::Config for XcmConfig { type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type FeeManager = XcmFeeManagerFromComponents< EverythingBut, - XcmFeeToAccount, + SendXcmFeeToAccount, >; type MessageExporter = (); type UniversalAliases = Nothing; diff --git a/polkadot/xcm/src/v4/location.rs b/polkadot/xcm/src/v4/location.rs index 9e94d13626d..f2c302495c7 100644 --- a/polkadot/xcm/src/v4/location.rs +++ b/polkadot/xcm/src/v4/location.rs @@ -534,6 +534,12 @@ impl From<[u8; 32]> for Location { } } +impl From for Location { + fn from(id: sp_runtime::AccountId32) -> Self { + Junction::AccountId32 { network: None, id: id.into() }.into() + } +} + xcm_procedural::impl_conversion_functions_for_location_v4!(); #[cfg(test)] diff --git a/polkadot/xcm/xcm-builder/src/fee_handling.rs b/polkadot/xcm/xcm-builder/src/fee_handling.rs index e114b3601c8..17e9e64e00c 100644 --- a/polkadot/xcm/xcm-builder/src/fee_handling.rs +++ b/polkadot/xcm/xcm-builder/src/fee_handling.rs @@ -68,36 +68,20 @@ impl, FeeHandler: HandleFee> FeeManager } } -/// Try to deposit the given fee in the specified account. -/// Burns the fee in case of a failure. -pub fn deposit_or_burn_fee>( - fee: Assets, - context: Option<&XcmContext>, - receiver: AccountId, -) { - let dest = AccountId32 { network: None, id: receiver.into() }.into(); - for asset in fee.into_inner() { - if let Err(e) = AssetTransactor::deposit_asset(&asset, &dest, context) { - log::trace!( - target: "xcm::fees", - "`AssetTransactor::deposit_asset` returned error: {:?}. Burning fee: {:?}. \ - They might be burned.", - e, asset, - ); - } - } -} - /// A `HandleFee` implementation that simply deposits the fees into a specific on-chain /// `ReceiverAccount`. /// /// It reuses the `AssetTransactor` configured on the XCM executor to deposit fee assets. If /// the `AssetTransactor` returns an error while calling `deposit_asset`, then a warning will be /// logged and the fee burned. +#[deprecated( + note = "`XcmFeeToAccount` will be removed in January 2025. Use `SendXcmFeeToAccount` instead." +)] pub struct XcmFeeToAccount( PhantomData<(AssetTransactor, AccountId, ReceiverAccount)>, ); +#[allow(deprecated)] impl< AssetTransactor: TransactAsset, AccountId: Clone + Into<[u8; 32]>, @@ -105,8 +89,49 @@ impl< > HandleFee for XcmFeeToAccount { fn handle_fee(fee: Assets, context: Option<&XcmContext>, _reason: FeeReason) -> Assets { - deposit_or_burn_fee::(fee, context, ReceiverAccount::get()); + let dest = AccountId32 { network: None, id: ReceiverAccount::get().into() }.into(); + deposit_or_burn_fee::(fee, context, dest); + + Assets::new() + } +} + +/// A `HandleFee` implementation that simply deposits the fees into a specific on-chain +/// `ReceiverAccount`. +/// +/// It reuses the `AssetTransactor` configured on the XCM executor to deposit fee assets. If +/// the `AssetTransactor` returns an error while calling `deposit_asset`, then a warning will be +/// logged and the fee burned. +/// +/// `ReceiverAccount` should implement `Get`. +pub struct SendXcmFeeToAccount( + PhantomData<(AssetTransactor, ReceiverAccount)>, +); + +impl> HandleFee + for SendXcmFeeToAccount +{ + fn handle_fee(fee: Assets, context: Option<&XcmContext>, _reason: FeeReason) -> Assets { + deposit_or_burn_fee::(fee, context, ReceiverAccount::get()); Assets::new() } } + +/// Try to deposit the given fee in the specified account. +/// Burns the fee in case of a failure. +pub fn deposit_or_burn_fee( + fee: Assets, + context: Option<&XcmContext>, + dest: Location, +) { + for asset in fee.into_inner() { + if let Err(e) = AssetTransactor::deposit_asset(&asset, &dest, context) { + log::trace!( + target: "xcm::fees", + "`AssetTransactor::deposit_asset` returned error: {e:?}. Burning fee: {asset:?}. \ + They might be burned.", + ); + } + } +} diff --git a/polkadot/xcm/xcm-builder/src/lib.rs b/polkadot/xcm/xcm-builder/src/lib.rs index c3495601cd8..4cf83c9fc45 100644 --- a/polkadot/xcm/xcm-builder/src/lib.rs +++ b/polkadot/xcm/xcm-builder/src/lib.rs @@ -56,7 +56,7 @@ pub use currency_adapter::CurrencyAdapter; mod fee_handling; pub use fee_handling::{ - deposit_or_burn_fee, HandleFee, XcmFeeManagerFromComponents, XcmFeeToAccount, + deposit_or_burn_fee, HandleFee, SendXcmFeeToAccount, XcmFeeManagerFromComponents, }; mod filter_asset_location; diff --git a/prdoc/pr_4959.prdoc b/prdoc/pr_4959.prdoc new file mode 100644 index 00000000000..4891a979179 --- /dev/null +++ b/prdoc/pr_4959.prdoc @@ -0,0 +1,45 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: relax XcmFeeToAccount trait bound on AccountId + +doc: + - audience: Runtime Dev + description: | + This PR relaxes the trait bound on AccountId for the XcmFeeToAccount struct by introducing a new struct called `SendXcmFeeToAccount`. + The old one (`XcmFeeToAccount`) will be deprecated at January 2025. + +crates: + - name: staging-xcm-builder + bump: minor + - name: staging-xcm + bump: minor + - name: pallet-xcm + bump: minor + - name: asset-hub-rococo-runtime + bump: minor + - name: asset-hub-westend-runtime + bump: minor + - name: bridge-hub-rococo-runtime + bump: minor + - name: bridge-hub-westend-runtime + bump: minor + - name: collectives-westend-runtime + bump: minor + - name: contracts-rococo-runtime + bump: minor + - name: coretime-rococo-runtime + bump: minor + - name: coretime-westend-runtime + bump: minor + - name: people-rococo-runtime + bump: minor + - name: people-westend-runtime + bump: minor + - name: penpal-runtime + bump: minor + - name: rococo-runtime + bump: minor + - name: westend-runtime + bump: minor + -- GitLab From b01ef046f98b6cdccad3afe5b02868f4467e1700 Mon Sep 17 00:00:00 2001 From: Oliver Tale-Yazdi Date: Fri, 19 Jul 2024 16:58:16 +0200 Subject: [PATCH 060/252] prdoc: Require `bump` field (#5073) Require to specify a `bump` for every modified crate. --------- Signed-off-by: Oliver Tale-Yazdi --- prdoc/pr_3286.prdoc | 1 + prdoc/schema_user.json | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/prdoc/pr_3286.prdoc b/prdoc/pr_3286.prdoc index 6ec3f6552a4..3433f63f302 100644 --- a/prdoc/pr_3286.prdoc +++ b/prdoc/pr_3286.prdoc @@ -14,3 +14,4 @@ doc: crates: - name: pallet-assets + bump: patch diff --git a/prdoc/schema_user.json b/prdoc/schema_user.json index e6c0468aaf8..5f7d460a5cc 100644 --- a/prdoc/schema_user.json +++ b/prdoc/schema_user.json @@ -148,7 +148,8 @@ } }, "required": [ - "name" + "name", + "bump" ] }, "migration_db": { -- GitLab From d16af0b8bea196167d540d74cb8a3cbc19ab6b75 Mon Sep 17 00:00:00 2001 From: Joseph Zhao <65984904+programskillforverification@users.noreply.github.com> Date: Fri, 19 Jul 2024 23:04:03 +0800 Subject: [PATCH 061/252] Backport claim assets tests from polkadot-fellows repo (#4930) # Issue [Backport integration tests for claim assets to the polkadot-sdk from polkadot-fellows repo #4892](https://github.com/paritytech/polkadot-sdk/issues/4892) # Description For the first time to contribute this project, I just finished part and make sure everything is ok. - [x] backport [claim_assets test case](https://github.com/polkadot-fellows/runtimes/blob/main/integration-tests/emulated/tests/assets/asset-hub-kusama/src/tests/claim_assets.rs) to the polkadot-sdk testnet integration tests - [x] backport macro [test_chain_can_claim_assets](https://github.com/polkadot-fellows/runtimes/blob/main/integration-tests/emulated/helpers/src/lib.rs#L218) from fellows repo - [ ] when merged to polkadot-sdk and released, make sure that it is propagated to the fellows repo: https://github.com/polkadot-fellows/runtimes/issues/363 - [x] backport and align other macros/test-cases from https://github.com/polkadot-fellows/runtimes/blob/8ec28f96eeb30fbba30d29006d75e1a3fa1cea1c/integration-tests/emulated/helpers/src/lib.rs#L31-L33 --------- Co-authored-by: Zihan Zhao Co-authored-by: command-bot <> Co-authored-by: Adrian Catangiu Co-authored-by: Francisco Aguirre --- Cargo.lock | 62 ++++ Cargo.toml | 6 + .../bridges/bridge-hub-rococo/src/lib.rs | 1 + .../bridges/bridge-hub-westend/src/lib.rs | 5 +- .../coretime/coretime-rococo/Cargo.toml | 24 ++ .../coretime/coretime-rococo/src/genesis.rs | 66 +++++ .../coretime/coretime-rococo/src/lib.rs | 53 ++++ .../coretime/coretime-westend/Cargo.toml | 24 ++ .../coretime/coretime-westend/src/genesis.rs | 66 +++++ .../coretime/coretime-westend/src/lib.rs | 53 ++++ .../emulated/common/src/macros.rs | 278 +++++++++++++++++- .../networks/rococo-system/Cargo.toml | 1 + .../networks/rococo-system/src/lib.rs | 4 + .../networks/westend-system/Cargo.toml | 1 + .../networks/westend-system/src/lib.rs | 4 + .../tests/assets/asset-hub-rococo/src/lib.rs | 1 + .../src/tests/claim_assets.rs | 29 ++ .../assets/asset-hub-rococo/src/tests/mod.rs | 1 + .../tests/assets/asset-hub-westend/src/lib.rs | 1 + .../src/tests/claim_assets.rs | 29 ++ .../assets/asset-hub-westend/src/tests/mod.rs | 1 + .../bridges/bridge-hub-rococo/src/lib.rs | 2 +- .../src/tests/claim_assets.rs | 29 ++ .../bridge-hub-rococo/src/tests/mod.rs | 1 + .../bridges/bridge-hub-westend/src/lib.rs | 2 +- .../src/tests/claim_assets.rs | 29 ++ .../bridge-hub-westend/src/tests/mod.rs | 1 + .../collectives-westend/src/lib.rs | 32 +- .../src/tests/fellowship_treasury.rs | 1 - .../collectives-westend/src/tests/mod.rs | 1 + .../collectives-westend/src/tests/teleport.rs | 66 +++++ .../tests/coretime/coretime-rococo/Cargo.toml | 27 ++ .../tests/coretime/coretime-rococo/src/lib.rs | 40 +++ .../coretime-rococo/src/tests/claim_assets.rs | 29 ++ .../coretime/coretime-rococo/src/tests/mod.rs | 16 + .../coretime/coretime-westend/Cargo.toml | 27 ++ .../coretime/coretime-westend/src/lib.rs | 41 +++ .../src/tests/claim_assets.rs | 29 ++ .../coretime-westend/src/tests/mod.rs | 16 + .../tests/people/people-rococo/src/lib.rs | 5 +- .../people-rococo/src/tests/claim_assets.rs | 29 ++ .../people/people-rococo/src/tests/mod.rs | 1 + .../tests/people/people-westend/src/lib.rs | 5 +- .../people-westend/src/tests/claim_assets.rs | 29 ++ .../people/people-westend/src/tests/mod.rs | 1 + prdoc/pr_4930.prdoc | 15 + 46 files changed, 1170 insertions(+), 14 deletions(-) create mode 100644 cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/Cargo.toml create mode 100644 cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/src/genesis.rs create mode 100644 cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/src/lib.rs create mode 100644 cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/Cargo.toml create mode 100644 cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/src/genesis.rs create mode 100644 cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/src/lib.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/claim_assets.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/claim_assets.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/claim_assets.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/claim_assets.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/teleport.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/Cargo.toml create mode 100644 cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/lib.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/tests/claim_assets.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/tests/mod.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/Cargo.toml create mode 100644 cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/lib.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/tests/claim_assets.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/tests/mod.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/claim_assets.rs create mode 100644 cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/claim_assets.rs create mode 100644 prdoc/pr_4930.prdoc diff --git a/Cargo.lock b/Cargo.lock index a424738685e..6c837a051ce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3258,6 +3258,36 @@ dependencies = [ "memchr", ] +[[package]] +name = "coretime-rococo-emulated-chain" +version = "0.0.0" +dependencies = [ + "coretime-rococo-runtime", + "cumulus-primitives-core", + "emulated-integration-tests-common", + "frame-support", + "parachains-common", + "sp-core", + "testnet-parachains-constants", +] + +[[package]] +name = "coretime-rococo-integration-tests" +version = "0.1.0" +dependencies = [ + "emulated-integration-tests-common", + "frame-support", + "pallet-balances", + "pallet-identity", + "pallet-message-queue", + "polkadot-runtime-common", + "rococo-runtime-constants", + "rococo-system-emulated-network", + "sp-runtime", + "staging-xcm", + "staging-xcm-executor", +] + [[package]] name = "coretime-rococo-runtime" version = "0.1.0" @@ -3324,6 +3354,36 @@ dependencies = [ "xcm-runtime-apis", ] +[[package]] +name = "coretime-westend-emulated-chain" +version = "0.0.0" +dependencies = [ + "coretime-westend-runtime", + "cumulus-primitives-core", + "emulated-integration-tests-common", + "frame-support", + "parachains-common", + "sp-core", + "testnet-parachains-constants", +] + +[[package]] +name = "coretime-westend-integration-tests" +version = "0.1.0" +dependencies = [ + "emulated-integration-tests-common", + "frame-support", + "pallet-balances", + "pallet-identity", + "pallet-message-queue", + "polkadot-runtime-common", + "sp-runtime", + "staging-xcm", + "staging-xcm-executor", + "westend-runtime-constants", + "westend-system-emulated-network", +] + [[package]] name = "coretime-westend-runtime" version = "0.1.0" @@ -16460,6 +16520,7 @@ version = "0.0.0" dependencies = [ "asset-hub-rococo-emulated-chain", "bridge-hub-rococo-emulated-chain", + "coretime-rococo-emulated-chain", "emulated-integration-tests-common", "penpal-emulated-chain", "people-rococo-emulated-chain", @@ -23527,6 +23588,7 @@ dependencies = [ "asset-hub-westend-emulated-chain", "bridge-hub-westend-emulated-chain", "collectives-westend-emulated-chain", + "coretime-westend-emulated-chain", "emulated-integration-tests-common", "penpal-emulated-chain", "people-westend-emulated-chain", diff --git a/Cargo.toml b/Cargo.toml index 759780ce4a4..ed32ba0a24f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -90,6 +90,8 @@ members = [ "cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo", "cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend", "cumulus/parachains/integration-tests/emulated/chains/parachains/collectives/collectives-westend", + "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo", + "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend", "cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-rococo", "cumulus/parachains/integration-tests/emulated/chains/parachains/people/people-westend", "cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal", @@ -104,6 +106,8 @@ members = [ "cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo", "cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend", "cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend", + "cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo", + "cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend", "cumulus/parachains/integration-tests/emulated/tests/people/people-rococo", "cumulus/parachains/integration-tests/emulated/tests/people/people-westend", "cumulus/parachains/pallets/collective-content", @@ -667,7 +671,9 @@ colored = { version = "2.0.4" } comfy-table = { version = "7.1.0", default-features = false } console = { version = "0.15.8" } contracts-rococo-runtime = { path = "cumulus/parachains/runtimes/contracts/contracts-rococo" } +coretime-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo" } coretime-rococo-runtime = { path = "cumulus/parachains/runtimes/coretime/coretime-rococo" } +coretime-westend-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend" } coretime-westend-runtime = { path = "cumulus/parachains/runtimes/coretime/coretime-westend" } cpu-time = { version = "1.0.0" } criterion = { version = "0.5.1", default-features = false } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo/src/lib.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo/src/lib.rs index d8b8edaf240..5ef0993f70a 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-rococo/src/lib.rs @@ -17,6 +17,7 @@ pub mod genesis; pub use bridge_hub_rococo_runtime::{ xcm_config::XcmConfig as BridgeHubRococoXcmConfig, EthereumBeaconClient, EthereumInboundQueue, + ExistentialDeposit as BridgeHubRococoExistentialDeposit, RuntimeOrigin as BridgeHubRococoRuntimeOrigin, }; diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend/src/lib.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend/src/lib.rs index f701b309699..feb59c411c8 100644 --- a/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/bridges/bridge-hub-westend/src/lib.rs @@ -15,7 +15,10 @@ pub mod genesis; -pub use bridge_hub_westend_runtime::xcm_config::XcmConfig as BridgeHubWestendXcmConfig; +pub use bridge_hub_westend_runtime::{ + xcm_config::XcmConfig as BridgeHubWestendXcmConfig, + ExistentialDeposit as BridgeHubWestendExistentialDeposit, +}; // Substrate use frame_support::traits::OnInitialize; diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/Cargo.toml new file mode 100644 index 00000000000..6af3f270a90 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "coretime-rococo-emulated-chain" +version = "0.0.0" +authors.workspace = true +edition.workspace = true +license = "Apache-2.0" +description = "Coretime Rococo emulated chain" +publish = false + +[lints] +workspace = true + +[dependencies] + +# Substrate +sp-core = { workspace = true } +frame-support = { workspace = true } + +# Cumulus +parachains-common = { workspace = true, default-features = true } +cumulus-primitives-core = { workspace = true } +coretime-rococo-runtime = { workspace = true, default-features = true } +emulated-integration-tests-common = { workspace = true } +testnet-parachains-constants = { features = ["rococo"], workspace = true, default-features = true } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/src/genesis.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/src/genesis.rs new file mode 100644 index 00000000000..f72de52c493 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/src/genesis.rs @@ -0,0 +1,66 @@ +// Copyright (C) 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. + +// Substrate +use sp_core::storage::Storage; + +// Cumulus +use emulated_integration_tests_common::{ + accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, +}; +use parachains_common::Balance; + +pub const PARA_ID: u32 = 1005; +pub const ED: Balance = testnet_parachains_constants::rococo::currency::EXISTENTIAL_DEPOSIT; + +pub fn genesis() -> Storage { + let genesis_config = coretime_rococo_runtime::RuntimeGenesisConfig { + system: coretime_rococo_runtime::SystemConfig::default(), + balances: coretime_rococo_runtime::BalancesConfig { + balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), + }, + parachain_info: coretime_rococo_runtime::ParachainInfoConfig { + parachain_id: PARA_ID.into(), + ..Default::default() + }, + collator_selection: coretime_rococo_runtime::CollatorSelectionConfig { + invulnerables: collators::invulnerables().iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: ED * 16, + ..Default::default() + }, + session: coretime_rococo_runtime::SessionConfig { + keys: collators::invulnerables() + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + coretime_rococo_runtime::SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + polkadot_xcm: coretime_rococo_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + ..Default::default() + }, + ..Default::default() + }; + + build_genesis_storage( + &genesis_config, + coretime_rococo_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), + ) +} diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/src/lib.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/src/lib.rs new file mode 100644 index 00000000000..a15303a22e1 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-rococo/src/lib.rs @@ -0,0 +1,53 @@ +// Copyright (C) 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 use coretime_rococo_runtime; + +pub mod genesis; + +// Substrate +use frame_support::traits::OnInitialize; + +// Cumulus +use emulated_integration_tests_common::{ + impl_accounts_helpers_for_parachain, impl_assert_events_helpers_for_parachain, + impls::Parachain, xcm_emulator::decl_test_parachains, +}; + +// CoretimeRococo Parachain declaration +decl_test_parachains! { + pub struct CoretimeRococo { + genesis = genesis::genesis(), + on_init = { + coretime_rococo_runtime::AuraExt::on_initialize(1); + }, + runtime = coretime_rococo_runtime, + core = { + XcmpMessageHandler: coretime_rococo_runtime::XcmpQueue, + LocationToAccountId: coretime_rococo_runtime::xcm_config::LocationToAccountId, + ParachainInfo: coretime_rococo_runtime::ParachainInfo, + MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, + }, + pallets = { + PolkadotXcm: coretime_rococo_runtime::PolkadotXcm, + Balances: coretime_rococo_runtime::Balances, + Broker: coretime_rococo_runtime::Broker, + } + }, +} + +// CoretimeRococo implementation +impl_accounts_helpers_for_parachain!(CoretimeRococo); +impl_assert_events_helpers_for_parachain!(CoretimeRococo); diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/Cargo.toml new file mode 100644 index 00000000000..895a984eccb --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/Cargo.toml @@ -0,0 +1,24 @@ +[package] +name = "coretime-westend-emulated-chain" +version = "0.0.0" +authors.workspace = true +edition.workspace = true +license = "Apache-2.0" +description = "Coretime Westend emulated chain" +publish = false + +[lints] +workspace = true + +[dependencies] + +# Substrate +sp-core = { workspace = true } +frame-support = { workspace = true } + +# Cumulus +parachains-common = { workspace = true, default-features = true } +cumulus-primitives-core = { workspace = true } +coretime-westend-runtime = { workspace = true, default-features = true } +emulated-integration-tests-common = { workspace = true } +testnet-parachains-constants = { features = ["westend"], workspace = true, default-features = true } diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/src/genesis.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/src/genesis.rs new file mode 100644 index 00000000000..222ffe7a63a --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/src/genesis.rs @@ -0,0 +1,66 @@ +// Copyright (C) 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. + +// Substrate +use sp_core::storage::Storage; + +// Cumulus +use emulated_integration_tests_common::{ + accounts, build_genesis_storage, collators, SAFE_XCM_VERSION, +}; +use parachains_common::Balance; + +pub const PARA_ID: u32 = 1005; +pub const ED: Balance = testnet_parachains_constants::westend::currency::EXISTENTIAL_DEPOSIT; + +pub fn genesis() -> Storage { + let genesis_config = coretime_westend_runtime::RuntimeGenesisConfig { + system: coretime_westend_runtime::SystemConfig::default(), + balances: coretime_westend_runtime::BalancesConfig { + balances: accounts::init_balances().iter().cloned().map(|k| (k, ED * 4096)).collect(), + }, + parachain_info: coretime_westend_runtime::ParachainInfoConfig { + parachain_id: PARA_ID.into(), + ..Default::default() + }, + collator_selection: coretime_westend_runtime::CollatorSelectionConfig { + invulnerables: collators::invulnerables().iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: ED * 16, + ..Default::default() + }, + session: coretime_westend_runtime::SessionConfig { + keys: collators::invulnerables() + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + coretime_westend_runtime::SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + polkadot_xcm: coretime_westend_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + ..Default::default() + }, + ..Default::default() + }; + + build_genesis_storage( + &genesis_config, + coretime_westend_runtime::WASM_BINARY.expect("WASM binary was not built, please build it!"), + ) +} diff --git a/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/src/lib.rs b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/src/lib.rs new file mode 100644 index 00000000000..41949843b02 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/chains/parachains/coretime/coretime-westend/src/lib.rs @@ -0,0 +1,53 @@ +// Copyright (C) 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 use coretime_westend_runtime; + +pub mod genesis; + +// Substrate +use frame_support::traits::OnInitialize; + +// Cumulus +use emulated_integration_tests_common::{ + impl_accounts_helpers_for_parachain, impl_assert_events_helpers_for_parachain, + impls::Parachain, xcm_emulator::decl_test_parachains, +}; + +// CoretimeWestend Parachain declaration +decl_test_parachains! { + pub struct CoretimeWestend { + genesis = genesis::genesis(), + on_init = { + coretime_westend_runtime::AuraExt::on_initialize(1); + }, + runtime = coretime_westend_runtime, + core = { + XcmpMessageHandler: coretime_westend_runtime::XcmpQueue, + LocationToAccountId: coretime_westend_runtime::xcm_config::LocationToAccountId, + ParachainInfo: coretime_westend_runtime::ParachainInfo, + MessageOrigin: cumulus_primitives_core::AggregateMessageOrigin, + }, + pallets = { + PolkadotXcm: coretime_westend_runtime::PolkadotXcm, + Balances: coretime_westend_runtime::Balances, + Broker: coretime_westend_runtime::Broker, + } + }, +} + +// CoretimeWestend implementation +impl_accounts_helpers_for_parachain!(CoretimeWestend); +impl_assert_events_helpers_for_parachain!(CoretimeWestend); diff --git a/cumulus/parachains/integration-tests/emulated/common/src/macros.rs b/cumulus/parachains/integration-tests/emulated/common/src/macros.rs index 6f6bbe41e01..b11adacbde5 100644 --- a/cumulus/parachains/integration-tests/emulated/common/src/macros.rs +++ b/cumulus/parachains/integration-tests/emulated/common/src/macros.rs @@ -27,7 +27,7 @@ pub use xcm::{ prelude::{ AccountId32, All, Asset, AssetId, BuyExecution, DepositAsset, ExpectTransactStatus, Fungible, Here, Location, MaybeErrorCode, OriginKind, RefundSurplus, Transact, Unlimited, - VersionedXcm, WeightLimit, WithdrawAsset, Xcm, + VersionedAssets, VersionedXcm, WeightLimit, WithdrawAsset, Xcm, }, v3::Location as V3Location, }; @@ -130,3 +130,279 @@ macro_rules! test_parachain_is_trusted_teleporter { } }; } + +#[macro_export] +macro_rules! test_relay_is_trusted_teleporter { + ( $sender_relay:ty, $sender_xcm_config:ty, vec![$( $receiver_para:ty ),+], ($assets:expr, $amount:expr) ) => { + $crate::macros::paste::paste! { + // init Origin variables + let sender = [<$sender_relay Sender>]::get(); + let mut relay_sender_balance_before = + <$sender_relay as $crate::macros::Chain>::account_data_of(sender.clone()).free; + let origin = <$sender_relay as $crate::macros::Chain>::RuntimeOrigin::signed(sender.clone()); + let fee_asset_item = 0; + let weight_limit = $crate::macros::WeightLimit::Unlimited; + + $( + { + // init Destination variables + let receiver = [<$receiver_para Receiver>]::get(); + let para_receiver_balance_before = + <$receiver_para as $crate::macros::Chain>::account_data_of(receiver.clone()).free; + let para_destination = + <$sender_relay>::child_location_of(<$receiver_para>::para_id()); + let beneficiary: Location = + $crate::macros::AccountId32 { network: None, id: receiver.clone().into() }.into(); + + // Send XCM message from Relay + <$sender_relay>::execute_with(|| { + assert_ok!(<$sender_relay as [<$sender_relay Pallet>]>::XcmPallet::limited_teleport_assets( + origin.clone(), + bx!(para_destination.clone().into()), + bx!(beneficiary.clone().into()), + bx!($assets.clone().into()), + fee_asset_item, + weight_limit.clone(), + )); + + type RuntimeEvent = <$sender_relay as $crate::macros::Chain>::RuntimeEvent; + + assert_expected_events!( + $sender_relay, + vec![ + RuntimeEvent::XcmPallet( + $crate::macros::pallet_xcm::Event::Attempted { outcome: Outcome::Complete { .. } } + ) => {}, + RuntimeEvent::Balances( + $crate::macros::pallet_balances::Event::Burned { who: sender, amount } + ) => {}, + RuntimeEvent::XcmPallet( + $crate::macros::pallet_xcm::Event::Sent { .. } + ) => {}, + ] + ); + }); + + // Receive XCM message in Destination Parachain + <$receiver_para>::execute_with(|| { + type RuntimeEvent = <$receiver_para as $crate::macros::Chain>::RuntimeEvent; + + assert_expected_events!( + $receiver_para, + vec![ + RuntimeEvent::Balances( + $crate::macros::pallet_balances::Event::Minted { who: receiver, .. } + ) => {}, + RuntimeEvent::MessageQueue( + $crate::macros::pallet_message_queue::Event::Processed { success: true, .. } + ) => {}, + ] + ); + }); + + // Check if balances are updated accordingly in Origin and Parachain + let relay_sender_balance_after = + <$sender_relay as $crate::macros::Chain>::account_data_of(sender.clone()).free; + let para_receiver_balance_after = + <$receiver_para as $crate::macros::Chain>::account_data_of(receiver.clone()).free; + let delivery_fees = <$sender_relay>::execute_with(|| { + $crate::macros::asset_test_utils::xcm_helpers::teleport_assets_delivery_fees::< + <$sender_xcm_config as xcm_executor::Config>::XcmSender, + >($assets.clone(), fee_asset_item, weight_limit.clone(), beneficiary, para_destination) + }); + + assert_eq!(relay_sender_balance_before - $amount - delivery_fees, relay_sender_balance_after); + assert!(para_receiver_balance_after > para_receiver_balance_before); + + // Update sender balance + relay_sender_balance_before = <$sender_relay as $crate::macros::Chain>::account_data_of(sender.clone()).free; + } + )+ + } + }; +} + +#[macro_export] +macro_rules! test_parachain_is_trusted_teleporter_for_relay { + ( $sender_para:ty, $sender_xcm_config:ty, $receiver_relay:ty, $amount:expr ) => { + $crate::macros::paste::paste! { + // init Origin variables + let sender = [<$sender_para Sender>]::get(); + let mut para_sender_balance_before = + <$sender_para as $crate::macros::Chain>::account_data_of(sender.clone()).free; + let origin = <$sender_para as $crate::macros::Chain>::RuntimeOrigin::signed(sender.clone()); + let assets: Assets = (Parent, $amount).into(); + let fee_asset_item = 0; + let weight_limit = $crate::macros::WeightLimit::Unlimited; + + // init Destination variables + let receiver = [<$receiver_relay Receiver>]::get(); + let relay_receiver_balance_before = + <$receiver_relay as $crate::macros::Chain>::account_data_of(receiver.clone()).free; + let relay_destination: Location = Parent.into(); + let beneficiary: Location = + $crate::macros::AccountId32 { network: None, id: receiver.clone().into() }.into(); + + // Send XCM message from Parachain + <$sender_para>::execute_with(|| { + assert_ok!(<$sender_para as [<$sender_para Pallet>]>::PolkadotXcm::limited_teleport_assets( + origin.clone(), + bx!(relay_destination.clone().into()), + bx!(beneficiary.clone().into()), + bx!(assets.clone().into()), + fee_asset_item, + weight_limit.clone(), + )); + + type RuntimeEvent = <$sender_para as $crate::macros::Chain>::RuntimeEvent; + + assert_expected_events!( + $sender_para, + vec![ + RuntimeEvent::PolkadotXcm( + $crate::macros::pallet_xcm::Event::Attempted { outcome: Outcome::Complete { .. } } + ) => {}, + RuntimeEvent::Balances( + $crate::macros::pallet_balances::Event::Burned { who: sender, amount } + ) => {}, + RuntimeEvent::PolkadotXcm( + $crate::macros::pallet_xcm::Event::Sent { .. } + ) => {}, + ] + ); + }); + + // Receive XCM message in Destination Parachain + <$receiver_relay>::execute_with(|| { + type RuntimeEvent = <$receiver_relay as $crate::macros::Chain>::RuntimeEvent; + + assert_expected_events!( + $receiver_relay, + vec![ + RuntimeEvent::Balances( + $crate::macros::pallet_balances::Event::Minted { who: receiver, .. } + ) => {}, + RuntimeEvent::MessageQueue( + $crate::macros::pallet_message_queue::Event::Processed { success: true, .. } + ) => {}, + ] + ); + }); + + // Check if balances are updated accordingly in Origin and Relay Chain + let para_sender_balance_after = + <$sender_para as $crate::macros::Chain>::account_data_of(sender.clone()).free; + let relay_receiver_balance_after = + <$receiver_relay as $crate::macros::Chain>::account_data_of(receiver.clone()).free; + let delivery_fees = <$sender_para>::execute_with(|| { + $crate::macros::asset_test_utils::xcm_helpers::teleport_assets_delivery_fees::< + <$sender_xcm_config as xcm_executor::Config>::XcmSender, + >(assets, fee_asset_item, weight_limit.clone(), beneficiary, relay_destination) + }); + + assert_eq!(para_sender_balance_before - $amount - delivery_fees, para_sender_balance_after); + assert!(relay_receiver_balance_after > relay_receiver_balance_before); + + // Update sender balance + para_sender_balance_before = <$sender_para as $crate::macros::Chain>::account_data_of(sender.clone()).free; + } + }; +} + +#[macro_export] +macro_rules! test_chain_can_claim_assets { + ( $sender_para:ty, $runtime_call:ty, $network_id:expr, $assets:expr, $amount:expr ) => { + $crate::macros::paste::paste! { + let sender = [<$sender_para Sender>]::get(); + let origin = <$sender_para as $crate::macros::Chain>::RuntimeOrigin::signed(sender.clone()); + // Receiver is the same as sender + let beneficiary: Location = + $crate::macros::AccountId32 { network: Some($network_id), id: sender.clone().into() }.into(); + let versioned_assets: $crate::macros::VersionedAssets = $assets.clone().into(); + + <$sender_para>::execute_with(|| { + // Assets are trapped for whatever reason. + // The possible reasons for this might differ from runtime to runtime, so here we just drop them directly. + <$sender_para as [<$sender_para Pallet>]>::PolkadotXcm::drop_assets( + &beneficiary, + $assets.clone().into(), + &XcmContext { origin: None, message_id: [0u8; 32], topic: None }, + ); + + type RuntimeEvent = <$sender_para as $crate::macros::Chain>::RuntimeEvent; + assert_expected_events!( + $sender_para, + vec![ + RuntimeEvent::PolkadotXcm( + $crate::macros::pallet_xcm::Event::AssetsTrapped { origin: beneficiary, assets: versioned_assets, .. } + ) => {}, + ] + ); + + let balance_before = <$sender_para as [<$sender_para Pallet>]>::Balances::free_balance(&sender); + + // Different origin or different assets won't work. + let other_origin = <$sender_para as $crate::macros::Chain>::RuntimeOrigin::signed([<$sender_para Receiver>]::get()); + assert!(<$sender_para as [<$sender_para Pallet>]>::PolkadotXcm::claim_assets( + other_origin, + bx!(versioned_assets.clone().into()), + bx!(beneficiary.clone().into()), + ).is_err()); + let other_versioned_assets: $crate::macros::VersionedAssets = Assets::new().into(); + assert!(<$sender_para as [<$sender_para Pallet>]>::PolkadotXcm::claim_assets( + origin.clone(), + bx!(other_versioned_assets.into()), + bx!(beneficiary.clone().into()), + ).is_err()); + + // Assets will be claimed to `beneficiary`, which is the same as `sender`. + assert_ok!(<$sender_para as [<$sender_para Pallet>]>::PolkadotXcm::claim_assets( + origin.clone(), + bx!(versioned_assets.clone().into()), + bx!(beneficiary.clone().into()), + )); + + assert_expected_events!( + $sender_para, + vec![ + RuntimeEvent::PolkadotXcm( + $crate::macros::pallet_xcm::Event::AssetsClaimed { origin: beneficiary, assets: versioned_assets, .. } + ) => {}, + ] + ); + + // After claiming the assets, the balance has increased. + let balance_after = <$sender_para as [<$sender_para Pallet>]>::Balances::free_balance(&sender); + assert_eq!(balance_after, balance_before + $amount); + + // Claiming the assets again doesn't work. + assert!(<$sender_para as [<$sender_para Pallet>]>::PolkadotXcm::claim_assets( + origin.clone(), + bx!(versioned_assets.clone().into()), + bx!(beneficiary.clone().into()), + ).is_err()); + + let balance = <$sender_para as [<$sender_para Pallet>]>::Balances::free_balance(&sender); + assert_eq!(balance, balance_after); + + // You can also claim assets and send them to a different account. + <$sender_para as [<$sender_para Pallet>]>::PolkadotXcm::drop_assets( + &beneficiary, + $assets.clone().into(), + &XcmContext { origin: None, message_id: [0u8; 32], topic: None }, + ); + let receiver = [<$sender_para Receiver>]::get(); + let other_beneficiary: Location = + $crate::macros::AccountId32 { network: Some($network_id), id: receiver.clone().into() }.into(); + let balance_before = <$sender_para as [<$sender_para Pallet>]>::Balances::free_balance(&receiver); + assert_ok!(<$sender_para as [<$sender_para Pallet>]>::PolkadotXcm::claim_assets( + origin.clone(), + bx!(versioned_assets.clone().into()), + bx!(other_beneficiary.clone().into()), + )); + let balance_after = <$sender_para as [<$sender_para Pallet>]>::Balances::free_balance(&receiver); + assert_eq!(balance_after, balance_before + $amount); + }); + } + }; +} diff --git a/cumulus/parachains/integration-tests/emulated/networks/rococo-system/Cargo.toml b/cumulus/parachains/integration-tests/emulated/networks/rococo-system/Cargo.toml index 298be7362ec..864f3c6edd7 100644 --- a/cumulus/parachains/integration-tests/emulated/networks/rococo-system/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/networks/rococo-system/Cargo.toml @@ -18,3 +18,4 @@ asset-hub-rococo-emulated-chain = { workspace = true } bridge-hub-rococo-emulated-chain = { workspace = true } people-rococo-emulated-chain = { workspace = true } penpal-emulated-chain = { workspace = true } +coretime-rococo-emulated-chain = { workspace = true } diff --git a/cumulus/parachains/integration-tests/emulated/networks/rococo-system/src/lib.rs b/cumulus/parachains/integration-tests/emulated/networks/rococo-system/src/lib.rs index 70f23ef8260..53808bc5a80 100644 --- a/cumulus/parachains/integration-tests/emulated/networks/rococo-system/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/networks/rococo-system/src/lib.rs @@ -15,12 +15,14 @@ pub use asset_hub_rococo_emulated_chain; pub use bridge_hub_rococo_emulated_chain; +pub use coretime_rococo_emulated_chain; pub use penpal_emulated_chain; pub use people_rococo_emulated_chain; pub use rococo_emulated_chain; use asset_hub_rococo_emulated_chain::AssetHubRococo; use bridge_hub_rococo_emulated_chain::BridgeHubRococo; +use coretime_rococo_emulated_chain::CoretimeRococo; use penpal_emulated_chain::{PenpalA, PenpalB}; use people_rococo_emulated_chain::PeopleRococo; use rococo_emulated_chain::Rococo; @@ -37,6 +39,7 @@ decl_test_networks! { parachains = vec![ AssetHubRococo, BridgeHubRococo, + CoretimeRococo, PenpalA, PenpalB, PeopleRococo, @@ -49,6 +52,7 @@ decl_test_sender_receiver_accounts_parameter_types! { RococoRelay { sender: ALICE, receiver: BOB }, AssetHubRococoPara { sender: ALICE, receiver: BOB }, BridgeHubRococoPara { sender: ALICE, receiver: BOB }, + CoretimeRococoPara { sender: ALICE, receiver: BOB }, PenpalAPara { sender: ALICE, receiver: BOB }, PenpalBPara { sender: ALICE, receiver: BOB }, PeopleRococoPara { sender: ALICE, receiver: BOB } diff --git a/cumulus/parachains/integration-tests/emulated/networks/westend-system/Cargo.toml b/cumulus/parachains/integration-tests/emulated/networks/westend-system/Cargo.toml index 37c14aa3035..cec2e3733b2 100644 --- a/cumulus/parachains/integration-tests/emulated/networks/westend-system/Cargo.toml +++ b/cumulus/parachains/integration-tests/emulated/networks/westend-system/Cargo.toml @@ -19,3 +19,4 @@ bridge-hub-westend-emulated-chain = { workspace = true } collectives-westend-emulated-chain = { workspace = true } penpal-emulated-chain = { workspace = true } people-westend-emulated-chain = { workspace = true } +coretime-westend-emulated-chain = { workspace = true } diff --git a/cumulus/parachains/integration-tests/emulated/networks/westend-system/src/lib.rs b/cumulus/parachains/integration-tests/emulated/networks/westend-system/src/lib.rs index 9fbc773bc50..6949a985629 100644 --- a/cumulus/parachains/integration-tests/emulated/networks/westend-system/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/networks/westend-system/src/lib.rs @@ -16,6 +16,7 @@ pub use asset_hub_westend_emulated_chain; pub use bridge_hub_westend_emulated_chain; pub use collectives_westend_emulated_chain; +pub use coretime_westend_emulated_chain; pub use penpal_emulated_chain; pub use people_westend_emulated_chain; pub use westend_emulated_chain; @@ -23,6 +24,7 @@ pub use westend_emulated_chain; use asset_hub_westend_emulated_chain::AssetHubWestend; use bridge_hub_westend_emulated_chain::BridgeHubWestend; use collectives_westend_emulated_chain::CollectivesWestend; +use coretime_westend_emulated_chain::CoretimeWestend; use penpal_emulated_chain::{PenpalA, PenpalB}; use people_westend_emulated_chain::PeopleWestend; use westend_emulated_chain::Westend; @@ -40,6 +42,7 @@ decl_test_networks! { AssetHubWestend, BridgeHubWestend, CollectivesWestend, + CoretimeWestend, PeopleWestend, PenpalA, PenpalB, @@ -53,6 +56,7 @@ decl_test_sender_receiver_accounts_parameter_types! { AssetHubWestendPara { sender: ALICE, receiver: BOB }, BridgeHubWestendPara { sender: ALICE, receiver: BOB }, CollectivesWestendPara { sender: ALICE, receiver: BOB }, + CoretimeWestendPara { sender: ALICE, receiver: BOB }, PeopleWestendPara { sender: ALICE, receiver: BOB }, PenpalAPara { sender: ALICE, receiver: BOB }, PenpalBPara { sender: ALICE, receiver: BOB } diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/lib.rs index f0094592696..eca35831705 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/lib.rs @@ -52,6 +52,7 @@ mod imports { XcmConfig as AssetHubRococoXcmConfig, }, AssetConversionOrigin as AssetHubRococoAssetConversionOrigin, + ExistentialDeposit as AssetHubRococoExistentialDeposit, }, genesis::{AssetHubRococoAssetOwner, ED as ASSET_HUB_ROCOCO_ED}, AssetHubRococoParaPallet as AssetHubRococoPallet, diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/claim_assets.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/claim_assets.rs new file mode 100644 index 00000000000..99b31aba4be --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/claim_assets.rs @@ -0,0 +1,29 @@ +// Copyright (C) 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. + +//! Tests related to claiming assets trapped during XCM execution. + +use crate::imports::*; + +use emulated_integration_tests_common::test_chain_can_claim_assets; +use xcm_executor::traits::DropAssets; + +#[test] +fn assets_can_be_claimed() { + let amount = AssetHubRococoExistentialDeposit::get(); + let assets: Assets = (Parent, amount).into(); + + test_chain_can_claim_assets!(AssetHubRococo, RuntimeCall, NetworkId::Rococo, assets, amount); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/mod.rs index 138ce419757..8fffec23d73 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/mod.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-rococo/src/tests/mod.rs @@ -13,6 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +mod claim_assets; mod hybrid_transfers; mod reserve_transfer; mod send; diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/lib.rs index db8ada3f4ea..9401621c5ba 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/lib.rs @@ -52,6 +52,7 @@ mod imports { XcmConfig as AssetHubWestendXcmConfig, }, AssetConversionOrigin as AssetHubWestendAssetConversionOrigin, + ExistentialDeposit as AssetHubWestendExistentialDeposit, }, genesis::{AssetHubWestendAssetOwner, ED as ASSET_HUB_WESTEND_ED}, AssetHubWestendParaPallet as AssetHubWestendPallet, diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/claim_assets.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/claim_assets.rs new file mode 100644 index 00000000000..de58839634f --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/claim_assets.rs @@ -0,0 +1,29 @@ +// Copyright (C) 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. + +//! Tests related to claiming assets trapped during XCM execution. + +use crate::imports::*; + +use emulated_integration_tests_common::test_chain_can_claim_assets; +use xcm_executor::traits::DropAssets; + +#[test] +fn assets_can_be_claimed() { + let amount = AssetHubWestendExistentialDeposit::get(); + let assets: Assets = (Parent, amount).into(); + + test_chain_can_claim_assets!(AssetHubWestend, RuntimeCall, NetworkId::Westend, assets, amount); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/mod.rs index 61eb70524fc..73b73b239a1 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/mod.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/assets/asset-hub-westend/src/tests/mod.rs @@ -13,6 +13,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +mod claim_assets; mod fellowship_treasury; mod hybrid_transfers; mod reserve_transfer; diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/lib.rs index 04466a611c7..3ee509389c6 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/lib.rs @@ -48,7 +48,7 @@ mod imports { genesis::ED as ASSET_HUB_WESTEND_ED, AssetHubWestendParaPallet as AssetHubWestendPallet, }, bridge_hub_rococo_emulated_chain::{ - genesis::ED as BRIDGE_HUB_ROCOCO_ED, + genesis::ED as BRIDGE_HUB_ROCOCO_ED, BridgeHubRococoExistentialDeposit, BridgeHubRococoParaPallet as BridgeHubRococoPallet, BridgeHubRococoRuntimeOrigin, BridgeHubRococoXcmConfig, EthereumBeaconClient, EthereumInboundQueue, }, diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/claim_assets.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/claim_assets.rs new file mode 100644 index 00000000000..e61dc35bdf8 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/claim_assets.rs @@ -0,0 +1,29 @@ +// Copyright (C) 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. + +//! Tests related to claiming assets trapped during XCM execution. + +use crate::imports::*; + +use emulated_integration_tests_common::test_chain_can_claim_assets; +use xcm_executor::traits::DropAssets; + +#[test] +fn assets_can_be_claimed() { + let amount = BridgeHubRococoExistentialDeposit::get(); + let assets: Assets = (Parent, amount).into(); + + test_chain_can_claim_assets!(AssetHubRococo, RuntimeCall, NetworkId::Rococo, assets, amount); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/mod.rs index 58c52e1328c..ceccf98a024 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/mod.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/src/tests/mod.rs @@ -16,6 +16,7 @@ use crate::imports::*; mod asset_transfers; +mod claim_assets; mod send_xcm; mod snowbridge; mod teleport; diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/lib.rs index 3b0fcea57a2..782b83bac47 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/lib.rs @@ -48,7 +48,7 @@ mod imports { genesis::ED as ASSET_HUB_WESTEND_ED, AssetHubWestendParaPallet as AssetHubWestendPallet, }, bridge_hub_westend_emulated_chain::{ - genesis::ED as BRIDGE_HUB_WESTEND_ED, + genesis::ED as BRIDGE_HUB_WESTEND_ED, BridgeHubWestendExistentialDeposit, BridgeHubWestendParaPallet as BridgeHubWestendPallet, BridgeHubWestendXcmConfig, }, penpal_emulated_chain::{ diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/claim_assets.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/claim_assets.rs new file mode 100644 index 00000000000..e62ce684325 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/claim_assets.rs @@ -0,0 +1,29 @@ +// Copyright (C) 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. + +//! Tests related to claiming assets trapped during XCM execution. + +use crate::imports::*; + +use emulated_integration_tests_common::test_chain_can_claim_assets; +use xcm_executor::traits::DropAssets; + +#[test] +fn assets_can_be_claimed() { + let amount = BridgeHubWestendExistentialDeposit::get(); + let assets: Assets = (Parent, amount).into(); + + test_chain_can_claim_assets!(AssetHubWestend, RuntimeCall, NetworkId::Westend, assets, amount); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/mod.rs index 92e864229a9..768b647a13f 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/mod.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/mod.rs @@ -16,6 +16,7 @@ use crate::imports::*; mod asset_transfers; +mod claim_assets; mod send_xcm; mod teleport; diff --git a/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/lib.rs index 8af93a62f4a..e2048b62c31 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/lib.rs @@ -15,24 +15,42 @@ pub use xcm::{prelude::*, v3}; -pub use emulated_integration_tests_common::xcm_emulator::{ - assert_expected_events, bx, Chain, RelayChain as Relay, TestExt, +pub use emulated_integration_tests_common::{ + accounts::ALICE, + test_parachain_is_trusted_teleporter, + xcm_emulator::{assert_expected_events, bx, Chain, Parachain, RelayChain as Relay, TestExt}, }; pub use westend_system_emulated_network::{ asset_hub_westend_emulated_chain::{ - asset_hub_westend_runtime::xcm_config::LocationToAccountId as AssetHubLocationToAccountId, + asset_hub_westend_runtime::xcm_config::{ + LocationToAccountId as AssetHubLocationToAccountId, + XcmConfig as AssetHubWestendXcmConfig, + }, + genesis::ED as ASSET_HUB_WESTEND_ED, AssetHubWestendParaPallet as AssetHubWestendPallet, }, collectives_westend_emulated_chain::{ - collectives_westend_runtime::fellowship as collectives_fellowship, + collectives_westend_runtime::{ + fellowship as collectives_fellowship, + xcm_config::XcmConfig as CollectivesWestendXcmConfig, + }, + genesis::ED as COLLECTIVES_WESTEND_ED, CollectivesWestendParaPallet as CollectivesWestendPallet, }, westend_emulated_chain::{ - westend_runtime::{governance as westend_governance, OriginCaller as WestendOriginCaller}, + genesis::ED as WESTEND_ED, + westend_runtime::{ + governance as westend_governance, xcm_config::XcmConfig as WestendXcmConfig, + OriginCaller as WestendOriginCaller, + }, WestendRelayPallet as WestendPallet, }, - AssetHubWestendPara as AssetHubWestend, CollectivesWestendPara as CollectivesWestend, - WestendRelay as Westend, + AssetHubWestendPara as AssetHubWestend, AssetHubWestendParaReceiver as AssetHubWestendReceiver, + AssetHubWestendParaSender as AssetHubWestendSender, + CollectivesWestendPara as CollectivesWestend, + CollectivesWestendParaReceiver as CollectivesWestendReceiver, + CollectivesWestendParaSender as CollectivesWestendSender, WestendRelay as Westend, + WestendRelayReceiver as WestendReceiver, WestendRelaySender as WestendSender, }; #[cfg(test)] diff --git a/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/fellowship_treasury.rs b/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/fellowship_treasury.rs index abd9a982c8e..943f8965540 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/fellowship_treasury.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/fellowship_treasury.rs @@ -14,7 +14,6 @@ // limitations under the License. use crate::*; -use emulated_integration_tests_common::accounts::ALICE; use frame_support::{ assert_ok, dispatch::RawOrigin, instances::Instance1, sp_runtime::traits::Dispatchable, traits::fungible::Inspect, diff --git a/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/mod.rs index a9f65df34b6..40e98a8b686 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/mod.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/mod.rs @@ -14,3 +14,4 @@ // limitations under the License. mod fellowship_treasury; +mod teleport; diff --git a/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/teleport.rs b/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/teleport.rs new file mode 100644 index 00000000000..32f543406d7 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/collectives/collectives-westend/src/tests/teleport.rs @@ -0,0 +1,66 @@ +// Copyright (C) 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::*; +use emulated_integration_tests_common::{ + test_parachain_is_trusted_teleporter_for_relay, test_relay_is_trusted_teleporter, +}; +use frame_support::assert_ok; + +#[test] +fn teleport_from_and_to_relay() { + let amount = WESTEND_ED * 10; + let native_asset: Assets = (Here, amount).into(); + + test_relay_is_trusted_teleporter!( + Westend, // Origin + WestendXcmConfig, // XCM Configuration + vec![CollectivesWestend], // Destinations + (native_asset, amount) + ); + + test_parachain_is_trusted_teleporter_for_relay!( + CollectivesWestend, // Origin + CollectivesWestendXcmConfig, // XCM Configuration + Westend, // Destination + amount + ); +} + +#[test] +fn teleport_from_collectives_to_asset_hub() { + let amount = ASSET_HUB_WESTEND_ED * 100; + let native_asset: Assets = (Parent, amount).into(); + + test_parachain_is_trusted_teleporter!( + CollectivesWestend, // Origin + CollectivesWestendXcmConfig, // XCM Configuration + vec![AssetHubWestend], // Destinations + (native_asset, amount) + ); +} + +#[test] +fn teleport_from_asset_hub_to_collectives() { + let amount = COLLECTIVES_WESTEND_ED * 100; + let native_asset: Assets = (Parent, amount).into(); + + test_parachain_is_trusted_teleporter!( + AssetHubWestend, // Origin + AssetHubWestendXcmConfig, // XCM Configuration + vec![CollectivesWestend], // Destinations + (native_asset, amount) + ); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/Cargo.toml b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/Cargo.toml new file mode 100644 index 00000000000..259be790c3e --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "coretime-rococo-integration-tests" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "Apache-2.0" +description = "Coretime Rococo runtime integration tests with xcm-emulator" +publish = false + +[dependencies] + +# Substrate +frame-support = { workspace = true } +pallet-balances = { workspace = true } +pallet-message-queue = { workspace = true } +pallet-identity = { workspace = true } +sp-runtime = { workspace = true } + +# Polkadot +polkadot-runtime-common = { workspace = true, default-features = true } +rococo-runtime-constants = { workspace = true, default-features = true } +xcm = { workspace = true } +xcm-executor = { workspace = true } + +# Cumulus +emulated-integration-tests-common = { workspace = true } +rococo-system-emulated-network = { workspace = true } diff --git a/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/lib.rs new file mode 100644 index 00000000000..ad3c4fd58da --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/lib.rs @@ -0,0 +1,40 @@ +// Copyright (C) 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. + +#[cfg(test)] +mod imports { + + // Substrate + pub use frame_support::assert_ok; + + // Polkadot + pub use xcm::prelude::*; + + // Cumulus + pub use emulated_integration_tests_common::xcm_emulator::{ + assert_expected_events, bx, TestExt, + }; + pub use rococo_system_emulated_network::{ + coretime_rococo_emulated_chain::{ + coretime_rococo_runtime::ExistentialDeposit as CoretimeRococoExistentialDeposit, + CoretimeRococoParaPallet as CoretimeRococoPallet, + }, + CoretimeRococoPara as CoretimeRococo, CoretimeRococoParaReceiver as CoretimeRococoReceiver, + CoretimeRococoParaSender as CoretimeRococoSender, + }; +} + +#[cfg(test)] +mod tests; diff --git a/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/tests/claim_assets.rs b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/tests/claim_assets.rs new file mode 100644 index 00000000000..e37b915174d --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/tests/claim_assets.rs @@ -0,0 +1,29 @@ +// Copyright (C) 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. + +//! Tests related to claiming assets trapped during XCM execution. + +use crate::imports::*; + +use emulated_integration_tests_common::test_chain_can_claim_assets; +use xcm_executor::traits::DropAssets; + +#[test] +fn assets_can_be_claimed() { + let amount = CoretimeRococoExistentialDeposit::get(); + let assets: Assets = (Parent, amount).into(); + + test_chain_can_claim_assets!(CoretimeRococo, RuntimeCall, NetworkId::Rococo, assets, amount); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/tests/mod.rs new file mode 100644 index 00000000000..0e78351bce0 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-rococo/src/tests/mod.rs @@ -0,0 +1,16 @@ +// Copyright (C) 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. + +mod claim_assets; diff --git a/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/Cargo.toml b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/Cargo.toml new file mode 100644 index 00000000000..a8fa905d2e5 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "coretime-westend-integration-tests" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +license = "Apache-2.0" +description = "Coretime Westend runtime integration tests with xcm-emulator" +publish = false + +[dependencies] + +# Substrate +frame-support = { workspace = true } +pallet-balances = { workspace = true } +pallet-message-queue = { workspace = true } +pallet-identity = { workspace = true } +sp-runtime = { workspace = true } + +# Polkadot +polkadot-runtime-common = { workspace = true, default-features = true } +westend-runtime-constants = { workspace = true, default-features = true } +xcm = { workspace = true } +xcm-executor = { workspace = true } + +# Cumulus +emulated-integration-tests-common = { workspace = true } +westend-system-emulated-network = { workspace = true } diff --git a/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/lib.rs new file mode 100644 index 00000000000..838ca6eeafb --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/lib.rs @@ -0,0 +1,41 @@ +// Copyright (C) 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. + +#[cfg(test)] +mod imports { + + // Substrate + pub use frame_support::assert_ok; + + // Polkadot + pub use xcm::prelude::*; + + // Cumulus + pub use emulated_integration_tests_common::xcm_emulator::{ + assert_expected_events, bx, TestExt, + }; + pub use westend_system_emulated_network::{ + coretime_westend_emulated_chain::{ + coretime_westend_runtime::ExistentialDeposit as CoretimeWestendExistentialDeposit, + CoretimeWestendParaPallet as CoretimeWestendPallet, + }, + CoretimeWestendPara as CoretimeWestend, + CoretimeWestendParaReceiver as CoretimeWestendReceiver, + CoretimeWestendParaSender as CoretimeWestendSender, + }; +} + +#[cfg(test)] +mod tests; diff --git a/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/tests/claim_assets.rs b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/tests/claim_assets.rs new file mode 100644 index 00000000000..c8d85369844 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/tests/claim_assets.rs @@ -0,0 +1,29 @@ +// Copyright (C) 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. + +//! Tests related to claiming assets trapped during XCM execution. + +use crate::imports::*; + +use emulated_integration_tests_common::test_chain_can_claim_assets; +use xcm_executor::traits::DropAssets; + +#[test] +fn assets_can_be_claimed() { + let amount = CoretimeWestendExistentialDeposit::get(); + let assets: Assets = (Parent, amount).into(); + + test_chain_can_claim_assets!(CoretimeWestend, RuntimeCall, NetworkId::Westend, assets, amount); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/tests/mod.rs new file mode 100644 index 00000000000..0e78351bce0 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/coretime/coretime-westend/src/tests/mod.rs @@ -0,0 +1,16 @@ +// Copyright (C) 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. + +mod claim_assets; diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/lib.rs index 6c23c2f1f29..43cd5bb85d3 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/lib.rs @@ -38,7 +38,10 @@ mod imports { pub use rococo_system_emulated_network::{ people_rococo_emulated_chain::{ genesis::ED as PEOPLE_ROCOCO_ED, - people_rococo_runtime::{people, xcm_config::XcmConfig as PeopleRococoXcmConfig}, + people_rococo_runtime::{ + people, xcm_config::XcmConfig as PeopleRococoXcmConfig, + ExistentialDeposit as PeopleRococoExistentialDeposit, + }, PeopleRococoParaPallet as PeopleRococoPallet, }, rococo_emulated_chain::{ diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/claim_assets.rs b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/claim_assets.rs new file mode 100644 index 00000000000..793200e1d06 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/claim_assets.rs @@ -0,0 +1,29 @@ +// Copyright (C) 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. + +//! Tests related to claiming assets trapped during XCM execution. + +use crate::imports::*; + +use emulated_integration_tests_common::test_chain_can_claim_assets; +use xcm_executor::traits::DropAssets; + +#[test] +fn assets_can_be_claimed() { + let amount = PeopleRococoExistentialDeposit::get(); + let assets: Assets = (Parent, amount).into(); + + test_chain_can_claim_assets!(PeopleRococo, RuntimeCall, NetworkId::Rococo, assets, amount); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/mod.rs index 80c00021ca5..3f18621224a 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/mod.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-rococo/src/tests/mod.rs @@ -13,5 +13,6 @@ // See the License for the specific language governing permissions and // limitations under the License. +mod claim_assets; mod reap_identity; mod teleport; diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/lib.rs b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/lib.rs index ce1ed9751a2..92f5d291ac8 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/lib.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/lib.rs @@ -38,7 +38,10 @@ mod imports { self, people_westend_emulated_chain::{ genesis::ED as PEOPLE_WESTEND_ED, - people_westend_runtime::{people, xcm_config::XcmConfig as PeopleWestendXcmConfig}, + people_westend_runtime::{ + people, xcm_config::XcmConfig as PeopleWestendXcmConfig, + ExistentialDeposit as PeopleWestendExistentialDeposit, + }, PeopleWestendParaPallet as PeopleWestendPallet, }, westend_emulated_chain::{ diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/claim_assets.rs b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/claim_assets.rs new file mode 100644 index 00000000000..42ccc459286 --- /dev/null +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/claim_assets.rs @@ -0,0 +1,29 @@ +// Copyright (C) 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. + +//! Tests related to claiming assets trapped during XCM execution. + +use crate::imports::*; + +use emulated_integration_tests_common::test_chain_can_claim_assets; +use xcm_executor::traits::DropAssets; + +#[test] +fn assets_can_be_claimed() { + let amount = PeopleWestendExistentialDeposit::get(); + let assets: Assets = (Parent, amount).into(); + + test_chain_can_claim_assets!(PeopleWestend, RuntimeCall, NetworkId::Westend, assets, amount); +} diff --git a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/mod.rs b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/mod.rs index 80c00021ca5..3f18621224a 100644 --- a/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/mod.rs +++ b/cumulus/parachains/integration-tests/emulated/tests/people/people-westend/src/tests/mod.rs @@ -13,5 +13,6 @@ // See the License for the specific language governing permissions and // limitations under the License. +mod claim_assets; mod reap_identity; mod teleport; diff --git a/prdoc/pr_4930.prdoc b/prdoc/pr_4930.prdoc new file mode 100644 index 00000000000..a7c9a302b11 --- /dev/null +++ b/prdoc/pr_4930.prdoc @@ -0,0 +1,15 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Add test macro to emulated chains + +doc: + - audience: Runtime Dev + description: | + This PR adds a portable test macro that can be used to test trapped assets can be + claimed in an emulated chain. + + +crates: +- name: emulated-integration-tests-common + bump: minor -- GitLab From 7f2a99fc03b58f7be4c62eb4ecd3fe2cb743fd1a Mon Sep 17 00:00:00 2001 From: ordian Date: Fri, 19 Jul 2024 18:06:00 +0200 Subject: [PATCH 062/252] beefy: put not only lease parachain heads into mmr (#4751) Short-term addresses https://github.com/paritytech/polkadot-sdk/issues/4737. - [x] Resolve benchmarking I've digged into benchmarking mentioned https://github.com/paritytech/polkadot-sdk/issues/4737#issuecomment-2155084660, but it seemed to me that this code is different proof/path. @acatangiu could you confirm? (btw, in this [bench](https://github.com/paritytech/polkadot-sdk/blob/b65313e81465dd730e48d4ce00deb76922618375/bridges/modules/parachains/src/benchmarking.rs#L57), where do you actually set the `fn parachains()` to a reasonable number? i've only seen 1) - [ ] Communicate to Snowfork team: This seems to be the relevant code: https://github.com/Snowfork/snowbridge/blob/1e18e010331777042aa7e8fff3c118094af856ba/relayer/cmd/parachain_head_proof.go#L95-L120 - [x] Is it preferred to iter() in some random order as suggested in https://github.com/paritytech/polkadot-sdk/issues/4737#issuecomment-2155084660 or take lowest para ids instead as implemented here currently? - [x] PRDoc ## Updating Polkadot and Kusama runtimes: New weights need to be generated (`pallet_mmr`) and configs updated similar to Rococo/Westend: ```patch diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs index 5adffbd7422..c7da339b981 100644 --- a/polkadot/runtime/rococo/src/lib.rs +++ b/polkadot/runtime/rococo/src/lib.rs @@ -1307,9 +1307,11 @@ impl pallet_mmr::Config for Runtime { const INDEXING_PREFIX: &'static [u8] = mmr::INDEXING_PREFIX; type Hashing = Keccak256; type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; - type WeightInfo = (); type LeafData = pallet_beefy_mmr::Pallet; type BlockHashProvider = pallet_mmr::DefaultBlockHashProvider; + type WeightInfo = weights::pallet_mmr::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = parachains_paras::benchmarking::mmr_setup::MmrSetup; } parameter_types! { @@ -1319,13 +1321,8 @@ parameter_types! { pub struct ParaHeadsRootProvider; impl BeefyDataProvider for ParaHeadsRootProvider { fn extra_data() -> H256 { - let mut para_heads: Vec<(u32, Vec)> = parachains_paras::Parachains::::get() - .into_iter() - .filter_map(|id| { - parachains_paras::Heads::::get(&id).map(|head| (id.into(), head.0)) - }) - .collect(); - para_heads.sort(); + let para_heads: Vec<(u32, Vec)> = + parachains_paras::Pallet::::sorted_para_heads(); binary_merkle_tree::merkle_root::( para_heads.into_iter().map(|pair| pair.encode()), ) @@ -1746,6 +1743,7 @@ mod benches { [pallet_identity, Identity] [pallet_indices, Indices] [pallet_message_queue, MessageQueue] + [pallet_mmr, Mmr] [pallet_multisig, Multisig] [pallet_parameters, Parameters] [pallet_preimage, Preimage] ``` --------- Co-authored-by: Adrian Catangiu --- Cargo.lock | 2 + polkadot/runtime/parachains/Cargo.toml | 7 ++ .../parachains/src/paras/benchmarking.rs | 1 + .../src/paras/benchmarking/mmr_setup.rs | 40 ++++++++++ polkadot/runtime/parachains/src/paras/mod.rs | 21 ++++- polkadot/runtime/rococo/Cargo.toml | 6 +- polkadot/runtime/rococo/src/lib.rs | 14 ++-- polkadot/runtime/rococo/src/weights/mod.rs | 1 + .../runtime/rococo/src/weights/pallet_mmr.rs | 77 +++++++++++++++++++ polkadot/runtime/westend/Cargo.toml | 6 +- polkadot/runtime/westend/src/lib.rs | 14 ++-- polkadot/runtime/westend/src/weights/mod.rs | 1 + .../runtime/westend/src/weights/pallet_mmr.rs | 76 ++++++++++++++++++ prdoc/pr_4751.prdoc | 22 ++++++ substrate/bin/node/runtime/src/lib.rs | 2 + substrate/frame/beefy-mmr/Cargo.toml | 7 ++ substrate/frame/beefy-mmr/src/mock.rs | 3 + .../merkle-mountain-range/src/benchmarking.rs | 9 ++- .../src/default_weights.rs | 3 +- .../frame/merkle-mountain-range/src/lib.rs | 23 +++++- .../frame/merkle-mountain-range/src/mock.rs | 2 + umbrella/Cargo.toml | 1 + 22 files changed, 311 insertions(+), 27 deletions(-) create mode 100644 polkadot/runtime/parachains/src/paras/benchmarking/mmr_setup.rs create mode 100644 polkadot/runtime/rococo/src/weights/pallet_mmr.rs create mode 100644 polkadot/runtime/westend/src/weights/pallet_mmr.rs create mode 100644 prdoc/pr_4751.prdoc diff --git a/Cargo.lock b/Cargo.lock index 6c837a051ce..2bb1a758baf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14076,6 +14076,7 @@ dependencies = [ "pallet-balances", "pallet-broker", "pallet-message-queue", + "pallet-mmr", "pallet-session", "pallet-staking", "pallet-timestamp", @@ -14105,6 +14106,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-staking", + "sp-std 14.0.0", "sp-tracing 16.0.0", "staging-xcm", "staging-xcm-executor", diff --git a/polkadot/runtime/parachains/Cargo.toml b/polkadot/runtime/parachains/Cargo.toml index 7afdf49fe55..cfe373e8cba 100644 --- a/polkadot/runtime/parachains/Cargo.toml +++ b/polkadot/runtime/parachains/Cargo.toml @@ -30,6 +30,7 @@ sp-keystore = { optional = true, workspace = true } sp-application-crypto = { optional = true, workspace = true } sp-tracing = { optional = true, workspace = true } sp-arithmetic = { workspace = true } +sp-std = { workspace = true, optional = true } pallet-authority-discovery = { workspace = true } pallet-authorship = { workspace = true } @@ -37,6 +38,7 @@ pallet-balances = { workspace = true } pallet-babe = { workspace = true } pallet-broker = { workspace = true } pallet-message-queue = { workspace = true } +pallet-mmr = { workspace = true, optional = true } pallet-session = { workspace = true } pallet-staking = { workspace = true } pallet-timestamp = { workspace = true } @@ -86,6 +88,7 @@ std = [ "pallet-balances/std", "pallet-broker/std", "pallet-message-queue/std", + "pallet-mmr?/std", "pallet-session/std", "pallet-staking/std", "pallet-timestamp/std", @@ -109,6 +112,7 @@ std = [ "sp-runtime/std", "sp-session/std", "sp-staking/std", + "sp-std?/std", "xcm-executor/std", "xcm/std", ] @@ -120,6 +124,7 @@ runtime-benchmarks = [ "pallet-balances/runtime-benchmarks", "pallet-broker/runtime-benchmarks", "pallet-message-queue/runtime-benchmarks", + "pallet-mmr/runtime-benchmarks", "pallet-staking/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-vesting/runtime-benchmarks", @@ -128,6 +133,7 @@ runtime-benchmarks = [ "sp-application-crypto", "sp-runtime/runtime-benchmarks", "sp-staking/runtime-benchmarks", + "sp-std", "static_assertions", "xcm-executor/runtime-benchmarks", ] @@ -141,6 +147,7 @@ try-runtime = [ "pallet-balances/try-runtime", "pallet-broker/try-runtime", "pallet-message-queue/try-runtime", + "pallet-mmr/try-runtime", "pallet-session/try-runtime", "pallet-staking/try-runtime", "pallet-timestamp/try-runtime", diff --git a/polkadot/runtime/parachains/src/paras/benchmarking.rs b/polkadot/runtime/parachains/src/paras/benchmarking.rs index 630b86132ab..7bf8b833ed9 100644 --- a/polkadot/runtime/parachains/src/paras/benchmarking.rs +++ b/polkadot/runtime/parachains/src/paras/benchmarking.rs @@ -24,6 +24,7 @@ use polkadot_primitives::{ }; use sp_runtime::traits::{One, Saturating}; +pub mod mmr_setup; mod pvf_check; use self::pvf_check::{VoteCause, VoteOutcome}; diff --git a/polkadot/runtime/parachains/src/paras/benchmarking/mmr_setup.rs b/polkadot/runtime/parachains/src/paras/benchmarking/mmr_setup.rs new file mode 100644 index 00000000000..ab007692e78 --- /dev/null +++ b/polkadot/runtime/parachains/src/paras/benchmarking/mmr_setup.rs @@ -0,0 +1,40 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Implements benchmarking setup for the `merkle-mountain-range` pallet. + +use crate::paras::*; +use pallet_mmr::BenchmarkHelper; +use sp_std::vec; + +/// Struct to setup benchmarks for the `merkle-mountain-range` pallet. +pub struct MmrSetup(core::marker::PhantomData); + +impl BenchmarkHelper for MmrSetup +where + T: Config, +{ + fn setup() { + // Create a head with 1024 bytes of data. + let head = vec![42u8; 1024]; + + for para in 0..MAX_PARA_HEADS { + let id = (para as u32).into(); + let h = head.clone().into(); + Pallet::::heads_insert(&id, h); + } + } +} diff --git a/polkadot/runtime/parachains/src/paras/mod.rs b/polkadot/runtime/parachains/src/paras/mod.rs index 3f0b8659b15..a4c404de2a6 100644 --- a/polkadot/runtime/parachains/src/paras/mod.rs +++ b/polkadot/runtime/parachains/src/paras/mod.rs @@ -135,7 +135,7 @@ use serde::{Deserialize, Serialize}; pub use crate::Origin as ParachainOrigin; #[cfg(feature = "runtime-benchmarks")] -pub(crate) mod benchmarking; +pub mod benchmarking; #[cfg(test)] pub(crate) mod tests; @@ -1222,6 +1222,15 @@ const INVALID_TX_BAD_VALIDATOR_IDX: u8 = 1; const INVALID_TX_BAD_SUBJECT: u8 = 2; const INVALID_TX_DOUBLE_VOTE: u8 = 3; +/// This is intermediate "fix" for this issue: +/// +/// +/// It does not actually fix it, but makes the worst case better. Without that limit someone +/// could completely DoS the relay chain by registering a ridiculously high amount of paras. +/// With this limit the same attack could lead to some parachains ceasing to being able to +/// communicate via offchain XCMP. Snowbridge will still work as it only cares about `BridgeHub`. +pub const MAX_PARA_HEADS: usize = 1024; + impl Pallet { /// This is a call to schedule code upgrades for parachains which is safe to be called /// outside of this module. That means this function does all checks necessary to ensure @@ -1291,6 +1300,16 @@ impl Pallet { }) } + /// Get a list of the first [`MAX_PARA_HEADS`] para heads sorted by para_id. + /// This method is likely to be removed in the future. + pub fn sorted_para_heads() -> Vec<(u32, Vec)> { + let mut heads: Vec<(u32, Vec)> = + Heads::::iter().map(|(id, head)| (id.into(), head.0)).collect(); + heads.sort_by_key(|(id, _)| *id); + heads.truncate(MAX_PARA_HEADS); + heads + } + // Apply all para actions queued for the given session index. // // The actions to take are based on the lifecycle of of the paras. diff --git a/polkadot/runtime/rococo/Cargo.toml b/polkadot/runtime/rococo/Cargo.toml index f93a3ad6575..50970965e11 100644 --- a/polkadot/runtime/rococo/Cargo.toml +++ b/polkadot/runtime/rococo/Cargo.toml @@ -226,6 +226,7 @@ runtime-benchmarks = [ "pallet-asset-rate/runtime-benchmarks", "pallet-babe/runtime-benchmarks", "pallet-balances/runtime-benchmarks", + "pallet-beefy-mmr/runtime-benchmarks", "pallet-bounties/runtime-benchmarks", "pallet-child-bounties/runtime-benchmarks", "pallet-collective/runtime-benchmarks", @@ -330,7 +331,10 @@ metadata-hash = ["substrate-wasm-builder/metadata-hash"] # Set timing constants (e.g. session period) to faster versions to speed up testing. fast-runtime = ["rococo-runtime-constants/fast-runtime"] -runtime-metrics = ["polkadot-runtime-parachains/runtime-metrics", "sp-io/with-tracing"] +runtime-metrics = [ + "polkadot-runtime-parachains/runtime-metrics", + "sp-io/with-tracing", +] # A feature that should be enabled when the runtime should be built for on-chain # deployment. This will disable stuff that shouldn't be part of the on-chain wasm diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs index 5adffbd7422..c7da339b981 100644 --- a/polkadot/runtime/rococo/src/lib.rs +++ b/polkadot/runtime/rococo/src/lib.rs @@ -1307,9 +1307,11 @@ impl pallet_mmr::Config for Runtime { const INDEXING_PREFIX: &'static [u8] = mmr::INDEXING_PREFIX; type Hashing = Keccak256; type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; - type WeightInfo = (); type LeafData = pallet_beefy_mmr::Pallet; type BlockHashProvider = pallet_mmr::DefaultBlockHashProvider; + type WeightInfo = weights::pallet_mmr::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = parachains_paras::benchmarking::mmr_setup::MmrSetup; } parameter_types! { @@ -1319,13 +1321,8 @@ parameter_types! { pub struct ParaHeadsRootProvider; impl BeefyDataProvider for ParaHeadsRootProvider { fn extra_data() -> H256 { - let mut para_heads: Vec<(u32, Vec)> = parachains_paras::Parachains::::get() - .into_iter() - .filter_map(|id| { - parachains_paras::Heads::::get(&id).map(|head| (id.into(), head.0)) - }) - .collect(); - para_heads.sort(); + let para_heads: Vec<(u32, Vec)> = + parachains_paras::Pallet::::sorted_para_heads(); binary_merkle_tree::merkle_root::( para_heads.into_iter().map(|pair| pair.encode()), ) @@ -1746,6 +1743,7 @@ mod benches { [pallet_identity, Identity] [pallet_indices, Indices] [pallet_message_queue, MessageQueue] + [pallet_mmr, Mmr] [pallet_multisig, Multisig] [pallet_parameters, Parameters] [pallet_preimage, Preimage] diff --git a/polkadot/runtime/rococo/src/weights/mod.rs b/polkadot/runtime/rococo/src/weights/mod.rs index 3c6845dfb43..c9204cc944f 100644 --- a/polkadot/runtime/rococo/src/weights/mod.rs +++ b/polkadot/runtime/rococo/src/weights/mod.rs @@ -25,6 +25,7 @@ pub mod pallet_conviction_voting; pub mod pallet_identity; pub mod pallet_indices; pub mod pallet_message_queue; +pub mod pallet_mmr; pub mod pallet_multisig; pub mod pallet_nis; pub mod pallet_parameters; diff --git a/polkadot/runtime/rococo/src/weights/pallet_mmr.rs b/polkadot/runtime/rococo/src/weights/pallet_mmr.rs new file mode 100644 index 00000000000..361bfc7a661 --- /dev/null +++ b/polkadot/runtime/rococo/src/weights/pallet_mmr.rs @@ -0,0 +1,77 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Autogenerated weights for `pallet_mmr` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-15, STEPS: `5`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/testnet/polkadot +// benchmark +// pallet +// --steps=5 +// --repeat=1 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet_mmr +// --chain=westend-dev +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/westend/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_mmr`. +pub struct WeightInfo(PhantomData); +impl pallet_mmr::WeightInfo for WeightInfo { + /// Storage: `Mmr::NumberOfLeaves` (r:1 w:1) + /// Proof: `Mmr::NumberOfLeaves` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `System::ParentHash` (r:1 w:0) + /// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `Paras::Heads` (r:2049 w:0) + /// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `BeefyMmrLeaf::BeefyNextAuthorities` (r:1 w:0) + /// Proof: `BeefyMmrLeaf::BeefyNextAuthorities` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Mmr::Nodes` (r:0 w:1000) + /// Proof: `Mmr::Nodes` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `Mmr::RootHash` (r:0 w:1) + /// Proof: `Mmr::RootHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// The range of component `x` is `[1, 1000]`. + fn on_initialize(x: u32) -> Weight { + // Proof Size summary in bytes: + // Measured: `2140817` + // Estimated: `7213082` + // Minimum execution time: 20_387_000_000 picoseconds. + Weight::from_parts(223_625_477_528, 0) + .saturating_add(Weight::from_parts(0, 7213082)) + // Standard Error: 310_550_970 + .saturating_add(Weight::from_parts(16_906_397_286, 0).saturating_mul(x.into())) + .saturating_add(T::DbWeight::get().reads(2053)) + .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(x.into()))) + } +} diff --git a/polkadot/runtime/westend/Cargo.toml b/polkadot/runtime/westend/Cargo.toml index 9e739f4c7fe..d2bafb33d2c 100644 --- a/polkadot/runtime/westend/Cargo.toml +++ b/polkadot/runtime/westend/Cargo.toml @@ -240,6 +240,7 @@ runtime-benchmarks = [ "pallet-babe/runtime-benchmarks", "pallet-bags-list/runtime-benchmarks", "pallet-balances/runtime-benchmarks", + "pallet-beefy-mmr/runtime-benchmarks", "pallet-collective/runtime-benchmarks", "pallet-conviction-voting/runtime-benchmarks", "pallet-delegated-staking/runtime-benchmarks", @@ -346,7 +347,10 @@ metadata-hash = ["substrate-wasm-builder/metadata-hash"] # Set timing constants (e.g. session period) to faster versions to speed up testing. fast-runtime = [] -runtime-metrics = ["polkadot-runtime-parachains/runtime-metrics", "sp-io/with-tracing"] +runtime-metrics = [ + "polkadot-runtime-parachains/runtime-metrics", + "sp-io/with-tracing", +] # A feature that should be enabled when the runtime should be built for on-chain # deployment. This will disable stuff that shouldn't be part of the on-chain wasm diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index f0b16e731d9..acd6f96878c 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -342,9 +342,11 @@ impl pallet_mmr::Config for Runtime { const INDEXING_PREFIX: &'static [u8] = mmr::INDEXING_PREFIX; type Hashing = Keccak256; type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; - type WeightInfo = (); type LeafData = pallet_beefy_mmr::Pallet; type BlockHashProvider = pallet_mmr::DefaultBlockHashProvider; + type WeightInfo = weights::pallet_mmr::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = parachains_paras::benchmarking::mmr_setup::MmrSetup; } /// MMR helper types. @@ -366,13 +368,8 @@ parameter_types! { pub struct ParaHeadsRootProvider; impl BeefyDataProvider for ParaHeadsRootProvider { fn extra_data() -> H256 { - let mut para_heads: Vec<(u32, Vec)> = parachains_paras::Parachains::::get() - .into_iter() - .filter_map(|id| { - parachains_paras::Heads::::get(&id).map(|head| (id.into(), head.0)) - }) - .collect(); - para_heads.sort_by_key(|k| k.0); + let para_heads: Vec<(u32, Vec)> = + parachains_paras::Pallet::::sorted_para_heads(); binary_merkle_tree::merkle_root::( para_heads.into_iter().map(|pair| pair.encode()), ) @@ -1755,6 +1752,7 @@ mod benches { [pallet_identity, Identity] [pallet_indices, Indices] [pallet_message_queue, MessageQueue] + [pallet_mmr, Mmr] [pallet_multisig, Multisig] [pallet_nomination_pools, NominationPoolsBench::] [pallet_offences, OffencesBench::] diff --git a/polkadot/runtime/westend/src/weights/mod.rs b/polkadot/runtime/westend/src/weights/mod.rs index f6a9008d718..c3ed2b5a75e 100644 --- a/polkadot/runtime/westend/src/weights/mod.rs +++ b/polkadot/runtime/westend/src/weights/mod.rs @@ -26,6 +26,7 @@ pub mod pallet_fast_unstake; pub mod pallet_identity; pub mod pallet_indices; pub mod pallet_message_queue; +pub mod pallet_mmr; pub mod pallet_multisig; pub mod pallet_nomination_pools; pub mod pallet_preimage; diff --git a/polkadot/runtime/westend/src/weights/pallet_mmr.rs b/polkadot/runtime/westend/src/weights/pallet_mmr.rs new file mode 100644 index 00000000000..1a410e7fc46 --- /dev/null +++ b/polkadot/runtime/westend/src/weights/pallet_mmr.rs @@ -0,0 +1,76 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Autogenerated weights for `pallet_mmr` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-07-17, STEPS: `5`, REPEAT: `1`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `am1max.local`, CPU: `` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 + +// Executed Command: +// target/testnet/polkadot +// benchmark +// pallet +// --steps=5 +// --repeat=1 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --pallet=pallet_mmr +// --chain=westend-dev +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/westend/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_mmr`. +pub struct WeightInfo(PhantomData); +impl pallet_mmr::WeightInfo for WeightInfo { + /// Storage: `Mmr::NumberOfLeaves` (r:1 w:1) + /// Proof: `Mmr::NumberOfLeaves` (`max_values`: Some(1), `max_size`: Some(8), added: 503, mode: `MaxEncodedLen`) + /// Storage: `System::ParentHash` (r:1 w:0) + /// Proof: `System::ParentHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// Storage: `Paras::Heads` (r:1025 w:0) + /// Proof: `Paras::Heads` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `BeefyMmrLeaf::BeefyNextAuthorities` (r:1 w:0) + /// Proof: `BeefyMmrLeaf::BeefyNextAuthorities` (`max_values`: Some(1), `max_size`: Some(44), added: 539, mode: `MaxEncodedLen`) + /// Storage: `Mmr::Nodes` (r:8 w:4) + /// Proof: `Mmr::Nodes` (`max_values`: None, `max_size`: Some(40), added: 2515, mode: `MaxEncodedLen`) + /// Storage: `System::Digest` (r:1 w:1) + /// Proof: `System::Digest` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `Mmr::RootHash` (r:0 w:1) + /// Proof: `Mmr::RootHash` (`max_values`: Some(1), `max_size`: Some(32), added: 527, mode: `MaxEncodedLen`) + /// The range of component `x` is `[1, 1000]`. + fn on_initialize(x: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1071043 + x * (39 ±0)` + // Estimated: `3608787 + x * (39 ±6)` + // Minimum execution time: 11_102_000_000 picoseconds. + Weight::from_parts(21_772_042_215, 0) + .saturating_add(Weight::from_parts(0, 3608787)) + .saturating_add(T::DbWeight::get().reads(1031)) + .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(Weight::from_parts(0, 39).saturating_mul(x.into())) + } +} diff --git a/prdoc/pr_4751.prdoc b/prdoc/pr_4751.prdoc new file mode 100644 index 00000000000..5a2c4220908 --- /dev/null +++ b/prdoc/pr_4751.prdoc @@ -0,0 +1,22 @@ +title: "Use all parachain heads for BEEFY MMR extra data" + +doc: + - audience: Runtime Dev + description: | + Previously, the extra data in an MMR leaf nodes was only computed based on lease-based parachain heads. + This PR extends the extra data to include others, including on-demand parachain heads. + Currently, the number of heads is limited to the first 1024 heads sorted by para id. + +crates: + - name: polkadot-runtime-parachains + bump: minor + - name: rococo-runtime + bump: minor + - name: westend-runtime + bump: minor + - name: pallet-mmr + bump: major + - name: pallet-beefy-mmr + bump: minor + - name: polkadot-sdk + bump: minor diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index a1896325ee9..78c7bba6457 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -1605,6 +1605,8 @@ impl pallet_mmr::Config for Runtime { type OnNewRoot = pallet_beefy_mmr::DepositBeefyDigest; type BlockHashProvider = pallet_mmr::DefaultBlockHashProvider; type WeightInfo = (); + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); } parameter_types! { diff --git a/substrate/frame/beefy-mmr/Cargo.toml b/substrate/frame/beefy-mmr/Cargo.toml index 11a7b281e87..92e903af138 100644 --- a/substrate/frame/beefy-mmr/Cargo.toml +++ b/substrate/frame/beefy-mmr/Cargo.toml @@ -64,3 +64,10 @@ try-runtime = [ "pallet-session/try-runtime", "sp-runtime/try-runtime", ] +runtime-benchmarks = [ + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-mmr/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "sp-staking/runtime-benchmarks", +] diff --git a/substrate/frame/beefy-mmr/src/mock.rs b/substrate/frame/beefy-mmr/src/mock.rs index 0521bdabbe4..3adef4f32bf 100644 --- a/substrate/frame/beefy-mmr/src/mock.rs +++ b/substrate/frame/beefy-mmr/src/mock.rs @@ -93,6 +93,9 @@ impl pallet_mmr::Config for Test { type BlockHashProvider = pallet_mmr::DefaultBlockHashProvider; type WeightInfo = (); + + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); } impl pallet_beefy::Config for Test { diff --git a/substrate/frame/merkle-mountain-range/src/benchmarking.rs b/substrate/frame/merkle-mountain-range/src/benchmarking.rs index 9eb676a4ee4..07afd9529eb 100644 --- a/substrate/frame/merkle-mountain-range/src/benchmarking.rs +++ b/substrate/frame/merkle-mountain-range/src/benchmarking.rs @@ -28,10 +28,13 @@ benchmarks_instance_pallet! { let x in 1 .. 1_000; let leaves = x as NodeIndex; - }: { - for b in 0..leaves { - Pallet::::on_initialize((b as u32).into()); + + <>::BenchmarkHelper as BenchmarkHelper>::setup(); + for leaf in 0..(leaves - 1) { + Pallet::::on_initialize((leaf as u32).into()); } + }: { + Pallet::::on_initialize((leaves as u32 - 1).into()); } verify { assert_eq!(crate::NumberOfLeaves::::get(), leaves); } diff --git a/substrate/frame/merkle-mountain-range/src/default_weights.rs b/substrate/frame/merkle-mountain-range/src/default_weights.rs index 52e3f130383..b0ef0539018 100644 --- a/substrate/frame/merkle-mountain-range/src/default_weights.rs +++ b/substrate/frame/merkle-mountain-range/src/default_weights.rs @@ -24,7 +24,8 @@ use frame_support::weights::{ }; impl crate::WeightInfo for () { - fn on_initialize(peaks: u64) -> Weight { + fn on_initialize(peaks: u32) -> Weight { + let peaks = u64::from(peaks); // Reading the parent hash. let leaf_weight = DbWeight::get().reads(1); // Blake2 hash cost. diff --git a/substrate/frame/merkle-mountain-range/src/lib.rs b/substrate/frame/merkle-mountain-range/src/lib.rs index cacb33b5043..0ab44711bcf 100644 --- a/substrate/frame/merkle-mountain-range/src/lib.rs +++ b/substrate/frame/merkle-mountain-range/src/lib.rs @@ -124,7 +124,18 @@ impl BlockHashProvider, T::Hash> } pub trait WeightInfo { - fn on_initialize(peaks: NodeIndex) -> Weight; + fn on_initialize(peaks: u32) -> Weight; +} + +/// This trait decoples dependencies on pallets needed for benchmarking. +#[cfg(feature = "runtime-benchmarks")] +pub trait BenchmarkHelper { + fn setup(); +} + +#[cfg(feature = "runtime-benchmarks")] +impl BenchmarkHelper for () { + fn setup() {} } /// An MMR specific to the pallet. @@ -205,6 +216,10 @@ pub mod pallet { /// Weights for this pallet. type WeightInfo: WeightInfo; + + /// Benchmarking setup helper trait. + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper: BenchmarkHelper; } /// Latest MMR Root hash. @@ -238,14 +253,14 @@ pub mod pallet { // MMR push never fails, but better safe than sorry. if mmr.push(data).is_none() { log::error!(target: "runtime::mmr", "MMR push failed"); - return T::WeightInfo::on_initialize(peaks_before) + return T::WeightInfo::on_initialize(peaks_before as u32) } // Update the size, `mmr.finalize()` should also never fail. let (leaves, root) = match mmr.finalize() { Ok((leaves, root)) => (leaves, root), Err(e) => { log::error!(target: "runtime::mmr", "MMR finalize failed: {:?}", e); - return T::WeightInfo::on_initialize(peaks_before) + return T::WeightInfo::on_initialize(peaks_before as u32) }, }; >::on_new_root(&root); @@ -255,7 +270,7 @@ pub mod pallet { let peaks_after = sp_mmr_primitives::utils::NodesUtils::new(leaves).number_of_peaks(); - T::WeightInfo::on_initialize(peaks_before.max(peaks_after)) + T::WeightInfo::on_initialize(peaks_before.max(peaks_after) as u32) } } } diff --git a/substrate/frame/merkle-mountain-range/src/mock.rs b/substrate/frame/merkle-mountain-range/src/mock.rs index 8318b20e830..606719c6deb 100644 --- a/substrate/frame/merkle-mountain-range/src/mock.rs +++ b/substrate/frame/merkle-mountain-range/src/mock.rs @@ -46,6 +46,8 @@ impl Config for Test { type OnNewRoot = (); type BlockHashProvider = DefaultBlockHashProvider; type WeightInfo = (); + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkHelper = (); } #[derive(Encode, Decode, Clone, Default, Eq, PartialEq, Debug)] diff --git a/umbrella/Cargo.toml b/umbrella/Cargo.toml index 94ba09421d4..79e7c0c38ed 100644 --- a/umbrella/Cargo.toml +++ b/umbrella/Cargo.toml @@ -269,6 +269,7 @@ runtime-benchmarks = [ "pallet-babe?/runtime-benchmarks", "pallet-bags-list?/runtime-benchmarks", "pallet-balances?/runtime-benchmarks", + "pallet-beefy-mmr?/runtime-benchmarks", "pallet-bounties?/runtime-benchmarks", "pallet-bridge-grandpa?/runtime-benchmarks", "pallet-bridge-messages?/runtime-benchmarks", -- GitLab From 394ea70d2ad8d37b1a41854659d989e750758705 Mon Sep 17 00:00:00 2001 From: Ankan <10196091+Ank4n@users.noreply.github.com> Date: Fri, 19 Jul 2024 22:02:05 +0530 Subject: [PATCH 063/252] [NPoS] Some simple refactors to Delegate Staking (#4981) ## Changes - `fn update_payee` is renamed to `fn set_payee` in the trait `StakingInterface` since there is also a call `Staking::update_payee` which does something different, ie used for migrating deprecated `Controller` accounts. - `set_payee` does not re-dispatch, only mutates ledger. - Fix rustdocs for `NominationPools::join`. - Add an implementation note about why we cannot allow existing stakers to join/bond_extra into the pool. --- substrate/frame/delegated-staking/src/lib.rs | 7 ++++++- substrate/frame/delegated-staking/src/tests.rs | 6 +++--- substrate/frame/nomination-pools/src/lib.rs | 9 +++++++-- substrate/frame/nomination-pools/src/mock.rs | 2 +- substrate/frame/staking/src/pallet/impls.rs | 14 +++++++------- substrate/frame/staking/src/tests.rs | 8 ++++---- substrate/primitives/staking/src/lib.rs | 4 ++-- 7 files changed, 30 insertions(+), 20 deletions(-) diff --git a/substrate/frame/delegated-staking/src/lib.rs b/substrate/frame/delegated-staking/src/lib.rs index 61809dcb54e..8203f751330 100644 --- a/substrate/frame/delegated-staking/src/lib.rs +++ b/substrate/frame/delegated-staking/src/lib.rs @@ -411,6 +411,11 @@ pub mod pallet { Delegation::::can_delegate(&delegator, &agent), Error::::InvalidDelegation ); + + // Implementation note: Staking uses deprecated locks (similar to freeze) which are not + // mutually exclusive of holds. This means, if we allow delegating for existing stakers, + // already staked funds might be reused for delegation. We avoid that by just blocking + // this. ensure!(!Self::is_direct_staker(&delegator), Error::::AlreadyStaking); // ensure agent is sane. @@ -505,7 +510,7 @@ impl Pallet { Preservation::Expendable, )?; - T::CoreStaking::update_payee(who, reward_account)?; + T::CoreStaking::set_payee(who, reward_account)?; // delegate all transferred funds back to agent. Self::do_delegate(proxy_delegator, Agent::from(who.clone()), amount_to_transfer)?; diff --git a/substrate/frame/delegated-staking/src/tests.rs b/substrate/frame/delegated-staking/src/tests.rs index 385bb17ddad..ade0872dd39 100644 --- a/substrate/frame/delegated-staking/src/tests.rs +++ b/substrate/frame/delegated-staking/src/tests.rs @@ -573,14 +573,14 @@ mod staking_integration { 100 )); - // update_payee to self fails. + // set_payee to self fails. assert_noop!( - ::update_payee(&200, &200), + ::set_payee(&200, &200), StakingError::::RewardDestinationRestricted ); // passing correct reward destination works - assert_ok!(::update_payee(&200, &201)); + assert_ok!(::set_payee(&200, &201)); // amount is staked correctly assert!(eq_stake(200, 100, 100)); diff --git a/substrate/frame/nomination-pools/src/lib.rs b/substrate/frame/nomination-pools/src/lib.rs index 472f0affcc7..70ad06e2a4d 100644 --- a/substrate/frame/nomination-pools/src/lib.rs +++ b/substrate/frame/nomination-pools/src/lib.rs @@ -1985,8 +1985,13 @@ pub mod pallet { #[pallet::call] impl Pallet { - /// Stake funds with a pool. The amount to bond is transferred from the member to the - /// pools account and immediately increases the pools bond. + /// Stake funds with a pool. The amount to bond is transferred from the member to the pool + /// account and immediately increases the pools bond. + /// + /// The method of transferring the amount to the pool account is determined by + /// [`adapter::StakeStrategyType`]. If the pool is configured to use + /// [`adapter::StakeStrategyType::Delegate`], the funds remain in the account of + /// the `origin`, while the pool gains the right to use these funds for staking. /// /// # Note /// diff --git a/substrate/frame/nomination-pools/src/mock.rs b/substrate/frame/nomination-pools/src/mock.rs index 6c0082073f6..cc942039760 100644 --- a/substrate/frame/nomination-pools/src/mock.rs +++ b/substrate/frame/nomination-pools/src/mock.rs @@ -136,7 +136,7 @@ impl sp_staking::StakingInterface for StakingMock { Ok(()) } - fn update_payee(_stash: &Self::AccountId, _reward_acc: &Self::AccountId) -> DispatchResult { + fn set_payee(_stash: &Self::AccountId, _reward_acc: &Self::AccountId) -> DispatchResult { unimplemented!("method currently not used in testing") } diff --git a/substrate/frame/staking/src/pallet/impls.rs b/substrate/frame/staking/src/pallet/impls.rs index b19a127d13c..2df3bc084eb 100644 --- a/substrate/frame/staking/src/pallet/impls.rs +++ b/substrate/frame/staking/src/pallet/impls.rs @@ -1779,7 +1779,7 @@ impl StakingInterface for Pallet { .map(|_| ()) } - fn update_payee(stash: &Self::AccountId, reward_acc: &Self::AccountId) -> DispatchResult { + fn set_payee(stash: &Self::AccountId, reward_acc: &Self::AccountId) -> DispatchResult { // Since virtual stakers are not allowed to compound their rewards as this pallet does not // manage their locks, we do not allow reward account to be set same as stash. For // external pallets that manage the virtual bond, they can claim rewards and re-bond them. @@ -1788,12 +1788,12 @@ impl StakingInterface for Pallet { Error::::RewardDestinationRestricted ); - // since controller is deprecated and this function is never used for old ledgers with - // distinct controllers, we can safely assume that stash is the controller. - Self::set_payee( - RawOrigin::Signed(stash.clone()).into(), - RewardDestination::Account(reward_acc.clone()), - ) + let ledger = Self::ledger(Stash(stash.clone()))?; + let _ = ledger + .set_payee(RewardDestination::Account(reward_acc.clone())) + .defensive_proof("ledger was retrieved from storage, thus its bonded; qed.")?; + + Ok(()) } fn chill(who: &Self::AccountId) -> DispatchResult { diff --git a/substrate/frame/staking/src/tests.rs b/substrate/frame/staking/src/tests.rs index c35e5e8a06c..0b6aad4a1b0 100644 --- a/substrate/frame/staking/src/tests.rs +++ b/substrate/frame/staking/src/tests.rs @@ -7157,7 +7157,7 @@ mod staking_unchecked { // cannot set via set_payee as well. assert_noop!( - ::update_payee(&10, &10), + ::set_payee(&10, &10), Error::::RewardDestinationRestricted ); }); @@ -7219,7 +7219,7 @@ mod staking_unchecked { // migrate them to virtual staker ::migrate_to_virtual_staker(&200); // payee needs to be updated to a non-stash account. - assert_ok!(::update_payee(&200, &201)); + assert_ok!(::set_payee(&200, &201)); // ensure the balance is not locked anymore assert_eq!(Balances::balance_locked(crate::STAKING_ID, &200), 0); @@ -7246,7 +7246,7 @@ mod staking_unchecked { // make 101 a virtual nominator ::migrate_to_virtual_staker(&101); // set payee different to self. - assert_ok!(::update_payee(&101, &102)); + assert_ok!(::set_payee(&101, &102)); // cache values let nominator_stake = Staking::ledger(101.into()).unwrap().active; @@ -7321,7 +7321,7 @@ mod staking_unchecked { // make 101 a virtual nominator ::migrate_to_virtual_staker(&101); // set payee different to self. - assert_ok!(::update_payee(&101, &102)); + assert_ok!(::set_payee(&101, &102)); // cache values let validator_balance = Balances::free_balance(&11); diff --git a/substrate/primitives/staking/src/lib.rs b/substrate/primitives/staking/src/lib.rs index c1cf7f2778f..03c1af50240 100644 --- a/substrate/primitives/staking/src/lib.rs +++ b/substrate/primitives/staking/src/lib.rs @@ -254,8 +254,8 @@ pub trait StakingInterface { /// schedules have reached their unlocking era should allow more calls to this function. fn unbond(stash: &Self::AccountId, value: Self::Balance) -> DispatchResult; - /// Update the reward destination for the ledger associated with the stash. - fn update_payee(stash: &Self::AccountId, reward_acc: &Self::AccountId) -> DispatchResult; + /// Set the reward destination for the ledger associated with the stash. + fn set_payee(stash: &Self::AccountId, reward_acc: &Self::AccountId) -> DispatchResult; /// Unlock any funds schedule to unlock before or at the current era. /// -- GitLab From d649746e840ead01898957329b5f63ddad6e032c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20K=C3=B6cher?= Date: Fri, 19 Jul 2024 23:23:06 +0200 Subject: [PATCH 064/252] Implements `PoV` export and local validation (#4640) This pull requests adds a new CLI flag to `polkadot-parachains` `--export-pov-to-path`. This CLI flag will instruct the node to export any `PoV` that it build locally to export to the given folder. Then these `PoV` files can be validated using the introduced `cumulus-pov-validator`. The combination of export and validation can be used for debugging parachain validation issues that may happen on the relay chain. --- Cargo.lock | 22 ++- Cargo.toml | 1 + cumulus/bin/pov-validator/Cargo.toml | 26 +++ cumulus/bin/pov-validator/src/main.rs | 154 ++++++++++++++++++ .../consensus/aura/src/collators/lookahead.rs | 117 ++++++++++++- cumulus/polkadot-parachain/src/cli.rs | 12 +- cumulus/polkadot-parachain/src/command.rs | 25 ++- cumulus/polkadot-parachain/src/common/mod.rs | 4 + cumulus/polkadot-parachain/src/service.rs | 64 +++++--- prdoc/pr_4640.prdoc | 20 +++ 10 files changed, 398 insertions(+), 47 deletions(-) create mode 100644 cumulus/bin/pov-validator/Cargo.toml create mode 100644 cumulus/bin/pov-validator/src/main.rs create mode 100644 prdoc/pr_4640.prdoc diff --git a/Cargo.lock b/Cargo.lock index 2bb1a758baf..54b49e0e3f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -262,9 +262,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.81" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "approx" @@ -4209,6 +4209,24 @@ dependencies = [ "staging-xcm", ] +[[package]] +name = "cumulus-pov-validator" +version = "0.1.0" +dependencies = [ + "anyhow", + "clap 4.5.9", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-parachain-primitives", + "polkadot-primitives", + "sc-executor", + "sp-core", + "sp-io", + "sp-maybe-compressed-blob", + "tracing", + "tracing-subscriber 0.3.18", +] + [[package]] name = "cumulus-primitives-aura" version = "0.7.0" diff --git a/Cargo.toml b/Cargo.toml index ed32ba0a24f..71e55433621 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -61,6 +61,7 @@ members = [ "bridges/snowbridge/primitives/router", "bridges/snowbridge/runtime/runtime-common", "bridges/snowbridge/runtime/test-common", + "cumulus/bin/pov-validator", "cumulus/client/cli", "cumulus/client/collator", "cumulus/client/consensus/aura", diff --git a/cumulus/bin/pov-validator/Cargo.toml b/cumulus/bin/pov-validator/Cargo.toml new file mode 100644 index 00000000000..9be92960ad7 --- /dev/null +++ b/cumulus/bin/pov-validator/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "cumulus-pov-validator" +version = "0.1.0" +authors.workspace = true +edition.workspace = true +repository.workspace = true +license.workspace = true +homepage.workspace = true +description = "A tool for validating PoVs locally" + +[dependencies] +codec.workspace = true +clap = { workspace = true, features = ["derive"] } +sc-executor.workspace = true +sp-io.workspace = true +sp-core.workspace = true +sp-maybe-compressed-blob.workspace = true +polkadot-node-primitives.workspace = true +polkadot-parachain-primitives.workspace = true +polkadot-primitives.workspace = true +anyhow.workspace = true +tracing.workspace = true +tracing-subscriber.workspace = true + +[lints] +workspace = true diff --git a/cumulus/bin/pov-validator/src/main.rs b/cumulus/bin/pov-validator/src/main.rs new file mode 100644 index 00000000000..1c08f218f6b --- /dev/null +++ b/cumulus/bin/pov-validator/src/main.rs @@ -0,0 +1,154 @@ +// This file is part of Cumulus. + +// Copyright (C) Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program 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. + +// This program 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 this program. If not, see . + +use clap::Parser; +use codec::{Decode, Encode}; +use polkadot_node_primitives::{BlockData, PoV, POV_BOMB_LIMIT, VALIDATION_CODE_BOMB_LIMIT}; +use polkadot_parachain_primitives::primitives::ValidationParams; +use polkadot_primitives::{BlockNumber as RBlockNumber, Hash as RHash, HeadData}; +use sc_executor::WasmExecutor; +use sp_core::traits::{CallContext, CodeExecutor, RuntimeCode, WrappedRuntimeCode}; +use std::{fs, path::PathBuf, time::Instant}; +use tracing::level_filters::LevelFilter; + +/// Tool for validating a `PoV` locally. +#[derive(Parser)] +struct Cli { + /// The path to the validation code that should be used to validate the `PoV`. + /// + /// The validation code can either be downloaded from the relay chain that the parachain is + /// connected to or by building the runtime manually to obtain the WASM binary. + #[arg(long)] + validation_code: PathBuf, + + /// The path to the `PoV` to validate. + /// + /// The `PoV`'s can be obtained by running `polkadot-parachains --collator --chain YOUR_CHAIN + /// --export-pov-to-path PATH_TO_EXPORT` and then choose one of the exported `PoV`'s. + #[arg(long)] + pov: PathBuf, +} + +fn main() -> anyhow::Result<()> { + let _ = tracing_subscriber::fmt() + .with_env_filter( + tracing_subscriber::EnvFilter::from_default_env() + .add_directive(LevelFilter::INFO.into()), + ) + .with_writer(std::io::stderr) + .try_init(); + + let cli = Cli::parse(); + + let validation_code = fs::read(&cli.validation_code).map_err(|error| { + tracing::error!(%error, path = %cli.validation_code.display(), "Failed to read validation code"); + anyhow::anyhow!("Failed to read validation code") + })?; + + let validation_code = + sp_maybe_compressed_blob::decompress(&validation_code, VALIDATION_CODE_BOMB_LIMIT) + .map_err(|error| { + tracing::error!(%error, "Failed to decompress validation code"); + anyhow::anyhow!("Failed to decompress validation code") + })?; + + let pov_file = fs::read(&cli.pov).map_err(|error| { + tracing::error!(%error, path = %cli.pov.display(), "Failed to read PoV"); + anyhow::anyhow!("Failed to read PoV") + })?; + + let executor = WasmExecutor::::builder() + .with_allow_missing_host_functions(true) + .build(); + + let runtime_code = RuntimeCode { + code_fetcher: &WrappedRuntimeCode(validation_code.into()), + heap_pages: None, + // The hash is used for caching, which we need here, but we only use one wasm file. So, the + // actual hash is not that important. + hash: vec![1, 2, 3], + }; + + // We are calling `Core_version` to get the wasm file compiled. We don't care about the result. + let _ = executor + .call( + &mut sp_io::TestExternalities::default().ext(), + &runtime_code, + "Core_version", + &[], + CallContext::Offchain, + ) + .0; + + let pov_file_ptr = &mut &pov_file[..]; + let pov = PoV::decode(pov_file_ptr).map_err(|error| { + tracing::error!(%error, "Failed to decode `PoV`"); + anyhow::anyhow!("Failed to decode `PoV`") + })?; + let head_data = HeadData::decode(pov_file_ptr).map_err(|error| { + tracing::error!(%error, "Failed to `HeadData`"); + anyhow::anyhow!("Failed to decode `HeadData`") + })?; + let relay_parent_storage_root = RHash::decode(pov_file_ptr).map_err(|error| { + tracing::error!(%error, "Failed to relay storage root"); + anyhow::anyhow!("Failed to decode relay storage root") + })?; + let relay_parent_number = RBlockNumber::decode(pov_file_ptr).map_err(|error| { + tracing::error!(%error, "Failed to relay block number"); + anyhow::anyhow!("Failed to decode relay block number") + })?; + + let pov = sp_maybe_compressed_blob::decompress(&pov.block_data.0, POV_BOMB_LIMIT).map_err( + |error| { + tracing::error!(%error, "Failed to decompress `PoV`"); + anyhow::anyhow!("Failed to decompress `PoV`") + }, + )?; + + let validation_params = ValidationParams { + relay_parent_number, + relay_parent_storage_root, + parent_head: head_data, + block_data: BlockData(pov.into()), + }; + + tracing::info!("Starting validation"); + + let start = Instant::now(); + + let res = executor + .call( + &mut sp_io::TestExternalities::default().ext(), + &runtime_code, + "validate_block", + &validation_params.encode(), + CallContext::Offchain, + ) + .0; + + let duration = start.elapsed(); + + match res { + Ok(_) => tracing::info!("Validation was successful"), + Err(error) => tracing::error!(%error, "Validation failed"), + } + + tracing::info!("Validation took {}ms", duration.as_millis()); + + Ok(()) +} diff --git a/cumulus/client/consensus/aura/src/collators/lookahead.rs b/cumulus/client/consensus/aura/src/collators/lookahead.rs index 749b1311239..02d60538a73 100644 --- a/cumulus/client/consensus/aura/src/collators/lookahead.rs +++ b/cumulus/client/consensus/aura/src/collators/lookahead.rs @@ -39,10 +39,13 @@ use cumulus_primitives_aura::AuraUnincludedSegmentApi; use cumulus_primitives_core::{CollectCollationInfo, PersistedValidationData}; use cumulus_relay_chain_interface::RelayChainInterface; -use polkadot_node_primitives::SubmitCollationParams; +use polkadot_node_primitives::{PoV, SubmitCollationParams}; use polkadot_node_subsystem::messages::CollationGenerationMessage; use polkadot_overseer::Handle as OverseerHandle; -use polkadot_primitives::{CollatorPair, Id as ParaId, OccupiedCoreAssumption}; +use polkadot_primitives::{ + BlockNumber as RBlockNumber, CollatorPair, Hash as RHash, HeadData, Id as ParaId, + OccupiedCoreAssumption, +}; use futures::prelude::*; use sc_client_api::{backend::AuxStore, BlockBackend, BlockOf}; @@ -54,10 +57,49 @@ use sp_consensus_aura::{AuraApi, Slot}; use sp_core::crypto::Pair; use sp_inherents::CreateInherentDataProviders; use sp_keystore::KeystorePtr; -use sp_runtime::traits::{Block as BlockT, Header as HeaderT, Member}; -use std::{sync::Arc, time::Duration}; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT, Member, NumberFor}; +use std::{ + fs::{self, File}, + path::PathBuf, + sync::Arc, + time::Duration, +}; -use crate::collator::{self as collator_util}; +use crate::{collator as collator_util, LOG_TARGET}; + +/// Export the given `pov` to the file system at `path`. +/// +/// The file will be named `block_hash_block_number.pov`. +/// +/// The `parent_header`, `relay_parent_storage_root` and `relay_parent_number` will also be +/// stored in the file alongside the `pov`. This enables stateless validation of the `pov`. +fn export_pov_to_path( + path: PathBuf, + pov: PoV, + block_hash: Block::Hash, + block_number: NumberFor, + parent_header: Block::Header, + relay_parent_storage_root: RHash, + relay_parent_number: RBlockNumber, +) { + if let Err(error) = fs::create_dir_all(&path) { + tracing::error!(target: LOG_TARGET, %error, path = %path.display(), "Failed to create PoV export directory"); + return + } + + let mut file = match File::create(path.join(format!("{block_hash:?}_{block_number}.pov"))) { + Ok(f) => f, + Err(error) => { + tracing::error!(target: LOG_TARGET, %error, "Failed to export PoV."); + return + }, + }; + + pov.encode_to(&mut file); + HeadData(parent_header.encode()).encode_to(&mut file); + relay_parent_storage_root.encode_to(&mut file); + relay_parent_number.encode_to(&mut file); +} /// Parameters for [`run`]. pub struct Params { @@ -97,7 +139,58 @@ pub struct Params { /// Run async-backing-friendly Aura. pub fn run( - mut params: Params, + params: Params, +) -> impl Future + Send + 'static +where + Block: BlockT, + Client: ProvideRuntimeApi + + BlockOf + + AuxStore + + HeaderBackend + + BlockBackend + + Send + + Sync + + 'static, + Client::Api: + AuraApi + CollectCollationInfo + AuraUnincludedSegmentApi, + Backend: sc_client_api::Backend + 'static, + RClient: RelayChainInterface + Clone + 'static, + CIDP: CreateInherentDataProviders + 'static, + CIDP::InherentDataProviders: Send, + BI: BlockImport + ParachainBlockImportMarker + Send + Sync + 'static, + Proposer: ProposerInterface + Send + Sync + 'static, + CS: CollatorServiceInterface + Send + Sync + 'static, + CHP: consensus_common::ValidationCodeHashProvider + Send + 'static, + P: Pair, + P::Public: AppPublic + Member + Codec, + P::Signature: TryFrom> + Member + Codec, +{ + run_with_export::<_, P, _, _, _, _, _, _, _, _>(ParamsWithExport { params, export_pov: None }) +} + +/// Parameters for [`run_with_export`]. +pub struct ParamsWithExport { + /// The parameters. + pub params: Params, + /// When set, the collator will export every produced `POV` to this folder. + pub export_pov: Option, +} + +/// Run async-backing-friendly Aura. +/// +/// This is exactly the same as [`run`], but it supports the optional export of each produced `POV` +/// to the file system. +pub fn run_with_export( + ParamsWithExport { mut params, export_pov }: ParamsWithExport< + BI, + CIDP, + Client, + Backend, + RClient, + CHP, + Proposer, + CS, + >, ) -> impl Future + Send + 'static where Block: BlockT, @@ -339,6 +432,18 @@ where // and provides sybil-resistance, as it should. collator.collator_service().announce_block(new_block_hash, None); + if let Some(ref export_pov) = export_pov { + export_pov_to_path::( + export_pov.clone(), + collation.proof_of_validity.clone().into_compressed(), + new_block_hash, + *block_data.header().number(), + parent_header.clone(), + *relay_parent_header.state_root(), + *relay_parent_header.number(), + ); + } + // Send a submit-collation message to the collation generation subsystem, // which then distributes this to validators. // diff --git a/cumulus/polkadot-parachain/src/cli.rs b/cumulus/polkadot-parachain/src/cli.rs index d06354dda22..a5fe33dffc9 100644 --- a/cumulus/polkadot-parachain/src/cli.rs +++ b/cumulus/polkadot-parachain/src/cli.rs @@ -90,6 +90,13 @@ pub struct Cli { #[arg(long)] pub no_hardware_benchmarks: bool, + /// Export all `PoVs` build by this collator to the given folder. + /// + /// This is useful for debugging issues that are occurring while validating these `PoVs` on the + /// relay chain. + #[arg(long)] + pub export_pov_to_path: Option, + /// Relay chain arguments #[arg(raw = true)] pub relay_chain_args: Vec, @@ -97,7 +104,10 @@ pub struct Cli { impl Cli { pub(crate) fn node_extra_args(&self) -> NodeExtraArgs { - NodeExtraArgs { use_slot_based_consensus: self.experimental_use_slot_based } + NodeExtraArgs { + use_slot_based_consensus: self.experimental_use_slot_based, + export_pov: self.export_pov_to_path.clone(), + } } } diff --git a/cumulus/polkadot-parachain/src/command.rs b/cumulus/polkadot-parachain/src/command.rs index fcf6c06f422..e867a41bee2 100644 --- a/cumulus/polkadot-parachain/src/command.rs +++ b/cumulus/polkadot-parachain/src/command.rs @@ -17,8 +17,7 @@ #[cfg(feature = "runtime-benchmarks")] use crate::service::Block; use crate::{ - chain_spec, - chain_spec::GenericChainSpec, + chain_spec::{self, GenericChainSpec}, cli::{Cli, RelayChainCli, Subcommand}, common::NodeExtraArgs, fake_runtime_api::{ @@ -388,7 +387,7 @@ impl SubstrateCli for RelayChainCli { fn new_node_spec( config: &sc_service::Configuration, - extra_args: NodeExtraArgs, + extra_args: &NodeExtraArgs, ) -> std::result::Result, sc_cli::Error> { Ok(match config.chain_spec.runtime()? { Runtime::AssetHubPolkadot => @@ -421,35 +420,35 @@ pub fn run() -> Result<()> { Some(Subcommand::CheckBlock(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let node = new_node_spec(&config, cli.node_extra_args())?; + let node = new_node_spec(&config, &cli.node_extra_args())?; node.prepare_check_block_cmd(config, cmd) }) }, Some(Subcommand::ExportBlocks(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let node = new_node_spec(&config, cli.node_extra_args())?; + let node = new_node_spec(&config, &cli.node_extra_args())?; node.prepare_export_blocks_cmd(config, cmd) }) }, Some(Subcommand::ExportState(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let node = new_node_spec(&config, cli.node_extra_args())?; + let node = new_node_spec(&config, &cli.node_extra_args())?; node.prepare_export_state_cmd(config, cmd) }) }, Some(Subcommand::ImportBlocks(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let node = new_node_spec(&config, cli.node_extra_args())?; + let node = new_node_spec(&config, &cli.node_extra_args())?; node.prepare_import_blocks_cmd(config, cmd) }) }, Some(Subcommand::Revert(cmd)) => { let runner = cli.create_runner(cmd)?; runner.async_run(|config| { - let node = new_node_spec(&config, cli.node_extra_args())?; + let node = new_node_spec(&config, &cli.node_extra_args())?; node.prepare_revert_cmd(config, cmd) }) }, @@ -471,7 +470,7 @@ pub fn run() -> Result<()> { Some(Subcommand::ExportGenesisHead(cmd)) => { let runner = cli.create_runner(cmd)?; runner.sync_run(|config| { - let node = new_node_spec(&config, cli.node_extra_args())?; + let node = new_node_spec(&config, &cli.node_extra_args())?; node.run_export_genesis_head_cmd(config, cmd) }) }, @@ -494,12 +493,12 @@ pub fn run() -> Result<()> { )) }), BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { - let node = new_node_spec(&config, cli.node_extra_args())?; + let node = new_node_spec(&config, &cli.node_extra_args())?; node.run_benchmark_block_cmd(config, cmd) }), #[cfg(feature = "runtime-benchmarks")] BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { - let node = new_node_spec(&config, cli.node_extra_args())?; + let node = new_node_spec(&config, &cli.node_extra_args())?; node.run_benchmark_storage_cmd(config, cmd) }), BenchmarkCmd::Machine(cmd) => @@ -607,9 +606,9 @@ async fn start_node( extra_args: NodeExtraArgs, hwbench: Option, ) -> Result { - let node_spec = new_node_spec(&config, extra_args)?; + let node_spec = new_node_spec(&config, &extra_args)?; node_spec - .start_node(config, polkadot_config, collator_options, id, hwbench) + .start_node(config, polkadot_config, collator_options, id, hwbench, extra_args) .await .map_err(Into::into) } diff --git a/cumulus/polkadot-parachain/src/common/mod.rs b/cumulus/polkadot-parachain/src/common/mod.rs index 9f5febafe30..d7718931b87 100644 --- a/cumulus/polkadot-parachain/src/common/mod.rs +++ b/cumulus/polkadot-parachain/src/common/mod.rs @@ -26,6 +26,7 @@ use sp_block_builder::BlockBuilder; use sp_runtime::traits::Block as BlockT; use sp_session::SessionKeys; use sp_transaction_pool::runtime_api::TaggedTransactionQueue; +use std::path::PathBuf; /// Convenience trait that defines the basic bounds for the `RuntimeApi` of a parachain node. pub trait NodeRuntimeApi: @@ -69,4 +70,7 @@ where /// Extra args that are passed when creating a new node spec. pub struct NodeExtraArgs { pub use_slot_based_consensus: bool, + + /// If set, each `PoV` build by the node will be exported to this folder. + pub export_pov: Option, } diff --git a/cumulus/polkadot-parachain/src/service.rs b/cumulus/polkadot-parachain/src/service.rs index 6a6cf15635e..ef01f7f1f6a 100644 --- a/cumulus/polkadot-parachain/src/service.rs +++ b/cumulus/polkadot-parachain/src/service.rs @@ -125,6 +125,7 @@ where overseer_handle: OverseerHandle, announce_block: Arc>) + Send + Sync>, backend: Arc, + node_extra_args: NodeExtraArgs, ) -> Result<(), sc_service::Error>; } @@ -226,6 +227,7 @@ pub(crate) trait NodeSpec { collator_options: CollatorOptions, para_id: ParaId, hwbench: Option, + node_extra_args: NodeExtraArgs, ) -> Pin>>> where Net: NetworkBackend, @@ -361,6 +363,7 @@ pub(crate) trait NodeSpec { overseer_handle, announce_block, backend.clone(), + node_extra_args, )?; } @@ -524,7 +527,7 @@ where const SYBIL_RESISTANCE: CollatorSybilResistance = CollatorSybilResistance::Resistant; } -pub fn new_aura_node_spec(extra_args: NodeExtraArgs) -> Box +pub fn new_aura_node_spec(extra_args: &NodeExtraArgs) -> Box where RuntimeApi: ConstructNodeRuntimeApi>, RuntimeApi::RuntimeApi: AuraRuntimeApi @@ -567,6 +570,7 @@ impl StartConsensus for StartRelayChainConsensus { overseer_handle: OverseerHandle, announce_block: Arc>) + Send + Sync>, _backend: Arc, + _node_extra_args: NodeExtraArgs, ) -> Result<(), Error> { let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( task_manager.spawn_handle(), @@ -691,6 +695,7 @@ where _overseer_handle: OverseerHandle, announce_block: Arc>) + Send + Sync>, backend: Arc, + _node_extra_args: NodeExtraArgs, ) -> Result<(), Error> { let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( task_manager.spawn_handle(), @@ -786,6 +791,7 @@ where overseer_handle: OverseerHandle, announce_block: Arc>) + Send + Sync>, backend: Arc, + node_extra_args: NodeExtraArgs, ) -> Result<(), Error> { let proposer_factory = sc_basic_authorship::ProposerFactory::with_proof_recording( task_manager.spawn_handle(), @@ -802,33 +808,37 @@ where client.clone(), ); - let params = AuraParams { - create_inherent_data_providers: move |_, ()| async move { Ok(()) }, - block_import, - para_client: client.clone(), - para_backend: backend, - relay_client: relay_chain_interface, - code_hash_provider: { - let client = client.clone(); - move |block_hash| { - client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) - } + let params = aura::ParamsWithExport { + export_pov: node_extra_args.export_pov, + params: AuraParams { + create_inherent_data_providers: move |_, ()| async move { Ok(()) }, + block_import, + para_client: client.clone(), + para_backend: backend, + relay_client: relay_chain_interface, + code_hash_provider: { + let client = client.clone(); + move |block_hash| { + client.code_at(block_hash).ok().map(|c| ValidationCode::from(c).hash()) + } + }, + keystore, + collator_key, + para_id, + overseer_handle, + relay_chain_slot_duration, + proposer: Proposer::new(proposer_factory), + collator_service, + authoring_duration: Duration::from_millis(1500), + reinitialize: false, }, - keystore, - collator_key, - para_id, - overseer_handle, - relay_chain_slot_duration, - proposer: Proposer::new(proposer_factory), - collator_service, - authoring_duration: Duration::from_millis(1500), - reinitialize: false, }; - let fut = async move { - wait_for_aura(client).await; - aura::run::::Pair, _, _, _, _, _, _, _, _>(params).await; - }; + let fut = + async move { + wait_for_aura(client).await; + aura::run_with_export::::Pair, _, _, _, _, _, _, _, _>(params).await; + }; task_manager.spawn_essential_handle().spawn("aura", None, fut); Ok(()) @@ -910,6 +920,7 @@ pub(crate) trait DynNodeSpec { collator_options: CollatorOptions, para_id: ParaId, hwbench: Option, + node_extra_args: NodeExtraArgs, ) -> Pin>>>; } @@ -1000,6 +1011,7 @@ where collator_options: CollatorOptions, para_id: ParaId, hwbench: Option, + node_extra_args: NodeExtraArgs, ) -> Pin>>> { match parachain_config.network.network_backend { sc_network::config::NetworkBackendType::Libp2p => @@ -1009,6 +1021,7 @@ where collator_options, para_id, hwbench, + node_extra_args, ), sc_network::config::NetworkBackendType::Litep2p => ::start_node::( @@ -1017,6 +1030,7 @@ where collator_options, para_id, hwbench, + node_extra_args, ), } } diff --git a/prdoc/pr_4640.prdoc b/prdoc/pr_4640.prdoc new file mode 100644 index 00000000000..52abc8f4baa --- /dev/null +++ b/prdoc/pr_4640.prdoc @@ -0,0 +1,20 @@ +title: Introduce tool for validating PoVs locally + +doc: + - audience: + - Runtime Dev + - Node Dev + description: | + Introduces the `cumulus-pov-validator` for running PoVs locally. This can be helpful for debugging issues that are + only happening when the PoV gets validated on the relay chain or for example to profile the validation code. + Besides that the `polkadot-parachain` was extended with the CLI flag `--export-pov-to-path` to let a collator export + all its build PoV's to the given directory. These PoV's can then be feed into the `cumulus-pov-validator`. + +crates: + - name: polkadot-parachain-bin + bump: minor + - name: cumulus-client-consensus-aura + bump: minor + - name: cumulus-pov-validator + bump: patch + validate: false -- GitLab From 59e3315f7fd74b95e08e6409d1b3f53f6c2123f4 Mon Sep 17 00:00:00 2001 From: Parth Mittal <76661350+mittal-parth@users.noreply.github.com> Date: Sat, 20 Jul 2024 04:43:59 +0530 Subject: [PATCH 065/252] Balances Pallet: Emit events when TI is updated in currency impl (#4936) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description Previously, in the `Currency` impl, the implementation of `pallet_balances` was not emitting any instances of `Issued` and `Rescinded` events, even though the `Fungible` equivalent was. This PR adds the `Issued` and `Rescinded` events in appropriate places in `impl_currency` along with tests. Closes #4028 polkadot address: 5GsLutpKjbzsbTphebs9Uy4YK6gTN47MAaz6njPktidjR5cp --------- Co-authored-by: Bastian Köcher Co-authored-by: Bastian Köcher --- Cargo.lock | 1 + prdoc/pr_4936.prdoc | 13 ++++++++++ substrate/bin/node/bench/src/import.rs | 7 ++--- substrate/bin/node/cli/Cargo.toml | 1 + substrate/bin/node/cli/tests/basic.rs | 22 ++++++++++++++++ substrate/frame/balances/src/impl_currency.rs | 17 +++++++++--- substrate/frame/balances/src/lib.rs | 4 +-- .../balances/src/tests/currency_tests.rs | 26 ++++++++++++------- .../balances/src/tests/reentrancy_tests.rs | 7 ++--- 9 files changed, 78 insertions(+), 20 deletions(-) create mode 100644 prdoc/pr_4936.prdoc diff --git a/Cargo.lock b/Cargo.lock index 54b49e0e3f1..352efda75c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20917,6 +20917,7 @@ dependencies = [ "parity-scale-codec", "platforms", "polkadot-sdk", + "pretty_assertions", "rand", "regex", "sc-service-test", diff --git a/prdoc/pr_4936.prdoc b/prdoc/pr_4936.prdoc new file mode 100644 index 00000000000..f9b7ee506a7 --- /dev/null +++ b/prdoc/pr_4936.prdoc @@ -0,0 +1,13 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "Balances Pallet: Emit events when TI is updated in currency impl" + +doc: + - audience: Runtime Dev + description: | + Previously, in the Currency impl, the implementation of pallet_balances was not emitting any instances of Issued and Rescinded events, even though the Fungible equivalent was. This PR adds the Issued and Rescinded events in appropriate places in impl_currency along with tests. + +crates: +- name: pallet-balances + bump: patch diff --git a/substrate/bin/node/bench/src/import.rs b/substrate/bin/node/bench/src/import.rs index e340869dea0..0b972650ef5 100644 --- a/substrate/bin/node/bench/src/import.rs +++ b/substrate/bin/node/bench/src/import.rs @@ -121,22 +121,23 @@ impl core::Benchmark for ImportBenchmark { .inspect_state(|| { match self.block_type { BlockType::RandomTransfersKeepAlive => { - // should be 8 per signed extrinsic + 1 per unsigned + // should be 9 per signed extrinsic + 1 per unsigned // we have 2 unsigned (timestamp and glutton bloat) while the rest are // signed in the block. - // those 8 events per signed are: + // those 9 events per signed are: // - transaction paid for the transaction payment // - withdraw (Balances::Withdraw) for charging the transaction fee // - new account (System::NewAccount) as we always transfer fund to // non-existent account // - endowed (Balances::Endowed) for this new account + // - issued (Balances::Issued) as total issuance is increased // - successful transfer (Event::Transfer) for this transfer operation // - 2x deposit (Balances::Deposit and Treasury::Deposit) for depositing // the transaction fee into the treasury // - extrinsic success assert_eq!( kitchensink_runtime::System::events().len(), - (self.block.extrinsics.len() - 2) * 8 + 2, + (self.block.extrinsics.len() - 2) * 9 + 2, ); }, BlockType::Noop => { diff --git a/substrate/bin/node/cli/Cargo.toml b/substrate/bin/node/cli/Cargo.toml index ab665f0792a..1856487ac9c 100644 --- a/substrate/bin/node/cli/Cargo.toml +++ b/substrate/bin/node/cli/Cargo.toml @@ -71,6 +71,7 @@ wait-timeout = { workspace = true } wat = { workspace = true } serde_json = { workspace = true, default-features = true } scale-info = { features = ["derive", "serde"], workspace = true, default-features = true } +pretty_assertions.workspace = true # These testing-only dependencies are not exported by the Polkadot-SDK crate: node-testing = { workspace = true } diff --git a/substrate/bin/node/cli/tests/basic.rs b/substrate/bin/node/cli/tests/basic.rs index b1f737ce399..0a2e3fd2504 100644 --- a/substrate/bin/node/cli/tests/basic.rs +++ b/substrate/bin/node/cli/tests/basic.rs @@ -35,6 +35,7 @@ use kitchensink_runtime::{ }; use node_primitives::{Balance, Hash}; use node_testing::keyring::*; +use pretty_assertions::assert_eq; use wat; pub mod common; @@ -380,6 +381,13 @@ fn full_native_block_import_works() { }), topics: vec![], }, + EventRecord { + phase: Phase::ApplyExtrinsic(1), + event: RuntimeEvent::Balances(pallet_balances::Event::Rescinded { + amount: fees * 2 / 10, + }), + topics: vec![], + }, EventRecord { phase: Phase::ApplyExtrinsic(1), event: RuntimeEvent::TransactionPayment( @@ -465,6 +473,13 @@ fn full_native_block_import_works() { }), topics: vec![], }, + EventRecord { + phase: Phase::ApplyExtrinsic(1), + event: RuntimeEvent::Balances(pallet_balances::Event::Rescinded { + amount: fees - fees * 8 / 10, + }), + topics: vec![], + }, EventRecord { phase: Phase::ApplyExtrinsic(1), event: RuntimeEvent::TransactionPayment( @@ -515,6 +530,13 @@ fn full_native_block_import_works() { }), topics: vec![], }, + EventRecord { + phase: Phase::ApplyExtrinsic(2), + event: RuntimeEvent::Balances(pallet_balances::Event::Rescinded { + amount: fees - fees * 8 / 10, + }), + topics: vec![], + }, EventRecord { phase: Phase::ApplyExtrinsic(2), event: RuntimeEvent::TransactionPayment( diff --git a/substrate/frame/balances/src/impl_currency.rs b/substrate/frame/balances/src/impl_currency.rs index 454aead1773..049f0cc626c 100644 --- a/substrate/frame/balances/src/impl_currency.rs +++ b/substrate/frame/balances/src/impl_currency.rs @@ -34,11 +34,12 @@ use frame_support::{ }; use frame_system::pallet_prelude::BlockNumberFor; pub use imbalances::{NegativeImbalance, PositiveImbalance}; +use sp_runtime::traits::Bounded; // wrapping these imbalances in a private module is necessary to ensure absolute privacy // of the inner member. mod imbalances { - use super::{result, Config, Imbalance, RuntimeDebug, Saturating, TryDrop, Zero}; + use super::*; use core::mem; use frame_support::traits::SameOrOther; @@ -199,14 +200,20 @@ mod imbalances { impl, I: 'static> Drop for PositiveImbalance { /// Basic drop handler will just square up the total issuance. fn drop(&mut self) { - >::mutate(|v| *v = v.saturating_add(self.0)); + if !self.0.is_zero() { + >::mutate(|v| *v = v.saturating_add(self.0)); + Pallet::::deposit_event(Event::::Issued { amount: self.0 }); + } } } impl, I: 'static> Drop for NegativeImbalance { /// Basic drop handler will just square up the total issuance. fn drop(&mut self) { - >::mutate(|v| *v = v.saturating_sub(self.0)); + if !self.0.is_zero() { + >::mutate(|v| *v = v.saturating_sub(self.0)); + Pallet::::deposit_event(Event::::Rescinded { amount: self.0 }); + } } } } @@ -263,6 +270,8 @@ where Zero::zero() }); }); + + Pallet::::deposit_event(Event::::Rescinded { amount }); PositiveImbalance::new(amount) } @@ -279,6 +288,8 @@ where Self::Balance::max_value() }) }); + + Pallet::::deposit_event(Event::::Issued { amount }); NegativeImbalance::new(amount) } diff --git a/substrate/frame/balances/src/lib.rs b/substrate/frame/balances/src/lib.rs index 0aaf618b303..ddca685aa01 100644 --- a/substrate/frame/balances/src/lib.rs +++ b/substrate/frame/balances/src/lib.rs @@ -175,8 +175,8 @@ pub use impl_currency::{NegativeImbalance, PositiveImbalance}; use scale_info::TypeInfo; use sp_runtime::{ traits::{ - AtLeast32BitUnsigned, Bounded, CheckedAdd, CheckedSub, MaybeSerializeDeserialize, - Saturating, StaticLookup, Zero, + AtLeast32BitUnsigned, CheckedAdd, CheckedSub, MaybeSerializeDeserialize, Saturating, + StaticLookup, Zero, }, ArithmeticError, DispatchError, FixedPointOperand, Perbill, RuntimeDebug, TokenError, }; diff --git a/substrate/frame/balances/src/tests/currency_tests.rs b/substrate/frame/balances/src/tests/currency_tests.rs index 9ad4aca6440..fb69368a621 100644 --- a/substrate/frame/balances/src/tests/currency_tests.rs +++ b/substrate/frame/balances/src/tests/currency_tests.rs @@ -399,10 +399,13 @@ fn reward_should_work() { ExtBuilder::default().monied(true).build_and_execute_with(|| { assert_eq!(Balances::total_balance(&1), 10); assert_ok!(Balances::deposit_into_existing(&1, 10).map(drop)); - System::assert_last_event(RuntimeEvent::Balances(crate::Event::Deposit { - who: 1, - amount: 10, - })); + assert_eq!( + events(), + [ + RuntimeEvent::Balances(crate::Event::Deposit { who: 1, amount: 10 }), + RuntimeEvent::Balances(crate::Event::Issued { amount: 10 }), + ] + ); assert_eq!(Balances::total_balance(&1), 20); assert_eq!(Balances::total_issuance(), 120); }); @@ -480,7 +483,7 @@ fn withdrawing_balance_should_work() { let _ = Balances::deposit_creating(&2, 111); let _ = Balances::withdraw(&2, 11, WithdrawReasons::TRANSFER, ExistenceRequirement::KeepAlive); - System::assert_last_event(RuntimeEvent::Balances(crate::Event::Withdraw { + System::assert_has_event(RuntimeEvent::Balances(crate::Event::Withdraw { who: 2, amount: 11, })); @@ -889,6 +892,7 @@ fn emit_events_with_existential_deposit() { [ RuntimeEvent::System(system::Event::NewAccount { account: 1 }), RuntimeEvent::Balances(crate::Event::Endowed { account: 1, free_balance: 100 }), + RuntimeEvent::Balances(crate::Event::Issued { amount: 100 }), RuntimeEvent::Balances(crate::Event::BalanceSet { who: 1, free: 100 }), ] ); @@ -902,6 +906,7 @@ fn emit_events_with_existential_deposit() { RuntimeEvent::System(system::Event::KilledAccount { account: 1 }), RuntimeEvent::Balances(crate::Event::DustLost { account: 1, amount: 99 }), RuntimeEvent::Balances(crate::Event::Slashed { who: 1, amount: 1 }), + RuntimeEvent::Balances(crate::Event::Rescinded { amount: 1 }), ] ); }); @@ -918,6 +923,7 @@ fn emit_events_with_no_existential_deposit_suicide() { RuntimeEvent::Balances(crate::Event::BalanceSet { who: 1, free: 100 }), RuntimeEvent::System(system::Event::NewAccount { account: 1 }), RuntimeEvent::Balances(crate::Event::Endowed { account: 1, free_balance: 100 }), + RuntimeEvent::Balances(crate::Event::Issued { amount: 100 }), ] ); @@ -929,6 +935,7 @@ fn emit_events_with_no_existential_deposit_suicide() { [ RuntimeEvent::System(system::Event::KilledAccount { account: 1 }), RuntimeEvent::Balances(crate::Event::Slashed { who: 1, amount: 100 }), + RuntimeEvent::Balances(crate::Event::Rescinded { amount: 100 }), ] ); }); @@ -954,7 +961,7 @@ fn slash_full_works() { assert_eq!(Balances::slash(&1, 1_000), (NegativeImbalance::new(1000), 0)); // Account is still alive assert!(!System::account_exists(&1)); - System::assert_last_event(RuntimeEvent::Balances(crate::Event::Slashed { + System::assert_has_event(RuntimeEvent::Balances(crate::Event::Slashed { who: 1, amount: 1000, })); @@ -969,7 +976,7 @@ fn slash_partial_works() { assert_eq!(Balances::slash(&1, 900), (NegativeImbalance::new(900), 0)); // Account is still alive assert!(System::account_exists(&1)); - System::assert_last_event(RuntimeEvent::Balances(crate::Event::Slashed { + System::assert_has_event(RuntimeEvent::Balances(crate::Event::Slashed { who: 1, amount: 900, })); @@ -983,7 +990,7 @@ fn slash_dusting_works() { // Slashed completed in full assert_eq!(Balances::slash(&1, 950), (NegativeImbalance::new(950), 0)); assert!(!System::account_exists(&1)); - System::assert_last_event(RuntimeEvent::Balances(crate::Event::Slashed { + System::assert_has_event(RuntimeEvent::Balances(crate::Event::Slashed { who: 1, amount: 950, })); @@ -998,7 +1005,7 @@ fn slash_does_not_take_from_reserve() { // Slashed completed in full assert_eq!(Balances::slash(&1, 900), (NegativeImbalance::new(800), 100)); assert_eq!(Balances::reserved_balance(&1), 100); - System::assert_last_event(RuntimeEvent::Balances(crate::Event::Slashed { + System::assert_has_event(RuntimeEvent::Balances(crate::Event::Slashed { who: 1, amount: 800, })); @@ -1399,6 +1406,7 @@ fn self_transfer_noop() { Event::Deposit { who: 1, amount: 100 }.into(), SysEvent::NewAccount { account: 1 }.into(), Event::Endowed { account: 1, free_balance: 100 }.into(), + Event::Issued { amount: 100 }.into(), ] ); assert_eq!(Balances::free_balance(1), 100); diff --git a/substrate/frame/balances/src/tests/reentrancy_tests.rs b/substrate/frame/balances/src/tests/reentrancy_tests.rs index 717f0497857..0b66f2c93e3 100644 --- a/substrate/frame/balances/src/tests/reentrancy_tests.rs +++ b/substrate/frame/balances/src/tests/reentrancy_tests.rs @@ -52,7 +52,7 @@ fn transfer_dust_removal_tst1_should_work() { assert_eq!(Balances::free_balance(&1), 1050); // Verify the events - assert_eq!(System::events().len(), 12); + assert_eq!(System::events().len(), 14); System::assert_has_event(RuntimeEvent::Balances(crate::Event::Transfer { from: 2, @@ -93,7 +93,7 @@ fn transfer_dust_removal_tst2_should_work() { assert_eq!(Balances::free_balance(&1), 1500); // Verify the events - assert_eq!(System::events().len(), 10); + assert_eq!(System::events().len(), 12); System::assert_has_event(RuntimeEvent::Balances(crate::Event::Transfer { from: 2, @@ -139,7 +139,7 @@ fn repatriating_reserved_balance_dust_removal_should_work() { assert_eq!(Balances::free_balance(1), 1500); // Verify the events - assert_eq!(System::events().len(), 10); + assert_eq!(System::events().len(), 12); System::assert_has_event(RuntimeEvent::Balances(crate::Event::Transfer { from: 2, @@ -167,6 +167,7 @@ fn emit_events_with_no_existential_deposit_suicide_with_dust() { [ RuntimeEvent::System(system::Event::NewAccount { account: 1 }), RuntimeEvent::Balances(crate::Event::Endowed { account: 1, free_balance: 100 }), + RuntimeEvent::Balances(crate::Event::Issued { amount: 100 }), RuntimeEvent::Balances(crate::Event::BalanceSet { who: 1, free: 100 }), ] ); -- GitLab From ae688a97817d0d9112f9c502e31cccb8d59e69c1 Mon Sep 17 00:00:00 2001 From: Javier Bullrich Date: Sat, 20 Jul 2024 16:41:07 +0200 Subject: [PATCH 066/252] command action: documented use of gh cli (#5020) Added how the users can use [`gh cli`](https://cli.github.com/) instead of the dropdown if they want to keep the old commands. I also added the missing documentation of `sync`. --- .github/commands-readme.md | 65 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/.github/commands-readme.md b/.github/commands-readme.md index 20644c048c6..793524e056f 100644 --- a/.github/commands-readme.md +++ b/.github/commands-readme.md @@ -25,12 +25,36 @@ Each command will have the same two required values, but it could have more. GitHub's official documentation: [Manually running a workflow](https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow) +#### Running from CLI + +You can use [`gh cli`](https://cli.github.com/) to run the commands too. Refers to the [`gh workflow run`](https://cli.github.com/manual/gh_workflow_run) section from the documentation for more information. + ### Number of the Pull Request The number of the pull request. Required so the action can fetch the correct branch and comment if it fails. ## Action configurations +### FMT + +For FMT you only need the PR number. + +You can use the following [`gh cli`](https://cli.github.com/) inside the repo: + +```bash +gh workflow run command-fmt.yml -f pr=1000 +``` + +### Update UI + +For Update UI you only need the PR number. + +You can use the following [`gh cli`](https://cli.github.com/) inside the repo: + +```bash +gh workflow run command-update-ui.yml -f pr=1000 +``` + ### Bench Runs `benchmark pallet` or `benchmark overhead` against your PR and commits back updated weights. @@ -136,6 +160,12 @@ Posible combinations based on the `benchmark` dropdown. - Requires `Runtime Dir` to be `testing` - Requires `Target Directory` to be `cumulus` +You can use the following [`gh cli`](https://cli.github.com/) inside the repo: + +```bash +gh workflow run command-bench.yml -f pr=1000 -f benchmark=polkadot-pallet -f subcommand=pallet -f runtime=rococo -f pallet=pallet_name -f target_dir=polkadot +``` + ### Bench-all This is a wrapper to run `bench` for all pallets. @@ -174,6 +204,12 @@ Posible combinations based on the `benchmark` dropdown. - `people-westend` - Requires `Target Directory` to be `cumulus` +You can use the following [`gh cli`](https://cli.github.com/) inside the repo: + +```bash +gh workflow run command-bench-all.yml -f pr=1000 -f benchmark=pallet -f pallet=pallet_name -f target_dir=polkadot -f runtime=rococo +``` + ### Bench-overhead Run benchmarks overhead and commit back results to PR. @@ -193,6 +229,35 @@ Posible combinations based on the `benchmark` dropdown. - `asset-hub-westend` - Requires `Target directory` to be `cumulus` +You can use the following [`gh cli`](https://cli.github.com/) inside the repo: + +```bash +gh workflow run command-bench-overheard.yml -f pr=1000 -f benchmark=substrate -f runtime=rococo -f target_dir=substrate +``` + +### Sync + +Run sync and commit back results to PR. + +Posible combinations based on the `benchmark` dropdown. + +- `chain` + - Requires one of the following: + - `rococo` + - `westend` +- `sync-type` + - Requires one of the following: + - `warp` + - `full` + - `fast` + - `fast-unsafe` + +You can use the following [`gh cli`](https://cli.github.com/) inside the repo: + +```bash +gh workflow run command-sync.yml -f pr=1000 -f chain=rococo -f sync-type=full +``` + ## How to modify an action If you want to modify an action and test it, you can do by simply pushing your changes and then selecting your branch in the `Use worflow from` option. -- GitLab From 9dcf6f12e87c479f7d32ff6ac7869b375ca06de3 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Sat, 20 Jul 2024 17:37:14 +0300 Subject: [PATCH 067/252] beefy: Increment metric and add extra log details (#5075) This PR increments the beefy metric wrt no peers to query justification from. The metric is incremented when we submit a request to a known peer, however that peer failed to provide a valid response, and there are no further peers to query. While at it, add a few extra details to identify the number of active peers and cached peers, together with the request error Part of: - https://github.com/paritytech/polkadot-sdk/issues/4985 - https://github.com/paritytech/polkadot-sdk/issues/4925 --------- Signed-off-by: Alexandru Vasile --- .../client/consensus/beefy/src/communication/peers.rs | 5 +++++ .../request_response/outgoing_requests_engine.rs | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/substrate/client/consensus/beefy/src/communication/peers.rs b/substrate/client/consensus/beefy/src/communication/peers.rs index 2d801aceaa8..929cc0c650b 100644 --- a/substrate/client/consensus/beefy/src/communication/peers.rs +++ b/substrate/client/consensus/beefy/src/communication/peers.rs @@ -75,6 +75,11 @@ impl KnownPeers { pub fn contains(&self, peer: &PeerId) -> bool { self.live.contains_key(peer) } + + /// Number of peers in the set. + pub fn len(&self) -> usize { + self.live.len() + } } #[cfg(test)] diff --git a/substrate/client/consensus/beefy/src/communication/request_response/outgoing_requests_engine.rs b/substrate/client/consensus/beefy/src/communication/request_response/outgoing_requests_engine.rs index e127e5a8959..95ecf35557a 100644 --- a/substrate/client/consensus/beefy/src/communication/request_response/outgoing_requests_engine.rs +++ b/substrate/client/consensus/beefy/src/communication/request_response/outgoing_requests_engine.rs @@ -249,9 +249,16 @@ impl OnDemandJustificationsEngine OnDemandJustificationsEngine Date: Sat, 20 Jul 2024 23:25:53 +0000 Subject: [PATCH 068/252] Bump libc from 0.2.153 to 0.2.155 (#5069) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [libc](https://github.com/rust-lang/libc) from 0.2.153 to 0.2.155.
    Release notes

    Sourced from libc's releases.

    0.2.155

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rust-lang/libc/compare/0.2.154...0.2.155

    0.2.154

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rust-lang/libc/compare/0.2.153...0.2.154

    Commits
    • 7df63bd Merge pull request #3682 from madsmtm/new-version
    • 0bbb5cd Merge pull request #3690 from tesuji/android-posix-spawn
    • 15c74a4 Update version to 0.2.155
    • 664947b Merge pull request #3708 from cuviper/ci-sparc64-0.2
    • 61331df Also skip MFD_EXEC and MFD_NOEXEC_SEAL on sparc64
    • 73d2004 Skip SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV on sparc64
    • 80535f3 Revert "Upgrade Docker images to Ubuntu 23.10" on sparc64
    • b2b2fd7 Readd posix_spawn{_file_actions_t,attr_t} on Android
    • 7646277 Merge pull request #3686 from redox-os/redox-epoll-0.2
    • 5eff703 redox: correct EPOLL constants
    • Additional commits viewable in compare view

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libc&package-manager=cargo&previous-version=0.2.153&new-version=0.2.155)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- polkadot/node/core/pvf/Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 352efda75c8..9af1df21369 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7684,9 +7684,9 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libflate" diff --git a/Cargo.toml b/Cargo.toml index 71e55433621..14b4d6b143f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -815,7 +815,7 @@ kvdb-rocksdb = { version = "0.19.0" } kvdb-shared-tests = { version = "0.11.0" } landlock = { version = "0.3.0" } lazy_static = { version = "1.4.0" } -libc = { version = "0.2.153" } +libc = { version = "0.2.155" } libfuzzer-sys = { version = "0.4" } libp2p = { version = "0.52.4" } libp2p-identity = { version = "0.2.3" } diff --git a/polkadot/node/core/pvf/Cargo.toml b/polkadot/node/core/pvf/Cargo.toml index 7444f7927f5..d603af04bf0 100644 --- a/polkadot/node/core/pvf/Cargo.toml +++ b/polkadot/node/core/pvf/Cargo.toml @@ -60,7 +60,7 @@ test-parachain-adder = { workspace = true } test-parachain-halt = { workspace = true } [target.'cfg(target_os = "linux")'.dev-dependencies] -libc = "0.2.153" +libc = "0.2.155" procfs = "0.16.0" rusty-fork = "0.3.0" sc-sysinfo = { workspace = true, default-features = true } -- GitLab From d1979d4be9c44d06c62aeea44d30f5f201d67b5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 01:26:46 +0200 Subject: [PATCH 069/252] Bump assert_cmd from 2.0.12 to 2.0.14 (#5070) Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 2.0.12 to 2.0.14.
    Changelog

    Sourced from assert_cmd's changelog.

    [2.0.14] - 2024-02-19

    Compatibility

    • MSRV is now 1.73.0

    Features

    • Run using the cargo target runner

    [2.0.13] - 2024-01-12

    Internal

    • Dependency update
    Commits
    • 9ebfc0b chore: Release assert_cmd version 2.0.14
    • 025c5f6 docs: Update changelog
    • 82b99c1 Merge pull request #193 from glehmann/cross
    • b3a290c feat: add cargo runner support in order to work with cross
    • 132db49 Merge pull request #194 from assert-rs/renovate/rust-1.x
    • f1308ab chore(deps): update msrv to v1.73
    • 9b0f20a Merge pull request #192 from assert-rs/renovate/rust-1.x
    • 07f4cde chore(deps): update msrv to v1.72
    • 19da72b chore: Release assert_cmd version 2.0.13
    • db5ee32 docs: Update changelog
    • Additional commits viewable in compare view

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=assert_cmd&package-manager=cargo&previous-version=2.0.12&new-version=2.0.14)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9af1df21369..2c808f2a6be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -766,9 +766,9 @@ dependencies = [ [[package]] name = "assert_cmd" -version = "2.0.12" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88903cb14723e4d4003335bb7f8a14f27691649105346a0f0957466c096adfe6" +checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" dependencies = [ "anstyle", "bstr", diff --git a/Cargo.toml b/Cargo.toml index 14b4d6b143f..3886014dc2b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -594,7 +594,7 @@ ark-ed-on-bls12-381-bandersnatch-ext = { version = "0.4.1", default-features = f ark-scale = { version = "0.0.12", default-features = false } array-bytes = { version = "6.2.2", default-features = false } arrayvec = { version = "0.7.4" } -assert_cmd = { version = "2.0.10" } +assert_cmd = { version = "2.0.14" } assert_matches = { version = "1.5.0" } asset-hub-rococo-emulated-chain = { path = "cumulus/parachains/integration-tests/emulated/chains/parachains/assets/asset-hub-rococo" } asset-hub-rococo-runtime = { path = "cumulus/parachains/runtimes/assets/asset-hub-rococo", default-features = false } -- GitLab From 623b68e10fb5e592ef6ea32b9c442d0312f9c8f4 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:34:07 +0300 Subject: [PATCH 070/252] litep2p: Improve metric reasons for RequestResponse errors (#5077) This PR improves the metrics reported by litep2p on request-response errors. Discovered while investigating: - https://github.com/paritytech/polkadot-sdk/issues/4985 We are experiencing many requests that are `Refused` by litep2p in comparison with libp2p. The metric roughly approximates the sum of other reasons from libp2p. This PR aims to provide more insights. ``` {__name__="substrate_sub_libp2p_requests_out_failure_total", chain="ksmcc3", instance="localhost:9615", job="substrate_node", protocol="/b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe/sync/2", reason="Remote has closed the substream before answering, thereby signaling that it considers the request as valid, but refused to answer it."} Last *: 3365 Min: 3363 Max: 3365 Mean: 3365 {__name__="substrate_sub_libp2p_requests_out_failure_total", chain="ksmcc3", instance="localhost:9615", job="substrate_node", protocol="/b0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe/beefy/justifications/1", reason="Remote has closed the substream before answering, thereby signaling that it considers the request as valid, but refused to answer it."} Last *: 3461 Min: 3461 Max: 3461 Mean: 3461 ``` Part of: - https://github.com/paritytech/polkadot-sdk/issues/4681 cc @paritytech/networking --------- Signed-off-by: Alexandru Vasile --- .../src/litep2p/shim/request_response/mod.rs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/substrate/client/network/src/litep2p/shim/request_response/mod.rs b/substrate/client/network/src/litep2p/shim/request_response/mod.rs index 82d01c01236..a77acb46414 100644 --- a/substrate/client/network/src/litep2p/shim/request_response/mod.rs +++ b/substrate/client/network/src/litep2p/shim/request_response/mod.rs @@ -24,7 +24,7 @@ use crate::{ peer_store::PeerStoreProvider, request_responses::{IncomingRequest, OutgoingResponse}, service::{metrics::Metrics, traits::RequestResponseConfig as RequestResponseConfigT}, - IfDisconnected, ProtocolName, RequestFailure, + IfDisconnected, OutboundFailure, ProtocolName, RequestFailure, }; use futures::{channel::oneshot, future::BoxFuture, stream::FuturesUnordered, StreamExt}; @@ -369,10 +369,12 @@ impl RequestResponseProtocol { return }; - let error = match error { - RequestResponseError::NotConnected => Some(RequestFailure::NotConnected), - RequestResponseError::Rejected | RequestResponseError::Timeout => - Some(RequestFailure::Refused), + let status = match error { + RequestResponseError::NotConnected => + Some((RequestFailure::NotConnected, "not-connected")), + RequestResponseError::Rejected => Some((RequestFailure::Refused, "rejected")), + RequestResponseError::Timeout => + Some((RequestFailure::Network(OutboundFailure::Timeout), "timeout")), RequestResponseError::Canceled => { log::debug!( target: LOG_TARGET, @@ -387,7 +389,7 @@ impl RequestResponseProtocol { "{}: tried to send too large request to {peer:?} ({request_id:?})", self.protocol, ); - Some(RequestFailure::Refused) + Some((RequestFailure::Refused, "payload-too-large")) }, RequestResponseError::UnsupportedProtocol => match fallback_request { Some((request, protocol)) => match self.request_tx.get(&protocol) { @@ -426,15 +428,15 @@ impl RequestResponseProtocol { peer, ); - Some(RequestFailure::Refused) + Some((RequestFailure::Refused, "invalid-fallback-protocol")) }, }, - None => Some(RequestFailure::Refused), + None => Some((RequestFailure::Refused, "unsupported-protocol")), }, }; - if let Some(error) = error { - self.metrics.register_outbound_request_failure(error.to_string().as_ref()); + if let Some((error, reason)) = status { + self.metrics.register_outbound_request_failure(reason); let _ = tx.send(Err(error)); } } -- GitLab From d0d8e29197a783f3ea300569afc50244a280cafa Mon Sep 17 00:00:00 2001 From: gupnik Date: Mon, 22 Jul 2024 15:43:21 +0530 Subject: [PATCH 071/252] Fixes doc links for `procedural` crate (#5023) This PR fixes the documentation for FRAME Macros when pointed from `polkadot_sdk_docs` crate. This is achieved by referring to the examples in the `procedural` crate, embedded via `docify`. --------- Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> --- Cargo.lock | 11 + substrate/frame/support/procedural/Cargo.toml | 31 +- .../proc_main}/inject_runtime_type.rs | 3 + .../procedural/examples/proc_main/main.rs | 737 ++++++++++++++++++ .../examples/proc_main}/runtime.rs | 0 .../examples/proc_main}/tasks.rs | 11 +- substrate/frame/support/procedural/src/lib.rs | 109 ++- substrate/frame/support/src/lib.rs | 117 +-- substrate/frame/support/src/tests/mod.rs | 5 - 9 files changed, 877 insertions(+), 147 deletions(-) rename substrate/frame/support/{src/tests => procedural/examples/proc_main}/inject_runtime_type.rs (97%) create mode 100644 substrate/frame/support/procedural/examples/proc_main/main.rs rename substrate/frame/support/{src/tests => procedural/examples/proc_main}/runtime.rs (100%) rename substrate/frame/support/{src/tests => procedural/examples/proc_main}/tasks.rs (91%) diff --git a/Cargo.lock b/Cargo.lock index 2c808f2a6be..ead688ec9f5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6051,15 +6051,26 @@ dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", + "docify", "expander", + "frame-support", "frame-support-procedural-tools", + "frame-system", "itertools 0.11.0", "macro_magic", + "parity-scale-codec", + "pretty_assertions", "proc-macro-warning 1.0.0", "proc-macro2 1.0.82", "quote 1.0.36", "regex", + "scale-info", + "sp-core", "sp-crypto-hashing", + "sp-io", + "sp-metadata-ir", + "sp-runtime", + "static_assertions", "syn 2.0.61", ] diff --git a/substrate/frame/support/procedural/Cargo.toml b/substrate/frame/support/procedural/Cargo.toml index fbb4da0177a..aa0665a2250 100644 --- a/substrate/frame/support/procedural/Cargo.toml +++ b/substrate/frame/support/procedural/Cargo.toml @@ -19,6 +19,7 @@ proc-macro = true [dependencies] derive-syn-parse = { workspace = true } +docify = { workspace = true } Inflector = { workspace = true } cfg-expr = { workspace = true } itertools = { workspace = true } @@ -32,14 +33,42 @@ expander = { workspace = true } sp-crypto-hashing = { workspace = true } [dev-dependencies] +codec = { features = [ + "derive", + "max-encoded-len", +], workspace = true } regex = { workspace = true } +sp-metadata-ir = { workspace = true } +scale-info = { features = ["derive"], workspace = true } +sp-core = { workspace = true } +sp-io = { workspace = true } +sp-runtime = { features = [ + "serde", +], workspace = true } +frame-system = { workspace = true } +frame-support = { workspace = true } +pretty_assertions = { workspace = true } +static_assertions = { workspace = true } [features] default = ["std"] -std = ["sp-crypto-hashing/std"] +std = [ + "codec/std", + "frame-support/std", + "frame-system/std", + "scale-info/std", + "sp-core/std", + "sp-crypto-hashing/std", + "sp-io/std", + "sp-metadata-ir/std", + "sp-runtime/std", +] no-metadata-docs = [] experimental = [] # Generate impl-trait for tuples with the given number of tuples. Will be needed as the number of # pallets in a runtime grows. Does increase the compile time! tuples-96 = [] tuples-128 = [] + +[[example]] +name = "proc_main" diff --git a/substrate/frame/support/src/tests/inject_runtime_type.rs b/substrate/frame/support/procedural/examples/proc_main/inject_runtime_type.rs similarity index 97% rename from substrate/frame/support/src/tests/inject_runtime_type.rs rename to substrate/frame/support/procedural/examples/proc_main/inject_runtime_type.rs index 429a743d3b7..cd5660f2bda 100644 --- a/substrate/frame/support/src/tests/inject_runtime_type.rs +++ b/substrate/frame/support/procedural/examples/proc_main/inject_runtime_type.rs @@ -15,8 +15,11 @@ // See the License for the specific language governing permissions and // limitations under the License. +#[cfg(test)] use super::{Config, Runtime}; +#[cfg(test)] use crate::{derive_impl, pallet_prelude::inject_runtime_type}; +#[cfg(test)] use static_assertions::assert_type_eq_all; #[docify::export] diff --git a/substrate/frame/support/procedural/examples/proc_main/main.rs b/substrate/frame/support/procedural/examples/proc_main/main.rs new file mode 100644 index 00000000000..4bdfc76dd92 --- /dev/null +++ b/substrate/frame/support/procedural/examples/proc_main/main.rs @@ -0,0 +1,737 @@ +// This file is part of Substrate. + +// Copyright (C) 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 frame_support::*; +use frame_support_procedural::import_section; +#[cfg(test)] +use sp_io::{MultiRemovalResults, TestExternalities}; +#[cfg(test)] +use sp_metadata_ir::{ + PalletStorageMetadataIR, StorageEntryMetadataIR, StorageEntryModifierIR, StorageEntryTypeIR, + StorageHasherIR, +}; +#[cfg(test)] +use sp_runtime::BuildStorage; +use sp_runtime::{generic, traits::BlakeTwo256}; + +pub use self::frame_system::{pallet_prelude::*, Config, Pallet}; + +mod inject_runtime_type; +mod runtime; +mod tasks; + +#[import_section(tasks::tasks_example)] +#[pallet] +pub mod frame_system { + #[allow(unused)] + use super::{frame_system, frame_system::pallet_prelude::*}; + pub use crate::dispatch::RawOrigin; + use crate::{pallet_prelude::*, traits::tasks::Task as TaskTrait}; + + pub mod config_preludes { + use super::{inject_runtime_type, DefaultConfig}; + pub struct TestDefaultConfig; + + #[crate::register_default_impl(TestDefaultConfig)] + impl DefaultConfig for TestDefaultConfig { + type AccountId = u64; + type BaseCallFilter = frame_support::traits::Everything; + #[inject_runtime_type] + type RuntimeOrigin = (); + #[inject_runtime_type] + type RuntimeCall = (); + #[inject_runtime_type] + type PalletInfo = (); + #[inject_runtime_type] + type RuntimeTask = (); + type DbWeight = (); + } + } + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::config(with_default)] + #[pallet::disable_frame_system_supertrait_check] + pub trait Config: 'static { + #[pallet::no_default] + type Block: Parameter + sp_runtime::traits::Block; + type AccountId; + #[pallet::no_default_bounds] + type BaseCallFilter: crate::traits::Contains; + #[pallet::no_default_bounds] + type RuntimeOrigin; + #[pallet::no_default_bounds] + type RuntimeCall; + #[pallet::no_default_bounds] + type RuntimeTask: crate::traits::tasks::Task; + #[pallet::no_default_bounds] + type PalletInfo: crate::traits::PalletInfo; + type DbWeight: Get; + } + + #[pallet::error] + pub enum Error { + /// Required by construct_runtime + CallFiltered, + /// Used in tasks example. + NotFound, + /// The specified [`Task`] is not valid. + InvalidTask, + /// The specified [`Task`] failed during execution. + FailedTask, + } + + #[pallet::origin] + pub type Origin = RawOrigin<::AccountId>; + + #[pallet::call] + impl Pallet { + #[pallet::call_index(0)] + #[pallet::weight(task.weight())] + pub fn do_task(_origin: OriginFor, task: T::RuntimeTask) -> DispatchResultWithPostInfo { + if !task.is_valid() { + return Err(Error::::InvalidTask.into()) + } + + if let Err(_err) = task.run() { + return Err(Error::::FailedTask.into()) + } + + Ok(().into()) + } + } + + #[pallet::storage] + pub type Data = StorageMap<_, Twox64Concat, u32, u64, ValueQuery>; + + #[pallet::storage] + pub type OptionLinkedMap = StorageMap<_, Blake2_128Concat, u32, u32, OptionQuery>; + + #[pallet::storage] + pub type GenericData = + StorageMap<_, Identity, BlockNumberFor, BlockNumberFor, ValueQuery>; + + #[pallet::storage] + pub type GenericData2 = + StorageMap<_, Blake2_128Concat, BlockNumberFor, BlockNumberFor, OptionQuery>; + + #[pallet::storage] + pub type DataDM = + StorageDoubleMap<_, Twox64Concat, u32, Blake2_128Concat, u32, u64, ValueQuery>; + + #[pallet::storage] + pub type GenericDataDM = StorageDoubleMap< + _, + Blake2_128Concat, + BlockNumberFor, + Identity, + BlockNumberFor, + BlockNumberFor, + ValueQuery, + >; + + #[pallet::storage] + pub type GenericData2DM = StorageDoubleMap< + _, + Blake2_128Concat, + BlockNumberFor, + Twox64Concat, + BlockNumberFor, + BlockNumberFor, + OptionQuery, + >; + + #[pallet::storage] + #[pallet::unbounded] + pub type AppendableDM = StorageDoubleMap< + _, + Blake2_128Concat, + u32, + Blake2_128Concat, + BlockNumberFor, + Vec, + ValueQuery, + >; + + #[pallet::genesis_config] + pub struct GenesisConfig { + pub data: Vec<(u32, u64)>, + pub test_config: Vec<(u32, u32, u64)>, + #[serde(skip)] + pub _config: core::marker::PhantomData, + } + + impl Default for GenesisConfig { + fn default() -> Self { + Self { + _config: Default::default(), + data: vec![(15u32, 42u64)], + test_config: vec![(15u32, 16u32, 42u64)], + } + } + } + + #[pallet::genesis_build] + impl BuildGenesisConfig for GenesisConfig { + fn build(&self) { + for (k, v) in &self.data { + >::insert(k, v); + } + for (k1, k2, v) in &self.test_config { + >::insert(k1, k2, v); + } + } + } + + /// Some running total. + #[pallet::storage] + pub type Total = StorageValue<_, (u32, u32), ValueQuery>; + + /// Numbers to be added into the total. + #[pallet::storage] + pub type Numbers = StorageMap<_, Twox64Concat, u32, u32, OptionQuery>; + + pub mod pallet_prelude { + pub type OriginFor = ::RuntimeOrigin; + + pub type HeaderFor = + <::Block as sp_runtime::traits::HeaderProvider>::HeaderT; + + pub type BlockNumberFor = as sp_runtime::traits::Header>::Number; + } +} + +type BlockNumber = u32; +type AccountId = u32; +type Header = generic::Header; +type UncheckedExtrinsic = generic::UncheckedExtrinsic; +type Block = generic::Block; + +#[crate::runtime] +mod runtime { + #[runtime::runtime] + #[runtime::derive( + RuntimeCall, + RuntimeEvent, + RuntimeError, + RuntimeOrigin, + RuntimeFreezeReason, + RuntimeHoldReason, + RuntimeSlashReason, + RuntimeLockId, + RuntimeTask + )] + pub struct Runtime; + + #[runtime::pallet_index(0)] + pub type System = self::frame_system; +} + +#[crate::derive_impl(self::frame_system::config_preludes::TestDefaultConfig as self::frame_system::DefaultConfig)] +impl Config for Runtime { + type Block = Block; + type AccountId = AccountId; +} + +#[cfg(test)] +fn new_test_ext() -> TestExternalities { + RuntimeGenesisConfig::default().build_storage().unwrap().into() +} + +#[cfg(test)] +trait Sorted { + fn sorted(self) -> Self; +} + +#[cfg(test)] +impl Sorted for Vec { + fn sorted(mut self) -> Self { + self.sort(); + self + } +} + +#[test] +fn map_issue_3318() { + new_test_ext().execute_with(|| { + type OptionLinkedMap = self::frame_system::OptionLinkedMap; + + OptionLinkedMap::insert(1, 1); + assert_eq!(OptionLinkedMap::get(1), Some(1)); + OptionLinkedMap::insert(1, 2); + assert_eq!(OptionLinkedMap::get(1), Some(2)); + }); +} + +#[test] +fn map_swap_works() { + new_test_ext().execute_with(|| { + type OptionLinkedMap = self::frame_system::OptionLinkedMap; + + OptionLinkedMap::insert(0, 0); + OptionLinkedMap::insert(1, 1); + OptionLinkedMap::insert(2, 2); + OptionLinkedMap::insert(3, 3); + + let collect = || OptionLinkedMap::iter().collect::>().sorted(); + assert_eq!(collect(), vec![(0, 0), (1, 1), (2, 2), (3, 3)]); + + // Two existing + OptionLinkedMap::swap(1, 2); + assert_eq!(collect(), vec![(0, 0), (1, 2), (2, 1), (3, 3)]); + + // Back to normal + OptionLinkedMap::swap(2, 1); + assert_eq!(collect(), vec![(0, 0), (1, 1), (2, 2), (3, 3)]); + + // Left existing + OptionLinkedMap::swap(2, 5); + assert_eq!(collect(), vec![(0, 0), (1, 1), (3, 3), (5, 2)]); + + // Right existing + OptionLinkedMap::swap(5, 2); + assert_eq!(collect(), vec![(0, 0), (1, 1), (2, 2), (3, 3)]); + }); +} + +#[test] +fn double_map_swap_works() { + new_test_ext().execute_with(|| { + type DataDM = self::frame_system::DataDM; + + DataDM::insert(0, 1, 1); + DataDM::insert(1, 0, 2); + DataDM::insert(1, 1, 3); + + let get_all = || { + vec![ + DataDM::get(0, 1), + DataDM::get(1, 0), + DataDM::get(1, 1), + DataDM::get(2, 0), + DataDM::get(2, 1), + ] + }; + assert_eq!(get_all(), vec![1, 2, 3, 0, 0]); + + // Two existing + DataDM::swap(0, 1, 1, 0); + assert_eq!(get_all(), vec![2, 1, 3, 0, 0]); + + // Left existing + DataDM::swap(1, 0, 2, 0); + assert_eq!(get_all(), vec![2, 0, 3, 1, 0]); + + // Right existing + DataDM::swap(2, 1, 1, 1); + assert_eq!(get_all(), vec![2, 0, 0, 1, 3]); + }); +} + +#[test] +fn map_basic_insert_remove_should_work() { + new_test_ext().execute_with(|| { + type Map = self::frame_system::Data; + + // initialized during genesis + assert_eq!(Map::get(&15u32), 42u64); + + // get / insert / take + let key = 17u32; + assert_eq!(Map::get(&key), 0u64); + Map::insert(key, 4u64); + assert_eq!(Map::get(&key), 4u64); + assert_eq!(Map::take(&key), 4u64); + assert_eq!(Map::get(&key), 0u64); + + // mutate + Map::mutate(&key, |val| { + *val = 15; + }); + assert_eq!(Map::get(&key), 15u64); + + // remove + Map::remove(&key); + assert_eq!(Map::get(&key), 0u64); + }); +} + +#[test] +fn map_iteration_should_work() { + new_test_ext().execute_with(|| { + type Map = self::frame_system::Data; + + assert_eq!(Map::iter().collect::>().sorted(), vec![(15, 42)]); + // insert / remove + let key = 17u32; + Map::insert(key, 4u64); + assert_eq!(Map::iter().collect::>().sorted(), vec![(15, 42), (key, 4)]); + assert_eq!(Map::take(&15), 42u64); + assert_eq!(Map::take(&key), 4u64); + assert_eq!(Map::iter().collect::>().sorted(), vec![]); + + // Add couple of more elements + Map::insert(key, 42u64); + assert_eq!(Map::iter().collect::>().sorted(), vec![(key, 42)]); + Map::insert(key + 1, 43u64); + assert_eq!(Map::iter().collect::>().sorted(), vec![(key, 42), (key + 1, 43)]); + + // mutate + let key = key + 2; + Map::mutate(&key, |val| { + *val = 15; + }); + assert_eq!( + Map::iter().collect::>().sorted(), + vec![(key - 2, 42), (key - 1, 43), (key, 15)] + ); + Map::mutate(&key, |val| { + *val = 17; + }); + assert_eq!( + Map::iter().collect::>().sorted(), + vec![(key - 2, 42), (key - 1, 43), (key, 17)] + ); + + // remove first + Map::remove(&key); + assert_eq!(Map::iter().collect::>().sorted(), vec![(key - 2, 42), (key - 1, 43)]); + + // remove last from the list + Map::remove(&(key - 2)); + assert_eq!(Map::iter().collect::>().sorted(), vec![(key - 1, 43)]); + + // remove the last element + Map::remove(&(key - 1)); + assert_eq!(Map::iter().collect::>().sorted(), vec![]); + }); +} + +#[test] +fn double_map_basic_insert_remove_remove_prefix_with_commit_should_work() { + let key1 = 17u32; + let key2 = 18u32; + type DoubleMap = self::frame_system::DataDM; + let mut e = new_test_ext(); + e.execute_with(|| { + // initialized during genesis + assert_eq!(DoubleMap::get(&15u32, &16u32), 42u64); + + // get / insert / take + assert_eq!(DoubleMap::get(&key1, &key2), 0u64); + DoubleMap::insert(&key1, &key2, &4u64); + assert_eq!(DoubleMap::get(&key1, &key2), 4u64); + assert_eq!(DoubleMap::take(&key1, &key2), 4u64); + assert_eq!(DoubleMap::get(&key1, &key2), 0u64); + + // mutate + DoubleMap::mutate(&key1, &key2, |val| *val = 15); + assert_eq!(DoubleMap::get(&key1, &key2), 15u64); + + // remove + DoubleMap::remove(&key1, &key2); + assert_eq!(DoubleMap::get(&key1, &key2), 0u64); + + // remove prefix + DoubleMap::insert(&key1, &key2, &4u64); + DoubleMap::insert(&key1, &(key2 + 1), &4u64); + DoubleMap::insert(&(key1 + 1), &key2, &4u64); + DoubleMap::insert(&(key1 + 1), &(key2 + 1), &4u64); + }); + e.commit_all().unwrap(); + e.execute_with(|| { + assert!(matches!( + DoubleMap::clear_prefix(&key1, u32::max_value(), None), + MultiRemovalResults { maybe_cursor: None, backend: 2, unique: 2, loops: 2 } + )); + assert_eq!(DoubleMap::get(&key1, &key2), 0u64); + assert_eq!(DoubleMap::get(&key1, &(key2 + 1)), 0u64); + assert_eq!(DoubleMap::get(&(key1 + 1), &key2), 4u64); + assert_eq!(DoubleMap::get(&(key1 + 1), &(key2 + 1)), 4u64); + }); +} + +#[test] +fn double_map_basic_insert_remove_remove_prefix_should_work() { + new_test_ext().execute_with(|| { + let key1 = 17u32; + let key2 = 18u32; + type DoubleMap = self::frame_system::DataDM; + + // initialized during genesis + assert_eq!(DoubleMap::get(&15u32, &16u32), 42u64); + + // get / insert / take + assert_eq!(DoubleMap::get(&key1, &key2), 0u64); + DoubleMap::insert(&key1, &key2, &4u64); + assert_eq!(DoubleMap::get(&key1, &key2), 4u64); + assert_eq!(DoubleMap::take(&key1, &key2), 4u64); + assert_eq!(DoubleMap::get(&key1, &key2), 0u64); + + // mutate + DoubleMap::mutate(&key1, &key2, |val| *val = 15); + assert_eq!(DoubleMap::get(&key1, &key2), 15u64); + + // remove + DoubleMap::remove(&key1, &key2); + assert_eq!(DoubleMap::get(&key1, &key2), 0u64); + + // remove prefix + DoubleMap::insert(&key1, &key2, &4u64); + DoubleMap::insert(&key1, &(key2 + 1), &4u64); + DoubleMap::insert(&(key1 + 1), &key2, &4u64); + DoubleMap::insert(&(key1 + 1), &(key2 + 1), &4u64); + // all in overlay + assert!(matches!( + DoubleMap::clear_prefix(&key1, u32::max_value(), None), + MultiRemovalResults { maybe_cursor: None, backend: 0, unique: 0, loops: 0 } + )); + // Note this is the incorrect answer (for now), since we are using v2 of + // `clear_prefix`. + // When we switch to v3, then this will become: + // MultiRemovalResults:: { maybe_cursor: None, backend: 0, unique: 2, loops: 2 }, + assert!(matches!( + DoubleMap::clear_prefix(&key1, u32::max_value(), None), + MultiRemovalResults { maybe_cursor: None, backend: 0, unique: 0, loops: 0 } + )); + assert_eq!(DoubleMap::get(&key1, &key2), 0u64); + assert_eq!(DoubleMap::get(&key1, &(key2 + 1)), 0u64); + assert_eq!(DoubleMap::get(&(key1 + 1), &key2), 4u64); + assert_eq!(DoubleMap::get(&(key1 + 1), &(key2 + 1)), 4u64); + }); +} + +#[test] +fn double_map_append_should_work() { + new_test_ext().execute_with(|| { + type DoubleMap = self::frame_system::AppendableDM; + + let key1 = 17u32; + let key2 = 18u32; + + DoubleMap::insert(&key1, &key2, &vec![1]); + DoubleMap::append(&key1, &key2, 2); + assert_eq!(DoubleMap::get(&key1, &key2), &[1, 2]); + }); +} + +#[test] +fn double_map_mutate_exists_should_work() { + new_test_ext().execute_with(|| { + type DoubleMap = self::frame_system::DataDM; + + let (key1, key2) = (11, 13); + + // mutated + DoubleMap::mutate_exists(key1, key2, |v| *v = Some(1)); + assert_eq!(DoubleMap::get(&key1, key2), 1); + + // removed if mutated to `None` + DoubleMap::mutate_exists(key1, key2, |v| *v = None); + assert!(!DoubleMap::contains_key(&key1, key2)); + }); +} + +#[test] +fn double_map_try_mutate_exists_should_work() { + new_test_ext().execute_with(|| { + type DoubleMap = self::frame_system::DataDM; + type TestResult = Result<(), &'static str>; + + let (key1, key2) = (11, 13); + + // mutated if `Ok` + assert_ok!(DoubleMap::try_mutate_exists(key1, key2, |v| -> TestResult { + *v = Some(1); + Ok(()) + })); + assert_eq!(DoubleMap::get(&key1, key2), 1); + + // no-op if `Err` + assert_noop!( + DoubleMap::try_mutate_exists(key1, key2, |v| -> TestResult { + *v = Some(2); + Err("nah") + }), + "nah" + ); + + // removed if mutated to`None` + assert_ok!(DoubleMap::try_mutate_exists(key1, key2, |v| -> TestResult { + *v = None; + Ok(()) + })); + assert!(!DoubleMap::contains_key(&key1, key2)); + }); +} + +#[cfg(test)] +fn expected_metadata() -> PalletStorageMetadataIR { + PalletStorageMetadataIR { + prefix: "System", + entries: vec![ + StorageEntryMetadataIR { + name: "Data", + modifier: StorageEntryModifierIR::Default, + ty: StorageEntryTypeIR::Map { + hashers: vec![StorageHasherIR::Twox64Concat], + key: scale_info::meta_type::(), + value: scale_info::meta_type::(), + }, + default: vec![0, 0, 0, 0, 0, 0, 0, 0], + docs: vec![], + }, + StorageEntryMetadataIR { + name: "OptionLinkedMap", + modifier: StorageEntryModifierIR::Optional, + ty: StorageEntryTypeIR::Map { + hashers: vec![StorageHasherIR::Blake2_128Concat], + key: scale_info::meta_type::(), + value: scale_info::meta_type::(), + }, + default: vec![0], + docs: vec![], + }, + StorageEntryMetadataIR { + name: "GenericData", + modifier: StorageEntryModifierIR::Default, + ty: StorageEntryTypeIR::Map { + hashers: vec![StorageHasherIR::Identity], + key: scale_info::meta_type::(), + value: scale_info::meta_type::(), + }, + default: vec![0, 0, 0, 0], + docs: vec![], + }, + StorageEntryMetadataIR { + name: "GenericData2", + modifier: StorageEntryModifierIR::Optional, + ty: StorageEntryTypeIR::Map { + hashers: vec![StorageHasherIR::Blake2_128Concat], + key: scale_info::meta_type::(), + value: scale_info::meta_type::(), + }, + default: vec![0], + docs: vec![], + }, + StorageEntryMetadataIR { + name: "DataDM", + modifier: StorageEntryModifierIR::Default, + ty: StorageEntryTypeIR::Map { + hashers: vec![StorageHasherIR::Twox64Concat, StorageHasherIR::Blake2_128Concat], + key: scale_info::meta_type::<(u32, u32)>(), + value: scale_info::meta_type::(), + }, + default: vec![0, 0, 0, 0, 0, 0, 0, 0], + docs: vec![], + }, + StorageEntryMetadataIR { + name: "GenericDataDM", + modifier: StorageEntryModifierIR::Default, + ty: StorageEntryTypeIR::Map { + hashers: vec![StorageHasherIR::Blake2_128Concat, StorageHasherIR::Identity], + key: scale_info::meta_type::<(u32, u32)>(), + value: scale_info::meta_type::(), + }, + default: vec![0, 0, 0, 0], + docs: vec![], + }, + StorageEntryMetadataIR { + name: "GenericData2DM", + modifier: StorageEntryModifierIR::Optional, + ty: StorageEntryTypeIR::Map { + hashers: vec![StorageHasherIR::Blake2_128Concat, StorageHasherIR::Twox64Concat], + key: scale_info::meta_type::<(u32, u32)>(), + value: scale_info::meta_type::(), + }, + default: vec![0], + docs: vec![], + }, + StorageEntryMetadataIR { + name: "AppendableDM", + modifier: StorageEntryModifierIR::Default, + ty: StorageEntryTypeIR::Map { + hashers: vec![ + StorageHasherIR::Blake2_128Concat, + StorageHasherIR::Blake2_128Concat, + ], + key: scale_info::meta_type::<(u32, u32)>(), + value: scale_info::meta_type::>(), + }, + default: vec![0], + docs: vec![], + }, + StorageEntryMetadataIR { + name: "Total", + modifier: StorageEntryModifierIR::Default, + ty: StorageEntryTypeIR::Plain(scale_info::meta_type::<(u32, u32)>()), + default: vec![0, 0, 0, 0, 0, 0, 0, 0], + docs: vec![" Some running total."], + }, + StorageEntryMetadataIR { + name: "Numbers", + modifier: StorageEntryModifierIR::Optional, + ty: StorageEntryTypeIR::Map { + hashers: vec![StorageHasherIR::Twox64Concat], + key: scale_info::meta_type::(), + value: scale_info::meta_type::(), + }, + default: vec![0], + docs: vec![" Numbers to be added into the total."], + }, + ], + } +} + +#[test] +fn store_metadata() { + let metadata = Pallet::::storage_metadata(); + pretty_assertions::assert_eq!(expected_metadata(), metadata); +} + +parameter_types! { + storage StorageParameter: u64 = 10; +} + +#[test] +fn check_storage_parameter_type_works() { + TestExternalities::default().execute_with(|| { + assert_eq!(sp_io::hashing::twox_128(b":StorageParameter:"), StorageParameter::key()); + + assert_eq!(10, StorageParameter::get()); + + StorageParameter::set(&300); + assert_eq!(300, StorageParameter::get()); + }) +} + +#[test] +fn derive_partial_eq_no_bound_core_mod() { + mod core {} + + #[derive( + crate::PartialEqNoBound, + crate::CloneNoBound, + crate::DebugNoBound, + crate::DefaultNoBound, + crate::EqNoBound, + )] + struct Test; +} + +fn main() {} diff --git a/substrate/frame/support/src/tests/runtime.rs b/substrate/frame/support/procedural/examples/proc_main/runtime.rs similarity index 100% rename from substrate/frame/support/src/tests/runtime.rs rename to substrate/frame/support/procedural/examples/proc_main/runtime.rs diff --git a/substrate/frame/support/src/tests/tasks.rs b/substrate/frame/support/procedural/examples/proc_main/tasks.rs similarity index 91% rename from substrate/frame/support/src/tests/tasks.rs rename to substrate/frame/support/procedural/examples/proc_main/tasks.rs index 2774c130075..326c6e5bcbc 100644 --- a/substrate/frame/support/src/tests/tasks.rs +++ b/substrate/frame/support/procedural/examples/proc_main/tasks.rs @@ -15,12 +15,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::{ +#[cfg(test)] +use super::{ assert_ok, - tests::{ - frame_system::{Numbers, Total}, - new_test_ext, Runtime, RuntimeOrigin, RuntimeTask, System, - }, + frame_system::{Numbers, Total}, + Runtime, RuntimeOrigin, RuntimeTask, System, }; use frame_support_procedural::pallet_section; @@ -48,7 +47,7 @@ mod tasks_example { #[docify::export] #[test] fn tasks_work() { - new_test_ext().execute_with(|| { + super::new_test_ext().execute_with(|| { Numbers::::insert(0, 1); let task = RuntimeTask::System(super::frame_system::Task::::AddNumberIntoTotal { diff --git a/substrate/frame/support/procedural/src/lib.rs b/substrate/frame/support/procedural/src/lib.rs index 51e5657a2e8..ef99faee86a 100644 --- a/substrate/frame/support/procedural/src/lib.rs +++ b/substrate/frame/support/procedural/src/lib.rs @@ -779,11 +779,20 @@ pub fn register_default_impl(attrs: TokenStream, tokens: TokenStream) -> TokenSt } } -/// -/// --- -/// -/// Documentation for this macro can be found at -/// `frame_support::pallet_prelude::inject_runtime_type`. +/// The optional attribute `#[inject_runtime_type]` can be attached to `RuntimeCall`, +/// `RuntimeEvent`, `RuntimeOrigin` or `PalletInfo` in an impl statement that has +/// `#[register_default_impl]` attached to indicate that this item is generated by +/// `construct_runtime`. +/// +/// Attaching this attribute to such an item ensures that the combined impl generated via +/// [`#[derive_impl(..)]`](macro@derive_impl) will use the correct type auto-generated by +/// `construct_runtime!`. +#[doc = docify::embed!("examples/proc_main/inject_runtime_type.rs", derive_impl_works_with_runtime_type_injection)] +/// +/// However, if `no_aggregated_types` is specified while using +/// [`#[derive_impl(..)]`](macro@derive_impl), then these items are attached verbatim to the +/// combined impl. +#[doc = docify::embed!("examples/proc_main/inject_runtime_type.rs", derive_impl_works_with_no_aggregated_types)] #[proc_macro_attribute] pub fn inject_runtime_type(_: TokenStream, tokens: TokenStream) -> TokenStream { let item = tokens.clone(); @@ -1073,51 +1082,87 @@ pub fn composite_enum(_: TokenStream, _: TokenStream) -> TokenStream { pallet_macro_stub() } +/// Allows you to define some service work that can be recognized by a script or an +/// off-chain worker. /// -/// --- +/// Such a script can then create and submit all such work items at any given time. /// -/// **Rust-Analyzer users**: See the documentation of the Rust item in -/// `frame_support::pallet_macros::tasks_experimental`. +/// These work items are defined as instances of the `Task` trait (found at +/// `frame_support::traits::Task`). [`pallet:tasks_experimental`](macro@tasks_experimental) when +/// attached to an `impl` block inside a pallet, will generate an enum `Task` whose variants +/// are mapped to functions inside this `impl` block. +/// +/// Each such function must have the following set of attributes: +/// +/// * [`pallet::task_list`](macro@task_list) +/// * [`pallet::task_condition`](macro@task_condition) +/// * [`pallet::task_weight`](macro@task_weight) +/// * [`pallet::task_index`](macro@task_index) +/// +/// All of such Tasks are then aggregated into a `RuntimeTask` by +/// [`construct_runtime`](macro@construct_runtime). +/// +/// Finally, the `RuntimeTask` can then used by a script or off-chain worker to create and +/// submit such tasks via an extrinsic defined in `frame_system` called `do_task`. +/// +/// When submitted as unsigned transactions (for example via an off-chain workder), note +/// that the tasks will be executed in a random order. +/// +/// ## Example +#[doc = docify::embed!("examples/proc_main/tasks.rs", tasks_example)] +/// Now, this can be executed as follows: +#[doc = docify::embed!("examples/proc_main/tasks.rs", tasks_work)] #[proc_macro_attribute] pub fn tasks_experimental(_: TokenStream, _: TokenStream) -> TokenStream { pallet_macro_stub() } +/// Allows defining an iterator over available work items for a task. /// -/// --- +/// This attribute is attached to a function inside an `impl` block annotated with +/// [`pallet::tasks_experimental`](macro@tasks_experimental). /// -/// **Rust-Analyzer users**: See the documentation of the Rust item in -/// `frame_support::pallet_macros::task_list`. +/// It takes an iterator as input that yields a tuple with same types as the function +/// arguments. #[proc_macro_attribute] pub fn task_list(_: TokenStream, _: TokenStream) -> TokenStream { pallet_macro_stub() } +/// Allows defining conditions for a task to run. /// -/// --- +/// This attribute is attached to a function inside an `impl` block annotated with +/// [`pallet::tasks_experimental`](macro@tasks_experimental) to define the conditions for a +/// given work item to be valid. /// -/// **Rust-Analyzer users**: See the documentation of the Rust item in -/// `frame_support::pallet_macros::task_condition`. +/// It takes a closure as input, which is then used to define the condition. The closure +/// should have the same signature as the function it is attached to, except that it should +/// return a `bool` instead. #[proc_macro_attribute] pub fn task_condition(_: TokenStream, _: TokenStream) -> TokenStream { pallet_macro_stub() } +/// Allows defining the weight of a task. /// -/// --- +/// This attribute is attached to a function inside an `impl` block annotated with +/// [`pallet::tasks_experimental`](macro@tasks_experimental) define the weight of a given work +/// item. /// -/// **Rust-Analyzer users**: See the documentation of the Rust item in -/// `frame_support::pallet_macros::task_weight`. +/// It takes a closure as input, which should return a `Weight` value. #[proc_macro_attribute] pub fn task_weight(_: TokenStream, _: TokenStream) -> TokenStream { pallet_macro_stub() } +/// Allows defining an index for a task. /// -/// --- +/// This attribute is attached to a function inside an `impl` block annotated with +/// [`pallet::tasks_experimental`](macro@tasks_experimental) to define the index of a given +/// work item. /// -/// **Rust-Analyzer users**: See the documentation of the Rust item in -/// `frame_support::pallet_macros::task_index`. +/// It takes an integer literal as input, which is then used to define the index. This +/// index should be unique for each function in the `impl` block. #[proc_macro_attribute] pub fn task_index(_: TokenStream, _: TokenStream) -> TokenStream { pallet_macro_stub() @@ -1191,11 +1236,29 @@ pub fn import_section(attr: TokenStream, tokens: TokenStream) -> TokenStream { .into() } +/// Construct a runtime, with the given name and the given pallets. /// -/// --- +/// # Example: +#[doc = docify::embed!("examples/proc_main/runtime.rs", runtime_macro)] /// -/// **Rust-Analyzer users**: See the documentation of the Rust item in -/// `frame_support::runtime`. +/// # Supported Attributes: +/// +/// ## Legacy Ordering +/// +/// An optional attribute can be defined as #[frame_support::runtime(legacy_ordering)] to +/// ensure that the order of hooks is same as the order of pallets (and not based on the +/// pallet_index). This is to support legacy runtimes and should be avoided for new ones. +/// +/// # Note +/// +/// The population of the genesis storage depends on the order of pallets. So, if one of your +/// pallets depends on another pallet, the pallet that is depended upon needs to come before +/// the pallet depending on it. +/// +/// # Type definitions +/// +/// * The macro generates a type alias for each pallet to their `Pallet`. E.g. `type System = +/// frame_system::Pallet` #[proc_macro_attribute] pub fn runtime(attr: TokenStream, item: TokenStream) -> TokenStream { runtime::runtime(attr, item) diff --git a/substrate/frame/support/src/lib.rs b/substrate/frame/support/src/lib.rs index 3ad8c5fabaa..06696488e29 100644 --- a/substrate/frame/support/src/lib.rs +++ b/substrate/frame/support/src/lib.rs @@ -517,29 +517,6 @@ pub use frame_support_procedural::{ construct_runtime, match_and_insert, transactional, PalletError, RuntimeDebugNoBound, }; -/// Construct a runtime, with the given name and the given pallets. -/// -/// # Example: -#[doc = docify::embed!("src/tests/runtime.rs", runtime_macro)] -/// -/// # Supported Attributes: -/// -/// ## Legacy Ordering -/// -/// An optional attribute can be defined as #[frame_support::runtime(legacy_ordering)] to -/// ensure that the order of hooks is same as the order of pallets (and not based on the -/// pallet_index). This is to support legacy runtimes and should be avoided for new ones. -/// -/// # Note -/// -/// The population of the genesis storage depends on the order of pallets. So, if one of your -/// pallets depends on another pallet, the pallet that is depended upon needs to come before -/// the pallet depending on it. -/// -/// # Type definitions -/// -/// * The macro generates a type alias for each pallet to their `Pallet`. E.g. `type System = -/// frame_system::Pallet` pub use frame_support_procedural::runtime; #[doc(hidden)] @@ -933,26 +910,9 @@ pub mod pallet_prelude { PartialEqNoBound, RuntimeDebugNoBound, Twox128, Twox256, Twox64Concat, }; pub use codec::{Decode, Encode, MaxEncodedLen}; - pub use frame_support::pallet_macros::*; - pub use core::marker::PhantomData; - /// The optional attribute `#[inject_runtime_type]` can be attached to `RuntimeCall`, - /// `RuntimeEvent`, `RuntimeOrigin` or `PalletInfo` in an impl statement that has - /// `#[register_default_impl]` attached to indicate that this item is generated by - /// `construct_runtime`. - /// - /// Attaching this attribute to such an item ensures that the combined impl generated via - /// [`#[derive_impl(..)]`](`frame_support::derive_impl`) will use the correct - /// type auto-generated by - /// `construct_runtime!`. - #[doc = docify::embed!("src/tests/inject_runtime_type.rs", derive_impl_works_with_runtime_type_injection)] - /// - /// However, if `no_aggregated_types` is specified while using - /// `[`#[derive_impl(..)]`](`frame_support::derive_impl`)`, then these items are attached - /// verbatim to the combined impl. - #[doc = docify::embed!("src/tests/inject_runtime_type.rs", derive_impl_works_with_no_aggregated_types)] - pub use frame_support_procedural::inject_runtime_type; - pub use frame_support_procedural::register_default_impl; + pub use frame_support::pallet_macros::*; + pub use frame_support_procedural::{inject_runtime_type, register_default_impl}; pub use scale_info::TypeInfo; pub use sp_inherents::MakeFatalError; pub use sp_runtime::{ @@ -2446,76 +2406,9 @@ pub mod pallet_macros { /// ``` pub use frame_support_procedural::storage; - /// Allows defining conditions for a task to run. - /// - /// This attribute is attached to a function inside an `impl` block annotated with - /// [`pallet::tasks_experimental`](`tasks_experimental`) to define the conditions for a - /// given work item to be valid. - /// - /// It takes a closure as input, which is then used to define the condition. The closure - /// should have the same signature as the function it is attached to, except that it should - /// return a `bool` instead. - pub use frame_support_procedural::task_condition; - - /// Allows defining an index for a task. - /// - /// This attribute is attached to a function inside an `impl` block annotated with - /// [`pallet::tasks_experimental`](`tasks_experimental`) to define the index of a given - /// work item. - /// - /// It takes an integer literal as input, which is then used to define the index. This - /// index should be unique for each function in the `impl` block. - pub use frame_support_procedural::task_index; - - /// Allows defining an iterator over available work items for a task. - /// - /// This attribute is attached to a function inside an `impl` block annotated with - /// [`pallet::tasks_experimental`](`tasks_experimental`). - /// - /// It takes an iterator as input that yields a tuple with same types as the function - /// arguments. - pub use frame_support_procedural::task_list; - - /// Allows defining the weight of a task. - /// - /// This attribute is attached to a function inside an `impl` block annotated with - /// [`pallet::tasks_experimental`](`tasks_experimental`) define the weight of a given work - /// item. - /// - /// It takes a closure as input, which should return a `Weight` value. - pub use frame_support_procedural::task_weight; - - /// Allows you to define some service work that can be recognized by a script or an - /// off-chain worker. - /// - /// Such a script can then create and submit all such work items at any given time. - /// - /// These work items are defined as instances of the [`Task`](frame_support::traits::Task) - /// trait. [`pallet:tasks_experimental`](`tasks_experimental`) when attached to an `impl` - /// block inside a pallet, will generate an enum `Task` whose variants are mapped to - /// functions inside this `impl` block. - /// - /// Each such function must have the following set of attributes: - /// - /// * [`pallet::task_list`](`task_list`) - /// * [`pallet::task_condition`](`task_condition`) - /// * [`pallet::task_weight`](`task_weight`) - /// * [`pallet::task_index`](`task_index`) - /// - /// All of such Tasks are then aggregated into a `RuntimeTask` by - /// [`construct_runtime`](frame_support::construct_runtime). - /// - /// Finally, the `RuntimeTask` can then used by a script or off-chain worker to create and - /// submit such tasks via an extrinsic defined in `frame_system` called `do_task`. - /// - /// When submitted as unsigned transactions (for example via an off-chain workder), note - /// that the tasks will be executed in a random order. - /// - /// ## Example - #[doc = docify::embed!("src/tests/tasks.rs", tasks_example)] - /// Now, this can be executed as follows: - #[doc = docify::embed!("src/tests/tasks.rs", tasks_work)] - pub use frame_support_procedural::tasks_experimental; + pub use frame_support_procedural::{ + task_condition, task_index, task_list, task_weight, tasks_experimental, + }; /// Allows a pallet to declare a type as an origin. /// diff --git a/substrate/frame/support/src/tests/mod.rs b/substrate/frame/support/src/tests/mod.rs index 34652231e3b..a9f8ebdd63f 100644 --- a/substrate/frame/support/src/tests/mod.rs +++ b/substrate/frame/support/src/tests/mod.rs @@ -16,7 +16,6 @@ // limitations under the License. use super::*; -use frame_support_procedural::import_section; use sp_io::{MultiRemovalResults, TestExternalities}; use sp_metadata_ir::{ PalletStorageMetadataIR, StorageEntryMetadataIR, StorageEntryModifierIR, StorageEntryTypeIR, @@ -26,12 +25,8 @@ use sp_runtime::{generic, traits::BlakeTwo256, BuildStorage}; pub use self::frame_system::{pallet_prelude::*, Config, Pallet}; -mod inject_runtime_type; -mod runtime; mod storage_alias; -mod tasks; -#[import_section(tasks::tasks_example)] #[pallet] pub mod frame_system { #[allow(unused)] -- GitLab From f923443a3ee3e6f66fe3202dd9b62deb899836e7 Mon Sep 17 00:00:00 2001 From: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com> Date: Mon, 22 Jul 2024 15:53:02 +0200 Subject: [PATCH 072/252] Rename `assigner_on_demand` to `on_demand` (#4706) Closes #3425 --------- Co-authored-by: antonva Co-authored-by: command-bot <> --- Cargo.lock | 8 +- .../parachains/src/assigner_coretime/mod.rs | 14 +- .../parachains/src/assigner_coretime/tests.rs | 12 +- .../parachains/src/coretime/benchmarking.rs | 12 +- .../runtime/parachains/src/coretime/mod.rs | 16 +- polkadot/runtime/parachains/src/lib.rs | 2 +- polkadot/runtime/parachains/src/mock.rs | 13 +- .../benchmarking.rs | 2 +- .../migration.rs | 10 +- .../mock_helpers.rs | 0 .../{assigner_on_demand => on_demand}/mod.rs | 2 +- .../tests.rs | 257 ++++++++---------- .../types.rs | 2 +- polkadot/runtime/rococo/src/lib.rs | 14 +- polkadot/runtime/rococo/src/weights/mod.rs | 2 +- ...and.rs => runtime_parachains_on_demand.rs} | 8 +- polkadot/runtime/westend/src/lib.rs | 14 +- polkadot/runtime/westend/src/weights/mod.rs | 2 +- ...and.rs => runtime_parachains_on_demand.rs} | 8 +- prdoc/pr_4706.prdoc | 17 ++ 20 files changed, 200 insertions(+), 215 deletions(-) rename polkadot/runtime/parachains/src/{assigner_on_demand => on_demand}/benchmarking.rs (97%) rename polkadot/runtime/parachains/src/{assigner_on_demand => on_demand}/migration.rs (94%) rename polkadot/runtime/parachains/src/{assigner_on_demand => on_demand}/mock_helpers.rs (100%) rename polkadot/runtime/parachains/src/{assigner_on_demand => on_demand}/mod.rs (99%) rename polkadot/runtime/parachains/src/{assigner_on_demand => on_demand}/tests.rs (72%) rename polkadot/runtime/parachains/src/{assigner_on_demand => on_demand}/types.rs (99%) rename polkadot/runtime/rococo/src/weights/{runtime_parachains_assigner_on_demand.rs => runtime_parachains_on_demand.rs} (93%) rename polkadot/runtime/westend/src/weights/{runtime_parachains_assigner_on_demand.rs => runtime_parachains_on_demand.rs} (93%) create mode 100644 prdoc/pr_4706.prdoc diff --git a/Cargo.lock b/Cargo.lock index ead688ec9f5..0a12c1e524d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18666,18 +18666,18 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.28.2" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +checksum = "2acea373acb8c21ecb5a23741452acd2593ed44ee3d343e72baaa143bc89d0d5" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.9.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +checksum = "09e67c467c38fd24bd5499dc9a18183b31575c12ee549197e3e20d57aa4fe3b7" dependencies = [ "cc", ] diff --git a/polkadot/runtime/parachains/src/assigner_coretime/mod.rs b/polkadot/runtime/parachains/src/assigner_coretime/mod.rs index 9ed007919b8..7ee76600b42 100644 --- a/polkadot/runtime/parachains/src/assigner_coretime/mod.rs +++ b/polkadot/runtime/parachains/src/assigner_coretime/mod.rs @@ -28,7 +28,7 @@ mod mock_helpers; mod tests; use crate::{ - assigner_on_demand, configuration, + configuration, on_demand, paras::AssignCoretime, scheduler::common::{Assignment, AssignmentProvider}, ParaId, @@ -201,10 +201,7 @@ pub mod pallet { pub struct Pallet(_); #[pallet::config] - pub trait Config: - frame_system::Config + configuration::Config + assigner_on_demand::Config - { - } + pub trait Config: frame_system::Config + configuration::Config + on_demand::Config {} /// Scheduled assignment sets. /// @@ -281,8 +278,7 @@ impl AssignmentProvider> for Pallet { match a_type { CoreAssignment::Idle => None, - CoreAssignment::Pool => - assigner_on_demand::Pallet::::pop_assignment_for_core(core_idx), + CoreAssignment::Pool => on_demand::Pallet::::pop_assignment_for_core(core_idx), CoreAssignment::Task(para_id) => Some(Assignment::Bulk((*para_id).into())), } }) @@ -291,7 +287,7 @@ impl AssignmentProvider> for Pallet { fn report_processed(assignment: Assignment) { match assignment { Assignment::Pool { para_id, core_index } => - assigner_on_demand::Pallet::::report_processed(para_id, core_index), + on_demand::Pallet::::report_processed(para_id, core_index), Assignment::Bulk(_) => {}, } } @@ -304,7 +300,7 @@ impl AssignmentProvider> for Pallet { fn push_back_assignment(assignment: Assignment) { match assignment { Assignment::Pool { para_id, core_index } => - assigner_on_demand::Pallet::::push_back_assignment(para_id, core_index), + on_demand::Pallet::::push_back_assignment(para_id, core_index), Assignment::Bulk(_) => { // Session changes are rough. We just drop assignments that did not make it on a // session boundary. This seems sensible as bulk is region based. Meaning, even if diff --git a/polkadot/runtime/parachains/src/assigner_coretime/tests.rs b/polkadot/runtime/parachains/src/assigner_coretime/tests.rs index 9b0cbcb2d7d..e7994b8ef82 100644 --- a/polkadot/runtime/parachains/src/assigner_coretime/tests.rs +++ b/polkadot/runtime/parachains/src/assigner_coretime/tests.rs @@ -20,8 +20,8 @@ use crate::{ assigner_coretime::{mock_helpers::GenesisConfigBuilder, pallet::Error, Schedule}, initializer::SessionChangeNotification, mock::{ - new_test_ext, Balances, CoretimeAssigner, OnDemandAssigner, Paras, ParasShared, - RuntimeOrigin, Scheduler, System, Test, + new_test_ext, Balances, CoretimeAssigner, OnDemand, Paras, ParasShared, RuntimeOrigin, + Scheduler, System, Test, }, paras::{ParaGenesisArgs, ParaKind}, scheduler::common::Assignment, @@ -75,7 +75,7 @@ fn run_to_block( Scheduler::initializer_initialize(b + 1); // Update the spot traffic and revenue on every block. - OnDemandAssigner::on_initialize(b + 1); + OnDemand::on_initialize(b + 1); // In the real runtime this is expected to be called by the `InclusionInherent` pallet. Scheduler::free_cores_and_fill_claim_queue(BTreeMap::new(), b + 1); @@ -527,11 +527,7 @@ fn pop_assignment_for_core_works() { schedule_blank_para(para_id, ParaKind::Parathread); Balances::make_free_balance_be(&alice, amt); run_to_block(1, |n| if n == 1 { Some(Default::default()) } else { None }); - assert_ok!(OnDemandAssigner::place_order_allow_death( - RuntimeOrigin::signed(alice), - amt, - para_id - )); + assert_ok!(OnDemand::place_order_allow_death(RuntimeOrigin::signed(alice), amt, para_id)); // Case 1: Assignment idle assert_ok!(CoretimeAssigner::assign_core( diff --git a/polkadot/runtime/parachains/src/coretime/benchmarking.rs b/polkadot/runtime/parachains/src/coretime/benchmarking.rs index 028250e188e..6d593f1954f 100644 --- a/polkadot/runtime/parachains/src/coretime/benchmarking.rs +++ b/polkadot/runtime/parachains/src/coretime/benchmarking.rs @@ -31,20 +31,20 @@ mod benchmarks { #[benchmark] fn request_revenue_at() { let root_origin = ::RuntimeOrigin::root(); - let mhr = ::MaxHistoricalRevenue::get(); + let mhr = ::MaxHistoricalRevenue::get(); frame_system::Pallet::::set_block_number((mhr + 2).into()); - let minimum_balance = ::Currency::minimum_balance(); + let minimum_balance = ::Currency::minimum_balance(); let rev: BoundedVec< - <::Currency as frame_support::traits::Currency< + <::Currency as frame_support::traits::Currency< T::AccountId, >>::Balance, T::MaxHistoricalRevenue, > = BoundedVec::try_from((1..=mhr).map(|v| minimum_balance * v.into()).collect::>()) .unwrap(); - assigner_on_demand::Revenue::::put(rev); + on_demand::Revenue::::put(rev); - ::Currency::make_free_balance_be( - &>::account_id(), + ::Currency::make_free_balance_be( + &>::account_id(), minimum_balance * (mhr * (mhr + 1)).into(), ); diff --git a/polkadot/runtime/parachains/src/coretime/mod.rs b/polkadot/runtime/parachains/src/coretime/mod.rs index 1c38b398923..fbd8935f199 100644 --- a/polkadot/runtime/parachains/src/coretime/mod.rs +++ b/polkadot/runtime/parachains/src/coretime/mod.rs @@ -48,8 +48,8 @@ use xcm_executor::traits::TransactAsset; use crate::{ assigner_coretime::{self, PartsOf57600}, - assigner_on_demand, initializer::{OnNewSession, SessionChangeNotification}, + on_demand, origin::{ensure_parachain, Origin}, }; @@ -116,6 +116,7 @@ enum CoretimeCalls { #[frame_support::pallet] pub mod pallet { + use crate::configuration; use sp_runtime::traits::TryConvert; use xcm::v4::InteriorLocation; @@ -128,9 +129,7 @@ pub mod pallet { pub struct Pallet(_); #[pallet::config] - pub trait Config: - frame_system::Config + assigner_coretime::Config + assigner_on_demand::Config - { + pub trait Config: frame_system::Config + assigner_coretime::Config + on_demand::Config { type RuntimeOrigin: From<::RuntimeOrigin> + Into::RuntimeOrigin>>; type RuntimeEvent: From> + IsType<::RuntimeEvent>; @@ -308,7 +307,7 @@ impl Pallet { // When cannot be in the future. ensure!(until_bnf <= now, Error::::RequestedFutureRevenue); - let amount = >::claim_revenue_until(until_bnf); + let amount = >::claim_revenue_until(until_bnf); log::debug!(target: LOG_TARGET, "Revenue info requested: {:?}", amount); let raw_revenue: Balance = amount.try_into().map_err(|_| { @@ -365,14 +364,15 @@ fn do_notify_revenue(when: BlockNumber, raw_revenue: Balance) -> Resu if raw_revenue > 0 { let on_demand_pot = - T::AccountToLocation::try_convert(&>::account_id()) - .map_err(|err| { + T::AccountToLocation::try_convert(&>::account_id()).map_err( + |err| { log::error!( target: LOG_TARGET, "Failed to convert on-demand pot account to XCM location: {err:?}", ); XcmError::InvalidLocation - })?; + }, + )?; let withdrawn = T::AssetTransactor::withdraw_asset(&asset, &on_demand_pot, None)?; diff --git a/polkadot/runtime/parachains/src/lib.rs b/polkadot/runtime/parachains/src/lib.rs index f2995d770e7..f1162e1cc21 100644 --- a/polkadot/runtime/parachains/src/lib.rs +++ b/polkadot/runtime/parachains/src/lib.rs @@ -24,7 +24,6 @@ #![cfg_attr(not(feature = "std"), no_std)] pub mod assigner_coretime; -pub mod assigner_on_demand; pub mod assigner_parachains; pub mod configuration; pub mod coretime; @@ -34,6 +33,7 @@ pub mod hrmp; pub mod inclusion; pub mod initializer; pub mod metrics; +pub mod on_demand; pub mod origin; pub mod paras; pub mod paras_inherent; diff --git a/polkadot/runtime/parachains/src/mock.rs b/polkadot/runtime/parachains/src/mock.rs index 45576668f6d..fbe9ebf809b 100644 --- a/polkadot/runtime/parachains/src/mock.rs +++ b/polkadot/runtime/parachains/src/mock.rs @@ -17,10 +17,9 @@ //! Mocks for all the traits. use crate::{ - assigner_coretime, assigner_on_demand, assigner_parachains, configuration, coretime, disputes, - dmp, hrmp, + assigner_coretime, assigner_parachains, configuration, coretime, disputes, dmp, hrmp, inclusion::{self, AggregateMessageOrigin, UmpQueueId}, - initializer, origin, paras, + initializer, on_demand, origin, paras, paras::ParaKind, paras_inherent, scheduler, scheduler::common::AssignmentProvider, @@ -78,7 +77,7 @@ frame_support::construct_runtime!( Scheduler: scheduler, MockAssigner: mock_assigner, ParachainsAssigner: assigner_parachains, - OnDemandAssigner: assigner_on_demand, + OnDemand: on_demand, CoretimeAssigner: assigner_coretime, Coretime: coretime, Initializer: initializer, @@ -401,11 +400,11 @@ parameter_types! { pub const OnDemandPalletId: PalletId = PalletId(*b"py/ondmd"); } -impl assigner_on_demand::Config for Test { +impl on_demand::Config for Test { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type TrafficDefaultValue = OnDemandTrafficDefaultValue; - type WeightInfo = crate::assigner_on_demand::TestWeightInfo; + type WeightInfo = crate::on_demand::TestWeightInfo; type MaxHistoricalRevenue = MaxHistoricalRevenue; type PalletId = OnDemandPalletId; } @@ -540,7 +539,7 @@ pub mod mock_assigner { // We don't care about core affinity in the test assigner fn report_processed(_assignment: Assignment) {} - // The results of this are tested in assigner_on_demand tests. No need to represent it + // The results of this are tested in on_demand tests. No need to represent it // in the mock assigner. fn push_back_assignment(_assignment: Assignment) {} diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/benchmarking.rs b/polkadot/runtime/parachains/src/on_demand/benchmarking.rs similarity index 97% rename from polkadot/runtime/parachains/src/assigner_on_demand/benchmarking.rs rename to polkadot/runtime/parachains/src/on_demand/benchmarking.rs index b0ebfe77a96..d494a77a5c4 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/benchmarking.rs +++ b/polkadot/runtime/parachains/src/on_demand/benchmarking.rs @@ -94,7 +94,7 @@ mod benchmarks { impl_benchmark_test_suite!( Pallet, crate::mock::new_test_ext( - crate::assigner_on_demand::mock_helpers::GenesisConfigBuilder::default().build() + crate::on_demand::mock_helpers::GenesisConfigBuilder::default().build() ), crate::mock::Test ); diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs b/polkadot/runtime/parachains/src/on_demand/migration.rs similarity index 94% rename from polkadot/runtime/parachains/src/assigner_on_demand/migration.rs rename to polkadot/runtime/parachains/src/on_demand/migration.rs index 03f63d7333b..6cc25b20afb 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/migration.rs +++ b/polkadot/runtime/parachains/src/on_demand/migration.rs @@ -47,7 +47,7 @@ mod v0 { mod v1 { use super::*; - use crate::assigner_on_demand::LOG_TARGET; + use crate::on_demand::LOG_TARGET; /// Migration to V1 pub struct UncheckedMigrateToV1(core::marker::PhantomData); @@ -142,7 +142,7 @@ pub type MigrateV0ToV1 = VersionedMigration< #[cfg(test)] mod tests { use super::{v0, v1, UncheckedOnRuntimeUpgrade, Weight}; - use crate::mock::{new_test_ext, MockGenesisConfig, OnDemandAssigner, Test}; + use crate::mock::{new_test_ext, MockGenesisConfig, OnDemand, Test}; use polkadot_primitives::Id as ParaId; #[test] @@ -159,7 +159,7 @@ mod tests { let old_queue = v0::OnDemandQueue::::get(); assert_eq!(old_queue.len(), 5); // New queue has 0 orders - assert_eq!(OnDemandAssigner::get_queue_status().size(), 0); + assert_eq!(OnDemand::get_queue_status().size(), 0); // For tests, db weight is zero. assert_eq!( @@ -168,10 +168,10 @@ mod tests { ); // New queue has 5 orders - assert_eq!(OnDemandAssigner::get_queue_status().size(), 5); + assert_eq!(OnDemand::get_queue_status().size(), 5); // Compare each entry from the old queue with the entry in the new queue. - old_queue.iter().zip(OnDemandAssigner::get_free_entries().iter()).for_each( + old_queue.iter().zip(OnDemand::get_free_entries().iter()).for_each( |(old_enq, new_enq)| { assert_eq!(old_enq.para_id, new_enq.para_id); }, diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/mock_helpers.rs b/polkadot/runtime/parachains/src/on_demand/mock_helpers.rs similarity index 100% rename from polkadot/runtime/parachains/src/assigner_on_demand/mock_helpers.rs rename to polkadot/runtime/parachains/src/on_demand/mock_helpers.rs diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs b/polkadot/runtime/parachains/src/on_demand/mod.rs similarity index 99% rename from polkadot/runtime/parachains/src/assigner_on_demand/mod.rs rename to polkadot/runtime/parachains/src/on_demand/mod.rs index f045e957a69..dc046c194fd 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/mod.rs +++ b/polkadot/runtime/parachains/src/on_demand/mod.rs @@ -66,7 +66,7 @@ use types::{ SpotTrafficCalculationErr, }; -const LOG_TARGET: &str = "runtime::parachains::assigner-on-demand"; +const LOG_TARGET: &str = "runtime::parachains::on-demand"; pub use pallet::*; diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs b/polkadot/runtime/parachains/src/on_demand/tests.rs similarity index 72% rename from polkadot/runtime/parachains/src/assigner_on_demand/tests.rs rename to polkadot/runtime/parachains/src/on_demand/tests.rs index 0bad4346cfd..97429541181 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/tests.rs +++ b/polkadot/runtime/parachains/src/on_demand/tests.rs @@ -17,17 +17,17 @@ use super::*; use crate::{ - assigner_on_demand::{ + initializer::SessionChangeNotification, + mock::{ + new_test_ext, Balances, OnDemand, Paras, ParasShared, RuntimeOrigin, Scheduler, System, + Test, + }, + on_demand::{ self, mock_helpers::GenesisConfigBuilder, types::{QueueIndex, ReverseQueueIndex}, Error, }, - initializer::SessionChangeNotification, - mock::{ - new_test_ext, Balances, OnDemandAssigner, Paras, ParasShared, RuntimeOrigin, Scheduler, - System, Test, - }, paras::{ParaGenesisArgs, ParaKind}, }; use alloc::collections::btree_map::BTreeMap; @@ -83,7 +83,7 @@ fn run_to_block( Scheduler::initializer_initialize(b + 1); // Update the spot traffic and revenue on every block. - OnDemandAssigner::on_initialize(b + 1); + OnDemand::on_initialize(b + 1); // In the real runtime this is expected to be called by the `InclusionInherent` pallet. Scheduler::free_cores_and_fill_claim_queue(BTreeMap::new(), b + 1); @@ -99,7 +99,7 @@ fn place_order_run_to_blocknumber(para_id: ParaId, blocknumber: Option::SpotPriceHigherThanMaxAmount, ); // Does not work with insufficient balance assert_noop!( - OnDemandAssigner::place_order_allow_death(RuntimeOrigin::signed(alice), amt, para_id), + OnDemand::place_order_allow_death(RuntimeOrigin::signed(alice), amt, para_id), BalancesError::::InsufficientBalance ); // Works Balances::make_free_balance_be(&alice, amt); run_to_block(101, |n| if n == 101 { Some(Default::default()) } else { None }); - assert_ok!(OnDemandAssigner::place_order_allow_death( - RuntimeOrigin::signed(alice), - amt, - para_id - )); + assert_ok!(OnDemand::place_order_allow_death(RuntimeOrigin::signed(alice), amt, para_id)); }); } @@ -336,11 +325,7 @@ fn place_order_keep_alive_keeps_alive() { assert!(Paras::is_parathread(para_id)); assert_noop!( - OnDemandAssigner::place_order_keep_alive( - RuntimeOrigin::signed(alice), - max_amt, - para_id - ), + OnDemand::place_order_keep_alive(RuntimeOrigin::signed(alice), max_amt, para_id), BalancesError::::InsufficientBalance ); }); @@ -357,7 +342,7 @@ fn pop_assignment_for_core_works() { run_to_block(11, |n| if n == 11 { Some(Default::default()) } else { None }); // Pop should return none with empty queue - assert_eq!(OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)), None); + assert_eq!(OnDemand::pop_assignment_for_core(CoreIndex(0)), None); // Add enough assignments to the order queue. for _ in 0..2 { @@ -367,19 +352,19 @@ fn pop_assignment_for_core_works() { // Popped assignments should be for the correct paras and cores assert_eq!( - OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)).map(|a| a.para_id()), + OnDemand::pop_assignment_for_core(CoreIndex(0)).map(|a| a.para_id()), Some(para_a) ); assert_eq!( - OnDemandAssigner::pop_assignment_for_core(CoreIndex(1)).map(|a| a.para_id()), + OnDemand::pop_assignment_for_core(CoreIndex(1)).map(|a| a.para_id()), Some(para_b) ); assert_eq!( - OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)).map(|a| a.para_id()), + OnDemand::pop_assignment_for_core(CoreIndex(0)).map(|a| a.para_id()), Some(para_a) ); assert_eq!( - OnDemandAssigner::pop_assignment_for_core(CoreIndex(1)).map(|a| a.para_id()), + OnDemand::pop_assignment_for_core(CoreIndex(1)).map(|a| a.para_id()), Some(para_b) ); }); @@ -400,30 +385,21 @@ fn push_back_assignment_works() { place_order_run_to_101(para_b); // Pop order a - assert_eq!( - OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)).unwrap().para_id(), - para_a - ); + assert_eq!(OnDemand::pop_assignment_for_core(CoreIndex(0)).unwrap().para_id(), para_a); // Para a should have affinity for core 0 - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().count, 1); - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().core_index, CoreIndex(0)); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().count, 1); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().core_index, CoreIndex(0)); // Push back order a - OnDemandAssigner::push_back_assignment(para_a, CoreIndex(0)); + OnDemand::push_back_assignment(para_a, CoreIndex(0)); // Para a should have no affinity - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).is_none(), true); + assert_eq!(OnDemand::get_affinity_map(para_a).is_none(), true); // Queue should contain orders a, b. A in front of b. - assert_eq!( - OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)).unwrap().para_id(), - para_a - ); - assert_eq!( - OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)).unwrap().para_id(), - para_b - ); + assert_eq!(OnDemand::pop_assignment_for_core(CoreIndex(0)).unwrap().para_id(), para_a); + assert_eq!(OnDemand::pop_assignment_for_core(CoreIndex(0)).unwrap().para_id(), para_b); }); } @@ -439,8 +415,8 @@ fn affinity_prohibits_parallel_scheduling() { run_to_block(11, |n| if n == 11 { Some(Default::default()) } else { None }); // There should be no affinity before starting. - assert!(OnDemandAssigner::get_affinity_map(para_a).is_none()); - assert!(OnDemandAssigner::get_affinity_map(para_b).is_none()); + assert!(OnDemand::get_affinity_map(para_a).is_none()); + assert!(OnDemand::get_affinity_map(para_b).is_none()); // Add 2 assignments for para_a for every para_b. place_order_run_to_101(para_a); @@ -449,22 +425,22 @@ fn affinity_prohibits_parallel_scheduling() { // Approximate having 1 core. for _ in 0..3 { - assert!(OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)).is_some()); + assert!(OnDemand::pop_assignment_for_core(CoreIndex(0)).is_some()); } - assert!(OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)).is_none()); + assert!(OnDemand::pop_assignment_for_core(CoreIndex(0)).is_none()); // Affinity on one core is meaningless. - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().count, 2); - assert_eq!(OnDemandAssigner::get_affinity_map(para_b).unwrap().count, 1); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().count, 2); + assert_eq!(OnDemand::get_affinity_map(para_b).unwrap().count, 1); assert_eq!( - OnDemandAssigner::get_affinity_map(para_a).unwrap().core_index, - OnDemandAssigner::get_affinity_map(para_b).unwrap().core_index, + OnDemand::get_affinity_map(para_a).unwrap().core_index, + OnDemand::get_affinity_map(para_b).unwrap().core_index, ); // Clear affinity - OnDemandAssigner::report_processed(para_a, 0.into()); - OnDemandAssigner::report_processed(para_a, 0.into()); - OnDemandAssigner::report_processed(para_b, 0.into()); + OnDemand::report_processed(para_a, 0.into()); + OnDemand::report_processed(para_a, 0.into()); + OnDemand::report_processed(para_b, 0.into()); // Add 2 assignments for para_a for every para_b. place_order_run_to_101(para_a); @@ -473,25 +449,25 @@ fn affinity_prohibits_parallel_scheduling() { // Approximate having 3 cores. CoreIndex 2 should be unable to obtain an assignment for _ in 0..3 { - OnDemandAssigner::pop_assignment_for_core(CoreIndex(0)); - OnDemandAssigner::pop_assignment_for_core(CoreIndex(1)); - assert!(OnDemandAssigner::pop_assignment_for_core(CoreIndex(2)).is_none()); + OnDemand::pop_assignment_for_core(CoreIndex(0)); + OnDemand::pop_assignment_for_core(CoreIndex(1)); + assert!(OnDemand::pop_assignment_for_core(CoreIndex(2)).is_none()); } // Affinity should be the same as before, but on different cores. - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().count, 2); - assert_eq!(OnDemandAssigner::get_affinity_map(para_b).unwrap().count, 1); - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().core_index, CoreIndex(0)); - assert_eq!(OnDemandAssigner::get_affinity_map(para_b).unwrap().core_index, CoreIndex(1)); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().count, 2); + assert_eq!(OnDemand::get_affinity_map(para_b).unwrap().count, 1); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().core_index, CoreIndex(0)); + assert_eq!(OnDemand::get_affinity_map(para_b).unwrap().core_index, CoreIndex(1)); // Clear affinity - OnDemandAssigner::report_processed(para_a, CoreIndex(0)); - OnDemandAssigner::report_processed(para_a, CoreIndex(0)); - OnDemandAssigner::report_processed(para_b, CoreIndex(1)); + OnDemand::report_processed(para_a, CoreIndex(0)); + OnDemand::report_processed(para_a, CoreIndex(0)); + OnDemand::report_processed(para_b, CoreIndex(1)); // There should be no affinity after clearing. - assert!(OnDemandAssigner::get_affinity_map(para_a).is_none()); - assert!(OnDemandAssigner::get_affinity_map(para_b).is_none()); + assert!(OnDemand::get_affinity_map(para_a).is_none()); + assert!(OnDemand::get_affinity_map(para_b).is_none()); }); } @@ -505,7 +481,7 @@ fn affinity_changes_work() { run_to_block(11, |n| if n == 11 { Some(Default::default()) } else { None }); // There should be no affinity before starting. - assert!(OnDemandAssigner::get_affinity_map(para_a).is_none()); + assert!(OnDemand::get_affinity_map(para_a).is_none()); // Add enough assignments to the order queue. for _ in 0..10 { @@ -513,46 +489,46 @@ fn affinity_changes_work() { } // There should be no affinity before the scheduler pops. - assert!(OnDemandAssigner::get_affinity_map(para_a).is_none()); + assert!(OnDemand::get_affinity_map(para_a).is_none()); - OnDemandAssigner::pop_assignment_for_core(core_index); + OnDemand::pop_assignment_for_core(core_index); // Affinity count is 1 after popping. - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().count, 1); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().count, 1); - OnDemandAssigner::report_processed(para_a, 0.into()); - OnDemandAssigner::pop_assignment_for_core(core_index); + OnDemand::report_processed(para_a, 0.into()); + OnDemand::pop_assignment_for_core(core_index); // Affinity count is 1 after popping with a previous para. - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().count, 1); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().count, 1); for _ in 0..3 { - OnDemandAssigner::pop_assignment_for_core(core_index); + OnDemand::pop_assignment_for_core(core_index); } // Affinity count is 4 after popping 3 times without a previous para. - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().count, 4); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().count, 4); for _ in 0..5 { - OnDemandAssigner::report_processed(para_a, 0.into()); - assert!(OnDemandAssigner::pop_assignment_for_core(core_index).is_some()); + OnDemand::report_processed(para_a, 0.into()); + assert!(OnDemand::pop_assignment_for_core(core_index).is_some()); } // Affinity count should still be 4 but queue should be empty. - assert!(OnDemandAssigner::pop_assignment_for_core(core_index).is_none()); - assert_eq!(OnDemandAssigner::get_affinity_map(para_a).unwrap().count, 4); + assert!(OnDemand::pop_assignment_for_core(core_index).is_none()); + assert_eq!(OnDemand::get_affinity_map(para_a).unwrap().count, 4); // Pop 4 times and get to exactly 0 (None) affinity. for _ in 0..4 { - OnDemandAssigner::report_processed(para_a, 0.into()); - assert!(OnDemandAssigner::pop_assignment_for_core(core_index).is_none()); + OnDemand::report_processed(para_a, 0.into()); + assert!(OnDemand::pop_assignment_for_core(core_index).is_none()); } - assert!(OnDemandAssigner::get_affinity_map(para_a).is_none()); + assert!(OnDemand::get_affinity_map(para_a).is_none()); // Decreasing affinity beyond 0 should still be None. - OnDemandAssigner::report_processed(para_a, 0.into()); - assert!(OnDemandAssigner::pop_assignment_for_core(core_index).is_none()); - assert!(OnDemandAssigner::get_affinity_map(para_a).is_none()); + OnDemand::report_processed(para_a, 0.into()); + assert!(OnDemand::pop_assignment_for_core(core_index).is_none()); + assert!(OnDemand::get_affinity_map(para_a).is_none()); }); } @@ -577,28 +553,25 @@ fn new_affinity_for_a_core_must_come_from_free_entries() { }); // There are 4 entries in free_entries. - let start_free_entries = OnDemandAssigner::get_free_entries().len(); + let start_free_entries = OnDemand::get_free_entries().len(); assert_eq!(start_free_entries, 4); // Pop assignments on all cores. core_indices.iter().enumerate().for_each(|(n, core_index)| { // There is no affinity on the core prior to popping. - assert!(OnDemandAssigner::get_affinity_entries(*core_index).is_empty()); + assert!(OnDemand::get_affinity_entries(*core_index).is_empty()); // There's always an order to be popped for each core. - let free_entries = OnDemandAssigner::get_free_entries(); + let free_entries = OnDemand::get_free_entries(); let next_order = free_entries.peek(); // There is no affinity on the paraid prior to popping. - assert!(OnDemandAssigner::get_affinity_map(next_order.unwrap().para_id).is_none()); + assert!(OnDemand::get_affinity_map(next_order.unwrap().para_id).is_none()); - match OnDemandAssigner::pop_assignment_for_core(*core_index) { + match OnDemand::pop_assignment_for_core(*core_index) { Some(assignment) => { // The popped assignment came from free entries. - assert_eq!( - start_free_entries - 1 - n, - OnDemandAssigner::get_free_entries().len() - ); + assert_eq!(start_free_entries - 1 - n, OnDemand::get_free_entries().len()); // The popped assignment has the same para id as the next order. assert_eq!(assignment.para_id(), next_order.unwrap().para_id); }, @@ -607,11 +580,11 @@ fn new_affinity_for_a_core_must_come_from_free_entries() { }); // All entries have been removed from free_entries. - assert!(OnDemandAssigner::get_free_entries().is_empty()); + assert!(OnDemand::get_free_entries().is_empty()); // All chains have an affinity count of 1. parachains.iter().for_each(|chain| { - assert_eq!(OnDemandAssigner::get_affinity_map(*chain).unwrap().count, 1); + assert_eq!(OnDemand::get_affinity_map(*chain).unwrap().count, 1); }); }); } @@ -691,7 +664,7 @@ fn queue_status_size_fn_works() { schedule_blank_para(*chain, ParaKind::Parathread); }); - assert_eq!(OnDemandAssigner::get_queue_status().size(), 0); + assert_eq!(OnDemand::get_queue_status().size(), 0); run_to_block(11, |n| if n == 11 { Some(Default::default()) } else { None }); @@ -703,27 +676,27 @@ fn queue_status_size_fn_works() { }); // 6 orders in free entries - assert_eq!(OnDemandAssigner::get_free_entries().len(), 6); + assert_eq!(OnDemand::get_free_entries().len(), 6); // 6 orders via queue status size assert_eq!( - OnDemandAssigner::get_free_entries().len(), - OnDemandAssigner::get_queue_status().size() as usize + OnDemand::get_free_entries().len(), + OnDemand::get_queue_status().size() as usize ); core_indices.iter().for_each(|core_index| { - OnDemandAssigner::pop_assignment_for_core(*core_index); + OnDemand::pop_assignment_for_core(*core_index); }); // There should be 2 orders in the scheduler's claimqueue, // 2 in assorted AffinityMaps and 2 in free. // ParaId 111 - assert_eq!(OnDemandAssigner::get_affinity_entries(core_indices[0]).len(), 1); + assert_eq!(OnDemand::get_affinity_entries(core_indices[0]).len(), 1); // ParaId 222 - assert_eq!(OnDemandAssigner::get_affinity_entries(core_indices[1]).len(), 1); + assert_eq!(OnDemand::get_affinity_entries(core_indices[1]).len(), 1); // Free entries are from ParaId 333 - assert_eq!(OnDemandAssigner::get_free_entries().len(), 2); + assert_eq!(OnDemand::get_free_entries().len(), 2); // For a total size of 4. - assert_eq!(OnDemandAssigner::get_queue_status().size(), 4) + assert_eq!(OnDemand::get_queue_status().size(), 4) }); } @@ -734,25 +707,30 @@ fn revenue_information_fetching_works() { schedule_blank_para(para_a, ParaKind::Parathread); // Mock assigner sets max revenue history to 10. run_to_block(10, |n| if n == 10 { Some(Default::default()) } else { None }); - let revenue = OnDemandAssigner::claim_revenue_until(10); + let revenue = OnDemand::claim_revenue_until(10); // No revenue should be recorded. assert_eq!(revenue, 0); // Place one order place_order_run_to_blocknumber(para_a, Some(11)); - let revenue = OnDemandAssigner::get_revenue(); - let claim = OnDemandAssigner::claim_revenue_until(11); + let revenue = OnDemand::get_revenue(); + let amt = OnDemand::claim_revenue_until(11); // Revenue until the current block is still zero as "until" is non-inclusive - assert_eq!(claim, 0); + assert_eq!(amt, 0); - run_to_block(12, |n| if n == 12 { Some(Default::default()) } else { None }); - let claim = OnDemandAssigner::claim_revenue_until(12); + let amt = OnDemand::claim_revenue_until(12); // Revenue for a single order should be recorded and shouldn't have been pruned by the // previous call - assert_eq!(claim, revenue[0]); + assert_eq!(amt, revenue[0]); + + run_to_block(12, |n| if n == 12 { Some(Default::default()) } else { None }); + let revenue = OnDemand::claim_revenue_until(13); + + // No revenue should be recorded. + assert_eq!(revenue, 0); // Place many orders place_order(para_a); @@ -762,9 +740,9 @@ fn revenue_information_fetching_works() { place_order(para_a); - run_to_block(15, |n| if n == 14 { Some(Default::default()) } else { None }); + run_to_block(14, |n| if n == 14 { Some(Default::default()) } else { None }); - let revenue = OnDemandAssigner::claim_revenue_until(15); + let revenue = OnDemand::claim_revenue_until(15); // All 3 orders should be accounted for. assert_eq!(revenue, 30_000); @@ -772,13 +750,13 @@ fn revenue_information_fetching_works() { // Place one order place_order_run_to_blocknumber(para_a, Some(16)); - let revenue = OnDemandAssigner::claim_revenue_until(15); + let revenue = OnDemand::claim_revenue_until(15); // Order is not in range of the revenue_until call assert_eq!(revenue, 0); - run_to_block(21, |n| if n == 20 { Some(Default::default()) } else { None }); - let revenue = OnDemandAssigner::claim_revenue_until(21); + run_to_block(20, |n| if n == 20 { Some(Default::default()) } else { None }); + let revenue = OnDemand::claim_revenue_until(21); assert_eq!(revenue, 10_000); // Make sure overdue revenue is accumulated @@ -786,8 +764,7 @@ fn revenue_information_fetching_works() { run_to_block(i, |n| if n % 10 == 0 { Some(Default::default()) } else { None }); place_order(para_a); } - run_to_block(36, |_| None); - let revenue = OnDemandAssigner::claim_revenue_until(36); + let revenue = OnDemand::claim_revenue_until(36); assert_eq!(revenue, 150_000); }); } @@ -796,7 +773,7 @@ fn revenue_information_fetching_works() { fn pot_account_is_immortal() { new_test_ext(GenesisConfigBuilder::default().build()).execute_with(|| { let para_a = ParaId::from(111); - let pot = OnDemandAssigner::account_id(); + let pot = OnDemand::account_id(); assert!(!System::account_exists(&pot)); schedule_blank_para(para_a, ParaKind::Parathread); // Mock assigner sets max revenue history to 10. @@ -807,7 +784,7 @@ fn pot_account_is_immortal() { assert!(purchase_revenue > 0); run_to_block(15, |_| None); - let _imb = ::Currency::withdraw( + let _imb = ::Currency::withdraw( &pot, purchase_revenue, WithdrawReasons::FEE, @@ -824,7 +801,7 @@ fn pot_account_is_immortal() { assert!(purchase_revenue > 0); run_to_block(25, |_| None); - let _imb = ::Currency::withdraw( + let _imb = ::Currency::withdraw( &pot, purchase_revenue, WithdrawReasons::FEE, diff --git a/polkadot/runtime/parachains/src/assigner_on_demand/types.rs b/polkadot/runtime/parachains/src/on_demand/types.rs similarity index 99% rename from polkadot/runtime/parachains/src/assigner_on_demand/types.rs rename to polkadot/runtime/parachains/src/on_demand/types.rs index 96367b971fe..c87e7abaf86 100644 --- a/polkadot/runtime/parachains/src/assigner_on_demand/types.rs +++ b/polkadot/runtime/parachains/src/on_demand/types.rs @@ -116,7 +116,7 @@ impl QueueStatusType { pub fn consume_index(&mut self, removed_index: QueueIndex) { if removed_index != self.smallest_index { self.freed_indices.push(removed_index.reverse()); - return; + return } let mut index = self.smallest_index.0.overflowing_add(1).0; // Even more to advance? diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs index c7da339b981..058b9c279f2 100644 --- a/polkadot/runtime/rococo/src/lib.rs +++ b/polkadot/runtime/rococo/src/lib.rs @@ -53,14 +53,14 @@ use polkadot_runtime_common::{ BlockHashCount, BlockLength, SlowAdjustingFeeUpdate, }; use polkadot_runtime_parachains::{ - assigner_coretime as parachains_assigner_coretime, - assigner_on_demand as parachains_assigner_on_demand, configuration as parachains_configuration, + assigner_coretime as parachains_assigner_coretime, configuration as parachains_configuration, configuration::ActiveConfigHrmpChannelSizeAndCapacityRatio, coretime, disputes as parachains_disputes, disputes::slashing as parachains_slashing, dmp as parachains_dmp, hrmp as parachains_hrmp, inclusion as parachains_inclusion, inclusion::{AggregateMessageOrigin, UmpQueueId}, - initializer as parachains_initializer, origin as parachains_origin, paras as parachains_paras, + initializer as parachains_initializer, on_demand as parachains_on_demand, + origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, runtime_api_impl::{ v10 as parachains_runtime_api_impl, vstaging as vstaging_parachains_runtime_api_impl, @@ -1096,11 +1096,11 @@ parameter_types! { pub const OnDemandPalletId: PalletId = PalletId(*b"py/ondmd"); } -impl parachains_assigner_on_demand::Config for Runtime { +impl parachains_on_demand::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type TrafficDefaultValue = OnDemandTrafficDefaultValue; - type WeightInfo = weights::runtime_parachains_assigner_on_demand::WeightInfo; + type WeightInfo = weights::runtime_parachains_on_demand::WeightInfo; type MaxHistoricalRevenue = MaxHistoricalRevenue; type PalletId = OnDemandPalletId; } @@ -1482,7 +1482,7 @@ construct_runtime! { ParasDisputes: parachains_disputes = 62, ParasSlashing: parachains_slashing = 63, MessageQueue: pallet_message_queue = 64, - OnDemandAssignmentProvider: parachains_assigner_on_demand = 66, + OnDemandAssignmentProvider: parachains_on_demand = 66, CoretimeAssignmentProvider: parachains_assigner_coretime = 68, // Parachain Onboarding Pallets. Start indices at 70 to leave room. @@ -1663,7 +1663,7 @@ pub mod migrations { // This needs to come after the `parachains_configuration` above as we are reading the configuration. coretime::migration::MigrateToCoretime, parachains_configuration::migration::v12::MigrateToV12, - parachains_assigner_on_demand::migration::MigrateV0ToV1, + parachains_on_demand::migration::MigrateV0ToV1, // permanent pallet_xcm::migration::MigrateToLatestXcmVersion, diff --git a/polkadot/runtime/rococo/src/weights/mod.rs b/polkadot/runtime/rococo/src/weights/mod.rs index c9204cc944f..0512a393a6c 100644 --- a/polkadot/runtime/rococo/src/weights/mod.rs +++ b/polkadot/runtime/rococo/src/weights/mod.rs @@ -50,13 +50,13 @@ pub mod runtime_common_crowdloan; pub mod runtime_common_identity_migrator; pub mod runtime_common_paras_registrar; pub mod runtime_common_slots; -pub mod runtime_parachains_assigner_on_demand; pub mod runtime_parachains_configuration; pub mod runtime_parachains_coretime; pub mod runtime_parachains_disputes; pub mod runtime_parachains_hrmp; pub mod runtime_parachains_inclusion; pub mod runtime_parachains_initializer; +pub mod runtime_parachains_on_demand; pub mod runtime_parachains_paras; pub mod runtime_parachains_paras_inherent; pub mod xcm; diff --git a/polkadot/runtime/rococo/src/weights/runtime_parachains_assigner_on_demand.rs b/polkadot/runtime/rococo/src/weights/runtime_parachains_on_demand.rs similarity index 93% rename from polkadot/runtime/rococo/src/weights/runtime_parachains_assigner_on_demand.rs rename to polkadot/runtime/rococo/src/weights/runtime_parachains_on_demand.rs index abcc1893c29..0c36eeaf7d4 100644 --- a/polkadot/runtime/rococo/src/weights/runtime_parachains_assigner_on_demand.rs +++ b/polkadot/runtime/rococo/src/weights/runtime_parachains_on_demand.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -//! Autogenerated weights for `runtime_parachains::assigner_on_demand` +//! Autogenerated weights for `runtime_parachains::on_demand` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 //! DATE: 2024-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` @@ -32,7 +32,7 @@ // --wasm-execution=compiled // --heap-pages=4096 // --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=runtime_parachains::assigner_on_demand +// --pallet=runtime_parachains::on_demand // --chain=rococo-dev // --header=./polkadot/file_header.txt // --output=./polkadot/runtime/rococo/src/weights/ @@ -45,9 +45,9 @@ use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; -/// Weight functions for `runtime_parachains::assigner_on_demand`. +/// Weight functions for `runtime_parachains::on_demand`. pub struct WeightInfo(PhantomData); -impl polkadot_runtime_parachains::assigner_on_demand::WeightInfo for WeightInfo { +impl polkadot_runtime_parachains::on_demand::WeightInfo for WeightInfo { /// Storage: `OnDemandAssignmentProvider::QueueStatus` (r:1 w:1) /// Proof: `OnDemandAssignmentProvider::QueueStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `System::Account` (r:1 w:0) diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index acd6f96878c..f5da0e5502d 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -68,14 +68,14 @@ use polkadot_runtime_common::{ U256ToBalance, }; use polkadot_runtime_parachains::{ - assigner_coretime as parachains_assigner_coretime, - assigner_on_demand as parachains_assigner_on_demand, configuration as parachains_configuration, + assigner_coretime as parachains_assigner_coretime, configuration as parachains_configuration, configuration::ActiveConfigHrmpChannelSizeAndCapacityRatio, coretime, disputes as parachains_disputes, disputes::slashing as parachains_slashing, dmp as parachains_dmp, hrmp as parachains_hrmp, inclusion as parachains_inclusion, inclusion::{AggregateMessageOrigin, UmpQueueId}, - initializer as parachains_initializer, origin as parachains_origin, paras as parachains_paras, + initializer as parachains_initializer, on_demand as parachains_on_demand, + origin as parachains_origin, paras as parachains_paras, paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points, runtime_api_impl::{ v10 as parachains_runtime_api_impl, vstaging as vstaging_parachains_runtime_api_impl, @@ -1226,11 +1226,11 @@ parameter_types! { pub const OnDemandPalletId: PalletId = PalletId(*b"py/ondmd"); } -impl parachains_assigner_on_demand::Config for Runtime { +impl parachains_on_demand::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Currency = Balances; type TrafficDefaultValue = OnDemandTrafficDefaultValue; - type WeightInfo = weights::runtime_parachains_assigner_on_demand::WeightInfo; + type WeightInfo = weights::runtime_parachains_on_demand::WeightInfo; type MaxHistoricalRevenue = MaxHistoricalRevenue; type PalletId = OnDemandPalletId; } @@ -1582,7 +1582,7 @@ mod runtime { #[runtime::pallet_index(54)] pub type ParasSlashing = parachains_slashing; #[runtime::pallet_index(56)] - pub type OnDemandAssignmentProvider = parachains_assigner_on_demand; + pub type OnDemandAssignmentProvider = parachains_on_demand; #[runtime::pallet_index(57)] pub type CoretimeAssignmentProvider = parachains_assigner_coretime; @@ -1740,7 +1740,7 @@ mod benches { [polkadot_runtime_parachains::initializer, Initializer] [polkadot_runtime_parachains::paras, Paras] [polkadot_runtime_parachains::paras_inherent, ParaInherent] - [polkadot_runtime_parachains::assigner_on_demand, OnDemandAssignmentProvider] + [polkadot_runtime_parachains::on_demand, OnDemandAssignmentProvider] [polkadot_runtime_parachains::coretime, Coretime] // Substrate [pallet_bags_list, VoterList] diff --git a/polkadot/runtime/westend/src/weights/mod.rs b/polkadot/runtime/westend/src/weights/mod.rs index c3ed2b5a75e..313a4511117 100644 --- a/polkadot/runtime/westend/src/weights/mod.rs +++ b/polkadot/runtime/westend/src/weights/mod.rs @@ -49,7 +49,6 @@ pub mod runtime_common_crowdloan; pub mod runtime_common_identity_migrator; pub mod runtime_common_paras_registrar; pub mod runtime_common_slots; -pub mod runtime_parachains_assigner_on_demand; pub mod runtime_parachains_configuration; pub mod runtime_parachains_coretime; pub mod runtime_parachains_disputes; @@ -57,6 +56,7 @@ pub mod runtime_parachains_disputes_slashing; pub mod runtime_parachains_hrmp; pub mod runtime_parachains_inclusion; pub mod runtime_parachains_initializer; +pub mod runtime_parachains_on_demand; pub mod runtime_parachains_paras; pub mod runtime_parachains_paras_inherent; pub mod xcm; diff --git a/polkadot/runtime/westend/src/weights/runtime_parachains_assigner_on_demand.rs b/polkadot/runtime/westend/src/weights/runtime_parachains_on_demand.rs similarity index 93% rename from polkadot/runtime/westend/src/weights/runtime_parachains_assigner_on_demand.rs rename to polkadot/runtime/westend/src/weights/runtime_parachains_on_demand.rs index 1bd9fa31b81..fc7efa6edfc 100644 --- a/polkadot/runtime/westend/src/weights/runtime_parachains_assigner_on_demand.rs +++ b/polkadot/runtime/westend/src/weights/runtime_parachains_on_demand.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -//! Autogenerated weights for `runtime_parachains::assigner_on_demand` +//! Autogenerated weights for `runtime_parachains::on_demand` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 //! DATE: 2024-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` @@ -32,7 +32,7 @@ // --wasm-execution=compiled // --heap-pages=4096 // --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json -// --pallet=runtime_parachains::assigner_on_demand +// --pallet=runtime_parachains::on_demand // --chain=westend-dev // --header=./polkadot/file_header.txt // --output=./polkadot/runtime/westend/src/weights/ @@ -45,9 +45,9 @@ use frame_support::{traits::Get, weights::Weight}; use core::marker::PhantomData; -/// Weight functions for `runtime_parachains::assigner_on_demand`. +/// Weight functions for `runtime_parachains::on_demand`. pub struct WeightInfo(PhantomData); -impl polkadot_runtime_parachains::assigner_on_demand::WeightInfo for WeightInfo { +impl polkadot_runtime_parachains::on_demand::WeightInfo for WeightInfo { /// Storage: `OnDemandAssignmentProvider::QueueStatus` (r:1 w:1) /// Proof: `OnDemandAssignmentProvider::QueueStatus` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Storage: `System::Account` (r:1 w:0) diff --git a/prdoc/pr_4706.prdoc b/prdoc/pr_4706.prdoc new file mode 100644 index 00000000000..ab235768b10 --- /dev/null +++ b/prdoc/pr_4706.prdoc @@ -0,0 +1,17 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: "Rename `assigner_on_demand` pallet to `on_demand`" + +doc: + - audience: Runtime Dev + description: | + Renames `assigner_on_demand` pallet to `on_demand` + +crates: +- name: polkadot-runtime-parachains + bump: major +- name: rococo-runtime + bump: patch +- name: westend-runtime + bump: patch \ No newline at end of file -- GitLab From f13ed8de69bcfcccecf208211998b8af2ef882a2 Mon Sep 17 00:00:00 2001 From: Lulu Date: Mon, 22 Jul 2024 16:12:59 +0100 Subject: [PATCH 073/252] Update parity publish (#5105) --- .github/workflows/check-semver.yml | 4 ++-- .github/workflows/publish-check-crates.yml | 2 +- .github/workflows/publish-claim-crates.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check-semver.yml b/.github/workflows/check-semver.yml index 47f9e5061b4..f65be00924d 100644 --- a/.github/workflows/check-semver.yml +++ b/.github/workflows/check-semver.yml @@ -6,7 +6,7 @@ on: paths: - prdoc/*.prdoc env: - TOOLCHAIN: nightly-2024-03-01 + TOOLCHAIN: nightly-2024-06-01 jobs: check-semver: @@ -22,7 +22,7 @@ jobs: cache-on-failure: true - name: install parity-publish - run: cargo install parity-publish@0.6.0 + run: cargo install parity-publish@0.7.0 - name: Rust compilation prerequisites run: | diff --git a/.github/workflows/publish-check-crates.yml b/.github/workflows/publish-check-crates.yml index 33cf9316920..92b4d13e9de 100644 --- a/.github/workflows/publish-check-crates.yml +++ b/.github/workflows/publish-check-crates.yml @@ -20,7 +20,7 @@ jobs: cache-on-failure: true - name: install parity-publish - run: cargo install parity-publish@0.6.0 + run: cargo install parity-publish@0.7.0 - name: parity-publish check run: parity-publish --color always check --allow-unpublished diff --git a/.github/workflows/publish-claim-crates.yml b/.github/workflows/publish-claim-crates.yml index 08c50638267..b6a84090f72 100644 --- a/.github/workflows/publish-claim-crates.yml +++ b/.github/workflows/publish-claim-crates.yml @@ -18,7 +18,7 @@ jobs: cache-on-failure: true - name: install parity-publish - run: cargo install parity-publish@0.6.0 + run: cargo install parity-publish@0.7.0 - name: parity-publish claim env: -- GitLab From 612c1bd3d51c7638fd078b632c57d6bb177e04c6 Mon Sep 17 00:00:00 2001 From: Andrei Eres Date: Mon, 22 Jul 2024 18:35:05 +0200 Subject: [PATCH 074/252] Prepare PVFs if node is a validator in the next session (#4791) Closes https://github.com/paritytech/polkadot-sdk/issues/4324 - On every active leaf candidate-validation subsystem checks if the node is the next session authority. - If it is, it fetches backed candidates and prepares unknown PVFs. - We limit number of PVFs per block to not overload subsystem. --- .gitlab/pipeline/zombienet/polkadot.yml | 8 + Cargo.lock | 2 + .../node/core/candidate-validation/Cargo.toml | 2 + .../node/core/candidate-validation/src/lib.rs | 311 ++++++++- .../core/candidate-validation/src/tests.rs | 646 +++++++++++++++++- polkadot/node/service/src/overseer.rs | 1 + .../smoke/0005-precompile-pvf-smoke.js | 46 ++ .../smoke/0005-precompile-pvf-smoke.toml | 32 + .../smoke/0005-precompile-pvf-smoke.zndsl | 43 ++ .../0005-register-deregister-validator.js | 44 ++ .../smoke/0005-register-para.js | 63 ++ prdoc/pr_4791.prdoc | 19 + 12 files changed, 1188 insertions(+), 29 deletions(-) create mode 100644 polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.js create mode 100644 polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.toml create mode 100644 polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.zndsl create mode 100644 polkadot/zombienet_tests/smoke/0005-register-deregister-validator.js create mode 100644 polkadot/zombienet_tests/smoke/0005-register-para.js create mode 100644 prdoc/pr_4791.prdoc diff --git a/.gitlab/pipeline/zombienet/polkadot.yml b/.gitlab/pipeline/zombienet/polkadot.yml index 90251082077..b4ef4bb7446 100644 --- a/.gitlab/pipeline/zombienet/polkadot.yml +++ b/.gitlab/pipeline/zombienet/polkadot.yml @@ -276,6 +276,14 @@ zombienet-polkadot-smoke-0004-coretime-smoke-test: --local-dir="${LOCAL_DIR}/smoke" --test="0004-coretime-smoke-test.zndsl" +zombienet-polkadot-smoke-0005-precompile-pvf-smoke: + extends: + - .zombienet-polkadot-common + script: + - /home/nonroot/zombie-net/scripts/ci/run-test-local-env-manager.sh + --local-dir="${LOCAL_DIR}/smoke" + --test="0005-precompile-pvf-smoke.zndsl" + zombienet-polkadot-misc-0001-parachains-paritydb: extends: - .zombienet-polkadot-common diff --git a/Cargo.lock b/Cargo.lock index 0a12c1e524d..49ecd4dd2bd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13318,8 +13318,10 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-primitives-test-helpers", + "sp-application-crypto", "sp-core", "sp-keyring", + "sp-keystore", "sp-maybe-compressed-blob", "tracing-gum", ] diff --git a/polkadot/node/core/candidate-validation/Cargo.toml b/polkadot/node/core/candidate-validation/Cargo.toml index e1a98f80783..13ab3e3fba5 100644 --- a/polkadot/node/core/candidate-validation/Cargo.toml +++ b/polkadot/node/core/candidate-validation/Cargo.toml @@ -15,6 +15,8 @@ futures = { workspace = true } futures-timer = { workspace = true } gum = { workspace = true, default-features = true } +sp-keystore = { workspace = true } +sp-application-crypto = { workspace = true } sp-maybe-compressed-blob = { workspace = true, default-features = true } codec = { features = ["bit-vec", "derive"], workspace = true } diff --git a/polkadot/node/core/candidate-validation/src/lib.rs b/polkadot/node/core/candidate-validation/src/lib.rs index 76619bd391f..1985964ebc5 100644 --- a/polkadot/node/core/candidate-validation/src/lib.rs +++ b/polkadot/node/core/candidate-validation/src/lib.rs @@ -39,7 +39,8 @@ use polkadot_node_subsystem::{ overseer, FromOrchestra, OverseerSignal, SpawnedSubsystem, SubsystemError, SubsystemResult, SubsystemSender, }; -use polkadot_node_subsystem_util::executor_params_at_relay_parent; +use polkadot_node_subsystem_util as util; +use polkadot_overseer::ActiveLeavesUpdate; use polkadot_parachain_primitives::primitives::{ ValidationParams, ValidationResult as WasmValidationResult, }; @@ -48,16 +49,19 @@ use polkadot_primitives::{ DEFAULT_APPROVAL_EXECUTION_TIMEOUT, DEFAULT_BACKING_EXECUTION_TIMEOUT, DEFAULT_LENIENT_PREPARATION_TIMEOUT, DEFAULT_PRECHECK_PREPARATION_TIMEOUT, }, - CandidateCommitments, CandidateDescriptor, CandidateReceipt, ExecutorParams, Hash, - OccupiedCoreAssumption, PersistedValidationData, PvfExecKind, PvfPrepKind, ValidationCode, - ValidationCodeHash, + AuthorityDiscoveryId, CandidateCommitments, CandidateDescriptor, CandidateEvent, + CandidateReceipt, ExecutorParams, Hash, OccupiedCoreAssumption, PersistedValidationData, + PvfExecKind, PvfPrepKind, SessionIndex, ValidationCode, ValidationCodeHash, }; +use sp_application_crypto::{AppCrypto, ByteArray}; +use sp_keystore::KeystorePtr; use codec::Encode; use futures::{channel::oneshot, prelude::*, stream::FuturesUnordered}; use std::{ + collections::HashSet, path::PathBuf, pin::Pin, sync::Arc, @@ -88,7 +92,7 @@ const PVF_APPROVAL_EXECUTION_RETRY_DELAY: Duration = Duration::from_millis(200); const TASK_LIMIT: usize = 30; /// Configuration for the candidate validation subsystem -#[derive(Clone)] +#[derive(Clone, Default)] pub struct Config { /// The path where candidate validation can store compiled artifacts for PVFs. pub artifacts_cache_path: PathBuf, @@ -111,6 +115,7 @@ pub struct Config { /// The candidate validation subsystem. pub struct CandidateValidationSubsystem { + keystore: KeystorePtr, #[allow(missing_docs)] pub metrics: Metrics, #[allow(missing_docs)] @@ -122,10 +127,11 @@ impl CandidateValidationSubsystem { /// Create a new `CandidateValidationSubsystem`. pub fn with_config( config: Option, + keystore: KeystorePtr, metrics: Metrics, pvf_metrics: polkadot_node_core_pvf::Metrics, ) -> Self { - CandidateValidationSubsystem { config, metrics, pvf_metrics } + CandidateValidationSubsystem { keystore, config, metrics, pvf_metrics } } } @@ -133,7 +139,7 @@ impl CandidateValidationSubsystem { impl CandidateValidationSubsystem { fn start(self, ctx: Context) -> SpawnedSubsystem { if let Some(config) = self.config { - let future = run(ctx, self.metrics, self.pvf_metrics, config) + let future = run(ctx, self.keystore, self.metrics, self.pvf_metrics, config) .map_err(|e| SubsystemError::with_origin("candidate-validation", e)) .boxed(); SpawnedSubsystem { name: "candidate-validation-subsystem", future } @@ -223,6 +229,7 @@ where #[overseer::contextbounds(CandidateValidation, prefix = self::overseer)] async fn run( mut ctx: Context, + keystore: KeystorePtr, metrics: Metrics, pvf_metrics: polkadot_node_core_pvf::Metrics, Config { @@ -253,13 +260,16 @@ async fn run( ctx.spawn_blocking("pvf-validation-host", task.boxed())?; let mut tasks = FuturesUnordered::new(); + let mut prepare_state = PrepareValidationState::default(); loop { loop { futures::select! { comm = ctx.recv().fuse() => { match comm { - Ok(FromOrchestra::Signal(OverseerSignal::ActiveLeaves(_))) => {}, + Ok(FromOrchestra::Signal(OverseerSignal::ActiveLeaves(update))) => { + maybe_prepare_validation(ctx.sender(), keystore.clone(), validation_host.clone(), update, &mut prepare_state).await; + }, Ok(FromOrchestra::Signal(OverseerSignal::BlockFinalized(..))) => {}, Ok(FromOrchestra::Signal(OverseerSignal::Conclude)) => return Ok(()), Ok(FromOrchestra::Communication { msg }) => { @@ -298,6 +308,246 @@ async fn run( } } +struct PrepareValidationState { + session_index: Option, + is_next_session_authority: bool, + // PVF host won't prepare the same code hash twice, so here we just avoid extra communication + already_prepared_code_hashes: HashSet, + // How many PVFs per block we take to prepare themselves for the next session validation + per_block_limit: usize, +} + +impl Default for PrepareValidationState { + fn default() -> Self { + Self { + session_index: None, + is_next_session_authority: false, + already_prepared_code_hashes: HashSet::new(), + per_block_limit: 1, + } + } +} + +async fn maybe_prepare_validation( + sender: &mut Sender, + keystore: KeystorePtr, + validation_backend: impl ValidationBackend, + update: ActiveLeavesUpdate, + state: &mut PrepareValidationState, +) where + Sender: SubsystemSender, +{ + let Some(leaf) = update.activated else { return }; + let new_session_index = new_session_index(sender, state.session_index, leaf.hash).await; + if new_session_index.is_some() { + state.session_index = new_session_index; + state.already_prepared_code_hashes.clear(); + state.is_next_session_authority = check_next_session_authority( + sender, + keystore, + leaf.hash, + state.session_index.expect("qed: just checked above"), + ) + .await; + } + + // On every active leaf check candidates and prepare PVFs our node doesn't have yet. + if state.is_next_session_authority { + let code_hashes = prepare_pvfs_for_backed_candidates( + sender, + validation_backend, + leaf.hash, + &state.already_prepared_code_hashes, + state.per_block_limit, + ) + .await; + state.already_prepared_code_hashes.extend(code_hashes.unwrap_or_default()); + } +} + +// Returns the new session index if it is greater than the current one. +async fn new_session_index( + sender: &mut Sender, + session_index: Option, + relay_parent: Hash, +) -> Option +where + Sender: SubsystemSender, +{ + let Ok(Ok(new_session_index)) = + util::request_session_index_for_child(relay_parent, sender).await.await + else { + gum::warn!( + target: LOG_TARGET, + ?relay_parent, + "cannot fetch session index from runtime API", + ); + return None + }; + + session_index.map_or(Some(new_session_index), |index| { + if new_session_index > index { + Some(new_session_index) + } else { + None + } + }) +} + +// Returns true if the node is an authority in the next session. +async fn check_next_session_authority( + sender: &mut Sender, + keystore: KeystorePtr, + relay_parent: Hash, + session_index: SessionIndex, +) -> bool +where + Sender: SubsystemSender, +{ + // In spite of function name here we request past, present and future authorities. + // It's ok to stil prepare PVFs in other cases, but better to request only future ones. + let Ok(Ok(authorities)) = util::request_authorities(relay_parent, sender).await.await else { + gum::warn!( + target: LOG_TARGET, + ?relay_parent, + "cannot fetch authorities from runtime API", + ); + return false + }; + + // We need to exclude at least current session authority from the previous request + let Ok(Ok(Some(session_info))) = + util::request_session_info(relay_parent, session_index, sender).await.await + else { + gum::warn!( + target: LOG_TARGET, + ?relay_parent, + "cannot fetch session info from runtime API", + ); + return false + }; + + let is_past_present_or_future_authority = authorities + .iter() + .any(|v| keystore.has_keys(&[(v.to_raw_vec(), AuthorityDiscoveryId::ID)])); + + let is_present_authority = session_info + .discovery_keys + .iter() + .any(|v| keystore.has_keys(&[(v.to_raw_vec(), AuthorityDiscoveryId::ID)])); + + // There is still a chance to be a previous session authority, but this extra work does not + // affect the finalization. + is_past_present_or_future_authority && !is_present_authority +} + +// Sends PVF with unknown code hashes to the validation host returning the list of code hashes sent. +async fn prepare_pvfs_for_backed_candidates( + sender: &mut Sender, + mut validation_backend: impl ValidationBackend, + relay_parent: Hash, + already_prepared: &HashSet, + per_block_limit: usize, +) -> Option> +where + Sender: SubsystemSender, +{ + let Ok(Ok(events)) = util::request_candidate_events(relay_parent, sender).await.await else { + gum::warn!( + target: LOG_TARGET, + ?relay_parent, + "cannot fetch candidate events from runtime API", + ); + return None + }; + let code_hashes = events + .into_iter() + .filter_map(|e| match e { + CandidateEvent::CandidateBacked(receipt, ..) => { + let h = receipt.descriptor.validation_code_hash; + if already_prepared.contains(&h) { + None + } else { + Some(h) + } + }, + _ => None, + }) + .take(per_block_limit) + .collect::>(); + + let Ok(executor_params) = util::executor_params_at_relay_parent(relay_parent, sender).await + else { + gum::warn!( + target: LOG_TARGET, + ?relay_parent, + "cannot fetch executor params for the session", + ); + return None + }; + let timeout = pvf_prep_timeout(&executor_params, PvfPrepKind::Prepare); + + let mut active_pvfs = vec![]; + let mut processed_code_hashes = vec![]; + for code_hash in code_hashes { + let Ok(Ok(Some(validation_code))) = + util::request_validation_code_by_hash(relay_parent, code_hash, sender) + .await + .await + else { + gum::warn!( + target: LOG_TARGET, + ?relay_parent, + ?code_hash, + "cannot fetch validation code hash from runtime API", + ); + continue; + }; + + let pvf = match sp_maybe_compressed_blob::decompress( + &validation_code.0, + VALIDATION_CODE_BOMB_LIMIT, + ) { + Ok(code) => PvfPrepData::from_code( + code.into_owned(), + executor_params.clone(), + timeout, + PrepareJobKind::Prechecking, + ), + Err(e) => { + gum::debug!(target: LOG_TARGET, err=?e, "cannot decompress validation code"); + continue + }, + }; + + active_pvfs.push(pvf); + processed_code_hashes.push(code_hash); + } + + if active_pvfs.is_empty() { + return None + } + + if let Err(err) = validation_backend.heads_up(active_pvfs).await { + gum::warn!( + target: LOG_TARGET, + ?relay_parent, + ?err, + "cannot prepare PVF for the next session", + ); + return None + }; + + gum::debug!( + target: LOG_TARGET, + ?relay_parent, + ?processed_code_hashes, + "Prepared PVF for the next session", + ); + + Some(processed_code_hashes) +} + struct RuntimeRequestFailed; async fn runtime_api_request( @@ -378,25 +628,26 @@ where }, }; - let executor_params = - if let Ok(executor_params) = executor_params_at_relay_parent(relay_parent, sender).await { - gum::debug!( - target: LOG_TARGET, - ?relay_parent, - ?validation_code_hash, - "precheck: acquired executor params for the session: {:?}", - executor_params, - ); - executor_params - } else { - gum::warn!( - target: LOG_TARGET, - ?relay_parent, - ?validation_code_hash, - "precheck: failed to acquire executor params for the session, thus voting against.", - ); - return PreCheckOutcome::Invalid - }; + let executor_params = if let Ok(executor_params) = + util::executor_params_at_relay_parent(relay_parent, sender).await + { + gum::debug!( + target: LOG_TARGET, + ?relay_parent, + ?validation_code_hash, + "precheck: acquired executor params for the session: {:?}", + executor_params, + ); + executor_params + } else { + gum::warn!( + target: LOG_TARGET, + ?relay_parent, + ?validation_code_hash, + "precheck: failed to acquire executor params for the session, thus voting against.", + ); + return PreCheckOutcome::Invalid + }; let timeout = pvf_prep_timeout(&executor_params, PvfPrepKind::Precheck); @@ -891,6 +1142,8 @@ trait ValidationBackend { } async fn precheck_pvf(&mut self, pvf: PvfPrepData) -> Result<(), PrepareError>; + + async fn heads_up(&mut self, active_pvfs: Vec) -> Result<(), String>; } #[async_trait] @@ -933,6 +1186,10 @@ impl ValidationBackend for ValidationHost { precheck_result } + + async fn heads_up(&mut self, active_pvfs: Vec) -> Result<(), String> { + self.heads_up(active_pvfs).await + } } /// Does basic checks of a candidate. Provide the encoded PoV-block. Returns `Ok` if basic checks diff --git a/polkadot/node/core/candidate-validation/src/tests.rs b/polkadot/node/core/candidate-validation/src/tests.rs index 491ed7a335d..86d855f78b4 100644 --- a/polkadot/node/core/candidate-validation/src/tests.rs +++ b/polkadot/node/core/candidate-validation/src/tests.rs @@ -14,16 +14,25 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . +use std::sync::atomic::{AtomicUsize, Ordering}; + use super::*; use assert_matches::assert_matches; use futures::executor; use polkadot_node_core_pvf::PrepareError; use polkadot_node_subsystem::messages::AllMessages; use polkadot_node_subsystem_util::reexports::SubsystemContext; -use polkadot_primitives::{HeadData, Id as ParaId, UpwardMessage}; -use polkadot_primitives_test_helpers::{dummy_hash, make_valid_candidate_descriptor}; +use polkadot_overseer::ActivatedLeaf; +use polkadot_primitives::{ + CoreIndex, GroupIndex, HeadData, Id as ParaId, IndexedVec, SessionInfo, UpwardMessage, + ValidatorId, ValidatorIndex, +}; +use polkadot_primitives_test_helpers::{ + dummy_collator, dummy_collator_signature, dummy_hash, make_valid_candidate_descriptor, +}; use sp_core::testing::TaskExecutor; use sp_keyring::Sr25519Keyring; +use sp_keystore::{testing::MemoryKeystore, Keystore}; #[test] fn correctly_checks_included_assumption() { @@ -390,6 +399,10 @@ impl ValidationBackend for MockValidateCandidateBackend { async fn precheck_pvf(&mut self, _pvf: PvfPrepData) -> Result<(), PrepareError> { unreachable!() } + + async fn heads_up(&mut self, _active_pvfs: Vec) -> Result<(), String> { + unreachable!() + } } #[test] @@ -1071,6 +1084,10 @@ impl ValidationBackend for MockPreCheckBackend { async fn precheck_pvf(&mut self, _pvf: PvfPrepData) -> Result<(), PrepareError> { self.result.clone() } + + async fn heads_up(&mut self, _active_pvfs: Vec) -> Result<(), String> { + unreachable!() + } } #[test] @@ -1263,3 +1280,628 @@ fn precheck_properly_classifies_outcomes() { inner(Err(PrepareError::TimedOut), PreCheckOutcome::Failed); inner(Err(PrepareError::IoErr("fizz".to_owned())), PreCheckOutcome::Failed); } + +#[derive(Default, Clone)] +struct MockHeadsUp { + heads_up_call_count: Arc, +} + +#[async_trait] +impl ValidationBackend for MockHeadsUp { + async fn validate_candidate( + &mut self, + _pvf: PvfPrepData, + _timeout: Duration, + _encoded_params: Vec, + _prepare_priority: polkadot_node_core_pvf::Priority, + ) -> Result { + unreachable!() + } + + async fn precheck_pvf(&mut self, _pvf: PvfPrepData) -> Result<(), PrepareError> { + unreachable!() + } + + async fn heads_up(&mut self, _active_pvfs: Vec) -> Result<(), String> { + let _ = self.heads_up_call_count.fetch_add(1, Ordering::SeqCst); + Ok(()) + } +} + +fn alice_keystore() -> KeystorePtr { + let keystore: KeystorePtr = Arc::new(MemoryKeystore::new()); + let _ = Keystore::sr25519_generate_new( + &*keystore, + ValidatorId::ID, + Some(&Sr25519Keyring::Alice.to_seed()), + ) + .unwrap(); + let _ = Keystore::sr25519_generate_new( + &*keystore, + AuthorityDiscoveryId::ID, + Some(&Sr25519Keyring::Alice.to_seed()), + ) + .unwrap(); + + keystore +} + +fn dummy_active_leaves_update(hash: Hash) -> ActiveLeavesUpdate { + ActiveLeavesUpdate { + activated: Some(ActivatedLeaf { + hash, + number: 10, + unpin_handle: polkadot_node_subsystem_test_helpers::mock::dummy_unpin_handle(hash), + span: Arc::new(overseer::jaeger::Span::Disabled), + }), + ..Default::default() + } +} + +fn dummy_candidate_backed( + relay_parent: Hash, + validation_code_hash: ValidationCodeHash, +) -> CandidateEvent { + let zeros = dummy_hash(); + let descriptor = CandidateDescriptor { + para_id: ParaId::from(0_u32), + relay_parent, + collator: dummy_collator(), + persisted_validation_data_hash: zeros, + pov_hash: zeros, + erasure_root: zeros, + signature: dummy_collator_signature(), + para_head: zeros, + validation_code_hash, + }; + + CandidateEvent::CandidateBacked( + CandidateReceipt { descriptor, commitments_hash: zeros }, + HeadData(Vec::new()), + CoreIndex(0), + GroupIndex(0), + ) +} + +fn dummy_session_info(discovery_keys: Vec) -> SessionInfo { + SessionInfo { + validators: IndexedVec::::from(vec![]), + discovery_keys, + assignment_keys: vec![], + validator_groups: Default::default(), + n_cores: 4u32, + zeroth_delay_tranche_width: 0u32, + relay_vrf_modulo_samples: 0u32, + n_delay_tranches: 2u32, + no_show_slots: 0u32, + needed_approvals: 1u32, + active_validator_indices: vec![], + dispute_period: 6, + random_seed: [0u8; 32], + } +} + +#[test] +fn maybe_prepare_validation_golden_path() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState::default(); + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::Authorities(tx))) => { + let _ = tx.send(Ok(vec![Sr25519Keyring::Alice.public().into()])); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionInfo(index, tx))) => { + assert_eq!(index, 1); + let _ = tx.send(Ok(Some(dummy_session_info(vec![Sr25519Keyring::Bob.public().into()])))); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::CandidateEvents(tx))) => { + let _ = tx.send(Ok(vec![dummy_candidate_backed(activated_hash, dummy_hash().into())])); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionExecutorParams(index, tx))) => { + assert_eq!(index, 1); + let _ = tx.send(Ok(Some(ExecutorParams::default()))); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::ValidationCodeByHash(hash, tx))) => { + assert_eq!(hash, dummy_hash().into()); + let _ = tx.send(Ok(Some(ValidationCode(Vec::new())))); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 1); + assert!(state.session_index.is_some()); + assert!(state.is_next_session_authority); +} + +#[test] +fn maybe_prepare_validation_checkes_authority_once_per_session() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState { + session_index: Some(1), + is_next_session_authority: false, + ..Default::default() + }; + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 0); + assert!(state.session_index.is_some()); + assert!(!state.is_next_session_authority); +} + +#[test] +fn maybe_prepare_validation_resets_state_on_a_new_session() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState { + session_index: Some(1), + is_next_session_authority: true, + already_prepared_code_hashes: HashSet::from_iter(vec![ValidationCode(vec![0; 16]).hash()]), + ..Default::default() + }; + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(2)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::Authorities(tx))) => { + let _ = tx.send(Ok(vec![Sr25519Keyring::Bob.public().into()])); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionInfo(index, tx))) => { + assert_eq!(index, 2); + let _ = tx.send(Ok(Some(dummy_session_info(vec![Sr25519Keyring::Bob.public().into()])))); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 0); + assert_eq!(state.session_index.unwrap(), 2); + assert!(!state.is_next_session_authority); + assert!(state.already_prepared_code_hashes.is_empty()); +} + +#[test] +fn maybe_prepare_validation_does_not_prepare_pvfs_if_no_new_session_and_not_a_validator() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState { session_index: Some(1), ..Default::default() }; + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 0); + assert!(state.session_index.is_some()); + assert!(!state.is_next_session_authority); +} + +#[test] +fn maybe_prepare_validation_does_not_prepare_pvfs_if_no_new_session_but_a_validator() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState { + session_index: Some(1), + is_next_session_authority: true, + ..Default::default() + }; + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::CandidateEvents(tx))) => { + let _ = tx.send(Ok(vec![dummy_candidate_backed(activated_hash, dummy_hash().into())])); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionExecutorParams(index, tx))) => { + assert_eq!(index, 1); + let _ = tx.send(Ok(Some(ExecutorParams::default()))); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::ValidationCodeByHash(hash, tx))) => { + assert_eq!(hash, dummy_hash().into()); + let _ = tx.send(Ok(Some(ValidationCode(Vec::new())))); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 1); + assert!(state.session_index.is_some()); + assert!(state.is_next_session_authority); +} + +#[test] +fn maybe_prepare_validation_does_not_prepare_pvfs_if_not_a_validator_in_the_next_session() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState::default(); + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::Authorities(tx))) => { + let _ = tx.send(Ok(vec![Sr25519Keyring::Bob.public().into()])); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionInfo(index, tx))) => { + assert_eq!(index, 1); + let _ = tx.send(Ok(Some(dummy_session_info(vec![Sr25519Keyring::Bob.public().into()])))); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 0); + assert!(state.session_index.is_some()); + assert!(!state.is_next_session_authority); +} + +#[test] +fn maybe_prepare_validation_does_not_prepare_pvfs_if_a_validator_in_the_current_session() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState::default(); + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::Authorities(tx))) => { + let _ = tx.send(Ok(vec![Sr25519Keyring::Alice.public().into()])); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionInfo(index, tx))) => { + assert_eq!(index, 1); + let _ = tx.send(Ok(Some(dummy_session_info(vec![Sr25519Keyring::Alice.public().into()])))); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 0); + assert!(state.session_index.is_some()); + assert!(!state.is_next_session_authority); +} + +#[test] +fn maybe_prepare_validation_prepares_a_limited_number_of_pvfs() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState { per_block_limit: 2, ..Default::default() }; + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::Authorities(tx))) => { + let _ = tx.send(Ok(vec![Sr25519Keyring::Alice.public().into()])); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionInfo(index, tx))) => { + assert_eq!(index, 1); + let _ = tx.send(Ok(Some(dummy_session_info(vec![Sr25519Keyring::Bob.public().into()])))); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::CandidateEvents(tx))) => { + let candidates = vec![ + dummy_candidate_backed(activated_hash, ValidationCode(vec![0; 16]).hash()), + dummy_candidate_backed(activated_hash, ValidationCode(vec![1; 16]).hash()), + dummy_candidate_backed(activated_hash, ValidationCode(vec![2; 16]).hash()), + ]; + let _ = tx.send(Ok(candidates)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionExecutorParams(index, tx))) => { + assert_eq!(index, 1); + let _ = tx.send(Ok(Some(ExecutorParams::default()))); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::ValidationCodeByHash(hash, tx))) => { + assert_eq!(hash, ValidationCode(vec![0; 16]).hash()); + let _ = tx.send(Ok(Some(ValidationCode(Vec::new())))); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::ValidationCodeByHash(hash, tx))) => { + assert_eq!(hash, ValidationCode(vec![1; 16]).hash()); + let _ = tx.send(Ok(Some(ValidationCode(Vec::new())))); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 1); + assert!(state.session_index.is_some()); + assert!(state.is_next_session_authority); + assert_eq!(state.already_prepared_code_hashes.len(), 2); +} + +#[test] +fn maybe_prepare_validation_does_not_prepare_already_prepared_pvfs() { + let pool = TaskExecutor::new(); + let (mut ctx, mut ctx_handle) = + polkadot_node_subsystem_test_helpers::make_subsystem_context::(pool); + + let keystore = alice_keystore(); + let backend = MockHeadsUp::default(); + let activated_hash = Hash::random(); + let update = dummy_active_leaves_update(activated_hash); + let mut state = PrepareValidationState { + session_index: Some(1), + is_next_session_authority: true, + per_block_limit: 2, + already_prepared_code_hashes: HashSet::from_iter(vec![ + ValidationCode(vec![0; 16]).hash(), + ValidationCode(vec![1; 16]).hash(), + ]), + }; + + let check_fut = + maybe_prepare_validation(ctx.sender(), keystore, backend.clone(), update, &mut state); + + let test_fut = async move { + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::CandidateEvents(tx))) => { + let candidates = vec![ + dummy_candidate_backed(activated_hash, ValidationCode(vec![0; 16]).hash()), + dummy_candidate_backed(activated_hash, ValidationCode(vec![1; 16]).hash()), + dummy_candidate_backed(activated_hash, ValidationCode(vec![2; 16]).hash()), + ]; + let _ = tx.send(Ok(candidates)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionIndexForChild(tx))) => { + let _ = tx.send(Ok(1)); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::SessionExecutorParams(index, tx))) => { + assert_eq!(index, 1); + let _ = tx.send(Ok(Some(ExecutorParams::default()))); + } + ); + + assert_matches!( + ctx_handle.recv().await, + AllMessages::RuntimeApi(RuntimeApiMessage::Request(_, RuntimeApiRequest::ValidationCodeByHash(hash, tx))) => { + assert_eq!(hash, ValidationCode(vec![2; 16]).hash()); + let _ = tx.send(Ok(Some(ValidationCode(Vec::new())))); + } + ); + }; + + let test_fut = future::join(test_fut, check_fut); + executor::block_on(test_fut); + + assert_eq!(backend.heads_up_call_count.load(Ordering::SeqCst), 1); + assert!(state.session_index.is_some()); + assert!(state.is_next_session_authority); + assert_eq!(state.already_prepared_code_hashes.len(), 3); +} diff --git a/polkadot/node/service/src/overseer.rs b/polkadot/node/service/src/overseer.rs index 5f4db99b00e..add5d239364 100644 --- a/polkadot/node/service/src/overseer.rs +++ b/polkadot/node/service/src/overseer.rs @@ -275,6 +275,7 @@ where )) .candidate_validation(CandidateValidationSubsystem::with_config( candidate_validation_config, + keystore.clone(), Metrics::register(registry)?, // candidate-validation metrics Metrics::register(registry)?, // validation host metrics )) diff --git a/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.js b/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.js new file mode 100644 index 00000000000..9963ce74d64 --- /dev/null +++ b/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.js @@ -0,0 +1,46 @@ +const assert = require("assert"); + +function nameCase(string) { + return string.charAt(0).toUpperCase() + string.slice(1); +} + +async function run(nodeName, networkInfo, jsArgs) { + const {wsUri, userDefinedTypes} = networkInfo.nodesByName[nodeName]; + const api = await zombie.connect(wsUri, userDefinedTypes); + const action = jsArgs[0] === "register" ? "registerValidators" : "deregisterValidators" + const validatorName = jsArgs[1]; // used as seed + + await zombie.util.cryptoWaitReady(); + + // account to submit tx + const keyring = new zombie.Keyring({ type: "sr25519" }); + const alice = keyring.addFromUri("//Alice"); + const validatorStash = keyring.createFromUri(`//${nameCase(validatorName)}//stash`); + + await new Promise(async (resolve, reject) => { + const unsub = await api.tx.sudo + .sudo(api.tx.validatorManager[action]([validatorStash.address])) + .signAndSend(alice, (result) => { + console.log(`Current status is ${result.status}`); + if (result.status.isInBlock) { + console.log( + `Transaction included at blockHash ${result.status.asInBlock}` + ); + } else if (result.status.isFinalized) { + console.log( + `Transaction finalized at blockHash ${result.status.asFinalized}` + ); + unsub(); + return resolve(); + } else if (result.isError) { + console.log(`Transaction Error`); + unsub(); + return reject(); + } + }); + }); + + return 0; +} + +module.exports = { run } diff --git a/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.toml b/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.toml new file mode 100644 index 00000000000..2baf21b96cc --- /dev/null +++ b/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.toml @@ -0,0 +1,32 @@ +[settings] +timeout = 1000 + +[relaychain] +default_image = "{{ZOMBIENET_INTEGRATION_TEST_IMAGE}}" +chain = "rococo-local" +command = "polkadot" + + [[relaychain.nodes]] + name = "alice" + args = ["-lruntime=debug,parachain=trace" ] + + [[relaychain.nodes]] + name = "bob" + args = [ "-lruntime=debug,parachain=trace" ] + + [[relaychain.nodes]] + name = "charlie" + args = [ "-lruntime=debug,parachain=trace" ] + + [[relaychain.nodes]] + name = "dave" + args = [ "-lruntime=debug,parachain=trace" ] + +[[parachains]] +id = 100 +add_to_genesis = true + + [parachains.collator] + name = "collator-100" + image = "{{CUMULUS_IMAGE}}" + command = "polkadot-parachain" diff --git a/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.zndsl b/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.zndsl new file mode 100644 index 00000000000..3ac68caf7e1 --- /dev/null +++ b/polkadot/zombienet_tests/smoke/0005-precompile-pvf-smoke.zndsl @@ -0,0 +1,43 @@ +Description: PVF precompilation +Network: ./0005-precompile-pvf-smoke.toml +Creds: config + +# Ensure the calidator is in the validator set +dave: reports polkadot_node_is_parachain_validator is 1 within 240 secs +dave: reports polkadot_node_is_active_validator is 1 within 240 secs + +# Deregister the validator +alice: js-script ./0005-register-deregister-validator.js with "deregister,dave" return is 0 within 30 secs + +# Wait 2 sessions. The authority set change is enacted at curent_session + 2. +sleep 120 seconds +dave: reports polkadot_node_is_parachain_validator is 0 within 180 secs +dave: reports polkadot_node_is_active_validator is 0 within 180 secs + +# register the parachain +alice: js-script ./0005-register-para.js with "100" return is 0 within 600 seconds + +# Ensure the parachain made progress. +alice: parachain 100 block height is at least 10 within 300 seconds + +# Ensure the validator didn't prepare pvf +dave: reports polkadot_pvf_preparation_time_count is 1 within 30 seconds + +# Register the validator again +alice: js-script ./0005-register-deregister-validator.js with "register,dave" return is 0 within 30 secs + +# Wait 1 session and check the pvf preparation +sleep 60 seconds +dave: reports polkadot_pvf_preparation_time_count is 1 within 30 seconds + +# Check the validator is still not in the validator set +dave: reports polkadot_node_is_parachain_validator is 0 within 30 secs +dave: reports polkadot_node_is_active_validator is 0 within 30 secs + +# Check the validator is in the validator set +dave: reports polkadot_node_is_parachain_validator is 1 within 60 secs +dave: reports polkadot_node_is_active_validator is 1 within 60 secs + +# Check the pvf preparation again. The authority set change is enacted at curent_session + 2. +sleep 60 seconds +dave: reports polkadot_pvf_preparation_time_count is 1 within 60 seconds diff --git a/polkadot/zombienet_tests/smoke/0005-register-deregister-validator.js b/polkadot/zombienet_tests/smoke/0005-register-deregister-validator.js new file mode 100644 index 00000000000..16e7d87d0ff --- /dev/null +++ b/polkadot/zombienet_tests/smoke/0005-register-deregister-validator.js @@ -0,0 +1,44 @@ +function nameCase(string) { + return string.charAt(0).toUpperCase() + string.slice(1); +} + +async function run(nodeName, networkInfo, args) { + const { wsUri, userDefinedTypes } = networkInfo.nodesByName[nodeName]; + const api = await zombie.connect(wsUri, userDefinedTypes); + const action = args[0] === "register" ? "registerValidators" : "deregisterValidators" + const validatorName = args[1]; // used as seed + + await zombie.util.cryptoWaitReady(); + + // account to submit tx + const keyring = new zombie.Keyring({ type: "sr25519" }); + const alice = keyring.addFromUri("//Alice"); + const validatorStash = keyring.createFromUri(`//${nameCase(validatorName)}//stash`); + + await new Promise(async (resolve, reject) => { + const unsub = await api.tx.sudo + .sudo(api.tx.validatorManager[action]([validatorStash.address])) + .signAndSend(alice, (result) => { + console.log(`Current status is ${result.status}`); + if (result.status.isInBlock) { + console.log( + `Transaction included at blockHash ${result.status.asInBlock}` + ); + } else if (result.status.isFinalized) { + console.log( + `Transaction finalized at blockHash ${result.status.asFinalized}` + ); + unsub(); + return resolve(); + } else if (result.isError) { + console.log(`Transaction Error`); + unsub(); + return reject(); + } + }); + }); + + return 0; +} + +module.exports = { run } diff --git a/polkadot/zombienet_tests/smoke/0005-register-para.js b/polkadot/zombienet_tests/smoke/0005-register-para.js new file mode 100644 index 00000000000..aba7bc3601f --- /dev/null +++ b/polkadot/zombienet_tests/smoke/0005-register-para.js @@ -0,0 +1,63 @@ +async function run(nodeName, networkInfo, args) { + const init = networkInfo.nodesByName[nodeName]; + let wsUri = init.wsUri; + let userDefinedTypes = init.userDefinedTypes; + const api = await zombie.connect(wsUri, userDefinedTypes); + + // account to submit tx + const keyring = new zombie.Keyring({ type: "sr25519" }); + const alice = keyring.addFromUri("//Alice"); + + let calls = []; + + for (let i = 0; i < args.length; i++) { + let para = args[i]; + const sec = networkInfo.nodesByName["collator-" + para]; + const api_collator = await zombie.connect(sec.wsUri, sec.userDefinedTypes); + + await zombie.util.cryptoWaitReady(); + + // Get the genesis header and the validation code of the parachain + const genesis_header = await api_collator.rpc.chain.getHeader(); + const validation_code = await api_collator.rpc.state.getStorage("0x3A636F6465"); + + calls.push( + api.tx.paras.addTrustedValidationCode(validation_code.toHex()) + ); + calls.push( + api.tx.registrar.forceRegister( + alice.address, + 0, + Number(para), + genesis_header.toHex(), + validation_code.toHex(), + ) + ); + } + + const sudo_batch = api.tx.sudo.sudo(api.tx.utility.batch(calls)); + + await new Promise(async (resolve, reject) => { + const unsub = await sudo_batch + .signAndSend(alice, ({ status, isError }) => { + if (status.isInBlock) { + console.log( + `Transaction included at blockhash ${status.asInBlock}`, + ); + } else if (status.isFinalized) { + console.log( + `Transaction finalized at blockHash ${status.asFinalized}`, + ); + unsub(); + return resolve(); + } else if (isError) { + console.log(`Transaction error`); + reject(`Transaction error`); + } + }); + }); + + return 0; +} + +module.exports = { run }; diff --git a/prdoc/pr_4791.prdoc b/prdoc/pr_4791.prdoc new file mode 100644 index 00000000000..9a7a9ca44e1 --- /dev/null +++ b/prdoc/pr_4791.prdoc @@ -0,0 +1,19 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Prepare PVFs if node is a validator in the next session + +doc: + - audience: Node Operator + description: | + - On every active leaf candidate-validation subsystem checks if the node is the next session authority. + - If it is, it fetches backed candidates and prepares unknown PVFs. + - Number of PVF preparations per block is limited to not overload subsystem. + +crates: + - name: polkadot + bump: patch + - name: polkadot-service + bump: patch + - name: polkadot-node-core-candidate-validation + bump: major -- GitLab From 9bd1f252625a6de1a58c6cca6b7e9573b2b3782f Mon Sep 17 00:00:00 2001 From: Afanti <127061691+threewebcode@users.noreply.github.com> Date: Tue, 23 Jul 2024 03:48:25 +0800 Subject: [PATCH 075/252] docs: remove the duplicate word (#5095) The word is duplicated in the document and use this commit to remove them. --- docs/sdk/src/reference_docs/blockchain_state_machines.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sdk/src/reference_docs/blockchain_state_machines.rs b/docs/sdk/src/reference_docs/blockchain_state_machines.rs index 0d1aefcc527..36ab0ce5ed5 100644 --- a/docs/sdk/src/reference_docs/blockchain_state_machines.rs +++ b/docs/sdk/src/reference_docs/blockchain_state_machines.rs @@ -21,7 +21,7 @@ #![doc = simple_mermaid::mermaid!("../../../mermaid/stf.mmd")] //! //! In essence, the state of the blockchain at block N is the outcome of applying the state -//! transition function to the the previous state, and the current block as input. This can be +//! transition function to the previous state, and the current block as input. This can be //! mathematically represented as: //! //! ```math -- GitLab From 935c14242872e77deb009b45a802126fa2d8a6cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 22:17:52 +0200 Subject: [PATCH 076/252] Bump lycheeverse/lychee-action from 1.9.1 to 1.10.0 (#5094) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action) from 1.9.1 to 1.10.0.
    Release notes

    Sourced from lycheeverse/lychee-action's releases.

    v1.10.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/lycheeverse/lychee-action/compare/v1.9.3...v1.10.0

    Version 1.9.3

    What's Changed

    • Bugfix: Pass custom token as input argument to action by @​mre in lycheeverse/lychee-action#222 Previously, the name of the token was incorrect, leading to no token being used if the user specified with: [token: ...]. Thanks to @​tobon4 for pointing this out.

    Full Changelog: https://github.com/lycheeverse/lychee-action/compare/v1...v1.9.3

    Version 1.9.2

    What's Changed

    Full Changelog: https://github.com/lycheeverse/lychee-action/compare/v1...v1.9.2

    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=lycheeverse/lychee-action&package-manager=github_actions&previous-version=1.9.1&new-version=1.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/check-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml index 58065f369c9..090063e126b 100644 --- a/.github/workflows/check-links.yml +++ b/.github/workflows/check-links.yml @@ -28,7 +28,7 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.0 (22. Sep 2023) - name: Lychee link checker - uses: lycheeverse/lychee-action@c3089c702fbb949e3f7a8122be0c33c017904f9b # for v1.9.1 (10. Jan 2024) + uses: lycheeverse/lychee-action@2b973e86fc7b1f6b36a93795fe2c9c6ae1118621 # for v1.9.1 (10. Jan 2024) with: args: >- --config .config/lychee.toml -- GitLab From 20956894cff0808e5ea7bbedf2d886e87bece35f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 21:02:51 +0000 Subject: [PATCH 077/252] Bump openssl from 0.10.64 to 0.10.66 (#5107) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.64 to 0.10.66.
    Release notes

    Sourced from openssl's releases.

    openssl-v0.10.66

    What's Changed

    Full Changelog: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.65...openssl-v0.10.66

    openssl-v0.10.65

    What's Changed

    New Contributors

    Full Changelog: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.64...openssl-v0.10.65

    Commits
    • ad70a0b Merge pull request #2267 from alex/bump-for-release
    • 5ce473b Release openssl v0.10.66
    • aef36e0 Merge pull request #2266 from alex/mem-bio-invariant
    • 142deef Fixed invariant violation in MemBio::get_buf with empty results
    • 32f150b Merge pull request #2265 from alex/bump-for-release
    • 98addd2 Release openssl v0.10.65 and openssl-sys v0.9.103
    • 7c7958d Merge pull request #2262 from alex/pkey-api
    • d7b12cc Switch Pkey::from_ to use set1 functions
    • 22ffa9a Merge pull request #2258 from sfackler/init-md
    • 9de3794 Initialize OpenSSL in MD constructors
    • Additional commits viewable in compare view

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=openssl&package-manager=cargo&previous-version=0.10.64&new-version=0.10.66)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/paritytech/polkadot-sdk/network/alerts).
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 49ecd4dd2bd..82dd5bfaffa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9606,9 +9606,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -9647,9 +9647,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", -- GitLab From 6e520eb4eb01644316765af638317eea1b94f97e Mon Sep 17 00:00:00 2001 From: Marcus Pang Yu Yang Date: Tue, 23 Jul 2024 05:42:11 +0800 Subject: [PATCH 078/252] feat: introduce pallet-parameters to Westend to parameterize inflation (#4938) Fixes #4907 ## Changes - Add `pallet-parameters` to Westend runtime - Add `relay_era_payout` function to Polkadot runtime common + deprecate previous `era_payout` function - Add unit tests for `relay_era_payout`, matching previous unit tests for `era_payout` - Remove `pallet_staking_reward_curve` in Westend runtime - Add `dynamic_params` to replace constants used for `pallet_staking_reward_curve` Polkadot address: 5DybbVdLvVWd7MiA1YwkzLUNL1ThMDicozbuLc8v9pQEScPQ --------- Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by: kianenigma Co-authored-by: command-bot <> --- Cargo.lock | 2 +- polkadot/runtime/common/src/impls.rs | 194 +++++++++++++++--- polkadot/runtime/westend/Cargo.toml | 5 +- polkadot/runtime/westend/src/lib.rs | 134 ++++++++++-- polkadot/runtime/westend/src/weights/mod.rs | 1 + .../westend/src/weights/pallet_parameters.rs | 63 ++++++ prdoc/pr_4938.prdoc | 21 ++ prdoc/pr_4943.prdoc | 4 +- 8 files changed, 379 insertions(+), 45 deletions(-) create mode 100644 polkadot/runtime/westend/src/weights/pallet_parameters.rs create mode 100644 prdoc/pr_4938.prdoc diff --git a/Cargo.lock b/Cargo.lock index 82dd5bfaffa..a6265a34075 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23535,6 +23535,7 @@ dependencies = [ "pallet-nomination-pools-runtime-api", "pallet-offences", "pallet-offences-benchmarking", + "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-recovery", @@ -23545,7 +23546,6 @@ dependencies = [ "pallet-session-benchmarking", "pallet-society", "pallet-staking", - "pallet-staking-reward-curve", "pallet-staking-runtime-api", "pallet-state-trie-migration", "pallet-sudo", diff --git a/polkadot/runtime/common/src/impls.rs b/polkadot/runtime/common/src/impls.rs index 9d61cd01873..7fdff814a2d 100644 --- a/polkadot/runtime/common/src/impls.rs +++ b/polkadot/runtime/common/src/impls.rs @@ -67,29 +67,51 @@ where } } -pub fn era_payout( - total_staked: Balance, - total_stakable: Balance, - max_annual_inflation: Perquintill, - period_fraction: Perquintill, - auctioned_slots: u64, -) -> (Balance, Balance) { - use pallet_staking_reward_fn::compute_inflation; +/// Parameters passed into [`relay_era_payout`] function. +pub struct EraPayoutParams { + /// Total staked amount. + pub total_staked: Balance, + /// Total stakable amount. + /// + /// Usually, this is equal to the total issuance, except if a large part of the issuance is + /// locked in another sub-system. + pub total_stakable: Balance, + /// Ideal stake ratio, which is deducted by `legacy_auction_proportion` if not `None`. + pub ideal_stake: Perquintill, + /// Maximum inflation rate. + pub max_annual_inflation: Perquintill, + /// Minimum inflation rate. + pub min_annual_inflation: Perquintill, + /// Falloff used to calculate era payouts. + pub falloff: Perquintill, + /// Fraction of the era period used to calculate era payouts. + pub period_fraction: Perquintill, + /// Legacy auction proportion, which substracts from `ideal_stake` if not `None`. + pub legacy_auction_proportion: Option, +} + +/// A specialized function to compute the inflation of the staking system, tailored for polkadot +/// relay chains, such as Polkadot, Kusama and Westend. +pub fn relay_era_payout(params: EraPayoutParams) -> (Balance, Balance) { use sp_runtime::traits::Saturating; - let min_annual_inflation = Perquintill::from_rational(25u64, 1000u64); - let delta_annual_inflation = max_annual_inflation.saturating_sub(min_annual_inflation); + let EraPayoutParams { + total_staked, + total_stakable, + ideal_stake, + max_annual_inflation, + min_annual_inflation, + falloff, + period_fraction, + legacy_auction_proportion, + } = params; - // 30% reserved for up to 60 slots. - let auction_proportion = Perquintill::from_rational(auctioned_slots.min(60), 200u64); + let delta_annual_inflation = max_annual_inflation.saturating_sub(min_annual_inflation); - // Therefore the ideal amount at stake (as a percentage of total issuance) is 75% less the - // amount that we expect to be taken up with auctions. - let ideal_stake = Perquintill::from_percent(75).saturating_sub(auction_proportion); + let ideal_stake = ideal_stake.saturating_sub(legacy_auction_proportion.unwrap_or_default()); let stake = Perquintill::from_rational(total_staked, total_stakable); - let falloff = Perquintill::from_percent(5); - let adjustment = compute_inflation(stake, ideal_stake, falloff); + let adjustment = pallet_staking_reward_fn::compute_inflation(stake, ideal_stake, falloff); let staking_inflation = min_annual_inflation.saturating_add(delta_annual_inflation * adjustment); @@ -371,6 +393,46 @@ mod tests { t.into() } + pub fn deprecated_era_payout( + total_staked: Balance, + total_stakable: Balance, + max_annual_inflation: Perquintill, + period_fraction: Perquintill, + auctioned_slots: u64, + ) -> (Balance, Balance) { + use pallet_staking_reward_fn::compute_inflation; + use sp_runtime::traits::Saturating; + + let min_annual_inflation = Perquintill::from_rational(25u64, 1000u64); + let delta_annual_inflation = max_annual_inflation.saturating_sub(min_annual_inflation); + + // 30% reserved for up to 60 slots. + let auction_proportion = Perquintill::from_rational(auctioned_slots.min(60), 200u64); + + // Therefore the ideal amount at stake (as a percentage of total issuance) is 75% less the + // amount that we expect to be taken up with auctions. + let ideal_stake = Perquintill::from_percent(75).saturating_sub(auction_proportion); + + let stake = Perquintill::from_rational(total_staked, total_stakable); + let falloff = Perquintill::from_percent(5); + let adjustment = compute_inflation(stake, ideal_stake, falloff); + let staking_inflation = + min_annual_inflation.saturating_add(delta_annual_inflation * adjustment); + + let max_payout = period_fraction * max_annual_inflation * total_stakable; + let staking_payout = (period_fraction * staking_inflation) * total_stakable; + let rest = max_payout.saturating_sub(staking_payout); + + let other_issuance = total_stakable.saturating_sub(total_staked); + if total_staked > other_issuance { + let _cap_rest = + Perquintill::from_rational(other_issuance, total_staked) * staking_payout; + // We don't do anything with this, but if we wanted to, we could introduce a cap on the + // treasury amount with: `rest = rest.min(cap_rest);` + } + (staking_payout, rest) + } + #[test] fn test_fees_and_tip_split() { new_test_ext().execute_with(|| { @@ -425,13 +487,99 @@ mod tests { #[test] fn era_payout_should_give_sensible_results() { - assert_eq!( - era_payout(75, 100, Perquintill::from_percent(10), Perquintill::one(), 0,), - (10, 0) + let payout = + deprecated_era_payout(75, 100, Perquintill::from_percent(10), Perquintill::one(), 0); + assert_eq!(payout, (10, 0)); + + let payout = + deprecated_era_payout(80, 100, Perquintill::from_percent(10), Perquintill::one(), 0); + assert_eq!(payout, (6, 4)); + } + + #[test] + fn relay_era_payout_should_give_sensible_results() { + let params = EraPayoutParams { + total_staked: 75, + total_stakable: 100, + ideal_stake: Perquintill::from_percent(75), + max_annual_inflation: Perquintill::from_percent(10), + min_annual_inflation: Perquintill::from_rational(25u64, 1000u64), + falloff: Perquintill::from_percent(5), + period_fraction: Perquintill::one(), + legacy_auction_proportion: None, + }; + assert_eq!(relay_era_payout(params), (10, 0)); + + let params = EraPayoutParams { + total_staked: 80, + total_stakable: 100, + ideal_stake: Perquintill::from_percent(75), + max_annual_inflation: Perquintill::from_percent(10), + min_annual_inflation: Perquintill::from_rational(25u64, 1000u64), + falloff: Perquintill::from_percent(5), + period_fraction: Perquintill::one(), + legacy_auction_proportion: None, + }; + assert_eq!(relay_era_payout(params), (6, 4)); + } + + #[test] + fn relay_era_payout_should_give_same_results_as_era_payout() { + let total_staked = 1_000_000; + let total_stakable = 2_000_000; + let max_annual_inflation = Perquintill::from_percent(10); + let period_fraction = Perquintill::from_percent(25); + let auctioned_slots = 30; + + let params = EraPayoutParams { + total_staked, + total_stakable, + ideal_stake: Perquintill::from_percent(75), + max_annual_inflation, + min_annual_inflation: Perquintill::from_rational(25u64, 1000u64), + falloff: Perquintill::from_percent(5), + period_fraction, + legacy_auction_proportion: Some(Perquintill::from_rational( + auctioned_slots.min(60), + 200u64, + )), + }; + + let payout = deprecated_era_payout( + total_staked, + total_stakable, + max_annual_inflation, + period_fraction, + auctioned_slots, ); - assert_eq!( - era_payout(80, 100, Perquintill::from_percent(10), Perquintill::one(), 0,), - (6, 4) + assert_eq!(relay_era_payout(params), payout); + + let total_staked = 1_900_000; + let total_stakable = 2_000_000; + let auctioned_slots = 60; + + let params = EraPayoutParams { + total_staked, + total_stakable, + ideal_stake: Perquintill::from_percent(75), + max_annual_inflation, + min_annual_inflation: Perquintill::from_rational(25u64, 1000u64), + falloff: Perquintill::from_percent(5), + period_fraction, + legacy_auction_proportion: Some(Perquintill::from_rational( + auctioned_slots.min(60), + 200u64, + )), + }; + + let payout = deprecated_era_payout( + total_staked, + total_stakable, + max_annual_inflation, + period_fraction, + auctioned_slots, ); + + assert_eq!(relay_era_payout(params), payout); } } diff --git a/polkadot/runtime/westend/Cargo.toml b/polkadot/runtime/westend/Cargo.toml index d2bafb33d2c..4226595cd2f 100644 --- a/polkadot/runtime/westend/Cargo.toml +++ b/polkadot/runtime/westend/Cargo.toml @@ -71,6 +71,7 @@ pallet-multisig = { workspace = true } pallet-nomination-pools = { workspace = true } pallet-conviction-voting = { workspace = true } pallet-offences = { workspace = true } +pallet-parameters = { workspace = true } pallet-preimage = { workspace = true } pallet-proxy = { workspace = true } pallet-recovery = { workspace = true } @@ -79,7 +80,6 @@ pallet-scheduler = { workspace = true } pallet-session = { workspace = true } pallet-society = { workspace = true } pallet-staking = { workspace = true } -pallet-staking-reward-curve = { workspace = true, default-features = true } pallet-staking-runtime-api = { workspace = true } pallet-delegated-staking = { workspace = true } pallet-state-trie-migration = { workspace = true } @@ -173,6 +173,7 @@ std = [ "pallet-nomination-pools/std", "pallet-offences-benchmarking?/std", "pallet-offences/std", + "pallet-parameters/std", "pallet-preimage/std", "pallet-proxy/std", "pallet-recovery/std", @@ -260,6 +261,7 @@ runtime-benchmarks = [ "pallet-nomination-pools/runtime-benchmarks", "pallet-offences-benchmarking/runtime-benchmarks", "pallet-offences/runtime-benchmarks", + "pallet-parameters/runtime-benchmarks", "pallet-preimage/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", "pallet-recovery/runtime-benchmarks", @@ -318,6 +320,7 @@ try-runtime = [ "pallet-multisig/try-runtime", "pallet-nomination-pools/try-runtime", "pallet-offences/try-runtime", + "pallet-parameters/try-runtime", "pallet-preimage/try-runtime", "pallet-proxy/try-runtime", "pallet-recovery/try-runtime", diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index f5da0e5502d..13a69050c34 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -31,12 +31,14 @@ use codec::{Decode, Encode, MaxEncodedLen}; use frame_election_provider_support::{bounds::ElectionBoundsBuilder, onchain, SequentialPhragmen}; use frame_support::{ derive_impl, + dynamic_params::{dynamic_pallet_params, dynamic_params}, genesis_builder_helper::{build_state, get_preset}, parameter_types, traits::{ fungible::HoldConsideration, tokens::UnityOrOuterConversion, ConstU32, Contains, EitherOf, - EitherOfDiverse, EverythingBut, FromContains, InstanceFilter, KeyOwnerProofSystem, - LinearStoragePrice, ProcessMessage, ProcessMessageError, VariantCountOf, WithdrawReasons, + EitherOfDiverse, EnsureOriginWithArg, EverythingBut, FromContains, InstanceFilter, + KeyOwnerProofSystem, LinearStoragePrice, ProcessMessage, ProcessMessageError, + VariantCountOf, WithdrawReasons, }, weights::{ConstantMultiplier, WeightMeter, WeightToFee as _}, PalletId, @@ -59,8 +61,8 @@ use polkadot_runtime_common::{ elections::OnChainAccuracy, identity_migrator, impl_runtime_weights, impls::{ - ContainsParts, LocatableAssetConverter, ToAuthor, VersionedLocatableAsset, - VersionedLocationConverter, + relay_era_payout, ContainsParts, EraPayoutParams, LocatableAssetConverter, ToAuthor, + VersionedLocatableAsset, VersionedLocationConverter, }, paras_registrar, paras_sudo_wrapper, prod_or_fast, slots, traits::{Leaser, OnSwap}, @@ -91,9 +93,7 @@ use sp_consensus_beefy::{ }; use sp_core::{ConstU8, OpaqueMetadata, RuntimeDebug, H256}; use sp_runtime::{ - create_runtime_str, - curve::PiecewiseLinear, - generic, impl_opaque_keys, + create_runtime_str, generic, impl_opaque_keys, traits::{ AccountIdConversion, BlakeTwo256, Block as BlockT, ConvertInto, Extrinsic as ExtrinsicT, IdentityLookup, Keccak256, OpaqueKeys, SaturatedConversion, Verify, @@ -244,6 +244,80 @@ parameter_types! { pub const PreimageHoldReason: RuntimeHoldReason = RuntimeHoldReason::Preimage(pallet_preimage::HoldReason::Preimage); } +/// Dynamic params that can be adjusted at runtime. +#[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] +pub mod dynamic_params { + use super::*; + + /// Parameters used to calculate era payouts, see + /// [`polkadot_runtime_common::impls::EraPayoutParams`]. + #[dynamic_pallet_params] + #[codec(index = 0)] + pub mod inflation { + /// Minimum inflation rate used to calculate era payouts. + #[codec(index = 0)] + pub static MinInflation: Perquintill = Perquintill::from_rational(25u64, 1000u64); + + /// Maximum inflation rate used to calculate era payouts. + #[codec(index = 1)] + pub static MaxInflation: Perquintill = Perquintill::from_rational(10u64, 100u64); + + /// Ideal stake ratio used to calculate era payouts. + #[codec(index = 2)] + pub static IdealStake: Perquintill = Perquintill::from_rational(50u64, 100u64); + + /// Falloff used to calculate era payouts. + #[codec(index = 3)] + pub static Falloff: Perquintill = Perquintill::from_rational(50u64, 1000u64); + + /// Whether to use auction slots or not in the calculation of era payouts. If set to true, + /// the `legacy_auction_proportion` of 60% will be used in the calculation of era payouts. + #[codec(index = 4)] + pub static UseAuctionSlots: bool = false; + } +} + +#[cfg(feature = "runtime-benchmarks")] +impl Default for RuntimeParameters { + fn default() -> Self { + RuntimeParameters::Inflation(dynamic_params::inflation::Parameters::MinInflation( + dynamic_params::inflation::MinInflation, + Some(Perquintill::from_rational(25u64, 1000u64)), + )) + } +} + +impl pallet_parameters::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeParameters = RuntimeParameters; + type AdminOrigin = DynamicParameterOrigin; + type WeightInfo = weights::pallet_parameters::WeightInfo; +} + +/// Defines what origin can modify which dynamic parameters. +pub struct DynamicParameterOrigin; +impl EnsureOriginWithArg for DynamicParameterOrigin { + type Success = (); + + fn try_origin( + origin: RuntimeOrigin, + key: &RuntimeParametersKey, + ) -> Result { + use crate::RuntimeParametersKey::*; + + match key { + Inflation(_) => frame_system::ensure_root(origin.clone()), + } + .map_err(|_| origin) + } + + #[cfg(feature = "runtime-benchmarks")] + fn try_successful_origin(_key: &RuntimeParametersKey) -> Result { + // Provide the origin for the parameter returned by `Default`: + Ok(RuntimeOrigin::root()) + } +} + impl pallet_preimage::Config for Runtime { type WeightInfo = weights::pallet_preimage::WeightInfo; type RuntimeEvent = RuntimeEvent; @@ -596,15 +670,37 @@ impl pallet_bags_list::Config for Runtime { type Score = sp_npos_elections::VoteWeight; } -pallet_staking_reward_curve::build! { - const REWARD_CURVE: PiecewiseLinear<'static> = curve!( - min_inflation: 0_025_000, - max_inflation: 0_100_000, - ideal_stake: 0_500_000, - falloff: 0_050_000, - max_piece_count: 40, - test_precision: 0_005_000, - ); +pub struct EraPayout; +impl pallet_staking::EraPayout for EraPayout { + fn era_payout( + total_staked: Balance, + total_issuance: Balance, + era_duration_millis: u64, + ) -> (Balance, Balance) { + const MILLISECONDS_PER_YEAR: u64 = 1000 * 3600 * 24 * 36525 / 100; + + let params = EraPayoutParams { + total_staked, + total_stakable: total_issuance, + ideal_stake: dynamic_params::inflation::IdealStake::get(), + max_annual_inflation: dynamic_params::inflation::MaxInflation::get(), + min_annual_inflation: dynamic_params::inflation::MinInflation::get(), + falloff: dynamic_params::inflation::Falloff::get(), + period_fraction: Perquintill::from_rational(era_duration_millis, MILLISECONDS_PER_YEAR), + legacy_auction_proportion: if dynamic_params::inflation::UseAuctionSlots::get() { + let auctioned_slots = parachains_paras::Parachains::::get() + .into_iter() + // all active para-ids that do not belong to a system chain is the number of + // parachains that we should take into account for inflation. + .filter(|i| *i >= 2000.into()) + .count() as u64; + Some(Perquintill::from_rational(auctioned_slots.min(60), 200u64)) + } else { + None + }, + }; + relay_era_payout(params) + } } parameter_types! { @@ -614,7 +710,6 @@ parameter_types! { pub const BondingDuration: sp_staking::EraIndex = 2; // 1 era in which slashes can be cancelled (6 hours). pub const SlashDeferDuration: sp_staking::EraIndex = 1; - pub const RewardCurve: &'static PiecewiseLinear<'static> = &REWARD_CURVE; pub const MaxExposurePageSize: u32 = 64; // Note: this is not really correct as Max Nominators is (MaxExposurePageSize * page_count) but // this is an unbounded number. We just set it to a reasonably high value, 1 full page @@ -638,7 +733,7 @@ impl pallet_staking::Config for Runtime { type SlashDeferDuration = SlashDeferDuration; type AdminOrigin = EitherOf, StakingAdmin>; type SessionInterface = Self; - type EraPayout = pallet_staking::ConvertCurve; + type EraPayout = EraPayout; type MaxExposurePageSize = MaxExposurePageSize; type NextNewSession = Session; type ElectionProvider = ElectionProviderMultiPhase; @@ -1475,6 +1570,8 @@ mod runtime { pub type Offences = pallet_offences; #[runtime::pallet_index(27)] pub type Historical = session_historical; + #[runtime::pallet_index(70)] + pub type Parameters = pallet_parameters; #[runtime::pallet_index(8)] pub type Session = pallet_session; @@ -1756,6 +1853,7 @@ mod benches { [pallet_multisig, Multisig] [pallet_nomination_pools, NominationPoolsBench::] [pallet_offences, OffencesBench::] + [pallet_parameters, Parameters] [pallet_preimage, Preimage] [pallet_proxy, Proxy] [pallet_recovery, Recovery] diff --git a/polkadot/runtime/westend/src/weights/mod.rs b/polkadot/runtime/westend/src/weights/mod.rs index 313a4511117..2248e421e63 100644 --- a/polkadot/runtime/westend/src/weights/mod.rs +++ b/polkadot/runtime/westend/src/weights/mod.rs @@ -29,6 +29,7 @@ pub mod pallet_message_queue; pub mod pallet_mmr; pub mod pallet_multisig; pub mod pallet_nomination_pools; +pub mod pallet_parameters; pub mod pallet_preimage; pub mod pallet_proxy; pub mod pallet_referenda_fellowship_referenda; diff --git a/polkadot/runtime/westend/src/weights/pallet_parameters.rs b/polkadot/runtime/westend/src/weights/pallet_parameters.rs new file mode 100644 index 00000000000..2e131ce55f3 --- /dev/null +++ b/polkadot/runtime/westend/src/weights/pallet_parameters.rs @@ -0,0 +1,63 @@ +// Copyright (C) Parity Technologies (UK) Ltd. +// This file is part of Polkadot. + +// Polkadot 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. + +// Polkadot 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 Polkadot. If not, see . + +//! Autogenerated weights for `pallet_parameters` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 +//! DATE: 2024-04-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `runner-anb7yjbi-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` +//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend")`, DB CACHE: 1024 + +// Executed Command: +// target/production/polkadot +// benchmark +// pallet +// --steps=50 +// --repeat=20 +// --extrinsic=* +// --wasm-execution=compiled +// --heap-pages=4096 +// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json +// --pallet=pallet_parameters +// --chain=westend +// --header=./polkadot/file_header.txt +// --output=./polkadot/runtime/westend/src/weights/ + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] +#![allow(missing_docs)] + +use frame_support::{traits::Get, weights::Weight}; +use core::marker::PhantomData; + +/// Weight functions for `pallet_parameters`. +pub struct WeightInfo(PhantomData); +impl pallet_parameters::WeightInfo for WeightInfo { + /// Storage: `Parameters::Parameters` (r:1 w:1) + /// Proof: `Parameters::Parameters` (`max_values`: None, `max_size`: Some(28), added: 2503, mode: `MaxEncodedLen`) + fn set_parameter() -> Weight { + // Proof Size summary in bytes: + // Measured: `4` + // Estimated: `3493` + // Minimum execution time: 6_937_000 picoseconds. + Weight::from_parts(7_242_000, 0) + .saturating_add(Weight::from_parts(0, 3493)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/prdoc/pr_4938.prdoc b/prdoc/pr_4938.prdoc new file mode 100644 index 00000000000..acc2a7c98e0 --- /dev/null +++ b/prdoc/pr_4938.prdoc @@ -0,0 +1,21 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: introduce pallet-parameters to Westend to parameterize inflation + +doc: + - audience: Runtime User + description: | + This PR adds `pallet-parameters` to the Westend runtime, and makes the inflation formula be + adjustable based on this. + + Moreover, the old `era_payout` function has been removed from `polkadot_runtime_common` and is + replaced by `relay_era_payout`. This function is only meant to be used in the Polkadot relay + chains, and other users are encouraged to provide their own implementation of `type + EraPayout`. + +crates: + - name: westend-runtime + bump: major + - name: polkadot-runtime-common + bump: major diff --git a/prdoc/pr_4943.prdoc b/prdoc/pr_4943.prdoc index 70532512606..a8db0f9e1ea 100644 --- a/prdoc/pr_4943.prdoc +++ b/prdoc/pr_4943.prdoc @@ -8,6 +8,6 @@ doc: description: | This PR fixes a bug in the docs located in the definition of frozen balances. In addition, it extends that definition for completeness. -crates: +crates: - name: frame-support - bump: patch \ No newline at end of file + bump: patch -- GitLab From ac98bc3fa158aa01faa3c0f95d10c8932affbcc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 22:25:21 +0000 Subject: [PATCH 079/252] Bump slotmap from 1.0.6 to 1.0.7 (#5096) Bumps [slotmap](https://github.com/orlp/slotmap) from 1.0.6 to 1.0.7.
    Changelog

    Sourced from slotmap's changelog.

    Version 1.0.7

    • Added clone_from implementations for all slot maps.
    • Added try_insert_with_key methods that accept a fallible closure.
    • Improved performance of insertion and key hashing.
    • Made new_key_type resistant to shadowing.
    • Made iterators clonable regardless of item type clonability.
    Commits
    • c905b6c Release 1.0.7.
    • cdee697 Merge pull request #107 from waywardmonkeys/minor-doc-tweaks
    • 4456784 Fix a typo and add some backticks.
    • a7287a2 Merge pull request #99 from chloekek/hash-u64
    • eeaf92e Provide explicit impl Hash for KeyData
    • ce6e1e0 Lint invalid_html_tags has been renamed, but not really necessary.
    • 941c393 Fixed remaining references to global namespace in new_key_type macro.
    • cf7e44c Added utility module.
    • 5575afe Ensure insert always has fast path.
    • 7220adc Cargo fmt and added test case for cloneable iterators.
    • Additional commits viewable in compare view

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=slotmap&package-manager=cargo&previous-version=1.0.6&new-version=1.0.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a6265a34075..99dfbafafe2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19178,9 +19178,9 @@ dependencies = [ [[package]] name = "slotmap" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" dependencies = [ "version_check", ] -- GitLab From 2bd187f85b57ccbcddc1041dacea4be80a901edd Mon Sep 17 00:00:00 2001 From: Andrei Eres Date: Tue, 23 Jul 2024 15:49:54 +0200 Subject: [PATCH 080/252] [subsystem-bench] Adjust approval-voting-regression-bench (#5115) Fixes https://github.com/paritytech/polkadot-sdk/issues/5081 After last changes in approval subsystem and their benchmarks base values need to be updated --- .../benches/approval-voting-regression-bench.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/polkadot/node/core/approval-voting/benches/approval-voting-regression-bench.rs b/polkadot/node/core/approval-voting/benches/approval-voting-regression-bench.rs index 687063dd0eb..a18e667253d 100644 --- a/polkadot/node/core/approval-voting/benches/approval-voting-regression-bench.rs +++ b/polkadot/node/core/approval-voting/benches/approval-voting-regression-bench.rs @@ -77,12 +77,12 @@ fn main() -> Result<(), String> { // We expect no variance for received and sent // but use 0.001 because we operate with floats messages.extend(average_usage.check_network_usage(&[ - ("Received from peers", 52942.4600, 0.001), - ("Sent to peers", 63547.0330, 0.001), + ("Received from peers", 52941.6071, 0.001), + ("Sent to peers", 63810.1859, 0.001), ])); messages.extend(average_usage.check_cpu_usage(&[ - ("approval-distribution", 7.4075, 0.1), - ("approval-voting", 9.9873, 0.1), + ("approval-distribution", 6.3912, 0.1), + ("approval-voting", 10.0578, 0.1), ])); if messages.is_empty() { -- GitLab From 6d0926e239776a509586f2030fa5b5d9c6aac965 Mon Sep 17 00:00:00 2001 From: Muharem Date: Tue, 23 Jul 2024 15:53:10 +0200 Subject: [PATCH 081/252] Make `on_unbalanceds` work with `fungibles` `imbalances` (#4564) Make `on_unbalanceds` work with `fungibles` `imbalances`. The `fungibles` `imbalances` cannot be handled by the default implementation of `on_unbalanceds` from the `OnUnbalanced` trait. This is because the `fungibles` `imbalances` types do not implement the `Imbalance` trait (and cannot with its current semantics). The `on_unbalanceds` function requires only the `merge` function for the imbalance type. In this PR, we provide the `TryMerge` trait, which can be implemented by all imbalance types and make `OnUnbalanced` require it instead `Imbalance`. ### Migration for `OnUnbalanced` trait implementations: In case if you have a custom implementation of `on_unbalanceds` trait function, remove it's `` type argument. ### Migration for custom imbalance types: If you have your own imbalance types implementations, implement the `TryMerge` trait for it introduced with this update. The applicability of the `on_unbalanceds` function to fungibles imbalances is useful in cases like - [link](https://github.com/paritytech/polkadot-sdk/blob/3a8e675e9f6f283514c00c14d3d1d90ed5bf59c0/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/payment.rs#L267) from https://github.com/paritytech/polkadot-sdk/pull/4488. --------- Co-authored-by: Oliver Tale-Yazdi --- cumulus/parachains/common/src/impls.rs | 2 +- polkadot/runtime/common/src/impls.rs | 2 +- prdoc/pr_4564.prdoc | 32 +++++++++++++++++++ substrate/bin/node/runtime/src/lib.rs | 2 +- substrate/frame/balances/src/impl_currency.rs | 14 +++++++- .../src/traits/tokens/fungible/imbalance.rs | 10 +++++- .../src/traits/tokens/fungibles/imbalance.rs | 17 +++++++++- .../support/src/traits/tokens/imbalance.rs | 16 +++++++++- .../traits/tokens/imbalance/on_unbalanced.rs | 21 ++++++++++-- .../asset-conversion-tx-payment/src/mock.rs | 2 +- .../frame/transaction-payment/src/mock.rs | 2 +- 11 files changed, 108 insertions(+), 12 deletions(-) create mode 100644 prdoc/pr_4564.prdoc diff --git a/cumulus/parachains/common/src/impls.rs b/cumulus/parachains/common/src/impls.rs index 42ea50c75a8..c1797c0a751 100644 --- a/cumulus/parachains/common/src/impls.rs +++ b/cumulus/parachains/common/src/impls.rs @@ -67,7 +67,7 @@ where AccountIdOf: From + Into, ::RuntimeEvent: From>, { - fn on_unbalanceds( + fn on_unbalanceds( mut fees_then_tips: impl Iterator< Item = fungible::Credit>, >, diff --git a/polkadot/runtime/common/src/impls.rs b/polkadot/runtime/common/src/impls.rs index 7fdff814a2d..b6a93cf5368 100644 --- a/polkadot/runtime/common/src/impls.rs +++ b/polkadot/runtime/common/src/impls.rs @@ -51,7 +51,7 @@ where ::AccountId: From, ::AccountId: Into, { - fn on_unbalanceds( + fn on_unbalanceds( mut fees_then_tips: impl Iterator>>, ) { if let Some(fees) = fees_then_tips.next() { diff --git a/prdoc/pr_4564.prdoc b/prdoc/pr_4564.prdoc new file mode 100644 index 00000000000..896e49ee6b9 --- /dev/null +++ b/prdoc/pr_4564.prdoc @@ -0,0 +1,32 @@ +title: "Make `OnUnbalanced::on_unbalanceds` work with `fungibles` `imbalances`" + +doc: + - audience: Runtime Dev + description: | + The `on_unbalanceds` function of `OnUnbalanced` trait accepts the `fungibles` `imbalances` + imbalances. This is done by replacing the `Imbalance` trait bound on imbalance type with + the `TryMerge` trait bound. The `TryMerge` trait is implemented for all imbalance types. + + ### Migration for `OnUnbalanced` trait implementations: + In case if you have a custom implementation of `on_unbalanceds` trait function, remove + it's `` type argument. + + ### Migration for custom imbalance types: + If you have your own imbalance types implementations, implement the `TryMerge` trait for it + introduced with this update. + +crates: + - name: frame-support + bump: major + - name: pallet-balances + bump: minor + - name: pallet-asset-conversion-tx-payment + bump: patch + - name: pallet-transaction-payment + bump: patch + - name: kitchensink-runtime + bump: patch + - name: polkadot-runtime-common + bump: patch + - name: parachains-common + bump: minor diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 78c7bba6457..99721344726 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -189,7 +189,7 @@ type NegativeImbalance = >::NegativeImbalance; pub struct DealWithFees; impl OnUnbalanced for DealWithFees { - fn on_unbalanceds(mut fees_then_tips: impl Iterator) { + fn on_unbalanceds(mut fees_then_tips: impl Iterator) { if let Some(fees) = fees_then_tips.next() { // for fees, 80% to treasury, 20% to author let mut split = fees.ration(80, 20); diff --git a/substrate/frame/balances/src/impl_currency.rs b/substrate/frame/balances/src/impl_currency.rs index 049f0cc626c..23feb46b72c 100644 --- a/substrate/frame/balances/src/impl_currency.rs +++ b/substrate/frame/balances/src/impl_currency.rs @@ -41,7 +41,7 @@ use sp_runtime::traits::Bounded; mod imbalances { use super::*; use core::mem; - use frame_support::traits::SameOrOther; + use frame_support::traits::{tokens::imbalance::TryMerge, SameOrOther}; /// Opaque, move-only struct with private fields that serves as a token denoting that /// funds have been created without any equal and opposite accounting. @@ -133,6 +133,12 @@ mod imbalances { } } + impl, I: 'static> TryMerge for PositiveImbalance { + fn try_merge(self, other: Self) -> Result { + Ok(self.merge(other)) + } + } + impl, I: 'static> TryDrop for NegativeImbalance { fn try_drop(self) -> result::Result<(), Self> { self.drop_zero() @@ -197,6 +203,12 @@ mod imbalances { } } + impl, I: 'static> TryMerge for NegativeImbalance { + fn try_merge(self, other: Self) -> Result { + Ok(self.merge(other)) + } + } + impl, I: 'static> Drop for PositiveImbalance { /// Basic drop handler will just square up the total issuance. fn drop(&mut self) { diff --git a/substrate/frame/support/src/traits/tokens/fungible/imbalance.rs b/substrate/frame/support/src/traits/tokens/fungible/imbalance.rs index 41907b2aa00..a9367d0f164 100644 --- a/substrate/frame/support/src/traits/tokens/fungible/imbalance.rs +++ b/substrate/frame/support/src/traits/tokens/fungible/imbalance.rs @@ -24,7 +24,7 @@ use super::{super::Imbalance as ImbalanceT, Balanced, *}; use crate::traits::{ fungibles, misc::{SameOrOther, TryDrop}, - tokens::{AssetId, Balance}, + tokens::{imbalance::TryMerge, AssetId, Balance}, }; use core::marker::PhantomData; use frame_support_procedural::{EqNoBound, PartialEqNoBound, RuntimeDebugNoBound}; @@ -157,6 +157,14 @@ impl, OppositeOnDrop: HandleImbalance } } +impl, OppositeOnDrop: HandleImbalanceDrop> TryMerge + for Imbalance +{ + fn try_merge(self, other: Self) -> Result { + Ok(self.merge(other)) + } +} + /// Converts a `fungibles` `imbalance` instance to an instance of a `fungible` imbalance type. /// /// This function facilitates imbalance conversions within the implementations of diff --git a/substrate/frame/support/src/traits/tokens/fungibles/imbalance.rs b/substrate/frame/support/src/traits/tokens/fungibles/imbalance.rs index c3b213cc8fc..349d9d7c65e 100644 --- a/substrate/frame/support/src/traits/tokens/fungibles/imbalance.rs +++ b/substrate/frame/support/src/traits/tokens/fungibles/imbalance.rs @@ -24,7 +24,10 @@ use super::*; use crate::traits::{ fungible, misc::{SameOrOther, TryDrop}, - tokens::{imbalance::Imbalance as ImbalanceT, AssetId, Balance}, + tokens::{ + imbalance::{Imbalance as ImbalanceT, TryMerge}, + AssetId, Balance, + }, }; use core::marker::PhantomData; use frame_support_procedural::{EqNoBound, PartialEqNoBound, RuntimeDebugNoBound}; @@ -176,6 +179,18 @@ impl< } } +impl< + A: AssetId, + B: Balance, + OnDrop: HandleImbalanceDrop, + OppositeOnDrop: HandleImbalanceDrop, + > TryMerge for Imbalance +{ + fn try_merge(self, other: Self) -> Result { + self.merge(other) + } +} + /// Converts a `fungible` `imbalance` instance to an instance of a `fungibles` imbalance type using /// a specified `asset`. /// diff --git a/substrate/frame/support/src/traits/tokens/imbalance.rs b/substrate/frame/support/src/traits/tokens/imbalance.rs index 8eb9b355a4c..ee0d7a81c36 100644 --- a/substrate/frame/support/src/traits/tokens/imbalance.rs +++ b/substrate/frame/support/src/traits/tokens/imbalance.rs @@ -58,7 +58,7 @@ pub use split_two_ways::SplitTwoWays; /// /// You can always retrieve the raw balance value using `peek`. #[must_use] -pub trait Imbalance: Sized + TryDrop + Default { +pub trait Imbalance: Sized + TryDrop + Default + TryMerge { /// The oppositely imbalanced type. They come in pairs. type Opposite: Imbalance; @@ -182,6 +182,13 @@ pub trait Imbalance: Sized + TryDrop + Default { fn peek(&self) -> Balance; } +/// Try to merge two imbalances. +pub trait TryMerge: Sized { + /// Consume `self` and an `other` to return a new instance that combines both. Errors with + /// Err(self, other) if the imbalances cannot be merged (e.g. imbalances of different assets). + fn try_merge(self, other: Self) -> Result; +} + #[cfg(feature = "std")] impl Imbalance for () { type Opposite = (); @@ -236,3 +243,10 @@ impl Imbalance for () { Default::default() } } + +#[cfg(feature = "std")] +impl TryMerge for () { + fn try_merge(self, _: Self) -> Result { + Ok(()) + } +} diff --git a/substrate/frame/support/src/traits/tokens/imbalance/on_unbalanced.rs b/substrate/frame/support/src/traits/tokens/imbalance/on_unbalanced.rs index 4bf9af3fbb1..461fd203668 100644 --- a/substrate/frame/support/src/traits/tokens/imbalance/on_unbalanced.rs +++ b/substrate/frame/support/src/traits/tokens/imbalance/on_unbalanced.rs @@ -35,11 +35,26 @@ pub trait OnUnbalanced { /// Handler for some imbalances. The different imbalances might have different origins or /// meanings, dependent on the context. Will default to simply calling on_unbalanced for all /// of them. Infallible. - fn on_unbalanceds(amounts: impl Iterator) + fn on_unbalanceds(mut amounts: impl Iterator) where - Imbalance: crate::traits::Imbalance, + Imbalance: crate::traits::tokens::imbalance::TryMerge, { - Self::on_unbalanced(amounts.fold(Imbalance::zero(), |i, x| x.merge(i))) + let mut sum: Option = None; + while let Some(next) = amounts.next() { + sum = match sum { + Some(sum) => match sum.try_merge(next) { + Ok(sum) => Some(sum), + Err((sum, next)) => { + Self::on_unbalanced(next); + Some(sum) + }, + }, + None => Some(next), + } + } + if let Some(sum) = sum { + Self::on_unbalanced(sum) + } } /// Handler for some imbalance. Infallible. diff --git a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/mock.rs b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/mock.rs index 3f8c7bc0ea3..245900760de 100644 --- a/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/mock.rs +++ b/substrate/frame/transaction-payment/asset-conversion-tx-payment/src/mock.rs @@ -131,7 +131,7 @@ pub struct DealWithFees; impl OnUnbalanced::AccountId, Balances>> for DealWithFees { - fn on_unbalanceds( + fn on_unbalanceds( mut fees_then_tips: impl Iterator< Item = fungible::Credit<::AccountId, Balances>, >, diff --git a/substrate/frame/transaction-payment/src/mock.rs b/substrate/frame/transaction-payment/src/mock.rs index fa61572e983..8767024ee23 100644 --- a/substrate/frame/transaction-payment/src/mock.rs +++ b/substrate/frame/transaction-payment/src/mock.rs @@ -105,7 +105,7 @@ pub struct DealWithFees; impl OnUnbalanced::AccountId, Balances>> for DealWithFees { - fn on_unbalanceds( + fn on_unbalanceds( mut fees_then_tips: impl Iterator< Item = fungible::Credit<::AccountId, Balances>, >, -- GitLab From 216e8fa126df9ee819d524834e75a82881681e02 Mon Sep 17 00:00:00 2001 From: Serban Iorga Date: Tue, 23 Jul 2024 17:27:42 +0300 Subject: [PATCH 082/252] Beefy equivocation: add runtime API methods (#4993) Related to https://github.com/paritytech/polkadot-sdk/issues/4523 Add runtime API methods for: - generating the ancestry proof - submiting a fork voting report - submitting a future voting report --- polkadot/node/service/src/fake_runtime_api.rs | 25 ++++++++ polkadot/runtime/rococo/src/lib.rs | 38 ++++++++++++- polkadot/runtime/test-runtime/src/lib.rs | 26 +++++++++ polkadot/runtime/westend/src/lib.rs | 38 ++++++++++++- prdoc/pr_4993.prdoc | 27 +++++++++ substrate/bin/node/runtime/src/lib.rs | 38 ++++++++++++- substrate/frame/beefy-mmr/src/lib.rs | 18 ++++++ substrate/frame/beefy/src/lib.rs | 35 +++++++++++- substrate/frame/beefy/src/mock.rs | 7 +++ .../primitives/consensus/beefy/src/lib.rs | 57 ++++++++++++++++++- 10 files changed, 303 insertions(+), 6 deletions(-) create mode 100644 prdoc/pr_4993.prdoc diff --git a/polkadot/node/service/src/fake_runtime_api.rs b/polkadot/node/service/src/fake_runtime_api.rs index e971830c95c..cdef39d5bdf 100644 --- a/polkadot/node/service/src/fake_runtime_api.rs +++ b/polkadot/node/service/src/fake_runtime_api.rs @@ -252,12 +252,37 @@ sp_api::impl_runtime_apis! { unimplemented!() } + fn submit_report_fork_voting_unsigned_extrinsic( + _: sp_consensus_beefy::ForkVotingProof< + ::Header, + BeefyId, + sp_runtime::OpaqueValue + >, + _: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + unimplemented!() + } + + fn submit_report_future_block_voting_unsigned_extrinsic( + _: sp_consensus_beefy::FutureBlockVotingProof, + _: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + unimplemented!() + } + fn generate_key_ownership_proof( _: sp_consensus_beefy::ValidatorSetId, _: BeefyId, ) -> Option { unimplemented!() } + + fn generate_ancestry_proof( + _: BlockNumber, + _: Option, + ) -> Option { + unimplemented!() + } } impl sp_mmr_primitives::MmrApi for Runtime { diff --git a/polkadot/runtime/rococo/src/lib.rs b/polkadot/runtime/rococo/src/lib.rs index 058b9c279f2..2a1cb58fc17 100644 --- a/polkadot/runtime/rococo/src/lib.rs +++ b/polkadot/runtime/rococo/src/lib.rs @@ -2054,7 +2054,7 @@ sp_api::impl_runtime_apis! { } } - #[api_version(4)] + #[api_version(5)] impl sp_consensus_beefy::BeefyApi for Runtime { fn beefy_genesis() -> Option { pallet_beefy::GenesisBlock::::get() @@ -2080,6 +2080,31 @@ sp_api::impl_runtime_apis! { ) } + fn submit_report_fork_voting_unsigned_extrinsic( + equivocation_proof: + sp_consensus_beefy::ForkVotingProof< + ::Header, + BeefyId, + sp_runtime::OpaqueValue + >, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + Beefy::submit_unsigned_fork_voting_report( + equivocation_proof.try_into()?, + key_owner_proof.decode()?, + ) + } + + fn submit_report_future_block_voting_unsigned_extrinsic( + equivocation_proof: sp_consensus_beefy::FutureBlockVotingProof, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + Beefy::submit_unsigned_future_block_voting_report( + equivocation_proof, + key_owner_proof.decode()?, + ) + } + fn generate_key_ownership_proof( _set_id: sp_consensus_beefy::ValidatorSetId, authority_id: BeefyId, @@ -2090,6 +2115,17 @@ sp_api::impl_runtime_apis! { .map(|p| p.encode()) .map(sp_consensus_beefy::OpaqueKeyOwnershipProof::new) } + + fn generate_ancestry_proof( + prev_block_number: BlockNumber, + best_known_block_number: Option, + ) -> Option { + use sp_consensus_beefy::AncestryHelper; + + MmrLeaf::generate_proof(prev_block_number, best_known_block_number) + .map(|p| p.encode()) + .map(sp_runtime::OpaqueValue::new) + } } #[api_version(2)] diff --git a/polkadot/runtime/test-runtime/src/lib.rs b/polkadot/runtime/test-runtime/src/lib.rs index a8a369a68e6..8e34320d38f 100644 --- a/polkadot/runtime/test-runtime/src/lib.rs +++ b/polkadot/runtime/test-runtime/src/lib.rs @@ -1029,12 +1029,38 @@ sp_api::impl_runtime_apis! { None } + fn submit_report_fork_voting_unsigned_extrinsic( + _equivocation_proof: + sp_consensus_beefy::ForkVotingProof< + ::Header, + BeefyId, + sp_runtime::OpaqueValue + >, + _key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + None + } + + fn submit_report_future_block_voting_unsigned_extrinsic( + _equivocation_proof: sp_consensus_beefy::FutureBlockVotingProof, + _key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + None + } + fn generate_key_ownership_proof( _set_id: sp_consensus_beefy::ValidatorSetId, _authority_id: BeefyId, ) -> Option { None } + + fn generate_ancestry_proof( + _prev_block_number: BlockNumber, + _best_known_block_number: Option, + ) -> Option { + None + } } impl mmr::MmrApi for Runtime { diff --git a/polkadot/runtime/westend/src/lib.rs b/polkadot/runtime/westend/src/lib.rs index 13a69050c34..09347610651 100644 --- a/polkadot/runtime/westend/src/lib.rs +++ b/polkadot/runtime/westend/src/lib.rs @@ -2109,7 +2109,7 @@ sp_api::impl_runtime_apis! { } } - #[api_version(4)] + #[api_version(5)] impl sp_consensus_beefy::BeefyApi for Runtime { fn beefy_genesis() -> Option { pallet_beefy::GenesisBlock::::get() @@ -2135,6 +2135,31 @@ sp_api::impl_runtime_apis! { ) } + fn submit_report_fork_voting_unsigned_extrinsic( + equivocation_proof: + sp_consensus_beefy::ForkVotingProof< + ::Header, + BeefyId, + sp_runtime::OpaqueValue + >, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + Beefy::submit_unsigned_fork_voting_report( + equivocation_proof.try_into()?, + key_owner_proof.decode()?, + ) + } + + fn submit_report_future_block_voting_unsigned_extrinsic( + equivocation_proof: sp_consensus_beefy::FutureBlockVotingProof, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + Beefy::submit_unsigned_future_block_voting_report( + equivocation_proof, + key_owner_proof.decode()?, + ) + } + fn generate_key_ownership_proof( _set_id: sp_consensus_beefy::ValidatorSetId, authority_id: BeefyId, @@ -2145,6 +2170,17 @@ sp_api::impl_runtime_apis! { .map(|p| p.encode()) .map(sp_consensus_beefy::OpaqueKeyOwnershipProof::new) } + + fn generate_ancestry_proof( + prev_block_number: BlockNumber, + best_known_block_number: Option, + ) -> Option { + use sp_consensus_beefy::AncestryHelper; + + BeefyMmrLeaf::generate_proof(prev_block_number, best_known_block_number) + .map(|p| p.encode()) + .map(sp_runtime::OpaqueValue::new) + } } impl mmr::MmrApi for Runtime { diff --git a/prdoc/pr_4993.prdoc b/prdoc/pr_4993.prdoc new file mode 100644 index 00000000000..d822d5cd6c7 --- /dev/null +++ b/prdoc/pr_4993.prdoc @@ -0,0 +1,27 @@ +# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0 +# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json + +title: Added BEEFY equivocation-related methods to BeefyApi + +doc: + - audience: Node Dev + description: | + This PR adds the `generate_ancestry_proof`, `submit_report_fork_voting_unsigned_extrinsic` and + `submit_report_future_block_voting_unsigned_extrinsic` to `BeefyApi` and bumps the `BeefyApi` version + from 4 to 5. + +crates: + - name: pallet-beefy + bump: minor + - name: pallet-beefy-mmr + bump: minor + - name: kitchensink-runtime + bump: major + - name: rococo-runtime + bump: major + - name: westend-runtime + bump: major + - name: sp-consensus-beefy + bump: minor + - name: polkadot-service + bump: patch diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 99721344726..cad2cc119f0 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -3038,7 +3038,7 @@ impl_runtime_apis! { } } - #[api_version(4)] + #[api_version(5)] impl sp_consensus_beefy::BeefyApi for Runtime { fn beefy_genesis() -> Option { pallet_beefy::GenesisBlock::::get() @@ -3064,6 +3064,31 @@ impl_runtime_apis! { ) } + fn submit_report_fork_voting_unsigned_extrinsic( + equivocation_proof: + sp_consensus_beefy::ForkVotingProof< + ::Header, + BeefyId, + sp_runtime::OpaqueValue + >, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + Beefy::submit_unsigned_fork_voting_report( + equivocation_proof.try_into()?, + key_owner_proof.decode()?, + ) + } + + fn submit_report_future_block_voting_unsigned_extrinsic( + equivocation_proof: sp_consensus_beefy::FutureBlockVotingProof, + key_owner_proof: sp_consensus_beefy::OpaqueKeyOwnershipProof, + ) -> Option<()> { + Beefy::submit_unsigned_future_block_voting_report( + equivocation_proof, + key_owner_proof.decode()?, + ) + } + fn generate_key_ownership_proof( _set_id: sp_consensus_beefy::ValidatorSetId, authority_id: BeefyId, @@ -3072,6 +3097,17 @@ impl_runtime_apis! { .map(|p| p.encode()) .map(sp_consensus_beefy::OpaqueKeyOwnershipProof::new) } + + fn generate_ancestry_proof( + prev_block_number: BlockNumber, + best_known_block_number: Option, + ) -> Option { + use sp_consensus_beefy::AncestryHelper; + + MmrLeaf::generate_proof(prev_block_number, best_known_block_number) + .map(|p| p.encode()) + .map(sp_runtime::OpaqueValue::new) + } } impl pallet_mmr::primitives::MmrApi< diff --git a/substrate/frame/beefy-mmr/src/lib.rs b/substrate/frame/beefy-mmr/src/lib.rs index ec341cad208..195bbfbf2f2 100644 --- a/substrate/frame/beefy-mmr/src/lib.rs +++ b/substrate/frame/beefy-mmr/src/lib.rs @@ -183,6 +183,24 @@ where type Proof = AncestryProof>; type ValidationContext = MerkleRootOf; + fn generate_proof( + prev_block_number: BlockNumberFor, + best_known_block_number: Option>, + ) -> Option { + pallet_mmr::Pallet::::generate_ancestry_proof(prev_block_number, best_known_block_number) + .map_err(|e| { + log::error!( + target: "runtime::beefy", + "Failed to generate ancestry proof for block {:?} at {:?}: {:?}", + prev_block_number, + best_known_block_number, + e + ); + e + }) + .ok() + } + fn extract_validation_context(header: HeaderFor) -> Option { // Check if the provided header is canonical. let expected_hash = frame_system::Pallet::::block_hash(header.number()); diff --git a/substrate/frame/beefy/src/lib.rs b/substrate/frame/beefy/src/lib.rs index fd9a0027c6f..353ba876c7e 100644 --- a/substrate/frame/beefy/src/lib.rs +++ b/substrate/frame/beefy/src/lib.rs @@ -538,8 +538,8 @@ impl Pallet { ValidatorSet::::new(validators, id) } - /// Submits an extrinsic to report an equivocation. This method will create - /// an unsigned extrinsic with a call to `report_equivocation_unsigned` and + /// Submits an extrinsic to report a double voting equivocation. This method will create + /// an unsigned extrinsic with a call to `report_double_voting_unsigned` and /// will push the transaction to the pool. Only useful in an offchain context. pub fn submit_unsigned_double_voting_report( equivocation_proof: DoubleVotingProof< @@ -556,6 +556,37 @@ impl Pallet { .ok() } + /// Submits an extrinsic to report a fork voting equivocation. This method will create + /// an unsigned extrinsic with a call to `report_fork_voting_unsigned` and + /// will push the transaction to the pool. Only useful in an offchain context. + pub fn submit_unsigned_fork_voting_report( + equivocation_proof: ForkVotingProof< + HeaderFor, + T::BeefyId, + >>::Proof, + >, + key_owner_proof: T::KeyOwnerProof, + ) -> Option<()> { + T::EquivocationReportSystem::publish_evidence(EquivocationEvidenceFor::ForkVotingProof( + equivocation_proof, + key_owner_proof, + )) + .ok() + } + + /// Submits an extrinsic to report a future block voting equivocation. This method will create + /// an unsigned extrinsic with a call to `report_future_block_voting_unsigned` and + /// will push the transaction to the pool. Only useful in an offchain context. + pub fn submit_unsigned_future_block_voting_report( + equivocation_proof: FutureBlockVotingProof, T::BeefyId>, + key_owner_proof: T::KeyOwnerProof, + ) -> Option<()> { + T::EquivocationReportSystem::publish_evidence( + EquivocationEvidenceFor::FutureBlockVotingProof(equivocation_proof, key_owner_proof), + ) + .ok() + } + fn change_authorities( new: BoundedVec, queued: BoundedVec, diff --git a/substrate/frame/beefy/src/mock.rs b/substrate/frame/beefy/src/mock.rs index 03efccff764..a0880660d05 100644 --- a/substrate/frame/beefy/src/mock.rs +++ b/substrate/frame/beefy/src/mock.rs @@ -111,6 +111,13 @@ impl AncestryHelper
    for MockAncestryHelper { type Proof = MockAncestryProof; type ValidationContext = MockAncestryProofContext; + fn generate_proof( + _prev_block_number: Header::Number, + _best_known_block_number: Option, + ) -> Option { + unimplemented!() + } + fn extract_validation_context(_header: Header) -> Option { AncestryProofContext::get() } diff --git a/substrate/primitives/consensus/beefy/src/lib.rs b/substrate/primitives/consensus/beefy/src/lib.rs index 7f6f733d0e3..020e1667cbc 100644 --- a/substrate/primitives/consensus/beefy/src/lib.rs +++ b/substrate/primitives/consensus/beefy/src/lib.rs @@ -349,6 +349,19 @@ pub struct ForkVotingProof pub header: Header, } +impl ForkVotingProof { + /// Try to decode the `AncestryProof`. + pub fn try_into( + self, + ) -> Option> { + Some(ForkVotingProof:: { + vote: self.vote, + ancestry_proof: self.ancestry_proof.decode()?, + header: self.header, + }) + } +} + /// Proof showing that an authority voted for a future block. #[derive(Clone, Debug, Decode, Encode, PartialEq, TypeInfo)] pub struct FutureBlockVotingProof { @@ -428,6 +441,13 @@ pub trait AncestryHelper { /// The data needed for validating the proof. type ValidationContext; + /// Generates a proof that the `prev_block_number` is part of the canonical chain at + /// `best_known_block_number`. + fn generate_proof( + prev_block_number: Header::Number, + best_known_block_number: Option, + ) -> Option; + /// Extract the validation context from the provided header. fn extract_validation_context(header: Header) -> Option; @@ -450,7 +470,7 @@ pub type OpaqueKeyOwnershipProof = OpaqueValue; sp_api::decl_runtime_apis! { /// API necessary for BEEFY voters. - #[api_version(4)] + #[api_version(5)] pub trait BeefyApi where AuthorityId : Codec + RuntimeAppPublic, { @@ -474,6 +494,34 @@ sp_api::decl_runtime_apis! { key_owner_proof: OpaqueKeyOwnershipProof, ) -> Option<()>; + /// Submits an unsigned extrinsic to report a fork voting equivocation. The caller + /// must provide the fork voting proof (the ancestry proof should be obtained using + /// `generate_ancestry_proof`) and a key ownership proof (should be obtained using + /// `generate_key_ownership_proof`). The extrinsic will be unsigned and should only + /// be accepted for local authorship (not to be broadcast to the network). This method + /// returns `None` when creation of the extrinsic fails, e.g. if equivocation + /// reporting is disabled for the given runtime (i.e. this method is + /// hardcoded to return `None`). Only useful in an offchain context. + fn submit_report_fork_voting_unsigned_extrinsic( + equivocation_proof: + ForkVotingProof, + key_owner_proof: OpaqueKeyOwnershipProof, + ) -> Option<()>; + + /// Submits an unsigned extrinsic to report a future block voting equivocation. The caller + /// must provide the future block voting proof and a key ownership proof + /// (should be obtained using `generate_key_ownership_proof`). + /// The extrinsic will be unsigned and should only be accepted for local + /// authorship (not to be broadcast to the network). This method returns + /// `None` when creation of the extrinsic fails, e.g. if equivocation + /// reporting is disabled for the given runtime (i.e. this method is + /// hardcoded to return `None`). Only useful in an offchain context. + fn submit_report_future_block_voting_unsigned_extrinsic( + equivocation_proof: + FutureBlockVotingProof, AuthorityId>, + key_owner_proof: OpaqueKeyOwnershipProof, + ) -> Option<()>; + /// Generates a proof of key ownership for the given authority in the /// given set. An example usage of this module is coupled with the /// session historical module to prove that a given authority key is @@ -489,6 +537,13 @@ sp_api::decl_runtime_apis! { set_id: ValidatorSetId, authority_id: AuthorityId, ) -> Option; + + /// Generates a proof that the `prev_block_number` is part of the canonical chain at + /// `best_known_block_number`. + fn generate_ancestry_proof( + prev_block_number: NumberFor, + best_known_block_number: Option>, + ) -> Option; } } -- GitLab From bbb8668672896b1952496b2dfe641a91defb2454 Mon Sep 17 00:00:00 2001 From: Jun Jiang Date: Tue, 23 Jul 2024 23:54:20 +0800 Subject: [PATCH 083/252] Replace all ansi_term crates (#2923) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now Polkadot-SDK is ansi_term free --------- Co-authored-by: Bastian Köcher --- Cargo.lock | 6 +- Cargo.toml | 1 - bridges/relays/utils/Cargo.toml | 2 +- bridges/relays/utils/src/initialize.rs | 16 +-- cumulus/test/service/src/lib.rs | 1 - polkadot/node/test/service/src/lib.rs | 1 - prdoc/pr_2923.prdoc | 16 +++ .../bin/node/cli/benches/block_production.rs | 1 - .../bin/node/cli/benches/transaction_pool.rs | 1 - substrate/client/cli/src/config.rs | 3 +- substrate/client/cli/src/runner.rs | 1 - substrate/client/informant/Cargo.toml | 2 +- substrate/client/informant/src/display.rs | 22 ++- substrate/client/informant/src/lib.rs | 77 ++-------- substrate/client/service/src/builder.rs | 7 +- substrate/client/service/src/config.rs | 3 - substrate/client/service/test/src/lib.rs | 1 - substrate/client/tracing/Cargo.toml | 4 +- .../tracing/src/logging/event_format.rs | 136 ++++-------------- substrate/client/tracing/src/logging/mod.rs | 39 +---- 20 files changed, 81 insertions(+), 259 deletions(-) create mode 100644 prdoc/pr_2923.prdoc diff --git a/Cargo.lock b/Cargo.lock index 99dfbafafe2..50c2e893583 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16192,12 +16192,12 @@ dependencies = [ name = "relay-utils" version = "0.1.0" dependencies = [ - "ansi_term", "anyhow", "async-std", "async-trait", "backoff", "bp-runtime", + "console", "env_logger 0.11.3", "futures", "isahc", @@ -17668,7 +17668,7 @@ dependencies = [ name = "sc-informant" version = "0.33.0" dependencies = [ - "ansi_term", + "console", "futures", "futures-timer", "log", @@ -18364,8 +18364,8 @@ dependencies = [ name = "sc-tracing" version = "28.0.0" dependencies = [ - "ansi_term", "chrono", + "console", "criterion", "is-terminal", "lazy_static", diff --git a/Cargo.toml b/Cargo.toml index 3886014dc2b..e9ab2934f44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -576,7 +576,6 @@ ahash = { version = "0.8.2" } alloy-primitives = { version = "0.4.2", default-features = false } alloy-sol-types = { version = "0.4.2", default-features = false } always-assert = { version = "0.1" } -ansi_term = { version = "0.12.1" } anyhow = { version = "1.0.81" } aquamarine = { version = "0.5.0" } arbitrary = { version = "1.3.2" } diff --git a/bridges/relays/utils/Cargo.toml b/bridges/relays/utils/Cargo.toml index 93e42763967..2c3f3775048 100644 --- a/bridges/relays/utils/Cargo.toml +++ b/bridges/relays/utils/Cargo.toml @@ -11,11 +11,11 @@ publish = false workspace = true [dependencies] -ansi_term = { workspace = true } anyhow = { workspace = true } async-std = { workspace = true } async-trait = { workspace = true } backoff = { workspace = true } +console = { workspace = true } isahc = { workspace = true } env_logger = { workspace = true } futures = { workspace = true } diff --git a/bridges/relays/utils/src/initialize.rs b/bridges/relays/utils/src/initialize.rs index 64d71024271..cd0377caa3d 100644 --- a/bridges/relays/utils/src/initialize.rs +++ b/bridges/relays/utils/src/initialize.rs @@ -16,6 +16,7 @@ //! Relayer initialization functions. +use console::style; use parking_lot::Mutex; use std::{cell::RefCell, fmt::Display, io::Write}; @@ -55,7 +56,7 @@ pub fn initialize_logger(with_timestamp: bool) { let timestamp = if cfg!(windows) { Either::Left(timestamp) } else { - Either::Right(ansi_term::Colour::Fixed(8).bold().paint(timestamp)) + Either::Right(style(timestamp).black().bright().bold().to_string()) }; writeln!( @@ -120,7 +121,7 @@ fn color_target(target: &str) -> impl Display + '_ { if cfg!(windows) { Either::Left(target) } else { - Either::Right(ansi_term::Colour::Fixed(8).paint(target)) + Either::Right(style(target).black().bright().to_string()) } } @@ -129,13 +130,12 @@ fn color_level(level: log::Level) -> impl Display { Either::Left(level) } else { let s = level.to_string(); - use ansi_term::Colour as Color; Either::Right(match level { - log::Level::Error => Color::Fixed(9).bold().paint(s), - log::Level::Warn => Color::Fixed(11).bold().paint(s), - log::Level::Info => Color::Fixed(10).paint(s), - log::Level::Debug => Color::Fixed(14).paint(s), - log::Level::Trace => Color::Fixed(12).paint(s), + log::Level::Error => style(s).red().bright().bold().to_string(), + log::Level::Warn => style(s).yellow().bright().bold().to_string(), + log::Level::Info => style(s).green().bright().to_string(), + log::Level::Debug => style(s).cyan().bright().to_string(), + log::Level::Trace => style(s).blue().bright().to_string(), }) } } diff --git a/cumulus/test/service/src/lib.rs b/cumulus/test/service/src/lib.rs index 51cdebbaf54..0458a076892 100644 --- a/cumulus/test/service/src/lib.rs +++ b/cumulus/test/service/src/lib.rs @@ -891,7 +891,6 @@ pub fn node_config( announce_block: true, data_path: root, base_path, - informant_output_format: Default::default(), wasm_runtime_overrides: None, runtime_cache_size: 2, }) diff --git a/polkadot/node/test/service/src/lib.rs b/polkadot/node/test/service/src/lib.rs index 35156a3a937..a4e58253bb1 100644 --- a/polkadot/node/test/service/src/lib.rs +++ b/polkadot/node/test/service/src/lib.rs @@ -232,7 +232,6 @@ pub fn node_config( announce_block: true, data_path: root, base_path, - informant_output_format: Default::default(), } } diff --git a/prdoc/pr_2923.prdoc b/prdoc/pr_2923.prdoc new file mode 100644 index 00000000000..88bf1d48dd8 --- /dev/null +++ b/prdoc/pr_2923.prdoc @@ -0,0 +1,16 @@ +title: "Use `console` crate instead of `ansi_term`" + +doc: + - audience: Node Dev + description: | + This PR replace obsoleted `ansi_term` to `console`. + +crates: + - name: relay-utils + bump: patch + - name: sc-informant + bump: patch + - name: sc-tracing + bump: patch + - name: sc-service + bump: major diff --git a/substrate/bin/node/cli/benches/block_production.rs b/substrate/bin/node/cli/benches/block_production.rs index c16b25187e5..8239637b3a9 100644 --- a/substrate/bin/node/cli/benches/block_production.rs +++ b/substrate/bin/node/cli/benches/block_production.rs @@ -104,7 +104,6 @@ fn new_node(tokio_handle: Handle) -> node_cli::service::NewFullBase { announce_block: true, data_path: base_path.path().into(), base_path, - informant_output_format: Default::default(), wasm_runtime_overrides: None, }; diff --git a/substrate/bin/node/cli/benches/transaction_pool.rs b/substrate/bin/node/cli/benches/transaction_pool.rs index 6618f4b1132..9a71a4ec585 100644 --- a/substrate/bin/node/cli/benches/transaction_pool.rs +++ b/substrate/bin/node/cli/benches/transaction_pool.rs @@ -99,7 +99,6 @@ fn new_node(tokio_handle: Handle) -> node_cli::service::NewFullBase { announce_block: true, data_path: base_path.path().into(), base_path, - informant_output_format: Default::default(), wasm_runtime_overrides: None, }; diff --git a/substrate/client/cli/src/config.rs b/substrate/client/cli/src/config.rs index 783c9313121..283148a6d6a 100644 --- a/substrate/client/cli/src/config.rs +++ b/substrate/client/cli/src/config.rs @@ -27,7 +27,7 @@ use names::{Generator, Name}; use sc_service::{ config::{ BasePath, Configuration, DatabaseSource, IpNetwork, KeystoreConfig, NetworkConfiguration, - NodeKeyConfig, OffchainWorkerConfig, OutputFormat, PrometheusConfig, PruningMode, Role, + NodeKeyConfig, OffchainWorkerConfig, PrometheusConfig, PruningMode, Role, RpcBatchRequestConfig, RpcMethods, TelemetryEndpoints, TransactionPoolOptions, WasmExecutionMethod, }, @@ -550,7 +550,6 @@ pub trait CliConfiguration: Sized { announce_block: self.announce_block()?, role, base_path, - informant_output_format: OutputFormat { enable_color: !self.disable_log_color()? }, runtime_cache_size, }) } diff --git a/substrate/client/cli/src/runner.rs b/substrate/client/cli/src/runner.rs index 6d986e38d2f..b0dbccfa634 100644 --- a/substrate/client/cli/src/runner.rs +++ b/substrate/client/cli/src/runner.rs @@ -291,7 +291,6 @@ mod tests { announce_block: true, base_path: sc_service::BasePath::new(root.clone()), data_path: root, - informant_output_format: Default::default(), runtime_cache_size: 2, }, runtime, diff --git a/substrate/client/informant/Cargo.toml b/substrate/client/informant/Cargo.toml index 9da2296deee..aa54d9479f5 100644 --- a/substrate/client/informant/Cargo.toml +++ b/substrate/client/informant/Cargo.toml @@ -16,7 +16,7 @@ workspace = true targets = ["x86_64-unknown-linux-gnu"] [dependencies] -ansi_term = { workspace = true } +console = { workspace = true } futures = { workspace = true } futures-timer = { workspace = true } log = { workspace = true, default-features = true } diff --git a/substrate/client/informant/src/display.rs b/substrate/client/informant/src/display.rs index cdbb83b6596..655bf21c711 100644 --- a/substrate/client/informant/src/display.rs +++ b/substrate/client/informant/src/display.rs @@ -16,8 +16,7 @@ // You should have received a copy of the GNU General Public License // along with this program. If not, see . -use crate::OutputFormat; -use ansi_term::Colour; +use console::style; use log::info; use sc_client_api::ClientInfo; use sc_network::NetworkStatus; @@ -47,19 +46,16 @@ pub struct InformantDisplay { last_total_bytes_inbound: u64, /// The last seen total of bytes sent. last_total_bytes_outbound: u64, - /// The format to print output in. - format: OutputFormat, } impl InformantDisplay { /// Builds a new informant display system. - pub fn new(format: OutputFormat) -> InformantDisplay { + pub fn new() -> InformantDisplay { InformantDisplay { last_number: None, last_update: Instant::now(), last_total_bytes_inbound: 0, last_total_bytes_outbound: 0, - format, } } @@ -144,17 +140,17 @@ impl InformantDisplay { info!( target: "substrate", - "{} {}{} ({} peers), best: #{} ({}), finalized #{} ({}), {} {}", + "{} {}{} ({} peers), best: #{} ({}), finalized #{} ({}), ⬇ {} ⬆ {}", level, - self.format.print_with_color(Colour::White.bold(), status), + style(&status).white().bold(), target, - self.format.print_with_color(Colour::White.bold(), num_connected_peers), - self.format.print_with_color(Colour::White.bold(), best_number), + style(num_connected_peers).white().bold(), + style(best_number).white().bold(), best_hash, - self.format.print_with_color(Colour::White.bold(), finalized_number), + style(finalized_number).white().bold(), info.chain.finalized_hash, - self.format.print_with_color(Colour::Green, format!("⬇ {}", TransferRateFormat(avg_bytes_per_sec_inbound))), - self.format.print_with_color(Colour::Red, format!("⬆ {}", TransferRateFormat(avg_bytes_per_sec_outbound))), + style(TransferRateFormat(avg_bytes_per_sec_inbound)).green(), + style(TransferRateFormat(avg_bytes_per_sec_outbound)).red(), ) } } diff --git a/substrate/client/informant/src/lib.rs b/substrate/client/informant/src/lib.rs index af778529ffc..d44364539a2 100644 --- a/substrate/client/informant/src/lib.rs +++ b/substrate/client/informant/src/lib.rs @@ -18,7 +18,7 @@ //! Console informant. Prints sync progress and block events. Runs on the calling thread. -use ansi_term::{Colour, Style}; +use console::style; use futures::prelude::*; use futures_timer::Delay; use log::{debug, info, trace}; @@ -36,71 +36,15 @@ fn interval(duration: Duration) -> impl Stream + Unpin { futures::stream::unfold((), move |_| Delay::new(duration).map(|_| Some(((), ())))).map(drop) } -/// The format to print telemetry output in. -#[derive(Clone, Debug)] -pub struct OutputFormat { - /// Enable color output in logs. - /// - /// Is enabled by default. - pub enable_color: bool, -} - -impl Default for OutputFormat { - fn default() -> Self { - Self { enable_color: true } - } -} - -enum ColorOrStyle { - Color(Colour), - Style(Style), -} - -impl From for ColorOrStyle { - fn from(value: Colour) -> Self { - Self::Color(value) - } -} - -impl From
    Release notes

    Sourced from clap's releases.

    v4.5.9

    [4.5.9] - 2024-07-09

    Fixes

    • (error) When defining a custom help flag, be sure to suggest it like we do the built-in one

    v4.5.8

    [4.5.8] - 2024-06-28

    Fixes

    • Reduce extra flushes

    v4.5.7

    [4.5.7] - 2024-06-10

    Fixes

    • Clean up error message when too few arguments for num_args

    v4.5.6

    [4.5.6] - 2024-06-06

    v4.5.4

    [4.5.4] - 2024-03-25

    Fixes

    • (derive) Allow non-literal #[arg(id)] attributes again