From da0df53ea5b31d663ed1f2fd0e9f5c22dc8c2258 Mon Sep 17 00:00:00 2001 From: Dori Medini Date: Thu, 28 May 2026 11:08:27 +0300 Subject: [PATCH 01/20] No conflicts in main-v0.14.3 -> main merge, this commit is for any change needed to pass the CI. --- scripts/parent_branch.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/parent_branch.txt b/scripts/parent_branch.txt index 50924bc7b4f..ba2906d0666 100644 --- a/scripts/parent_branch.txt +++ b/scripts/parent_branch.txt @@ -1 +1 @@ -main-v0.14.3 +main From 64260295f1e7e808807fd6d8e97c7f91ff69a3ba Mon Sep 17 00:00:00 2001 From: ArielElp <86294909+ArielElp@users.noreply.github.com> Date: Thu, 28 May 2026 11:50:31 +0300 Subject: [PATCH 02/20] starknet_committer: add patricia paths forest reader/writer traits (#13995) --- .../starknet_committer/src/db/forest_trait.rs | 7 ++ .../src/db/forest_trait_witnesses.rs | 85 +++++++++++++++++++ .../starknet_committer/src/db/index_db/db.rs | 45 +++++++--- 3 files changed, 123 insertions(+), 14 deletions(-) create mode 100644 crates/starknet_committer/src/db/forest_trait_witnesses.rs diff --git a/crates/starknet_committer/src/db/forest_trait.rs b/crates/starknet_committer/src/db/forest_trait.rs index 702a9c8de6f..648cc513ac7 100644 --- a/crates/starknet_committer/src/db/forest_trait.rs +++ b/crates/starknet_committer/src/db/forest_trait.rs @@ -30,11 +30,18 @@ use crate::forest::original_skeleton_forest::{ForestSortedIndices, OriginalSkele use crate::patricia_merkle_tree::leaf::leaf_impl::ContractState; use crate::patricia_merkle_tree::types::CompiledClassHash; +#[cfg(feature = "os_input")] +#[path = "forest_trait_witnesses.rs"] +pub mod forest_trait_witnesses; + #[derive(Clone, Debug, Deserialize, Eq, PartialEq, Hash, Serialize)] pub enum ForestMetadataType { CommitmentOffset, StateDiffHash(DbBlockNumber), StateRoot(DbBlockNumber), + /// BLAKE2s digest of the canonical accessed-keys set for the block. + #[cfg(feature = "os_input")] + AccessedKeysDigest(DbBlockNumber), } #[async_trait] diff --git a/crates/starknet_committer/src/db/forest_trait_witnesses.rs b/crates/starknet_committer/src/db/forest_trait_witnesses.rs new file mode 100644 index 00000000000..7e8fbe5de03 --- /dev/null +++ b/crates/starknet_committer/src/db/forest_trait_witnesses.rs @@ -0,0 +1,85 @@ +use std::collections::HashMap; + +use async_trait::async_trait; +use starknet_api::block::BlockNumber; +use starknet_api::hash::HashOutput; +use starknet_patricia::patricia_merkle_tree::traversal::TraversalResult; +use starknet_patricia::patricia_merkle_tree::types::NodeIndex; +use starknet_patricia_storage::errors::SerializationResult; +use starknet_patricia_storage::storage_trait::{DbHashMap, DbValue}; + +use super::{ + EmptyInitialReadContext, + ForestMetadataType, + ForestReader, + ForestWriterWithMetadata, + StorageInitializer, +}; +use crate::forest::deleted_nodes::DeletedNodes; +use crate::forest::filled_forest::FilledForest; +use crate::forest::forest_errors::ForestResult; +use crate::patricia_merkle_tree::tree::SortedLeafIndices; +use crate::patricia_merkle_tree::types::StarknetForestProofs; + +/// The information required to write Patricia proofs to the database. +pub struct PatriciaProofsWrite { + pub block_number: BlockNumber, + pub keys_digest: [u8; 32], + pub witnesses: StarknetForestProofs, +} + +/// Patricia proofs DB operation, which can be either delete or write. +/// Expected by [ForestWriterWithMetadataAndWitnesses::write_with_metadata_and_witnesses], which +/// accumulates all DB operations to guarantee atomicity. +pub enum PatriciaProofsUpdate { + Write(PatriciaProofsWrite), + Delete(BlockNumber), +} + +/// Reads committed OS-input witness payload (structured [`StarknetForestProofs`]) for a block +/// height. +#[async_trait] +pub trait ForestReaderWithWitnesses: + ForestReader + Send +{ + async fn read_witnesses( + &mut self, + height: BlockNumber, + ) -> ForestResult>; + + /// Fetches Patricia witness paths for OS input, optionally staging serialized trie node KVs on + /// an in-memory overlay so reads match post-commit state before the forest is persisted. + async fn fetch_patricia_witnesses( + &mut self, + classes_trie_root_hash: HashOutput, + contracts_trie_root_hash: HashOutput, + class_sorted_leaf_indices: SortedLeafIndices<'_>, + contract_sorted_leaf_indices: SortedLeafIndices<'_>, + contract_storage_sorted_leaf_indices: &HashMap>, + staged_serialized_forest: Option, + ) -> TraversalResult; +} + +/// Writes forest + metadata + deleted nodes, and applies [`PatriciaProofsUpdate`] in the same +/// batch. +#[async_trait] +pub trait ForestWriterWithMetadataAndWitnesses: ForestWriterWithMetadata + Send { + async fn write_with_metadata_and_witnesses( + &mut self, + filled_forest: &FilledForest, + metadata: HashMap, + deleted_nodes: DeletedNodes, + patricia_proofs_update: PatriciaProofsUpdate, + ) -> SerializationResult; +} + +/// Forest storage with empty [`ForestReader::InitialReadContext`] plus OS-input witness read/write. +pub trait ForestStorageWithWitnesses: + ForestReaderWithWitnesses + ForestWriterWithMetadataAndWitnesses + StorageInitializer +{ +} + +impl ForestStorageWithWitnesses for T where + T: ForestReaderWithWitnesses + ForestWriterWithMetadataAndWitnesses + StorageInitializer +{ +} diff --git a/crates/starknet_committer/src/db/index_db/db.rs b/crates/starknet_committer/src/db/index_db/db.rs index ef600a296ab..8105f7a9814 100644 --- a/crates/starknet_committer/src/db/index_db/db.rs +++ b/crates/starknet_committer/src/db/index_db/db.rs @@ -50,6 +50,7 @@ use crate::db::index_db::types::{ IndexLayoutSubTree, IndexNodeContext, }; +use crate::db::serde_db_utils::DbBlockNumber; use crate::forest::deleted_nodes::DeletedNodes; use crate::forest::filled_forest::FilledForest; use crate::forest::forest_errors::ForestResult; @@ -84,6 +85,16 @@ static STATE_ROOT_METADATA_PREFIX: LazyLock<[u8; 32]> = LazyLock::new(|| { (Felt::from_bytes_be(&STATE_DIFF_HASH_METADATA_PREFIX) + Felt::ONE).to_bytes_be() }); +/// Prefix for accessed-keys digest metadata (committed per block). +pub(crate) static ACCESSED_KEYS_DIGEST_METADATA_PREFIX: LazyLock<[u8; 32]> = + LazyLock::new(|| (Felt::from_bytes_be(&STATE_ROOT_METADATA_PREFIX) + Felt::ONE).to_bytes_be()); + +/// Prefix for Patricia proofs payload (per block). +#[allow(dead_code)] +pub(crate) static PATRICIA_PATHS_PREFIX: LazyLock<[u8; 32]> = LazyLock::new(|| { + (Felt::from_bytes_be(&ACCESSED_KEYS_DIGEST_METADATA_PREFIX) + Felt::ONE).to_bytes_be() +}); + pub struct IndexDb { storage: S, phantom: PhantomData, @@ -267,28 +278,26 @@ impl ForestWriter for IndexDb { #[async_trait] impl ForestMetadata for IndexDb { fn metadata_key(metadata_type: ForestMetadataType) -> DbKey { - let mut key = Vec::with_capacity(64); - match metadata_type { - // Padding to 64byte keys to keep the 32byte prefix aligned between metadata and - // patricia nodes. + // Padding to 64byte keys to keep the 32byte prefix aligned between metadata and + // patricia nodes. + DbKey(match metadata_type { ForestMetadataType::CommitmentOffset => { + let mut key = Vec::with_capacity(64); key.extend_from_slice(&*COMMITMENT_OFFSET_METADATA_PREFIX); key.extend_from_slice(&[0u8; 32]); + key } ForestMetadataType::StateDiffHash(block_number) => { - key.extend_from_slice(&*STATE_DIFF_HASH_METADATA_PREFIX); - let block_number_bytes: [u8; 8] = block_number.serialize(); - key.extend_from_slice(&block_number_bytes); - key.extend_from_slice(&[0u8; 24]); + metadata_block_number_key(&STATE_DIFF_HASH_METADATA_PREFIX, block_number) } ForestMetadataType::StateRoot(block_number) => { - key.extend_from_slice(&*STATE_ROOT_METADATA_PREFIX); - let block_number_bytes: [u8; 8] = block_number.serialize(); - key.extend_from_slice(&block_number_bytes); - key.extend_from_slice(&[0u8; 24]); + metadata_block_number_key(&STATE_ROOT_METADATA_PREFIX, block_number) } - } - DbKey(key) + #[cfg(feature = "os_input")] + ForestMetadataType::AccessedKeysDigest(block_number) => { + metadata_block_number_key(&ACCESSED_KEYS_DIGEST_METADATA_PREFIX, block_number) + } + }) } async fn get_from_storage(&mut self, db_key: DbKey) -> ForestResult> { @@ -320,6 +329,14 @@ impl ForestWriterWithMetadata for IndexDb { } } +fn metadata_block_number_key(prefix: &[u8; 32], block_number: DbBlockNumber) -> Vec { + let mut key = Vec::with_capacity(64); + key.extend_from_slice(prefix); + key.extend_from_slice(&block_number.serialize()); + key.extend_from_slice(&[0u8; 24]); + key +} + fn extract_root_hash(root: &Option) -> Result where TreeHashFunctionImpl: TreeHashFunction, From e660de8a22f2258b51670c064e258c241c488ea8 Mon Sep 17 00:00:00 2001 From: dorimedini-starkware Date: Thu, 28 May 2026 13:53:23 +0300 Subject: [PATCH 03/20] starknet_patricia: change test util random u256 (#14193) --- Cargo.lock | 1 - .../src/block_committer/commit_test.rs | 2 +- crates/starknet_os/Cargo.toml | 2 +- crates/starknet_patricia/Cargo.toml | 4 +--- .../external_test_utils.rs | 22 +++++++++++++------ 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 18b2be42cee..18e9604cf46 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13064,7 +13064,6 @@ dependencies = [ "async-recursion", "derive_more", "ethnum", - "num-bigint", "pretty_assertions", "rand 0.8.5", "rstest", diff --git a/crates/starknet_committer/src/block_committer/commit_test.rs b/crates/starknet_committer/src/block_committer/commit_test.rs index a47e602427c..0f6fba6bae0 100644 --- a/crates/starknet_committer/src/block_committer/commit_test.rs +++ b/crates/starknet_committer/src/block_committer/commit_test.rs @@ -51,7 +51,7 @@ const EXPECTED_ROOTS_SIMPLE_CASE: Expect = expect![[r#" const EXPECTED_ROOTS_RANDOM_CASE: Expect = expect![[r#" StateRoots { contracts_trie_root_hash: HashOutput( - 0x635a7ee9e0e7a2c89e98bf2ce5589aea094ccaf1d125b9a9af38e584912e66c, + 0x1ec85a68b9e7fd01a09d6594056cedf61ef7f33afc4cd1762ad8b6e2c6cf3f1, ), classes_trie_root_hash: HashOutput( 0x0, diff --git a/crates/starknet_os/Cargo.toml b/crates/starknet_os/Cargo.toml index dd0878e49b9..680a72c8789 100644 --- a/crates/starknet_os/Cargo.toml +++ b/crates/starknet_os/Cargo.toml @@ -79,7 +79,7 @@ cairo-lang-utils.workspace = true ethnum.workspace = true expect-test.workspace = true itertools.workspace = true -num-bigint = { workspace = true, features = ["rand"] } +num-bigint.workspace = true rstest.workspace = true starknet_committer.workspace = true starknet_patricia = { workspace = true, features = ["testing"] } diff --git a/crates/starknet_patricia/Cargo.toml b/crates/starknet_patricia/Cargo.toml index 9997301faff..f15fae30946 100644 --- a/crates/starknet_patricia/Cargo.toml +++ b/crates/starknet_patricia/Cargo.toml @@ -11,10 +11,9 @@ workspace = true [features] deserialize = [] -testing = ["dep:num-bigint"] +testing = [] [dev-dependencies] -num-bigint = { workspace = true, features = ["rand"] } pretty_assertions.workspace = true rand.workspace = true rstest.workspace = true @@ -23,7 +22,6 @@ rstest.workspace = true async-recursion.workspace = true derive_more = { workspace = true, features = ["add", "display"] } ethnum.workspace = true -num-bigint = { workspace = true, optional = true } rand.workspace = true serde = { workspace = true, features = ["derive"] } serde_json.workspace = true diff --git a/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs b/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs index 6f68a732c6d..43685cd41c4 100644 --- a/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs +++ b/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs @@ -1,7 +1,6 @@ use std::collections::HashMap; use ethnum::U256; -use num_bigint::{BigUint, RandBigInt}; use rand::Rng; use starknet_api::hash::HashOutput; use starknet_patricia_storage::db_object::{ @@ -85,12 +84,21 @@ pub fn u256_try_into_felt(value: &U256) -> Result> { /// Panics if low >= high pub fn get_random_u256(rng: &mut R, low: U256, high: U256) -> U256 { assert!(low < high, "low must be less than or equal to high. actual: {low} > {high}"); - - let delta = BigUint::from_bytes_be(&(high - low).to_be_bytes()); - let rand = rng.gen_biguint_below(&(delta)).to_bytes_be(); - let mut padded_rand = [0u8; 32]; - padded_rand[32 - rand.len()..].copy_from_slice(&rand); - low + U256::from_be_bytes(padded_rand) + let delta = high - low; + + // Use rejection-sampling to generate a random U256 number less than delta. + // To keep expected number of rejections under 2, mask each sampled U256 to the bit length of + // delta. + let bit_len = 256 - delta.leading_zeros(); + let mask = if bit_len == 256 { U256::MAX } else { (U256::ONE << bit_len) - U256::ONE }; + let rand_u256 = loop { + let bytes: [u8; 32] = rng.gen(); + let candidate = U256::from_be_bytes(bytes) & mask; + if candidate < delta { + break candidate; + } + }; + low + rand_u256 } pub struct AdditionHash; From 8b1be706c72354b22bf87e9d845aeb9354e1b33b Mon Sep 17 00:00:00 2001 From: ArielElp <86294909+ArielElp@users.noreply.github.com> Date: Thu, 28 May 2026 15:16:26 +0300 Subject: [PATCH 04/20] apollo_committer_types: add patricia proofs request and response types (#13996) --- .../workflows/apollo_storage_os_input_ci.yml | 4 ++++ Cargo.lock | 1 + crates/apollo_committer_types/Cargo.toml | 2 ++ .../src/committer_types.rs | 20 ++++++++++++++++++ crates/apollo_committer_types/src/errors.rs | 14 +++++++++++++ .../starknet_forest_proofs_serde.rs | 21 +++++++++++++++++++ .../src/patricia_merkle_tree/types.rs | 4 ++-- 7 files changed, 64 insertions(+), 2 deletions(-) diff --git a/.github/workflows/apollo_storage_os_input_ci.yml b/.github/workflows/apollo_storage_os_input_ci.yml index 62d53a43507..51b48ae8968 100644 --- a/.github/workflows/apollo_storage_os_input_ci.yml +++ b/.github/workflows/apollo_storage_os_input_ci.yml @@ -12,6 +12,7 @@ on: - ".github/workflows/apollo_storage_os_input_ci.yml" - "Cargo.lock" - "Cargo.toml" + - "crates/apollo_committer_types/**" - "crates/apollo_storage/**" - "crates/apollo_config/**" - "crates/apollo_infra_utils/**" @@ -20,6 +21,7 @@ on: - "crates/apollo_test_utils/**" - "crates/blockifier/**" - "crates/starknet_api/**" + - "crates/starknet_committer/**" env: RUSTFLAGS: "-D warnings" @@ -57,6 +59,8 @@ jobs: - uses: ./.github/actions/bootstrap with: github_token: ${{ secrets.GITHUB_TOKEN }} + - run: cargo test -p starknet_committer --features os_input + - run: cargo test -p apollo_committer_types --features os_input - run: cargo build -p apollo_batcher --features os_input - run: cargo test -p apollo_batcher --features os_input - run: cargo test -p apollo_reverts --features os_input diff --git a/Cargo.lock b/Cargo.lock index 18e9604cf46..5d564bafd0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1119,6 +1119,7 @@ dependencies = [ "apollo_infra", "apollo_metrics", "async-trait", + "blockifier", "mockall", "serde", "starknet_api", diff --git a/crates/apollo_committer_types/Cargo.toml b/crates/apollo_committer_types/Cargo.toml index 08010cd1578..2fbbe8d44d5 100644 --- a/crates/apollo_committer_types/Cargo.toml +++ b/crates/apollo_committer_types/Cargo.toml @@ -7,12 +7,14 @@ license.workspace = true description = "Type definitions and interfaces for the Apollo committer component." [features] +os_input = ["dep:blockifier", "starknet_committer/os_input"] testing = ["mockall", "tokio"] [dependencies] apollo_infra.workspace = true apollo_metrics.workspace = true async-trait.workspace = true +blockifier = { workspace = true, features = ["transaction_serde"], optional = true } mockall = { workspace = true, optional = true } serde.workspace = true starknet_api.workspace = true diff --git a/crates/apollo_committer_types/src/committer_types.rs b/crates/apollo_committer_types/src/committer_types.rs index ba17c250a05..f43ef92e161 100644 --- a/crates/apollo_committer_types/src/committer_types.rs +++ b/crates/apollo_committer_types/src/committer_types.rs @@ -1,7 +1,11 @@ +#[cfg(feature = "os_input")] +pub use blockifier::state::accessed_keys::AccessedKeys; use serde::{Deserialize, Serialize}; use starknet_api::block::BlockNumber; use starknet_api::core::{GlobalRoot, StateDiffCommitment}; use starknet_api::state::ThinStateDiff; +#[cfg(feature = "os_input")] +use starknet_committer::patricia_merkle_tree::types::StarknetForestProofs; #[derive(Clone, Debug, Serialize, Deserialize)] pub struct CommitBlockRequest { @@ -32,3 +36,19 @@ pub enum RevertBlockResponse { // Nothing to revert. A future block that has not been committed. Uncommitted, } + +/// Commit a block and return merged Patricia witness proofs for OS input (pre- and post-commit +/// paths). +#[cfg(feature = "os_input")] +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct ReadPathsAndCommitBlockRequest { + pub commit: CommitBlockRequest, + pub accessed_keys: AccessedKeys, +} + +#[cfg(feature = "os_input")] +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct ReadPathsAndCommitBlockResponse { + pub global_root: GlobalRoot, + pub patricia_proofs: StarknetForestProofs, +} diff --git a/crates/apollo_committer_types/src/errors.rs b/crates/apollo_committer_types/src/errors.rs index d0cb28dd63c..5142d86cf4c 100644 --- a/crates/apollo_committer_types/src/errors.rs +++ b/crates/apollo_committer_types/src/errors.rs @@ -48,6 +48,20 @@ pub enum CommitterError { calculated_commitment: StateDiffCommitment, height: BlockNumber, }, + /// Patricia trie path collection for OS input failed. + #[cfg(feature = "os_input")] + #[error("Failed Patricia paths collection at block {height}: {message}")] + PatriciaPathsCollectionFailed { height: BlockNumber, message: String }, + /// Stored accessed-keys digest does not match the request (or no digest was stored). + #[cfg(feature = "os_input")] + #[error( + "Accessed-keys digest mismatch at block {height}: expected {expected:?}, stored {stored:?}" + )] + AccessedKeysDigestMismatch { height: BlockNumber, stored: Option<[u8; 32]>, expected: [u8; 32] }, + /// Merged Patricia witness paths are missing for replay. + #[cfg(feature = "os_input")] + #[error("Missing Patricia paths for block {height}")] + MissingPatriciaPaths { height: BlockNumber }, } pub type CommitterResult = Result; diff --git a/crates/starknet_committer/src/patricia_merkle_tree/starknet_forest_proofs_serde.rs b/crates/starknet_committer/src/patricia_merkle_tree/starknet_forest_proofs_serde.rs index 9b1997af6ea..63a398d72dc 100644 --- a/crates/starknet_committer/src/patricia_merkle_tree/starknet_forest_proofs_serde.rs +++ b/crates/starknet_committer/src/patricia_merkle_tree/starknet_forest_proofs_serde.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; +use serde::de::Error as DeError; use starknet_api::core::{ClassHash, ContractAddress, Nonce}; use starknet_api::hash::HashOutput; use starknet_patricia::patricia_merkle_tree::node_data::inner_node::{ @@ -125,6 +126,26 @@ impl StarknetForestProofs { } } +impl serde::Serialize for StarknetForestProofs { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + let encoded = Self::serialize(self).map_err(serde::ser::Error::custom)?; + encoded.0.serialize(serializer) + } +} + +impl<'de> serde::Deserialize<'de> for StarknetForestProofs { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + let bytes = Vec::::deserialize(deserializer)?; + Self::deserialize(&DbValue(bytes)).map_err(DeError::custom) + } +} + fn bincode_ser_err(error: bincode::Error) -> SerializationError { SerializationError::IOSerialize(std::io::Error::other(error)) } diff --git a/crates/starknet_committer/src/patricia_merkle_tree/types.rs b/crates/starknet_committer/src/patricia_merkle_tree/types.rs index a515d914800..275c3696ce0 100644 --- a/crates/starknet_committer/src/patricia_merkle_tree/types.rs +++ b/crates/starknet_committer/src/patricia_merkle_tree/types.rs @@ -36,13 +36,13 @@ pub type ClassesTrie = FilledTreeImpl; pub type ContractsTrie = FilledTreeImpl; pub type StorageTrieMap = HashMap; -#[derive(Debug, PartialEq)] +#[derive(Debug, Clone, PartialEq)] pub struct ContractsTrieProof { pub nodes: PreimageMap, pub leaves: HashMap, } -#[derive(Debug, PartialEq)] +#[derive(Debug, Clone, PartialEq)] pub struct StarknetForestProofs { pub classes_trie_proof: PreimageMap, pub contracts_trie_proof: ContractsTrieProof, From 19bf4ad30ebeace7941e67d73a51b9bbc949c07b Mon Sep 17 00:00:00 2001 From: dorimedini-starkware Date: Thu, 28 May 2026 15:17:15 +0300 Subject: [PATCH 05/20] release: add v0.14.4 SN version to enum (#14237) Signed-off-by: Dori Medini --- .../resources/central_blob.json | 4 +- .../central_blob_empty_or_none_fields.json | 2 +- .../resources/central_state_diff.json | 2 +- .../resources/proof_flow/proof.bin | Bin 296555 -> 306490 bytes .../resources/proof_flow/proof_facts.json | 2 +- .../resources/reader/block_post_0_14_2.json | 2 +- .../resources/reader/block_post_0_14_3.json | 2 +- .../src/serialization/serializers.rs | 1 + crates/apollo_test_utils/src/lib.rs | 1 + ...chestrator_versioned_constants_0_14_4.json | 9 + .../0.14.3_0.14.4.txt | 1 + crates/apollo_versioned_constants/src/lib.rs | 1 + ...blockifier_versioned_constants_0_14_4.json | 572 ++++++++++++++++++ .../0.14.3_0.14.4.txt | 1 + .../src/blockifier_versioned_constants.rs | 1 + .../resources/blob_file_generation | 2 +- .../resources/preconfirmed_block.json | 2 +- crates/starknet_api/src/block.rs | 3 +- .../test_execute_with_prefetch.json | 2 +- 19 files changed, 599 insertions(+), 11 deletions(-) create mode 100644 crates/apollo_versioned_constants/resources/orchestrator_versioned_constants_0_14_4.json create mode 100644 crates/apollo_versioned_constants/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt create mode 100644 crates/blockifier/resources/blockifier_versioned_constants_0_14_4.json create mode 100644 crates/blockifier/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt diff --git a/crates/apollo_consensus_orchestrator/resources/central_blob.json b/crates/apollo_consensus_orchestrator/resources/central_blob.json index cef76c4f5d6..5f8ec5b4708 100644 --- a/crates/apollo_consensus_orchestrator/resources/central_blob.json +++ b/crates/apollo_consensus_orchestrator/resources/central_blob.json @@ -37,7 +37,7 @@ "price_in_fri": "0xd" }, "use_kzg_da": true, - "starknet_version": "0.14.3" + "starknet_version": "0.14.4" } }, "compressed_state_diff": { @@ -77,7 +77,7 @@ "price_in_fri": "0xd" }, "use_kzg_da": true, - "starknet_version": "0.14.3" + "starknet_version": "0.14.4" } }, "bouncer_weights": { diff --git a/crates/apollo_consensus_orchestrator/resources/central_blob_empty_or_none_fields.json b/crates/apollo_consensus_orchestrator/resources/central_blob_empty_or_none_fields.json index 480fd1c6dfc..83861bffb93 100644 --- a/crates/apollo_consensus_orchestrator/resources/central_blob_empty_or_none_fields.json +++ b/crates/apollo_consensus_orchestrator/resources/central_blob_empty_or_none_fields.json @@ -37,7 +37,7 @@ "price_in_fri": "0xd" }, "use_kzg_da": true, - "starknet_version": "0.14.3" + "starknet_version": "0.14.4" } }, "compressed_state_diff": null, diff --git a/crates/apollo_consensus_orchestrator/resources/central_state_diff.json b/crates/apollo_consensus_orchestrator/resources/central_state_diff.json index 1b9101dff97..7165c25def2 100644 --- a/crates/apollo_consensus_orchestrator/resources/central_state_diff.json +++ b/crates/apollo_consensus_orchestrator/resources/central_state_diff.json @@ -34,7 +34,7 @@ "price_in_fri": "0xd" }, "sequencer_address": "0x7", - "starknet_version": "0.14.3", + "starknet_version": "0.14.4", "use_kzg_da": true } } diff --git a/crates/apollo_integration_tests/resources/proof_flow/proof.bin b/crates/apollo_integration_tests/resources/proof_flow/proof.bin index 9c9b6528e7b5a9b7dadbabd9d68cebc0ba84ada1..e88e2afb77609ac07c056aa00997c5e5fc324ae2 100644 GIT binary patch literal 306490 zcmZ6SXHZjZxU~a>-U0~_dWR4op@!ajFCp|A2t6V6-c_VXktR(95kUk673qppMU*PN zD#cC}q{#Q?{5bQ?$;_Iy_RMv!eLwq8X7(ho7syM1Bg03=gj{X_K#UTgp*5?fyhY9_ z{9wgVI5jvklpWd#kxU9>fscBaa6BKN;1pAiyUFiswfI1SJT?r&>UZHldv&wLytO`5 zv$m8BsUr5wyigFP+GTPdYH*bT%~JgrHK*d@aAxq&kcEwj1qfke0Rn*_2n`b}GY9~P zIYTiAB~~VX*?1=ao}{+ymDP3masNF_sLWe)SH(aTKI=HQXRo4QAJ1-snhYxaE<|e* z>o1(37$C;HC^Jw4hCVa9>GP54_DDO(NES?O9$q8;Klgd{7m8*8796zt6 z{#|EDs1ZCc^zUD&h}%2l?}$sh&XAbuI+Ddd;6ypdgANe(#3axy4<*Drb%E4J&){HXN_=0MHrYz7`9aGwk+^ z+j}hVE3(7DZ2xs)euZOLnXm`9Gbk(M`+NaX*Q1v8(0|E^O&`Y)cF4%DN*E5s=w>JL z{3(ihe5MGt`};HIJdBqth#@rD2xKjB|K%{npIbie&vQgL5%-(*xqRPJefiW$-R&O6 zlkskgD>vgU;YO6E-{+v}S=O;#mh7T-Npr<4E|KlC_E002OXm%7I9J{rJg^<8<5x=Ic}-|xcWh@NvH zKxT5B=`D!b-mXeKzuzV++IX3I~R-eLm<7#kXnGQuZ3# zDCu0;OyO;|`Jg-8xs_<%=M5IJud0`r755x1T_R}XvS|GbdVhsc47<2G?BPKds%N{E^nYF)a zrf0EH4aQ4xTA1Hz_Xy>Vr5x!od`Mh`T&fyglH<@?!8=dgou(mb+X0DXjeD)a7paHg zrBuS~pIvjHtdnMW!J}g}BK=)s>iZ%)`P7Iv`-Fu}$O=dqq1Z=u+lYmuMZo?yBvU-6Sux<9qy*l0Jr!$! zAGce670p4}g~Tif*hrqQw(xfy)6hm=RoOa4oYBZ(g)trwDtp&>FkA864aswuP4ZkR z#!VDo02a)CEo`>Fz zZW{x)eu`apPUeL#ope7cuE%1fY0)P@5spta2jSi>RCZPNgJLKXx&Y0zHo>5@4o{gm zPlJ55dNSol3D&@Ympm^l9|k_m{X%_zt-;!It=_62=q-6&(NF7eMWlm5x}BDj5*0am zZ~zt1n=3=v8tS1v%3Wa45$n?68%2Z@K_)MH%f06&i@LiTyO;cb;-c@)&kR)S}I#65z`!c*T1NlQ8%isURz$u*?DU^HC)(?o3yI;H?YvG;{y8TKMj%IUmI!)l>82fE9R2wO<#mQko%i( z)N-k^`~Bm171e2><$NN1IO@j&`X?7r({IcjNzW;$NBx{ufonj2K*CDl_+vsanL#lh zXK7zVwFeXMrhr1k)u*N4Y&C-XijZ;&^t5F{HU`r9^CiK(6J#Ym{>R#OQ7qk<*wt`BOkizuXqr~XfL z!PTkR?PVz=a3hW36I2PyrE-<=(nU9#oGOO5c3u(&$KFU9C!ZZ%JkNAX?ssVhHN2ak(Lu(>UuE&QQd-+ZO2M^%O;+>6RLYeURt$ z>6wF>8gbaNxITlDHRW+kV*ew#9eZ_0H+eg^+-5Qg1*Hm!VE;tpgT^canr0UNi4iT} zysL|8i#tpxqx1(QGykxN!UGqLHlIuSKShdw(wS-9-!OmRO)K%F{Rb23aj;QtWi|vd z#r6$F!C<504@9nW{WS{Fy?4+2=p;gA7Y!{X916b3LTH=RSBihC4nE-#U8EI4&s03& z_|hsO5eO>L{m`!96$85-xpoHt;}zqDuNeNNY_0joZ2k9>l8~dF!1alEAho_JG5kW3 zUs3)fUOj_D;|Ak=#NFKvH&~kk3Nogk85twyw4q?;SGSuNjX+LE&GZ;6223wVDiFQ( z*%bf!mEX&iO)NLzZ1#T@xRNg#GkQ7eec#a1`G#Z1l;+wbzhxZjv2dkKlW;+yEuogg(7!mz`{gZ* zrwZc{wiFCiZIGLi*ms2a*_eCtU58XBvUuMRoO)5~l+w5#d_A*QUK2qTpDkM<+Fdn^ zO3|A_=H;ogSC{mezQ^S%23M+^YF-9;6k4sBXrs4-ZqP@?Wuv}QoDWDOtsElhfUV`39dE{{Xh2wryT>=~7ouWmQt-)8%sa9uMve0w0u7*Z!;g9sL#Oz;k zYvWX5IK@A4c!9@3uUW0Z83}OXNr7f0_ORTOxlGskO?M_$*T2?KJ;!CqyeaN5aS1DX zKu}@KMm0P8ZuU2`|GwM4)MrEoO0+^|jCkY%!=_kr8ng7g^+F70%-X}!l&*Wv*u+=A zqA96pruS+%MmY@-6w8&ZP5tiu3^%14;(6F>jDlIW^KPMVhBcOHe#^`V_T2ioWRH{) z?!D)aP?(6s~~_SYK2!Zo|2Xupxnq;83qYHQ&E)Tf?9Y9r^Z^cF|TRs)$_9Ie&G zp2yp3>VVE6%C8NsD!WbH7W?a4v4}qdygD*}B_^(@Wt{0(Y(;}m_}2TgR-SNMjyrrt zNlRfKNIvkO!cc8RM0OK3on&^8;%D?8T1NNMbZ&(aP#y~t-h7ipc~hkv;i=<5c{R`! z^5xD;ec;C=JhE~g^cXx6ndEbjxEU|)M|=Hhym9NdC;=CgMto51l zc1sEQA;oo^Cu;G}PD&&{NE|q)B{!=36MT{#GFDCe9E=N^bpbR_9Ob@?-Fh%VqgoT@v(eoC!c#dpP{81Gvuwb*n#`E@GJNy?mGGN`?vbKLJck@@myKSDHYJ7TZKBhvFL6W1T1JY%+>kCG>n z*afuHc_UO&bQ)JuvLUe3x6y0V0Hftltaewxr^?XamLT!04u2wuvQelCm#)ZWqFmdgrT_qQ?A5i41k;sLzmjAlFL2hmj0m0 zh5YvOrH$tkA+?OM93}cdPSmcAeb}3PKFx+lxvo+l{!qzWR|wc!`y9fFrJ~(F1Oz{7 z?ZM%mxj3wt<_p6>?C#$^_X0C1=a{q}F6*g*t9_YL-B^P+Y-154)5-6z_JmYYSD}c1 zcUVp+?uBTrF*61(?5HkHzhQ*@(m<&h&UyI}-YLuYx+lVo(h~t>OX0U^KS%|jn?Z}Q zZT=c%+LUB>cB3Z~A`}H=@KxM@ zZ2`GQzCcLd{>DWfRVDgU_ESW9sT{c%rEjdj6(ychDOnhS{SrzOnED7Ma>>R z&lrJwMsxq0DJ{hdmq-n#CLZ>a0fiV#0!3*zB_g?i89P3gB^D4R47?^B%IqUQO#3nQ z8}c0S8356(qMnbl^Y~KqfkQ6EJ8^hFT$ycY%|<&PZm9rk+bhfp zqeAt5*(cfQVD(Xpwr|08%#`=}iDNA9;PT`(SXRYT<4R&bw6f9GNJ;f2B6af{re|f$ zYH0AU)eo;{K9aAs^!MC7^xXN_l?VQX1Rbyl*U8?=xGp_#W zPK}QS8svV9d>*UOv*-?fUNC}tT~MXR*S}@MA$f0bHNtlX=>Ft{G4>{tbQJg5bt<#X z{WyT!XG8$~Rv3?UlFwz?Oy6$4$DDj4?r|MW z*9h5BZAU`O`8;W81nq2$UP!G{>&kmE5hO$pCIhn&?3OT7Y0i%ie2~AyXdGT*ZYv+! zY3gha;^El<1{tdSd>8c$p_tc}I73_)M8BSR?(tfGlIIDkz#kBR(t7pJMWFM`IIFAJ zE}2jBk%kZ7odDMjdHNTL80KPee=FZL4}+m(3pJE~Jc_%NO7wlTnrV7u%vG<5yoY+D~EuEY~^0{5l6B_2zn?!wXEag!21M z&-rP6Ztb2-VC%c;WJfw3N~`^6H05X4WTLLKiG5wX$(eE81jw0pTgA#7uM+P*DeA+o zrSkT))4Rohn}P{P=?_#~3f~14DlL+ILumOqiv9821$=)_FP=0r?d;z{z&hELv0&iC zYJbtgw2mKKy&se?QYkrKqg9r#Oc=&K@$CIV#cwm~NdNjq9l67KbO48#64P|Th>Acv z&f0vyi_$zoF*&GP9nS?kh>J7_dl|_bhcPRIrGAvqxU;!01l!}%O_H8-$jJ<2sk;)5 z67Gb2mH0=`NMmNoYlrilF`)2(c{wFHScETjsKhpX=i$q_rTIj^8qeM2CzNNoP3A6L z#uKSw7#XZ*eikYmZf#cU0()_Smn0D!IAU)DC2i_rqW=6!t6D&MBK)l4~;REQ> z*-b5#g7mG1R3=zhH08S<Md|3@BZl4>M24*@TKxEN zovgnE?rIl|w*WLwvsJixvDc3ncuIoP{Iz~H2{O+~Gvt?LiBFydByv*v`Z(~+Q5kH} z=oui4)r5D9{8)&Q$ROo(d>68Se;1z1mig_(LZ94*{&wl-NX+0QJX}=SgDY*^LJ&-C z>^G*XR_JRXIA%02yVGVWU-DN%Xmy zg}cg<>^z^1Z|Sm+fN$wXKD#ihz%2^p~JYef% zla~}_KX#(k4;-@MK-Weo?JUZNT<-YMA}?B)7W z_0yE1DOi`o@6kU_dT$7f%==y{#hCsjTu@7wFNXHEhGgRFn4+ zvGYF9f}%e4g>^A+#B(iPFod43%6NMk0_*zL84_~JsK?#;LiHznQCBB!YG@tP5V6(J zXsh3PbdR^vOyjqH0`s~&$l*8sNTy|P`WbIIGLv=e2VLLL;2#J{@>?g_4%P4RBgas6vqjeieJI{+f0hN9e$9tk68Eeq69N(vuZ}n z&SVn&hgMh>Kb*2}aAY$jd+IVDye5zQGdb(zlMgYaSa=*jOp*aUIicV$6SenxGU>?H z@XgC5_`xrm`fpBls^iD%Plzw9_O_dhDEX!!8}4u$HPLB~xHBgX-t;=u+|7-+-j)t0 z=ay4!crLeez!yeM3dy<1`S3P4j{KSiV;f!s?k*T67Bg*#TPz}O9_nnrQ<)W8+rKNs{_bFoh8lv&0%lNXtyfGI1r{pQ#8UBB;jAH(x6M7Px z!xHzn!67S~AMNqW)5w_k`vC(TF#$GP6Dp2%_6qVEr!XoY8W2WhMuEUUHDSj9PR}$^ z9$3j^ktF{%)LBPZ6l~RA>a%nv(p4!x?zIF~EPu7mO2}7V%+RHp8N?5b zL*~}nPXD09_qk=$@YTkTn18h0pp*< z0y>lMV^-mug>Op47&p&t7?&*K9;TS1l6FhUP#IagnlEwM%-ux{t>@W+>CTocze2}c z-qp~D9B@|){7Hz>eahPB#6sAzr*>CVBz#>D{n)R-OeVc(-hV8bK%>7B;pcJ{3d~lr zs>F_~-SZd;TI6x1pzfBZd^TFm*oM;dycqMb;quhw{P^CH?Lv0R?HP4SIHP;9(sfw7 zW3bOwpbvM6VV%5+-0SB=g%t)YU5d(=A&iJm4EIt zCC6qpxdXQkXh+DanbwU{lyq$JAq7mYg9W z1zTbY(rz_EgfU^>Wb%9DECS}Pnlj~q{7B!BE50y*X-5D`P1zG^{-#&gqlzZLn{ATq zOlH`hEc+LV3~?arElYNnMs)a{j)^EJsY`kMXh~uP11) z-Kdb`ct<~k8)twQ@Uny}=JQ|Ypy9j)d?!?su(qJ1`b^nI?{jct1WGm8LS9}}Ix*v! z-~skGqYy-2WE9)a>d}22tox}>&nUDFKe@q3yZjd#b&lhQx{P@IFhBWeq~K=jYGz(4ygVPpOb5`(F_@;zC(5= z%IuJuS14ChEx=$`yTVlzN-oo>p|tTtc(+-Y_eaeSQ6AS`yU+a37zcmYlkJ)`2tKm9 z4@;Tr_tB5J^qUSeP+x7{p*Q80#fAnIVO7?86~B}{gI;UeR!WJM0D->-3wIYBgOZ1m zLLWSf!Fm+MVnw@lUM!9f=6{dssA$- zW$rACxVtbai4fUu7!GQaY?FE6!LNO!x&PnG*-3FH@HOcyoY3D-T%BHBwDhfD*MwGY z{fSE-#BJLOpBpaQfRd6ILC@9C+$!>BTn6)G1rm7SaUlzGNy?wIlH`+>f*oa-NKj(y{PIza-yeT{b=O+zEu4DWnTo$3@r@E;dncP| zN=Tzft{d23?m9M8N`Icit3XTP0{d1X7QOAGSpMvjKW3(rV>=ehDb*RkFlg2#0+;-R zJxfL=@ZI78H>V<00a7>lzF>pgR2{pb8;7FJF(YmUet3CrWg0L|vdSFaOF( z3O~xO&Ce~W~-o4m2n~jYlmT;(qK2#VeEu+TRM(qE=ew!E8I~# zquc`g_?o{6$DzM;$q#*LrpJIty`RclQ|Y7HMfdD1vW8fJ56fO9NLV2lUgX#%a8DJ5 z3H*C+-IIY*F#n?f`pk?|+o${JJS{z>lp|};C*lNPQe~FHN1oEld}B?C{N3p%Tl2Gu z%Cd`}yMEQv^aOtgC)6ma5Tg4GSQp6etIkL#AMx*jh}~-wN&Sn*k|VDkC6qXmTZMkY z2F^Bq1Ix~F*~_y!faLcj`GZdiF8blfsSzu(6JT057F6;_HQq zK-=sS8yoKHu5L z{H|FDySVJWvU&;A2pM~`supnyR1gfa32XngrmB=G?%7a98Dn*uQ_GQ)hJU@pS*WMA zgUTgW3bz5uvUbPB3d{;7QpKzod6if==;S<1FnqhKg+sk~Nhu2L(^c1umBZD_M>zJ! z(cvR+@NYLV#}#tPgFOpb86;BOlZJj|D-pYLl?s-J+`(%veEU948%XdAQ4HlO#qjfU z@WqPu^OlOz_=Tj3F+1M8k@)o%UCi-%1IzjSJU<0uuw6>%iMy462*)Y+u4~J>a2&^; zE|Dyr7#EySPI;?umgb$rp>v|2n3{K>opyM=wPI|}EeXXRDPacJK-To7RmS~xm*$j- zF$lsuib5r+(o>t^uFkEO-{SXaMWu;e(L8NXicoMQ(8T|xC;g@SoXHQiduHb1Vtg8j zQ;vr@Hw1@2+@-;d#6p3HjR@7b`;2l-rEz35!$4Mr7;xH2&&iVDe3Xw}b%q0HC9k)(Eet>D7rC zheg*3c;jCg`DLq&GDJ11lR64tY$X=OYLnU|FAh@LAtDK@|TE4sP;6>$jsNI&V5 zB1Paiizb_13AKDC8LY^_P4hP0!h}4v+3Ebn66;S0TB7M`lU^!qC#WrULg;3ln-%6& zw$-{Y%wg@px1^qHAA)nUdwq2RUOUtT?}AJHKBzwXmv5&&HLvORyB-rR9;O(f$P6ph zo(FQ569PMP-Th7g^WnQRV;&(-?s6C;2YTwI9VqR%1Kjrtm;intM~mz4)7|?VHGNma zgK2mtH#s=TmN<&~kWLC5RLuP)jr;-^N=&&&ELJa--ZIEinzN`HgjmEf63OUKuJH>Q z^>}bZO=7wq9x>16{fxN=&!7w1y|A>RP?M+c!s!^Xl!(K1d$dMH|LMgA_1KYbi$@pr z+i1CWrA5l(SCUi3Lqq;Dfc#m5_1L|V)heqWkt40A@iYie9EB+4D=G+}z z=X84i28>4M>-j%vYlE5lZ_pgC4B^&4UB{zw8sZ`@Q4vv44*%tfUg&g5hINzC0|=t> zyVt)UJLjK~aWW$-i>mpI^>z_hMy)}$6_uXpTk%@tx%L!ytE6(@hWYruRr67A{Eofp z-ja;x$`zQ6-(^6&ej+A?<;4FYP`Z}?UiLfcF@(=fMvDtg%o@fkvjnfClPP{|nbo1| z;MTny0NGM1h!C2)LoM5cJK5_wq>yV1$LK7ZZ`GP7bKiS0;fOGCPMh0~D8`7w+8JX|75h3bn6x4~B zO~bk7bEfihO;%(0U%?Q!Qrf}_p1{MeARWWh1Qiu{i6_o#k7YV(Qo;j`gAKeG3jZQe z#PZ#YM<>CXKz8L(AZ#$`O&c8e%GB7NQuX3GONiy&a~b~}Q@5fJYRt)fq~(X_t^B$B zdvrCXwVv5JCqjMrE$OyX!Nl?DaPa57?*h*tX_mIFG)kdvEMBc9%CgQKtDaBGyk*+u zp6fD%i5g#mI7~O?KiFZ`}q{C_rBQ8s+;hl*DcWxg9M+rAZgq2kn+ZO+QHrSdNJ zw?``a5#UEU2mK}cIMnx`)W`bS3#Po!O&*-g_reasEHQoZV2XgM4UadYzM&`hdEGY; zqQuoSa7p*{yJT!B7%2Yie*(n)%M7zhvm^>Sj1X{vJx;hReoS2Fafn*~N8M^mXG8|R z$C?c#h}}AMk9aud9%yDm%k&1}0*@m;(QheNNOl$$@Lm-E7WVVy6XVPnTdxTopnRy| zAC1iq*ZIRCFT&DUU_99S`_zl?5V1KDVfv*5&a$`W9m!IFKLH)#duTt-yd=WznH@*c zp7fjAP&vtoX)!^^q*xC=KCM4d=UUIs77@ZF(GE^MA{3DVnEi1&|hVC z47#WK(wE;2!f&K&86-s6!9^iHOd;i8W4g4S1|N)mjStpeXS`X$V%`}Lr@Gz&Bpz9F z5gNfSRPC7USnd$o@hovIxZHu8(6>kZ+LwL25QgMDyve) zXz2c6SMuqlq$v)Qfhs=mjB}#F<8~<2c!JwBIaOjN!ktg0<1vJj@Sm_JsQsGuU|TJH zv9_okPp5@PoQcp_Vaj@PO5FR0Xg+@31TLBix$)^(>PF2PF`;|0-jYLij5eGhNkTs! z#BByRvITzIQ(mqfQUh(bQ(D8{kVloQf;2l#^~h38LG^NCNRjN9u{DrL>(84irU150 zOY-Mwwx+}C@h88T<#9iG0=0HuvlO1XCVob^qU2$#++c$uGXcqCj=L|#Mc%X@@wm4{ zvf!^;UEa~^Fh0`rCRb5Qi(EeI@zQ3?L_24}LctoKW1l1GxOGWN9H$9++!(K^}U z2|Yng(8nX95P17du<7SJLx%U~VyF`AZm7QQC}NI#o~_2r9D{I3Ax31#Jtwc8{}_w9 z^az%=yTK#**`G;v&R7R-7Ju}u_C;*Zd19Fk?;QqSj#}aLGVf^h)zm=7tt6V6Cl@3!VWfE<% zFRR}UMrrGu`@$^b&6hNLyt6?#v*7|Sg`nUU3CA>Gm5LBnv!^x}*ugGAaf&s(*1HxD z`@S?Bb^L`t+$OqNiuOJNao5DsSGwW>jkbHL_Shr0kPKjEA~skNmMGqcaCx`FNn=M3 zqFx&Y{)^bW(VP%6_c0vL=cT&hU&4FsnCe(baiNC=j}3zh}vRzYL0eUo6UzN zNamlG#!iL6#50jt^m-f}M8#I8gt|x|WL?B%?5#go@y2+_gafDCe1A{uz<9j*oy&Xj zx`XoG#PNO;$<@L@%l?ai3-2g%e1VTfy3}LQPZqvzA^m)SiGniKuxJ@xR`@lJ$Enjs z<(QIygid*$hfoP)*?|TI{j0{v)}?>+=tMEiJX=3G;0>JsNHh}z@EIV^@cjZTM?44# zJ%!7SumcNy?kkXKp%7_PAbkMIlqGh-8^=GWJlb>#AU zf|M|SbbFlqhwx1y39cOlIA}(P{rJRQ=TW(NrHO%RGpj9IAK(o2HDExff^5-%hM`RG zogS2`J#<8)E+ED02iDuHQ9VnBV(*B%^n6B<*U(i3#Vsw>RxZK%I}H<8Uy&k}+YGh- z-KV1EVvq?eBoPCy!8;9%?Y!Az%)s*OXtf)N^WmK6Yfn@ZMjlGk2D7K5da0pO_JC!n( z=n_TecrHHRTqha&_>$-Cr1#}bH0n+AeWu<$^;)?V>{A-jBSU=gl<9N240mi7QiLz{ zO-w?O5G-P`!f=+2PepQr+rcUu#~$)q*SDzpv2{%?L>^P4i~Twhq>RB-2hl5k#eb3; zNR(Ds;&<)(;ljJ{2re9Ys2?0D!kktn=!VqJK+NqwPn1785Sh7lE?ZEa9JC7Z=c%fm z2#S3<#m^GaAX_>=B*;k+^Z${t;1I?XMJ8byu#b`&O=?Xk@coWWJye~B@(tL4B%})9Y&{2tX?&m z5I1^$h++E%wPHn~oWFQ~tCj726i!zh(k-4c;An>=>sD+8gKy5AsQ$*V!9MsKn(+@% zieVfc&}y?og<}-J_A{GKNt!=jqw;CAHU837GAMVodf~^^HN73BjP!yNfjDUsC+)Q7 zk%!wL+uXPcv?Y?j5W$1@z7ln;#6lNO$U5I&32cuxy? z{v4AGSpc9&vgN;7Dxaap_38-Kt0>H2LRqyh!_F@pnX3r0HEsjcP9W~ z?QH__zul(_T>t=?-W&hzc$bS!2LQ-ir=|k{r0FO^0RZdF2SETpb*&~00NAKO*Z}~) zG1D^t-6YC89soe_%ZdO1s@@nr0N`oO{r}p^yank2fZht>|5g~gsZ0w1e1sbR*GXOW zje{CDoWA1nYs0HZ|ge#mdf#iYKXt1CaW4Z)q=6G}Z#*u!Wol5$d zibrBz7x?bjZBkTgQVIsUu;c8*ADG&$smhyGFS|XZ z+EY(@KdWiiy=tDg+NY3VdCz$=Pt3Ac2N&>Vp;k`5V#j#Qc0khbkc;E1>JHJ%G|W!e z#0`JWRuv8$*MdI2UTHOG)+YA**FxYcf&X5wJb#@qzND?I=|LYg?U6={I4zXs?Hy3D zYk~?z3}`rp*)yozI{YL5^`ae|O^YM6@$&?$fI(Dox&9t4bBhA6+&O3>I}cRdm`&6q zLJ5EeqoHDJpLAKOib34puiUuWlnX=3J?|#|OB2*zMIEsyIy|LNweEn$i&-hw*Suqe z{gsL|u}0HYs?)%sZp2{saUk=&Cz5CQ;I8*OiAMf%wig0_?w*pfa>8SUVwe)!G-P9n zL#g@N*7|s{!^M1)=M`Y;Jb$rd{(L01=7Bh@T{|*l>y_`(W2EtJ>v7D~xU9+LA63WF zE^qWw)1QPD;cqsTgGA96ry4PRLuAe>U7y9$7##u#+08faOt@VD~&H$;&mVOq&Yto&e<{(u7qhG_p_*+BWu^J~iTIe%C@ zI&26HYgJMA^2KBhlrq)j3S7xFjnHAUYB=X6fNOB8aa@A*;Rj8<&n))mX3p^`7dFua zJ;O?G!ATMpXGAD(_ybXDmI}hr1helrkEX2FL7tlKQ(Gb4u)CNl)o&_G;=71;nQd=5 zjYS;{kUQG*)K4Sq<$Fn(q$YN!P$A0WMZcxtU?5)IvCjb5e`xR>#HuPl-iS4!s&m!< zxgSKN7p88ITXCT-%(IWWh!7WfSD@wX!oxXi^f;jU;0?}kb%wi*!YOjaC51V3)FxZNo#K<<#N&tddVC4@IB z_yp+@XP2r*L**#SVfB!=nMCoL6N3ub{y_4xL|2E}1f}HFZK@9q2UM_Qz;h9os>u>{tQrH4idSvyPqDe_+YRSWwk7|PwT7{&#wVzIu1 zmsJzWItjeBBR1fY`YrAQe1b z#nZZkLZncG(zhcFB4YDU(AhZt8oXgqf+lRK4f0kJL`zL(8|nDum3L!^m#8mKzvV6( zPcZ02>AfjAq&;*bB0glT3j?_`pxit=R7z5M<~wxJN=dy{bk~TXhTL!??JVVfpnqqZ za1>}w9Ws?Bx&7`D;XURAD?5HnAU;FjmnBYVJFnV&L<^dTG1CbYW&IC%Zms26aP=s# zpc#9RT6XUfW`={qf6xI#oY#A)P^3)qe^t&3N`KPL=R6>;E<9)9BtGe|$+s*ym5wxj z4qWrUGI9~_c5zY^w0bWLXG)MV$>-&PE|>PpX!@_2 zQ7=*}qe*;#x38o~!3|l`Jb@g@KCb|E%jfiUNxFO@l9psjT4-bj2|7isM-PmbQn*UXk5XobK-w`T5ukA4FH+|B0iXT*Ox0=cqf$6HJ&u$~PWw^BE~KSKK;iiiwJvf; zi^Tg-xP{O~TBwlbkHiMONL?g7J-iCrbm+526qI`Q94^w3IFg8hv%2cVW0AjE{s{M^ zK2|nLnvhgGAM|Y zNnZbv-EjJIEA8hwdt}V{ZC?^UAUY;}z-+8ann$+$G$VD9q^9BkHLwMFKlJ*o)NSq|Zv?r`KX)N*&4EN%PcDCL>Z8 zNw6|r-*r1iVTu3#y***W=tbg4Vs3X+xVnYsQugIW3du)X4Fg+6J}^}$T^D;x>-VO^ zJi;U0RhjrBf#YSghI)RR!%kL z#Md(mD6C6?V@dP+eWO;SE|N5)<1qtV)LfR%fUT}G z;>Kt$x`ON_Pq->C>pgcI3Bw5>Y zYSuZU;h6O=-z@MkS-j~JrijU@6nWrKH89ISigE=wNOAglUd>uBf-rDxft{2|4nn^U zQy*6M1!gg6kw505Ch^xJHUb4cIEno~lI{bVt^fT4xEL`bR_qab2C?@Zv0}zvL2R-2 zEJ|r>6|GrCZAz)tqV`t4TBTLHR!g<$KNkBi)fv0x{phL~{I!A>dbuM(Or=IGzbNx0w3!*Ci?u8l zdnqPKK*UZO@ym{msDk%H;1{Sa(XSXHj{#}w@WkwP*PG*;Rf?@RAOex7@Y_I&@5cc# z5v&7b}(BQtUyf75qU(ckd|9JDdOGhX2B z@SSRGy}v($8X54CWp!!)=ag&Ozg+ZLi`M8A!`lxu#7MGe+vY5_~DDyeb}ZCkgHTfbLKHO@DI=zuy2|c)-nmuBk4vn^`xdfL)MWOXDZ` zRIg?j`2sC-(|1$*TC^tLOy7}R0G1xWf(9&ufMp1&#={YPv{VzRbTvN!vm%ck($%(^M2yaTNk zAti>Uj&dRT?KQKTzMEQRK9K%l{D)@?uzUn85`g6&U;zOZdcaZ&?1ccc_JG-c0n0UD zu>sD{4_LSW!_D!{ng>|g0E<0fNdqi5{l~z3IlywWza6mL%(^LN!14^RGy@g}z;e@f zQ!9Yw6tHXqmQ}za30STH3n5@(04!y|UTR?0J}~h7xi zx!L~$u-weLDOSMJ23Vc}7Dm8w(|1!J0n0gHDV5-gbr>^YIKlc7yB9I|d*BAN>wAP) zjTFul1R>KJYtDhR?nKr0d?M9cF=s5Ch$kYBVnyVzo8z1HPE1#n*#mx{2PzMFo}jcMMW&8vbpvl~V?LbPUP1#ar*aR%#bhMUjT6Oks| ze0)=+PKFGSx?(A;K_OS}3J($Pzx(dAWMH3Gsx^hK0ebH;e~W~-O&MD2n7?M#8RK#S z)AF)~(}v=8hQjjy>?$!;Z0Z_agzmWHJP(>84T7LAPyR!3qYR*3f-*Mdaz){fCj{hO z3`dme@5vI@^Lx^~uyFENrPo!?R{l=Deelt6xS^kpPBWLom5rR_BvCr{<#>kMj&3jP zMWYT&?KQQbu<0%5%h|s?lT*%^8uBUyBV4M@H}0aaB0c7Secv;Ek&}kF<;Muxn$00x zm%_N+b84t_{mb_jAD;1rMa5tkj3gyWi`|NhHz&5tK= z57|HW`1d))$=&`F)zVM64U#8Ga)otANIQ4eV)I}T-&<@GnU=Gtx9#LFNY1n%_DIzX zl^>Q*r}B{?GLLv)*}s{F@qXzGzx}X&S%eS`YWf6kq`kA@H9#cB%kOi~d7TSOFG4DAq|9;0ZdfY>pek477_qbsp<&~$`#*j`~}1WECRZ^|;A>OO9hEnnPh-)5yg|~<=X$!bs_sM+^#NT>Z^D{|4~I-f@X-8pnq&G>aI{Em1=GgXQzQP ztT8%L*!7rzBko^0bM7t|c+uh;Rr?a5=K94kb-nPOkqx7nYmY4j%4k%FT4P%Q_!D#? z{wc@4>SefI7#Fj!cG)iuj;?xyB4UMtmSo~9K5VDLjK~qk*Z)Ia$!_dt#Q5K@9s}Li z7OsG$1F-l3mQ}z)3s?pK%RRuN23WcPOA}zh0+x8dk_TAc0+tTIvH@5c0E;bP=>;st zfJGCqr~;N6z;Xpx;DDtZuyg|!alirwEa8BK7_bZg7JI-l0a#uG77wg7vtrK&8=KWt znkmf&+fWP2#0pz|7AG$P^0d2U3_l1XNr$+@sPYdNLW4f%+r`e1=&|+xv--XJSisxL zo}1kH5%PRECsFSXJz9t$&+EVS3eCgbw!lP+C^zCbdz0?IP0)+wH0^{pQK2vb1J$`B ztl7JnFVb#@a!y}0N$EViiamXP8Y%85mw-3O3Y6|i?8_$VIH^#T=~5M|S&27)r`B!5 z1@m+trNzWkiW!}0EcF(9@jk}t?lZSTIwZ$`+e_JHg~eES9})by8({6xr&(S$7!*U0pK1dR^y~@mwozFg?Vn@ zHWs4Lfo6>2-AV9kjlINRJ9H9dtzDr@zjqxbp$eDPwm z5}5M5!kz}#bzdl|kG>#0OcW8!QmWzO$~_dH4QVxnJQhPV&fS$gLXk(}hq5V0C3fuY znR|fz+BS^)IkKTxe@z$#{Trc&A#}0^F*Dw44rCnHjYgn$CpR%326cUF!XQlK~h86QPnpuRU?hL#)wJtXfO7!*jhSBPRJTT6c4>>2tiG?0D8b-|D zql=!)8NlRziBw@8uII1cq)K2p3zMARBc^w5Q;uv7+2ND%!yB2tXkhkbS+>p^b;5b( zeb>Ql-?eM}mH<EeC&{doGu*=^|~j`CX5Q zBSo{-@dLi>_-}BNWsyOq9Hq2I+*^xJlU7FM8Ab})wA$#eW}SkykXPEhDPEF2YDp&c z(S<(B;&mvl50{V?$F)R;@kv{kgluNHU)$ivhhM2G$6(s2Nt=V#j0uvWJt=j zB`o@9{2p1^!E4POeY|TATAgN<`>|!fQZL^4my}c1V@Jtjs;RD7^H;W?sjE^uvMQ=vWI2(JP+{(oOAFAKfCinOI_hAXne9M1hdp;%=`;0= zA9PCm3}WNM55?EY zB5kA0B#YAsO?enW7yev+)Hy4>W;{m>r4bgMUS2- z52!g1ZtN*zwS2>`05ks}^Zu2D>}RzDQ#DoyOHXkL#o`lOsLFaDQsUMN3S&ZA>biYL z(ICck+Wp5zkdW~qm#c7GYf}r{-I$8rs8W-+DikL@Z86ZlJ)LBt{0te*W5(dyVcb_I?t*Lnrr7r6=;l zR{!!e6MWOd*r<=`arqx98Ba@g&_}Czp}B!t=r!jC>||ewcF%6An4n)gOUW1u0fQ1F zzetgwH>p-07YKJ?lRsN%GJs|E6n2zS_-E5OR+4E+@vExKCEhsuZX zcBj8}ijK}TL~G87f_eP($l&AL4Y*-xyrHBgXxrY{R&@iLvAZA+efvqhynDtwn<2~F zduy0!rRFiBkA;+mV*8$K_pYd3hgznJ*Hn(>N&RE#AcB0t0%||HVBskf8eIcz@wq>N z!dWCTuRAZ;y@dF+ttAMB1btP(G%fk~_-eSz&ExRS5kwY0sW`{Kr`$PYw#Z+vSINpS z^u9r(XT;;bTg6kWA4xv=rW5KUdJ5(qoN)EyEX8%DTT*#gci`Sn?LmdNR$Lgn|ImXK zQ%Q{~j`^~v!{RwT+Teb|0s-UkPhbV{A-sy_QPzir#Wclg<>;cu5|mZ?ThZIkLI{QW z?qW;Hm34b2HF^3fFlJJS4%oL=MGE^_VtVhjVy%&dWw<(HFa6q}V1T5(jphUVkBEo= zErY+|obZ1GgMvQ)k@QqkN@RtkQx#0gV%#>e)9tb3tDR7p0 z9fx(^N;m#RmKF!oRg((EDmxNMv&Hol6dFz{HX;xGn8iZuECacqfr3w;`kLQ7KCQdP zy7~`pf{qnKag^ja>)b(G%(dRa-|F8JPun0Ox^It_hg5$A}UOBps{6$am|aQ;Fp()$Krh>2c%s!CO)D@SmtkrW9sDdm zdcI}TLgE%G`ZAywE#&dR(`7NEz)0C$$`s5onaalnk z{p^N$v?|{>v5QXIID}A1iK^yz;pXpkX(Zt|FttGrvC@}}iiW!x&eqtN=m*uZ$WQ-h z2>EbpwiyRQyj^NuG$vQ*(2M`71rK!R#D(Jj21>rC58{@GYKNfK7`N$_`0c6749!}U zY?kd5bv72{!qbleY`W%K^*HR)APi%#wPeT()vfs%O<}#prVp=H{f})2`3NV)X(kAG z_|6|t#O7_KD03GEhl%BVXIV3|Q8r|G17ib;MSHRnIxWBQrtf#}4N)|?3VGk2qcnVd z1T#nr?NMO^Htr*#^oR+> zq^sCofU-DJ(oL4N#zyP#iq5>dDCYNnLez=M7IF<6+YH1B8RXAE1sVvoH0|2mXkL(} z4ScZPDsUAkZQ#CbOKss(uh0D>%uk42k?})d07Xs2eStyW|DcT~O%fYNqlQgs;wrXR z8?KMnjTpPcN=vaV@}zUM6>vPM}%c$Iq$c`po|Zt zV0i}{-imLbUi<3Y(4Kn2kYD$KsM4R@@~)eH z3eVoi(Mw(0a%F!7q>cs`!e2%Glh6(wg^q0~@b2oyk^g&L;x?|~YqRbO@wNO*jDtkP z8X8rs5g9*SvJ$iz36jC`Lz?2^LiOM;1j$&?d~Nc*noiSI)(id7^s=mCQK@c)Bvf0u zQT{criQp~v?9UT%#@{gyw0@pnNt5}NxR(v}IBeYgWi?cFfbEZq79cU95N(x9wx-&8 z1Xa8Q$*|q^7Q-tC#2Z=G#L`Co4%OPbM%{kx4$1P~aFetuWr#w`@~y^jiKjOyM9@47 zAvOQ-g^T%DiZma8HS)RQkjozWRM7KttGD39mGQ{_8i|;vT}aSrnsRUHENhn6Hx*K! z2dpd~zf;>P5eN&|uL_>Fe;_{SEJS83t7s<)hq5$v_qt{4kt2Quat9dd-HiwYKf&l} zWGCu`!9=?R)sdIMc#M6?XZFPM7}4HBV(72wAQOiNG-1gnqqZq8-=I5-i-l1iyiKk; za>#T>ILSK2b-{Pe2CRD;Onom6JYDoYO(XwiF?uwNO}WxihpC0F=&D`{iN!dIJwjG! z3X8t@PXuDSAVocVYMMZbD&u>y)2_$)XVb8^a9I~dwX9-o?M6cptZN(dlb<(q|1%oH zO~C?_uEpo~?5!%0NczD-p8DLEd8ve!`{4O)TITlxR zdHlaagk|SV`3?Qm@Pr>*JqRC~K59M*DzY zxhmK_VN>qDTSJgn=fR+`JLwN`)vok>4(AniC*IB z8572{f+*HI3l-WC4WxY9Oi*q}`$N|G=+D+M6H$>f%>iI0oxFIjAB|LJX1_JP%a7PR zrP*8zgrd+x3FU6TKeZTmT?NpdlAp&`bx;O^-Av^iLZT4f)e?@@{MAea#uL)VW@T~2 zFb>Bu#|i@Y{W)~(6qp$E`BeShQ&Z`RW)6B3h#p1zzMQ!E_D`8kc)jAkFBMwhUs7DJ z*N^4)FCROo^}let{X@`k!!DK~bbw9^zY7C#oy2p_xZU^4L@kE|T0QZ#5Kh;X$|4m= zZ{PFPtc#=~=+> zI{%xk#&D;}P+C3RwcWi&&1M;DsdVvDsZV;`U~^raLEZPIK5dVLSAV_+50djKlhzmC zu-lw&aOa3j;WdT#v2x*^p2j?WxW{vwcFkmep^;0%c(~YQIAb=UfYkwM!aJNR!(sHC z-sVw+MdFVIrle9Yos_SH9xoNEEInVw`^4J3RV?I;K|CrB-5Pc--p`w}s z;`-Q1#qlVJUHh$Grf0@+7`BTq!PeXrSeYv+lk{^_mvSg+;5Yhi9$C@}6Eid~{$rVT z!_Gele(7HUW@MT7vweX|r zupng$WfECRNN`RE;aO#@P={w$KNHkfUBE|J6_n*jGP7?^Pc9Thx z@x5y^V-8+1SrIc*VX+T0PP|*!u9qGl=I_Ww)NV!|(mDhQ@o@f6?H0Z=N@ALZ2A}+p z#U~|~EYpV9tifShp)B&F)t^8dTL>qLt13l|FYN8QiP>5@s~Jb4*Y`ioKISM+PRO*6l5ed@LBox3FAI*?MA%a$siFmE3OZkF!CmnGi^vR z(kGg<6koZ`9W$J*PgChvB3m=Orp&RY!+4?in%vQS9qCN^NuXp)K`eBLn8QXH;(EIx*`tnz2do^G0_~*3oZb?yEod+C&*5dZ5gRNfga)P?mqggV)J_xXZNFW=ki@2KMc1F1pFH9=f@qXxk<0uEPu2)%jL^^*um%4vot z=EinZqyq|1BmN<@Gc(mnX62|J-TMOd{icEXp!ki}<_bprB994qtgz>YtUHA(x}{TQ zO?m~VXl%=M>zxV5dBic+

OtvX-O12+lf*ulvNm(`+zATLcFg_YIODgO)jP*V(Sg z8#-QtVHVtvJHU1w-3$()oKXa06fl&fY$sKM!?KqsItEugVZ`+PG(zK)U{4+`Lq{JZ zLlM8F#uuvgO`PzPG*YI<^T_kU-;H1tyg*F8rW#}b=F$>z+_L@R9AyD6dtylu`Zj91 z`eBfRJ6_^tlmc~qSQ|O+14g1SDaEZ&AW!{lnJkv+NrHpVIVE-U>r5inbw^Fs<6Dkt zb+u3n6-ji@-(1`F(A323YF;$K{43?}rq^oNh;yEcA4TCmgj!=*oA^yhet}R$VWo0^ zy>eh9g6b-4-7Ze9dR_$S5?rR&J&Lr?VZt=16Qqqg54$~jjh-{DKU#Q0U`60-qL&G2 z3|xt(-5Zi=g3@!1CN?ZcNV1b>f2w2su#u!7)>f|U;GKqTSEOJ-$7Ap;9vnymeeeF` z6|0ByQn^8+`yZ58rW2UlAwi(>;Fx-x^P_8`1EZbe*?6BMFRfXMhDRbz$N}az?aUkB*n+aEJYP2N33EH zzUXNcHmv?HLXGY};Q3PPk_L7~I*&d*p1 zA}`DuBPs8DdwVLVcN`)2!gHppN8j0Z1@yyFKaIIh>f@-QzRC~=dR4Ms%n_0&bry06 zmM(`VhpY-yw2p-g%B5R$kxN<7zEqEylYTG2s`xCijFdjool<~zEG{zYWwkjt*LqMP zdtHJ~%4puw@*Rt%KvSGnZr1j8+yg*mz7u#;+q! ze-aX?miShJ+09CNX6q+9BX=887se%Q#Uw(R4dsT#jg5;A*6)xw20V*AmY=lYfq%d< z>gSO5tNiw)H5&3v)@)-(;;V2=*2f>(1wRY$dvS6Tu1%yDWHL8#gK-#y{H%TiTmESc3{ zpm~5dQF-*t_hE2bNTZHDvdGz-3kPqVR92^UdcZ*QDS|htqRH`)0(b>bJ-4qu;Q*h@ z#s=1yC4`~}J3_uouf;Q6`Pps>*DXv}wVN)(^A*-@xilfG~$b*J!?fYgRDGz^Qei?CRUlG6A&IiEyK_x}ys%lfFdsy(e* z^Ig&M-kb<0HzlwR)|^*fjj)})Y9zQ-N?hawP4IKS=2f1eG*(el`vw9MH9?N!AnAVET!pXegEPBe+l z3!|4IA{Mh@zt|wK*_5C-$z?`*6s)m=FhNdsr*VnJVxA^ZCB+02v#FGa&Zl_KhZrKK zuP4Gy&0eV2KA#i7B^tz?k`oaX&M+7azl|P6oQN#rQ-0>#q?)m*-{c+p+#Z3BNXETq z>0)Rvn%58y+_FSjT#HEh$#$TW>@OhOM;n{=74Xbao(Un zUY@Go0bGm8RZwNLb)?pra$-j8gr5h@&pL}n&)GBr7rd|$tKYoQN0o3u92|Gl?q;Ec zk7HO`5xZB{gf*_cgt@#o4l(E`=XmaO2VRQhG@JJd6?rTETsDaDuiIzFCyv*~E&MjT zT+l_2w*ouPZSxlo*oZUN6)pOO+)2AV zdIQk8f9&RWaQ1qgi>}sxxU`slS{O698F|@k$axn9DJZ4dF6<^;kLi6q&) zgE8Y@r9?Y<#X@RX9#Y*>o>CKThs*5nG-?^VtHTsOFO_aBp+y>em6nUVWx(@md`w@? z@n2++-I3yQt`ScnPo1-t#aCo^YZc{KB$wya>ZpI>(;2oI#!AQ7MX=_hyAWLg^GLRp zHVmIqjFY!w?>~uuB$dH~cO50GUcwj?gX~X3k#Y(6`U zHk%|8EqW4&E0(D&?xE~EKn}tA60<@oQPUo_X77;2*iE<9SNmu>l3>O+?js^2(yq?y z!Yo0wr#cSHRShCSaoAWN-ym^fv}_{0v>&}K^ocHUx*Ptgi<~(ZDPbm1jo|!8DXtD4 zzpJ|Dm}viJS~=+UIeWtKvvxV&76Qr1@*d{-?=QXP>Tiet7wR8S*W?-2o*YeDRWXT{ z2L@AA^LeqKs-TmhsSN43OC&VMN!XX~oO4oPL+(^5oGhkf;fb=C@QsLRFIi?o zErU7Zk-MaPZ65;&EQ)Y``bS&rD{ktHga?zf>1_q*!`c#U*IRTh!OgRNSX(8&h)_Xx zdm(4$^ewQ&%BpC>0Z4>wIIh2vHXm%_lk|(EbV-J9GwL{BHh(9Gs2amTtsw(-inZ+29Ljp1;e+?N+#3&v5_*;t z{GL9Z7aa=b@*c^2$zD-I#nJsCA*f#WeNcaNFP(wzw(M@0MIuV(M9y}~Nc+q8=K+iY zp30HQIW)RNS1i8yrcp|6)f!^|$h;|HA*8 zUNtm9-gDN{jLe`v`JCnrmS5(@G~z7n`^MvNr$tj(f3H1!1fSGR;&AnXDEvQIfpuZw)+%_?fxg8^kRHMO(Ql z5)Wj0-kCr*mxGMCyza7;65*}!_rY!>3M;HG1-~HMOhcO6v0cVt_uFwMA@@Uy!_UBF zpS;n#QH?^=9Db6w{QQg+E5kUI0|l6ti~hr11ZH{!u|A33d)fo)zxZr_ZSNK1NNHq; z%YDgcPCmijaKssz+yV0W!$_hd-V{$ba`j5Cz@8{L9Y1W^yc^$-F22*(2`|t|n-yq&hc#HV#pD;M%Anxt5?^bhdY- zB}o<1ihC>mA^agJO@ba0qw-RN)M^kflgqF9>zIi^rYO!fD%?ekH0-q=CP*u)b*uN_$^0lDK^d_)pY zTthNt6;7~f->H|%ZPl}=+c%Xw23+`8)VM0tG&B)qSZtEXbHJ>C z%k``XADOKJg?Gx6ka5G^teE-~!Y{G$d~FoCfO*y6fwl=YhTUVcq=uS=SXzuu9u-7u zc_Wp+GvOh(XZ(o);_g$@?uRIq0DPoMLRK~@?a14hiqja?P+?ERN>DflV^SI!ZbO%b z*TJPoDpV)iVSkO5>+B5G$U|ME5VHSh~_x;Qy(37udjLZdoxhf1)jhq zg-yoRn{690j!a5;iIb*5{B?G3ztklu=(tN;rD#iiI7%39bkxYw#_CU$XxhVNExe^w zeSg#Hhjyl_TtcD@o5h)U>t^Iu&Q^ z3xHMjAsF1}DS*{}uai*R*jNxyJ~;bR?Tj;3giU>${^ddB|@@}D8Z-^crL zcTB$FApiP`-!0nFi9D2pnTL{4yMeG9#n;ZjNn{f4&-<$ngXW)Ad3Os#_8^qoNb)+B z%=6e026{$DM*j1;HMvK!6Uwg_@2*cxpn7S>TzmJUEDv`uMw$Mt=~Iw?q|ZXGP|Woj zsS(SlN)4GX$A=kZXY=dK#M04YBiH@&2+zJkCjX#FMy;GB<~(D5bJ-VXPIUGCo(Czx zjG7eF(3qb=ynIE*jFZVKsQC49_&eqMF6*+y??A4ZHxM?hpPRYT4q&2>s8`{Z(0~UFWL(Fue_7vU)?! zk*HhlPJZesiSX}j${-$Dw#Fh;ALX&@7^g&5;gR%sf!A~eA-Dau#9J-d;i4IO8duBZ zuo-QBTBlpGAv0q$r3CJ(N##UI5NSp!-cBG=mF3cgEKj~Gm1^am^rPQ?x zD6QGkhz~zXyeTGTQqtb*8yW!z4FR`e_3O_jiTT4r1f7fvf7%j*|waG=54{Fl+}Vs%TktM>$a+mr+;*oL&PC)IK<(Dvh*RBWQ5u<;> z9E$!s3aW3H#Udi9DZbY7fClwn`LZ$UO5N7Ebh$I&Sa*{9WCM)7*K`%!7&Dc?Cw#40eK zcqjWDGlurG$Zkx>`Fs-ecAuAUMjmvJ7?*9Qv-RPI60{(+@x-tiyF2=yEizNED3~OH zW=$V#*g;4`Bju1nZo0AK=EJJJ;E2toUPx!7TGFz z5}5oDZ3!CqLHw1sLd4GOKUuYPHlk95lF(cxG8XyB1Lr@DHv5dKU=Wy4cW2v_2wuhd zpdPjUb7U5}7a=?IDPh)tkmXO88@NO+QQ;NjnFG72t;=6qQt<6f7}tx#fmjdy(|~V> zWQcd2KV0T!8Ay2oX*jD5!Ay?HKlS%NZ}1qUV0>xnP3&3;L=1TDPT5r&UZ`R=+9SP< zACkgl+%Y)(J?*O>rE*xT4vr@yT&1Dyjk&klZ|DGI#hTjfjY^TwDQvbnly-Wh3}$L` zm;C7?I?wPs2|?GX9llzcde~3bO@;)_V1<(wdP&9{KK_yde$+%%kd^-JGxr&53zO&X zOu5c?t$dZeAK+vB+2vRI8||8&trA)d!uYt#?&!431#%Dn8G zL(bb&%VsnlMWNryBPHD5O7j(3d0D(I=NE2EV&jPadj(Z(QIMe?cuV*q$5A=52Z}W8FLHeuIB6gSnS?nxsUuvex)_?A`sTz!;QI6 zd&mGP%tWRY<}mUTq{cS;u5n7^M`D+ox+9L5`P~1V#)J#aw^=H$VYK|Vp9)?fOc<{5 zv(&fZ4z=1s7^&x1lw4kPY6jcg-iMCIK-}*c(F!A*{znA`l+kL9RBtDq71+8{|4ul#Fg47_{$wy-od#jvBOaODIJBb3{DG zr%ThP*~F>tF`*n(@hf$U;H;9Q%(w7|kE3OAwNVbw+p1|JP|vI<#u7aD18l5+V<*)W z_uj)-5r&CVRZq;T3Zlu_2WZ{=&5NLlbsD-eUBztlpbn#`rDE&H!GHbT3wViHWjg4* z%o24Q-%!E*9EMDa@|*oL9G=O9fQn4t30X7xUS?YDIEmT}%RP%lEh#HE>L#gB$}*cw z$G*1u_usCF^2-V$7e^{jWbH~k?anr2r&d$+f+x~@R;x((or{y1rk=hLLjM*Ub>>L) zG-npg`0g%AZwqroHg$x0?IYRfmqwm~Ykki}>V>lv_{}gxW*0tc88MVJcOF%-(0S?d zCdT}Y)H3;{?8dS}k^z<_E;k_-wyqw99w|@DzO{`uG=GpJ$I=(0SV?#H5BID8*n?>Rb8^`R&-ts%N9oE=q#w*7uEEhh-CP5wq!m9J_p00+AXK5WO z_7O!=8$XQ0ijO-+Wyw`5+%>+Bt;8JrugK zJgit2qwlJ)+DCl$Tb6Zz5-^b2^*2fg$$Q}#5Yl|i59ZeNt+#aiX@X$}7za$mA5g8lx9NbvOtEkMVKgM>1*2%S?Mtemc6#a9EBnc=Om zQTce?N3Tx2f0<6`;d2ya_f7fY+myo5J9Sd>){lCuVpyvX(?}69f`=Hx!4hV%ZZk() z#s`y%Sppi^K%W^a=O6EISG$M7m{4n37JW1>=N)BW4W*seQAUKPz1p$Wq(4YbKc7dZ zZP=ZYocKR`i{ckHb9&r3+Bk$eG%=d?$kNOc_*W~UNK8mebLRJ1v)yhj5SNF@`?1Y&mdMoV(B14~x{Vh2N2o#Mz zLOcp-sJl`_INvnHv4kv$iQ6X7b23rh=Fe$o!;Z}AxX?Pu!MfwsBRbt-G`(At5=TNL zi7UU*3MCM48Ul-3XqxIQ(R7aPgje_r?En@V|F2OmVIe;;__~1J+SBOG3MJk+~K3Wgkq#-FQ>S8Vr;_rXn}`8lrS+!8T)AV%(2UW%)BCuN2my&b+scVc3h$ z@p9bxO;6-EDIWfshh>89%-rH-ZHPbQTF~yDpn0Nsi2h=umr<F3dye3ddA8OM zo|3XBI!fG+@sYJ`c|IXvWqUdt}2B?T@#$)uw#ZO}c- z?A5(0*CP(zj3aWcaE7ynk49skKh>P8XfZGv{ti2O;_e6^lzK4{ekiBF@l7Q!c2eN z<%xmNTX~pkNKH)N&kQv_9}4yu+=iG@=O1}nYHjLj3J|Nr)%zIT#bTnk*jhJe(nsc; zSyt7A`ds4m0$YT{Ti3WnPBAL<&V_C=Sq4E)9*#US^?;YVzb;n8l|rno(;%p=L4o)g z6IG;>@)`8xaj94BvV-rMp(3`w{M6vHS~?p(KiB^#hL!@6$CWFVLV;Q6u{w?2$y#sPG`32$jfJ@Kxg>IieqKU1+PxU8O0GrkcQ)g7VvGIWYTBkguPXI?rxbTkW0#IF_G*;OeV z``Xo1pWvy$yEy|Fn^qRRlPM=AC2M8>TCaN2u{J@wbJQG;_o<&asW#HTa+-;I@EM&p z^$AtftA3BbH-^t*EH65O7C18mYXu6F-}K=^O-h3dT`Ft>=fY;WF@;6ov+w*!5-uH4 zz3wAZs@5IR9H~a#;!{?v`%*OfqjCnWZUS+nK3yj~=`o7J$&Nxkwz3Z6Qg%e2ak496 z2JiABO}@{vMR_JVJ*X_atwcxtP4_yi*zpcnK_lBJgtAWrCQM~MTcIO(}rItKp1Z6va?Fa_hj~j zq1Znbr##5mHo}hhD)_F5$z-!t(04@|VwP?RDOLsgW6IFb#I@|GccagtFLb~NcIR90 z+yIOqwIHQZT5+SxFd5pz=%|N5$xP76#^LJV8L|K1PuCvdWenY;Ij&3)&tQ@Cm$krVMtXx~W+ z>|*C!wCP#6%;HF!jW*7aT#O@#$;ZUfzG&ap?Ky!`y9 z*re9S#^hf>Uf)a|qE7S7yeT(Dm5W5nBz{_bmz?f%#eizV{W{xwV8xG8$oF@z5(>^n zDSeMZiO@^WIGIUiAspm1Y#)~4X1_5CVi{ifd}R+_@w;dJfO4K-JcpmQYZ{Pe@YE$@ zgh`YN9Wpe*{APD4qiC+1oZc2O6FjL+7yIVm5KuM-v3kn>*!kPY7ma}bCfSkH_oPiD0VnAi6GI~veV1gOvJZH zSVBZPSaG_o43NhP92TjxSLz#M;?gv~MM z+}gUC&-S+&Ys9;?SlARLp#>^4ANzj2mockrOLAWRg-5@KnZho?xfEr@ADvahFvl%l zDd_tyClcBMpP*@-QIs;-CmVf_7R5X&OY$@-1!QG}Q@E3`iRtL!57$YeE{}tpMP5g( z4>sOveV2#6w#?naf)BSKkokZNHKwG>2G%OhDlncof{c&+uOh4$k5yTl0<7B6+;;8Th0vuZaA2pHz(fO(~kWy zq)1cCuz}N5S4cSe@`Yg7`2>coMAPxdg`#D@jkz6H91wPioSGhvrs+-STHAb`a$s$^ zdaCKX{ZD@s=%+nT=(1`weRPanyFQ&JWW@se z>(G=BKR?grMROfco|f9Ab? zB2RNyTvSgy=eM72-j6up*YcR|eK1O}bTVi-76%gXMGJzHHS`SybBvT@>}`$PP@qWz zX_M$Mv{!_mX;{9`KZyP1cik@oBd)mn-hqnTRx#hTX%z=ex!@9`qej%Fu91qhQ|e2G zmo&#AOK3dnk$&K^X~YcPfCd?V7HI~miaBB4FFCLD|mr^pxCWr!N3~+b=pROSx`R24`n(o99-*Pgr*Jtlel=Y zM63ReX3tx1+=1N1Sk?3&ZNF7rSXO~oUg#ToZ=y+iQnZ{>X6L{Lr2uW59y8UOmz{oHILq5EoH|h zmE^;F1y+U;wXoc;+IZ3}N~8H;G=1NWr76Asq_s%&V8B$&3pZZr-g_KO6CtxsUj&=ycG-rai zVTBlXBGr>*3H87}5jNvCFOHq#BjAFLG=^TpTdl`7D_Zy4O6dLPu2!Zy$pQ1(pUkIa zPATJy)sUQ&mrUtYd-RsW1H{K4H~k1kniX;vcj3I&Lh7moW5$SA%~ouc(-h!aee7)( z46*ND1^DXz77Wtf`AO$=a+MG)Mkq-p``G|tG3vet{I5Mp(rg(x87#mfDO*ti15Iob zmqH$flBkt2KNBBaQ3lIVl{#5H-> zVRULG66~HI4ZZtD=-n8F>qRD7S1DhoVEDb#jRKryZDUpVcM_5m?WLtT=iC>s7R|8o z7`_b&K2dsyLb=VVrJ!`NWU>OSQlYdG`{3zzM)3}%G3kJO13Z5p1DBs$w_LH`cdbkO>-d8Rshu5mI)j={>(KQQ4!TiuIXwTDa{vE#SI^&) zoH{?3w{Fvv3N=slNzMGC()OX(gwAF`209^L(}SMtBHyR;T|J^CdF`Em#ZvvtaML1Ejk#ts*I)v(?0amcoIV?^a|X&Yj; zB)nn0UQ|y!kq^@emmrq66V&dF2qh_D_uX(h@AqQCcJ7IjZqR`b(L zH-F+tO=NM?2&*_tu^^eob014Bqz5?Wh4s|kHQAn9S{8xHr$(}d%&>-8gnSrtprh92 z3}X2;!p0Veo3%63#DE}R%pwq@D+Xe8(LjuD28huG0x>#fAV&8Th|$>qF}klnj1JOd z1R4Zlbdo@fE&_-+j!-Wh zcAhT@iXA#k7jz>V^kfzepqY{k^1MoO6xAWXu_`?siY{(S)`-rI6O)&IFaGxhh-SYq zPiLc2&F#JcFD6jolg|5=AWCLdSJ#1$pHMFhDyjcCrG_(o(URV+_K{_M?W~HF%;qM< zE>YIIofvpd7LzONz92%p@{47$yuM&HRkx}2dC_aAF3G-^ke4MFd%7%mGrXlX6gqCUIHFE*y^9p)LWQ*>2JJ{)-@mwzHm(*WH1amtYW zjA>?n`7zFQJCK^y@Dnj=B!?C_h{M+I$E@i0dZg<5fC{?@YZC6_*BFDFH;SF8~Fn%t;0R&=BViQJznR!2`DzXQX5K*OI`4 z5Mjo7`>6SNe~OEVb+dpMAiA0@VN=7iKCju*yw4uEZj%?0bXuSFeY zJfQhcsvQ#B?it9()I+h1sgyUS?haSFcaYX>c1D~eRUDaPZjk0;8O||jCwIU*1E%5j zbM}>g2cd6BYoO%0rIhiqGlD%F*M>$O@14XvHvtc(P9^w<7k&DSvqZjwDDCsS?=Wohq9x7dY*Y}o^=OO;JSF^2r{qF^)i6Bn-mJVCgPT6Ao)NZv$C z#b9zOmLHnxB&E3)&!IBL;XqO};HYb(CW**smom?35)2Z*LzXoU1IU(h2R}UWgzT95 zG33X&vXR?T2C=;MqFVJoF)8TJ40IcAw$yLzMZHRO*WtBxlsZ02Hu$<~%7qRkIIhaw z3vsZlG1=aDBSqSg=63!g)4KYHp@W>-oZoPrCBsIoUcgS#77vFF%0;i!SB@O76;4R- zQmIuLL`O) zaiHNA;)7f>>rT1mfXA!~NV?e~bsg>kf5_7d!PRgPKlA=Jj)3fDJ3SDc$_GXv!=Aqb z(Mb)-;8|*fAAZe1a;N+Oe+BhVUaUw6D~>%zighYj*roX^-TMa}MpaY|(Or8cs$)jN za?peaS`ZOSVl#nQ(nX8+GR?cs6n`)dv0t4Pix%ghV(lf{z$g2shC9x;Y?Q>|_O%_= z++jVuT-wmLz^|em?3XglzV0g~)JLAR=*ul0w-w9;&A&K1FJFB!8(Upytc2S)OW+9y zQ}OAI=69+JNtulDSU(C<{UVEMd5d3W5$uDOK|-wT;0!1?25VE{^QFOAvhhTTDKRZo zsG(_=!HBDniUl=h!R}S2M4KFmLl!hj?b)bm(|;}Uqv@eE+h7Et^;tgqQ(*rCtaoLk zKUat-XXnl9q;}`Q0l&ymFftv(zC#Os6sJ_Y<=C?*jKs(IXa1(pbl5acmb#J?D8j~f zFS&txg5i}n&EPaz@a8hmsCSa$MfZ0Z+J5?QW_-Jh+^GP`3xjod=8`$b{ki$b6yon} zA?-xIp|tZlV(p7ux9JPw@9u}&y~4g_kXymZx&8bkE>ap0|MSylohH3y;YmUd_4zw3 zXhTV9TxfoD=(lM3s5ufwE{&gEv2g}D$f`pfD(1jCogPet0i5JL<)Au1>3ntFToP!B z^@|oF12#%&WlfsLZbaA+R>_~aYtyxxJ;9;livGm`6C;~s?P2paCz3OP}n z2^frC4q-lC!l@;ki0`*?Q@{}lPaGIMqNyQDwvca5%1hzI=#U(AM9q!nnl@qGS|^8} zW(ru(uD!#1k%1|thPxQ=@bs~ck43?UCj;@tMG6-03W4@_4h{|O=Vl5P&+G=x zk>D6|M{~`TG}l07l5N0O99*d%w@!tWHx9rC2B6~o9(233rSQN9AaqM@Er z*Ngpw=vl5OEN}kNthYz;09u+3Yew@E& z`9Vhz7yec}>g&}ao^1n5`kOKawZngCW3pB*I+a*OHZ&xR`LDW)Xde+T@=?XdERg;_ z|E+1UUU!_X(XLVqnAj;1wsAE@+>%-$M>RrYyz@rYZa$v|!tr+jXwf)&4nGw zO2$cKQ@onv4RDQir_^I~yBYloTb#Vk-S%x8I{Cwg2RJI(16*@T!Go*-FQntmrA`v-qwDul5m4!||`w zy$u*cpUr2lv}{9L1&7cmPS60$o46wMY{fd)qs(9|dajRWdt#sdXQ(yeg^#_&AK)@` z?cH2tJ1j*0na2vDJZ?cGb3a|_jf7cr=){E9dJAj7MO~4T5Bq=ALNv9<{-2L-Z%6~( zz*C1tCf6;(0{Z}s*-Yk;mobqJ8+YqtW+mfoPm5&ad!@(ykpg+@kjWCO$9^MW70W}~ z&q;Eb`8J%Q)oxfkl6`(CyC@M<3M?7|*v^ljKS%B{@N}ngm3lzpWvG<-u@--w>7mUWje7{oNMf`t3WXr25c7-`?Pkm%8Mkg3x%bv*03H8ZV#6 zb^%#6aFGUj#p`qMYs50pXT~3f&9W-e_S0Hh4xBB;(KQms34eJbc=3h>8SiNwYfG^f zVZu-;he}Mdmy_Khyj6BHTe?YgavZoYw9l)fJ$cWr;k}uw8ISITEKfaGTNtPY5ZRSs zNu$a2Hy{78anXlpOU*|r7yz5BD{4xKa;J(JIs!}F(@q{~5ndeK`*m zN}L^RwpV`pL_?}rfUi&nAx?Npe@{nU9gDyy#;~_6JLWIo8u!kl1)Zou0>B90d1svG zBJ;MARWgyRihG!q5wXSNzt9(Sd9W#zD`^qh$kOWsp8}!CMpMBx5GZ3W5FnC`v z9VYBrIiMEBaPccZ(_2{Q5zPTio4>%RpD~%5MU|Z^Ej-+}@@$pC{iu`Y@X14BBV8Y6 zJ)tQLO)yA7$7T}4OhAfbJyyx4HS3bi9|iP6 z3y+<70rdU`*7+jvT_M&lYul8vG>WhR2@fGH8n^~)V=y0Y{fT z8tuWXyY~u9^<6X7$k)*kq{Z#Wt*oTQ=dw9}bV^V>Dl3 zy+*td(?xomE2&uS$|Wn_U%isrwn-wFHN@&wa4zrz%LcCpZ|VR~54OPQLN@lLC3%nB zCr!w9DrakfDD!x$i7p*4&s><|+8BmQ0ea6Lc=?BBXJQ3zTm6@;x{!%Tc<$ zHOlwi%aeT>yl=HmHZIY-$xeCp0V^4GZ^19GkIl;Aeivp+!h-he3x1sfZ*Tn7zYc6+ z7s~81mP%q^D2!%UQ~|vtTP%th2Y34yb*D}KKVB9t;heygxMFe*$^ z-gTByevfPVyDN}57HJ!O?~O}?oIz+0nJACPribU+m1_7yJ%5nXr7&`)rC)Xm^4i;p zl$2a8R|I0e@-6zth!CIwTSO0~H{gG>ep46b7tv(-G3`O*%cR@eVdD7v_abNNO@lsN z;?w9ZqVS07-}VA%yLNN^4oZjk(s8qcyho7~B@3(`WjLijNr|KzvtGf$TcN^v7y0*PV*Ipx^$EQy5FOuLAzb zbvNP*OXB%aYBYjr+!YZUL%L9>0dz?eu-dnP!Q7(r+BKZ{gV$MONsoL@3 z@^z8#`(||mzzque>IBB^7a{hxHxu$TyhwT5%Ru5=V@~!hF%fdYKmn71c%}!iB+m{@ z-R$D&b^^}vL4}SaUtxA~MMz`P@eHZp0Ajx_D0?*_iHfg`4HQEvN>Ho~3^UoyMr^A0 zn5&H>@!VGCI|ji@sEXs~MR@z}(Rmtw)AI(Kxs%W=q80`<1Ld6Et*xAYGONrEx=@mE z_+D3i*2dY+`V|hM$hHjHOmZI8vD&XEa%>6&k zD_DN%4}_;3$RvoK*fGg=dHg*3;ip#*vVXlahI#dZS*L<$k}2kAtEG!KLQ-OJz`Xd4 z7e$xPT_oaIE9S#XQO-ja7A!2IIsm_y$V+#v7S4KLWA^dOQ<`u|1vsHWmS*UesnZ`( zSqH5bQnDg1)m7VOsFdrTuY%uY2GZ2cO=A_5{xW}ZDIxyLX~6%Kl#FKj$1hy`EH!Od zrmW)`-&e?xV5f$1rGU5~WgM|-!AA|)2&bQAdM~khC&=!GVMpoE=`%f9bCj~dPL}QK z<6ix}{#6g&+6#}^TOL?TT8rJqf`-vm0T*#n(N_tQF*}bX^9J+Pa8D{{a*;Tl{pJK8 zHvRB~#yNPM89x$9q>K>$@YrqewJkw!2uy>)XxO(<`w;bF!>E#=)jB<&IeqqZ;ezbX z(Ox^zSRGJ1P@z$;mynn^Pc%A12n%o9Wos$;4Fz4sc*IAdc@Ms|_;y(CdGE+bQu^;h zBZ!(vNuSd1xUt_FF`0}dLr0oVm8zVk3^UilP2dYM5f*pC@u3q&!Mj`BQg<{5fP(lh+HccDfBc9};Mb7t zO~FzC@qsXN&*Kf%nfJ4vci-v@4@S=F$3Gv9(f$}ix_Yk;vKOT&^zLyE3f1sbg(q)P zIP3*I(O5mPYL4Wl(1p=C$r|Y+_I=ts*A&?)3{~rE{A^ll)NtmSl}$5_%X|H)_#s$X z+uBdkJD(I*DL-ExkpzI6m_?YN&rfun}|xh>Kr%nOkK@bs~SI!9;h(U^_eQfar}e-AsM zg0smCrEdZ${;Lac`qy2{W0i19wDM<-W(Vw}ot6I(%E!*iy*ww#W3MZ3Of6fY(0XF0 zI0K@HEK?V@MJVxGk1U%QB$eHAPr(3kGZ}A96qhPOCEWi7w?i1%DdV40M+Amw`9A6* z{iJt@|3_ILAMm-Jn@;kr(0PKPRdsHeY50k&?YM4&*l&g(KvMWHvvGQW?GG3VV#6Cq zDKwhq?UDUUam3&ONt~5|d0Sd4RpJ0h2*M{Nk=e2>+Ih;yX+5EeSFsYYr`1@tmL_NO zInpSSv3g`_UZTh$i!tl74U_x?eXm8zrQ>R(gdQ96o*ML_@(PBSdw={QtooA(S6wV* z@-eN=Wjl45Q^-YC1{A7Hm*}wR=GbH5eg+UHK$eF^L%&T~SE_`oy`E1rui!UPV1k%w zzU^M5CA!u#IBZ-}?EYyV@LQqOLmz%VdnifuKK%m4s zR~wl>c5{Bj@MB$3hQ&>4OdQTAo{c6+u6=?OFCp8(()_xM!il+-g_GJz<)p99{EJC8 z!z+O$DZ%@(I&>;M0{>jU$WZPCs8okU>3*L+&>sqb$Vb~98rQ_l~&7sp#ayfMO_=QI(W6#i?V#s zB8k!uv2N`X1(hsXsIwBU;)gWz0B(7q9FQSr=w_Z7aa&P2G8{hTen0XH$Kp>^LWtrU z{My1-jy+hDq7RR)nPlWHEH2@F^tfN0Dh;i&{ZaafK|G`*;B%G{&XP*Yhs-8{LPdt% zO`STGbe^9(q5}QU(t(IgiNS@Gh0^mDF_oOA7`Y*CV_MH?yDmzsx-7_L6I+fXmX7}? z-jT4ZSMVNgHs@iVSA~rqPJ?!o%iH}g!LMN>w@gB*h6}4fpol#g3J9|vTyuYv1Ez- zz~UPo-x-rJiOBDWZ&$XsTplgqh%g% zF@2fSQ9qO)AQ|QTbQ=_3mKCFA4yFfV%JeNWzF^R1;O2JE~HDo zBrS-KR~6PWXQN2D>OFPAXyL|AgGvUHa%B`e=Cbi`RhKY+L*u$vEdn9;S1eknh~!1P z`JX8FDk2TC6LvEx4cL_WyllCS?YgbL2CA#EhVipBvoznm2Yx;$z>4cjLHrS7WE^pK zr_>y{CKhrS6nGyqWM8q*9|n^D$#Z`DO9=knR+X=yh*=V6VzO%wCh$}wb2*wl5}@+7 zGTZo|;}cKA524mu5K0Tp1>O(ac1v1&A^^tj+FH$I@tG|0QsiWqYizZVnl*B_CYX3_ zBL|aAFlr<_z@>QTjd|lHY0_Ss=JR8xxOWf>mAS&NXyy5 zHi1(u$V;~k9Qpec)R06a_X5r_>_=~{iA(7`^2ENFym0oJ|9SQu=kpjtg~d9ANq~xn1y5hQ4<2jlDd7kVZxXN}cC(rf z&hCxkUu5hvo=>|k&T#_;L#-82SBbBHwc;4ok1-wV?W%dVxQhjHJC z#${PyH3Fn44v|&T6)XlQ}UXESDLI#_T!2|lxf$Wcw z9j}~;w?qhPUey}9Tbn6(swQ<8Hf|>X=iI!=bp4i{vQQ}nckjEftLA81V=XoTAyG?_ zs;2}i#MwWsMRFuQ2Lso&gO|qi!0r&HN?ADBe3E?LXaguz6C}bOZ+r^|^}GZFRX~an zQqf3ITWQo!=j@O?VVszQqK)@KzF*kFLlV?>&stneHA2bn!8zI+iDsK6Rf@Ylva{LK zuizuT^A8tIb*_~(n#gVF`9*5rg$j#zC7i7Hs?0*T@4o#nV-KnuG9|?O3}^oriV+@h z{vVA}JoZ`7G^N48s)gh#K{|SV&aqlVqp;9AB)w{CNwIvU`=s#1WC&y2ZmwrBH;YQk zWhBj#%165oDbn;6vU*`dQC2i;^*Im_D;@gVC?1Q9<5bb{9`Jkw@8M~&5BIYj*0^dIM=^UbL0%|aae^%>zA%?7$)I~!FI{L)tahrgML*bZCGMPuw8 z*#qgVAqe)-kLO~F%nY$s{Bc^p=`*qLC)p9}ee!{Uvlx~t3{ZEz^*+t(_=2dZFebyB z_+NmRgK&ex;7Fn#qx%7Fs12gO+7GdG2|h*xL;~I- zfR(QF7EpH|Vl7&56>Vlviiz5CxOAkbd&HD~G3x6+sVcEZ{6{7*b3Fzo zwt`rib8vSUC@>Fm%;5j=w=0knf2%iD6l6f}W9qK(MTwXK9|b;>)}~gpF{4vonIQTD zA3@XhxqGLBP|}EiM{u))6FD9tTd7)=K5A+mg?bv0%Hr5vQ%5_Wk*(*Tug3xs^EnDW1o^nwRKPqUA2qM)`29K#6JZ3W?iE zH2N}qpCxvL*99YL(1*MsR#k~jBK<91uA)A6 z7(3e@7k=kFKr^ZSlp|lhLtJ|r=o+yO*S2}1We&T*&=+4++Rpx%<@?;O;V5>N%_L#+ z9b>wz8qj~hCd`!%7ZG%tfi&?lNZm38`hla4wBU`So3XI}La`Y>RyLcXzJK+(R$qCAG zF?v5mEdT&DeovS>*4b}-)RpG=7hVAz1XJj%l9o_m2BR!w%6L+p7Eu~=U9O9VT556oqA!=6ZbzxLyUlpIqA${%E zypW9&yCK)TtpuNm762{gspGq@ZYY8lfxC<7lA@)gA)CkQ8h@g4_kUe6Kxcdq;yfS! z)^RmUg@X0r5i-c(g}mr$lUrh=8Bs8q6+U6KH2&Lz9Cb&3#mEm<|AiqR?uzb38M?fb zpLM$}u}#SD+NSDn8{#;p8#F`D$_6=IYI0O*omo7@;5_aQ%PQwSz`GNkFN*uHX*wC0 zxWgJYUbyyJcIb*!W*~J)4W;;7mCaRR<%8u0S}C)d_I$@vu++K&UhD`H+dB z3#u|oNyNwU4M2=wF7MOr|IXfNGLn|{R?p}2Anl!9aVB!uD?Ux&1xMiUg;hH}yK>zb zztk%U8=J37;g)T>3*z2-NkminWjfz;w~&|u64#Gf03*m926$n<9AD+}A~vZrU#$(< zg1Z7$&_X52@Fadkfx%lYLAxg&AD$n_(9I&yf~wYEcRd288_FCbFx4uhIO*_CuPIiV zh1oVn&2ore-{b8HeXBk)QtHbxU2tfU&N^<30uO6V_%1rA4fUmG1Rj?MBtF1(D_H+IV(EK!F6m6DYkdF1E+P<4*5_>+9u!4@Ojebzsav|j|yLOE04@8v^)R>+3A-;t%b z%`u~?$QhEx6aPWrvoc$}HtAFOq}367;KDBbcHB@bXf%_k>%qC{)OUWy#^IJA@E2Cp zt8yWy(#B>n<2&z-&MHor`q-vIk2b(zOn+wN?m-60AM3AUDL&FiC#2^4e+iWrPfYtl zTh1pYG!G8~DQOls>&lO^LBELw{sZnqt!l$?U1UuWZv2X5E(c1nc`m>GHsP!a%RAqq zo*lG7#=fDQqpgfQ$xJSIb{;rO=v3Rq7a;3wASM6#+1LK44gOV(yxzt?-5V3?6Q6ToG^iOoS&S$J@^CuwzFlt}~o& zSWe8*d)_%%+-g}ZeG(=}k0dzlxxbHC-IWe*=DOqgbU4>?({Vqbny5)d^grP!P4-VQ z(5DOq(%2Ess8)~vRMw)XFSYZ*G}shfF~wLdrn(ExNzywU7V=%W%~JI>J?54&+TXplT}^u4+#PB>G< znSd(n(qKbTGl9DLY;m!=%*_d^vWFj(@UA4h%K&-HNm(SO0-F8UEFJx2RRri_JvzbEwGOMQCo?D!H_4W?q-ls-%O zUld)o)Nz!uUDK3a-gDytQ+Ot|Rj3s-OP!rGq}nbbXzva2bzG!>CCyh~F6g40hWX2g z39u1Y`Lip^VsQ|}sN1nLba6+t;{nfhDIO7bZu;P*p{g7e8R9KX@3}riq zQpYW|-4B~kv9_!*$L~9^*D`7R6h#nnifM8|3I!@EA(R^TCxjG?s@l!pPbJc^cI%IA z>JUKY->io0iAjQWs(BeD9z*W5826EIHB!#hnX`eI)7iyKrZ$;8Iug-e;l0D{KDHjK z@R5ULCD)w>w4M{=zHAsR$vQ$H#8;8F7pvQF3N`6Ik9@^7w`xPZb|eh8w=tCLTwV_Q zH){+1SAC42ksb0g2mJ;ggS7Q0&-EA;SJXUme|@6-6~F^F6@Q7oW;-P(u6ZXoYd9cAx3+3a4*t8t2Ij&inE)ax#v%UR;K9oI}h zs2ZYWMzlB?f-LdAUeBWL5$%yjHS-02W9Q&V-Jz!d#%WV^X2%oRrbQaoAT46_AXa4b z&+?h(Me4zy*s8p1)pV)yYy1(cPnMN_&wYwRY^n-p0rSc5;W_HPFXK(>jUgy5&8vuv zDIV+*538|C&bn9+XEfjQ5M0dhL4$$|CO9#EDa1!JeGO%s=xM+yha0&JPKCQO$vQJVO#1VUx z_sW4%G(r2#qkQYp^cw06ZoHqPoxiW&=#^bJ>0?$G+S{nuuUgFAf)t!7>xJeM{(-90 zjgll8K91bKy3b|V<)WR2kzV3;%FNXCG*R+q6`8X0y{VC}pzWMy5i5}yC=X~w7O$M| zM=Rm7t8I;B_I-yE&fADJ<|`RoOQ-Q7tX8)1G=a(C`)B&}ufkr>98hwx88*1v{4l#8 zBS@*eN6l)YD!T#(qxbcH+O4R6_&mTgugQUUoE>30En3Q?5$}bU$&< zt-g{L84{4qxY+|pN<=BV4u5L+$@9d{??wv|088RHzUH_4s(u3wFNd*~N1O8qsfR~I zeIefs5Yo4hr)yIUb zG64eX!0OWFJeNv6XQs|31X*f_6u%Iw7BZ>W`6Hz_tHWsWd>UU$8Vw)Hw7bsj{cc3_ z|CSiuqDJU6DXg_q^A@JevSSu|ql;>T61lBkQ!zTmq!Hsh+#t+e zP*XKqBb4{$?FcQAq>j)3Q&oNO?SFyOR~z2le_?ikG|9AaSMoF}FTBDUs~w`KuMW*) z?kuDI4@GE_esh^nn|_h~O!_nKR>0lsR~&_w$UhZ|;xtQ-%Wyc_f00W%<WLbz1{#Dw~_XAy_3QGV}*KblErx`6QzdedI=5!N1NH;aDIv=60 z#VRUtKZ&)8uAt<-Lu+El)UahpVf`mAN*$sde>EbGe}kX|F@9FC@qn<#-ph5qPdv^5 z%q7#Yz`ydTt|j$b_Q?zNBJ~gvddChXsk{M6JhM|SoR(6OJ^pRYxbH4N{aK&nvGTTS zRSP(1;_(A%5(ae=ik%UACNEKwivuHG8v0y#%GGPGS7v=WRY|IAc4v+vCJAf0GP` z*8l3v=XP5X?76QY+cUjFuln9|H;P}nPyPV9ySGe6%^1e=r7L3%z0poqjm#gzlM7X8 zKC1=kCcz7tnb16jLkd5GLJxPH56;b9-sshdb^IgM@^br^kbClhfxOor`_C-dI!=m% zM^xyeY2?>1neQCUVkK@3J}S9`(q9&a$w*i_?9}1y*1S`d5lnjn)-&Fgj$b=_DBt>5 zB+>1Ao$;LSNbw0ZTDq{7)u3GNDQ#sT*XM6QD~ zpkrSz;T>h}7GT=XK7W#*nh*eo>}AZxye?)*s&4>uO7vmBx#hy_G`RWNXG1^1G_x`*)H)JdE+xh_|t#c;O!Qcve!EH1)v2$-ZLR+t6Y{GDO(O?M{nI; zg`uN$8+n4J+2xNuq(`h#DEd>RoSMj<-p8Rt*1vo&L-#h+Oa`8e=z96SjG%LLR%c6m zKyh9J@F8&3pk!BkaR5aZBQGOsD}$LKrtg1%NID5jMB3?7e~K6H9C>5^i{m?aI`Hn{ z?MNTVg?YRuR)kJG6w-QK8Rvk!WrA1FM!-Z5CxXITrQt4`W3IY`_Zj0POW-Jb zMXaqUt*3u~lT6mx9Mgyrz&!sCv!|rWjfR>=ctn!(S)kc3Ilen{e~6qG*>w+g%YBD0 zT%r)%a?BDO|G`vV3uY4(fi@kgW@b%hy3C;3zhOwC71D(IHl422&oUAMHaPWP*#_Ga z8}fgLpF)NywNxJ`2Iww#oD((?r`!(L5jjsts5?ftY84Ao;IGANvNlG74Jo%WHs?pZd1)Fe#-nsUt=iDwH=;(!J3CqI&* ztUum`vxv9^%w);Hw-so8UJ6wDD0uHvSUP=?gOYOE^vGU|77ZM#6?XdK%WCHN zMHky3Smwu(Ya+=`>q@%lYX8&FG`KOC>;+HkOMwUuWb6~AoRKm^IuMoNq4*l1a#kG` zhN1GV$P%;V$;mb7{@cjDtx!Vxy;ItV1Wv2qMK-8c*$tLS%CPcYb>zj_;C-+IoHcMU zz!O6=ZDHB=ajZ*Kv#~`r<6ma3d1+z6+8*dCN|ihh_ti4hL>7A5q!T39uSc*T`vh&Y zXo$SAqh`jdw!?R%esO#}CMDx$HV+zb42|}&YE=|=YQl?U@`Haib!Z&iPf&b^TEPi@ zeT#eZVi#DaAj_YPJeOc-@C)iY0h_I%wbh_a2vo9g>V1;m?cRwiRsH<|Vw^j|D&cJ(5>j2#ui^&b z!7k}IcxV~77~)?wg;JHDMn(Qdw2N6HmG`D-O#DpC)z1($xYvjfccq!tSiPMIMXh{* zE7I%%n*;J$lsFGV{2p}!8>~yz@IDVBWW2clwub&lVg!Jq6v#lv(M5VrQ&S!bSAzRlSOi8%r zzW(I`UU7FMG&6aDY0i9!r_I>~AoMdTq1?Ux)q=Djz}-s{{YOyUoH1=9?y7#q6x}`? zV?CYll2~Cp+CA8H{Dlz$gZZVSqE5>b?isF}QCMtz*N9kSCMXYLPYsK^la27xG{~ob zq2u)2iYMJcAp+4(8Ais`-;>azKe3LIS!~3wygmyfyB;PCTm>S3mYyi4IX`3w6wfjA zugw4tdEE%vXwNHGssiN4{A3X!MWc#MzpB`s{z?jYACocaR5LqWzn~7UI@Jc2e_fS~ zG%-b|kx|g87D@3w%_<@Dt;pAVIZ5IA{L>vmc>nM4^ifOVG{<=!K1wDzjaEm}x=L>A z#*!_$?~f&bK<-^1>CedoK(MWuzt|724^T_11QK@5KVJGymm9~y`4fRQq$&0~0T1IH zpB=wv;nSG`K!XP4w7f0=s~CUap?VnZ&VJUt5+{09XA63Jz{7r5du zxxyddm>|m*hw)e4F%khj?AT#5WNiqu_@Kl>_B|jthjK>nr87MpDUTK`%RY=O?K6&O zjLb2B9?V2}AeF}{_!BQd7SLcbq^XH%VfN(hiF_bbj;=G;0lyD}%PuPl zvo&!?m_UGe24|4=Utfj9720h;BhJ1?j*;PXFQ)jpl60{ON7BOQWh0s|IkhQgYrYzU ze*~ec+Cw;6fj(A}Q4t1~B#&s7gLWNk=RT-K7vGEGdKiTrOKKnmYPU1qZG9Q7j2sa< z-ro>@l5NE})+~-@tvvP+y$2V0Rm7@ebUr{G9)1IeQ;y+kmx@(;N)R#{xjGhn=RhJ* zgCo^z`5U1AIGLL2obP-^3?cZUO|x2x1K_P(`qS` z3~I;k*YXDD*{0Bk04Sds1FOIt!ZEyWuv+;(1uen<&J=NB@jKfT&SbsS=N0ngcXmkn z$eO@vPNz=)rGohiR+cHPHKI@^F6$v!LuVo4ge`Q(a|#vJ6bryTeMExVQlcwOMWyzK z1dj+YmlZXr;eh$?pmI)FR06we1uv_5+8K^)OP<7)>VsFppqR3;=LhP4OK*_x{SKic zjaxC@=1|>88&_i>t4_dXho~0wTR%+Ya1^9vpT!e5RHQ#}LhVc!DP(ms50%*`sv&x9 zc^>%VTEj(fHHKg7y4d<{w-kgQ5+ek^zy;0quj$>po(&$cXwWE#z}SRSO-UsM(FnJt zP7oTbQWb0CHpyicAUrJQ?W&0aKp8-8jtMm`1yD8`qUr*8=FI4OO5~qctP6-4NEjKy zQW}N6H~4m0K=iY=E;uB|Q&aqQKtv2|EuL8#ie)>t*RYgSRP7ssp>6sGNVCjRD0FQ~ zROEj#>QlcMF|Xt)(YQQqWj?-rjxU^u$N0JC(nNl@QE0lJV?Hi6F)`kxQ^6R2Bs%;L zho2d4Lb`jjF!6~+P?GVI@-lV_hBZZraf+hm+>})R#AN4I3))w2FPg-4(x$GpGCqo9rc9aF^6Vr9 zo`8rl|Gcal(RU;z6&G7K+CMY z;IT7{yVb`p$~D=2#{2)JYoT-Bb=r89NaKNwB6cl%W~1m4=os(1AgDS!Y8a7)nrw}5 zd2n|=Y-Pm`^?7;^eYtU=W$FHeupLz$9)9W@Kz-`SQC#}TN$9Tw^iJ9g<=eV=Wve-P z?BB6<_w)}lEQ>g4z%lxl@TAPR^y4s1{cqh*c*|%Rm1k;LG)`fETppj?lMi?FvOX{0 zw_KMUAS5h=`##HmX|^r!+GywbdzShmNA<7c;oSDeVsTuF`K~-w<{CfQbd3LzzQm?@ z$J5xScY6WhfiOkFs4mw>GAp1n#+5d#U4ME018>;t3_2QedECwKYPoMsE+UOC^$}_y z85{R4WRyhl%M>I;!=7KglDJ(44mo$H2 z+u=>CG$`}$UcugxLBR#gF1}VCJgn)fe=N;7J4Epba&|h}w73#3H6VYVtE}E9)ri&k zOeeqB>HOXgp0md~JPV3ZDzYNS2~&d1WMoFyZr$HE&-(-{1)yNm^Yk8Cwlrmp4aj?< z?n07$2%pZ*P4y5PWn7)oxsmA88&JWml0kK;oK?oawL(D0EKk{zB?|rS9y&^ujr>$X zUe>B1F@DoQN?{i%*L4lI#25KM21l<+GFo-6f$Yg$V_$%g#~(`RNSySjnGx| zz&JjfC#0f_OQPegDz0snD3rBEz!&tA;{nQvOu>d*_SgM8Ms7yx5+!pvEM9z?7@5aA zew%i!s=o!kt1_bdMd>+zadUpTZxQ=qRFrzXM66V*#91P8UC2G8HkwBw*;$L?x73o; z8wZh4JF3RMNUN_d4XU1|iV~Slq9EM!cM;|+^kF##%m#?BJwB@EQ8X)j>(+hXFKRg* zCAxObDg=4@{Me&MR59(}D1yS)U`p`MobDt~fHoHc7|kb7NQ`qc1GvV69pm3Fh|v2^ z*a=*sZWZ@BZDH?7ZC!AB-SBn)Jcjrea9batDBuleZ;V^9tg0nfxzwUzf1p|NJHDTR zYNmER^aej~lBhH%_?*t})(4Z`-{HdiwqR6fu#669{U$f)E33+r76o{bWFVO)lWH`EYf48Zu z8g_Z&KM63KPBuFCaZ1j`LFM}W4G)IsH^3W>8W>~9oA95~ei-J)CoE%wZcd1TZMgsT zl#yryqYR}wk$7t46wlg5o5dzWX27)OAI>KcFCs3vA9%&X-cnNTMRNn*E}3gEy~Y%A z#p@Qcv%(7l3=LjX$hzu(F;=`0l@#u3rS*?n&Pk7m5pvE>X~3jI zEd)--)O1y9-+}I?VeHM+p{!&r*_x)9Q;i?H>6no7cZNNmIIMNILu^8kkATC9$$_i( z@u4~kaY32^#etQdUoyV!ia?`bC~Lp=KIv~?PvB|x4+RAsBhZg0?sL)8R|IKxpDEk( zZ&FCE+Q}VpUiF3&zJyD;B9nEf~5Nd?Y~HbJwc75DZP=bM#;iV|aZK znNZf{eRdf*6;=1^E2eqnqJU$hm)*j?JS%t*!k>6T^;Q_nZe%OROdVjRQ!&985%hP!&JA3o zbXu(_aPtjo^2$+)^e&>&+DOh&6%x6K)qtMxjT8xarPa`4n}@gMAIYeiKO+EiKNIl? z)>~&$sZk6wu5l8mbMDxReH*)r3PbvY8-hNfak5f1P(u#zdnXI=akow8M!vfm z*&+BS8i=nb_9ZLO^Tob$w9jKI*04cGE~}SjrVhoT_<%{iU?$rbGqX=9r5&e01&zz_ z!N4A9bQzGU{jZknN&?PWw@i()>x-Rwvc959dR8d(E)ku<1Uinh@u@T#7nF40HF8kyGYKW$3-5yf6U*T~ zMmNRG2T1HEdw!OK01g81V9P_Kbo}YX4!XLKL>2R?69We%4xzlZeD?*=541viGnyap zC`i8(6r-iaZ9GYF_7P8di38)TnsbJB53`} zZuDfzF2UHcWw1tFRDDeaZ#2t{0#Prc75L`NTCPzmZOhSubsHnrLS^no8N8mWSOjvV zYPZG1E=?U*sq6S){qKQ;Y>JAmZI`Ysj_KL0S&t4(Ru}3sV*50REMC zDQ#${3Sj`!2^akzdF2vbdSju+5st1FV#{YzWqXiFJI6&fVJZ~=aT@#~ATW(K1C^## zettgfCK;NxRU9HvdHX}$YCtYEQj~TtT-?k0UU|ZQHyz~o3W7%@571W_BnvJ)A1)iy zLRPW7IqYAgf7L*vP= zZAuKp3j-k9d~I&xBjvF>d4jL!TsSY;SjA_DI|DS=Ff7w@Col_VNS#)>Bwy#a0civN zJR<3rNI(mYQTg{&5gBx*7VjkS2!xJ8Z5j!CL7Ej$RbXJ$KBj=&KwkHkdV|(3U*-xL zCJA(GM3x2~1C8oPKB}CoPE)F>aYP6fe%rq$bDO^0Z8q$sd5tMBW>n_8U29*bqQ0asb1r;Z(a@Sbn3|L3R9?+i}TiXBV z6VvwRZT0z}L1PFed`q5~EgbKnI%Y-5eq{npQP2gWJ4j66M$qA0EsWNFE7Ez*G*LL8 zalu|bb!+{xAV6R90oED0cjZ(#UgVx#R0T@rEytS6U#SPQCXP)eIP)|m51R5?0kkpl zX>}fe4PO3dI9P{t1o##H1YX-GBtfV4H-gH@AJYesIw7)0L3>aRH9xBG4G-(ICQs9P zSurC%TMAo)N5)`#R`|~*Xz7MC1s6+cDwOj~GYcEAA@9v|OvYexP4WPCRV*j_3O#1C zU43%;d_tabY=+OfGG-R1G<0lnE8VF@2v^Up3yHULXo;N>ZI!JiOJEZMSOf3FA}gOD z7)n@tYVU!LaZXyHJ-Zr|B#GvqCu^RcN-`8N1aM=BP#hgrZLbKGTHwu_I9&>vFfYw~ zPWO}4d7W*-dTK|~%l zHO7nlcIVWn9~aMMRpYqq6FMb)UO{)c1kBa*J(!>kPsDO}IoFat2y0`>LkLz-XlZt1 zE~|BDXel|=3QKb&DCtX|8)xLxTW0Gx4|^QkaqUhNUzck?UL}J51@W~$QNR}8S2d6Q zG!Vf&Wm-9=X?RTI39OzceZ?-`0`v}`dC@=Oe?=!T25n}E7lD7y6zc!eKivmMEzKpY zIp`pjdIlWK55Z)Db;?KyU5%Atb@AQ2Yha#qdlg&-DEWR=B&tTYeyQCKN>w7!LMAETE&5NOapC&Kvy zTqW{T6J(?8d6D}lJ#$`I2P)(>G8E?_TOK_?Bu0r!X;iF9M09tmJoKT_Q;4Z%GPTr4 zE*SoJO=uEoNpyfpW&O!DVFKRKTfoIhCg#1tz z5a81jXclP`0At+~5I7t^T&lzQE=QxH2q{XZD!;F_9Bnl26V$cJ zalO4>Ig@uQRZI%z3Zs48Zq!2eWYxRtC8dBE55VW~N4GqRCs5Wd1O%pDRp=4G5ic|Z z0S2L=XF#2#Uad3eHo(ez8jqHkbCjP(3DyX#_ltTly}fB&O%ICu2OP1sL*f zG!FOYd~7z}9+CKlc%Yl@L2TN2OlOdcW%w~J4%;rkE3tI(Z#|o_BuS1zOYxlE8<=^T zBOZD$TpkN-R<}ruQxhhFWf-?yGbBLmD(c7pY5`rc3DsO1HhDjdTv$a8OkC2E3z3t< zY7^G-C(F)kHj0k=b05AdJ9G7VKINpXI<(tVGHLu(Tz8`QUTXSM6-2zoQ^2SdA^MWs zDZ5S26jjIWatUv(3rJ}sQMSgr1jCl2Zn}5YIw=-?Ksfj!cgv2(RpgI9as}#c5o<<( zQPv}Q07M7LZW}4E6R50BPUEkvI2V2TBbXoT4n>?CF)Y9uFN@X9I&w91Xy9~NIMC=0 zbDLkZ5O6P|I?w(qT0Qqw4J^YfNi~ptQKdBmHC;KEQ3NC=G3E!SW#7geA4pQY1t)XZ z1iQ7rery#ODhvpj5y3J9VSbJZEtjR1Knj3P9ARW1xY4Z?_kW7g$~ zT$dOP6h-}nE_M>b7chbgT5XPxGP%^CAFIA5GdNSWs%gWfQiP z7J3JJ9IULkd}GCYCqa9B2GgomLS`nUM`C(2Mh}#EeFE8bLVqzS0j}F?LLNW|b@dW2 zbUq4f7Q%L@42K5SbxR`vF4FL+6YiGdR?{^c8*A#!OJ?6rE`eWYaHkQ_HTQI_c)+~z zH8;EDPm$QiImtucGo|F8KJs3bYjJ;rccNbCbk)%^ctUmKOl}RwEC4BW7pB`tVVfxF z2D)cn4D+_vOMR1HaCWc>>l zM9;>3G69TCXp7iiaHXH}4!>G>23vufM*#%qcMrS}P1!NtQ6WhN6#U3j8z0lLP&}vk z0BGb|MkS+9Y+UFYA1JftejL>`1ODliO&3mgY-`YaJhZe)aLhJ_TD*|44)iMWKp0#k z7(bTKet>fjB7#q9Kd3`!9j)}^Ru+3#7@Nn9aX37E9vs2k8z=qx0pml_d_|RCO)a&+ zQ5%)dE?nX4R~|#Vb<-rsC^iM45BT;+0uN6nY2(MnW(ql^JdkciB1!U*3x7#>duAcmNu5AWCUb`5JoiC&TY&KV6X_A+e@M}rLbnR*8XO#WMr8<} zKI4A=5t6cDDGH29BFqi%2$2;L9+AmaA6G?ND1@M|O9LpOLYsE;3mz+UWYu8}Yg5tY zChD?QACboq73gRKK@aR78Q%#AZexLaTJ@;0ZX{0I6*Pvv0ujhGYKk11EMdy=G}uMI zFcj&GYpnATLx*!MR%`1a8)kdBi8gnf4y1iQ|xm=91RfrFIdJAE2ut(YwpHMIJ(0YXm^kU zB{8qpZ~6(odD)}{4vr|ics+cicIgBPS@LE*XKrV6dWUZ!U;H%ycFaw{dmoX0AQLjr zd2wX%9DV0KcM}F92y)Z)NJuisKa!ly2jJ<3BH?0+XTu?|V{p{iF`Efo66Oa&PUYeL zc0q$&cNVIdMmHk6XgD06bsqq4Tbqq{BDp^FQ0ih$YLvgMVaH76DXOW@=cFiON z7n*({UZe{m2C+m2a!_7AU*|p>OfgXfXCyBBAc&hQMKM&4a#|YIU5#MBQ?@hLIbGwW zS=5xOL{#zSDb%S7A(69?3gYVoeymktQdFm4A~B7NDQIMaD1y3}S!7fLftxNJST_hUw5<2W18Kh zScyhibyjPy7g+QBRH!okLw85jXGzd0JH9H^T&*ljK10U4EXw4ZQoq4|bSc|8S!0j^ zGoU}bVuoiU3L*c10I#j;S?5f69+@IZJ`23LEnlEvH(4ToWuX0DMj6xI!r2KAwoecF?b)CsI>rY|EDg}v zNEX(JWbu>W386!IS{{m9~o2gD$K1aZB)9FXeq)g5N73HVRWaG7Q;#v2(e*OVQLK|E!XSyKglD7 zXG%ukery6dZb#jKQu8?NT;tvo6vCjY1;F+YSHA8nQH2k;A-u%=1Z{9rUARUJIPz-! zI?zg*5u?(MdO9XyZqk_aOqZQXS6A7`9yoGc9PVjsU}E6|D%E2bH0VJ*5dU_j1?e%$ zOa#?#R_!0OTF1c)1`x1R43CYTC`-U81swo0BySnn0XUXKeEzB)FeZn$JlB2#Wbd3PbAoc(d;$l> zSw+n#eXRU+a=kR813c)2Mn+;MI5p3s4wxViQY+&(DQxX2Q1LsW8Pyc2SLm?h18<=k z6O(pnbI4rKe92Qv92cn@8^0pFE?45eTEFHu9t~lWbyV&47h-zFT|{};biMXW0z5zJ zERyezd=g!^Miq4IWv{FpB&^e)H8I^&Tn|s_ z7>#Ft4<5`aDQwnNas%?R2}20iel#TZM<=}iJ;u-FLL-r=7qzLd3sxmUdv7e!6D|6o zJ{S6^6bM8%GqyP1Lz%zoFE?m2Ge(pta{3A)IIH=Je#0)GZHq!>1LKw>aOAqH0$6N% z9T(Q>9k=EVW%Tj80E-ZAU$9k4fc0MCbMF6_Sj7Z90tRVnI0Cj9sGIVyUTc`ujQ z5s!XgOQcbOJ1WmAVz)SAMPHuqd%>_hcTi;o8z5rF71a7}yK>ZukKa4LJgV3U;M7d4qN@e7s?3aWy<0UZnD`Mgl06 z2Zr_78BQd^Hl=y3XvBcvCVqiRB3{sgUUOQ0Hb+AHHuL^NF4oRa8MzUGI7p43A&+xg z4A^y^c5YfGG0z^mBogg2KANo$9WrQZK1kE`J)?6sKqzRw9VqyQU{SqZS)Uz*YqM5> zbbtJ!0mHBnNyxEwW+j{TTeL>i2jLO~O+i|dV>L|{UkWuOd=S8EH+gK#U8Qkb6`o60 zVieu;3Mq4-dSH!%Oa>zxP#Y%04w0xyN@^ZrYmhS0HP9uFbG|TSQRagVYZ#prM#VaR zaegd>I_7Zdd1fDsKm!3CHs0jiYSyeV5}L!FXpBF6yDSLaSzDg0)$ zCW^P=H25OwMhGFi2>vFLEzjU5K~os4U~HI5Xp`jsdw#6JW=kGR6D8F8ITYN9ImzBI zIi_{7RCV;LO?aqFV`8*>KI(ON zO6Yr*Y-lY!B+Dw}FnhP^YNSaKHeO7JNdl$_Zdo8Cc;(o1PUo5^0}p1XSj8CmCA!!= zXC^?2PI=y_6Q5Zga1W8TPJ@>9S1M$)GX#<)YY0>O55j~MX7qbHbZ<@yVcxd{Gr^O* z4~=OvHWkt9Bs2cFP3I*!42BS8TG|bw0Uz{E49MV+aUTuiQD!a4a8_lueIW6Pa$_{O zRGo&aUa@?gR1q%O8j)lhW+dwMQb&fe2+|AHX|WL%TORcZWmNsnDKbK^BuB3gZ=b?x zWSrR-cHFiYxfb36mrF(0{pX!a5amo zHwMTuKvKhaZ1+}hL5v9RE#}|hYk-WP4gv~eTV1cjPExEad*EfKEnc{OTJz$V5*i|5 z0NA0gJOIoDIJb)VQ#IvH4qxy1e!*vZDk;xkLkKRX8T$6nZx2ufH(`ZQe%s417r+y` zKH*t}NGs)NbZsP3AC0_jS2U{k|3B}91cL;Lg7rMHVT3a8(0yL%ab^5K#B738Y zXk#akDbrq{3EVBtVLhj*T-rwra%t{2Bfn14J3WUPT2>@CA38u7Wv%G9DU%%@TSDkZ zGRpr=Bf5s3WO@}~7Bf1cHD6s0YfC0RZ=n8Q5a>QKM1M;nF+Bf?A7-&qeZ9!C-;Fep67f5p%=D)A`GPEP3JMT04M8g&ew0e{W;c_`8|QYL7i zRfzVoet$TpQ6Wly2JD^$R-Hk)b0B2oQ^=1`KPtace!I-uY$!h-d|VEPeNT?_aqHok zAHJj63B{n%GjYr0YH-X$c0KI4 zPQ(W_XbGgrLNT0Rc}KeDdg%Ohav(?q5}eI6X$W2lDVnEBN+)Xk4m_vdC0!485563{X|oC?^Y6W#}u-FM?k{YO|ekTfw|a1mlu}S?{9xaqC!LQBqOxAI+-~ zWU!l0WDJU5D4Br`D_NFJRejf`Z3J|qQjDouYRV~Y9=wHv5O?XI0%20u5Kg+c3);35 zNA^pGVGM+_T&{FhDQkmKE$S!*b&j}pY^flLOmB=cbog4xTovF*cf4Z(WQ42BegG#Y zZ%#d&48pflK6Ew(8;PlPP`%cuE^XxVn|>yc0Jn9BLw`)Iq#gjHUOubG{T2a z2(Yj^Fj**#CKMMfYB*@DZ^Zz6ejdTi2|CZvOJvLzc}Tv;OulqId&E}16eva+2Kr-9 zCJTH4e^@YzPJ#t40%Y?FNj;rZiCSO z14ALAa{YWYK*cZORL|X75gRB87o?Q|ed+sz1=`IZPu?!8K$rM*BGgbcakKxO2R3zo zV?wwVCZIj1C0}0mOmx6ld$0SZBi~IX81A1CZEd9FHY(NTBK!hr5b)LoL5M#eND^BL25#9ClFR_eCQbX3WIV-31fa9dcbcnQ!O85QLhJ~J_k&5og8yJgYK$KGkd8eBM#AUsqe1S1@ku8k3nBG)mU^M|m>2 z8n=oAD&T*$MqM1W5)ohoCllyC5wZXuTa89UD?3C=K8q?dBkeO+Pw+4X2+QkaL5$Le z88bqocX+yWKtFZ;TezaM07Lm@b=y|H3HO#5cG4Ja1eW3v4I$WZLW>cp7`lGKH7T3{uyHUSua67zV!a6AW|+NdPcTVr4hVWXwa_ zHa{0-6$4tJBFj!gIBKbDLo7nbB3x@8QlT<6Fe5HOTzTSkD23fNAe(uz0k|ra9>ao) zWEUvVS*e-$E!E$9Pf(Yb-^uXL#y!S3`I*&Mvkm^ zJ8NA23LexA2BKl+Ju$FyDm|BWSdi8a^K%2?v&6aY*;62Sl+` zCQ(;ic5Un#CY(9IE9A#(cJ#gf2xip1ZL2XNax8DF6PcsIWD65qU*f_#OG$b3V7%n% zDR1k|Yn7I=T!4+}7Q;srdI-zRU9i7mVC@6%9&{0oQ;=+gI&O0Jf6hLa7Iay7CxRzF zdDyVu107P78JnEN2gAeeSu5}K6pUJy2buy5Pa!XhIOJVhI~AKgFIk%ZB?OOb3WlJu zZ~}pzFEDrxQS!XyL0X{mGS_hyBE-G^PQtqO4Jtmy2hPGJ4oeP26l?N*DujX>8+a(! zXa;QFQ*(qc6!O@|Hjf_Fdqn}8XDpgYe~^T=8fA2AQ)Fm8E0Y)IA>s$CM-rb9Ay|Qr z7XfvBZ4y&HZJ`k?JFjJ`I^n@B0jn38RHnfE6ssSdA<-zwT+n|5XFE8AG54{PV19(F02P{wU=KC2 z7Hmi0HLpqk4JFM!3}NLA8Z?IoZPDbCQw;0{A#}l4KLtZHcH1{BSrMcvGjw%XL}ifD zVl0FjRD`2*0hj1)Cs^}@3Vq1%8%^7Y6ID6Cc)VaMWWT~Ha6MOfQu02O3XeGxQ1%dc zU0YlX39ol2e{OI^YogC=cbZgZH7NDtR86v{N-FbZU4l}eTNi&zXnTzbTfsM+AuT%W z9sl%q1utWCIY>ekBvxe93X_BIceyuB1B)&JOet`tAd9D;Lc;gWXO6b?Js;lOST$&( zBhD2=YL*du4=I9n0T~m%AM1Wmbc^S=E6m+NECM#-S`H)5KXLp>4T6N|8saFca74AU zDGv`~5yKCb2qCh;4qV5PRY7T*KQ(3DW0pY7euleFbA{0rOow)(6ZJudZ)wJOA1c*V zJ|B4?aQke|c<$0Ta54msS-u1rM<{T3CyhObS~@-28_W4}03zWd87Kn!aSwyA0`#O3 zb<7Gn2_I<x81mg_5opL6MzZX0U-B(ES9*2q zQjjMuW`L{^M00hfDX9kxYZkXYA}&Rs7)OJ=Ko6h#P^@kIL*bZd5C)EKIIOA+NCfZs z2m)~|7K-8=Sar&|U9*^CZEUOcK4O;MLN~Dq5oU<7PNM$qIexk(H9C`dMvQFSIThDE zXpv;bNUuJUZNb9dWH2PJMihe@ZSSFl4vaR`9MLxj2^8&82(xJbNqHINCW)2NAsGfX zZ<>6+K+Pg#NGTX61)ya50fr@NHr*#i04ll_F;ugMHEq76d!J3`cXoef6JOYH4{0p( zXu3`M7N`L#c(F$2W+&rfJ-->xYIh4+ehYuWLy;XYd@H+1an!1aVNW8s8300aIzkU} zNNVBtK?w*uX=S2LDTS8kc^s-YSCbroXCs3AE8htKZ63b3DBzmfVWw8;28*n|Uw_We zPr5#?BEJmYJZnJ3I&gXjS&9NhHxsFPEMZ6GHUy+AU!`x8JJ&7ICxc7GFg*n)b+phq zS1NzhLG}s85~r3~PHPduU(3;OMHyuZIQiPR7cM7eCJnF$46PJCY2&HJBbWy1cLc}Os=ERS_o;MW%R<9 zS4w$v7w445Qa7loVgn7qYiO!INLcc5e9a416n9FUa@n~83|5rlB!0@WM>{6YA;Syr zF91AUZoz`GTuFxyO)@va8?)imTe-X&Ju-KvHcdvXWOh^Q8rUL*O`u!8C?-E}SZcNB z5iqKq20VSP8|)XhIN40IYWf_3CILM393hpidV5K2d1+#) zEyPfz6p9!yb}Y0rDx16OGo{|Rdf=AxK3saR6)V|(b(s7c4Q$WuCdz3VH3yab8)NE{Tw9|)Q0>Z|EQ!^@SHXft8@!hM zSPHIja)MUWE@h{`H+N7_6O#Xz2194Pf0-I{RBk&NN+l(1T>~0yZYo>!6@tnnFD(xY zSu_7AW`1cZD6NL4O&tlRSZs6GTI{1RJltTfehPHSVbCzaaOx$jar@CkUIyW5JM!BR zRVZ1daqAcM1*;6IG|vp$N5x7>Y5e%`51Nzt2q^q0brh_+Eq^(b(5vHUy5LFEpF*YjXA)g@62U6QZa3R;f zXeiEtXFpt|ZG`9oBFDokFRiC}bo66a8k!%&0f`RdOU~(L2gfXlAadX>QRC9JQ`3(~ z7(p2cB?j>G46%I55T(6F48VTe3z^PD3V5oPXY#1yKCqbw3wPwEXHkVjJJ6{#Y4LcY zQ@7xm8l^-KXOxTSMpeA25VBcZAE(Y8R`?od8U&&3NY1MkE%JVMWCOi;UG9w6Z)P5{ zUtE4J9ZNL8RcpjqQnzpFCCGG!9uW^CK-DR}S2ve$YERz-L*a504tk>+Va$)vX>OjD zY7QCkL9N9s2+)TYZ*YmVBWU~IKz0%>J_*l6esg|4SRJS+3G(uO01sW12TQ+PNex8B z5f?8FBZ4Om93bf6n4V*p;ES6~spB1%X0PP)y|c!C&4JVNwqf2CAN zNOme&078^kY)^FHF%|mdV<`IsZf5;xb+`gxTaoKA6g(=deAS9w2ys%jIPy)!Emjsv zeffn2CC4Y@YeZcaMoN4M0IR{XeaeuI4lf;AYyY?}QCliP6s9b99d}7RcldkC2bkSu zVE`>)IGhw)B*T7Af5tGy8IFwh8Ns#|UGNlGBuj;785>e09f*D`W?H+4FFa(3W1w*G zd;*|(5hAfxLk|r$U5#dgR1=qg07YAL6t}}=M9RZ*d4>wCFFP8VC^+0~c-oALB{+zg z9?IL1HT&=D2_WdpB`yVx7)=!k9_)ZxSS z6CPW6XXl|hcewC0 zR%q!f0@YB(2Q;ABZ(b4`BIo0N6=#GEZP}?@CJ+KU4J=ls4JbTvNg~e|N1{-BPr{Bl zbz-A|aR^&1PDifsVI;0ZZYBY3U1(5eF-1vvc>#{AZpj@cTopW#Q_^ltF^yxnG*A?? zKQ=?p4P8o9Ekf|oG_)QdKd`RrZa86SeAzLk;%0 z5O0vNWF~35fAwG$6QD>c01n(G7EV_C6S-niPkEY!6<_-;WF_kvQjZ*aM^i1sN&m4j zZx#`&4RG_zU`#qfIL18mFxjqfb4+(sXpF~uM^~|kHOSCxRLyW*KKuu}1N`Rten4(U zS!G@k9CbAHSV>J*9#4HhPTLDGI(pc*0WjEyKHKb$0LEbAT#eU&NhrDSE6{j>aq(6T zM5->pOTt_0V?l&`Au?YEUdNDIS5f>B1U09*5KRz?F$yj`53ShxLSe+IIT(%EJ(F_$ zWma95Co-@ID0Q2R*u!SF{oPJPb)IsBc)?QWlE?h7X=Y#GuG$cPEhV}O}yH#GFzf73oZ_Hd3+wI z3c!AV3*jmzY~Wl_MOrfjf4|rXHr+9$dP%YuRPnNu1_|_8NzpE~PobVx6r2#q7!!A@ z9+c8}K}v!{Y(ww(J5Ja+8yWn`1pM+SZ~KkheG3b~A30IbQcMwPQN11pCtqF5HZ&Aj zFF}fHRK=C~Bcx3xRdw}XS9EF#LaeEwP50)jR+uAjS8-#}U~*e}e@Cy=3VM3%1I4S^ zYy3MtP1k^cEuKD-7cC5IF7x}{G~=trUHQ9MVR7;uV8{)$ zeO77gc|^CEV>Bs#4fUzSU6jy}A$C=5Qxm>6Zlg>gF*U($S`EzhEdk!+1J0wRJVO{| zXoz6-Hc8Y~DEDAJKPF*$FKd%5P%)EK25#&iZB~B~RJQdt2m0}-LSv8$c$$w9VWUkL zdfj58TjFjTPcKs_Uzjxa1u%yP1u4}R6ByQlL}*iUDAIJEHZ_ZZ8t!qN2jIcaP)5^Y zAQKt6FT{%0Cp+ZqQAbl35z1~_Xk3L`2?aCg4hmqqIa?%+V$lFTPQFnoY0^`)e$Z0{ zbjTTvIdgEhboS(75W*J!K}3QvJdksrE7c=Ke_&I>Z_hrFQ`Km%LtW$YdUR3lVyh)_ z9&B5w014n;YY%~lJG)9_S9PVDLLwfQQx)0CdX^PBWz!?20{Lel1!FlMXaGV<4bpF_ zSn#Xm7f*X|75ztZc4<335`5`mKz^*=4WItxR+9WrF>Q1JcN}kIT%W(F*zO<5ioRqbb2Y0Q$v9cX$cN{5_?%$D1cBA z9>0E%64v?x6VlQNCE03td4(UwSI>Rq<)QaQ1y;2_TfuSF3@DIn#duSND4=Z~*BPj zS*?R$03HqfFr9`vaOUBBU@Q-iMy%0l90?cgaLFB=TV~WJZ&mdrg6#9oO^JEHX3pJl}FOEvOQ>cDsxpb(HBmOJcVq zVIK+nM)-ZaK8TqPMbT>keQ=31F%#xFTMXR7PSjVA4y1IERu9Ow1W_UxOo)$kW00pL zcm?moe?W(VJ1d%3A`J)7SKirKW`SX!3u(sabtj1XN7$MrV>1w_0EgixN6NtDEKiQG z2!gbaelw4M6hf#x1du@TOy2~iM#JaECA019NqS}O9d1Nu7{b2QQa424H{J;6CP9nN za{kb2I&S9hY5a;N1L;XUWosvFdH6gWd=2}JCycT`5p;bX8=U{hD>qhoT7F9eT?4!H zeOb=^BV&`4G_e&FPN>SU5@++Jb=2x+I)4rfdH|{J8*uQHK6i($0bOWgQ>1Zg0iR2! zZ@ed76X-e4U0wE@2uafpf8CqtTdBS11!rFaU^GaNe&(B}9`(BL1L0diNR@PI9ZkHJ zLZ^B~A<4kWQ{^^0A(fvsZ9Z=0JnJEaQvj>p2zH8^Gv!^AnP9)WaG#Ob$U3fF7y9dGtE|yDAT?=U+nrG8Xv~5 z95~@c8rTScZ#~`aG*oljHl|%)V7_Y6Rqx3wTijdxPYRh4T=_v)YhxFb9iVdw6i?*F zPz*yk8dy2bd10c`3%v!Kdgt6d8iTOsS|Ed%F^wA|&4f77daZ7=|la zdrs+SBErf=KA-62ajXb88Cp1`l6IqOmb5lqEJ#_Xk zSfbE9ee@Z0dC_;58#=MaVd;1{3xwXuBW}n%dY!ghKJ@4jFrTq+AvvNgaFG9SZKGYx zeh^s;3OsHSBd9FyIke!BLjaP42z5RpOZ5M~LbKqy1IKGKOONCwbgQ*7cHg?$bo7HA zYBo6uZYo`?JuFQ5Kr!CIALK22a-}n(Dh?y&B@nXt2#~-UD=2p5ZG#iIVsS-gcdm7i zC>$7cRnQ?xB!;QQZ0gCHAV!$aSvP378n4l3C7l}CGJMUJMWi~McA~btIAM2m608KvJAKvpC22i2}bH(fi*5zn-$ z3n~e#An=I}0sPbHgaNe4#o~FmSKwNw+NIU1(~43Bgx1QCdGXJ!rlq9}oW! zFm6C@I;q&PDUrL!0;aprS+3tGUdpk+d6Is1QkIuVA^vndOpH8kEm*rjXiBHoIWRF$ zeXsCvdVAwGe3A*qa$6Ae0Np(V8%&INFmeC09I6fGPS?7=Br*AO7AD@SAL>!)G-N-4 zRGH}%B3X%o1u-?rJ|h@FrM78kw8+~C(TSQs_HtQDrV{fThVu}RSMW1DyW97gfQN?fJD2HE! zP3rxHGIVH~IenYQ9?<2EIcZpOT!&3O1s}z#S8-K&W~F;~DznWuKEZeVO;%soOT1^^ zQ$rNUe#?#QIt>g0S#3@pZmRH@df~)oc!iFwWeEX)K0WgHSX3#?doNcMb*p6N8`7x} zVqoI$I7SxZRJ_7BRx~q> z91=&FTU}B`U(F{&3|j)X9foc%F!sW^cq-TnGTA%{7b9;MKxNVY76qYmeoxDr5$Wbv zX0>In1!;E06we6gCVkNgC)K;MZg3Bj6w6+WG#}ukS4Ot#V(yyOE5|bvN1$RnS~#-C z3q}jQa*j$w8Hnj!0dT_lG%cJOFJ!WLIh{(wYGu*VYm!bV5Ta_kD2|CRa9AK%7}tJr zAuFmqSu}FtOSN9KG@=R1TKM7|1;N*XYlgD(WhvWzcaEDVVeKz~Qv=n>X5>XFY)sJE zG-N|N61n1DVI;)jc{zHp>?j zQF{p6BWMWkbjueMQD_M7boaz8ZH^n`4RTg}C+u`eUT8+|NnfdkU82HcP6_#3YLZ$M zPym#iGXRvFGYx_Kdgm?-Map|EXSh4OTwke%U0|~tOX>E-NFkL8KR=d8 zR4jdUb16573UZ$EKyW#wMA7XuNOLG_9r8&`73Jf47de&9e#Ia)K9BRwbz^$wU-x&% zHQ;^m1#FiqEc>*(PtGNN1cF1vbzGv`JBrwc7Hp2TH4_~e03TcxLJ57FQhU6y3$c%E zdB;SgQj^!DCTDw_4=Ta~7LtD2R0VADdN|^|0(*~) zbuMi2FNHg0E1^qRQ}GSSOw}*?bfno=A++ngK~sk%dKN`6b+f;IF5={05NnL7Qg*8y z1^_I2U7%LSYT7c0EQBOmY?hl`8+6%QA{{3$81*5J8fM#aI+nOh3&F$pHBdK_5_6j0 zSWcqdL2&gQ9y;{M3w(^>eP1upO(t8mK;YTd8)acbic(;Vf~=+6K5?I zZi!`$C>_sdGxlflGEnYCbH52sI7ESy8mW(H-NnW2y@7CGmzUS z1CXa(KTjrQ3-j}lZ+_EsdO@j^M4}UFMS7=yEuoCGEO4rUH+cmBRy=^V8!br-3TmXvGTU5E%P$ja=cxKejG`MQX3*eby9)a}_U#Q)FXDdJv z0GQfzIB%RCas1QYkR6DB8!jL0Hj3(3@(~BGAYX%bA?%GPS?t* z5Hd057mN66U-5W;JA+BA4E35uWYrKO74|3dN4GQcY0eE#QLBLLJWs5II*0ipIlj4o z6*|$Tbi^}nE&GmBc;`ttTQ8pCJ0RAGbQb{_3sMG>LpA~re4ZzreC9^LK6zD?3px&0 zWJQU*F0&GgI{m2>cSiSuBs<(vARbDsZW?PoY>-Wy3WA<^8(|KmKGZ^13W^C1GUkF2 zE7wfrN$o=PZxGP)NfTCK4r%=gLCa093?T}$U1T8)EfG)Me|&^&Ji0y#5~@H`LLQJm zb-U6#6bUT5dEm~GTI%%UccusYVdKDI1tco48)%I55nGzfa_iP#5_Evg52w`GMo|A0 zFM6qJ9^OilS^Ip1V|f4QJ5cB+GxCY9aaPIQ8AtcM5uFfGe-icKf34LFXy)6BBA9L0x$cw2lK)lA2uyFNWu)DZb)M1bK=_^50)~QPisKr%IKosv6bStWtE@YF8C4ilS((_UZFSJlFNS zIB(9&bKU2h`?~J$_w(iQw#)Fm8^s=#i^&WvgD?3#B=3JHcWO7XWca)`75no3eeEw^ zJ`O#Nqu}xkl-90GxQ84xSyCRCW_P0GDc2hXab}2T2xeq!auo2ZwP^iEoZocliuLy+ zQ7Fvu;C2nqr3X(^Nldc@Hw^2kl4@dac;-r#@6?NV=+5MvnE4qVs&SF;lgxVpK)_xH zzWiA+oBk%{!ua4CP-xi~FtfjGF2=s8s;HtUB4L;7(&yu5ty^{EKGd))pii1+ zya_2b__=PBXzqVs=lxHRBaLGVH&J^*kQTf|IzPn7#;}a()^s*2bHiY~Y^_|Z&@x$^ zq=W}VY74 z?0+*1MC`iwFF}wFEAY41!RPJ7JgR3Zv4Pciw&^QW4WbOQ618Kip~;8MfA^la;Wrl2 zqmUD!P8)=+E=Nak&%IXRCobX-hD2kgohMXUq_j~lYS}bONdRtE?%V!IA$191i5YLY z2F{3#?{VJ!>OAo_oeeUqWmC$OTmE8@;iu9}Ut2NvfjvucWxp*lPiao zW_+B8{~AU)B#gyBupp#z!x%Di2dMpM$IvX4BHD2FaUoIsmW!0s$uLv-Mv{c`qU4|lX}u4?0ugTep_8i<^r02 zjuGD62LL7?Nftl;34MoO>cdgVGto*CN=sB9_1`S3z*`EU!pUC)kJ z-XwAPyfA=`AiA~cm?W4O5gM?TL|_8W51_@UaUwO=!B0OY+7ngd6-=EjA;9eSHi$b8 zUMLo*^W4Afzbjr~g_|PuOIMWPN=49qaT(?5Qxo&Q=im6N&tKbq=9Chkzt$}+ z;ER$~)*4A{Bb!I*P~bgegxSy{hD>f0&!5248hjaoya~Q{uRoE4W~O1jcsUF7Wj7h< zsVMp1ihd#c;FGs%;eUrD#MW6X`B)ksfbQq$6>i~xGJs}7xjk! zb@{;io;F5_x!B^_8WUBe)weBs-wgPtRH6++d0uN7GTt#@Xq)GYeDYaqSI3Tz8}eSQ zdWs>GVT{WdHg#f}YSd76>Trr!wdb%|Vg|tb+hQr@)-w`t4w+`ff&>1_oKe_Bg=)%H z1d%y-Lx6*^lOQ}g%4?xJxbD~=?jva1PaD*pP^`ETr513cCxGx>Zv~irz=vA%y#y(~ z31WXdN8`lB)QU47y33LEeb?iCSXvxM`c?48;iJUBerlHF4t~nLqGs~hS65{cp3kmbsLQ$9;24(l)Lq3Vl-fTB zsOA)pYeI#i@u3Kf413kGRLNCWs>ZJ|e8T&OyszO8cru z%*g*|rrsMnJJ!yZrPh6oyWF>DrZvxCVaTvwUljPim1?+t>9UJ|fOQk?JrfHu9aDec ztK^;?B_uG1p$Ir$WR;tX6>(2Em7^zlrrUoj)s`)Og$`r6;&cR+KPIJcHZWyRTQTgS z?yKm&|HDv005dd9U)L0B-eo^1{{eQ4pryVyd!h>3qK=@V81Ol~F2~T8y#tZ#abe{1 zq=KbeEXgT!_@i?H8&QYzlVMNEA2^1jjc{9;mV!@N|BW5gPrN^1zEZ7Nu1Q`?{|-*C z$#KRr#z>D?3s5TCkt4dNDlPE4;cl|qKBiT*5iTQW5xa0hNnz#Z>jEY*)Ue}NLrKX7 z8Ow&$J&EY0Uwo$Hm6Qyb8zKfi2)?wOE}w8sE56Kk5#)~1*sBJVg3%d3A9dq5-fkF6h-JiKMa`DKb% z2>pFtYfcLubXV3dvX$vSovYmx+TQI+(-}WQK1Af1|5al?X>&Q(@@21gR8LEv+}%5o z2{Yqo++^VzY7>TbBrTZTvUe7oXq+Pv{;+>l@vYb3j@EeDE z!>DazimBfUk~{S}QcveeZpnLKoN|wvC;OXnhO=2M<~PBYCcy@iey9ECoS1<$UClp2 z@I*&ni}rdD!=n7SR+EV=Tb1||XA^c#Mg4+mDz2|D*jitsIWm1vbjv>r^+}!sL^`0p zM|dfF$Qp}Lf=m<9=I7N9BpuIklJCM3#im$C_kus;j2ngzBhSU|^B4HopeY2Yc&rNf z*(tlFlc&1x0#Zk(c&mdo+=RY7k90eCF?~30Y=RRy)kwSh-uLj%QS>#YudplG8=?G9 zkumBci)@7{s9=O-xhw{pVKXVitSZYa>f=qQ=5B1)^XFBzTMLI@~foN26W*QXa&CId$NxNk>L|>o~ zA^C#`gel{3pq|@cHTssiq**@S#JQDkh_fAXiBBBlj{%k0^6xd=r5!(@2f8z}%Ld4~ zL{VEP8B~3}V-}|=qO*G|mhQ$>erOXnUZY9pjj)5`WzuqM6>UFXo$8iGv@k;5pG`rL zLo4N5YT~P{Df)>YRTjM>1JLgRPQFlbvh9A)h=Jqho37(3PyEjD0IQ8}y$NpzKhkx= zSfRvT`=|}5N;K2Wj1Vr`SSggBLEvb_7wyRl94$Vhl<)rQIEOL%Y^=#t8R_vI21O3# zyFm`yd#*JAF!C16QWyFF=ooIEDb_Hr>Pec4H+_*uO;c#5L%Ry*Hl5Wha$;H}g`{%F zW1k+-L|jq1M6IO0ib?DJZESlZoND}xNBA?{kp@zz$@Et!z184Zi=|m#T&VeX2T6e} zAfw;`2kpxe0o&F>Q!C90BOQ}MjE!wiBR2$cn1YgiCR=s@-O2^O zFx^r5CNRhT4p4ME3v=-h<^15vpR#gF@5SS&ynb0`f;cy1B{rz1U!dLP_^pwS?tAFi?Tb}?j1MgN24iM?sIy8c2gqn*SG!{$FhivC}u;gx*X$|U}yihPBdn^pG3!Ku=n=lI+FFm&Te@&WHNP;vdxM>NRR^^2LJ{xx zfJ%j{j5hA4$fu~1j4~bB1AYX2T})w%RS~50!jKAWR|; z*rlxfM=bFFQ_t}KsjtJ^7X{kT57>0Ps-!KJbLPzaQBL}}_aGP}|3-~3qb@clyw3wk zyCeh+tq5X23$P8s16-dB*J5QCD2XpOxmeC8(={*WJp_YtB8^3}|FX}O=tU=2I0ag# zz2y|;tbs3F7l{6y`w~zsq-s{B6(j`8SCvI1+=7q`kth!SUVXM8PwKg&iXg*wf+5_$ zg~>u|pDHyGP8EW?24;Xhaz&f0vmoJS!e{E0ilkhuX+ZuRx?sSZrci(|Ad9^kvi75$ zd>ZCWz2Hw{j=ub717v)_RP6i%=iwYm)%dJSVDUqv@HswA(eqO^+eJnSsvbBGQC!|P zs-1fsCz)()0w;eD#oWeiH{9 zTud;|%fV&};&T^^DvQeTnV^_-utVZ)Zzp*RK7wwt_40biYP+7xDhwewE96QZ3B?^-Zd(MMLL`K|lA9hfIdx4l*>m6@%oI%Woc^0WkWgU4@+GOc+ z^hZ5M+&iST^)lDI1*P+DtBK>r{ogF}d?L|eFC~G`(~Nm%4+A42v)q0E(XtGcq3v$k zrN7*Ig6TmEnV%%y-RyQgMI3p2;cN+$Evxhwoj>L)d1=i4Sho+cbGv~RxYzCMAR`Nl zJT8&Lo@zvJEL%#-sX%bT3wbU>pO2lcKiCQw4+cSgbVy1VQ;gXizZ2!wY~cbw$RE|F zKzFl6umGS62s`Y%_z4v&0*O)Z?-SnMs;7=hQE#Dep_wpJmoPZ&8bUXH zQpn?89zJ&)S82|fk9v>1s8P~O|)f7i<-nQ0oIz4ypqkISp@@L z$?hbG$Qe@2W944<^lI{+WER_C(ftIe;Y~OY7us89~;K$Wuah+?U9H)>k z8b|M*(Pa%tn@tAbj1SK#cqh-I^vK6Q4ay5d#P^3zVs#IMk<_2o{%N>PP>Y5yOy6cX zQ()h5`_3iF@=Z#pNI~i}c!G5Gji3suAu{Kd;pEM=q_=K!8i-UW-AqUAe=^TAe~&Fz zVuj4-i1cqVE|$6DJV$=1pnE?tSix#{UlrjU7veuwD+*x z5mYh9PwJ9W-_Yeq=HXld19JBj?r;BRAi-OT`gZk!U(=ylYK@CR!Ev~NtAFDamg0vY z4Jwz5WKJh(1_p*gqwgk$sVFycAH?U680eV=ZZ{RNJe;-JF9wB?Dp%XaEwsPr(B z3)}PsYH{}wF7O}K!Vmc#aqm*!HbTyo&bm6$o;0uNG5gOyTrRWDthCK)JNVa1e3@aw zQq$KJ>6rQ^O1$bnlH&bRxw4UCW}TL7!CNW@f{BY$ILYn;s_N`Hk70kb#ZH1&V5)aN z)xnmr_kFe-TnFod@>IFz!P~qMtb+Ac%J(ci2&aGO zslB5?66C{3N@E*2rUXzL)4bSE1ekqEZop~K`S~Fex1ymRi_N56)XU;ucptY#x`Hf= zFd$1wm_E`Am_M-;3*$=?ocO@2t*UT~EkcEY)k6A<9Ha9H?wvJ-OzOO<2PFjs#sBGA z?BN03nu3QF;aPEV`J)I4pHX80?`QD@VwY64pL&k28oc?`dCEThLF_$mkw z(tyKtX)QYERV3RMpR@AP95D>>ggO^irCaPPhe^}$i|{d~O=7=4rww-Tm*Y2XQOAWx z&-#u>m)aLT9)U;-d^d}G?g04})*xf8JH`W@2#)w?GL1$B$$A)>T$=SvHCxRNV9{-5x2R??JogCZ^?r5Z8pP`&8ELC3Gt4CnVBgGN}wZYIl zbPc%vRScZYKaQ;NR!w5Kv75{X-iC#CsEI*x7?Z34S7A%PJV{_?M`n%64K@G2QvAr! z)(CFt47&l&N%`wk>2$#2OwxN~xB{P*IqTffT{R2yBU|<#Gto?N9lCdHC;CP@53O>g zb!1gIOlkA~L4E69YznTlL-};x)haw?X=N^I>$Y1tMXLm zN5(^~kRMyMPRh;nr1P}|)6kq&;I^|Zh+DtSJ4g`ghSuUhn$|r4fgz<-(ZTKl*Zz~S zv_sqxaEZWcON&X6T;M$eIrKjV;DD}q8NsCFjHA}`k zG8L%$%x1(w+m&87UBQ}m57kPtqZd)Hq7Vya+4A)L)x%B4@(m%&bGsF{$2UosJL2=M zjcf?|Wt1gAe==&h$Z+sRo+A#KBGq7bng^fP>qh+^L$``jhUFJWD=Du#6obNYi zQIC^w3#1FvcPXjvGnH&Xt&4S{L#l_^HtVN$WS<&sbpr@nu=pROQ;)gbRNFc^->g^P zHo!B;?>2<}EkeM^*&!)R7u+o^<~pPP-*AKXE4C%k3yuxxcgroNPM2jWSEoO%S2co# z3~Fwumc3APd^nX1iNzt_i_xFj*8j1-`Oova7JF2KQThk4}m)YW42n@6cCpN z>_-9rLa_rpZwuhxT$*5XeTX2eUg^S&{j1>leSStL-XPibaksk&>FG@1N?AW!XU{m& zUEy=W>h3jwXLns#!^J!zkhNRpI-<&xPMY5ACh(cxXwaPiPu?c()3iMLqCxw>Natwg zZjWfS=FJ|Z!p9kqqRYDs>y*r%4<>rFnl_<8m8+Wo#qA`)s~Z7C5VTi1zoRTlGbYwj z>>M1p5RnjadRfmTw~N7BrYb04AOF%USMcEL2t23OZ0e4C5ZXftY)gfNjT_rDynHV( zAV5zWwT=zJnZ@gxz2Emry!zo6q~1rLeOSavsC*^^psAtvb+&5KmKyb8q(5k zCOYfKU|SV`taOCx3WPIE8SW zUHB&bZ?7EJw9Z>Xby6gL`{;^!J0|Y1kVb=Odt%ka}x+c4+0W-&8_d0un`5Tk5 z(xI@HZ%f)r_p?H<*RLh`8pk-Evm3%lL%&ErqTm8TspXtqCr$1=-ho=%g}RRXpPz=q zT7$Sc#06y2j7=RODi%~xkS5{aW(XtQ7hMRi{$ltuFU@O1{~Px*FjJ*Sq;;#`6i`Ed$24yzTLUQLDI#h<%YyZ4$TO5`&B zJ)BcvtKA7xZlk6C)N>srgc2fqx=!-reos=_|Kca$Pm+N(H$HL%kBFj#UgQZzXG4vk zZMS7mnj%17$EuJ;(>R%7e|<3}35A$9pm~wMzKL!eW1J#l%L3tEpJI*7dmd;@>wfVF z8$Y6+_LUB#xks(-ez+B=mpc|YQ7wti2>;IVVaX6(T;?4C zHhMwps)6x&#FYhm9$8_7lUgyTGrQ0H8P_Ki0{BXu*ry=8eWXoD-t5*ZO0fqaM3SyD*r5NEq{U~iI+T*7;-qJ;M&=LftjPu$2&5We6=#z=A(&#d} zeMJw;HTwkmZmY#+{48F3GXvuW9E5Q;|J6k)ZRN;ZU!9WM(DPDbshVQi%va))1VtdH zKRy(>TL)2V*C?{)V`kTolr$HkTN*So^N?i^(Wec1{z41t{-O{W6<)^}ReZ@^wX1YU{Vzn+9XS6F~#c5&INI4LIz z*cCD*c3`9P%w)0IwC}twcl9(LPam=FLke}|AEv7yCaU6`0G2vtO|`&sMQ*pAb4z3+ z={+Cg;1yTbzKu_f7j4{gFMdo}%0uU|&^EiXk^>Wfl8wvSMQwz@u=&4hCr0(GsFOCY zNrRwWI>nX2x9`muu0=Px2ysyZulx%UV(c9buc1c`Al# zA6b*vy1eQ?n_F2a`2iQ3hn#fCc3N&Unske1N2Io*tVC~u0RpZpbmEg(-75LMd` zvq>qr5LFzbFlqgnO&1VT2-p2&f zMxXxa6Ke9PGSOv%MXwMjWlbM!Ate+_4Jr$fvfli-V!!9cYh0V7Vez6UQ*+rqC^YtL z)B8y$rAmX!DtKjT-Q#o>Mld!hX8Po77}5S|EBGPyb*$g@=R%Bzi6+MJPZA#WNim_+ zZBWvFc0mcnzYPd90fJ`Fm^E(cb%!EEaC!pcOxmc@0l_Nh9^PggA~J` z{&JI)^TmE~#9@;3O++u3@=LlYyj1V+VqmXhKKq6?#AnVzi){2_4Qpk z!801pen0tnn3X+dKFp%b#b4>Oo^WVsy_JhQHhkUP%cl!#U zG}#_L6CNLVlw4n!Brw)~2m4z}CA2z6587z^R37vVYImJx8@-(>9%KHZ7lw{PvF;6JnHBA0(}69--z9GM$Bw@R!8i4sBo0= zoiN(DbgdrI)gaeZ6}v5$OQXvxdztmDykLKUCWS$4t965Dsw5+8Ju2&~9!EG|xIf3~ z8^1uc2&Q8DT!dvFoObol$5(g|O9f-ecECnf1V5XZ^yi29gvx!c?C@r8&;ep19<~i>lzS_uk?Y6sDF|2<}Bjt?+ls6z_ zl;G=ynpJxZRt-{p@#|vwY9Nr3nu^3K#nit!fdqCZjNB;67c9A=%TRJZxK4@-wWUE7 zem0zi3W{h}9}X^ZE9M$gJiuC-Pk#Q(1V+_Jobzyp>|{66>pW!&4LO}rg|gm{7bIrW z5l(`bn&1dT4S5ZwXmqAiE}<%Y>#&FGp2uId(mW~g^|rvI0)|nes!%t@o0RO5{Ufhc zTsY-JRx|yqp80~bJgfKFd2{`J+Pa>^KP+3b;XSnq865~yi?QjJtLgEK*pJ+{@5;Q# zBhuJNE-_qZ8vj)p=LZgqZ8Ut1(FdDqOquE%Q(-2B@rB9BO4l`2WzmdOfO`OdmUumR zoGHb?hU?U^CC-xN4D;Jgm+rH|v$#Ps-BV-vL1(LkN{lHabClzEl6Cq};I<+Ehkr6Gft9-#Ofdhv%`@10d z%hW(;`6ec=dAI%B!6C5iEQ06n=YRBA!Z6Mjr_4-`SEy-6KE7g2a=4*bL?(-ejel1q z$ayPHtHlw$ICZ?jGl$j3U%L8=jKB1YAOD1MO+X5$uyXi}^cm~+F-b-5+|)@jAs$+M zm!J0Hll~MUn{7%z^qbKf42%xVsOOf{sn8TF7VWm3@6e!6FXhsF*F5h&Wd2j&EyoF$ z!#SJs)58OfZK?KP*BS~MtET|4&ljM^(%^{;jy+46RHvtSccS0O2Hd4}@k2?>?3XK* zNJNUvHRv<0y>SaPu6j!QB5K@!Gt*j#Ol4@})?lI>QZ1l?ObYSPL639&g6Ju3N0dey zJ$Z^Mthk2E+~G)0VK*1)x=Qe8i@9y{qM(=S1$`P&`&Ovnumc4qzls;a=%&l{>`l0B zTb(-o`6_|U;O)cEL8KhIU`a=ZdFY5?w2MyCQXK2bsGI4*@MoL=D00>IBwnaAQz@A& zaNUp|pX4=?#-ajD>aWM>$6OCfbnG+gI}x(^Zv9k_O!-t&A|2@US8@$JR?=j?n!IH4 zLwOQWb(lv#m3-Id=j>}JsGQ&Smm5H==073H`@r|Awh8R6oet6*O}YyKMR62JQpqh~ zQ+*5Wew`hO|7kUnm&?OG_{h;81WQ04+!>;fSQV0b%zsUt&G~DXY|U$|V$4(HK7PneVAo zXip@-^LZVJje#57>Zkws+2W|s%334HG36PP#64#vz|pevJ!+_;Krvf%S`J!6v|Cr=%LEe}V>p&DR3b)vF_W6`$p@A&HTVp7gF{@L zPhC;v9j~vhtfP{L1WCcmd9YYH=g>x?PJ1#o+^|1Dr%wq;7;Tf|=iV_4A1xG`C>3Yo z-B%R|Fk1;5U|5PN`CXxQRMQssM)5miytIV(BjFcxO&$pKXTPMxjQLKKiS2q8_m*!* z?Q>L6=eV+}i`9HjfR;>zPCI__P=9Y0QTccPjIg5TB}K-@m(YeIv%cCIh6g*v^SS$k z`f}M|2oS}@H;u#G*N;gOXUAj6Z)acGIXb)p&AKP)z{>sLj;GuR>1#x3-!4uinO0ld z#)4gz2dk|DaamMG9Ji@Vi(#l_T}l{STQJ?S@%fk=*P&a;f{2HY`HB|-HL5|h)T+So zRHo8=yNBbpmgF*y$D*y0+2mAZCYfpFX~a!Q4v+tF#=YdQf#NKmhz?1e+QFvO1aWz* zw<8EqAc|i~DW3AC>YoUZQ7Tr<3xXY1lh-bs6t)`cob>fb3!vtB$g1;@W|#uQETJ1j z!Q#dKiH9XTlh$R*DZ%F~8_9M;rAOCcr!Hei$t+_#(=WQ-qRGbnmd`ck^O1gkih!q{ zete*d;%z){xscFo_oYaBXHlSCNP@9eT|gpce4NcMO_cHO(XKebzt~DY{uD}G+z~ml zc1Pmo4wO-Mtx0KwST<+`wy<{E-9L97$?S z%SO%&P)lEX$8KuT74McfqHkvG+HYAd6=1$PvFU}?JNJJ6fuEoF$CUn)S!-C^4?j;Y ztz>ie4 zwQVMdqn$C60hW$NW*=k^d!}M(ZJnHw7;l-fvX?sD9y63ERWlTJlzQk)BOmI?>CP4Q z&Lc-AfUn*3^ZPx64?4PjVoL|=_#7$%N%jCsF_;RSIMTDq={*!w{^c&m>S64g7~P}x z^&^8pKYyx*vS=>38?c>9UJyZHU*+z?vX(9WC2`7{4E28M-+`|BUZR+PTJ(( zSMIrIMjy`eLeN`Df07F_A0_@ssXTfmhG=TY%Z_M0*(QZxgLyoHL*zrwM!DW7BFu$d zDI8YqFlSo;lyw&Xdvafn+;m;v+vEXlZq@eD+YI-zsKfr=3=p526-0hs}*|r zXjtjjbJU)Hl{4$m&(aNgn~ywbtcDRNiU7sTIQ9t0TU%DRrHSI$86J`gQhnKZE*K;u zY2u;;kdY42qh@_v6rNNk>ixg_qMbtuxso)BLVxay<5`g+leU2*e>mJV zMg65<30Y~IpiYLqcoZ&U7Mhd1xg zStsx&_ze%^ppXzfWZJRW$*7h^EK%A}dpRQF)ft#IYv2WBc5yZ)PC7#~cw_?ioAtTI z!ln`6Og8Eh^h1q@-ibygyJkV`B7IrgK%+xa(uFD3EhL+>2v6|98T zqkv8lNS-Zc{vo;<>VR0 z&sVNHG(Blivsj^1eOv|qxUWreVncc=V6=>AorJ=U4o7@1-)lggyZvDN@2Qsp<;_=e zDlc#WAecGFJr;UAokqXhfA+P`L?EwMY`7`E+u&V-daIKC+s-X>wuov*c|0%KPDVx` zY135U#h$#7kBOkp=uW0gakHk3c_zlW*$iiY2PKIIW~(bJYWis|YU^q@_ST_VHq@-S zc7WQrb`zyB-(98$2yLmiodMJ{Pn&er#wQ@QK)khHn&1VPc&?U~)|-S34j?GhkWgVff4~M<}d_OT_~J z)A~3gQkZ%y(X(UqgG-OF2XFGdSBCN)l`&7UAxYs~JjoEFOQ#Icc_)bTe>!)Ap;p(y z-ypey@#fz|k@zrFF-FwE)*CVNDfDZ{S3~@LQ9r^RCVz`EMxFUR0M&tZyAS0SFevSf zp1kNeT+T9j-gH#XB+i+OUgi<=x}M9Vimio48cb#cE$~LS*R5D?l)t3M)1=TbOb0r~ z!$+{J2=huiXPLR7%w6B$807oskB5yyL=26$6SK|m>!|4m>EIQ?8&Y{LNQym1Dt9e$286Hqlg-q+Bv zUhTmaD#~3u-s2`{LSwUd5#O9+YW)1PgFIK~OfANW4l|Y+WxbYV=BKi4Dx!4u$`co26fundqNAIm6$xZKq;qTg$>2o%$dxmwY#}`J9^P~yj6Xu{R= z0=U3#y4t&*Cl0OXZxYTl zHpT%SZw28`(jB`%5+G;w>oQR&F$ES&TStZGlypLesg}#qPr;)ms{xqrT7q_=x7g%B zXeN_e!Cu>sb`;QYm+G*8`QLDvPB8862;4rrRmd}J)=6b!E_mX`Fbm_T56kNpd(h;& zmyQGe3vMLVWkaGsInAH`0V~J!5N6k|Z*q2WcU4v|`zh&+4kZqucr(Nmi1YVZbyvV9O8V@gJK?3#s0$7js zBP0C@f_}Kao?a~J3|eiU!BpY}2$x3gGb02gEq?t64FE2b6F-%y+Tr(6GGrIwaNL7c zp?zDp%g32qkL2%fgDz~YGwnWEL$m)5ic%TYlytRC(|83sBlzsIN%*~)^@7>is}vwj<3;@rcS=F*)g z$x1;?6UF4oNqv=MVElxZCsf^;M!N}#t5Sdb>LOa@1!8@Crdyic@At`*N#NGt3`xO* z!)$*hnzEUxk0g#-pya%gdsoOkk1M^#rM8QA;m-(AixN;m1XYE#JH@0F zCfFQq0REI-C@|@5`N^ets5{`<PWnW&ncC~%m&1h;KOXIX8z%qJVt9J=wI#@i5#&9w9P?zuiJUx#!z%g zt+%iIuUZ-ZQIl_(wF|pir>qKEsIRe^js~(aCax93i<1|?H3oe4A$QeOzy>7(B=C}e z|FW9RV&N+TgYpflKlh1hd;tbZCb9BZik%j|iMQ(lJ_>9+I;jsh%o-0JPJI`BAP?nP zEQMmtRJA0@c>CL~v%PCh=JRRn-6=-c7n|j--^8rVo-OwYYGyJgrEeaAa(F~I-o5D% zgHe&pV<_jO-#qXL`uG*c8&>gvh9~-c;)%Jn>0+25jgF!jH$!Iv&yGVJqd=t=i<0$g zb0BjP26Jb}!$<~4=$d&OvNbCkj;h~F(7@M#d7U$TPxO8V;GB9Xx9w$Te$(Ax&Eg$(N7OyK_isov<+EsM5z=L?cEIH$^-Q!l(7qS38UJi*pl&`J!D=ZFJsj!_dCJz-kA%XZVb0a6dKwu{ zqwLulL*5_OQV68Y*Q~DUw78aMGYX?}SL~itH3*~o5dpSAZf!K-Z zY*=+6KXBb<3)Luvnn{;9$`CCpnHW;2-IP>SQiumA3;rP`)6j>2=jPo8KNSmj=Vb@s zE%L@OasoG1WZ`j_g#^UA4yidFPoqC6dx@9FuQd{LJQeEhqy#*#y%zZ4xEY`6=F4Lg zVgOD1=4t;Mwh!Ms)e1WY-TC0iN{{X^*PY@g%z0_MTH}xRD-$$QRjR!g{O6emRBwjD5 z-kLkPbUhN_nh;**M}W6fL=#?3eD`~pj|(tAZqaLf308S|*5N4o&q_lJLqRVd7DX7v z@c$FTaKz5N&=WAY7aSmPjR}vrZW&K>sSE9gdMPQbe$-oAi*&NK`b-vIol}JEC0TX( zuHfeC(&c;ew6NQGMOM!QQ?%NC2RUy>+WD{>N}5`K(u=vK+7j?{B+r2_#4GvQNe!1o zW`o=`Kcf@0v?M;{bXMk3Lb%Aan7;wvI=-k|vHqo+d!a)|$K~n$h`mV^W2Ae@Qf5<@U=z6XoyhdX{T|vuu(MkjUcqt<5XlBg=8IGWv)A3Os zILMLzNr)hC!)?UQf4CY&VT<&dt92tb?`#PdJ`e+US`2z8oN@$>IHSU`o4gwOV-(h= z97!%(@IPFPbkj61H5d4l191^79`iVDjYMnx7<-4g`{j->lMnF$4QJ4|<+p7@7MC?8 zPkF*Fn707ZnBw5q!+nNZEcdLsPR}IY@-)PUZl@uay+;U=PM-DycC}Ks@;mtWr&bxq zmWVvV07I74z$eg(kGg#B3e;{WgH8R%@O{Q8=UB#9!YhEVi7M_zItrTh{!xD$v3Nnh zF=iE&o&e6ZCOpbs$H3#I`5%9E+Y|m{Y%O9oLV#cV0Z{1~qadMA%8E|+gOE8+^p@F9 zTbIp3<}=6dX<9O^GU<`+R|+EA3S9Q~U*UioDc?b^#`CV1lEq2gBV$^FoKh6i9=F8* z8tgm&r7vSkb@(F_C?pA&AGsq+$5x?gbPyd^=X%fa*U@`(tad(pd;2EfVn8H0Ss_tq zU{MWiE+-!*PM0Owo7|-KUqrhVeTR}I_u2t_=9-FXrL@39$&_*z$s9&m|4%jV>{|I!EH~dsE}aHmI6cDS~^!>9L|o~ z2Cd0z@DiX{h40GpGzvOYJIpYDHg@0<1GmyC>rr3@L_GY$h!6ewa*lH#C^SA| znS#r@=Vj237aaZw)$3|^1IDD{@?-@;w;4Hk=Rlg?wMz*qd0A2xqSIKd&SN5-1CJ_p zUCu}ONr1QW1S2MAR?9`0%;tClh{rJ&y>vr-sRbl^W!a3wlHDgE*MY|7KvP{dM^aSD zsJBJ?1|YoOfN)#1JG8(U&1Tp2nAvjvzMzsThxP9zK4aO@J)s+^38Y_Kc8Qt3{Gn+l zti&#(LEgvnRWhsR^>M$-i1rP$S&lDMES!tQaPaj$C;bopL;8~bD(5&9U?a_{LNbzS(x`XtU;cC zJ|Iiw;Xnf^7L?krGK80jm_3Nv2lUnU8n?Xh62o&{Ta&!nXFmVU0U%oM8EB+oPRY^> z(a7e7+j5rpFwBsG7xVH7#N`W5Hk&@5hV2pYk1RKbZ>;Tkxpvb!9lo3KO=NxfPJo)< zE9=bM`+_<*M%jD?w9GyM3q+s$O>vci##sl3Yd^pSR%B5|*HHnoco+1eHvbdHg-e^_H4 z(@2CtRH3MSOT@z0{{b^V%)h__AC;&F#fP+GEBP)OkETcjvW0*OpeGd59roU@xoLt=y$NeZr z`|CF$xv(TCP38P#C(C0<<oY*BW477@6KvFL~R)S^_vrEBJCKo0*#T?*S z(oAG$2N@_&H=)02nh-Gp+;Ub&S+_(`<6NgU$Dmyrh?X91QBZnUTpV1ybOFjy)e=8Z2PpJDn8bQHdL`yrJgFW5aQk$HeP zCMp#f=mORbeC!8LMJ*a0+LsA^&9H)1%{;?ei0(N;1g%ML=&+6?A8`gf;EzoK6qDyW zoYK<(4BQ)hJ({FS_JNcuoxlVzAlk?)?uGX`8;#8f4T<3| zY!g;P(t!{H@W=oKz(*^hxR)=Gyi@&3TRVaB~9xG$IebzQ4zKw{`5Zr z9!`fQgWs%FN~*jKps`_c+er;cSwXp2OUBbbTC8(8pPf!LWB9f%P%rLIJ8j1a1pjsy zWw0s_w>07e7w=0*TJU~XkW0Y_@a-o;xN9LaK#;sA{e?7sIC&unBsRDZvWQkQ2h5Hx zxf7mHGD-VmY^Ok91`@ep4nYnQ^U#k-q^W#qnFW?|50RCB6V2oUEW@a99{HCZ{=>OW zqF;P;piR;+1IiC&-vv@|^fbj>P}(d+0A@ox|Rw=50#T_jh%!_ ziZLh{ixiF)>qp37>vo3%*a^KSz6zXJ2GcMsw$rEpEU{R2RmqlRECi`co1&LH8wz`N zi=6{M*th#zRbjIb(P5E1J+R|#Zd?sm+{x%J#>aekfMBI}Py;0xyXj3Xg&1-kfvrjq z3x|qpdtmi&g5cy@${?R>?rPS4)Ycmu%qx;r^Tvw>z_A#_*;M z;!EUa?6%ljF$R(nph`0#ks9wg)Pt!^6Qt999DDF|9>M@L%YR}~L2nOs>!0L0nPjd8 z{<L>A1I}3b7;2ZT3!-X75LA@1nS9ClA zC7L%D4)SkRe>|8^JESxs=nQ)>o-TDituW+56Pi7LRe(eaoRSY>&o!G$r)F&t7nAyQ z&41k=P@~Ce)W|9Yv9g#0u$@jMxNLY?bzPS$dSM&|draFbnH_~qL$R`ajrH(kWA7YK z+0^!2d~%vfQ(P2!2hM_gl=LAgI;;FiUUXz-(*7J6W*ui5Q(g2F@a7b!gxpE}bbCFyQlBW0UmUWeCu1drHNfnWqD9yO|O0(=KntwJL>LEU*wJ zVO@(KSNIohmI$^#1J;^j`#x|f6$m3ADei_uSO7yAW{7)GFjBcB*|1h@1=WpLb&1Lq zz7gD5<5YPPK@m4ylq17ENqnuGsPj~A!8pHWYA%>De=>^6hWW?KW!y>3#sa_#<{cD*o7#9v` zeAoO6z91QK$U1&IOeQ6HYdbh}<$}yi;Ev%<^?iB(Me*|vflwJrBRwNt?*6r9#GqG94! z*sc2z&Ngc!nw(imYfbkvN#b`IHXB* z%%2KZ^t!Nb;B`AJLDB$OIaaAqo`-H+;u&QwAKyn_pW3xcx-{?@Z#2^oa#hAR)s?MO ziYo|k!!l2Ba{M+8dn98fsDUJTirj%xarUYh^?|G)^)^QXtMU$S`<<(BuGb_bU+#bBR6qpSAGjkj9S@$+IUhm*fg&*0Zg$hoPQfK^y3UfP4n?DFk+iA zMXz;1v;7cQU@%}5(Y>2G`(G;Q-n%${$2LStg`wP`G(P_dMrcJN{6wY68 zNSsYKCDJEw!UG5zq0b`|mvH}5&>ovQ+a#JT^_P=A-}%iDueG^lfR>&xB7^K{r2*YG z?Hjsy&+%-3I;hKDGa!yV?>zKOzahkOPJ`nn6`tg8=1*B>_9F&i_zby8ul4^5C@+%~ z_~BFyds}xg*lDysg40efU2g3NaR7v9+OW+}vE<`o3AD63`i)lvp~l!zV9d#P<@nQW z)0dSu$Uj>H>9Nx+ROZAi77B7@w9D2o-pe;Pzw@X~lF}Ac-t37B_2_XtOwZ#eSEF!w zkNSE59R3GMC?mTy?B0MyYy1`=+zl64TC_Dq;NV?iu8;j7(i)6*g>uSZ8dQyV6)8|p zDm&?GTJ515*csOs_`cdJgLfj^iO#%Mi{S-Zm<75YBFV+Dpg= z*_Z1CSi!6gP1ArJ|5?^Yc5mrQy{s-~tH^O$PC-C(8IOH%j|4(WlJ?~ads`n;&~GPT zh<)BrKzh{*X?`LQJ_WZKC8%^$zT?bC+0;cSttp{Z@w}-U6H@jOcysC@?5Pk|xWQ98 zfOn}xDty)}A+K9GXkzapvDnWdi_9rh7b5;c^XENrzv_%WGl;21K5h$O&#Zz^X71cI z*d4!5TwZ8<$1x=%u-kY@wrB2QrtF#5%+2_Deai3=0uYoRhVFTcE`18Qpd#;Z`A}5m^`Z} z$6nYrptsO{%%MH%b?9@BS&F4I5==xs@QlnLQg42LT3s$ z_r5?l#T;F1T7x((fO~mrLBf!0vWr0vUB{zD^+EL}UN$&o*RJORbTTamb*WuzTRxUr zhwukOgp^2MKEz}^JD$)7O>(Rn{YuVhTvhoM(J}flJmHo*c-4-oUXf5q2Esg*}igh3;o9k z7)Q=P5%Fqo(oqZoi(-~z2z)+%2}rXv9N>R_h72DZU@>7nCpe*IwlH&CVSP)?UGEMsay9 z=$i0%lkfgV=J}8#N~Ba`Ga`lyTIXIks0EWS=kc0V2kEY93@R-~7dg)W*Nc@gKltcM zPqg|1#P%U}!?I`;l|+v#bH@=-bG7znSs!Fhni(`hcHkRuF*WfGz(}rD6wi%RG957( zO0mjw2osT9eKU@7yCBdMc4WYHz2@>M3so(2^Ca?MOjo#a2unI!_qf$(`I8)Mg*=}b z(ud7>=GaF}I}+wa`m}{nh6{u>Xf0nuW_qY7Qm$BT))~zbm#^?NPVyBwEzMIdmDhPZ zX`|LfwR=t{P%Yz+B zS#=aAKd-QIy)lDS3TJOiTaigdRTMx10OINp-kw7^yYhx;Y5{~B0lSJ<_(8QWH6qS^ zcmZ}iQ(LVIqxTa-P~ctz8V^iONAspnm&7Dq)`~4Lg3_;9Ld0|)CE8bKlMM6(8-&L~ zX%3%uxyHP1%Z;))%r_WTqT}ux*dN9t^}dK=LCi1`a=pb2Q81hy-xmi;8>gXA3mT`E>w#IbyTc9HH9q^O_x~#t(1#ScHwgmM9=v`mT;Zz}$#$_z&@6wTwMrUx&~?vZjV2nUV}&VSZ#t zpd}YSc&IHGV^QFDH;T<-&R5bi)Am;!AOkWr=OJr6a=tA;sktii8pXHQdI3In`KoK4Uv~e*YLMD4td# z3G(wINCPAV6{|3KVC2C^mCflU{P|ljaumi2Vpoh1Y|7nT+Ebq+2Lq%m%P^j0Bb>OJ{~3 zL)K#`WIHQ88Gf-<%u1v^eRry8Q|!q;bxY421s~sGVq7b8C`$BdncvZED7IDufSFxq z`RJl@n;d*-X&vW#)o2hI2LxwX@A?L8?VnL)#(BcEUpCQ8c}fmdLAC?{ zW4aS1^Oyf7JNzR-OP@eEX@l8bSEM8y=>5NF5cKM32vsx%ouap4cjdt{a>IBg$7Ajb zU*9J}ztUJhekUV4Di59tqw-WEfJXpQ7*b1mBI1a7-?-Nj*Zm1vu{P)_wEN8vJKUOM3is_7jr?yA2|;wkJ6!6z>f5A3H}zeAbF^AV&Zuup zFFG$aNtXD1m39JkoK&@WTnl$On4c&j>7DFH!UHd4rp>=<@A$6-gkcnHw7mCF^87-4 z5*Qdwo}JAOqc(Y`W|Z^Cv?=So_#ko(VW0yUGg|_4GJTd77pfS=ELJmZYq5 zct8SGlH2$z;g$GNkB9tedwz!jani>&vA6mTa8&CQZb3%}(uzADwxUS`U*|(sJn)Vl z+vv*!B^J&z#moeymqdqQ9N4&UaxlDCMAj5ZI=;&+q+L53H;-x_V1m;zTT^dnRoMVFKMyEw zQf+ukMTSRdRL?>j&{wN+2ONkvUO1N@pD;vaVB!@@gTn_X5jpsGjOw0nb72l7uV{E< zOo$CBo#BXGc5s~>CrorGrLFi0$!yzJ?|&*Qeh9o8?cJIks)?~yHThv7U*}+P_CQz% z)W|kH-P+ZJF zw~fC@@g501E#7Y{mZVkyjWu&fJ@d{HEm9q1_BgCaA;sKqMpxD;)G~h$p$GSM2_fcM zC@5GqslPQLvmC=K0{%`PIA(-U+k8D_IuI{*pQ>6HtTZS9LPbDtuZ=ku9M)7R)ExE} z%UyL~Mlk_8GxbzbZFj&P2X_Z6P-0;R3)l{Kwz|AemW=KleWVjq1W|V=85dFrMG}`I;m~m24JkP5X}e_h%a+n!raAWdRLnzYj?L(Iuc$$miGGq1~uG4 zMqRjMO3wZgm{LYM{P9p7X0}8yO&3&EvGm3h@zYl}u&wPDq;(Wx?D7UY=7nllGKy);`J-9%AYtELi~p z?D8)y>?78F2!%0Ej1U-bhh;wjgTF^qHuy(JOQKgwXA+4Bg=)nz%B!IiO-#j0WOs8K zCE!~fr2uDYg*9zwS!(P`=TRmlJ0x)zp)nFk1v}78&t1Y;M|3tC_Z_%uAf69$)__l6 zX>txnIclMMY5E%q#zJ5m{=-dBWa!Hg!&eVeU@}BqxRUj2BRkDst?EMtoqEm!;SLWL z^`}iavnnkwC)s%+n{~q-5bseaa)LTG68&fg!pI_Y@t9CYFzjMZLQVz_f%x)qd&!9g zUps~oLpqKs3qTz%KxWcoZh=Zd!9D{xS72dZvceq<`m%8Voz0~T*Gru|yvUSNI}1*5 z?#P8j({`O+^{LJYd!VNmu?%%^6LX9S zML$;|zkj-L(#<758UY_Xf^U0&HNcr0!>{aO#xP$Wj*{bhE_vD;G1|*@$u0#9GV8HE zI=i$_TbaKfUYdYQlrLdJyhA4-;gJu2TS)XSUie#1OFeK`7U2XMt^wE~`pS+|gEmb9 z>?;ve?rMZp$Ne@AF??xpXN6WxXZ0lsDdsm*r0$ekp+dS>VwbjkqvfYynq22tWJPKZ zbVyJ&wZocq@Ev$&U^_s0!sW$hv$||ecA%075^ULW|HkMB7at`Y zBWz+M8-e{eYl|duwv0benC~wpP5y5@{Mk(#oio=#R73zUSLG3Oo^Q?~y$XkMwjPsn zUONF>-qzermCCU;0XklFq-oJ?J}zAYo}r{agvn}OJ7P*EuL@>G241l_1b#LId!h1o z7P%5{!1fGFI*}GEkYbm3$4?NWS3$W#n9)j6g)IA9XFCUPQWN7%OAfMD`L!KGyaZY{&y5;U&*U))1gHQ!|Kx-R zmkKW;h;aM@R?i_goFF(Ct0|sQUt>cro@pEd+MAFu2mp?8>@f>qZWoa?;)yjrEQqXn+$+j==2)U2rWZvbZF|TI z(DZH-b-IKb)Ke8^__D}$iqo+tCzR6@rTNAy#U6rG^fKEkzFnYcw$6iQTQ-_HWhOW) z|5p!Mc%7GDye*Unfg2KTKWl?xYGXeZEnXuD2&}Fjf_sWbBGy(b$f%}Kio4zx!M~qR zE-*J;47J7w*g73N9Ss0cY=i3tl`#-OH`3t;Q^vSe`#U%iegdU_u=?9}VktK;ri9BI zoXH$>&jN8+#&OdXe9NW-z|&DQsl~`sZI5_Yx2cmHZPFiCJ3|J1n>*=5`cV#36fned zQBIUmyq!H01%4GJnyc;~Y_|Ahdn}$-QWQf@i=rt-AAx&#zc)ff9abU&HGl0RSCMFC zCLeDE3wi!kER%IhXS*BTr{LkzMr{126uE67erq?YMoe3xBp`{Hc*{O4V!5> z?W_nCnQq&3bzo_H$=?l7^1bRn&!8S}I;zBW5$jDPXMAP|D_)#TD2$0Sew_6?4pfCz zvIF&K%Ncws0m{N4&UW*3{}}^O1ua!oNG+;VHunq-9F-wnoooIvqmVHgMv&Y90_dbO z(+?>aL)R)ZT^IuhPA1tVeWDq0LnRML5Em^GO?x*8;J30C2G`M}pFo`8P@$dK+{ z(@jJO5|%JG_Bzl8I}coaxnNOB4^k9DE_OEeHr`+x-K~stj;$;;!%zm+In`LJvzbM;zDmsr56IYK{ z#Mh>G>B`JuVKh27ozJl(75u#@Lidpczm)DLh83I>D`hfaK6-RKTC{R*)5SzSn369* zz-rHXjMkWWLxy>5D$_)IJ!wERR9&11*SdQSO3Gs&hCc6Hd7$YPYaI{-ss>{adE2=v zNCs?SL7l!&Esn8jpNu-h2&#_pLjTll(daKF+eC*2YUMTQe@0VQW))oqSk42ZKRJQ<}0`$6{t zeY*J?b3)Z6%N2qE3kEW9`s(C4vq(=hyUOP<|0|^uCwCWO?Mn6%6``mS=KnH6AeewQ zRr2Nt(DMr_YN56XRJ7PH_Z2ce2=$^OqATMMt!_+6$5B9Z@GX@J&r_-+-XbIu?Ef|Dd~{*!wSk(a*=jEr+p$n@t**ni(cjQlZA z+l<|KH1F%F{kTh$;(PbM^If zUI)S*SFl?vlGrSH~{PqpG;jBN-od!QC1mI|eNKK^+SK%8Dm zd|k#iMnF?LTph9oj}1NpdrRYiIyxPo9-fO&c@ zC?1ShpbY5>t=%68t(GQa1?}z$03rVz|EK_HZkHo9)U_UMF6-M-%pxNpZbu->#7f0wW#R)YNr7obrB1acN!=j}rcd#esB$Ej>c z`(t`ESXU(_ov@q_ym_ZDfsht^SG-kv%w?iHkAGP=<6XUdRrYCi&yJ-It3aYBkA5p{ z`YR4UH`q@WICf zTECJO;ij}Jbb?qf2wxL*uyFuc?FgDFrPOF!IC9@2)Rx14t1g`=SjkmiXy6ifku%ja zKyxa4-4WVFdr25%(ub94L{G6f*7vGyT(56vF@=>ag6}C;*1NVd$yicK_}Gt8+hgVj zz#Vj1vx=7wAX33rvqXh&f{TtYZf-PB${o*ha6<+y9?3>UxIXg`W304t^LV8{{V-8H zLn_H$^SJ>IIYB%mb$EVZw#*-1``RWeyp0YR$so5#bVHT`9E&A-rm55t$$DWDUbRPR z0w#fEeljS0L;xiBtZaamPut|;yiDXN4C9KL%yX7dSkCK(5jybrghO=3)u#GhfA#u;a&s- zla(q!GZ zCZ20HRWoS`tOdhCn^RAH(lw_Zc6R7JeFWquAUswN+~z<8YT)uY!4iEm^D}$}S-h=h|HTe5)w927e9vr3VNAFvp?nf033nta zz5%@?Hu+gHsU(#vH0>T>)CP$#IqYODW9p7?0AE5!iba1$fp@ShRb=37;K9&NF7Qk; zf$%X_)=F0a{4*a|aL!;r$QxK~wInM&6%mdZf3wq56xH)&{w*I5+zdW;6S)dA{T3~B z@ZsEN;QkV6z~qVr%yWuVZBEfTo$!JuS-sj$u4{8}_u)?gBZ$>ynLPLlX!@rLjm*45 z^(RbwEbhkxn0h%Tsqv@^IO^C;{bA>OwG1g|nezA|B?SG?U+(4IOM^95sE=1zDt@H z(lQ)SgB*GR=IDraB%@+;VnX{{8xlShJ4T!s7v}+6nIp_}YC2mL<!@ zQHX9)rt=tf^sj(F)>k!u)Frk@UFlX+F;u8%slhNRigU?ZBu6M`@7nSaBuOqIy^)Mf zm4f9J&3t%EuFoMe(_+(Q zDVUfI#utAkm2HV+rg_N;?Dz^)3bGwMk!t%4CB2^-Bkg5b$J*#j#~K`6!L@i!Yc?(< zYt6yU+YYAyYJtJ9IsRlkVJH=x%wAWWOK#xmz!fpR?3$6JDt9Y{} zXFsD+J~DP<$@Xns4gHZ|zVWCfNUiu&k&5ML_!W&T?~?v_4DN3nj*}{Ej;{woN(=*6 zyi3hn0_HemSiSK%Uk&O)C%VB{sL{L#H%`-hE3>y$A7&z1<(S)3@Sn<=9LL;L)Z`LFeVNz}BOUHIlygWi>;@=f z2L^Rb7P6=~TN>SA{Be~)pZ#BE!Yn2?t2o|fH?~3tWs?nYPK&=50<#SgcfgGcz014> zhiqd-;-=3vUhuj>CP>P0G!#Z>`x%K3H~*U|hTu;cwpe{4%I04wYKOrtdLIu*tn~(E zMp&$3?BV-L9zCK8ef-gX$;_GoCF93sc-7!ZvDH;qFhLbu2okpxP*pZ6hQ-?tFp7vn zb7B@eJ4`JsoC~D`FZzsM*160U7t@SVzqeanIdoZ7ci#hfr@1aGG3072mJ-_nMwkzH z|Iz9TGCJ#0?g$7rXSx}9TaDi)yiI1*NgZwcW5^UC})mP{5@bf zQi1zie!5e5J&_9KTJo>tH!Nt#D0Q|~2kxh$1X;5}CoYVeqRdLi**&xpi(xN|0dWZK;`9_>wO zK-elceln~inz|`S%5k$C?G~yLr2hP8KJS`nZP-y>jzAY7nE}WpHZ$2GptrSSUlbKe zHS<6)Aw6As=ySW(sp{`Xxp?i^Hf`^Q@xh=Rc*XW{=; zq%o^gZ^ zIU(Y0jI7shFr^9zl0de384|QOX8j>v#}S4jVOmCYU%c8}+GZwYDiq9n?*B0;tw6g5 zm9Q=k{E^2G>0n?%=IOaQnn7qt1Lx0RNB@#w5I>ndqX4BRP=TI3=-fp;Lnc3D@jN6* z0r9~Iz6hNVFq60d`djC3&c*=>I1qk52HEa$u+h3u9gJ@+3?o<#vG=MTwHHwa=UX){wsZY97qHJ#^|(ku z77i8yZhebA2T96D&v@@70_m_iy4wpVJA9HuHWc4}`4QZBt<%z9F?abEd4ZieR3Z*!idWxd zaFz)#5Yx>kc#>g7SCa|=JZnpQ5>R*~ug-HiptD~v5-W8_Egm*j7Xtq{c>B$JhMFu^ zB>V#j%b*4>gz&~5C@?->p@3T%;!<>IELx*nSNdZe?m_7p-g=`J zWv(wiLpQ?`2|UnNPTz!ydhxs^q?3s+RJZ^~%qQg{zDmY2CQ!
!a%ma{S~MaGgo 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 *(rCtl2A=n(b70wL-Uq0ney8w?$( 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 diff --git a/crates/apollo_integration_tests/resources/proof_flow/proof_facts.json b/crates/apollo_integration_tests/resources/proof_flow/proof_facts.json index 76f4608f5b2..bb2849cefb0 100644 --- a/crates/apollo_integration_tests/resources/proof_flow/proof_facts.json +++ b/crates/apollo_integration_tests/resources/proof_flow/proof_facts.json @@ -4,7 +4,7 @@ "0x6ecb73d21c7d98ddd4148f5bcd91cc2747c65364245fbf32a63b05cca1685c2", "0x5649525455414c5f534e4f5330", "0x0", - "0x16bcf42661609d3e6095235597f329fa8e35bf79082997a40149fdb2ef6975a", + "0x71ede7bbd28575766b160412ed2a577413db7fabd4cf4fe140d55981714fb8d", "0x1ad2c853941f7f8abefca26097b05c0dfdf62626254533a118936a9939397f8", "0x0" ] \ No newline at end of file diff --git a/crates/apollo_starknet_client/resources/reader/block_post_0_14_2.json b/crates/apollo_starknet_client/resources/reader/block_post_0_14_2.json index 7648069c192..7ae854d2811 100644 --- a/crates/apollo_starknet_client/resources/reader/block_post_0_14_2.json +++ b/crates/apollo_starknet_client/resources/reader/block_post_0_14_2.json @@ -1185,7 +1185,7 @@ "actual_fee": "0x87077fd6af8a400" } ], - "starknet_version": "0.14.3", + "starknet_version": "0.14.4", "l2_gas_consumed": 988191555, "next_l2_gas_price": "0x1dcd65000" } diff --git a/crates/apollo_starknet_client/resources/reader/block_post_0_14_3.json b/crates/apollo_starknet_client/resources/reader/block_post_0_14_3.json index 2b54e8932f5..c8c3fa8e407 100644 --- a/crates/apollo_starknet_client/resources/reader/block_post_0_14_3.json +++ b/crates/apollo_starknet_client/resources/reader/block_post_0_14_3.json @@ -1185,7 +1185,7 @@ "actual_fee": "0x87077fd6af8a400" } ], - "starknet_version": "0.14.3", + "starknet_version": "0.14.4", "l2_gas_consumed": 988191555, "next_l2_gas_price": "0x1dcd65000", "fee_proposal_fri": "0x1dcd66000" diff --git a/crates/apollo_storage/src/serialization/serializers.rs b/crates/apollo_storage/src/serialization/serializers.rs index b0bbdbfebc0..f4be21ca10e 100644 --- a/crates/apollo_storage/src/serialization/serializers.rs +++ b/crates/apollo_storage/src/serialization/serializers.rs @@ -454,6 +454,7 @@ auto_storage_serde! { V0_14_1 = 24, V0_14_2 = 25, V0_14_3 = 26, + V0_14_4 = 27, } pub struct StateDiffCommitment(pub PoseidonHash); pub struct Tip(pub u64); diff --git a/crates/apollo_test_utils/src/lib.rs b/crates/apollo_test_utils/src/lib.rs index 149e163458a..f5c5fcc8c48 100644 --- a/crates/apollo_test_utils/src/lib.rs +++ b/crates/apollo_test_utils/src/lib.rs @@ -530,6 +530,7 @@ auto_impl_get_test_instance! { V0_14_1 = 24, V0_14_2 = 25, V0_14_3 = 26, + V0_14_4 = 27, } pub struct Calldata(pub Arc>); diff --git a/crates/apollo_versioned_constants/resources/orchestrator_versioned_constants_0_14_4.json b/crates/apollo_versioned_constants/resources/orchestrator_versioned_constants_0_14_4.json new file mode 100644 index 00000000000..6f0ea481524 --- /dev/null +++ b/crates/apollo_versioned_constants/resources/orchestrator_versioned_constants_0_14_4.json @@ -0,0 +1,9 @@ +{ + "fee_proposal_margin_ppt": 2, + "fee_proposal_window_size": 10, + "gas_price_max_change_denominator": 48, + "gas_target": 1040000000, + "max_block_size": 5800000000, + "min_gas_price": "0x1dcd65000", + "l1_gas_price_margin_percent": 10 +} diff --git a/crates/apollo_versioned_constants/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt b/crates/apollo_versioned_constants/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/crates/apollo_versioned_constants/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt @@ -0,0 +1 @@ + diff --git a/crates/apollo_versioned_constants/src/lib.rs b/crates/apollo_versioned_constants/src/lib.rs index 32341eeef6e..c1f8b9dac41 100644 --- a/crates/apollo_versioned_constants/src/lib.rs +++ b/crates/apollo_versioned_constants/src/lib.rs @@ -39,6 +39,7 @@ define_versioned_constants!( (V0_14_1, "../resources/orchestrator_versioned_constants_0_14_1.json"), (V0_14_2, "../resources/orchestrator_versioned_constants_0_14_2.json"), (V0_14_3, "../resources/orchestrator_versioned_constants_0_14_3.json"), + (V0_14_4, "../resources/orchestrator_versioned_constants_0_14_4.json"), ); /// Error type for the Consensus' versioned constants. diff --git a/crates/blockifier/resources/blockifier_versioned_constants_0_14_4.json b/crates/blockifier/resources/blockifier_versioned_constants_0_14_4.json new file mode 100644 index 00000000000..df21e397f16 --- /dev/null +++ b/crates/blockifier/resources/blockifier_versioned_constants_0_14_4.json @@ -0,0 +1,572 @@ +{ + "tx_event_limits": { + "max_data_length": 300, + "max_keys_length": 50, + "max_n_emitted_events": 1000 + }, + "gateway": { + "max_calldata_length": 5000, + "max_contract_bytecode_size": 81920, + "max_proof_size": 480000 + }, + "invoke_tx_max_n_steps": 10000000, + "validate_max_n_steps": 1000000, + "max_recursion_depth": 50, + "deprecated_l2_resource_gas_costs": { + "gas_per_data_felt": [ + 128, + 1000 + ], + "event_key_factor": [ + 2, + 1 + ], + "gas_per_code_byte": [ + 32, + 1000 + ], + "gas_per_proof": [ + 0, + 1 + ] + }, + "archival_data_gas_costs": { + "gas_per_data_felt": [ + 5120, + 1 + ], + "event_key_factor": [ + 2, + 1 + ], + "gas_per_code_byte": [ + 1280, + 1 + ], + "gas_per_proof": [ + 75000000, + 1 + ] + }, + "allocation_cost": { + "blob_cost": { + "l1_gas": 0, + "l1_data_gas": 32, + "l2_gas": 402000 + }, + "gas_cost": { + "l1_gas": 551, + "l1_data_gas": 0, + "l2_gas": 402000 + } + }, + "vm_resource_fee_cost": { + "n_steps": [ + 25, + 10000 + ], + "builtins": { + "add_mod_builtin": [ + 4, + 100 + ], + "bitwise_builtin": [ + 16, + 100 + ], + "ec_op_builtin": [ + 256, + 100 + ], + "ecdsa_builtin": [ + 512, + 100 + ], + "keccak_builtin": [ + 512, + 100 + ], + "mul_mod_builtin": [ + 4, + 100 + ], + "output_builtin": [ + 0, + 1 + ], + "pedersen_builtin": [ + 8, + 100 + ], + "poseidon_builtin": [ + 8, + 100 + ], + "range_check96_builtin": [ + 4, + 100 + ], + "range_check_builtin": [ + 4, + 100 + ] + } + }, + "disable_cairo0_redeclaration": true, + "enable_stateful_compression": true, + "comprehensive_state_diff": true, + "block_direct_execute_call": true, + "ignore_inner_event_resources": false, + "disable_deploy_in_validation_mode": true, + "enable_reverts": true, + "enable_casm_hash_migration": true, + "block_casm_hash_v1_declares": true, + "min_sierra_version_for_sierra_gas": "1.7.0", + "enable_tip": true, + "segment_arena_cells": false, + "os_constants": { + "allowed_virtual_os_program_hashes": [ + "0x3e98c2d7703b03a7edb73ed7f075f97f1dcbaa8f717cdf6e1a57bf058265473", + "0x6ecb73d21c7d98ddd4148f5bcd91cc2747c65364245fbf32a63b05cca1685c2" + ], + "constructor_entry_point_selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", + "default_entry_point_selector": "0x0", + "execute_entry_point_selector": "0x15d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad", + "transfer_entry_point_selector": "0x83afd3f4caedc6eebf44246fe54e38c95e3179a5ec9ea81740eca5b482d12e", + "validate_declare_entry_point_selector": "0x289da278a8dc833409cabfdad1581e8e7d40e42dcaed693fa4008dcdb4963b3", + "validate_deploy_entry_point_selector": "0x36fcbf06cd96843058359e1a75928beacfac10727dab22a3972f0af8aa92895", + "validate_entry_point_selector": "0x162da33a4585851fe8d3af3c2a9c60b557814e221e0d4f30ff0b2189d9c7775", + "entry_point_type_constructor": 2, + "entry_point_type_external": 0, + "entry_point_type_l1_handler": 1, + "validate_rounding_consts": { + "validate_block_number_rounding": 100, + "validate_timestamp_rounding": 3600 + }, + "validated": "VALID", + "execute_max_sierra_gas": 1110000000, + "validate_max_sierra_gas": 100000000, + "error_block_number_out_of_range": "Block number out of range", + "error_invalid_input_len": "Invalid input length", + "error_invalid_argument": "Invalid argument", + "error_out_of_gas": "Out of gas", + "error_entry_point_failed": "ENTRYPOINT_FAILED", + "error_entry_point_not_found": "ENTRYPOINT_NOT_FOUND", + "l1_gas": "L1_GAS", + "l2_gas": "L2_GAS", + "l1_data_gas": "L1_DATA", + "l1_gas_index": 0, + "l1_data_gas_index": 2, + "l2_gas_index": 1, + "memory_hole_gas_cost": 10, + "builtin_gas_costs": { + "range_check": 70, + "range_check96": 56, + "keccak": 136189, + "pedersen": 4050, + "bitwise": 583, + "ecop": 4085, + "poseidon": 491, + "add_mod": 230, + "mul_mod": 604, + "ecdsa": 10561, + "blake": 3334 + }, + "step_gas_cost": 100, + "syscall_base_gas_cost": { + "step_gas_cost": 100 + }, + "entry_point_initial_budget": { + "step_gas_cost": 100 + }, + "default_initial_gas_cost": { + "step_gas_cost": 100000000 + }, + "l1_handler_version": 0, + "l1_handler_max_amount_bounds": { + "l1_gas": 40000, + "l1_data_gas": 20000, + "l2_gas": 100000000 + }, + "nop_entry_point_offset": -1, + "os_contract_addresses": { + "block_hash_contract_address": 1, + "alias_contract_address": 2, + "reserved_contract_address": 3 + }, + "sierra_array_len_bound": 4294967296, + "stored_block_hash_buffer": 10, + "v1_bound_accounts_cairo0": [ + "0x6d706cfbac9b8262d601c38251c5fbe0497c3a96cc91a92b08d91b61d9e70c4", + "0x309c042d3729173c7f2f91a34f04d8c509c1b292d334679ef1aabf8da0899cc", + "0x1a7820094feaf82d53f53f214b81292d717e7bb9a92bb2488092cd306f3993f", + "0x33434ad846cdd5f23eb73ff09fe6fddd568284a0fb7d1be20ee482f044dabe2", + "0x41cb0280ebadaa75f996d8d92c6f265f6d040bb3ba442e5f86a554f1765244e", + "0x3530cc4759d78042f1b543bf797f5f3d647cde0388c33734cf91b7f7b9314a9" + ], + "v1_bound_accounts_cairo1": [ + "0x1a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003", + "0x737ee2f87ce571a58c6c8da558ec18a07ceb64a6172d5ec46171fbc80077a48", + "0x5400e90f7e0ae78bd02c77cd75527280470e2fe19c54970dd79dc37a9d3645c", + "0x4c6d6cf894f8bc96bb9c525e6853e5483177841f7388f74a46cfda6f028c755", + "0x1c0bb51e2ce73dc007601a1e7725453627254016c28f118251a71bbb0507fcb", + "0x251830adc3d8b4d818c2c309d71f1958308e8c745212480c26e01120c69ee49", + "0x251cac7b2f45d255b83b7a06dcdef70c8a8752f00ea776517c1c2243c7a06e5" + ], + "v1_bound_accounts_max_tip": "0x746a5288000", + "data_gas_accounts": [ + "0x2c8c7e6fbcfb3e8e15a46648e8914c6aa1fc506fc1e7fb3d1e19630716174bc", + "0x816dd0297efc55dc1e7559020a3a825e81ef734b558f03c83325d4da7e6253", + "0x41bf1e71792aecb9df3e9d04e1540091c5e13122a731e02bec588f71dc1a5c3", + "0x6d612cac7690e6620055c617a83a5a0b43b9758d9d30f281ddbc77be1651a70" + ] + }, + "os_resources": { + "execute_syscalls": { + "CallContract": { + "n_steps": 903, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 18 + } + }, + "DelegateCall": { + "n_steps": 713, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 19 + } + }, + "DelegateL1Handler": { + "n_steps": 692, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 15 + } + }, + "Deploy": { + "constant": { + "n_steps": 1173, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 21, + "pedersen_builtin": 7 + } + }, + "calldata_factor": { + "n_steps": 8, + "n_memory_holes": 0, + "builtin_instance_counter": { + "pedersen_builtin": 1 + } + } + }, + "EmitEvent": { + "n_steps": 61, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 1 + } + }, + "GetBlockHash": { + "n_steps": 107, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 2 + } + }, + "GetBlockNumber": { + "n_steps": 40, + "n_memory_holes": 0, + "builtin_instance_counter": {} + }, + "GetBlockTimestamp": { + "n_steps": 38, + "n_memory_holes": 0, + "builtin_instance_counter": {} + }, + "GetCallerAddress": { + "n_steps": 125, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 2 + } + }, + "GetClassHashAt": { + "n_steps": 89, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 1 + } + }, + "GetContractAddress": { + "n_steps": 125, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 2 + } + }, + "GetExecutionInfo": { + "n_steps": 125, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 2 + } + }, + "GetSequencerAddress": { + "n_steps": 34, + "n_memory_holes": 0, + "builtin_instance_counter": {} + }, + "GetTxInfo": { + "n_steps": 125, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 2 + } + }, + "GetTxSignature": { + "n_steps": 44, + "n_memory_holes": 0, + "builtin_instance_counter": {} + }, + "Keccak": { + "n_steps": 100, + "n_memory_holes": 0, + "builtin_instance_counter": {} + }, + "KeccakRound": { + "n_steps": 281, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 56, + "keccak_builtin": 1, + "bitwise_builtin": 6 + } + }, + "LibraryCall": { + "n_steps": 879, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 18 + } + }, + "LibraryCallL1Handler": { + "n_steps": 659, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 15 + } + }, + "MetaTxV0": { + "constant": { + "n_steps": 1301, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 20, + "pedersen_builtin": 9 + } + }, + "calldata_factor": { + "n_steps": 8, + "n_memory_holes": 0, + "builtin_instance_counter": { + "pedersen_builtin": 1 + } + } + }, + "ReplaceClass": { + "n_steps": 106, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 1 + } + }, + "Secp256k1Add": { + "n_steps": 412, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 29 + } + }, + "Secp256k1GetPointFromX": { + "n_steps": 397, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 30 + } + }, + "Secp256k1GetXy": { + "n_steps": 209, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 11 + } + }, + "Secp256k1Mul": { + "n_steps": 76507, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 7045 + } + }, + "Secp256k1New": { + "n_steps": 463, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 35 + } + }, + "Secp256r1Add": { + "n_steps": 595, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 57 + } + }, + "Secp256r1GetPointFromX": { + "n_steps": 516, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 44 + } + }, + "Secp256r1GetXy": { + "n_steps": 211, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 11 + } + }, + "Secp256r1Mul": { + "n_steps": 125346, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 13961 + } + }, + "Secp256r1New": { + "n_steps": 582, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 49 + } + }, + "SendMessageToL1": { + "n_steps": 144, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 1 + } + }, + "Sha256ProcessBlock": { + "n_steps": 1867, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 65, + "bitwise_builtin": 1115 + } + }, + "Sha512ProcessBlock": { + "n_steps": 4737, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 65, + "bitwise_builtin": 3320 + } + }, + "StorageRead": { + "n_steps": 240, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 1 + } + }, + "StorageWrite": { + "n_steps": 599, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 1 + } + } + }, + "execute_txs_inner": { + "Declare": { + "n_steps": 3523, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 72, + "pedersen_builtin": 4, + "poseidon_builtin": 15 + } + }, + "DeployAccount": { + "constant": { + "n_steps": 4583, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 93, + "pedersen_builtin": 11, + "poseidon_builtin": 11 + } + }, + "calldata_factor": { + "resources": { + "n_steps": 37, + "n_memory_holes": 0, + "builtin_instance_counter": { + "pedersen_builtin": 2, + "poseidon_builtin": 1 + } + }, + "scaling_factor": 2 + } + }, + "InvokeFunction": { + "constant": { + "n_steps": 4348, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 90, + "pedersen_builtin": 4, + "poseidon_builtin": 12 + } + }, + "calldata_factor": { + "resources": { + "n_steps": 11, + "n_memory_holes": 0, + "builtin_instance_counter": { + "poseidon_builtin": 1 + } + }, + "scaling_factor": 2 + } + }, + "L1Handler": { + "constant": { + "n_steps": 1315, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 19, + "pedersen_builtin": 11 + } + }, + "calldata_factor": { + "n_steps": 13, + "n_memory_holes": 0, + "builtin_instance_counter": { + "pedersen_builtin": 1 + } + } + } + }, + "compute_os_kzg_commitment_info": { + "n_steps": 113, + "n_memory_holes": 0, + "builtin_instance_counter": { + "range_check_builtin": 17 + } + } + } +} diff --git a/crates/blockifier/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt b/crates/blockifier/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/crates/blockifier/resources/versioned_constants_diff_regression/0.14.3_0.14.4.txt @@ -0,0 +1 @@ + diff --git a/crates/blockifier/src/blockifier_versioned_constants.rs b/crates/blockifier/src/blockifier_versioned_constants.rs index 9ce5598d126..90b8edfab63 100644 --- a/crates/blockifier/src/blockifier_versioned_constants.rs +++ b/crates/blockifier/src/blockifier_versioned_constants.rs @@ -55,6 +55,7 @@ define_versioned_constants!( (V0_14_1, "../resources/blockifier_versioned_constants_0_14_1.json"), (V0_14_2, "../resources/blockifier_versioned_constants_0_14_2.json"), (V0_14_3, "../resources/blockifier_versioned_constants_0_14_3.json"), + (V0_14_4, "../resources/blockifier_versioned_constants_0_14_4.json"), ); pub type SyscallGasCostsMap = BTreeMap; diff --git a/crates/central_systest_blobs/resources/blob_file_generation b/crates/central_systest_blobs/resources/blob_file_generation index cabf43b5ddf..978b4e8e518 100644 --- a/crates/central_systest_blobs/resources/blob_file_generation +++ b/crates/central_systest_blobs/resources/blob_file_generation @@ -1 +1 @@ -24 \ No newline at end of file +26 \ No newline at end of file diff --git a/crates/central_systest_blobs/resources/preconfirmed_block.json b/crates/central_systest_blobs/resources/preconfirmed_block.json index 992a05a67cf..4c209c68704 100644 --- a/crates/central_systest_blobs/resources/preconfirmed_block.json +++ b/crates/central_systest_blobs/resources/preconfirmed_block.json @@ -15,7 +15,7 @@ "price_in_wei": "0x1" }, "sequencer_address": "0x1000", - "starknet_version": "0.14.3", + "starknet_version": "0.14.4", "status": "PRE_CONFIRMED", "timestamp": 1013, "transaction_receipts": [ diff --git a/crates/starknet_api/src/block.rs b/crates/starknet_api/src/block.rs index 611cf21df22..ddf5c76c49d 100644 --- a/crates/starknet_api/src/block.rs +++ b/crates/starknet_api/src/block.rs @@ -123,7 +123,8 @@ starknet_version_enum! { (V0_14_1, 0, 14, 1), (V0_14_2, 0, 14, 2), (V0_14_3, 0, 14, 3), - V0_14_3 + (V0_14_4, 0, 14, 4), + V0_14_4 } impl Default for StarknetVersion { diff --git a/crates/starknet_transaction_prover/resources/rpc_records/test_execute_with_prefetch.json b/crates/starknet_transaction_prover/resources/rpc_records/test_execute_with_prefetch.json index ba9abe2c1c2..5593c5d7766 100644 --- a/crates/starknet_transaction_prover/resources/rpc_records/test_execute_with_prefetch.json +++ b/crates/starknet_transaction_prover/resources/rpc_records/test_execute_with_prefetch.json @@ -30,7 +30,7 @@ "parent_hash": "0x5172a5354ac1402a5070817c2cd922be776529a42db43519de5b9e64f470331", "receipt_commitment": "0x0", "sequencer_address": "0x1176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", - "starknet_version": "0.14.3", + "starknet_version": "0.14.4", "state_diff_commitment": "0xbbf3e6d4b17a34d5f754866feb02b08232f027edeb05b89de369fda230dbd0", "state_diff_length": 1, "status": "ACCEPTED_ON_L2", From c221f5b721d4ae3a6e061d1d084308dcbfa1b196 Mon Sep 17 00:00:00 2001 From: dorimedini-starkware Date: Thu, 28 May 2026 15:42:53 +0300 Subject: [PATCH 06/20] release: upgrade rand crate version (#14194) --- Cargo.lock | 66 +++++++++---------- Cargo.toml | 6 +- .../apollo_consensus/src/simulation_test.rs | 26 ++++---- .../src/dynamic_gas_price/test.rs | 6 +- crates/apollo_mempool/benches/utils.rs | 2 +- crates/apollo_mempool/src/mempool.rs | 4 +- .../apollo_p2p_sync/src/client/class_test.rs | 2 +- crates/apollo_p2p_sync/src/client/test.rs | 2 +- .../apollo_p2p_sync/src/client/test_utils.rs | 7 +- .../apollo_propeller/src/message_processor.rs | 2 +- .../src/converters/test_instances.rs | 2 +- .../src/db/table_types/test_utils.rs | 10 +-- .../src/mmap_file/mmap_file_test.rs | 2 +- crates/apollo_storage/src/version_test.rs | 6 +- crates/apollo_test_utils/src/lib.rs | 8 +-- .../src/test_utils/transfers_generator.rs | 2 +- crates/papyrus_common/src/state.rs | 4 +- crates/starknet_api/src/transaction.rs | 2 +- .../src/block_committer/commit_test.rs | 2 +- .../src/committer_cli/tests/python_tests.rs | 2 +- crates/starknet_committer_cli/src/commands.rs | 4 +- .../hint_processor/common_hint_processor.rs | 2 +- .../hint_implementation/bls_field/tests.rs | 12 ++-- .../hint_implementation/kzg/test_utils.rs | 11 ++-- .../src/hints/hint_implementation/output.rs | 4 +- .../state_diff_encryption_test.rs | 3 +- .../state_diff_encryption/utils_test.rs | 24 +++---- .../external_test_utils.rs | 2 +- .../internal_test_utils.rs | 2 +- .../src/patricia_merkle_tree/types_test.rs | 6 +- 30 files changed, 118 insertions(+), 115 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5d564bafd0b..3ebed61ddd5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1320,7 +1320,7 @@ dependencies = [ "lru 0.12.5", "mockall", "prost", - "rand 0.8.5", + "rand 0.9.2", "rstest", "serde", "starknet-types-core", @@ -1440,8 +1440,8 @@ dependencies = [ "mockito", "num-bigint", "num-rational", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "reqwest 0.12.24", "reqwest-middleware 0.4.2", "reqwest-retry", @@ -1676,7 +1676,7 @@ dependencies = [ "metrics-exporter-prometheus", "once_cell", "pretty_assertions", - "rand 0.8.5", + "rand 0.9.2", "rstest", "serde", "serde_json", @@ -1947,7 +1947,7 @@ dependencies = [ "metrics-exporter-prometheus", "mockall", "pretty_assertions", - "rand 0.8.5", + "rand 0.9.2", "reqwest 0.12.24", "reqwest-middleware 0.4.2", "reqwest-retry", @@ -1990,7 +1990,7 @@ dependencies = [ "futures", "libp2p", "mockall", - "rand_chacha 0.3.1", + "rand_chacha 0.9.0", "starknet_api", "tokio", "tracing", @@ -2163,7 +2163,7 @@ dependencies = [ "apollo_test_utils", "lazy_static", "libp2p", - "rand_chacha 0.3.1", + "rand_chacha 0.9.0", "serde", ] @@ -2281,8 +2281,8 @@ dependencies = [ "lazy_static", "mockall", "papyrus_common", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "starknet-types-core", "starknet_api", "static_assertions", @@ -2390,7 +2390,7 @@ dependencies = [ "libp2p-swarm-test", "lru 0.12.5", "prost", - "rand 0.8.5", + "rand 0.9.2", "reed-solomon-simd", "rstest", "sha2 0.10.9", @@ -2421,8 +2421,8 @@ dependencies = [ "prost", "prost-build", "protoc-prebuilt", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "rstest", "serde", "serde_json", @@ -2484,8 +2484,8 @@ dependencies = [ "papyrus_common", "pretty_assertions", "prometheus-parse", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "regex", "reqwest 0.12.24", "serde", @@ -2521,7 +2521,7 @@ dependencies = [ "mockall", "papyrus_common", "pretty_assertions", - "rand_chacha 0.3.1", + "rand_chacha 0.9.0", "serde", "serde_json", "starknet-types-core", @@ -2722,7 +2722,7 @@ dependencies = [ "libp2p", "mockall", "papyrus_common", - "rand_chacha 0.3.1", + "rand_chacha 0.9.0", "starknet-types-core", "starknet_api", "tokio", @@ -2811,8 +2811,8 @@ dependencies = [ "pretty_assertions", "primitive-types", "prometheus-parse", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "reqwest 0.12.24", "rstest", "schemars 1.1.0", @@ -2854,8 +2854,8 @@ dependencies = [ "pretty_assertions", "primitive-types", "prometheus-parse", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "reqwest 0.12.24", "serde", "serde_json", @@ -3829,7 +3829,7 @@ dependencies = [ "paste", "phf", "pretty_assertions", - "rand 0.8.5", + "rand 0.9.2", "regex", "rstest", "rstest_reuse", @@ -9976,7 +9976,7 @@ dependencies = [ "cairo-lang-starknet-classes", "indexmap 2.14.0", "pretty_assertions", - "rand 0.8.5", + "rand 0.9.2", "serde", "serde_json", "starknet-types-core", @@ -11006,12 +11006,12 @@ checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rand_distr" -version = "0.4.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" dependencies = [ "num-traits", - "rand 0.8.5", + "rand 0.9.2", ] [[package]] @@ -12862,7 +12862,7 @@ dependencies = [ "paste", "pretty_assertions", "primitive-types", - "rand 0.8.5", + "rand 0.9.2", "rstest", "semver 1.0.27", "serde", @@ -12892,7 +12892,7 @@ dependencies = [ "expect-test", "hex", "pretty_assertions", - "rand 0.8.5", + "rand 0.9.2", "rand_distr", "rstest", "rstest_reuse", @@ -12930,7 +12930,7 @@ dependencies = [ "futures", "indexmap 2.14.0", "pretty_assertions", - "rand 0.8.5", + "rand 0.9.2", "rand_distr", "serde", "serde_json", @@ -12959,7 +12959,7 @@ dependencies = [ "blake2", "clap", "csv", - "rand 0.8.5", + "rand 0.9.2", "serde", "serde_json", "starknet-types-core", @@ -13005,7 +13005,7 @@ dependencies = [ "num-traits", "papyrus_common", "paste", - "rand 0.8.5", + "rand 0.9.2", "regex", "rstest", "serde", @@ -13040,8 +13040,8 @@ dependencies = [ "chrono", "expect-test", "itertools 0.12.1", - "rand 0.8.5", - "rand_chacha 0.3.1", + "rand 0.9.2", + "rand_chacha 0.9.0", "rstest", "serde_json", "starknet-core", @@ -13066,7 +13066,7 @@ dependencies = [ "derive_more", "ethnum", "pretty_assertions", - "rand 0.8.5", + "rand 0.9.2", "rstest", "serde", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index 3bfd1eeb14f..b20834a081d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -346,9 +346,9 @@ protoc-prebuilt = "0.3.0" pyo3 = "0.19.1" pyo3-log = "0.8.1" quote = "1.0.26" -rand = "0.8.5" -rand_chacha = "0.3.1" -rand_distr = "0.4.3" +rand = "0.9.2" +rand_chacha = "0.9.0" +rand_distr = "0.5.1" reed-solomon-simd = "3.1.0" regex = "1.10.4" replace_with = "0.1.7" diff --git a/crates/apollo_consensus/src/simulation_test.rs b/crates/apollo_consensus/src/simulation_test.rs index 832bdcb61c3..c62757e8198 100644 --- a/crates/apollo_consensus/src/simulation_test.rs +++ b/crates/apollo_consensus/src/simulation_test.rs @@ -14,7 +14,7 @@ use apollo_consensus_config::config::TimeoutsConfig; use apollo_protobuf::consensus::{ProposalInit, Vote, VoteType}; use lazy_static::lazy_static; use rand::rngs::StdRng; -use rand::seq::SliceRandom; +use rand::seq::IndexedRandom; use rand::{Rng, SeedableRng}; use starknet_api::block::BlockNumber; use starknet_api::crypto::utils::RawSignature; @@ -149,12 +149,12 @@ fn get_leader_index(seed: u64, total_nodes: usize, round: Round) -> usize { let round_seed = seed.wrapping_mul(31).wrapping_add(round_u64); let mut round_rng = StdRng::seed_from_u64(round_seed); - let random_value: f64 = round_rng.gen(); + let random_value: f64 = round_rng.random(); if random_value < NODE_0_LEADER_PROBABILITY { NODE_UNDER_TEST } else { - round_rng.gen_range(1..total_nodes) + round_rng.random_range(1..total_nodes) } } @@ -278,7 +278,7 @@ impl DiscreteEventSimulation { /// Other events are scheduled with probability keep_ratio. fn schedule_at_tick(&mut self, tick: u64, event: InputEvent) { let should_enqueue = - matches!(event, InputEvent::Internal(_)) || self.rng.gen_bool(self.keep_ratio); + matches!(event, InputEvent::Internal(_)) || self.rng.random_bool(self.keep_ratio); if should_enqueue { self.pending_events.push(TimedEvent { tick, event }); } @@ -295,10 +295,10 @@ impl DiscreteEventSimulation { round_start_tick: u64, ) { let round_end_tick = round_start_tick + ROUND_DURATION; - let prevote_tick = (round_start_tick + self.rng.gen_range(PREVOTE_ARRIVAL_DELAY_RANGE)) + let prevote_tick = (round_start_tick + self.rng.random_range(PREVOTE_ARRIVAL_DELAY_RANGE)) .min(round_end_tick - 1); let precommit_tick = (prevote_tick - + self.rng.gen_range(PRECOMMIT_AFTER_PREVOTE_DELAY_RANGE)) + + self.rng.random_range(PRECOMMIT_AFTER_PREVOTE_DELAY_RANGE)) .min(round_end_tick); self.schedule_at_tick( @@ -349,7 +349,7 @@ impl DiscreteEventSimulation { // 1. Proposal from leader (if not NODE_0 and leader is honest) if leader_idx < self.honest_nodes { let proposal_tick = (round_start_tick - + self.rng.gen_range(PROPOSAL_ARRIVAL_DELAY_RANGE)) + + self.rng.random_range(PROPOSAL_ARRIVAL_DELAY_RANGE)) .min(round_start_tick + ROUND_DURATION); self.schedule_at_tick( proposal_tick, @@ -566,7 +566,7 @@ impl DiscreteEventSimulation { match req { SMRequest::StartValidateProposal(init) => { - let delay = self.rng.gen_range(VALIDATION_DELAY_RANGE); + let delay = self.rng.random_range(VALIDATION_DELAY_RANGE); let validate_finish_tick = self.current_tick + delay; let proposal_commitment = Some(proposal_commitment_for_round(init.round, false)); @@ -578,7 +578,7 @@ impl DiscreteEventSimulation { self.schedule_at_tick(validate_finish_tick, InputEvent::Internal(result)); } SMRequest::StartBuildProposal(round) => { - let delay = self.rng.gen_range(BUILD_PROPOSAL_DELAY_RANGE); + let delay = self.rng.random_range(BUILD_PROPOSAL_DELAY_RANGE); let build_finish_tick = self.current_tick + delay; let proposal_commitment = Some(proposal_commitment_for_round(round, false)); let result = StateMachineEvent::FinishedBuilding(proposal_commitment, round); @@ -591,15 +591,15 @@ impl DiscreteEventSimulation { SMRequest::ScheduleTimeout(step, round) => { let (delay, event) = match step { Step::Propose => ( - self.rng.gen_range(TIMEOUT_PROPOSE_DELAY_RANGE), + self.rng.random_range(TIMEOUT_PROPOSE_DELAY_RANGE), StateMachineEvent::TimeoutPropose(round), ), Step::Prevote => ( - self.rng.gen_range(TIMEOUT_PREVOTE_DELAY_RANGE), + self.rng.random_range(TIMEOUT_PREVOTE_DELAY_RANGE), StateMachineEvent::TimeoutPrevote(round), ), Step::Precommit => ( - self.rng.gen_range(TIMEOUT_PRECOMMIT_DELAY_RANGE), + self.rng.random_range(TIMEOUT_PRECOMMIT_DELAY_RANGE), StateMachineEvent::TimeoutPrecommit(round), ), }; @@ -747,7 +747,7 @@ fn test_consensus_simulation(keep_ratio: f64, honest_nodes: usize) { if start.elapsed() >= timeout { break; } - let seed = rand::thread_rng().gen(); + let seed = rand::rng().random(); println!( "run: keep_ratio={keep_ratio}, honest_nodes={honest_nodes}, \ total_nodes={total_nodes}, num_rounds={num_rounds}, seed={seed}" diff --git a/crates/apollo_consensus_orchestrator/src/dynamic_gas_price/test.rs b/crates/apollo_consensus_orchestrator/src/dynamic_gas_price/test.rs index 5e1305a42cd..5af04fe3035 100644 --- a/crates/apollo_consensus_orchestrator/src/dynamic_gas_price/test.rs +++ b/crates/apollo_consensus_orchestrator/src/dynamic_gas_price/test.rs @@ -225,11 +225,11 @@ fn test_honest_proposer_always_passes_validation_fuzzed() { let margin_ppt = VersionedConstants::latest_constants().fee_proposal_margin_ppt; let mut rng = ChaCha8Rng::seed_from_u64(0xDEADBEEF); for _ in 0..10_000 { - let fee_actual_value = rng.gen_range(1u128..1_000_000_000_000_000_000); - let strk_usd_rate = rng.gen_range(1u128..2 * 10u128.pow(18)); + let fee_actual_value = rng.random_range(1u128..1_000_000_000_000_000_000); + let strk_usd_rate = rng.random_range(1u128..2 * 10u128.pow(18)); let fee_actual = GasPrice(fee_actual_value); let target = compute_fee_target(TARGET_ATTO_USD_PER_L2_GAS, strk_usd_rate); - let oracle_result = if rng.gen_bool(0.1) { None } else { target }; + let oracle_result = if rng.random_bool(0.1) { None } else { target }; let proposal = compute_fee_proposal(oracle_result, fee_actual, margin_ppt); assert!( validator_accepts(fee_actual, proposal, margin_ppt), diff --git a/crates/apollo_mempool/benches/utils.rs b/crates/apollo_mempool/benches/utils.rs index cfc4dc3ba8a..2275640993a 100644 --- a/crates/apollo_mempool/benches/utils.rs +++ b/crates/apollo_mempool/benches/utils.rs @@ -194,7 +194,7 @@ impl BenchTestSetup { let mut rng = StdRng::seed_from_u64(42); let txs = (0..config.n_txs) .map(|index| { - let account_id = rng.gen_range(0..config.n_accounts); + let account_id = rng.random_range(0..config.n_accounts); tx_generator.generate_invoke(account_id, index) }) .collect(); diff --git a/crates/apollo_mempool/src/mempool.rs b/crates/apollo_mempool/src/mempool.rs index b1ae9321a6b..3a455d9455c 100644 --- a/crates/apollo_mempool/src/mempool.rs +++ b/crates/apollo_mempool/src/mempool.rs @@ -16,7 +16,7 @@ use apollo_mempool_types::mempool_types::{ }; use apollo_time::time::{Clock, DateTime}; use indexmap::IndexSet; -use rand::{thread_rng, Rng}; +use rand::{rng, Rng}; use starknet_api::block::{GasPrice, UnixTimestamp}; use starknet_api::core::{ContractAddress, Nonce}; use starknet_api::rpc_transaction::{ @@ -962,7 +962,7 @@ impl Mempool { if len == 0 { return None; } - let random_index = thread_rng().gen_range(0..len); + let random_index = rng().random_range(0..len); self.accounts_with_gap.get_index(random_index).copied() } diff --git a/crates/apollo_p2p_sync/src/client/class_test.rs b/crates/apollo_p2p_sync/src/client/class_test.rs index c7af6171eb9..33a09c17a42 100644 --- a/crates/apollo_p2p_sync/src/client/class_test.rs +++ b/crates/apollo_p2p_sync/src/client/class_test.rs @@ -218,7 +218,7 @@ fn create_random_state_diff_chunk_with_class( rng: &mut ChaCha8Rng, ) -> (StateDiffChunk, ApiContractClass) { let class_hash = ClassHash(rng.next_u64().into()); - if rng.gen_bool(0.5) { + if rng.random_bool(0.5) { let declared_class = DeclaredClass { class_hash, compiled_class_hash: CompiledClassHash(rng.next_u64().into()), diff --git a/crates/apollo_p2p_sync/src/client/test.rs b/crates/apollo_p2p_sync/src/client/test.rs index 774c03446cb..96b69d90b86 100644 --- a/crates/apollo_p2p_sync/src/client/test.rs +++ b/crates/apollo_p2p_sync/src/client/test.rs @@ -136,7 +136,7 @@ async fn receive_blocks_out_of_order() { let state_diff_0 = sync_block_0.state_diff.clone(); // We need to forward the rng to the next generated num to make sure the blocks are different. - rng.gen::(); + rng.random::(); let account_transaction_hashes_len_1 = 3; let l1_transaction_hashes_len_1 = 1; let sync_block_1 = create_random_sync_block( diff --git a/crates/apollo_p2p_sync/src/client/test_utils.rs b/crates/apollo_p2p_sync/src/client/test_utils.rs index ddf1c39cfea..d04258529f6 100644 --- a/crates/apollo_p2p_sync/src/client/test_utils.rs +++ b/crates/apollo_p2p_sync/src/client/test_utils.rs @@ -363,8 +363,11 @@ pub fn random_header( block_number, ..GetTestInstance::get_test_instance(rng) }, - state_diff_length: Some(state_diff_length.unwrap_or_else(|| rng.gen())), - n_transactions: num_transactions.unwrap_or_else(|| rng.gen()), + state_diff_length: Some( + state_diff_length.unwrap_or_else(|| rng.random::().try_into().unwrap()), + ), + n_transactions: num_transactions + .unwrap_or_else(|| rng.random::().try_into().unwrap()), ..GetTestInstance::get_test_instance(rng) }, // TODO(shahak): Remove this once get_test_instance puts random values. diff --git a/crates/apollo_propeller/src/message_processor.rs b/crates/apollo_propeller/src/message_processor.rs index 88635897623..19f16ee2a14 100644 --- a/crates/apollo_propeller/src/message_processor.rs +++ b/crates/apollo_propeller/src/message_processor.rs @@ -262,7 +262,7 @@ impl MessageProcessor { .filter(|p| *p != self.publisher && *p != self.local_peer_id) .collect(); // TODO(AndrewL): get seeded RNG for tests. - peers.shuffle(&mut rand::thread_rng()); + peers.shuffle(&mut rand::rng()); trace!("[MSG_PROC] Broadcasting unit index={:?} to {} peers", unit.index(), peers.len()); self.engine_tx .send(EventStateManagerToEngine::SendUnitToPeers { unit: unit.clone(), peers }) diff --git a/crates/apollo_protobuf/src/converters/test_instances.rs b/crates/apollo_protobuf/src/converters/test_instances.rs index 8703a049df2..ed2e457834e 100644 --- a/crates/apollo_protobuf/src/converters/test_instances.rs +++ b/crates/apollo_protobuf/src/converters/test_instances.rs @@ -134,7 +134,7 @@ impl Display for TestStreamId { // TODO(guyn): try to make the macro work with generic types. impl GetTestInstance for StreamMessage { fn get_test_instance(rng: &mut rand_chacha::ChaCha8Rng) -> Self { - let message = if rng.gen_bool(0.5) { + let message = if rng.random_bool(0.5) { StreamMessageBody::Content(ProposalPart::Transactions(TransactionBatch { transactions: vec![ConsensusTransaction::get_test_instance(rng)], })) diff --git a/crates/apollo_storage/src/db/table_types/test_utils.rs b/crates/apollo_storage/src/db/table_types/test_utils.rs index 775fd244516..6cde67033b2 100644 --- a/crates/apollo_storage/src/db/table_types/test_utils.rs +++ b/crates/apollo_storage/src/db/table_types/test_utils.rs @@ -305,14 +305,14 @@ pub(crate) fn random_table_test( let rtxn = reader.begin_ro_txn().unwrap(); let first_table = rtxn.open_table(&first_table_id).unwrap(); let second_table = rtxn.open_table(&second_table_id).unwrap(); - let mut rng = rand::thread_rng(); + let mut rng = rand::rng(); for iter in 0..ITERS { debug!("iteration: {iter:?}"); let wtxn = writer.begin_rw_txn().unwrap(); - let random_op = rng.gen_range(0..4); + let random_op = rng.random_range(0..4); let key = get_random_key(&mut rng); - let value = rng.gen_range(0..MAX_VALUE); + let value = rng.random_range(0..MAX_VALUE); // Insert, upsert, or delete a random key. if random_op == 0 { @@ -386,7 +386,7 @@ pub(crate) fn random_table_test( ); for _ in 0..CURSOR_OPS_NUM { - let random_op = rng.gen_range(0..2); + let random_op = rng.random_range(0..2); if random_op == 0 { // Next debug!("next: {key:?}"); @@ -414,5 +414,5 @@ pub(crate) fn random_table_test( } fn get_random_key(rng: &mut ThreadRng) -> TableKey { - (rng.gen_range(0..MAIN_KEY_MAX_VALUE), rng.gen_range(0..SUB_KEY_MAX_VALUE)) + (rng.random_range(0..MAIN_KEY_MAX_VALUE), rng.random_range(0..SUB_KEY_MAX_VALUE)) } diff --git a/crates/apollo_storage/src/mmap_file/mmap_file_test.rs b/crates/apollo_storage/src/mmap_file/mmap_file_test.rs index 870bb5aa17f..e31b7ebdfb1 100644 --- a/crates/apollo_storage/src/mmap_file/mmap_file_test.rs +++ b/crates/apollo_storage/src/mmap_file/mmap_file_test.rs @@ -222,7 +222,7 @@ async fn write_read_different_locations() { { round = *lock.read().await; } - let read_offset = 3 * rand::thread_rng().gen_range(0..round + 1); + let read_offset = 3 * rand::rng().random_range(0..round + 1); let read_location = LocationInFile { offset: read_offset, len: LEN }; let read_value = reader.get(read_location).unwrap().unwrap(); let first_expected_value: u8 = (read_offset / 3 * 2).try_into().unwrap(); diff --git a/crates/apollo_storage/src/version_test.rs b/crates/apollo_storage/src/version_test.rs index 164a8ac8bda..e9a45a8028a 100644 --- a/crates/apollo_storage/src/version_test.rs +++ b/crates/apollo_storage/src/version_test.rs @@ -211,11 +211,11 @@ fn change_storage_version(writer: &mut StorageWriter, version_key: &str, version // Returns a random version with a different major version than the given one. fn get_different_major_version(version: Version) -> Version { - let mut rng = rand::thread_rng(); + let mut rng = rand::rng(); // The multiplication by two is to make the randomized version to be // with a high enough probability to be less and more than the current version. - let minor = rng.gen_range(0..=2 * version.minor); - let mut major = rng.gen_range(0..=2 * version.major); + let minor = rng.random_range(0..=2 * version.minor); + let mut major = rng.random_range(0..=2 * version.major); if major == version.major { major += 1; } diff --git a/crates/apollo_test_utils/src/lib.rs b/crates/apollo_test_utils/src/lib.rs index f5c5fcc8c48..cd1387850bc 100644 --- a/crates/apollo_test_utils/src/lib.rs +++ b/crates/apollo_test_utils/src/lib.rs @@ -213,7 +213,7 @@ pub fn validate_load_and_dump Deserialize<'a>>(path_in_re pub fn get_rng() -> ChaCha8Rng { let seed: u64 = match env::var("SEED") { Ok(seed_str) => seed_str.parse().unwrap(), - _ => rand::thread_rng().gen(), + _ => rand::rng().random(), }; // Will be printed if the test failed. println!("Testing with seed: {seed:?}"); @@ -315,14 +315,14 @@ fn get_rand_test_body_with_events( let mut events = vec![]; for _ in 0..events_per_tx { let from_address = if let Some(ref options) = from_addresses { - *options.index(rng.gen_range(0..options.len())) + *options.index(rng.random_range(0..options.len())) } else { ContractAddress::default() }; let final_keys = if let Some(ref options) = keys { let mut chosen_keys = vec![]; for options_per_i in options { - let key = options_per_i.index(rng.gen_range(0..options_per_i.len())).clone(); + let key = options_per_i.index(rng.random_range(0..options_per_i.len())).clone(); chosen_keys.push(key); } chosen_keys @@ -1066,7 +1066,7 @@ macro_rules! auto_impl_get_test_instance { impl GetTestInstance for $name { fn get_test_instance(rng: &mut $crate::rand_chacha::ChaCha8Rng) -> Self { use $crate::rand::Rng; - let variant = rng.gen_range(0..get_number_of_variants!(enum $name { $($variant $( ($ty) )? = $num ,)* })); + let variant = rng.random_range(0..get_number_of_variants!(enum $name { $($variant $( ($ty) )? = $num ,)* })); match variant { $( $num => { diff --git a/crates/blockifier/src/test_utils/transfers_generator.rs b/crates/blockifier/src/test_utils/transfers_generator.rs index b3609b40ada..b9dc916c45e 100644 --- a/crates/blockifier/src/test_utils/transfers_generator.rs +++ b/crates/blockifier/src/test_utils/transfers_generator.rs @@ -156,7 +156,7 @@ impl TransfersGenerator { RecipientGeneratorType::Random => { let random_recipient_generator = self.random_recipient_generator.as_mut().unwrap(); let recipient_index = - random_recipient_generator.gen_range(0..self.account_addresses.len()); + random_recipient_generator.random_range(0..self.account_addresses.len()); self.account_addresses[recipient_index] } RecipientGeneratorType::RoundRobin => { diff --git a/crates/papyrus_common/src/state.rs b/crates/papyrus_common/src/state.rs index bfa4a6e5dce..e6acc42b9f6 100644 --- a/crates/papyrus_common/src/state.rs +++ b/crates/papyrus_common/src/state.rs @@ -1,5 +1,5 @@ use indexmap::indexmap; -use rand::RngCore; +use rand::Rng; use serde::{Deserialize, Serialize}; use starknet_api::core::{ClassHash, CompiledClassHash, ContractAddress, Nonce}; use starknet_api::state::{StorageKey, ThinStateDiff}; @@ -36,7 +36,7 @@ pub struct ReplacedClass { } // TODO(Shahak): move to used crate -pub fn create_random_state_diff(rng: &mut impl RngCore) -> ThinStateDiff { +pub fn create_random_state_diff(rng: &mut impl Rng) -> ThinStateDiff { let contract0 = ContractAddress::from(rng.next_u64()); let contract1 = ContractAddress::from(rng.next_u64()); let contract2 = ContractAddress::from(rng.next_u64()); diff --git a/crates/starknet_api/src/transaction.rs b/crates/starknet_api/src/transaction.rs index df8b7231855..7075015c872 100644 --- a/crates/starknet_api/src/transaction.rs +++ b/crates/starknet_api/src/transaction.rs @@ -907,7 +907,7 @@ impl TransactionHash { pub fn random(rng: &mut impl rand::Rng) -> Self { let mut byte_vec = vec![]; for _ in 0..32 { - byte_vec.push(rng.gen::()); + byte_vec.push(rng.random::()); } let byte_array = byte_vec.try_into().expect("Expected a Vec of length 32"); TransactionHash(StarkHash::from_bytes_be(&byte_array)) diff --git a/crates/starknet_committer/src/block_committer/commit_test.rs b/crates/starknet_committer/src/block_committer/commit_test.rs index 0f6fba6bae0..eda99dd71e9 100644 --- a/crates/starknet_committer/src/block_committer/commit_test.rs +++ b/crates/starknet_committer/src/block_committer/commit_test.rs @@ -51,7 +51,7 @@ const EXPECTED_ROOTS_SIMPLE_CASE: Expect = expect![[r#" const EXPECTED_ROOTS_RANDOM_CASE: Expect = expect![[r#" StateRoots { contracts_trie_root_hash: HashOutput( - 0x1ec85a68b9e7fd01a09d6594056cedf61ef7f33afc4cd1762ad8b6e2c6cf3f1, + 0x10e1ce578ade4251dcb0fe04de3a3e17b73998cee1a814a5e59ba8e0bd872a6, ), classes_trie_root_hash: HashOutput( 0x0, diff --git a/crates/starknet_committer_and_os_cli/src/committer_cli/tests/python_tests.rs b/crates/starknet_committer_and_os_cli/src/committer_cli/tests/python_tests.rs index a1db9718a1b..3200201fb05 100644 --- a/crates/starknet_committer_and_os_cli/src/committer_cli/tests/python_tests.rs +++ b/crates/starknet_committer_and_os_cli/src/committer_cli/tests/python_tests.rs @@ -682,7 +682,7 @@ async fn test_storage_node(data: HashMap) -> CommitterPythonTest /// Generates a dummy random filled forest and serializes it to a JSON string. pub(crate) async fn filled_forest_output_test() -> CommitterPythonTestResult { - let dummy_forest = SerializedForest(FilledForest::dummy_random(&mut rand::thread_rng(), None)); + let dummy_forest = SerializedForest(FilledForest::dummy_random(&mut rand::rng(), None)); let output = dummy_forest.forest_to_output().await.map_err(|error| { PythonTestError::SpecificError(CommitterSpecificTestError::Serialization(error)) })?; diff --git a/crates/starknet_committer_cli/src/commands.rs b/crates/starknet_committer_cli/src/commands.rs index 35896132118..2e6e8ccabdf 100644 --- a/crates/starknet_committer_cli/src/commands.rs +++ b/crates/starknet_committer_cli/src/commands.rs @@ -12,7 +12,7 @@ use apollo_storage::state::StateStorageReader; use apollo_storage::{open_storage, StorageConfig, StorageReader, StorageScope}; use blake2::digest::consts::U31; use blake2::{Blake2s, Digest}; -use rand::distributions::Uniform; +use rand::distr::Uniform; use rand::prelude::IteratorRandom; use rand::rngs::SmallRng; use rand::{Rng, SeedableRng}; @@ -397,7 +397,7 @@ fn apply_interference( // Avoid creating an iterator over the entire range - select random leaves, with // possible repetition. Probability of repitition will decrease as the number of // leaves increases. - let dist = Uniform::new(0, total_leaves); + let dist = Uniform::new(0, total_leaves).unwrap(); let preimages = (0..INTERFERENCE_READ_1K_EVERY_BLOCK_N_READS) .map(|_| rng.sample(dist)) .collect::>(); diff --git a/crates/starknet_os/src/hint_processor/common_hint_processor.rs b/crates/starknet_os/src/hint_processor/common_hint_processor.rs index 82eef02c1b3..78bb0d56328 100644 --- a/crates/starknet_os/src/hint_processor/common_hint_processor.rs +++ b/crates/starknet_os/src/hint_processor/common_hint_processor.rs @@ -115,7 +115,7 @@ macro_rules! impl_common_hint_processor_logic { let rng = self.get_rng(); let (random_x, random_y) = loop { // Randomizing 31 bytes to make sure it is in range. - let x_bytes: [u8; 31] = rng.gen(); + let x_bytes: [u8; 31] = rng.random(); let random_x = Felt::from_bytes_be_slice(&x_bytes); let random_y_squared = random_x * random_x * random_x + random_x + BETA; if let Some(random_y) = random_y_squared.sqrt() { diff --git a/crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs b/crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs index 34ae9b03856..3a4c4086e2a 100644 --- a/crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs +++ b/crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs @@ -7,7 +7,7 @@ use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::types::program::Program; use cairo_vm::types::relocatable::MaybeRelocatable; use ethnum::U256; -use num_bigint::{BigInt, BigUint, RandBigInt, RandomBits, Sign, ToBigInt}; +use num_bigint::{BigInt, BigUint, Sign, ToBigInt}; use num_integer::Integer; use rand::Rng; use rstest::rstest; @@ -62,7 +62,7 @@ fn run_reduced_mul_test(a_split: &[Felt], b_split: &[Felt]) { #[test] fn test_bigint3_to_uint256() { let mut rng = seeded_random_prng(); - let random_u256_big_uint: BigUint = rng.sample(RandomBits::new(256)); + let random_u256_big_uint = BigUint::from_bytes_be(&rng.random::<[u8; 32]>()); let random_u256_bigint = BigInt::from_biguint(Sign::Plus, random_u256_big_uint); let cairo_bigin3 = EndpointArg::Value(ValueArg::Array( split_bigint3(random_u256_bigint.clone()) @@ -140,13 +140,13 @@ fn test_horner_eval(#[values(0, 100, 4096)] n_coefficients: usize) { let mut explicit_args: Vec = vec![]; explicit_args.push(n_coefficients.into()); let coefficients: Vec = (0..n_coefficients) - .map(|_| Felt::from(RandBigInt::gen_bigint_range(&mut rng, &0.into(), &DEFAULT_PRIME))) + .map(|_| Felt::from_bytes_be_slice(rng.random::<[u8; 30]>().as_slice())) .collect(); explicit_args.push(EndpointArg::Pointer(PointerArg::Array( coefficients.iter().cloned().map(MaybeRelocatable::from).collect(), ))); - let point = RandBigInt::gen_bigint_range(&mut rng, &0.into(), &BLS_PRIME.to_bigint().unwrap()); + let point: BigInt = BigUint::from_bytes_be(rng.random::<[u8; 30]>().as_slice()).into(); explicit_args.push(EndpointArg::Value(ValueArg::Array( split_bigint3(point.clone()).unwrap().iter().map(MaybeRelocatable::from).collect(), ))); @@ -219,10 +219,10 @@ fn test_reduced_mul_random() { // Generate a,b in (-REDUCED_MUL_LIMB_LIMIT, REDUCED_MUL_LIMB_LIMIT). let mut rng = seeded_random_prng(); let a_split = (0..3) - .map(|_| rng.gen_range(-REDUCED_MUL_LIMB_BOUND + 1..REDUCED_MUL_LIMB_BOUND).into()) + .map(|_| rng.random_range(-REDUCED_MUL_LIMB_BOUND + 1..REDUCED_MUL_LIMB_BOUND).into()) .collect::>(); let b_split = (0..3) - .map(|_| rng.gen_range(-REDUCED_MUL_LIMB_BOUND + 1..REDUCED_MUL_LIMB_BOUND).into()) + .map(|_| rng.random_range(-REDUCED_MUL_LIMB_BOUND + 1..REDUCED_MUL_LIMB_BOUND).into()) .collect::>(); run_reduced_mul_test(&a_split, &b_split) diff --git a/crates/starknet_os/src/hints/hint_implementation/kzg/test_utils.rs b/crates/starknet_os/src/hints/hint_implementation/kzg/test_utils.rs index 8d6d5f37cec..543900af132 100644 --- a/crates/starknet_os/src/hints/hint_implementation/kzg/test_utils.rs +++ b/crates/starknet_os/src/hints/hint_implementation/kzg/test_utils.rs @@ -7,9 +7,9 @@ use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::types::layout_name::LayoutName; use cairo_vm::types::relocatable::MaybeRelocatable; use cairo_vm::vm::runners::cairo_runner::{CairoRunner, ExecutionResources}; -use num_bigint::{BigUint, RandBigInt}; +use num_bigint::BigUint; use rand::rngs::SmallRng; -use rand::SeedableRng; +use rand::{Rng, SeedableRng}; use starknet_types_core::felt::Felt; use crate::hint_processor::common_hint_processor::CommonHintProcessor; @@ -78,11 +78,12 @@ pub fn run_compute_os_kzg_commitment_info(n: usize) -> (CairoRunner, Option().as_slice())) + }) .collect::>(); let MaybeRelocatable::RelocatableValue(start_ptr) = runner.vm.gen_arg(&data).unwrap() else { panic!("Failed to generate start pointer"); diff --git a/crates/starknet_os/src/hints/hint_implementation/output.rs b/crates/starknet_os/src/hints/hint_implementation/output.rs index d2e07875859..bbf49a2b593 100644 --- a/crates/starknet_os/src/hints/hint_implementation/output.rs +++ b/crates/starknet_os/src/hints/hint_implementation/output.rs @@ -3,7 +3,7 @@ use std::cmp::min; use cairo_vm::hint_processor::hint_processor_utils::felt_to_usize; use cairo_vm::types::relocatable::MaybeRelocatable; use rand::rngs::OsRng; -use rand::RngCore; +use rand::TryRngCore; use sha2::{Digest, Sha256}; use starknet_types_core::felt::Felt; @@ -149,7 +149,7 @@ pub(crate) fn set_n_updates_small(mut ctx: HintContext<'_>) -> OsHintResult { pub(crate) fn calculate_keys_using_sha256_hash(mut ctx: HintContext<'_>) -> OsHintResult { // Generate a cryptographically secure random seed. let mut random_bytes = [0u8; 32]; - OsRng.fill_bytes(&mut random_bytes); + OsRng.try_fill_bytes(&mut random_bytes).expect("OS RNG should not fail"); let mut hasher = Sha256::new(); hasher.update(random_bytes); diff --git a/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/state_diff_encryption_test.rs b/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/state_diff_encryption_test.rs index 5a65e04439d..da4c7073d0f 100644 --- a/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/state_diff_encryption_test.rs +++ b/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/state_diff_encryption_test.rs @@ -6,7 +6,6 @@ use cairo_vm::types::layout_name::LayoutName; use cairo_vm::types::relocatable::{MaybeRelocatable, Relocatable}; use cairo_vm::vm::runners::cairo_runner::CairoRunner; use itertools::Itertools; -use num_bigint::BigUint; use rand::rngs::StdRng; use rand::{Rng, SeedableRng}; use rstest::rstest; @@ -79,7 +78,7 @@ fn generate_committee_private_keys_and_symmetric_key( ) -> (Vec, Felt) { let mut rng = StdRng::seed_from_u64(seed); let mut get_random_nonzero_felt = - || Felt::from(rng.gen_range(BigUint::new(vec![1])..Felt::prime())); + || Felt::from_bytes_be_slice(rng.random::<[u8; 30]>().as_slice()) + Felt::ONE; let private_keys = (0..num_keys).map(|_| get_random_nonzero_felt()).collect(); diff --git a/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/utils_test.rs b/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/utils_test.rs index 2591c799d2f..5f34eaade6e 100644 --- a/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/utils_test.rs +++ b/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/utils_test.rs @@ -18,16 +18,16 @@ use crate::io::os_output_types::{PartialOsStateDiff, TryFromOutputIter}; #[test] fn test_encrypt_decrypt_roundtrip_random() { - let mut rng = rand::thread_rng(); + let mut rng = rand::rng(); // Random number of keys. - let n_keys: usize = rng.gen_range(1..=5); + let n_keys: usize = rng.random_range(1..=5); // Generate private keys and corresponding public key x-coordinates. let mut private_keys: Vec = Vec::with_capacity(n_keys); let mut public_keys: Vec = Vec::with_capacity(n_keys); for _ in 0..n_keys { - let private_key = Felt::from(rng.gen_range(1..=1_000_000)); + let private_key = Felt::from(rng.random_range(1..=1_000_000)); let public_key_x = (&AffinePoint::generator() * private_key).x(); private_keys.push(private_key); public_keys.push(public_key_x); @@ -36,18 +36,18 @@ fn test_encrypt_decrypt_roundtrip_random() { // Generate SN private keys. let mut sn_private_keys: Vec = Vec::with_capacity(n_keys); for _ in 0..n_keys { - let sn_priv_scalar: u64 = rng.gen_range(1..=1_000_000); + let sn_priv_scalar: u64 = rng.random_range(1..=1_000_000); sn_private_keys.push(Felt::from(sn_priv_scalar)); } // Random symmetric key. - let symmetric_key = Felt::from_bytes_be(&rng.gen::<[u8; 32]>()); + let symmetric_key = Felt::from_bytes_be(&rng.random::<[u8; 32]>()); // Random state diff. - let state_diff_length: usize = rng.gen_range(0..=20); + let state_diff_length: usize = rng.random_range(0..=20); let mut state_diff: Vec = Vec::with_capacity(state_diff_length); for _ in 0..state_diff_length { - state_diff.push(Felt::from_bytes_be(&rng.gen::<[u8; 32]>())) + state_diff.push(Felt::from_bytes_be(&rng.random::<[u8; 32]>())) } // Encrypt and then decrypt with every keypair. @@ -69,7 +69,7 @@ fn test_encrypt_decrypt_roundtrip_random() { #[test] fn test_decrypt_state_diff_from_blobs() { - let mut rng = rand::thread_rng(); + let mut rng = rand::rng(); // Unencrypted DA segment of output with `full_output=false` and `use_kzg_da=true`. let da_segment = vec![ @@ -97,13 +97,13 @@ fn test_decrypt_state_diff_from_blobs() { .expect("Failed to parse DA segment into PartialOsStateDiff"); // Random number of keys. - let n_keys: usize = rng.gen_range(1..=5); + let n_keys: usize = rng.random_range(1..=5); // Generate private keys and corresponding public key x-coordinates. let mut private_keys: Vec = Vec::with_capacity(n_keys); let mut public_keys: Vec = Vec::with_capacity(n_keys); for _ in 0..n_keys { - let private_key = Felt::from(rng.gen_range(1..=1_000_000)); + let private_key = Felt::from(rng.random_range(1..=1_000_000)); let public_key_x = (&AffinePoint::generator() * private_key).x(); private_keys.push(private_key); public_keys.push(public_key_x); @@ -112,12 +112,12 @@ fn test_decrypt_state_diff_from_blobs() { // Generate SN private keys. let mut sn_private_keys: Vec = Vec::with_capacity(n_keys); for _ in 0..n_keys { - let sn_priv_scalar: u64 = rng.gen_range(1..=1_000_000); + let sn_priv_scalar: u64 = rng.random_range(1..=1_000_000); sn_private_keys.push(Felt::from(sn_priv_scalar)); } // Random symmetric key. - let symmetric_key = Felt::from_bytes_be(&rng.gen::<[u8; 32]>()); + let symmetric_key = Felt::from_bytes_be(&rng.random::<[u8; 32]>()); // Encrypt the DA segment let encrypted_state_diff = encrypt_state_diff(symmetric_key, &da_segment); diff --git a/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs b/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs index 43685cd41c4..bcf2f654ebc 100644 --- a/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs +++ b/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs @@ -92,7 +92,7 @@ pub fn get_random_u256(rng: &mut R, low: U256, high: U256) -> U256 { let bit_len = 256 - delta.leading_zeros(); let mask = if bit_len == 256 { U256::MAX } else { (U256::ONE << bit_len) - U256::ONE }; let rand_u256 = loop { - let bytes: [u8; 32] = rng.gen(); + let bytes: [u8; 32] = rng.random(); let candidate = U256::from_be_bytes(bytes) & mask; if candidate < delta { break candidate; diff --git a/crates/starknet_patricia/src/patricia_merkle_tree/internal_test_utils.rs b/crates/starknet_patricia/src/patricia_merkle_tree/internal_test_utils.rs index 8b4aef9e6fc..0cda2a1e790 100644 --- a/crates/starknet_patricia/src/patricia_merkle_tree/internal_test_utils.rs +++ b/crates/starknet_patricia/src/patricia_merkle_tree/internal_test_utils.rs @@ -62,7 +62,7 @@ impl From<&str> for PathToBottom { #[fixture] pub(crate) fn random() -> ThreadRng { - rand::thread_rng() + rand::rng() } #[rstest] diff --git a/crates/starknet_patricia/src/patricia_merkle_tree/types_test.rs b/crates/starknet_patricia/src/patricia_merkle_tree/types_test.rs index ffacc3773e9..a620ef5ad14 100644 --- a/crates/starknet_patricia/src/patricia_merkle_tree/types_test.rs +++ b/crates/starknet_patricia/src/patricia_merkle_tree/types_test.rs @@ -68,7 +68,7 @@ fn test_get_lca_big(mut random: ThreadRng) { let right_child = left_child + 1; let mut random_extension = |index: NodeIndex| { let extension_bits = index.leading_zeros(); - let extension: u128 = random.gen_range(0..(1 << extension_bits)); + let extension: u128 = random.random_range(0..(1 << extension_bits)); (index << extension_bits) + NodeIndex::new(U256::from(extension)) }; @@ -101,9 +101,9 @@ fn test_get_path_to_descendant( #[rstest] fn test_get_path_to_descendant_big() { - let root_index = NodeIndex::new(U256::from(rand::thread_rng().gen::())); + let root_index = NodeIndex::new(U256::from(rand::rng().random::())); let max_bits = NodeIndex::BITS - 128; - let extension: u128 = rand::thread_rng().gen_range(0..1 << max_bits); + let extension: u128 = rand::rng().random_range(0..1 << max_bits); let extension_index = NodeIndex::new(U256::from(extension)); let descendant = (root_index << extension_index.bit_length()) + extension_index; From b4d5515106199237d04de66addb19dc78b6c074e Mon Sep 17 00:00:00 2001 From: yoavGrs <97383386+yoavGrs@users.noreply.github.com> Date: Thu, 28 May 2026 15:45:42 +0300 Subject: [PATCH 07/20] starknet_committer: split commit_block into read and compute phases (#14213) Extract read_original_forest (IO-bound) and compute_updated_forest (CPU-bound) so the DB is free for parallel reads during computation. Decouple the storage/classes update lifetimes from the original forest's lifetime in the read path, since the forest only borrows the sorted indices; this lets the compute phase take ownership of the update maps. Co-authored-by: Claude Opus 4.7 (1M context) --- .../src/block_committer/commit.rs | 78 +++++++++++++++---- .../starknet_committer/src/db/facts_db/db.rs | 4 +- .../starknet_committer/src/db/forest_trait.rs | 10 +-- .../starknet_committer/src/db/index_db/db.rs | 4 +- .../src/db/trie_traversal.rs | 22 ++++-- 5 files changed, 87 insertions(+), 31 deletions(-) diff --git a/crates/starknet_committer/src/block_committer/commit.rs b/crates/starknet_committer/src/block_committer/commit.rs index e0446507947..570802f78f5 100644 --- a/crates/starknet_committer/src/block_committer/commit.rs +++ b/crates/starknet_committer/src/block_committer/commit.rs @@ -1,6 +1,7 @@ use std::collections::HashMap; use starknet_api::core::{ClassHash, ContractAddress, Nonce}; +use starknet_patricia::patricia_merkle_tree::node_data::leaf::LeafModifications; use starknet_patricia::patricia_merkle_tree::types::{NodeIndex, SortedLeafIndices}; use starknet_types_core::felt::Felt; use tracing::{debug, warn}; @@ -21,11 +22,11 @@ use crate::db::forest_trait::ForestReader; use crate::forest::deleted_nodes::{find_deleted_nodes, DeletedNodes}; use crate::forest::filled_forest::FilledForest; use crate::forest::forest_errors::ForestError; -use crate::forest::original_skeleton_forest::ForestSortedIndices; +use crate::forest::original_skeleton_forest::{ForestSortedIndices, OriginalSkeletonForest}; use crate::forest::updated_skeleton_forest::UpdatedSkeletonForest; use crate::hash_function::hash::TreeHashFunctionImpl; use crate::patricia_merkle_tree::leaf::leaf_impl::ContractState; -use crate::patricia_merkle_tree::types::class_hash_into_node_index; +use crate::patricia_merkle_tree::types::{class_hash_into_node_index, CompiledClassHash}; pub type BlockCommitmentResult = Result; @@ -54,16 +55,50 @@ pub async fn commit_block( + input: &Input, + actual_storage_updates: &HashMap>, + actual_classes_updates: &LeafModifications, + forest_sorted_indices: &'a ForestSortedIndices<'a>, + trie_reader: &mut Reader, + measurements: &mut M, +) -> BlockCommitmentResult<(OriginalSkeletonForest<'a>, HashMap)> { measurements.start_measurement(Action::Read); - let roots = - trie_reader.read_roots(input.initial_read_context).await.map_err(ForestError::from)?; + let roots = trie_reader + .read_roots(input.initial_read_context.clone()) + .await + .map_err(ForestError::from)?; let (original_forest, original_contracts_trie_leaves) = trie_reader .read( roots, - &actual_storage_updates, - &actual_classes_updates, - &forest_sorted_indices, + actual_storage_updates, + actual_classes_updates, + forest_sorted_indices, input.config.clone(), ) .await?; @@ -79,15 +114,28 @@ pub async fn commit_block( + original_forest: OriginalSkeletonForest<'_>, + original_contracts_trie_leaves: HashMap, + actual_storage_updates: HashMap>, + actual_classes_updates: LeafModifications, + state_diff: &StateDiff, + measurements: &mut M, +) -> BlockCommitmentResult<(FilledForest, DeletedNodes)> { measurements.start_measurement(Action::Compute); + + // Compute the new topology. let updated_forest = UpdatedSkeletonForest::create( &original_forest, - &input.state_diff.skeleton_classes_updates(), - &input.state_diff.skeleton_storage_updates(), + &state_diff.skeleton_classes_updates(), + &state_diff.skeleton_storage_updates(), &original_contracts_trie_leaves, - &input.state_diff.address_to_class_hash, - &input.state_diff.address_to_nonce, + &state_diff.address_to_class_hash, + &state_diff.address_to_nonce, )?; debug!("Updated skeleton forest created successfully."); @@ -106,8 +154,8 @@ pub async fn commit_block ForestReader for FactsDb { async fn read<'a>( &mut self, roots: StateRoots, - storage_updates: &'a HashMap>, - classes_updates: &'a LeafModifications, + storage_updates: &HashMap>, + classes_updates: &LeafModifications, forest_sorted_indices: &'a ForestSortedIndices<'a>, config: ReaderConfig, ) -> ForestResult<(OriginalSkeletonForest<'a>, HashMap)> { diff --git a/crates/starknet_committer/src/db/forest_trait.rs b/crates/starknet_committer/src/db/forest_trait.rs index 648cc513ac7..e64eba2b51b 100644 --- a/crates/starknet_committer/src/db/forest_trait.rs +++ b/crates/starknet_committer/src/db/forest_trait.rs @@ -77,13 +77,13 @@ pub trait ForestMetadata { #[async_trait] pub trait ForestReader { /// Input required to start reading the storage trie. - type InitialReadContext: InputContext + Send; + type InitialReadContext: InputContext + Send + Sync; async fn read<'a>( &mut self, roots: StateRoots, - storage_updates: &'a HashMap>, - classes_updates: &'a LeafModifications, + storage_updates: &HashMap>, + classes_updates: &LeafModifications, forest_sorted_indices: &'a ForestSortedIndices<'a>, config: ReaderConfig, ) -> ForestResult<(OriginalSkeletonForest<'a>, HashMap)>; @@ -98,8 +98,8 @@ pub trait ForestReader { pub(crate) async fn read_forest<'a, S, Layout>( storage: &mut S, roots: StateRoots, - storage_updates: &'a HashMap>, - classes_updates: &'a LeafModifications, + storage_updates: &HashMap>, + classes_updates: &LeafModifications, forest_sorted_indices: &'a ForestSortedIndices<'a>, config: ReaderConfig, ) -> ForestResult<(OriginalSkeletonForest<'a>, HashMap)> diff --git a/crates/starknet_committer/src/db/index_db/db.rs b/crates/starknet_committer/src/db/index_db/db.rs index 8105f7a9814..67d4aa09dac 100644 --- a/crates/starknet_committer/src/db/index_db/db.rs +++ b/crates/starknet_committer/src/db/index_db/db.rs @@ -223,8 +223,8 @@ where async fn read<'a>( &mut self, roots: StateRoots, - storage_updates: &'a HashMap>, - classes_updates: &'a LeafModifications, + storage_updates: &HashMap>, + classes_updates: &LeafModifications, forest_sorted_indices: &'a ForestSortedIndices<'a>, config: ReaderConfig, ) -> ForestResult<(OriginalSkeletonForest<'a>, HashMap)> { diff --git a/crates/starknet_committer/src/db/trie_traversal.rs b/crates/starknet_committer/src/db/trie_traversal.rs index 13a1e0a2e35..fd331e48b17 100644 --- a/crates/starknet_committer/src/db/trie_traversal.rs +++ b/crates/starknet_committer/src/db/trie_traversal.rs @@ -662,7 +662,7 @@ pub async fn create_original_skeleton_tree<'a, L: Leaf, Layout: NodeLayout<'a, L /// sequentially. pub async fn create_storage_tries<'a, Layout>( storage: &mut impl Storage, - actual_storage_updates: &'a HashMap>, + actual_storage_updates: &HashMap>, original_contracts_trie_leaves: &HashMap, config: &ReaderConfig, storage_tries_sorted_indices: &'a HashMap>, @@ -796,17 +796,25 @@ where } /// Holds all data needed to build one storage trie concurrently. -/// Implements [StorageTask] so that [GatherableStorage::gather] can drive it. -struct TrieReadTask<'a, Layout: NodeLayoutFor> { +/// +/// Two distinct lifetimes are needed: +/// - `'a` is the lifetime of the caller-owned index vectors that produced `sorted_leaf_indices`. +/// - `'u` is the borrow of `updates`, used only during construction of the original skeleton tree, +/// but does not retain a reference into the output `OriginalSkeletonTreeImpl<'a>`. +/// +/// Unifying the lifetimes would make the returned `OriginalSkeletonForest<'a>` to +/// borrow the storage update maps too, which would prevent `commit_block` from later moving those +/// maps by value into the compute phase. +struct TrieReadTask<'a, 'u, Layout: NodeLayoutFor> { address: ContractAddress, - updates: &'a LeafModifications, + updates: &'u LeafModifications, storage_root_hash: HashOutput, sorted_leaf_indices: SortedLeafIndices<'a>, warn_on_trivial_modifications: bool, _layout: PhantomData, } -impl<'a, S, Layout> StorageTaskOutput for TrieReadTask<'a, Layout> +impl<'a, 'u, S, Layout> StorageTaskOutput for TrieReadTask<'a, 'u, Layout> where S: ImmutableReadOnlyStorage, Layout: NodeLayoutFor + Send + 'static, @@ -815,7 +823,7 @@ where } #[async_trait] -impl<'a, 's, S, Layout> StorageTask<'s, S> for TrieReadTask<'a, Layout> +impl<'a, 'u, 's, S, Layout> StorageTask<'s, S> for TrieReadTask<'a, 'u, Layout> where S: ImmutableReadOnlyStorage + 's, Layout: NodeLayoutFor + Send + 'static, @@ -838,7 +846,7 @@ where async fn create_storage_tries_concurrently<'a, S, Layout>( storage: &mut S, - actual_storage_updates: &'a HashMap>, + actual_storage_updates: &HashMap>, original_contracts_trie_leaves: &HashMap, warn_on_trivial_modifications: bool, storage_tries_sorted_indices: &'a HashMap>, From aee9f908b0e74ea824e65bd09ebed3900b821d53 Mon Sep 17 00:00:00 2001 From: ArielElp <86294909+ArielElp@users.noreply.github.com> Date: Thu, 28 May 2026 17:40:25 +0300 Subject: [PATCH 08/20] starknet_committer: read and write patricia paths to index db (#13998) --- .../starknet_committer/src/db/forest_trait.rs | 30 ++-- .../starknet_committer/src/db/index_db/db.rs | 150 +++++++++++++++++- 2 files changed, 165 insertions(+), 15 deletions(-) diff --git a/crates/starknet_committer/src/db/forest_trait.rs b/crates/starknet_committer/src/db/forest_trait.rs index e64eba2b51b..1806f106c5e 100644 --- a/crates/starknet_committer/src/db/forest_trait.rs +++ b/crates/starknet_committer/src/db/forest_trait.rs @@ -185,6 +185,24 @@ pub trait ForestWriterWithMetadata: ForestWriter + ForestMetadata { /// Serializes deleted nodes into a vector of database keys. fn serialize_deleted_nodes(deleted_nodes: DeletedNodes) -> Vec; + /// Appends serialized forest nodes, metadata entries, and deleted nodes to + /// `operations`. + fn append_forest_and_metadata( + operations: &mut DbOperationMap, + filled_forest: &FilledForest, + metadata: HashMap, + deleted_nodes: DeletedNodes, + ) -> SerializationResult<()> { + for key in Self::serialize_deleted_nodes(deleted_nodes) { + operations.insert(key, DbOperation::Delete); + } + operations.extend(updates_to_set_operations(Self::serialize_forest(filled_forest)?)); + for (metadata_type, value) in metadata { + operations.insert(Self::metadata_key(metadata_type), DbOperation::Set(value)); + } + Ok(()) + } + /// Writes only metadata entries to storage, without a filled forest. /// Returns an error if any of the metadata keys are already set. /// May overwrite existing metadata in case of a write race (existence check and writing are not @@ -212,16 +230,8 @@ pub trait ForestWriterWithMetadata: ForestWriter + ForestMetadata { metadata: HashMap, deleted_nodes: DeletedNodes, ) -> SerializationResult { - let mut updates = Self::serialize_forest(filled_forest)?; - for (metadata_type, value) in metadata { - Self::insert_metadata(&mut updates, metadata_type, value); - } - let keys_to_delete = Self::serialize_deleted_nodes(deleted_nodes); - let operations = keys_to_delete - .into_iter() - .map(|key| (key, DbOperation::Delete)) - .chain(updates_to_set_operations(updates)) - .collect(); + let mut operations = DbOperationMap::new(); + Self::append_forest_and_metadata(&mut operations, filled_forest, metadata, deleted_nodes)?; Ok(self.write_updates(operations).await) } } diff --git a/crates/starknet_committer/src/db/index_db/db.rs b/crates/starknet_committer/src/db/index_db/db.rs index 67d4aa09dac..21ad8066a70 100644 --- a/crates/starknet_committer/src/db/index_db/db.rs +++ b/crates/starknet_committer/src/db/index_db/db.rs @@ -3,17 +3,29 @@ use std::marker::PhantomData; use std::sync::LazyLock; use async_trait::async_trait; +#[cfg(feature = "os_input")] +use starknet_api::block::BlockNumber; use starknet_api::core::{ContractAddress, PATRICIA_KEY_UPPER_BOUND_FELT}; use starknet_api::hash::{HashOutput, StateRoots}; use starknet_patricia::db_layout::{NodeLayout, NodeLayoutFor}; use starknet_patricia::patricia_merkle_tree::filled_tree::node::FilledNode; use starknet_patricia::patricia_merkle_tree::node_data::leaf::{Leaf, LeafModifications}; +#[cfg(feature = "os_input")] +use starknet_patricia::patricia_merkle_tree::traversal::TraversalResult; use starknet_patricia::patricia_merkle_tree::types::NodeIndex; use starknet_patricia::patricia_merkle_tree::updated_skeleton_tree::hash_function::TreeHashFunction; use starknet_patricia_storage::db_object::{DBObject, EmptyKeyContext, HasStaticPrefix}; use starknet_patricia_storage::errors::{DeserializationError, SerializationResult}; +#[cfg(feature = "os_input")] +use starknet_patricia_storage::map_storage::MapStorage; #[cfg(any(feature = "testing", test))] use starknet_patricia_storage::storage_trait::AsyncStorage; +#[cfg(feature = "os_input")] +use starknet_patricia_storage::storage_trait::DbOperation; +#[cfg(feature = "os_input")] +use starknet_patricia_storage::storage_trait::ImmutableReadOnlyStorage; +#[cfg(feature = "os_input")] +use starknet_patricia_storage::storage_trait::PatriciaStorageError; use starknet_patricia_storage::storage_trait::{ DbHashMap, DbKey, @@ -22,10 +34,19 @@ use starknet_patricia_storage::storage_trait::{ PatriciaStorageResult, Storage, }; +#[cfg(feature = "os_input")] +use starknet_patricia_storage::two_layer_storage::TwoLayerStorage; use starknet_types_core::felt::Felt; use crate::block_committer::input::{InputContext, ReaderConfig, StarknetStorageValue}; use crate::db::db_layout::DbLayout; +#[cfg(feature = "os_input")] +use crate::db::forest_trait::forest_trait_witnesses::{ + ForestReaderWithWitnesses, + ForestWriterWithMetadataAndWitnesses, + PatriciaProofsUpdate, + PatriciaProofsWrite, +}; use crate::db::forest_trait::{ read_forest, serialize_forest, @@ -53,11 +74,17 @@ use crate::db::index_db::types::{ use crate::db::serde_db_utils::DbBlockNumber; use crate::forest::deleted_nodes::DeletedNodes; use crate::forest::filled_forest::FilledForest; +#[cfg(feature = "os_input")] +use crate::forest::forest_errors::ForestError; use crate::forest::forest_errors::ForestResult; use crate::forest::original_skeleton_forest::{ForestSortedIndices, OriginalSkeletonForest}; use crate::hash_function::hash::TreeHashFunctionImpl; use crate::patricia_merkle_tree::leaf::leaf_impl::ContractState; +#[cfg(feature = "os_input")] +use crate::patricia_merkle_tree::tree::{fetch_all_patricia_paths, SortedLeafIndices}; use crate::patricia_merkle_tree::types::CompiledClassHash; +#[cfg(feature = "os_input")] +use crate::patricia_merkle_tree::types::StarknetForestProofs; /// Set to 2^251 + 1 to avoid collisions with contract addresses prefixes. pub(crate) static FIRST_AVAILABLE_PREFIX_FELT: LazyLock = @@ -90,7 +117,7 @@ pub(crate) static ACCESSED_KEYS_DIGEST_METADATA_PREFIX: LazyLock<[u8; 32]> = LazyLock::new(|| (Felt::from_bytes_be(&STATE_ROOT_METADATA_PREFIX) + Felt::ONE).to_bytes_be()); /// Prefix for Patricia proofs payload (per block). -#[allow(dead_code)] +#[cfg_attr(not(feature = "os_input"), expect(dead_code))] pub(crate) static PATRICIA_PATHS_PREFIX: LazyLock<[u8; 32]> = LazyLock::new(|| { (Felt::from_bytes_be(&ACCESSED_KEYS_DIGEST_METADATA_PREFIX) + Felt::ONE).to_bytes_be() }); @@ -288,14 +315,14 @@ impl ForestMetadata for IndexDb { key } ForestMetadataType::StateDiffHash(block_number) => { - metadata_block_number_key(&STATE_DIFF_HASH_METADATA_PREFIX, block_number) + block_number_based_key(&STATE_DIFF_HASH_METADATA_PREFIX, block_number) } ForestMetadataType::StateRoot(block_number) => { - metadata_block_number_key(&STATE_ROOT_METADATA_PREFIX, block_number) + block_number_based_key(&STATE_ROOT_METADATA_PREFIX, block_number) } #[cfg(feature = "os_input")] ForestMetadataType::AccessedKeysDigest(block_number) => { - metadata_block_number_key(&ACCESSED_KEYS_DIGEST_METADATA_PREFIX, block_number) + block_number_based_key(&ACCESSED_KEYS_DIGEST_METADATA_PREFIX, block_number) } }) } @@ -329,7 +356,7 @@ impl ForestWriterWithMetadata for IndexDb { } } -fn metadata_block_number_key(prefix: &[u8; 32], block_number: DbBlockNumber) -> Vec { +fn block_number_based_key(prefix: &[u8; 32], block_number: DbBlockNumber) -> Vec { let mut key = Vec::with_capacity(64); key.extend_from_slice(prefix); key.extend_from_slice(&block_number.serialize()); @@ -337,6 +364,119 @@ fn metadata_block_number_key(prefix: &[u8; 32], block_number: DbBlockNumber) -> key } +#[cfg(feature = "os_input")] +#[async_trait] +impl ForestReaderWithWitnesses + for IndexDb +{ + async fn read_witnesses( + &mut self, + height: BlockNumber, + ) -> ForestResult> { + let db_key = DbKey(block_number_based_key(&PATRICIA_PATHS_PREFIX, DbBlockNumber(height))); + + Ok(match self.get_from_storage(db_key).await? { + None => None, + Some(DbValue(bytes)) => { + Some(StarknetForestProofs::deserialize(&DbValue(bytes)).map_err(|e| { + ForestError::PatriciaStorage(PatriciaStorageError::Deserialization(e)) + })?) + } + }) + } + + async fn fetch_patricia_witnesses( + &mut self, + classes_trie_root_hash: HashOutput, + contracts_trie_root_hash: HashOutput, + class_sorted_leaf_indices: SortedLeafIndices<'_>, + contract_sorted_leaf_indices: SortedLeafIndices<'_>, + contract_storage_sorted_leaf_indices: &HashMap>, + staged_serialized_forest: Option, + ) -> TraversalResult { + match staged_serialized_forest { + None => { + fetch_all_patricia_paths::( + &mut self.storage, + classes_trie_root_hash, + contracts_trie_root_hash, + class_sorted_leaf_indices, + contract_sorted_leaf_indices, + contract_storage_sorted_leaf_indices, + ) + .await + } + Some(modifications) => { + let mut overlay = MapStorage::default(); + overlay.mset(modifications).await?; + let mut layered = TwoLayerStorage::new(overlay, &self.storage); + fetch_all_patricia_paths::( + &mut layered, + classes_trie_root_hash, + contracts_trie_root_hash, + class_sorted_leaf_indices, + contract_sorted_leaf_indices, + contract_storage_sorted_leaf_indices, + ) + .await + } + } + } +} + +#[cfg(feature = "os_input")] +#[async_trait] +impl ForestWriterWithMetadataAndWitnesses for IndexDb { + async fn write_with_metadata_and_witnesses( + &mut self, + filled_forest: &FilledForest, + metadata: HashMap, + deleted_nodes: DeletedNodes, + patricia_proofs_update: PatriciaProofsUpdate, + ) -> SerializationResult { + let mut operations = DbOperationMap::new(); + Self::append_forest_and_metadata(&mut operations, filled_forest, metadata, deleted_nodes)?; + match patricia_proofs_update { + PatriciaProofsUpdate::Delete(block_number) => { + operations.insert( + Self::metadata_key(ForestMetadataType::AccessedKeysDigest(DbBlockNumber( + block_number, + ))), + DbOperation::Delete, + ); + operations.insert( + DbKey(block_number_based_key( + &PATRICIA_PATHS_PREFIX, + DbBlockNumber(block_number), + )), + DbOperation::Delete, + ); + } + PatriciaProofsUpdate::Write(PatriciaProofsWrite { + block_number, + keys_digest, + witnesses, + }) => { + let encoded = witnesses.serialize()?; + operations.insert( + Self::metadata_key(ForestMetadataType::AccessedKeysDigest(DbBlockNumber( + block_number, + ))), + DbOperation::Set(DbValue(keys_digest.to_vec())), + ); + operations.insert( + DbKey(block_number_based_key( + &PATRICIA_PATHS_PREFIX, + DbBlockNumber(block_number), + )), + DbOperation::Set(encoded), + ); + } + } + Ok(self.write_updates(operations).await) + } +} + fn extract_root_hash(root: &Option) -> Result where TreeHashFunctionImpl: TreeHashFunction, From 2c1fafc2d4f214b6359e18b433d131283d41d1f2 Mon Sep 17 00:00:00 2001 From: dorimedini-starkware Date: Thu, 28 May 2026 18:12:12 +0300 Subject: [PATCH 09/20] release: upgrade rand to 0.10 (#14250) --- Cargo.lock | 95 ++++++++++--------- Cargo.toml | 6 +- .../apollo_consensus/src/simulation_test.rs | 2 +- .../src/dynamic_gas_price/test.rs | 2 +- crates/apollo_mempool/benches/utils.rs | 2 +- crates/apollo_mempool/src/mempool.rs | 2 +- .../apollo_p2p_sync/src/client/class_test.rs | 2 +- crates/apollo_p2p_sync/src/client/test.rs | 2 +- .../apollo_p2p_sync/src/client/test_utils.rs | 2 +- .../src/converters/test_instances.rs | 2 +- crates/apollo_rpc/src/v0_8/api/test.rs | 2 +- crates/apollo_state_sync/Cargo.toml | 1 + crates/apollo_state_sync/src/test.rs | 2 +- .../src/db/table_types/test_utils.rs | 2 +- .../src/mmap_file/mmap_file_test.rs | 2 +- crates/apollo_storage/src/version_test.rs | 2 +- crates/apollo_test_utils/src/lib.rs | 4 +- .../src/test_utils/transfers_generator.rs | 2 +- crates/starknet_api/src/transaction.rs | 2 + crates/starknet_committer_cli/src/commands.rs | 5 +- .../aggregator_hint_processor.rs | 2 +- .../src/hint_processor/snos_hint_processor.rs | 2 +- .../hint_implementation/bls_field/tests.rs | 2 +- .../hint_implementation/kzg/test_utils.rs | 2 +- .../src/hints/hint_implementation/output.rs | 6 +- .../state_diff_encryption_test.rs | 2 +- .../state_diff_encryption/utils_test.rs | 2 +- .../external_test_utils.rs | 2 +- .../src/patricia_merkle_tree/types_test.rs | 2 +- 29 files changed, 87 insertions(+), 76 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3ebed61ddd5..f497dce4f1c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1320,7 +1320,7 @@ dependencies = [ "lru 0.12.5", "mockall", "prost", - "rand 0.9.2", + "rand 0.10.1", "rstest", "serde", "starknet-types-core", @@ -1440,8 +1440,8 @@ dependencies = [ "mockito", "num-bigint", "num-rational", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.10.1", + "rand_chacha 0.10.0", "reqwest 0.12.24", "reqwest-middleware 0.4.2", "reqwest-retry", @@ -1676,7 +1676,7 @@ dependencies = [ "metrics-exporter-prometheus", "once_cell", "pretty_assertions", - "rand 0.9.2", + "rand 0.10.1", "rstest", "serde", "serde_json", @@ -1947,7 +1947,7 @@ dependencies = [ "metrics-exporter-prometheus", "mockall", "pretty_assertions", - "rand 0.9.2", + "rand 0.10.1", "reqwest 0.12.24", "reqwest-middleware 0.4.2", "reqwest-retry", @@ -1990,7 +1990,7 @@ dependencies = [ "futures", "libp2p", "mockall", - "rand_chacha 0.9.0", + "rand_chacha 0.10.0", "starknet_api", "tokio", "tracing", @@ -2163,7 +2163,7 @@ dependencies = [ "apollo_test_utils", "lazy_static", "libp2p", - "rand_chacha 0.9.0", + "rand_chacha 0.10.0", "serde", ] @@ -2281,8 +2281,8 @@ dependencies = [ "lazy_static", "mockall", "papyrus_common", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.10.1", + "rand_chacha 0.10.0", "starknet-types-core", "starknet_api", "static_assertions", @@ -2390,7 +2390,7 @@ dependencies = [ "libp2p-swarm-test", "lru 0.12.5", "prost", - "rand 0.9.2", + "rand 0.10.1", "reed-solomon-simd", "rstest", "sha2 0.10.9", @@ -2421,8 +2421,8 @@ dependencies = [ "prost", "prost-build", "protoc-prebuilt", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.10.1", + "rand_chacha 0.10.0", "rstest", "serde", "serde_json", @@ -2484,8 +2484,8 @@ dependencies = [ "papyrus_common", "pretty_assertions", "prometheus-parse", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.10.1", + "rand_chacha 0.10.0", "regex", "reqwest 0.12.24", "serde", @@ -2521,7 +2521,7 @@ dependencies = [ "mockall", "papyrus_common", "pretty_assertions", - "rand_chacha 0.9.0", + "rand_chacha 0.10.0", "serde", "serde_json", "starknet-types-core", @@ -2722,7 +2722,8 @@ dependencies = [ "libp2p", "mockall", "papyrus_common", - "rand_chacha 0.9.0", + "rand 0.10.1", + "rand_chacha 0.10.0", "starknet-types-core", "starknet_api", "tokio", @@ -2811,8 +2812,8 @@ dependencies = [ "pretty_assertions", "primitive-types", "prometheus-parse", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.10.1", + "rand_chacha 0.10.0", "reqwest 0.12.24", "rstest", "schemars 1.1.0", @@ -2854,8 +2855,8 @@ dependencies = [ "pretty_assertions", "primitive-types", "prometheus-parse", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.10.1", + "rand_chacha 0.10.0", "reqwest 0.12.24", "serde", "serde_json", @@ -3829,7 +3830,7 @@ dependencies = [ "paste", "phf", "pretty_assertions", - "rand 0.9.2", + "rand 0.10.1", "regex", "rstest", "rstest_reuse", @@ -5208,7 +5209,7 @@ version = "0.1.0" source = "git+https://github.com/starkware-libs/stwo-circuits?rev=2591775#2591775ae8fd7634eda7b77c471f87c163f65eb1" dependencies = [ "blake2", - "hashbrown 0.16.0", + "hashbrown 0.17.1", "indexmap 2.14.0", "itertools 0.12.1", "num-traits", @@ -5221,7 +5222,7 @@ version = "0.1.0" source = "git+https://github.com/starkware-libs/stwo-circuits?rev=c99a181#c99a181518259c1b3b121c2522371748b9acfa03" dependencies = [ "blake2", - "hashbrown 0.16.0", + "hashbrown 0.17.1", "indexmap 2.14.0", "itertools 0.12.1", "num-traits", @@ -5235,7 +5236,7 @@ version = "0.1.0" source = "git+https://github.com/starkware-libs/stwo-circuits?rev=2591775#2591775ae8fd7634eda7b77c471f87c163f65eb1" dependencies = [ "circuits 0.1.0 (git+https://github.com/starkware-libs/stwo-circuits?rev=2591775)", - "hashbrown 0.16.0", + "hashbrown 0.17.1", "indexmap 2.14.0", "itertools 0.12.1", "num-traits", @@ -5249,7 +5250,7 @@ version = "0.1.0" source = "git+https://github.com/starkware-libs/stwo-circuits?rev=c99a181#c99a181518259c1b3b121c2522371748b9acfa03" dependencies = [ "circuits 0.1.0 (git+https://github.com/starkware-libs/stwo-circuits?rev=c99a181)", - "hashbrown 0.16.0", + "hashbrown 0.17.1", "indexmap 2.14.0", "itertools 0.12.1", "num-traits", @@ -7054,8 +7055,6 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" dependencies = [ - "allocator-api2", - "equivalent", "foldhash 0.2.0", "serde", ] @@ -9976,7 +9975,7 @@ dependencies = [ "cairo-lang-starknet-classes", "indexmap 2.14.0", "pretty_assertions", - "rand 0.9.2", + "rand 0.10.1", "serde", "serde_json", "starknet-types-core", @@ -10979,6 +10978,16 @@ dependencies = [ "rand_core 0.9.3", ] +[[package]] +name = "rand_chacha" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e6af7f3e25ded52c41df4e0b1af2d047e45896c2f3281792ed68a1c243daedb" +dependencies = [ + "ppv-lite86", + "rand_core 0.10.1", +] + [[package]] name = "rand_core" version = "0.6.4" @@ -11006,12 +11015,12 @@ checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "rand_distr" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" +checksum = "4d431c2703ccf129de4d45253c03f49ebb22b97d6ad79ee3ecfc7e3f4862c1d8" dependencies = [ "num-traits", - "rand 0.9.2", + "rand 0.10.1", ] [[package]] @@ -12862,7 +12871,7 @@ dependencies = [ "paste", "pretty_assertions", "primitive-types", - "rand 0.9.2", + "rand 0.10.1", "rstest", "semver 1.0.27", "serde", @@ -12892,7 +12901,7 @@ dependencies = [ "expect-test", "hex", "pretty_assertions", - "rand 0.9.2", + "rand 0.10.1", "rand_distr", "rstest", "rstest_reuse", @@ -12930,7 +12939,7 @@ dependencies = [ "futures", "indexmap 2.14.0", "pretty_assertions", - "rand 0.9.2", + "rand 0.10.1", "rand_distr", "serde", "serde_json", @@ -12959,7 +12968,7 @@ dependencies = [ "blake2", "clap", "csv", - "rand 0.9.2", + "rand 0.10.1", "serde", "serde_json", "starknet-types-core", @@ -13005,7 +13014,7 @@ dependencies = [ "num-traits", "papyrus_common", "paste", - "rand 0.9.2", + "rand 0.10.1", "regex", "rstest", "serde", @@ -13040,8 +13049,8 @@ dependencies = [ "chrono", "expect-test", "itertools 0.12.1", - "rand 0.9.2", - "rand_chacha 0.9.0", + "rand 0.10.1", + "rand_chacha 0.10.0", "rstest", "serde_json", "starknet-core", @@ -13066,7 +13075,7 @@ dependencies = [ "derive_more", "ethnum", "pretty_assertions", - "rand 0.9.2", + "rand 0.10.1", "rstest", "serde", "serde_json", @@ -13235,7 +13244,7 @@ dependencies = [ "dashmap", "educe 0.5.11", "fnv", - "hashbrown 0.16.0", + "hashbrown 0.17.1", "hex", "indexmap 2.14.0", "itertools 0.12.1", @@ -13264,7 +13273,7 @@ dependencies = [ "dashmap", "educe 0.5.11", "fnv", - "hashbrown 0.16.0", + "hashbrown 0.17.1", "hex", "indexmap 2.14.0", "itertools 0.12.1", @@ -13444,7 +13453,7 @@ name = "stwo-constraint-framework" version = "2.1.0" source = "git+https://github.com/starkware-libs/stwo?rev=aeceb74c#aeceb74c58184d7886ebd7f34a7453fee714ca40" dependencies = [ - "hashbrown 0.16.0", + "hashbrown 0.17.1", "itertools 0.12.1", "num-traits", "rand 0.8.5", @@ -13460,7 +13469,7 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47aca0d5d36d4b015703fb14f162a23cb685e67f8aa08dbe7faf39bd66fe93f1" dependencies = [ - "hashbrown 0.16.0", + "hashbrown 0.17.1", "itertools 0.12.1", "num-traits", "rand 0.8.5", diff --git a/Cargo.toml b/Cargo.toml index b20834a081d..58484b87a94 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -346,9 +346,9 @@ protoc-prebuilt = "0.3.0" pyo3 = "0.19.1" pyo3-log = "0.8.1" quote = "1.0.26" -rand = "0.9.2" -rand_chacha = "0.9.0" -rand_distr = "0.5.1" +rand = "0.10.0" +rand_chacha = "0.10.0" +rand_distr = "0.6.0" reed-solomon-simd = "3.1.0" regex = "1.10.4" replace_with = "0.1.7" diff --git a/crates/apollo_consensus/src/simulation_test.rs b/crates/apollo_consensus/src/simulation_test.rs index c62757e8198..2eb966900c6 100644 --- a/crates/apollo_consensus/src/simulation_test.rs +++ b/crates/apollo_consensus/src/simulation_test.rs @@ -15,7 +15,7 @@ use apollo_protobuf::consensus::{ProposalInit, Vote, VoteType}; use lazy_static::lazy_static; use rand::rngs::StdRng; use rand::seq::IndexedRandom; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use starknet_api::block::BlockNumber; use starknet_api::crypto::utils::RawSignature; use starknet_types_core::felt::Felt; diff --git a/crates/apollo_consensus_orchestrator/src/dynamic_gas_price/test.rs b/crates/apollo_consensus_orchestrator/src/dynamic_gas_price/test.rs index 5af04fe3035..efcaac491f0 100644 --- a/crates/apollo_consensus_orchestrator/src/dynamic_gas_price/test.rs +++ b/crates/apollo_consensus_orchestrator/src/dynamic_gas_price/test.rs @@ -1,7 +1,7 @@ use std::collections::BTreeMap; use apollo_versioned_constants::VersionedConstants; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use rand_chacha::ChaCha8Rng; use rstest::rstest; use starknet_api::block::{BlockNumber, GasPrice}; diff --git a/crates/apollo_mempool/benches/utils.rs b/crates/apollo_mempool/benches/utils.rs index 2275640993a..a447cff08e4 100644 --- a/crates/apollo_mempool/benches/utils.rs +++ b/crates/apollo_mempool/benches/utils.rs @@ -24,7 +24,7 @@ use blockifier_test_utils::contracts::FeatureContract; use indexmap::IndexSet; use mempool_test_utils::starknet_api_test_utils::MultiAccountTransactionGenerator; use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use starknet_api::core::{ContractAddress, Nonce}; use starknet_api::rpc_transaction::{ InternalRpcTransaction, diff --git a/crates/apollo_mempool/src/mempool.rs b/crates/apollo_mempool/src/mempool.rs index 3a455d9455c..d441d0329ef 100644 --- a/crates/apollo_mempool/src/mempool.rs +++ b/crates/apollo_mempool/src/mempool.rs @@ -16,7 +16,7 @@ use apollo_mempool_types::mempool_types::{ }; use apollo_time::time::{Clock, DateTime}; use indexmap::IndexSet; -use rand::{rng, Rng}; +use rand::{rng, RngExt}; use starknet_api::block::{GasPrice, UnixTimestamp}; use starknet_api::core::{ContractAddress, Nonce}; use starknet_api::rpc_transaction::{ diff --git a/crates/apollo_p2p_sync/src/client/class_test.rs b/crates/apollo_p2p_sync/src/client/class_test.rs index 33a09c17a42..7679ffa64b2 100644 --- a/crates/apollo_p2p_sync/src/client/class_test.rs +++ b/crates/apollo_p2p_sync/src/client/class_test.rs @@ -15,7 +15,7 @@ use apollo_test_utils::{get_rng, GetTestInstance}; use futures::FutureExt; use mockall::predicate::eq; use papyrus_common::pending_classes::ApiContractClass; -use rand::{Rng, RngCore}; +use rand::{Rng, RngExt}; use rand_chacha::ChaCha8Rng; use starknet_api::block::BlockNumber; use starknet_api::core::{ClassHash, CompiledClassHash, EntryPointSelector}; diff --git a/crates/apollo_p2p_sync/src/client/test.rs b/crates/apollo_p2p_sync/src/client/test.rs index 96b69d90b86..236b02ac4b7 100644 --- a/crates/apollo_p2p_sync/src/client/test.rs +++ b/crates/apollo_p2p_sync/src/client/test.rs @@ -9,7 +9,7 @@ use apollo_storage::state::StateStorageReader; use apollo_test_utils::{get_rng, GetTestInstance}; use futures::FutureExt; use indexmap::IndexMap; -use rand::Rng; +use rand::RngExt; use rand_chacha::ChaCha8Rng; use starknet_api::block::{BlockHeaderWithoutHash, BlockNumber}; use starknet_api::block_hash::block_hash_calculator::BlockHeaderCommitments; diff --git a/crates/apollo_p2p_sync/src/client/test_utils.rs b/crates/apollo_p2p_sync/src/client/test_utils.rs index d04258529f6..69d03aaba02 100644 --- a/crates/apollo_p2p_sync/src/client/test_utils.rs +++ b/crates/apollo_p2p_sync/src/client/test_utils.rs @@ -34,7 +34,7 @@ use futures::future::BoxFuture; use futures::{FutureExt, SinkExt, StreamExt}; use lazy_static::lazy_static; use papyrus_common::pending_classes::ApiContractClass; -use rand::{Rng, RngCore}; +use rand::{Rng, RngExt}; use rand_chacha::ChaCha8Rng; use starknet_api::block::{ BlockHash, diff --git a/crates/apollo_protobuf/src/converters/test_instances.rs b/crates/apollo_protobuf/src/converters/test_instances.rs index ed2e457834e..4f0ed58c902 100644 --- a/crates/apollo_protobuf/src/converters/test_instances.rs +++ b/crates/apollo_protobuf/src/converters/test_instances.rs @@ -2,7 +2,7 @@ use std::fmt::Display; use apollo_test_utils::{auto_impl_get_test_instance, get_number_of_variants, GetTestInstance}; use prost::DecodeError; -use rand::Rng; +use rand::RngExt; use starknet_api::block::{BlockNumber, GasPrice, StarknetVersion}; use starknet_api::consensus_transaction::ConsensusTransaction; use starknet_api::core::ContractAddress; diff --git a/crates/apollo_rpc/src/v0_8/api/test.rs b/crates/apollo_rpc/src/v0_8/api/test.rs index 576990301c5..3cb22969888 100644 --- a/crates/apollo_rpc/src/v0_8/api/test.rs +++ b/crates/apollo_rpc/src/v0_8/api/test.rs @@ -68,7 +68,7 @@ use lazy_static::lazy_static; use mockall::predicate::eq; use papyrus_common::pending_classes::{ApiContractClass, PendingClassesTrait}; use pretty_assertions::assert_eq; -use rand::{random, RngCore}; +use rand::{random, Rng}; use rand_chacha::ChaCha8Rng; use reqwest::StatusCode; use serde::{Deserialize, Serialize}; diff --git a/crates/apollo_state_sync/Cargo.toml b/crates/apollo_state_sync/Cargo.toml index 0d83fa4eb5a..3428e1fb3f0 100644 --- a/crates/apollo_state_sync/Cargo.toml +++ b/crates/apollo_state_sync/Cargo.toml @@ -47,4 +47,5 @@ apollo_test_utils.workspace = true indexmap = { workspace = true, features = ["serde"] } libp2p.workspace = true mockall.workspace = true +rand.workspace = true rand_chacha.workspace = true diff --git a/crates/apollo_state_sync/src/test.rs b/crates/apollo_state_sync/src/test.rs index 0dcce16ca4a..df0117ffac9 100644 --- a/crates/apollo_state_sync/src/test.rs +++ b/crates/apollo_state_sync/src/test.rs @@ -15,7 +15,7 @@ use apollo_test_utils::{get_rng, get_test_block, get_test_state_diff, GetTestIns use futures::channel::mpsc::channel; use indexmap::IndexMap; use mockall::predicate; -use rand_chacha::rand_core::RngCore; +use rand::Rng; use starknet_api::block::{Block, BlockHash, BlockHeader, BlockNumber}; use starknet_api::core::{ClassHash, ContractAddress, Nonce}; use starknet_api::hash::StarkHash; diff --git a/crates/apollo_storage/src/db/table_types/test_utils.rs b/crates/apollo_storage/src/db/table_types/test_utils.rs index 6cde67033b2..a118cea8607 100644 --- a/crates/apollo_storage/src/db/table_types/test_utils.rs +++ b/crates/apollo_storage/src/db/table_types/test_utils.rs @@ -1,6 +1,6 @@ use assert_matches::assert_matches; use rand::rngs::ThreadRng; -use rand::Rng; +use rand::RngExt; use tracing::debug; use super::{Table, TableType}; diff --git a/crates/apollo_storage/src/mmap_file/mmap_file_test.rs b/crates/apollo_storage/src/mmap_file/mmap_file_test.rs index e31b7ebdfb1..ee8c0c390ae 100644 --- a/crates/apollo_storage/src/mmap_file/mmap_file_test.rs +++ b/crates/apollo_storage/src/mmap_file/mmap_file_test.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use apollo_test_utils::get_rng; use pretty_assertions::assert_eq; -use rand::Rng; +use rand::RngExt; use tempfile::tempdir; use tokio::sync::{Barrier, RwLock}; diff --git a/crates/apollo_storage/src/version_test.rs b/crates/apollo_storage/src/version_test.rs index e9a45a8028a..a5eb5944dda 100644 --- a/crates/apollo_storage/src/version_test.rs +++ b/crates/apollo_storage/src/version_test.rs @@ -1,6 +1,6 @@ use assert_matches::assert_matches; use pretty_assertions::assert_eq; -use rand::Rng; +use rand::RngExt; use crate::db::table_types::Table; use crate::test_utils::{ diff --git a/crates/apollo_test_utils/src/lib.rs b/crates/apollo_test_utils/src/lib.rs index cd1387850bc..03937d83fec 100644 --- a/crates/apollo_test_utils/src/lib.rs +++ b/crates/apollo_test_utils/src/lib.rs @@ -34,7 +34,7 @@ use primitive_types::H160; use prometheus_parse::Value; // Re-export for use in downstream crates. pub use rand; -use rand::{Rng, RngCore, SeedableRng}; +use rand::{Rng, RngExt, SeedableRng}; // Re-export for use in downstream crates. pub use rand_chacha; use rand_chacha::ChaCha8Rng; @@ -1065,7 +1065,7 @@ macro_rules! auto_impl_get_test_instance { ($(pub)? enum $name:ident { $($variant:ident $( ($ty:ty) )? = $num:expr ,)* } $($rest:tt)*) => { impl GetTestInstance for $name { fn get_test_instance(rng: &mut $crate::rand_chacha::ChaCha8Rng) -> Self { - use $crate::rand::Rng; + use $crate::rand::RngExt; let variant = rng.random_range(0..get_number_of_variants!(enum $name { $($variant $( ($ty) )? = $num ,)* })); match variant { $( diff --git a/crates/blockifier/src/test_utils/transfers_generator.rs b/crates/blockifier/src/test_utils/transfers_generator.rs index b9dc916c45e..ff79b2ec833 100644 --- a/crates/blockifier/src/test_utils/transfers_generator.rs +++ b/crates/blockifier/src/test_utils/transfers_generator.rs @@ -4,7 +4,7 @@ use std::time::{Duration, Instant}; use blockifier_test_utils::cairo_versions::CairoVersion; use blockifier_test_utils::contracts::FeatureContract; use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use starknet_api::abi::abi_utils::selector_from_name; use starknet_api::block::BlockInfo; use starknet_api::core::ContractAddress; diff --git a/crates/starknet_api/src/transaction.rs b/crates/starknet_api/src/transaction.rs index 7075015c872..38cc2272f42 100644 --- a/crates/starknet_api/src/transaction.rs +++ b/crates/starknet_api/src/transaction.rs @@ -2,6 +2,8 @@ use std::sync::LazyLock; use apollo_sizeof::SizeOf; use num_bigint::BigUint; +#[cfg(any(feature = "testing", test))] +use rand::RngExt; use serde::{Deserialize, Serialize}; use starknet_types_core::felt::Felt; diff --git a/crates/starknet_committer_cli/src/commands.rs b/crates/starknet_committer_cli/src/commands.rs index 2e6e8ccabdf..aae338b0f61 100644 --- a/crates/starknet_committer_cli/src/commands.rs +++ b/crates/starknet_committer_cli/src/commands.rs @@ -15,7 +15,7 @@ use blake2::{Blake2s, Digest}; use rand::distr::Uniform; use rand::prelude::IteratorRandom; use rand::rngs::SmallRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use starknet_api::block::BlockNumber; use starknet_api::core::ChainId; use starknet_api::hash::HashOutput; @@ -181,8 +181,7 @@ impl BenchmarkFlavor { // most recent leaves. let start_index = total_leaves - (FLAVOR_OVERLAP_WARMUP_BLOCKS * n_updates_arg); let n_overlap_leaves = n_updates_arg - twenty_percent; - let updated_keys = - (start_index..total_leaves).choose_multiple(rng, n_overlap_leaves); + let updated_keys = (start_index..total_leaves).sample(rng, n_overlap_leaves); let new_keys = (total_leaves..(total_leaves + twenty_percent)).collect(); [updated_keys, new_keys].concat() }) diff --git a/crates/starknet_os/src/hint_processor/aggregator_hint_processor.rs b/crates/starknet_os/src/hint_processor/aggregator_hint_processor.rs index fbf6ea4cc43..08b6fac79e4 100644 --- a/crates/starknet_os/src/hint_processor/aggregator_hint_processor.rs +++ b/crates/starknet_os/src/hint_processor/aggregator_hint_processor.rs @@ -14,7 +14,7 @@ use cairo_vm::types::program::Program; use cairo_vm::vm::errors::hint_errors::HintError as VmHintError; use cairo_vm::vm::runners::cairo_runner::ResourceTracker; use cairo_vm::vm::vm_core::VirtualMachine; -use rand::Rng; +use rand::RngExt; use serde::Deserialize; use starknet_types_core::felt::Felt; use tracing::level_filters::LevelFilter; diff --git a/crates/starknet_os/src/hint_processor/snos_hint_processor.rs b/crates/starknet_os/src/hint_processor/snos_hint_processor.rs index 6d10b757ce6..b3c4d1d66af 100644 --- a/crates/starknet_os/src/hint_processor/snos_hint_processor.rs +++ b/crates/starknet_os/src/hint_processor/snos_hint_processor.rs @@ -22,7 +22,7 @@ use cairo_vm::types::relocatable::Relocatable; use cairo_vm::vm::errors::hint_errors::HintError as VmHintError; use cairo_vm::vm::runners::cairo_runner::ResourceTracker; use cairo_vm::vm::vm_core::VirtualMachine; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use starknet_api::core::{ClassHash, CompiledClassHash}; use starknet_api::deprecated_contract_class::ContractClass; use starknet_types_core::felt::Felt; diff --git a/crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs b/crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs index 3a4c4086e2a..c2c4f775155 100644 --- a/crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs +++ b/crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs @@ -9,7 +9,7 @@ use cairo_vm::types::relocatable::MaybeRelocatable; use ethnum::U256; use num_bigint::{BigInt, BigUint, Sign, ToBigInt}; use num_integer::Integer; -use rand::Rng; +use rand::RngExt; use rstest::rstest; use starknet_types_core::felt::Felt; diff --git a/crates/starknet_os/src/hints/hint_implementation/kzg/test_utils.rs b/crates/starknet_os/src/hints/hint_implementation/kzg/test_utils.rs index 543900af132..a3659010d85 100644 --- a/crates/starknet_os/src/hints/hint_implementation/kzg/test_utils.rs +++ b/crates/starknet_os/src/hints/hint_implementation/kzg/test_utils.rs @@ -9,7 +9,7 @@ use cairo_vm::types::relocatable::MaybeRelocatable; use cairo_vm::vm::runners::cairo_runner::{CairoRunner, ExecutionResources}; use num_bigint::BigUint; use rand::rngs::SmallRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use starknet_types_core::felt::Felt; use crate::hint_processor::common_hint_processor::CommonHintProcessor; diff --git a/crates/starknet_os/src/hints/hint_implementation/output.rs b/crates/starknet_os/src/hints/hint_implementation/output.rs index bbf49a2b593..03d97cb22a2 100644 --- a/crates/starknet_os/src/hints/hint_implementation/output.rs +++ b/crates/starknet_os/src/hints/hint_implementation/output.rs @@ -2,8 +2,8 @@ use std::cmp::min; use cairo_vm::hint_processor::hint_processor_utils::felt_to_usize; use cairo_vm::types::relocatable::MaybeRelocatable; -use rand::rngs::OsRng; -use rand::TryRngCore; +use rand::rngs::SysRng; +use rand::TryRng; use sha2::{Digest, Sha256}; use starknet_types_core::felt::Felt; @@ -149,7 +149,7 @@ pub(crate) fn set_n_updates_small(mut ctx: HintContext<'_>) -> OsHintResult { pub(crate) fn calculate_keys_using_sha256_hash(mut ctx: HintContext<'_>) -> OsHintResult { // Generate a cryptographically secure random seed. let mut random_bytes = [0u8; 32]; - OsRng.try_fill_bytes(&mut random_bytes).expect("OS RNG should not fail"); + SysRng.try_fill_bytes(&mut random_bytes).expect("OS RNG should not fail"); let mut hasher = Sha256::new(); hasher.update(random_bytes); diff --git a/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/state_diff_encryption_test.rs b/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/state_diff_encryption_test.rs index da4c7073d0f..c1f3b25102a 100644 --- a/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/state_diff_encryption_test.rs +++ b/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/state_diff_encryption_test.rs @@ -7,7 +7,7 @@ use cairo_vm::types::relocatable::{MaybeRelocatable, Relocatable}; use cairo_vm::vm::runners::cairo_runner::CairoRunner; use itertools::Itertools; use rand::rngs::StdRng; -use rand::{Rng, SeedableRng}; +use rand::{RngExt, SeedableRng}; use rstest::rstest; use starknet_types_core::felt::Felt; diff --git a/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/utils_test.rs b/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/utils_test.rs index 5f34eaade6e..ff2448b98c5 100644 --- a/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/utils_test.rs +++ b/crates/starknet_os/src/hints/hint_implementation/state_diff_encryption/utils_test.rs @@ -1,5 +1,5 @@ use ark_bls12_381::Fr; -use rand::Rng; +use rand::RngExt; use starknet_types_core::curve::AffinePoint; use starknet_types_core::felt::Felt; diff --git a/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs b/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs index bcf2f654ebc..9c9e79e3f21 100644 --- a/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs +++ b/crates/starknet_patricia/src/patricia_merkle_tree/external_test_utils.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use ethnum::U256; -use rand::Rng; +use rand::{Rng, RngExt}; use starknet_api::hash::HashOutput; use starknet_patricia_storage::db_object::{ DBObject, diff --git a/crates/starknet_patricia/src/patricia_merkle_tree/types_test.rs b/crates/starknet_patricia/src/patricia_merkle_tree/types_test.rs index a620ef5ad14..18ba3345fe6 100644 --- a/crates/starknet_patricia/src/patricia_merkle_tree/types_test.rs +++ b/crates/starknet_patricia/src/patricia_merkle_tree/types_test.rs @@ -1,6 +1,6 @@ use ethnum::{uint, U256}; use rand::rngs::ThreadRng; -use rand::Rng; +use rand::RngExt; use rstest::rstest; use starknet_types_core::felt::Felt; From 399a721af8b423de1863888baaa60fedc784a43f Mon Sep 17 00:00:00 2001 From: yoavGrs <97383386+yoavGrs@users.noreply.github.com> Date: Fri, 29 May 2026 12:41:38 +0300 Subject: [PATCH 10/20] starknet_committer: derive skeleton updates from actual updates (#14214) read_original_forest now takes &Input. The skeleton updates fed to UpdatedSkeletonForest are derived from the already-computed actual updates via a generic skeleton_trie_updates (pure value mapping), instead of re-walking the state diff. Adds From<_> for SkeletonLeaf impls for the leaf value types to back the generic bound. Co-authored-by: Claude Opus 4.7 (1M context) --- .../src/block_committer/commit.rs | 20 +++++--- .../src/block_committer/input.rs | 51 +++++++++---------- .../src/patricia_merkle_tree/types.rs | 7 +++ 3 files changed, 43 insertions(+), 35 deletions(-) diff --git a/crates/starknet_committer/src/block_committer/commit.rs b/crates/starknet_committer/src/block_committer/commit.rs index 570802f78f5..e7b42f67ce9 100644 --- a/crates/starknet_committer/src/block_committer/commit.rs +++ b/crates/starknet_committer/src/block_committer/commit.rs @@ -9,6 +9,8 @@ use tracing::{debug, warn}; use crate::block_committer::errors::BlockCommitmentError; use crate::block_committer::input::{ contract_address_into_node_index, + skeleton_storage_updates, + skeleton_trie_updates, Input, StarknetStorageValue, StateDiff, @@ -73,7 +75,8 @@ pub async fn commit_block( original_contracts_trie_leaves: HashMap, actual_storage_updates: HashMap>, actual_classes_updates: LeafModifications, - state_diff: &StateDiff, + address_to_class_hash: &HashMap, + address_to_nonce: &HashMap, measurements: &mut M, ) -> BlockCommitmentResult<(FilledForest, DeletedNodes)> { measurements.start_measurement(Action::Compute); @@ -131,11 +135,11 @@ async fn compute_updated_forest( // Compute the new topology. let updated_forest = UpdatedSkeletonForest::create( &original_forest, - &state_diff.skeleton_classes_updates(), - &state_diff.skeleton_storage_updates(), + &skeleton_trie_updates(&actual_classes_updates), + &skeleton_storage_updates(&actual_storage_updates), &original_contracts_trie_leaves, - &state_diff.address_to_class_hash, - &state_diff.address_to_nonce, + address_to_class_hash, + address_to_nonce, )?; debug!("Updated skeleton forest created successfully."); @@ -154,8 +158,8 @@ async fn compute_updated_forest( actual_storage_updates, actual_classes_updates, &original_contracts_trie_leaves, - &state_diff.address_to_class_hash, - &state_diff.address_to_nonce, + address_to_class_hash, + address_to_nonce, ) .await?; measurements.attempt_to_stop_measurement(Action::Compute, 0).ok(); diff --git a/crates/starknet_committer/src/block_committer/input.rs b/crates/starknet_committer/src/block_committer/input.rs index 8d5284142ee..272bd30e22a 100644 --- a/crates/starknet_committer/src/block_committer/input.rs +++ b/crates/starknet_committer/src/block_committer/input.rs @@ -74,6 +74,12 @@ impl From for StarknetStorageKey { #[derive(Clone, Copy, Default, Debug, Deserialize, Eq, PartialEq, Serialize)] pub struct StarknetStorageValue(pub Felt); +impl From for SkeletonLeaf { + fn from(value: StarknetStorageValue) -> Self { + SkeletonLeaf::from(value.0) + } +} + #[derive(Clone, Debug, Default, Deserialize, Eq, PartialEq, Serialize)] pub struct StateDiff { pub address_to_class_hash: HashMap, @@ -264,33 +270,6 @@ impl StateDiff { } /// For each modified contract calculates it's actual storage updates. - pub(crate) fn skeleton_storage_updates( - &self, - ) -> HashMap> { - self.accessed_addresses() - .iter() - .map(|address| { - let updates = match self.storage_updates.get(address) { - Some(inner_updates) => inner_updates - .iter() - .map(|(key, value)| (key.into(), SkeletonLeaf::from(value.0))) - .collect(), - None => HashMap::new(), - }; - (**address, updates) - }) - .collect() - } - - pub(crate) fn skeleton_classes_updates(&self) -> LeafModifications { - self.class_hash_to_compiled_class_hash - .iter() - .map(|(class_hash, compiled_class_hash)| { - (class_hash_into_node_index(class_hash), SkeletonLeaf::from(compiled_class_hash.0)) - }) - .collect() - } - pub(crate) fn actual_storage_updates( &self, ) -> HashMap> { @@ -317,3 +296,21 @@ impl StateDiff { .collect() } } + +/// Reduces a single trie's actual leaf updates to skeleton updates (whether each leaf is zero or +/// non-zero). +pub(crate) fn skeleton_trie_updates>( + actual_updates: &LeafModifications, +) -> LeafModifications { + actual_updates.iter().map(|(&index, &value)| (index, value.into())).collect() +} + +/// Reduces the actual storage updates to skeleton updates. +pub(crate) fn skeleton_storage_updates( + actual_storage_updates: &HashMap>, +) -> HashMap> { + actual_storage_updates + .iter() + .map(|(address, updates)| (*address, skeleton_trie_updates(updates))) + .collect() +} diff --git a/crates/starknet_committer/src/patricia_merkle_tree/types.rs b/crates/starknet_committer/src/patricia_merkle_tree/types.rs index 275c3696ce0..2b18a8ef90a 100644 --- a/crates/starknet_committer/src/patricia_merkle_tree/types.rs +++ b/crates/starknet_committer/src/patricia_merkle_tree/types.rs @@ -6,6 +6,7 @@ use starknet_api::hash::HashOutput; use starknet_patricia::impl_from_hex_for_felt_wrapper; use starknet_patricia::patricia_merkle_tree::filled_tree::tree::FilledTreeImpl; use starknet_patricia::patricia_merkle_tree::node_data::inner_node::PreimageMap; +use starknet_patricia::patricia_merkle_tree::node_data::leaf::SkeletonLeaf; use starknet_patricia::patricia_merkle_tree::types::NodeIndex; use starknet_types_core::felt::{Felt, FromStrError}; @@ -23,6 +24,12 @@ pub fn class_hash_into_node_index(class_hash: &ClassHash) -> NodeIndex { #[derive(Clone, Copy, Debug, Default, Deserialize, Eq, PartialEq, Serialize)] pub struct CompiledClassHash(pub Felt); +impl From for SkeletonLeaf { + fn from(compiled_class_hash: CompiledClassHash) -> Self { + SkeletonLeaf::from(compiled_class_hash.0) + } +} + impl AsRef for CompiledClassHash { fn as_ref(&self) -> &CompiledClassHash { self From e7030f160fb1b658b59cc6c088ea462357e2c0c9 Mon Sep 17 00:00:00 2001 From: dorimedini-starkware Date: Fri, 29 May 2026 15:22:39 +0300 Subject: [PATCH 11/20] starknet_os: import random EC point logic (#14195) --- .../aggregator_hint_processor.rs | 3 +-- .../hint_processor/common_hint_processor.rs | 20 +------------------ .../src/hint_processor/snos_hint_processor.rs | 4 ++-- 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/crates/starknet_os/src/hint_processor/aggregator_hint_processor.rs b/crates/starknet_os/src/hint_processor/aggregator_hint_processor.rs index 08b6fac79e4..33fb67d66f4 100644 --- a/crates/starknet_os/src/hint_processor/aggregator_hint_processor.rs +++ b/crates/starknet_os/src/hint_processor/aggregator_hint_processor.rs @@ -3,7 +3,7 @@ use std::boxed::Box; use std::path::PathBuf; use cairo_lang_casm::hints::{CoreHint, CoreHintBase, Hint as Cairo1Hint, StarknetHint}; -use cairo_lang_runner::casm_run::{cell_ref_to_relocatable, execute_core_hint_base}; +use cairo_lang_runner::casm_run::execute_core_hint_base; use cairo_vm::hint_processor::builtin_hint_processor::builtin_hint_processor_definition::{ BuiltinHintProcessor, HintProcessorData as Cairo0Hint, @@ -14,7 +14,6 @@ use cairo_vm::types::program::Program; use cairo_vm::vm::errors::hint_errors::HintError as VmHintError; use cairo_vm::vm::runners::cairo_runner::ResourceTracker; use cairo_vm::vm::vm_core::VirtualMachine; -use rand::RngExt; use serde::Deserialize; use starknet_types_core::felt::Felt; use tracing::level_filters::LevelFilter; diff --git a/crates/starknet_os/src/hint_processor/common_hint_processor.rs b/crates/starknet_os/src/hint_processor/common_hint_processor.rs index 78bb0d56328..2ad53c17787 100644 --- a/crates/starknet_os/src/hint_processor/common_hint_processor.rs +++ b/crates/starknet_os/src/hint_processor/common_hint_processor.rs @@ -105,25 +105,7 @@ macro_rules! impl_common_hint_processor_logic { // Override the [CoreHint::RandomEcPoint] implementation to make the output // deterministic (using seeded randomness). Cairo1Hint::Core(CoreHintBase::Core(CoreHint::RandomEcPoint { x, y })) => { - // TODO(Dori): use the random_ec_point function from the compiler repo when - // available, instead of inlining the implementation. - /// The Beta value of the Starkware elliptic curve. - pub const BETA: Felt = Felt::from_hex_unchecked( - "0x6f21413efbe40de150e596d72f7a8c5609ad26c15c915c1f4cdfcb99cee9e89", - ); - // Use the seeded randomness. - let rng = self.get_rng(); - let (random_x, random_y) = loop { - // Randomizing 31 bytes to make sure it is in range. - let x_bytes: [u8; 31] = rng.random(); - let random_x = Felt::from_bytes_be_slice(&x_bytes); - let random_y_squared = random_x * random_x * random_x + random_x + BETA; - if let Some(random_y) = random_y_squared.sqrt() { - break (random_x, random_y); - } - }; - cairo_lang_runner::insert_value_to_cellref!(vm, x, random_x)?; - cairo_lang_runner::insert_value_to_cellref!(vm, y, random_y)?; + cairo_lang_runner::casm_run::random_ec_point(vm, x, y, self.get_rng())?; Ok(HintExtension::default()) } Cairo1Hint::Core(hint) => { diff --git a/crates/starknet_os/src/hint_processor/snos_hint_processor.rs b/crates/starknet_os/src/hint_processor/snos_hint_processor.rs index b3c4d1d66af..b76fb95eb6b 100644 --- a/crates/starknet_os/src/hint_processor/snos_hint_processor.rs +++ b/crates/starknet_os/src/hint_processor/snos_hint_processor.rs @@ -9,7 +9,7 @@ use blockifier::state::state_api::StateReader; #[cfg(any(feature = "testing", test))] use blockifier::test_utils::dict_state_reader::DictStateReader; use cairo_lang_casm::hints::{CoreHint, CoreHintBase, Hint as Cairo1Hint, StarknetHint}; -use cairo_lang_runner::casm_run::{cell_ref_to_relocatable, execute_core_hint_base}; +use cairo_lang_runner::casm_run::execute_core_hint_base; use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass; use cairo_vm::hint_processor::builtin_hint_processor::builtin_hint_processor_definition::{ BuiltinHintProcessor, @@ -22,7 +22,7 @@ use cairo_vm::types::relocatable::Relocatable; use cairo_vm::vm::errors::hint_errors::HintError as VmHintError; use cairo_vm::vm::runners::cairo_runner::ResourceTracker; use cairo_vm::vm::vm_core::VirtualMachine; -use rand::{RngExt, SeedableRng}; +use rand::SeedableRng; use starknet_api::core::{ClassHash, CompiledClassHash}; use starknet_api::deprecated_contract_class::ContractClass; use starknet_types_core::felt::Felt; From a26e975e70d18abdf73f7b74a7c7bf75bd0ecaa5 Mon Sep 17 00:00:00 2001 From: Avi Cohen Date: Sun, 31 May 2026 14:56:17 +0300 Subject: [PATCH 12/20] scripts: drop the llvm.sh SHA pin in install_llvm19.sh (#14265) The pin only authenticated the install script's bytes, not the LLVM packages it installs. Those are verified by the apt GPG key that llvm.sh fetches over TLS at runtime (unpinned), so the real trust root is already "TLS-authenticated apt.llvm.org" -- the same trust we place in the apt packages themselves. Pinning the script while leaving that key fetch unpinned is a half-measure: a network/host compromise of apt.llvm.org can swap the key and serve malicious packages regardless of the script hash. Given we trust apt.llvm.org over TLS (consistent with the rest of our apt usage), drop the pin and its change-control comments. This also removes the recurring CI break + hash-bump chore on every benign upstream edit to llvm.sh, and aligns this path with the replay Dockerfile, which already fetches llvm.sh unpinned. The download keeps strict TLS (--proto =https --tlsv1.2 --fail). Co-authored-by: Claude Opus 4.8 (1M context) --- scripts/install_llvm19.sh | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/scripts/install_llvm19.sh b/scripts/install_llvm19.sh index b350564360b..f3a82bd1da4 100755 --- a/scripts/install_llvm19.sh +++ b/scripts/install_llvm19.sh @@ -7,25 +7,6 @@ set -e -# Pinned SHA-256 of https://apt.llvm.org/llvm.sh. Recorded 2026-05-14. -# -# Why pin: llvm.sh runs as root in our CI / Docker builds. TLS authenticates the -# server, but not the *content* — an apt.llvm.org compromise, hijacked DNS, or -# even an accidental upstream regression could quietly serve a different script. -# Pinning a SHA means we trust this specific reviewed version, not "whatever the -# URL serves today". -# -# If sha256sum -c fails (loud build break), one of two things happened: -# 1. apt.llvm.org legitimately updated llvm.sh. Read the new file, review the -# diff (compare against the previous pinned commit's version), confirm it's -# safe, then bump LLVM_SH_SHA256 below in a reviewed commit. This is the -# change-control event we want. -# 2. The upstream or network is compromised. Do NOT bump the SHA until the -# cause is investigated. -# -# Same supply-chain hygiene as Cargo.lock pinning crate hashes. -LLVM_SH_SHA256="14a4eda1349f23acf9dc0b564ed44b21bce3bd1703c78b5f7488870d7c6fe68f" - [[ ${UID} == "0" ]] || SUDO="sudo" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)" @@ -62,8 +43,6 @@ function install_llvm19() { trap 'rm -rf "$workdir"' RETURN echo "Downloading LLVM installation script..." curl --proto "=https" --tlsv1.2 --fail -L -o "$llvm_sh" https://apt.llvm.org/llvm.sh - echo "Verifying llvm.sh checksum..." - echo "${LLVM_SH_SHA256} ${llvm_sh}" | sha256sum -c - echo "Running LLVM 19 installation script..." $SUDO bash "$llvm_sh" 19 all echo "Installing LLVM-related packages (MLIR, Polly, etc.)..." From 1dc19d2a08037bf5aa29b25a9784d71a6f4eb5a0 Mon Sep 17 00:00:00 2001 From: yoavGrs <97383386+yoavGrs@users.noreply.github.com> Date: Sun, 31 May 2026 16:04:07 +0300 Subject: [PATCH 13/20] starknet_committer: name TrieReadTask lifetimes and document them (#14239) The struct now uses 'indices / 'updates / 'storage instead of 'a / 'u / 's, and the doc comment explains why two non-storage lifetimes are needed: unifying them would make the returned OriginalSkeletonForest appear to borrow the storage update maps too, preventing the compute phase from moving those maps by value. Co-authored-by: Claude Opus 4.7 (1M context) --- .../src/db/trie_traversal.rs | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/crates/starknet_committer/src/db/trie_traversal.rs b/crates/starknet_committer/src/db/trie_traversal.rs index fd331e48b17..cc9ad0c2761 100644 --- a/crates/starknet_committer/src/db/trie_traversal.rs +++ b/crates/starknet_committer/src/db/trie_traversal.rs @@ -798,39 +798,45 @@ where /// Holds all data needed to build one storage trie concurrently. /// /// Two distinct lifetimes are needed: -/// - `'a` is the lifetime of the caller-owned index vectors that produced `sorted_leaf_indices`. -/// - `'u` is the borrow of `updates`, used only during construction of the original skeleton tree, -/// but does not retain a reference into the output `OriginalSkeletonTreeImpl<'a>`. +/// - `'indices` is the lifetime of the caller-owned index vectors that produced +/// `sorted_leaf_indices`. +/// - `'updates` is the borrow of `updates`, used only during construction of the original skeleton +/// tree, but does not retain a reference into the output `OriginalSkeletonTreeImpl<'indices>`. /// -/// Unifying the lifetimes would make the returned `OriginalSkeletonForest<'a>` to +/// Unifying the lifetimes would make the returned `OriginalSkeletonForest<'indices>` to /// borrow the storage update maps too, which would prevent `commit_block` from later moving those /// maps by value into the compute phase. -struct TrieReadTask<'a, 'u, Layout: NodeLayoutFor> { +struct TrieReadTask<'indices, 'updates, Layout: NodeLayoutFor> { address: ContractAddress, - updates: &'u LeafModifications, + updates: &'updates LeafModifications, storage_root_hash: HashOutput, - sorted_leaf_indices: SortedLeafIndices<'a>, + sorted_leaf_indices: SortedLeafIndices<'indices>, warn_on_trivial_modifications: bool, _layout: PhantomData, } -impl<'a, 'u, S, Layout> StorageTaskOutput for TrieReadTask<'a, 'u, Layout> +impl<'indices, 'updates, S, Layout> StorageTaskOutput + for TrieReadTask<'indices, 'updates, Layout> where S: ImmutableReadOnlyStorage, Layout: NodeLayoutFor + Send + 'static, { - type Output = ForestResult<(ContractAddress, OriginalSkeletonTreeImpl<'a>)>; + type Output = ForestResult<(ContractAddress, OriginalSkeletonTreeImpl<'indices>)>; } #[async_trait] -impl<'a, 'u, 's, S, Layout> StorageTask<'s, S> for TrieReadTask<'a, 'u, Layout> +impl<'indices, 'updates, 'storage, S, Layout> StorageTask<'storage, S> + for TrieReadTask<'indices, 'updates, Layout> where - S: ImmutableReadOnlyStorage + 's, + S: ImmutableReadOnlyStorage + 'storage, Layout: NodeLayoutFor + Send + 'static, >::DbLeaf: HasStaticPrefix, { - async fn run_with_storage(self, storage: &mut ReadsCollectorStorage<'s, S>) -> Self::Output { + async fn run_with_storage( + self, + storage: &mut ReadsCollectorStorage<'storage, S>, + ) -> Self::Output { let skeleton = create_storage_trie::( storage, self.address, From 5190cd0278aeb2c5d6067ec55315db940fa29735 Mon Sep 17 00:00:00 2001 From: ArielElp <86294909+ArielElp@users.noreply.github.com> Date: Sun, 31 May 2026 17:01:32 +0300 Subject: [PATCH 14/20] starknet_committer: extract commit plan to commit_or_load (#13999) --- crates/apollo_committer/src/committer.rs | 110 ++++++++++++++--------- 1 file changed, 70 insertions(+), 40 deletions(-) diff --git a/crates/apollo_committer/src/committer.rs b/crates/apollo_committer/src/committer.rs index a0cb351f307..a864d1d9d86 100644 --- a/crates/apollo_committer/src/committer.rs +++ b/crates/apollo_committer/src/committer.rs @@ -91,6 +91,14 @@ struct CommitStateDiffOutput { pub global_root: GlobalRoot, } +/// Classification of a commit request's `height` w.r.t the committer offset. +enum CommitBlockHeightPlan { + /// `height` is already committed; return the stored global root without writing. + Historical { global_root: GlobalRoot }, + /// `height` is the next uncommitted offset; inputs are validated and ready to commit. + CommitTip { state_diff_commitment: StateDiffCommitment }, +} + /// Apollo committer. Maintains the Starknet state tries in persistent storage. pub struct Committer where @@ -152,6 +160,63 @@ where "Received request to commit block number {height} with state diff \ {state_diff_commitment:?}" ); + + match self.commit_or_load(&state_diff, state_diff_commitment, height).await? { + CommitBlockHeightPlan::Historical { global_root } => { + Ok(CommitBlockResponse { global_root }) + } + CommitBlockHeightPlan::CommitTip { state_diff_commitment } => { + // Happy flow. Commits the state diff and returns the computed global root. + debug!( + "Committing block number {height} with state diff {state_diff_commitment:?}" + ); + let mut block_measurements = SingleBlockMeasurements::default(); + block_measurements.start_measurement(Action::EndToEnd); + let CommitStateDiffOutput { filled_forest, global_root, deleted_nodes } = + self.commit_state_diff(state_diff, &mut block_measurements).await?; + let next_offset = height.unchecked_next(); + let metadata = HashMap::from([ + ( + ForestMetadataType::CommitmentOffset, + DbValue(DbBlockNumber(next_offset).serialize().to_vec()), + ), + ( + ForestMetadataType::StateRoot(DbBlockNumber(height)), + serialize_felt_no_packing(global_root.0), + ), + ( + ForestMetadataType::StateDiffHash(DbBlockNumber(height)), + serialize_felt_no_packing(state_diff_commitment.0.0), + ), + ]); + info!( + "For block number {height}, writing filled forest to storage with metadata: \ + {metadata:?}, delete {} nodes", + deleted_nodes.len() + ); + block_measurements.start_measurement(Action::Write); + let n_write_entries = self + .forest_storage + .write_with_metadata(&filled_forest, metadata, deleted_nodes) + .await + .map_err(|err| self.map_internal_error(err))?; + block_measurements.attempt_to_stop_measurement(Action::Write, n_write_entries).ok(); + block_measurements.attempt_to_stop_measurement(Action::EndToEnd, 0).ok(); + update_metrics(height, &block_measurements.block_measurement); + self.update_offset(next_offset); + Ok(CommitBlockResponse { global_root }) + } + } + } + + /// Either load the committed global root for a past `height`, or validate inputs and return + /// the state-diff commitment for committing the chain tip at `self.offset`. + async fn commit_or_load( + &mut self, + state_diff: &ThinStateDiff, + state_diff_commitment: Option, + height: BlockNumber, + ) -> CommitterResult { if height > self.offset { // Request to commit a future height. // Returns an error, indicating the committer has a hole in the state diff series. @@ -164,7 +229,7 @@ where let state_diff_commitment = match state_diff_commitment { Some(commitment) => { if self.config.verify_state_diff_hash { - let calculated_commitment = calculate_state_diff_hash(&state_diff); + let calculated_commitment = calculate_state_diff_hash(state_diff); if commitment != calculated_commitment { return Err(CommitterError::StateDiffHashMismatch { provided_commitment: commitment, @@ -175,8 +240,9 @@ where } commitment } - None => calculate_state_diff_hash(&state_diff), + None => calculate_state_diff_hash(state_diff), }; + if height < self.offset { // Request to commit an old height. // Might be ok if the caller didn't get the results properly. @@ -196,46 +262,10 @@ where } // Returns the precomputed global root. let db_global_root = self.load_global_root(height).await?; - return Ok(CommitBlockResponse { global_root: db_global_root }); + return Ok(CommitBlockHeightPlan::Historical { global_root: db_global_root }); } - // Happy flow. Commits the state diff and returns the computed global root. - debug!("Committing block number {height} with state diff {state_diff_commitment:?}"); - let mut block_measurements = SingleBlockMeasurements::default(); - block_measurements.start_measurement(Action::EndToEnd); - let CommitStateDiffOutput { filled_forest, global_root, deleted_nodes } = - self.commit_state_diff(state_diff, &mut block_measurements).await?; - let next_offset = height.unchecked_next(); - let metadata = HashMap::from([ - ( - ForestMetadataType::CommitmentOffset, - DbValue(DbBlockNumber(next_offset).serialize().to_vec()), - ), - ( - ForestMetadataType::StateRoot(DbBlockNumber(height)), - serialize_felt_no_packing(global_root.0), - ), - ( - ForestMetadataType::StateDiffHash(DbBlockNumber(height)), - serialize_felt_no_packing(state_diff_commitment.0.0), - ), - ]); - info!( - "For block number {height}, writing filled forest to storage with metadata: \ - {metadata:?}, delete {} nodes", - deleted_nodes.len() - ); - block_measurements.start_measurement(Action::Write); - let n_write_entries = self - .forest_storage - .write_with_metadata(&filled_forest, metadata, deleted_nodes) - .await - .map_err(|err| self.map_internal_error(err))?; - block_measurements.attempt_to_stop_measurement(Action::Write, n_write_entries).ok(); - block_measurements.attempt_to_stop_measurement(Action::EndToEnd, 0).ok(); - update_metrics(height, &block_measurements.block_measurement); - self.update_offset(next_offset); - Ok(CommitBlockResponse { global_root }) + Ok(CommitBlockHeightPlan::CommitTip { state_diff_commitment }) } /// Applies the given state diff to revert the changes of the given height. From 589b9267dcaf418e6d5d92fa604a5898f9a9d287 Mon Sep 17 00:00:00 2001 From: ArielElp <86294909+ArielElp@users.noreply.github.com> Date: Sun, 31 May 2026 18:00:40 +0300 Subject: [PATCH 15/20] starknet_committer: extract metadata construction to a function (#14000) --- crates/apollo_committer/src/committer.rs | 42 +++++++++++++++--------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/crates/apollo_committer/src/committer.rs b/crates/apollo_committer/src/committer.rs index a864d1d9d86..ab03163da78 100644 --- a/crates/apollo_committer/src/committer.rs +++ b/crates/apollo_committer/src/committer.rs @@ -99,6 +99,31 @@ enum CommitBlockHeightPlan { CommitTip { state_diff_commitment: StateDiffCommitment }, } +fn commit_tip_metadata_bundle( + height: BlockNumber, + global_root: GlobalRoot, + state_diff_commitment: StateDiffCommitment, +) -> (HashMap, BlockNumber) { + let next_offset = height.unchecked_next(); + ( + HashMap::from([ + ( + ForestMetadataType::CommitmentOffset, + DbValue(DbBlockNumber(next_offset).serialize().to_vec()), + ), + ( + ForestMetadataType::StateRoot(DbBlockNumber(height)), + serialize_felt_no_packing(global_root.0), + ), + ( + ForestMetadataType::StateDiffHash(DbBlockNumber(height)), + serialize_felt_no_packing(state_diff_commitment.0.0), + ), + ]), + next_offset, + ) +} + /// Apollo committer. Maintains the Starknet state tries in persistent storage. pub struct Committer where @@ -174,21 +199,8 @@ where block_measurements.start_measurement(Action::EndToEnd); let CommitStateDiffOutput { filled_forest, global_root, deleted_nodes } = self.commit_state_diff(state_diff, &mut block_measurements).await?; - let next_offset = height.unchecked_next(); - let metadata = HashMap::from([ - ( - ForestMetadataType::CommitmentOffset, - DbValue(DbBlockNumber(next_offset).serialize().to_vec()), - ), - ( - ForestMetadataType::StateRoot(DbBlockNumber(height)), - serialize_felt_no_packing(global_root.0), - ), - ( - ForestMetadataType::StateDiffHash(DbBlockNumber(height)), - serialize_felt_no_packing(state_diff_commitment.0.0), - ), - ]); + let (metadata, next_offset) = + commit_tip_metadata_bundle(height, global_root, state_diff_commitment); info!( "For block number {height}, writing filled forest to storage with metadata: \ {metadata:?}, delete {} nodes", From 1aff4e255281df8313ecc65d2716a2c006f444e9 Mon Sep 17 00:00:00 2001 From: AvivYossef-starkware <141143145+AvivYossef-starkware@users.noreply.github.com> Date: Sun, 31 May 2026 18:06:25 +0300 Subject: [PATCH 16/20] apollo_integration_tests: fix flaky test due to metric registration race (#14253) Fix race condition where tests query metrics before StateSyncRunner registers them: - sequencer_num_accepted_txs: Return 0 for MetricNotFound errors (safe since it's used in polling loops), panic on other unexpected errors - assert_no_reverted_txs: Add retry loop until the metric is registered, avoiding false positives https://claude.ai/code/session_014UmiFHenEiE4vNnh8qbGkZ Co-authored-by: Claude --- .../src/monitoring_utils.rs | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/crates/apollo_integration_tests/src/monitoring_utils.rs b/crates/apollo_integration_tests/src/monitoring_utils.rs index 748bafa7d64..0df0f7ad1ab 100644 --- a/crates/apollo_integration_tests/src/monitoring_utils.rs +++ b/crates/apollo_integration_tests/src/monitoring_utils.rs @@ -3,7 +3,7 @@ use apollo_consensus::metrics::CONSENSUS_DECISIONS_REACHED_BY_CONSENSUS; use apollo_infra_utils::run_until::run_until; use apollo_infra_utils::tracing::{CustomLogger, TraceLevel}; use apollo_metrics::metrics::MetricDetails; -use apollo_monitoring_endpoint::test_utils::MonitoringClient; +use apollo_monitoring_endpoint::test_utils::{MonitoringClient, MonitoringClientError}; use apollo_state_sync_metrics::metrics::{ STATE_SYNC_BODY_MARKER, STATE_SYNC_CLASS_MANAGER_MARKER, @@ -204,15 +204,38 @@ pub async fn await_txs_accepted( pub async fn sequencer_num_accepted_txs(monitoring_client: &MonitoringClient) -> usize { // If the sequencer accepted txs, sync should process them and update the respective metric. - monitoring_client - .get_metric::(STATE_SYNC_PROCESSED_TRANSACTIONS.get_name()) - .await - .unwrap() + // Return 0 if the metric isn't registered yet (race with StateSyncRunner startup). + match monitoring_client.get_metric::(STATE_SYNC_PROCESSED_TRANSACTIONS.get_name()).await + { + Ok(count) => count, + Err(MonitoringClientError::MetricNotFound { .. }) => 0, + Err(e) => panic!("Failed to get processed transactions metric: {e}"), + } } pub async fn assert_no_reverted_txs(monitoring_client: &MonitoringClient, sequencer_idx: usize) { - let reverted_count = - monitoring_client.get_metric::(REVERTED_TRANSACTIONS.get_name()).await.unwrap(); + let get_metric_closure = + || async { monitoring_client.get_metric::(REVERTED_TRANSACTIONS.get_name()).await }; + let condition = |result: &Result| result.is_ok(); + let logger = CustomLogger::new( + TraceLevel::Info, + Some(format!( + "Waiting for reverted transactions metric to be registered for sequencer \ + {sequencer_idx}" + )), + ); + + let reverted_count = run_until( + INTERVAL_MS, + ATTEMPTS_FOR_VERIFY_TXS, + get_metric_closure, + condition, + Some(logger), + ) + .await + .expect("Failed to get reverted transactions metric after retries") + .expect("Metric retrieval failed"); + assert_eq!( reverted_count, 0, "Sequencer {sequencer_idx} has {reverted_count} reverted transactions" From 02b9bc6fe962675795273646d8b8f60525322704 Mon Sep 17 00:00:00 2001 From: ArielElp <86294909+ArielElp@users.noreply.github.com> Date: Mon, 1 Jun 2026 11:52:08 +0300 Subject: [PATCH 17/20] starknet_committer: underlying logic of the new read witnesses and commit endpoint (#14001) --- .../workflows/apollo_storage_os_input_ci.yml | 2 + crates/apollo_committer/Cargo.toml | 1 + crates/apollo_committer/src/committer.rs | 211 +++++++++++++++++- .../src/patricia_merkle_tree/tree.rs | 10 + .../src/patricia_merkle_tree/types.rs | 4 +- 5 files changed, 224 insertions(+), 4 deletions(-) diff --git a/.github/workflows/apollo_storage_os_input_ci.yml b/.github/workflows/apollo_storage_os_input_ci.yml index 51b48ae8968..6046cda16d4 100644 --- a/.github/workflows/apollo_storage_os_input_ci.yml +++ b/.github/workflows/apollo_storage_os_input_ci.yml @@ -12,6 +12,7 @@ on: - ".github/workflows/apollo_storage_os_input_ci.yml" - "Cargo.lock" - "Cargo.toml" + - "crates/apollo_committer/**" - "crates/apollo_committer_types/**" - "crates/apollo_storage/**" - "crates/apollo_config/**" @@ -61,6 +62,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} - run: cargo test -p starknet_committer --features os_input - run: cargo test -p apollo_committer_types --features os_input + - run: cargo test -p apollo_committer --features os_input - run: cargo build -p apollo_batcher --features os_input - run: cargo test -p apollo_batcher --features os_input - run: cargo test -p apollo_reverts --features os_input diff --git a/crates/apollo_committer/Cargo.toml b/crates/apollo_committer/Cargo.toml index e2f536c9cec..22e76256be4 100644 --- a/crates/apollo_committer/Cargo.toml +++ b/crates/apollo_committer/Cargo.toml @@ -7,6 +7,7 @@ license.workspace = true description = "State root commitment computation component for the Starknet sequencer." [features] +os_input = ["apollo_committer_types/os_input", "starknet_committer/os_input"] testing = [] [dependencies] diff --git a/crates/apollo_committer/src/committer.rs b/crates/apollo_committer/src/committer.rs index ab03163da78..888b37a2f5e 100644 --- a/crates/apollo_committer/src/committer.rs +++ b/crates/apollo_committer/src/committer.rs @@ -3,6 +3,12 @@ use std::error::Error; use std::path::PathBuf; use apollo_committer_config::config::{ApolloStorage, CommitterConfig}; +#[cfg(feature = "os_input")] +use apollo_committer_types::committer_types::{ + AccessedKeys, + ReadPathsAndCommitBlockRequest, + ReadPathsAndCommitBlockResponse, +}; use apollo_committer_types::committer_types::{ CommitBlockRequest, CommitBlockResponse, @@ -14,11 +20,15 @@ use apollo_infra::component_definitions::{default_component_start_fn, ComponentS use async_trait::async_trait; use starknet_api::block::BlockNumber; use starknet_api::block_hash::state_diff_hash::calculate_state_diff_hash; +#[cfg(feature = "os_input")] +use starknet_api::core::ContractAddress; use starknet_api::core::{GlobalRoot, StateDiffCommitment}; use starknet_api::hash::PoseidonHash; use starknet_api::state::ThinStateDiff; use starknet_committer::block_committer::commit::commit_block; use starknet_committer::block_committer::input::Input; +#[cfg(feature = "os_input")] +use starknet_committer::block_committer::input::StarknetStorageKey; use starknet_committer::block_committer::measurements_util::{ Action, BlockDurations, @@ -27,12 +37,20 @@ use starknet_committer::block_committer::measurements_util::{ MeasurementsTrait, SingleBlockMeasurements, }; +#[cfg(feature = "os_input")] +use starknet_committer::db::forest_trait::forest_trait_witnesses::{ + ForestStorageWithWitnesses, + PatriciaProofsUpdate, + PatriciaProofsWrite, +}; use starknet_committer::db::forest_trait::{ EmptyInitialReadContext, ForestMetadataType, ForestStorageWithEmptyReadContext, }; use starknet_committer::db::index_db::IndexDb; +#[cfg(feature = "os_input")] +use starknet_committer::db::serde_db_utils::accessed_keys_digest; use starknet_committer::db::serde_db_utils::{ deserialize_felt_no_packing, serialize_felt_no_packing, @@ -40,8 +58,14 @@ use starknet_committer::db::serde_db_utils::{ }; use starknet_committer::forest::deleted_nodes::DeletedNodes; use starknet_committer::forest::filled_forest::FilledForest; +#[cfg(feature = "os_input")] +use starknet_committer::patricia_merkle_tree::tree::{LeavesRequest, SortedLeavesRequest}; +#[cfg(feature = "os_input")] +use starknet_patricia_storage::errors::SerializationError; use starknet_patricia_storage::map_storage::CachedStorage; use starknet_patricia_storage::rocksdb_storage::RocksDbStorage; +#[cfg(feature = "os_input")] +use starknet_patricia_storage::storage_trait::ImmutableReadOnlyStorage; use starknet_patricia_storage::storage_trait::{DbValue, Storage}; use tracing::{debug, error, info, warn}; @@ -447,9 +471,192 @@ where } fn map_internal_error(&self, err: E) -> CommitterError { + self.map_internal_error_at_height(self.offset, err) + } + + fn map_internal_error_at_height( + &self, + height: BlockNumber, + err: E, + ) -> CommitterError { let error_message = format!("{err:?}: {err}"); - error!("Error committing block number {0}. {error_message}.", self.offset); - CommitterError::Internal { height: self.offset, message: error_message } + error!("Error committing block number {height}. {error_message}."); + CommitterError::Internal { height, message: error_message } + } +} + +#[cfg(feature = "os_input")] +impl Committer +where + S: StorageConstructor + ImmutableReadOnlyStorage + 'static, + ForestDB: ForestStorageWithWitnesses, +{ + /// Commits the next block and returns merged Patricia witness facts for OS input, persisting + /// digest + payload for idempotent replay. + pub async fn read_paths_and_commit_block( + &mut self, + ReadPathsAndCommitBlockRequest { + commit: CommitBlockRequest { state_diff, state_diff_commitment, height }, + accessed_keys: AccessedKeys { storage_keys, accessed_contracts, accessed_class_hashes }, + }: ReadPathsAndCommitBlockRequest, + ) -> CommitterResult { + let class_hashes: Vec<_> = accessed_class_hashes.iter().copied().collect(); + let contract_addresses: Vec<_> = accessed_contracts.iter().copied().collect(); + let contract_storage_keys = storage_keys.iter().fold( + HashMap::>::new(), + |mut accumulator, (address, key)| { + accumulator.entry(*address).or_default().push(StarknetStorageKey(*key)); + accumulator + }, + ); + let mut leaves_request = LeavesRequest::from_accessed_leaves( + &class_hashes, + &contract_addresses, + &contract_storage_keys, + ); + info!( + "read_paths_and_commit_block: height {height}, accessed keys len {}, state diff len {}", + leaves_request.total_leaf_count(), + state_diff.len(), + ); + let sorted_leaves: SortedLeavesRequest<'_> = (&mut leaves_request).into(); + let digest = accessed_keys_digest(&sorted_leaves); + + match self.commit_or_load(&state_diff, state_diff_commitment, height).await? { + CommitBlockHeightPlan::Historical { global_root } => { + let stored_digest = self.load_witnesses_digest(height).await?; + if stored_digest != Some(digest) { + return Err(CommitterError::AccessedKeysDigestMismatch { + height, + stored: stored_digest, + expected: digest, + }); + } + let proofs = self + .forest_storage + .read_witnesses(height) + .await + .map_err(|error| self.map_internal_error_at_height(height, error))?; + let proofs = proofs.ok_or(CommitterError::MissingPatriciaPaths { height })?; + Ok(ReadPathsAndCommitBlockResponse { global_root, patricia_proofs: proofs }) + } + // Flow overview: + // 1. Fetch patricia paths for the accessed keys. + // 2. Compute the updates from the state diff (commit) but avoid updating the underlying + // DB in order to guarantee atomicity. + // 3. Fetch patricia paths for the post-commit tries, via running step 1 against a two + // layer storage composed from the underlying storage and the modifications from 2. + // 4. Merge the two sets of patricia paths and write the result to the storage. + // 5. Update the commitment offset and return the global root and the patricia proofs. + CommitBlockHeightPlan::CommitTip { state_diff_commitment } => { + let pre_roots = self + .forest_storage + .read_roots(ForestDB::InitialReadContext::create_empty()) + .await + .map_err(|e| self.map_internal_error(e))?; + let mut patricia_proofs = self + .forest_storage + .fetch_patricia_witnesses( + pre_roots.classes_trie_root_hash, + pre_roots.contracts_trie_root_hash, + sorted_leaves.class_sorted, + sorted_leaves.contract_sorted, + &sorted_leaves.storage_sorted, + None, + ) + .await + .map_err(|e| CommitterError::PatriciaPathsCollectionFailed { + height, + message: format!("pre-commit witness paths: {e:?}"), + })?; + + let mut block_measurements = SingleBlockMeasurements::default(); + block_measurements.start_measurement(Action::EndToEnd); + let CommitStateDiffOutput { filled_forest, global_root, deleted_nodes } = + self.commit_state_diff(state_diff, &mut block_measurements).await?; + let post_roots = filled_forest.state_roots(); + + let forest_updates = ForestDB::serialize_forest(&filled_forest) + .map_err(|e| self.map_internal_error(e))?; + + let proof_after = self + .forest_storage + .fetch_patricia_witnesses( + post_roots.classes_trie_root_hash, + post_roots.contracts_trie_root_hash, + sorted_leaves.class_sorted, + sorted_leaves.contract_sorted, + &sorted_leaves.storage_sorted, + Some(forest_updates), + ) + .await + .map_err(|e| CommitterError::PatriciaPathsCollectionFailed { + height, + message: format!("post-commit witness paths: {e:?}"), + })?; + + patricia_proofs.extend(proof_after); + + let (metadata, next_offset) = + commit_tip_metadata_bundle(height, global_root, state_diff_commitment); + let witness_node_count = patricia_proofs.classes_trie_proof.len() + + patricia_proofs.contracts_trie_proof.nodes.len() + + patricia_proofs.contracts_trie_proof.leaves.len() + + patricia_proofs + .contracts_trie_storage_proofs + .values() + .map(|proof| proof.len()) + .sum::(); + info!( + "For block number {height}, writing filled forest and {witness_node_count} \ + witness nodes to storage with metadata: {metadata:?}, delete {} nodes", + deleted_nodes.len() + ); + block_measurements.start_measurement(Action::Write); + let n_write_entries = self + .forest_storage + .write_with_metadata_and_witnesses( + &filled_forest, + metadata, + deleted_nodes, + PatriciaProofsUpdate::Write(PatriciaProofsWrite { + block_number: height, + keys_digest: digest, + witnesses: patricia_proofs.clone(), + }), + ) + .await + .map_err(|e: SerializationError| self.map_internal_error(e))?; + block_measurements.attempt_to_stop_measurement(Action::Write, n_write_entries).ok(); + block_measurements.attempt_to_stop_measurement(Action::EndToEnd, 0).ok(); + update_metrics(height, &block_measurements.block_measurement); + self.update_offset(next_offset); + Ok(ReadPathsAndCommitBlockResponse { global_root, patricia_proofs }) + } + } + } + + async fn load_witnesses_digest( + &mut self, + block_number: BlockNumber, + ) -> CommitterResult> { + let digest_raw = self + .forest_storage + .read_metadata(ForestMetadataType::AccessedKeysDigest(DbBlockNumber(block_number))) + .await + .map_err(|error| self.map_internal_error_at_height(block_number, error))?; + + digest_raw + .map(|digest_raw| { + digest_raw.0.as_slice().try_into().map_err(|_| CommitterError::Internal { + height: block_number, + message: format!( + "Invalid OS witnesses digest length {} (expected 32)", + digest_raw.0.len() + ), + }) + }) + .transpose() } } diff --git a/crates/starknet_committer/src/patricia_merkle_tree/tree.rs b/crates/starknet_committer/src/patricia_merkle_tree/tree.rs index dcfade54499..843fa487c03 100644 --- a/crates/starknet_committer/src/patricia_merkle_tree/tree.rs +++ b/crates/starknet_committer/src/patricia_merkle_tree/tree.rs @@ -91,6 +91,16 @@ impl LeavesRequest { contract_storage_leaf_indices, } } + + /// Total number of trie leaves requested (classes, contracts, and storage slots). + pub fn total_leaf_count(&self) -> usize { + self.class_leaf_indices.len() + + self.contract_leaf_indices.len() + + self + .contract_storage_leaf_indices + .values() + .fold(0, |count, leaf_indices| count + leaf_indices.len()) + } } impl<'a> From<&'a mut LeavesRequest> for SortedLeavesRequest<'a> { diff --git a/crates/starknet_committer/src/patricia_merkle_tree/types.rs b/crates/starknet_committer/src/patricia_merkle_tree/types.rs index 2b18a8ef90a..b9a6a946965 100644 --- a/crates/starknet_committer/src/patricia_merkle_tree/types.rs +++ b/crates/starknet_committer/src/patricia_merkle_tree/types.rs @@ -43,13 +43,13 @@ pub type ClassesTrie = FilledTreeImpl; pub type ContractsTrie = FilledTreeImpl; pub type StorageTrieMap = HashMap; -#[derive(Debug, Clone, PartialEq)] +#[derive(Clone, Debug, PartialEq)] pub struct ContractsTrieProof { pub nodes: PreimageMap, pub leaves: HashMap, } -#[derive(Debug, Clone, PartialEq)] +#[derive(Clone, Debug, PartialEq)] pub struct StarknetForestProofs { pub classes_trie_proof: PreimageMap, pub contracts_trie_proof: ContractsTrieProof, From bd190a2639ec6d63fc70808c04ba8252d7b027e0 Mon Sep 17 00:00:00 2001 From: dorimedini-starkware Date: Mon, 1 Jun 2026 13:05:39 +0300 Subject: [PATCH 18/20] starknet_os: os resources test - create fixed deployable account (#14173) --- .gitattributes | 4 + .../deployable_for_resource_measurement.cairo | 43 + ...loyable_for_resource_measurement.casm.json | 2062 +++++++++++++++++ ...yable_for_resource_measurement.sierra.json | 551 +++++ .../src/special_contracts.rs | 25 +- 5 files changed, 2683 insertions(+), 2 deletions(-) create mode 100644 crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.cairo create mode 100644 crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.casm.json create mode 100644 crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.sierra.json diff --git a/.gitattributes b/.gitattributes index 788b92dfeb7..9b0b1e34dc4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13,3 +13,7 @@ crates/starknet_transaction_prover/resources/*.zip -diff # Starknet system tests resources - large JSON files. crates/central_systest_blobs/resources/blobs.json -diff crates/central_systest_blobs/resources/preconfirmed_block.json -diff + +# Starknet OS flow tests resources - precompiled contracts. +crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.casm.json -diff +crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.sierra.json -diff diff --git a/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.cairo b/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.cairo new file mode 100644 index 00000000000..f843d73a0d6 --- /dev/null +++ b/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.cairo @@ -0,0 +1,43 @@ +/// Dummy deployable account contract for deterministic deployment resource measurement. +/// Originally compiled with compiler v2.17.0-rc.4. +#[starknet::contract(account)] +mod DeployableForResourceMeasurement { + #[storage] + struct Storage {} + + #[external(v0)] + fn __validate__(self: @ContractState) -> felt252 { + starknet::VALIDATED + } + + #[external(v0)] + fn __validate_deploy__( + self: @ContractState, + class_hash: felt252, + contract_address_salt: felt252, + some_args: Span, + ) -> felt252 { + starknet::VALIDATED + } + + #[external(v0)] + fn __execute__(ref self: ContractState) {} + + /// Constructor accepting variable calldata length. + #[constructor] + fn constructor(ref self: ContractState, some_args: Span) {} + + /// Dummy function to effect the compiled sierra and change the contract address. + #[external(v0)] + fn get_salt(self: @ContractState) -> felt252 { + 0 + } + + /// External endpoint accepting variable calldata length. + #[external(v0)] + fn external(self: @ContractState, some_args: Span) {} + + /// L1 handler accepting variable calldata length. + #[l1_handler] + fn l1_handler(self: @ContractState, from_address: felt252, some_args: Span) {} +} diff --git a/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.casm.json b/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.casm.json new file mode 100644 index 00000000000..6486b870106 --- /dev/null +++ b/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.casm.json @@ -0,0 +1,2062 @@ +{ + "prime": "0x800000000000011000000000000000000000000000000000000000000000001", + "compiler_version": "2.17.0", + "bytecode": [ + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x3c", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x3ef", + "0x482680017ff98000", + "0x1", + "0x48127ff57fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x404", + "0x482480017fff8000", + "0x403", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff9", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280017ff97fff", + "0x10780017fff7fff", + "0x15", + "0x4824800180007ff9", + "0x0", + "0x400280017ff97fff", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x56414c4944", + "0x400080007ffe7fff", + "0x482680017ff98000", + "0x2", + "0x482480017ffc8000", + "0x1dec", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x482480017ff68000", + "0x19a0", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x3be", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0xcd", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xba", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa7", + "0x482480017ffd8000", + "0x1", + "0x48127ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x91", + "0x480080007ffd8000", + "0x482480017ffc8000", + "0x1", + "0x48127ffc7fff8000", + "0xa0680017fff8000", + "0x12", + "0x4824800180007ffc", + "0x100000000", + "0x4844800180008002", + "0x8000000000000110000000000000000", + "0x4830800080017ffe", + "0x480280017ff97fff", + "0x482480017ffe8000", + "0xefffffffffffffde00000000ffffffff", + "0x480280027ff97fff", + "0x400280037ff97ffb", + "0x402480017fff7ffb", + "0xffffffffffffffffffffffffffffffff", + "0x20680017fff7fff", + "0x77", + "0x402780017fff7fff", + "0x1", + "0x400280017ff97ffc", + "0x482480017ffc8000", + "0xffffffffffffffffffffffff00000000", + "0x400280027ff97fff", + "0x480680017fff8000", + "0x0", + "0x48307ffb80007ffc", + "0x48307ff97ffe8000", + "0xa0680017fff8000", + "0x8", + "0x482480017ffd8000", + "0x1", + "0x48307fff80007ffd", + "0x400280037ff97fff", + "0x10780017fff7fff", + "0x5f", + "0x48307ffe80007ffd", + "0x400280037ff97fff", + "0x48307ff780007ff8", + "0x48307ff580017fff", + "0xa0680017fff7fff", + "0x7", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280047ff97fff", + "0x10780017fff7fff", + "0x4e", + "0x400280047ff97fff", + "0x48307ff480007ff5", + "0x48307ffe7ff28000", + "0xa0680017fff8000", + "0x8", + "0x482480017ffd8000", + "0x1", + "0x48307fff80007ffd", + "0x400280057ff97fff", + "0x10780017fff7fff", + "0x3d", + "0x48307ffe80007ffd", + "0x400280057ff97fff", + "0x48307fef7ff08000", + "0x48307ffc7fef8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x34b", + "0x482680017ff98000", + "0x6", + "0x48127fdb7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x360", + "0x482480017fff8000", + "0x35f", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007fdf", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280067ff97fff", + "0x10780017fff7fff", + "0x15", + "0x4824800180007fdf", + "0x0", + "0x400280067ff97fff", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x56414c4944", + "0x400080007ffe7fff", + "0x482680017ff98000", + "0x7", + "0x482480017ffc8000", + "0xf46", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x7", + "0x482480017fdc8000", + "0xafa", + "0x10780017fff7fff", + "0x42", + "0x482680017ff98000", + "0x6", + "0x482480017fe58000", + "0xf8c", + "0x10780017fff7fff", + "0x12", + "0x482680017ff98000", + "0x5", + "0x482480017fe98000", + "0x11c6", + "0x10780017fff7fff", + "0xc", + "0x482680017ff98000", + "0x4", + "0x482480017fec8000", + "0x139c", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x4", + "0x482480017fed8000", + "0x14c8", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482480017ff78000", + "0x1aae", + "0x1104800180018000", + "0x307", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x302", + "0x482680017ff98000", + "0x1", + "0x48127ff27fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x2fc", + "0x482680017ff98000", + "0x1", + "0x48127ff57fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x2de", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x38", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x2c0", + "0x482680017ff98000", + "0x1", + "0x48127ff57fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x2d5", + "0x482480017fff8000", + "0x2d4", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff9", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280017ff97fff", + "0x10780017fff7fff", + "0x11", + "0x4824800180007ff9", + "0x0", + "0x400280017ff97fff", + "0x40780017fff7fff", + "0x1", + "0x482680017ff98000", + "0x2", + "0x482480017ffd8000", + "0x1eb4", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x482480017ff68000", + "0x19a0", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x293", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x3c", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x275", + "0x482680017ff98000", + "0x1", + "0x48127ff57fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x28a", + "0x482480017fff8000", + "0x289", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff9", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280017ff97fff", + "0x10780017fff7fff", + "0x15", + "0x4824800180007ff9", + "0x0", + "0x400280017ff97fff", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x0", + "0x400080007ffe7fff", + "0x482680017ff98000", + "0x2", + "0x482480017ffc8000", + "0x1dec", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x482480017ff68000", + "0x19a0", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x244", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0xa3", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x8d", + "0x480280007ffc8000", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0xa0680017fff8000", + "0x12", + "0x4824800180007ffc", + "0x100000000", + "0x4844800180008002", + "0x8000000000000110000000000000000", + "0x4830800080017ffe", + "0x480280017ff97fff", + "0x482480017ffe8000", + "0xefffffffffffffde00000000ffffffff", + "0x480280027ff97fff", + "0x400280037ff97ffb", + "0x402480017fff7ffb", + "0xffffffffffffffffffffffffffffffff", + "0x20680017fff7fff", + "0x73", + "0x402780017fff7fff", + "0x1", + "0x400280017ff97ffc", + "0x482480017ffc8000", + "0xffffffffffffffffffffffff00000000", + "0x400280027ff97fff", + "0x480680017fff8000", + "0x0", + "0x48307ffb80007ffc", + "0x48307ff97ffe8000", + "0xa0680017fff8000", + "0x8", + "0x482480017ffd8000", + "0x1", + "0x48307fff80007ffd", + "0x400280037ff97fff", + "0x10780017fff7fff", + "0x5b", + "0x48307ffe80007ffd", + "0x400280037ff97fff", + "0x48307ff780007ff8", + "0x48307ff580017fff", + "0xa0680017fff7fff", + "0x7", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280047ff97fff", + "0x10780017fff7fff", + "0x4a", + "0x400280047ff97fff", + "0x48307ff480007ff5", + "0x48307ffe7ff28000", + "0xa0680017fff8000", + "0x8", + "0x482480017ffd8000", + "0x1", + "0x48307fff80007ffd", + "0x400280057ff97fff", + "0x10780017fff7fff", + "0x39", + "0x48307ffe80007ffd", + "0x400280057ff97fff", + "0x48307fef7ff08000", + "0x48307ffc7fef8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x1e1", + "0x482680017ff98000", + "0x6", + "0x48127fe17fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x1f6", + "0x482480017fff8000", + "0x1f5", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007fe5", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280067ff97fff", + "0x10780017fff7fff", + "0x11", + "0x4824800180007fe5", + "0x0", + "0x400280067ff97fff", + "0x40780017fff7fff", + "0x1", + "0x482680017ff98000", + "0x7", + "0x482480017ffd8000", + "0x132e", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x7", + "0x482480017fe28000", + "0xe1a", + "0x10780017fff7fff", + "0x2c", + "0x482680017ff98000", + "0x6", + "0x482480017feb8000", + "0x12ac", + "0x10780017fff7fff", + "0x12", + "0x482680017ff98000", + "0x5", + "0x482480017fef8000", + "0x14e6", + "0x10780017fff7fff", + "0xc", + "0x482680017ff98000", + "0x4", + "0x482480017ff28000", + "0x16bc", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x4", + "0x482480017ff38000", + "0x17e8", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482480017ffd8000", + "0x1dce", + "0x1104800180018000", + "0x1ab", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x18e", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0xb6", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa3", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x8d", + "0x480080007ffd8000", + "0x482480017ffc8000", + "0x1", + "0x48127ffc7fff8000", + "0xa0680017fff8000", + "0x12", + "0x4824800180007ffc", + "0x100000000", + "0x4844800180008002", + "0x8000000000000110000000000000000", + "0x4830800080017ffe", + "0x480280017ff97fff", + "0x482480017ffe8000", + "0xefffffffffffffde00000000ffffffff", + "0x480280027ff97fff", + "0x400280037ff97ffb", + "0x402480017fff7ffb", + "0xffffffffffffffffffffffffffffffff", + "0x20680017fff7fff", + "0x73", + "0x402780017fff7fff", + "0x1", + "0x400280017ff97ffc", + "0x482480017ffc8000", + "0xffffffffffffffffffffffff00000000", + "0x400280027ff97fff", + "0x480680017fff8000", + "0x0", + "0x48307ffb80007ffc", + "0x48307ff97ffe8000", + "0xa0680017fff8000", + "0x8", + "0x482480017ffd8000", + "0x1", + "0x48307fff80007ffd", + "0x400280037ff97fff", + "0x10780017fff7fff", + "0x5b", + "0x48307ffe80007ffd", + "0x400280037ff97fff", + "0x48307ff780007ff8", + "0x48307ff580017fff", + "0xa0680017fff7fff", + "0x7", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280047ff97fff", + "0x10780017fff7fff", + "0x4a", + "0x400280047ff97fff", + "0x48307ff480007ff5", + "0x48307ffe7ff28000", + "0xa0680017fff8000", + "0x8", + "0x482480017ffd8000", + "0x1", + "0x48307fff80007ffd", + "0x400280057ff97fff", + "0x10780017fff7fff", + "0x39", + "0x48307ffe80007ffd", + "0x400280057ff97fff", + "0x48307fef7ff08000", + "0x48307ffc7fef8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x123", + "0x482680017ff98000", + "0x6", + "0x48127fde7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x138", + "0x482480017fff8000", + "0x137", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007fe2", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280067ff97fff", + "0x10780017fff7fff", + "0x11", + "0x4824800180007fe2", + "0x0", + "0x400280067ff97fff", + "0x40780017fff7fff", + "0x1", + "0x482680017ff98000", + "0x7", + "0x482480017ffd8000", + "0x119e", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x7", + "0x482480017fdf8000", + "0xc8a", + "0x10780017fff7fff", + "0x37", + "0x482680017ff98000", + "0x6", + "0x482480017fe88000", + "0x111c", + "0x10780017fff7fff", + "0x12", + "0x482680017ff98000", + "0x5", + "0x482480017fec8000", + "0x1356", + "0x10780017fff7fff", + "0xc", + "0x482680017ff98000", + "0x4", + "0x482480017fef8000", + "0x152c", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x4", + "0x482480017ff08000", + "0x1658", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482480017ffa8000", + "0x1c3e", + "0x1104800180018000", + "0xe8", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0xe3", + "0x482680017ff98000", + "0x1", + "0x48127ff57fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0xc5", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0xa3", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x8d", + "0x480280007ffc8000", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0xa0680017fff8000", + "0x12", + "0x4824800180007ffc", + "0x100000000", + "0x4844800180008002", + "0x8000000000000110000000000000000", + "0x4830800080017ffe", + "0x480280017ff97fff", + "0x482480017ffe8000", + "0xefffffffffffffde00000000ffffffff", + "0x480280027ff97fff", + "0x400280037ff97ffb", + "0x402480017fff7ffb", + "0xffffffffffffffffffffffffffffffff", + "0x20680017fff7fff", + "0x73", + "0x402780017fff7fff", + "0x1", + "0x400280017ff97ffc", + "0x482480017ffc8000", + "0xffffffffffffffffffffffff00000000", + "0x400280027ff97fff", + "0x480680017fff8000", + "0x0", + "0x48307ffb80007ffc", + "0x48307ff97ffe8000", + "0xa0680017fff8000", + "0x8", + "0x482480017ffd8000", + "0x1", + "0x48307fff80007ffd", + "0x400280037ff97fff", + "0x10780017fff7fff", + "0x5b", + "0x48307ffe80007ffd", + "0x400280037ff97fff", + "0x48307ff780007ff8", + "0x48307ff580017fff", + "0xa0680017fff7fff", + "0x7", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280047ff97fff", + "0x10780017fff7fff", + "0x4a", + "0x400280047ff97fff", + "0x48307ff480007ff5", + "0x48307ffe7ff28000", + "0xa0680017fff8000", + "0x8", + "0x482480017ffd8000", + "0x1", + "0x48307fff80007ffd", + "0x400280057ff97fff", + "0x10780017fff7fff", + "0x39", + "0x48307ffe80007ffd", + "0x400280057ff97fff", + "0x48307fef7ff08000", + "0x48307ffc7fef8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x62", + "0x482680017ff98000", + "0x6", + "0x48127fe17fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x77", + "0x482480017fff8000", + "0x76", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007fe5", + "0x0", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280067ff97fff", + "0x10780017fff7fff", + "0x11", + "0x4824800180007fe5", + "0x0", + "0x400280067ff97fff", + "0x40780017fff7fff", + "0x1", + "0x482680017ff98000", + "0x7", + "0x482480017ffd8000", + "0x132e", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x7", + "0x482480017fe28000", + "0xe1a", + "0x10780017fff7fff", + "0x2c", + "0x482680017ff98000", + "0x6", + "0x482480017feb8000", + "0x12ac", + "0x10780017fff7fff", + "0x12", + "0x482680017ff98000", + "0x5", + "0x482480017fef8000", + "0x14e6", + "0x10780017fff7fff", + "0xc", + "0x482680017ff98000", + "0x4", + "0x482480017ff28000", + "0x16bc", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x4", + "0x482480017ff38000", + "0x17e8", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482480017ffd8000", + "0x1dce", + "0x1104800180018000", + "0x2c", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0xf", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x1104800180018000", + "0x17", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x1104800180018000", + "0x12", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202333", + "0x1104800180018000", + "0xd", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202332", + "0x1104800180018000", + "0x8", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202331", + "0x1104800180018000", + "0x3", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x400180007fff7ffd", + "0x48127fff7fff8000", + "0x482480017ffe8000", + "0x1", + "0x208b7fff7fff7ffe" + ], + "bytecode_segment_lengths": [ + 79, + 224, + 75, + 79, + 182, + 201, + 182, + 5, + 5, + 5, + 5, + 5, + 7 + ], + "hints": [ + [ + 0, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 31, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 43, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 79, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 114, + [ + { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -3 + }, + "b": { + "Immediate": "0x0" + } + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 118, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { + "register": "AP", + "offset": 0 + }, + "y": { + "register": "AP", + "offset": 1 + } + } + } + ] + ], + [ + 140, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 152, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 162, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 195, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -32 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 207, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 303, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 334, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 346, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 378, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 409, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 421, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 457, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 476, + [ + { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -3 + }, + "b": { + "Immediate": "0x0" + } + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 480, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { + "register": "AP", + "offset": 0 + }, + "y": { + "register": "AP", + "offset": 1 + } + } + } + ] + ], + [ + 502, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 514, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 524, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 557, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -26 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 569, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 639, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 666, + [ + { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -3 + }, + "b": { + "Immediate": "0x0" + } + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 670, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { + "register": "AP", + "offset": 0 + }, + "y": { + "register": "AP", + "offset": 1 + } + } + } + ] + ], + [ + 692, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 704, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 714, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 747, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -29 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 759, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 840, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 859, + [ + { + "TestLessThan": { + "lhs": { + "BinOp": { + "op": "Add", + "a": { + "register": "AP", + "offset": -3 + }, + "b": { + "Immediate": "0x0" + } + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 863, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "scalar": { + "Immediate": "0x8000000000000110000000000000000" + }, + "max_x": { + "Immediate": "0xfffffffffffffffffffffffffffffffe" + }, + "x": { + "register": "AP", + "offset": 0 + }, + "y": { + "register": "AP", + "offset": 1 + } + } + } + ] + ], + [ + 885, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 897, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x100000000" + }, + "dst": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 907, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 940, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -26 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 952, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1047, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ] + ], + "entry_points_by_type": { + "EXTERNAL": [ + { + "selector": "0xd3748737d66b52a90ed3c1798b3f51d9a9266e607fdbc86e44f659bb173acd", + "offset": 378, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x15d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad", + "offset": 303, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x162da33a4585851fe8d3af3c2a9c60b557814e221e0d4f30ff0b2189d9c7775", + "offset": 0, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x36fcbf06cd96843058359e1a75928beacfac10727dab22a3972f0af8aa92895", + "offset": 79, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x3ee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632", + "offset": 457, + "builtins": [ + "range_check" + ] + } + ], + "L1_HANDLER": [ + { + "selector": "0xc10b615ab0621b7ae6a538821d80b200471946eb24ab7e4663f81aead3a0f", + "offset": 639, + "builtins": [ + "range_check" + ] + } + ], + "CONSTRUCTOR": [ + { + "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", + "offset": 840, + "builtins": [ + "range_check" + ] + } + ] + } +} \ No newline at end of file diff --git a/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.sierra.json b/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.sierra.json new file mode 100644 index 00000000000..18422499f37 --- /dev/null +++ b/crates/starknet_os_flow_tests/resources/deployable_for_resource_measurement.sierra.json @@ -0,0 +1,551 @@ +{ + "sierra_program": [ + "0x1", + "0x8", + "0x0", + "0x2", + "0x11", + "0x0", + "0xca", + "0x36", + "0x16", + "0x52616e6765436865636b", + "0x800000000000000100000000000000000000000000000000", + "0x537472756374", + "0x800000000000000f00000000000000000000000000000001", + "0x0", + "0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672", + "0x436f6e7374", + "0x800000000000000000000000000000000000000000000002", + "0x1", + "0x13", + "0x2", + "0x4661696c656420746f20646573657269616c697a6520706172616d202331", + "0x4661696c656420746f20646573657269616c697a6520706172616d202332", + "0x4661696c656420746f20646573657269616c697a6520706172616d202333", + "0x4f7574206f6620676173", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x9", + "0x753332", + "0x800000000000000700000000000000000000000000000000", + "0x4172726179", + "0x800000000000000300000000000000000000000000000001", + "0x536e617073686f74", + "0x800000000000000700000000000000000000000000000001", + "0xa", + "0x800000000000000700000000000000000000000000000002", + "0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62", + "0xb", + "0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3", + "0xc", + "0x56414c4944", + "0x4275696c74696e436f737473", + "0x53797374656d", + "0x800000000000000300000000000000000000000000000003", + "0x456e756d", + "0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6", + "0xd", + "0x11", + "0x66656c74323532", + "0x426f78", + "0x4761734275696c74696e", + "0x38", + "0x7265766f6b655f61705f747261636b696e67", + "0x77697468647261775f676173", + "0x6272616e63685f616c69676e", + "0x7374727563745f6465636f6e737472756374", + "0x61727261795f736e617073686f745f706f705f66726f6e74", + "0x64726f70", + "0x14", + "0x66756e6374696f6e5f63616c6c", + "0x3", + "0x7", + "0x656e756d5f696e6974", + "0x12", + "0x73746f72655f74656d70", + "0x15", + "0x10", + "0x6765745f6275696c74696e5f636f737473", + "0xf", + "0x77697468647261775f6761735f616c6c", + "0x72656465706f7369745f676173", + "0x636f6e73745f61735f696d6d656469617465", + "0xe", + "0x61727261795f6e6577", + "0x61727261795f617070656e64", + "0x736e617073686f745f74616b65", + "0x7374727563745f636f6e737472756374", + "0x6a756d70", + "0x8", + "0x756e626f78", + "0x72656e616d65", + "0x7533325f7472795f66726f6d5f66656c74323532", + "0x647570", + "0x61727261795f736c696365", + "0x61727261795f6c656e", + "0x7533325f6f766572666c6f77696e675f737562", + "0x6", + "0x5", + "0x4", + "0x2a8", + "0xffffffffffffffff", + "0x29", + "0x24", + "0x17", + "0x18", + "0x19", + "0x1a", + "0x1b", + "0x1c", + "0x1d", + "0x1e", + "0x2e", + "0x1f", + "0x20", + "0x21", + "0xb8", + "0xaf", + "0xa6", + "0x9a", + "0x92", + "0x22", + "0x23", + "0x25", + "0x8b", + "0x26", + "0x27", + "0x83", + "0x7e", + "0x28", + "0x64", + "0x2a", + "0x2b", + "0x2c", + "0x2d", + "0x79", + "0x2f", + "0x30", + "0x31", + "0x32", + "0x33", + "0x34", + "0x35", + "0x36", + "0x37", + "0x39", + "0x3a", + "0x3b", + "0x3c", + "0xbd", + "0x3d", + "0x3e", + "0x3f", + "0x97", + "0x40", + "0x41", + "0x42", + "0x43", + "0x44", + "0x9f", + "0x45", + "0x46", + "0x47", + "0x48", + "0x49", + "0x4a", + "0x4b", + "0x4c", + "0x4d", + "0x4e", + "0xea", + "0xd3", + "0xe5", + "0xef", + "0x11f", + "0x105", + "0x11a", + "0x124", + "0x191", + "0x185", + "0x17d", + "0x176", + "0x16e", + "0x169", + "0x152", + "0x164", + "0x196", + "0x182", + "0x18a", + "0x210", + "0x207", + "0x1fb", + "0x1f3", + "0x1ec", + "0x1e4", + "0x1df", + "0x1c8", + "0x1da", + "0x215", + "0x1f8", + "0x200", + "0x282", + "0x276", + "0x26e", + "0x267", + "0x25f", + "0x25a", + "0x243", + "0x255", + "0x287", + "0x273", + "0x27b", + "0xc4", + "0xf6", + "0x12b", + "0x19d", + "0x21c", + "0x28e", + "0x292", + "0x296", + "0x29a", + "0x29e", + "0x2a2", + "0x165c", + "0xf0b0a0908070e0b0a0908070d0b0a0908070c0b0a09080706050403020100", + "0x51903180917160a0915141312050b11090807050b0a090807100b0a090807", + "0x23052122180909091c0521030220131f1e0b0a0908071d091c0519031b091a", + "0x1b09092f0a09092e1d09092d052c052b052a2902280a091727132625092409", + "0x3935090936380909363709093605090936090b35090b34333209313009092f", + "0x92f180909410a0909400a0909360a09093f3e09093d053c053b3a09093605", + "0x451b090936443209311d09092f0543050b35090b34240909421d0909421809", + "0x94a0a09094911090936110909481b0909484409093d05470a0909460a0909", + "0x9093d1b320931183209311132093137090946050909461109092f054b0a09", + "0x942090909420b09093d3209093d4e09093d4d09093d1d3209314c09093d33", + "0x9050b05334c0b514d4e0b500b09050b09050550090505054f250909362509", + "0x94d05055009050b051b093a18110b500b44094e0544095009320932050550", + "0x94e091105240950091d0944051d09500905330505500918094c0505500911", + "0x4d4e4e092409500924091d050b0950090b091b054d0950094d0918054e0950", + "0x53e0950093e093e053e0950090524050550091b094d05055009050b05240b", + "0x525050a09500938093805055009050b0535250b52383a0b500b3e4d4e323a", + "0x937050009500930370b30053009500930090a053709500905350530095009", + "0x5505560950095509540555095009540953050550095309000554530b500900", + "0x50b0950090b091b050a0950090a0918053a0950093a091105570950095609", + "0x250911055809500935093805055009050b05570b0a3a4e095709500957091d", + "0x5500932095705055009050b05055b090556055a0950095809180559095009", + "0x5d0950090558055a0950095c091805590950094c0911055c09500933093805", + "0x950090b091b055a0950095a09180559095009590911055e0950095d094405", + "0x4d4e0b500b09050b09050550090505055e0b5a594e095e0950095e091d050b", + "0x51b096018110b500b44094e054409500932093205055009050b05334c0b5f", + "0x961241d0b500b11094e05110950091109590505500918094c05055009050b", + "0x383a0b500b1d094e051d0950091d09590505500924094c05055009050b053e", + "0x50090a090a050a09500935095c053509500938095a05055009050b05250962", + "0x5e05055009050b0500096337300b500b0a4e0b5d053a0950093a0959050a09", + "0x530950095309520555370b500937096505543a0b50093a0964055309500905", + "0x9640505500957094d05055009050b0558096757560b500b555354304e6605", + "0x5a0950095a0952055c370b5009370965055a09500959096805593a0b50093a", + "0xb500b5e373a5d4e6605055009050b0565640b6a5e5d0b500b5c5a56326905", + "0x51096d6c690b500b66094e056609500966095905055009050b0568096b6652", + "0x6e0944056e0950090533050550096c094c0505500969094d05055009050b05", + "0x91d050b0950090b091b054d0950094d09180552095009520911056f095009", + "0x7009500905240505500951094d05055009050b056f0b4d524e096f0950096f", + "0x3805055009050b0574730b725b710b500b704d52323a057009500970093e05", + "0xb30057609500976090a057709500905350576095009052505750950095b09", + "0x57b0950097a095305055009790900057a790b500978093705780950097677", + "0x750950097509180571095009710911057c09500929095505290950097b0954", + "0x93805055009050b057c0b75714e097c0950097c091d050b0950090b091b05", + "0x9050b050580090556057f0950097d0918057e095009730911057d09500974", + "0x840905560583095009810918058209500968091105810950094d0938050550", + "0x9380505500937096c050550093a094d0505500965096c05055009050b0505", + "0x9050b0505840905560583095009850918058209500964091105850950094d", + "0x9500958091105860950094d09380505500937096c050550093a094d050550", + "0x938050550093a094d05055009050b05058409055605830950098609180582", + "0x6e05880950098209510583095009870918058209500900091105870950094d", + "0x50094d09380505500925094d05055009050b05058a09055605890950098309", + "0x50098c0944058c095009056f05890950098b091805880950094e0911058b09", + "0x98d091d050b0950090b091b05890950098909180588095009880911058d09", + "0x44058e0950090570050550093e094d05055009050b058d0b89884e098d0950", + "0x50b0950090b091b054d0950094d0918054e0950094e0911058f0950098e09", + "0x50090571050550091b094d05055009050b058f0b4d4e4e098f0950098f091d", + "0x90b091b054d0950094d0918054e0950094e09110591095009900944059009", + "0x505500932095705055009050b05910b4d4e4e099109500991091d050b0950", + "0x5930950090558057f095009920918057e0950094c09110592095009330938", + "0xb0950090b091b057f0950097f0918057e0950097e09110594095009930944", + "0x954d4e0b500b09050b0905055009050505940b7f7e4e099409500994091d05", + "0xb051b099618110b500b44094e054409500932093205055009050b05334c0b", + "0x50091d0944051d09500905330505500918094c0505500911094d0505500905", + "0x924091d050b0950090b091b054d0950094d0918054e0950094e0911052409", + "0x3e053e0950090524050550091b094d05055009050b05240b4d4e4e09240950", + "0x38093805055009050b0535250b97383a0b500b3e4d4e323a053e0950093e09", + "0x953050550093709000500370b500930093705300950090535050a095009", + "0x918053a0950093a0911055509500954095505540950095309540553095009", + "0x9050b05550b0a3a4e095509500955091d050b0950090b091b050a0950090a", + "0x98090556055809500956091805570950092509110556095009350938050550", + "0x5570950094c091105590950093309380505500932095705055009050b0505", + "0x557095009570911055c0950095a0944055a09500905580558095009590918", + "0x5055c0b58574e095c0950095c091d050b0950090b091b0558095009580918", + "0x9500932093205055009050b05334c0b994d4e0b500b09050b090505500905", + "0x918094c0505500911094d05055009050b051b099a18110b500b44094e0544", + "0x50094d0918054e0950094e091105240950091d0944051d0950090533050550", + "0x5055009050b05240b4d4e4e092409500924091d050b0950090b091b054d09", + "0x3a0b500b3e4d4e323a053e0950093e093e053e0950090524050550091b094d", + "0x500905350530095009055b050a09500938093805055009050b0535250b9b38", + "0x9000554530b5009000937050009500930370b30053009500930090a053709", + "0x9110557095009560955055609500955095405550950095409530505500953", + "0x4e095709500957091d050b0950090b091b050a0950090a0918053a0950093a", + "0x95809180559095009250911055809500935093805055009050b05570b0a3a", + "0x55c0950093309380505500932095705055009050b05059c090556055a0950", + "0x55e0950095d0944055d0950090558055a0950095c091805590950094c0911", + "0x5e0950095e091d050b0950090b091b055a0950095a09180559095009590911", + "0x5009050b05334c0b9d4d4e0b500b09050b09050550090505055e0b5a594e09", + "0x18095a05055009050b051b099e18110b500b44094e05440950093209320505", + "0xb5d0511095009110959052409500924090a05240950091d095c051d095009", + "0x110b50091109640525095009055e05055009050b0538099f3a3e0b500b244e", + "0xa037300b500b0a25353e4e660525095009250952050a3a0b50093a09650535", + "0x950095309680553110b50091109640505500937094d05055009050b050009", + "0xba157560b500b5554303269055409500954095205553a0b50093a09650554", + "0x5905055009050b055d09a25c5a0b500b573a11564e6605055009050b055958", + "0x550095e094d05055009050b056509a3645e0b500b5c094e055c0950095c09", + "0x55a0950095a09110566095009520944055209500905330505500964094c05", + "0xb05660b4d5a4e096609500966091d050b0950090b091b054d0950094d0918", + "0x4d5a323a056809500968093e056809500905240505500965094d0505500905", + "0x700950090535056f0950096c093805055009050b056e510ba46c690b500b68", + "0x9500973095405730950095b095305055009710900055b710b500970093705", + "0x50090b091b056f0950096f0918056909500969091105750950097409550574", + "0x5760950096e093805055009050b05750b6f694e097509500975091d050b09", + "0x4d093805055009050b0505a509055605780950097609180577095009510911", + "0x5009050b0505a6090556057b095009790918057a0950095d09110579095009", + "0x5290950094d0938050550093a096c0505500911094d0505500959096c0505", + "0x11094d05055009050b0505a6090556057b095009290918057a095009580911", + "0x97c0918057a095009000911057c0950094d0938050550093a096c05055009", + "0x57d0950094d09380505500911094d05055009050b0505a6090556057b0950", + "0x7f0950097b096e057e0950097a0951057b0950097d0918057a095009380911", + "0x4e091105810950094d0938050550091b094d05055009050b0505a709055605", + "0x7e0911058309500982094405820950090571057f095009810918057e095009", + "0x7e4e098309500983091d050b0950090b091b057f0950097f0918057e095009", + "0x950094c091105850950093309380505500932095705055009050b05830b7f", + "0x9500977091105870950098609440586095009055805780950098509180577", + "0x870b78774e098709500987091d050b0950090b091b05780950097809180577", + "0x932093205055009050b05334c0ba84d4e0b500b09050b0905055009050505", + "0x9590505500918094c05055009050b051b09a918110b500b44094e05440950", + "0x3a09500924095a05055009050b053e09aa241d0b500b11094e051109500911", + "0x500b384e0b5d051d0950091d0959053809500938090a05380950093a095c05", + "0x96505371d0b50091d09640530095009055e05055009050b050a09ab35250b", + "0xb055509ac54530b500b003037254e6605300950093009520500350b500935", + "0x965055709500956096805561d0b50091d09640505500954094d0505500905", + "0xb055d5c0bad5a590b500b585753326905570950095709520558350b500935", + "0x500964095905055009050b056509ae645e0b500b5a351d594e660505500905", + "0x66094c0505500952094d05055009050b056809af66520b500b64094e056409", + "0x94d0918055e0950095e0911056c0950096909440569095009053305055009", + "0x55009050b056c0b4d5e4e096c0950096c091d050b0950090b091b054d0950", + "0xb500b514d5e323a055109500951093e055109500905240505500968094d05", + "0x73093705730950090535055b0950096f093805055009050b0571700bb06f6e", + "0x95505770950097609540576095009750953050550097409000575740b5009", + "0x1d050b0950090b091b055b0950095b0918056e0950096e0911057809500977", + "0x9700911057909500971093805055009050b05780b5b6e4e09780950097809", + "0x290950094d093805055009050b0505b1090556057b095009790918057a0950", + "0x96c05055009050b0505b2090556057d095009290918057c09500965091105", + "0x95c0911057e0950094d09380505500935096c050550091d094d050550095d", + "0x50550091d094d05055009050b0505b2090556057d0950097e0918057c0950", + "0x57d0950097f0918057c095009550911057f0950094d09380505500935096c", + "0x90a091105810950094d0938050550091d094d05055009050b0505b2090556", + "0x9055605830950097d096e05820950097c0951057d095009810918057c0950", + "0x820950094e091105850950094d0938050550093e094d05055009050b0505b3", + "0x82095009820911058709500986094405860950090570058309500985091805", + "0x5870b83824e098709500987091d050b0950090b091b058309500983091805", + "0x4e0911058909500988094405880950090571050550091b094d05055009050b", + "0x4e4e098909500989091d050b0950090b091b054d0950094d0918054e095009", + "0x950094c0911058b0950093309380505500932095705055009050b05890b4d", + "0x950097a0911058d0950098c0944058c0950090558057b0950098b0918057a", + "0x8d0b7b7a4e098d0950098d091d050b0950090b091b057b0950097b0918057a", + "0x932093205055009050b05334c0bb44d4e0b500b09050b0905055009050505", + "0x5c051d09500918095a05055009050b051b09b518110b500b44094e05440950", + "0x3e0b500b244e0b5d0511095009110959052409500924090a05240950091d09", + "0x93a09650535110b50091109640525095009055e05055009050b053809b63a", + "0x9050b050009b737300b500b0a25353e4e660525095009250952050a3a0b50", + "0x93a096505540950095309680553110b50091109640505500937094d050550", + "0x9050b0559580bb857560b500b5554303269055409500954095205553a0b50", + "0x5c0950095c095905055009050b055d09b95c5a0b500b573a11564e66050550", + "0x500964094c050550095e094d05055009050b056509ba645e0b500b5c094e05", + "0x950094d0918055a0950095a09110566095009520944055209500905330505", + "0x4d05055009050b05660b4d5a4e096609500966091d050b0950090b091b054d", + "0x6c690b500b684d5a323a056809500968093e05680950090524050550096509", + "0x500970093705700950090535056f0950096c093805055009050b056e510bbb", + "0x9740955057409500973095405730950095b095305055009710900055b710b", + "0x75091d050b0950090b091b056f0950096f0918056909500969091105750950", + "0x9500951091105760950096e093805055009050b05750b6f694e0975095009", + "0x1105790950094d093805055009050b0505bc09055605780950097609180577", + "0x959096c05055009050b0505bd090556057b095009790918057a0950095d09", + "0x9500958091105290950094d0938050550093a096c0505500911094d050550", + "0x96c0505500911094d05055009050b0505bd090556057b095009290918057a", + "0x556057b0950097c0918057a095009000911057c0950094d0938050550093a", + "0x95009380911057d0950094d09380505500911094d05055009050b0505bd09", + "0x5be090556057f0950097b096e057e0950097a0951057b0950097d0918057a", + "0x18057e0950094e091105810950094d0938050550091b094d05055009050b05", + "0x18057e0950097e0911058309500982094405820950090571057f0950098109", + "0x50b05830b7f7e4e098309500983091d050b0950090b091b057f0950097f09", + "0x985091805770950094c091105850950093309380505500932095705055009", + "0x9780918057709500977091105870950098609440586095009055805780950", + "0x95009057305870b78774e098709500987091d050b0950090b091b05780950", + "0x5090a050509500905750509090909095009050974050509500905090a0505", + "0x50509500905090a0505095009057605090909090950090509740505095009", + "0x5009050974050509500905090a050509500905770509090909095009050974", + "0x9090909095009050974050509500905090a05050950090578050909090909", + "0x950090b320b7a05320950090579050b09500905090b300509095009053505", + "0x37054e05320b0905353837054e1d3837054e244e09094e0950094e097b054e", + "0x3837054ebf320b0905353837054e1d3837054e79320b0905353837054e1d38", + "0x1d3837054ec1320b0905353837054e1d3837054ec0320b0905353837054e1d", + "0x905c4250905c3320b0905353837054e1d3837054ec2320b0905353837054e", + "0xc90525090a09c8250905c7250905c6250905c525" + ], + "sierra_program_debug_info": { + "type_names": [], + "libfunc_names": [], + "user_func_names": [] + }, + "contract_class_version": "0.1.0", + "entry_points_by_type": { + "EXTERNAL": [ + { + "selector": "0xd3748737d66b52a90ed3c1798b3f51d9a9266e607fdbc86e44f659bb173acd", + "function_idx": 3 + }, + { + "selector": "0x15d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad", + "function_idx": 2 + }, + { + "selector": "0x162da33a4585851fe8d3af3c2a9c60b557814e221e0d4f30ff0b2189d9c7775", + "function_idx": 0 + }, + { + "selector": "0x36fcbf06cd96843058359e1a75928beacfac10727dab22a3972f0af8aa92895", + "function_idx": 1 + }, + { + "selector": "0x3ee3b73373acd583a130924aad6dc38cfdc44ba0555ba94ce2ff63980ea0632", + "function_idx": 4 + } + ], + "L1_HANDLER": [ + { + "selector": "0xc10b615ab0621b7ae6a538821d80b200471946eb24ab7e4663f81aead3a0f", + "function_idx": 5 + } + ], + "CONSTRUCTOR": [ + { + "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", + "function_idx": 6 + } + ] + }, + "abi": [ + { + "type": "function", + "name": "__validate__", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "function", + "name": "__validate_deploy__", + "inputs": [ + { + "name": "class_hash", + "type": "core::felt252" + }, + { + "name": "contract_address_salt", + "type": "core::felt252" + }, + { + "name": "some_args", + "type": "core::array::Span::" + } + ], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "__execute__", + "inputs": [], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "some_args", + "type": "core::array::Span::" + } + ] + }, + { + "type": "function", + "name": "get_salt", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "external", + "inputs": [ + { + "name": "some_args", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "l1_handler", + "name": "l1_handler", + "inputs": [ + { + "name": "from_address", + "type": "core::felt252" + }, + { + "name": "some_args", + "type": "core::array::Span::" + } + ], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "event", + "name": "deployable_for_resource_measurement::deployable_for_resource_measurement::DeployableForResourceMeasurement::Event", + "kind": "enum", + "variants": [] + } + ] +} \ No newline at end of file diff --git a/crates/starknet_os_flow_tests/src/special_contracts.rs b/crates/starknet_os_flow_tests/src/special_contracts.rs index 4745da548c1..c1128c8f832 100644 --- a/crates/starknet_os_flow_tests/src/special_contracts.rs +++ b/crates/starknet_os_flow_tests/src/special_contracts.rs @@ -1,6 +1,7 @@ use std::sync::LazyLock; use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass; +use cairo_lang_starknet_classes::contract_class::ContractClass as CompilerContractClass; use starknet_api::deprecated_contract_class::ContractClass as DeprecatedContractClass; use starknet_api::state::SierraContractClass; @@ -11,7 +12,7 @@ pub(crate) static V1_BOUND_CAIRO0_CONTRACT: LazyLock = pub(crate) static V1_BOUND_CAIRO1_CONTRACT_SIERRA: LazyLock = LazyLock::new(|| { - let compiler_contract_class: cairo_lang_starknet_classes::contract_class::ContractClass = + let compiler_contract_class: CompilerContractClass = serde_json::from_str(include_str!("../resources/v1_bound_cairo1_account.sierra.json")) .unwrap(); SierraContractClass::from(compiler_contract_class) @@ -25,7 +26,7 @@ pub(crate) static V1_BOUND_CAIRO1_CONTRACT_CASM: LazyLock = pub(crate) static DATA_GAS_ACCOUNT_CONTRACT_SIERRA: LazyLock = LazyLock::new(|| { - let compiler_contract_class: cairo_lang_starknet_classes::contract_class::ContractClass = + let compiler_contract_class: CompilerContractClass = serde_json::from_str(include_str!("../resources/data_gas_account.sierra.json")) .unwrap(); SierraContractClass::from(compiler_contract_class) @@ -35,3 +36,23 @@ pub(crate) static DATA_GAS_ACCOUNT_CONTRACT_CASM: LazyLock = LazyLock::new(|| { serde_json::from_str(include_str!("../resources/data_gas_account.casm.json")).unwrap() }); + +#[expect(dead_code)] +pub(crate) static DEPLOYABLE_FOR_RESOURCE_MEASUREMENT_CONTRACT_SIERRA: LazyLock< + SierraContractClass, +> = LazyLock::new(|| { + let compiler_contract_class: CompilerContractClass = serde_json::from_str(include_str!( + "../resources/deployable_for_resource_measurement.sierra.json" + )) + .unwrap(); + SierraContractClass::from(compiler_contract_class) +}); + +#[expect(dead_code)] +pub(crate) static DEPLOYABLE_FOR_RESOURCE_MEASUREMENT_CONTRACT_CASM: LazyLock = + LazyLock::new(|| { + serde_json::from_str(include_str!( + "../resources/deployable_for_resource_measurement.casm.json" + )) + .unwrap() + }); From 119cff9c151cdcec5e0c0211d9485bc062282cf5 Mon Sep 17 00:00:00 2001 From: dorimedini-starkware Date: Mon, 1 Jun 2026 13:42:35 +0300 Subject: [PATCH 19/20] starknet_os_flow_tests: helper function to declare explicit classes (#14257) --- .../src/test_manager.rs | 29 +++++++++++- crates/starknet_os_flow_tests/src/tests.rs | 44 +++++++------------ 2 files changed, 42 insertions(+), 31 deletions(-) diff --git a/crates/starknet_os_flow_tests/src/test_manager.rs b/crates/starknet_os_flow_tests/src/test_manager.rs index 29f32cf207c..11b435a8f34 100644 --- a/crates/starknet_os_flow_tests/src/test_manager.rs +++ b/crates/starknet_os_flow_tests/src/test_manager.rs @@ -19,6 +19,7 @@ use blockifier::transaction::objects::{ use blockifier::transaction::transaction_execution::Transaction as BlockifierTransaction; use blockifier_test_utils::calldata::create_calldata; use blockifier_test_utils::contracts::FeatureContract; +use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass; use cairo_vm::types::builtin_name::BuiltinName; use itertools::Itertools; use starknet_api::abi::abi_utils::{get_fee_token_var_address, selector_from_name}; @@ -29,7 +30,7 @@ use starknet_api::block_hash::block_hash_calculator::{ PartialBlockHashComponents, }; use starknet_api::contract_class::compiled_class_hash::{HashVersion, HashableCompiledClass}; -use starknet_api::contract_class::ContractClass; +use starknet_api::contract_class::{ClassInfo, ContractClass}; use starknet_api::core::{ ChainId, ClassHash, @@ -48,13 +49,14 @@ use starknet_api::executable_transaction::{ Transaction as ExecutableTransaction, }; use starknet_api::hash::StateRoots; -use starknet_api::invoke_tx_args; use starknet_api::state::{SierraContractClass, StorageKey}; +use starknet_api::test_utils::declare::{declare_tx, DeclareTxArgs}; use starknet_api::test_utils::invoke::{invoke_tx, InvokeTxArgs}; use starknet_api::test_utils::{NonceManager, CHAIN_ID_FOR_TESTS, TEST_SEQUENCER_ADDRESS}; use starknet_api::transaction::constants::TRANSFER_EVENT_NAME; use starknet_api::transaction::fields::{snos_block_number_from_proof_facts, Calldata, Fee, Tip}; use starknet_api::transaction::{Event, L1HandlerTransaction, L1ToL2Payload, MessageToL1}; +use starknet_api::{declare_tx_args, invoke_tx_args}; use starknet_committer::block_committer::input::{ IsSubset, StarknetStorageKey, @@ -571,6 +573,29 @@ impl TestBuilder { self.execution_contracts.executed.contracts.insert(compiled_class_hash, casm.clone()); } + /// Given sierra and CASM, add an explicit declare transaction. + pub(crate) fn add_explicit_cairo1_declare_tx( + &mut self, + sierra: &SierraContractClass, + casm: CasmContractClass, + extra_args: DeclareTxArgs, + chain_id: &ChainId, + ) { + let class_hash = sierra.calculate_class_hash(); + let compiled_class_hash = casm.hash(&HashVersion::V2); + let declare_args = declare_tx_args! { class_hash, compiled_class_hash, ..extra_args }; + let account_declare_tx = declare_tx(declare_args); + let sierra_version = sierra.get_sierra_version().unwrap(); + let class_info = ClassInfo { + contract_class: ContractClass::V1((casm, sierra_version.clone())), + sierra_program_length: sierra.sierra_program.len(), + abi_length: sierra.abi.len(), + sierra_version, + }; + let tx = DeclareTransaction::create(account_declare_tx, class_info, chain_id).unwrap(); + self.add_cairo1_declare_tx(tx, sierra); + } + pub(crate) fn add_invoke_tx( &mut self, tx: InvokeTransaction, diff --git a/crates/starknet_os_flow_tests/src/tests.rs b/crates/starknet_os_flow_tests/src/tests.rs index ff163d7dd4d..98ad0f384dc 100644 --- a/crates/starknet_os_flow_tests/src/tests.rs +++ b/crates/starknet_os_flow_tests/src/tests.rs @@ -17,7 +17,7 @@ use expect_test::expect; use rstest::rstest; use starknet_api::abi::abi_utils::{get_storage_var_address, selector_from_name}; use starknet_api::block::{BlockInfo, BlockNumber, BlockTimestamp, GasPrice}; -use starknet_api::contract_class::compiled_class_hash::{HashVersion, HashableCompiledClass}; +use starknet_api::contract_class::compiled_class_hash::HashVersion; use starknet_api::contract_class::{ClassInfo, ContractClass, SierraVersion}; use starknet_api::core::{ calculate_contract_address, @@ -1023,7 +1023,6 @@ async fn test_v1_bound_accounts_cairo1() { let test_contract_sierra = &V1_BOUND_CAIRO1_CONTRACT_SIERRA; let test_contract_casm = &V1_BOUND_CAIRO1_CONTRACT_CASM; let class_hash = test_contract_sierra.calculate_class_hash(); - let compiled_class_hash = test_contract_casm.hash(&HashVersion::V2); let vc = VersionedConstants::latest_constants(); let max_tip = vc.os_constants.v1_bound_accounts_max_tip; assert!(vc.os_constants.v1_bound_accounts_cairo1.contains(&class_hash)); @@ -1031,23 +1030,17 @@ async fn test_v1_bound_accounts_cairo1() { let chain_id = &test_builder.chain_id(); // Declare the V1-bound account. - let declare_args = declare_tx_args! { + let extra_declare_args = declare_tx_args! { sender_address: *FUNDED_ACCOUNT_ADDRESS, nonce: test_builder.next_nonce(*FUNDED_ACCOUNT_ADDRESS), - class_hash, - compiled_class_hash, resource_bounds: *NON_TRIVIAL_RESOURCE_BOUNDS, }; - let account_declare_tx = declare_tx(declare_args); - let sierra_version = test_contract_sierra.get_sierra_version().unwrap(); - let class_info = ClassInfo { - contract_class: ContractClass::V1(((**test_contract_casm).clone(), sierra_version.clone())), - sierra_program_length: test_contract_sierra.sierra_program.len(), - abi_length: test_contract_sierra.abi.len(), - sierra_version, - }; - let tx = DeclareTransaction::create(account_declare_tx, class_info, chain_id).unwrap(); - test_builder.add_cairo1_declare_tx(tx, test_contract_sierra); + test_builder.add_explicit_cairo1_declare_tx( + test_contract_sierra, + (**test_contract_casm).clone(), + extra_declare_args, + chain_id, + ); // Deploy it (from funded account). let private_key = Felt::ONE; @@ -2497,7 +2490,6 @@ async fn test_data_gas_accounts() { let test_contract_sierra = &DATA_GAS_ACCOUNT_CONTRACT_SIERRA; let test_contract_casm = &DATA_GAS_ACCOUNT_CONTRACT_CASM; let class_hash = test_contract_sierra.calculate_class_hash(); - let compiled_class_hash = test_contract_casm.hash(&HashVersion::V2); assert!( VersionedConstants::latest_constants().os_constants.data_gas_accounts.contains(&class_hash) ); @@ -2505,23 +2497,17 @@ async fn test_data_gas_accounts() { let chain_id = &test_builder.chain_id(); // Declare the data gas account. - let declare_args = declare_tx_args! { + let extra_declare_args = declare_tx_args! { sender_address: *FUNDED_ACCOUNT_ADDRESS, nonce: test_builder.next_nonce(*FUNDED_ACCOUNT_ADDRESS), - class_hash, - compiled_class_hash, resource_bounds: *NON_TRIVIAL_RESOURCE_BOUNDS, }; - let account_declare_tx = declare_tx(declare_args); - let sierra_version = test_contract_sierra.get_sierra_version().unwrap(); - let class_info = ClassInfo { - contract_class: ContractClass::V1(((**test_contract_casm).clone(), sierra_version.clone())), - sierra_program_length: test_contract_sierra.sierra_program.len(), - abi_length: test_contract_sierra.abi.len(), - sierra_version, - }; - let tx = DeclareTransaction::create(account_declare_tx, class_info, chain_id).unwrap(); - test_builder.add_cairo1_declare_tx(tx, test_contract_sierra); + test_builder.add_explicit_cairo1_declare_tx( + test_contract_sierra, + (**test_contract_casm).clone(), + extra_declare_args, + chain_id, + ); // Deploy it (from funded account). let salt = ContractAddressSalt(Felt::ZERO); From 59a012abfc3e65ef91ae7d7ea033abe56d9b9037 Mon Sep 17 00:00:00 2001 From: Idan Shamam Date: Mon, 1 Jun 2026 18:01:04 +0300 Subject: [PATCH 20/20] fix: sequencer selector labels --- deployments/sequencer/src/constructs/deployment.py | 2 +- deployments/sequencer/src/constructs/statefulset.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/sequencer/src/constructs/deployment.py b/deployments/sequencer/src/constructs/deployment.py index 10475073380..848fac89287 100644 --- a/deployments/sequencer/src/constructs/deployment.py +++ b/deployments/sequencer/src/constructs/deployment.py @@ -29,7 +29,7 @@ def _create_deployment(self) -> k8s.KubeDeployment: self.monitoring_endpoint_port, ) - selector_labels = {"service": self.labels["service"]} + selector_labels = {"app": "sequencer", "service": self.labels["service"]} return k8s.KubeDeployment( self, diff --git a/deployments/sequencer/src/constructs/statefulset.py b/deployments/sequencer/src/constructs/statefulset.py index 1fdc9f0d87f..34237114914 100644 --- a/deployments/sequencer/src/constructs/statefulset.py +++ b/deployments/sequencer/src/constructs/statefulset.py @@ -69,7 +69,7 @@ def _create_statefulset(self) -> k8s.KubeStatefulSet: self.monitoring_endpoint_port, ) - selector_labels = {"service": statefulset_labels["service"]} + selector_labels = {"app": "sequencer", "service": statefulset_labels["service"]} return k8s.KubeStatefulSet( self,