From fac0f141f4e66e88f2d54725041ec72390b0bc85 Mon Sep 17 00:00:00 2001 From: Damian Ramirez Date: Wed, 18 Dec 2024 16:40:09 -0300 Subject: [PATCH 01/26] fix(levm): create to an existing address (#1523) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivation** The `CREATE` transaction logic did not handle the case where the address where we the contract will be deploy already exists. **Description** - Add a check in `VM::new()` where the transaction is `CREATE`. If `new_contract_address` exists in the db and it has nonce or bytecode, we don't create the new account and we don't add it in the cache. We know this is an error and the revert will be handled in `transact()` - Something similar in `transact()`, we check if the transaction is `CREATE` and if `new_address_acc` has code or nonce. In that case we return a `TransactionReport` with `TxResult::Revert`. - Support the creation of a contract even if the account has balance. Related #1517 --------- Co-authored-by: Tomas Fabrizio Orsi Co-authored-by: Jeremías Salomón <48994069+JereSalo@users.noreply.github.com> Co-authored-by: JereSalo --- crates/vm/levm/src/opcode_handlers/system.rs | 12 ++++- crates/vm/levm/src/vm.rs | 53 ++++++++++++++++---- 2 files changed, 52 insertions(+), 13 deletions(-) diff --git a/crates/vm/levm/src/opcode_handlers/system.rs b/crates/vm/levm/src/opcode_handlers/system.rs index 2cb3700a3..a16effa0e 100644 --- a/crates/vm/levm/src/opcode_handlers/system.rs +++ b/crates/vm/levm/src/opcode_handlers/system.rs @@ -528,14 +528,22 @@ impl VM { }; // 3. Account has nonce or code. - if self.get_account(new_address).has_code_or_nonce() { + let new_account = self.get_account(new_address); + if new_account.has_code_or_nonce() { + self.increment_account_nonce(deployer_address)?; current_call_frame.stack.push(CREATE_DEPLOYMENT_FAIL)?; return Ok(OpcodeSuccess::Continue); } // THIRD: Changes to the state // 1. Creating contract. - let new_account = Account::new(value_in_wei_to_send, Bytes::new(), 1, Default::default()); + + // If the address has balance but there is no account associated with it, we need to add the value to it + let new_balance = value_in_wei_to_send + .checked_add(new_account.info.balance) + .ok_or(VMError::BalanceOverflow)?; + + let new_account = Account::new(new_balance, Bytes::new(), 1, Default::default()); cache::insert_account(&mut self.cache, new_address, new_account); // 2. Increment sender's nonce. diff --git a/crates/vm/levm/src/vm.rs b/crates/vm/levm/src/vm.rs index d33388af2..1e0e65e24 100644 --- a/crates/vm/levm/src/vm.rs +++ b/crates/vm/levm/src/vm.rs @@ -209,9 +209,17 @@ impl VM { default_touched_accounts.insert(new_contract_address); - let created_contract = Account::new(value, Bytes::new(), 1, HashMap::new()); - - cache::insert_account(&mut cache, new_contract_address, created_contract); + // Since we are in a CREATE transaction, we need to check if the address is already occupied. + // If it is, we should not continue with the transaction. We will handle the revert in the next step. + let new_account = db.get_account_info(new_contract_address); + let balance = value + .checked_add(new_account.balance) + .ok_or(VMError::BalanceOverflow)?; + + if !new_account.has_code() && !new_account.has_nonce() { + let created_contract = Account::new(balance, Bytes::new(), 1, HashMap::new()); + cache::insert_account(&mut cache, new_contract_address, created_contract); + } let initial_call_frame = CallFrame::new( env.origin, @@ -616,14 +624,6 @@ impl VM { /// - It calculates and adds intrinsic gas to the 'gas used' of callframe and environment. /// See 'docs' for more information about validations. fn prepare_execution(&mut self, initial_call_frame: &mut CallFrame) -> Result<(), VMError> { - //TODO: This should revert the transaction, not throw an error. And I don't know if it should be done here... - // if self.is_create() { - // // If address is already in db, there's an error - // let new_address_acc = self.db.get_account_info(call_frame.to); - // if !new_address_acc.is_empty() { - // return Err(VMError::AddressAlreadyOccupied); - // } - // } let sender_address = self.env.origin; let sender_account = self.get_account(sender_address); @@ -880,6 +880,17 @@ impl VM { self.prepare_execution(&mut initial_call_frame)?; + // The transaction should be reverted if: + // - The transaction is a CREATE transaction and + // - The address is already in the database and + // - The address is not empty + if self.is_create() { + let new_address_acc = self.db.get_account_info(initial_call_frame.to); + if new_address_acc.has_code() || new_address_acc.has_nonce() { + return self.handle_create_non_empty_account(&initial_call_frame); + } + } + let mut report = self.execute(&mut initial_call_frame)?; if self.is_create() && !report.is_success() { remove_account(&mut self.cache, &initial_call_frame.to); @@ -1142,6 +1153,26 @@ impl VM { } } } + + fn handle_create_non_empty_account( + &mut self, + initial_call_frame: &CallFrame, + ) -> Result { + let mut report = TransactionReport { + result: TxResult::Revert(VMError::AddressAlreadyOccupied), + gas_used: self.env.gas_limit.low_u64(), + gas_refunded: 0, + logs: vec![], + new_state: self.cache.clone(), + output: Bytes::new(), + created_address: None, + }; + + self.post_execution_changes(initial_call_frame, &mut report)?; + report.new_state.clone_from(&self.cache); + + Ok(report) + } } fn get_n_value(op: Opcode, base_opcode: Opcode) -> Result { From cbf1bf1eeef35744060fa3f3405afc9de22b6d9e Mon Sep 17 00:00:00 2001 From: Federico Borello <156438142+fborello-lambda@users.noreply.github.com> Date: Wed, 18 Dec 2024 17:08:44 -0300 Subject: [PATCH 02/26] fix(core): block_producer (#1529) **Motivation** The recent changes of PR #1510 require a minor modification regarding `withdrawals`. **Description** Set the `withdrawals` to `Some` to make the `block_producer` work. --- crates/blockchain/dev/block_producer.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/blockchain/dev/block_producer.rs b/crates/blockchain/dev/block_producer.rs index 4d0dffbca..7f5620586 100644 --- a/crates/blockchain/dev/block_producer.rs +++ b/crates/blockchain/dev/block_producer.rs @@ -29,9 +29,10 @@ pub async fn start_block_producer( let payload_attributes = PayloadAttributesV3 { timestamp: SystemTime::now().duration_since(UNIX_EPOCH)?.as_secs(), + prev_randao: H256::zero(), suggested_fee_recipient: coinbase_address, parent_beacon_block_root: Some(parent_beacon_block_root), - ..Default::default() + withdrawals: Some(Vec::new()), }; let fork_choice_response = match engine_client .engine_forkchoice_updated_v3(fork_choice_state, Some(payload_attributes)) @@ -78,6 +79,7 @@ pub async fn start_block_producer( let mut hasher = Sha256::new(); hasher.update(commitment); let mut hash = hasher.finalize(); + // https://eips.ethereum.org/EIPS/eip-4844 -> kzg_to_versioned_hash hash[0] = 0x01; H256::from_slice(&hash) }) From 30976d3eee890256e006124be13eecdac5eb06d0 Mon Sep 17 00:00:00 2001 From: fmoletta <99273364+fmoletta@users.noreply.github.com> Date: Wed, 18 Dec 2024 18:28:01 -0300 Subject: [PATCH 03/26] feat(l1): remove `Option` from `Store` methods `get_latest_block_number` & `get_earliest_block_number` (#1525) **Motivation** Both values are written since genesis and never deleted so them missing should be treated as a Core Storage error (either the genesis was not loaded or the db is corrupted) instead of as a regular missing value. **Description** Remove the `Option` from the return types of the `Store` methods `get_latest_block_number` & `get_earliest_block_number` Closes #791 --- cmd/ef_tests/ethrex/test_runner.rs | 4 +- cmd/ethrex/ethrex.rs | 2 +- crates/blockchain/blockchain.rs | 9 ++--- crates/blockchain/fork_choice.rs | 11 +---- crates/blockchain/mempool.rs | 4 +- crates/blockchain/smoke_test.rs | 2 +- crates/l2/proposer/mod.rs | 4 +- crates/l2/proposer/prover_server.rs | 5 +-- crates/networking/p2p/rlpx/eth/backend.rs | 8 +--- crates/networking/rpc/engine/fork_choice.rs | 2 +- crates/networking/rpc/eth/block.rs | 40 +++++++------------ crates/networking/rpc/eth/fee_market.rs | 10 +---- crates/networking/rpc/eth/filter.rs | 10 +---- crates/networking/rpc/eth/gas_price.rs | 5 +-- .../networking/rpc/types/block_identifier.rs | 12 +++--- crates/storage/store/error.rs | 4 ++ crates/storage/store/storage.rs | 18 +++++---- 17 files changed, 55 insertions(+), 95 deletions(-) diff --git a/cmd/ef_tests/ethrex/test_runner.rs b/cmd/ef_tests/ethrex/test_runner.rs index 7d1d13f03..e8b461263 100644 --- a/cmd/ef_tests/ethrex/test_runner.rs +++ b/cmd/ef_tests/ethrex/test_runner.rs @@ -112,7 +112,7 @@ fn check_prestate_against_db(test_key: &str, test: &TestUnit, db: &Store) { /// Panics if any comparison fails /// Tests that previously failed the validation stage shouldn't be executed with this function. fn check_poststate_against_db(test_key: &str, test: &TestUnit, db: &Store) { - let latest_block_number = db.get_latest_block_number().unwrap().unwrap(); + let latest_block_number = db.get_latest_block_number().unwrap(); for (addr, account) in &test.post_state { let expected_account: CoreAccount = account.clone().into(); // Check info @@ -153,7 +153,7 @@ fn check_poststate_against_db(test_key: &str, test: &TestUnit, db: &Store) { } } // Check lastblockhash is in store - let last_block_number = db.get_latest_block_number().unwrap().unwrap(); + let last_block_number = db.get_latest_block_number().unwrap(); let last_block_hash = db .get_block_header(last_block_number) .unwrap() diff --git a/cmd/ethrex/ethrex.rs b/cmd/ethrex/ethrex.rs index 3dfd651b3..c5eb55dd9 100644 --- a/cmd/ethrex/ethrex.rs +++ b/cmd/ethrex/ethrex.rs @@ -218,7 +218,7 @@ async fn main() { let authrpc_jwtsecret = std::fs::read(authrpc_jwtsecret).expect("Failed to read JWT secret"); let head_block_hash = { - let current_block_number = store.get_latest_block_number().unwrap().unwrap(); + let current_block_number = store.get_latest_block_number().unwrap(); store.get_canonical_block_hash(current_block_number).unwrap().unwrap() }; let max_tries = 3; diff --git a/crates/blockchain/blockchain.rs b/crates/blockchain/blockchain.rs index 451d2a949..db46937a3 100644 --- a/crates/blockchain/blockchain.rs +++ b/crates/blockchain/blockchain.rs @@ -161,11 +161,10 @@ pub fn validate_receipts_root( // Returns the hash of the head of the canonical chain (the latest valid hash). pub fn latest_canonical_block_hash(storage: &Store) -> Result { - if let Some(latest_block_number) = storage.get_latest_block_number()? { - if let Some(latest_valid_header) = storage.get_block_header(latest_block_number)? { - let latest_valid_hash = latest_valid_header.compute_block_hash(); - return Ok(latest_valid_hash); - } + let latest_block_number = storage.get_latest_block_number()?; + if let Some(latest_valid_header) = storage.get_block_header(latest_block_number)? { + let latest_valid_hash = latest_valid_header.compute_block_hash(); + return Ok(latest_valid_hash); } Err(ChainError::StoreError(StoreError::Custom( "Could not find latest valid hash".to_string(), diff --git a/crates/blockchain/fork_choice.rs b/crates/blockchain/fork_choice.rs index 46ba0ed95..43974953d 100644 --- a/crates/blockchain/fork_choice.rs +++ b/crates/blockchain/fork_choice.rs @@ -65,10 +65,7 @@ pub fn apply_fork_choice( total_difficulty_check(&head_hash, &head, store)?; - // TODO(#791): should we panic here? We should never not have a latest block number. - let Some(latest) = store.get_latest_block_number()? else { - return Err(StoreError::Custom("Latest block number not found".to_string()).into()); - }; + let latest = store.get_latest_block_number()?; // If the head block is an already present head ancestor, skip the update. if is_canonical(store, head.number, head_hash)? && head.number < latest { @@ -192,11 +189,7 @@ fn find_link_with_canonical_chain( return Ok(Some(branch)); } - let Some(genesis_number) = store.get_earliest_block_number()? else { - return Err(StoreError::Custom( - "Earliest block number not found. Node setup must have been faulty.".to_string(), - )); - }; + let genesis_number = store.get_earliest_block_number()?; while block_number > genesis_number { block_number -= 1; diff --git a/crates/blockchain/mempool.rs b/crates/blockchain/mempool.rs index 9680f37b2..ffc4aaf9f 100644 --- a/crates/blockchain/mempool.rs +++ b/crates/blockchain/mempool.rs @@ -173,9 +173,7 @@ fn validate_transaction( ) -> Result<(), MempoolError> { // TODO: Add validations here - let header_no = store - .get_latest_block_number()? - .ok_or(MempoolError::NoBlockHeaderError)?; + let header_no = store.get_latest_block_number()?; let header = store .get_block_header(header_no)? .ok_or(MempoolError::NoBlockHeaderError)?; diff --git a/crates/blockchain/smoke_test.rs b/crates/blockchain/smoke_test.rs index 710720cfc..d49ce27df 100644 --- a/crates/blockchain/smoke_test.rs +++ b/crates/blockchain/smoke_test.rs @@ -186,7 +186,7 @@ mod blockchain_integration_test { // Important blocks should still be the same as before. assert!(store.get_finalized_block_number().unwrap() == Some(0)); assert!(store.get_safe_block_number().unwrap() == Some(0)); - assert!(store.get_latest_block_number().unwrap() == Some(2)); + assert!(store.get_latest_block_number().unwrap() == 2); } #[test] diff --git a/crates/l2/proposer/mod.rs b/crates/l2/proposer/mod.rs index 63efc0dbb..b11a0f41e 100644 --- a/crates/l2/proposer/mod.rs +++ b/crates/l2/proposer/mod.rs @@ -90,9 +90,7 @@ impl Proposer { pub async fn main_logic(&self, store: Store) -> Result<(), ProposerError> { let head_block_hash = { - let current_block_number = store - .get_latest_block_number()? - .ok_or(ProposerError::StorageDataIsNone)?; + let current_block_number = store.get_latest_block_number()?; store .get_canonical_block_hash(current_block_number)? .ok_or(ProposerError::StorageDataIsNone)? diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 1e1b3bd17..835850424 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -282,10 +282,7 @@ impl ProverServer { ) -> Result<(), ProverServerError> { debug!("Request received"); - let latest_block_number = self - .store - .get_latest_block_number()? - .ok_or(ProverServerError::StorageDataIsNone)?; + let latest_block_number = self.store.get_latest_block_number()?; let response = if block_number > latest_block_number { let response = ProofData::response(None, None); diff --git a/crates/networking/p2p/rlpx/eth/backend.rs b/crates/networking/p2p/rlpx/eth/backend.rs index 9ba059dcd..a76d9f03a 100644 --- a/crates/networking/p2p/rlpx/eth/backend.rs +++ b/crates/networking/p2p/rlpx/eth/backend.rs @@ -16,9 +16,7 @@ pub fn get_status(storage: &Store) -> Result { let genesis_header = storage .get_block_header(0)? .ok_or(RLPxError::NotFound("Genesis Block".to_string()))?; - let block_number = storage - .get_latest_block_number()? - .ok_or(RLPxError::NotFound("Latest Block Number".to_string()))?; + let block_number = storage.get_latest_block_number()?; let block_header = storage .get_block_header(block_number)? .ok_or(RLPxError::NotFound(format!("Block {block_number}")))?; @@ -43,9 +41,7 @@ pub fn validate_status(msg_data: StatusMessage, storage: &Store) -> Result<(), R let genesis_header = storage .get_block_header(0)? .ok_or(RLPxError::NotFound("Genesis Block".to_string()))?; - let block_number = storage - .get_latest_block_number()? - .ok_or(RLPxError::NotFound("Latest Block Number".to_string()))?; + let block_number = storage.get_latest_block_number()?; let block_header = storage .get_block_header(block_number)? .ok_or(RLPxError::NotFound(format!("Block {block_number}")))?; diff --git a/crates/networking/rpc/engine/fork_choice.rs b/crates/networking/rpc/engine/fork_choice.rs index 6cc7d0d9e..a66d7838a 100644 --- a/crates/networking/rpc/engine/fork_choice.rs +++ b/crates/networking/rpc/engine/fork_choice.rs @@ -175,7 +175,7 @@ fn handle_forkchoice( } InvalidForkChoice::Syncing => { // Start sync - let current_number = context.storage.get_latest_block_number()?.unwrap(); + let current_number = context.storage.get_latest_block_number()?; let Some(current_head) = context.storage.get_canonical_block_hash(current_number)? else { diff --git a/crates/networking/rpc/eth/block.rs b/crates/networking/rpc/eth/block.rs index fe014cc79..f32cc4638 100644 --- a/crates/networking/rpc/eth/block.rs +++ b/crates/networking/rpc/eth/block.rs @@ -310,12 +310,8 @@ impl RpcHandler for BlockNumberRequest { fn handle(&self, context: RpcApiContext) -> Result { info!("Requested latest block number"); - match context.storage.get_latest_block_number() { - Ok(Some(block_number)) => serde_json::to_value(format!("{:#x}", block_number)) - .map_err(|error| RpcErr::Internal(error.to_string())), - Ok(None) => Err(RpcErr::Internal("No blocks found".to_owned())), - Err(error) => Err(RpcErr::Internal(error.to_string())), - } + serde_json::to_value(format!("{:#x}", context.storage.get_latest_block_number()?)) + .map_err(|error| RpcErr::Internal(error.to_string())) } } @@ -326,25 +322,19 @@ impl RpcHandler for GetBlobBaseFee { fn handle(&self, context: RpcApiContext) -> Result { info!("Requested blob gas price"); - match context.storage.get_latest_block_number() { - Ok(Some(block_number)) => { - let header = match context.storage.get_block_header(block_number)? { - Some(header) => header, - _ => return Err(RpcErr::Internal("Could not get block header".to_owned())), - }; - let parent_header = match find_parent_header(&header, &context.storage) { - Ok(header) => header, - Err(error) => return Err(RpcErr::Internal(error.to_string())), - }; - let blob_base_fee = calculate_base_fee_per_blob_gas( - parent_header.excess_blob_gas.unwrap_or_default(), - ); - serde_json::to_value(format!("{:#x}", blob_base_fee)) - .map_err(|error| RpcErr::Internal(error.to_string())) - } - Ok(None) => Err(RpcErr::Internal("No blocks found".to_owned())), - Err(error) => Err(RpcErr::Internal(error.to_string())), - } + let block_number = context.storage.get_latest_block_number()?; + let header = match context.storage.get_block_header(block_number)? { + Some(header) => header, + _ => return Err(RpcErr::Internal("Could not get block header".to_owned())), + }; + let parent_header = match find_parent_header(&header, &context.storage) { + Ok(header) => header, + Err(error) => return Err(RpcErr::Internal(error.to_string())), + }; + let blob_base_fee = + calculate_base_fee_per_blob_gas(parent_header.excess_blob_gas.unwrap_or_default()); + serde_json::to_value(format!("{:#x}", blob_base_fee)) + .map_err(|error| RpcErr::Internal(error.to_string())) } } diff --git a/crates/networking/rpc/eth/fee_market.rs b/crates/networking/rpc/eth/fee_market.rs index ea01ce612..f926551eb 100644 --- a/crates/networking/rpc/eth/fee_market.rs +++ b/crates/networking/rpc/eth/fee_market.rs @@ -157,16 +157,10 @@ impl FeeHistoryRequest { // TODO: We should probably restrict how many blocks we are fetching to a certain limit // Get earliest block - let earliest_block_num = storage - .get_earliest_block_number()? - .ok_or(RpcErr::Internal( - "Could not get earliest block number".to_owned(), - ))?; + let earliest_block_num = storage.get_earliest_block_number()?; // Get latest block - let latest_block_num = storage.get_latest_block_number()?.ok_or(RpcErr::Internal( - "Could not get latest block number".to_owned(), - ))?; + let latest_block_num = storage.get_latest_block_number()?; // Get finish_block number let finish_block = finish_block diff --git a/crates/networking/rpc/eth/filter.rs b/crates/networking/rpc/eth/filter.rs index 197dbc02b..74dbdb500 100644 --- a/crates/networking/rpc/eth/filter.rs +++ b/crates/networking/rpc/eth/filter.rs @@ -85,10 +85,7 @@ impl NewFilterRequest { return Err(RpcErr::BadParams("Invalid block range".to_string())); } - let Some(last_block_number) = storage.get_latest_block_number()? else { - error!("Latest block number was requested but it does not exist"); - return Err(RpcErr::Internal("Failed to create filter".to_string())); - }; + let last_block_number = storage.get_latest_block_number()?; let id: u64 = random(); let timestamp = Instant::now(); let mut active_filters_guard = filters.lock().unwrap_or_else(|mut poisoned_guard| { @@ -188,10 +185,7 @@ impl FilterChangesRequest { storage: ethrex_storage::Store, filters: ActiveFilters, ) -> Result { - let Some(latest_block_num) = storage.get_latest_block_number()? else { - error!("Latest block number was requested but it does not exist"); - return Err(RpcErr::Internal("Failed to create filter".to_string())); - }; + let latest_block_num = storage.get_latest_block_number()?; let mut active_filters_guard = filters.lock().unwrap_or_else(|mut poisoned_guard| { error!("THREAD CRASHED WITH MUTEX TAKEN; SYSTEM MIGHT BE UNSTABLE"); **poisoned_guard.get_mut() = HashMap::new(); diff --git a/crates/networking/rpc/eth/gas_price.rs b/crates/networking/rpc/eth/gas_price.rs index c34122654..cac45e1c2 100644 --- a/crates/networking/rpc/eth/gas_price.rs +++ b/crates/networking/rpc/eth/gas_price.rs @@ -41,10 +41,7 @@ impl RpcHandler for GasPrice { /// Estimate Gas Price based on already accepted transactions, /// as per the spec, this will be returned in wei. fn handle(&self, context: RpcApiContext) -> Result { - let Some(latest_block_number) = context.storage.get_latest_block_number()? else { - error!("FATAL: LATEST BLOCK NUMBER IS MISSING"); - return Err(RpcErr::Internal("Error calculating gas price".to_string())); - }; + let latest_block_number = context.storage.get_latest_block_number()?; let block_range_lower_bound = latest_block_number.saturating_sub(BLOCK_RANGE_LOWER_BOUND_DEC); // These are the blocks we'll use to estimate the price. diff --git a/crates/networking/rpc/types/block_identifier.rs b/crates/networking/rpc/types/block_identifier.rs index b74963820..d741a4cf7 100644 --- a/crates/networking/rpc/types/block_identifier.rs +++ b/crates/networking/rpc/types/block_identifier.rs @@ -35,10 +35,10 @@ impl BlockIdentifier { match self { BlockIdentifier::Number(num) => Ok(Some(*num)), BlockIdentifier::Tag(tag) => match tag { - BlockTag::Earliest => storage.get_earliest_block_number(), + BlockTag::Earliest => Ok(Some(storage.get_earliest_block_number()?)), BlockTag::Finalized => storage.get_finalized_block_number(), BlockTag::Safe => storage.get_safe_block_number(), - BlockTag::Latest => storage.get_latest_block_number(), + BlockTag::Latest => Ok(Some(storage.get_latest_block_number()?)), BlockTag::Pending => { // TODO(#1112): We need to check individual intrincacies of the pending tag for // each RPC method that uses it. @@ -47,7 +47,7 @@ impl BlockIdentifier { // If there are no pending blocks, we return the latest block number .and_then(|pending_block_number| match pending_block_number { Some(block_number) => Ok(Some(block_number)), - None => storage.get_latest_block_number(), + None => Ok(Some(storage.get_latest_block_number()?)), }) } }, @@ -114,10 +114,8 @@ impl BlockIdentifierOrHash { let result = self.resolve_block_number(storage)?; let latest = storage.get_latest_block_number()?; - match (result, latest) { - (Some(result), Some(latest)) => Ok(result == latest), - _ => Ok(false), - } + + Ok(result.is_some_and(|res| res == latest)) } } diff --git a/crates/storage/store/error.rs b/crates/storage/store/error.rs index 253b071a6..7c5df0d40 100644 --- a/crates/storage/store/error.rs +++ b/crates/storage/store/error.rs @@ -38,4 +38,8 @@ pub enum StoreError { Trie(#[from] TrieError), #[error("missing store: is an execution DB being used instead?")] MissingStore, + #[error("Missing latest block number")] + MissingLatestBlockNumber, + #[error("Missing earliest block number")] + MissingEarliestBlockNumber, } diff --git a/crates/storage/store/storage.rs b/crates/storage/store/storage.rs index d647f9467..b3e3e4af9 100644 --- a/crates/storage/store/storage.rs +++ b/crates/storage/store/storage.rs @@ -635,9 +635,10 @@ impl Store { self.engine.update_earliest_block_number(block_number) } - // TODO(#790): This should not return an option. - pub fn get_earliest_block_number(&self) -> Result, StoreError> { - self.engine.get_earliest_block_number() + pub fn get_earliest_block_number(&self) -> Result { + self.engine + .get_earliest_block_number()? + .ok_or(StoreError::MissingEarliestBlockNumber) } pub fn update_finalized_block_number( @@ -663,9 +664,10 @@ impl Store { self.engine.update_latest_block_number(block_number) } - // TODO(#790): This should not return an option. - pub fn get_latest_block_number(&self) -> Result, StoreError> { - self.engine.get_latest_block_number() + pub fn get_latest_block_number(&self) -> Result { + self.engine + .get_latest_block_number()? + .ok_or(StoreError::MissingLatestBlockNumber) } pub fn update_latest_total_difficulty(&self, block_difficulty: U256) -> Result<(), StoreError> { @@ -1239,10 +1241,10 @@ mod tests { .update_pending_block_number(pending_block_number) .unwrap(); - let stored_earliest_block_number = store.get_earliest_block_number().unwrap().unwrap(); + let stored_earliest_block_number = store.get_earliest_block_number().unwrap(); let stored_finalized_block_number = store.get_finalized_block_number().unwrap().unwrap(); let stored_safe_block_number = store.get_safe_block_number().unwrap().unwrap(); - let stored_latest_block_number = store.get_latest_block_number().unwrap().unwrap(); + let stored_latest_block_number = store.get_latest_block_number().unwrap(); let stored_pending_block_number = store.get_pending_block_number().unwrap().unwrap(); assert_eq!(earliest_block_number, stored_earliest_block_number); From 4b7c9657d3170376a73d0c98dfb33bf544b88182 Mon Sep 17 00:00:00 2001 From: Maximo Palopoli <96491141+maximopalopoli@users.noreply.github.com> Date: Wed, 18 Dec 2024 18:53:37 -0300 Subject: [PATCH 04/26] feat(levm): implement precompile ripemd160 (#1521) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivation** The goal is to implement ripemd160 precompile. **Description** The implementation is quite similar to the sha2-256. There is one test named `static_Call50000_rip160` that fails, but I think that fails due to other reasons. --------- Co-authored-by: ilitteri Co-authored-by: Jeremías Salomón <48994069+JereSalo@users.noreply.github.com> --- Cargo.lock | 1 + crates/vm/levm/Cargo.toml | 1 + crates/vm/levm/src/precompiles.rs | 25 +++++++++++----- crates/vm/levm/tests/tests.rs | 49 +++++++++++++++++++++++++++++-- 4 files changed, 66 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 256bd38d4..524fc8aee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2191,6 +2191,7 @@ dependencies = [ "hex", "keccak-hash 0.11.0", "libsecp256k1", + "ripemd", "serde", "serde_json", "sha2 0.10.8", diff --git a/crates/vm/levm/Cargo.toml b/crates/vm/levm/Cargo.toml index 8663a751d..b6494e5d5 100644 --- a/crates/vm/levm/Cargo.toml +++ b/crates/vm/levm/Cargo.toml @@ -17,6 +17,7 @@ keccak-hash = "0.11.0" thiserror = "2.0.3" libsecp256k1 = "0.7.1" sha2 = "0.10.8" +ripemd = "0.1.3" [dev-dependencies] hex = "0.4.3" diff --git a/crates/vm/levm/src/precompiles.rs b/crates/vm/levm/src/precompiles.rs index 73fc99ece..9ffef1e9c 100644 --- a/crates/vm/levm/src/precompiles.rs +++ b/crates/vm/levm/src/precompiles.rs @@ -7,7 +7,7 @@ use sha3::Digest; use crate::{ call_frame::CallFrame, errors::{InternalError, PrecompileError, VMError}, - gas_cost::{sha2_256 as sha2_256_cost, ECRECOVER_COST}, + gas_cost::{ripemd_160 as ripemd_160_cost, sha2_256 as sha2_256_cost, ECRECOVER_COST}, }; pub const ECRECOVER_ADDRESS: H160 = H160([ @@ -199,7 +199,7 @@ fn identity( Ok(Bytes::new()) } -fn sha2_256( +pub fn sha2_256( calldata: &Bytes, gas_for_call: U256, consumed_gas: &mut U256, @@ -213,12 +213,23 @@ fn sha2_256( Ok(Bytes::from(result)) } -fn ripemd_160( - _calldata: &Bytes, - _gas_for_call: U256, - _consumed_gas: &mut U256, +pub fn ripemd_160( + calldata: &Bytes, + gas_for_call: U256, + consumed_gas: &mut U256, ) -> Result { - Ok(Bytes::new()) + let gas_cost = ripemd_160_cost(calldata.len())?; + + increase_precompile_consumed_gas(gas_for_call, gas_cost, consumed_gas)?; + + let mut hasher = ripemd::Ripemd160::new(); + hasher.update(calldata); + let result = hasher.finalize(); + + let mut output = vec![0; 12]; + output.extend_from_slice(&result); + + Ok(Bytes::from(output)) } fn modexp( diff --git a/crates/vm/levm/tests/tests.rs b/crates/vm/levm/tests/tests.rs index 86281f309..4544c715d 100644 --- a/crates/vm/levm/tests/tests.rs +++ b/crates/vm/levm/tests/tests.rs @@ -8,9 +8,13 @@ use ethrex_levm::{ constants::*, db::{cache, CacheDB, Db}, errors::{OutOfGasError, TxResult, VMError}, - gas_cost, memory, + gas_cost::{ + self, ECRECOVER_COST, RIPEMD_160_DYNAMIC_BASE, RIPEMD_160_STATIC_COST, + SHA2_256_DYNAMIC_BASE, SHA2_256_STATIC_COST, + }, + memory, operations::Operation, - precompiles::ecrecover, + precompiles::{ecrecover, ripemd_160, sha2_256}, utils::{new_vm_with_ops, new_vm_with_ops_addr_bal_db, new_vm_with_ops_db, ops_to_bytecode}, vm::{word_to_address, Storage, VM}, Environment, @@ -4504,5 +4508,44 @@ fn recover_test() { hex::decode("0000000000000000000000007156526fbd7a3c72969b54f64e42c10fbb768c8a").unwrap(), ); - assert_eq!(result, expected_result) + assert_eq!(result, expected_result); + assert_eq!(consumed_gas, ECRECOVER_COST.into()); +} + +#[test] +fn sha2_256_test() { + let calldata = hex::decode("ff").unwrap(); + let calldata = Bytes::from(calldata); + + let mut consumed_gas = U256::zero(); + let result = sha2_256(&calldata, 10000.into(), &mut consumed_gas).unwrap(); + + let expected_result = Bytes::from( + hex::decode("a8100ae6aa1940d0b663bb31cd466142ebbdbd5187131b92d93818987832eb89").unwrap(), + ); + + assert_eq!(result, expected_result); + assert_eq!( + consumed_gas, + (SHA2_256_STATIC_COST + SHA2_256_DYNAMIC_BASE).into() + ); +} + +#[test] +fn ripemd_160_test() { + let calldata = hex::decode("ff").unwrap(); + let calldata = Bytes::from(calldata); + + let mut consumed_gas = U256::zero(); + let result = ripemd_160(&calldata, 10000.into(), &mut consumed_gas).unwrap(); + + let expected_result = Bytes::from( + hex::decode("0000000000000000000000002c0c45d3ecab80fe060e5f1d7057cd2f8de5e557").unwrap(), + ); + + assert_eq!(result, expected_result); + assert_eq!( + consumed_gas, + (RIPEMD_160_STATIC_COST + RIPEMD_160_DYNAMIC_BASE).into() + ); } From e3620b04f7cf3c3c79b760c3a00fec073275851d Mon Sep 17 00:00:00 2001 From: Damian Ramirez Date: Thu, 19 Dec 2024 11:14:23 -0300 Subject: [PATCH 05/26] fix(levm): change initial value of gas refund in sstore (#1530) **Motivation** There was a problem with the refunded gas. It was not aligned correctly in the subcontexts. **Description** - Use the gas refund that we have in the `env` as the value in `sstore`. - Update `self.env.refunded_gas` with the new `gas_refunds` value. With this change, we prevent losing track of gas refunds across different contexts. --- .../src/opcode_handlers/stack_memory_storage_flow.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs b/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs index 0c803c1f1..6fc393e06 100644 --- a/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs +++ b/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs @@ -178,8 +178,8 @@ impl VM { )?; // Gas Refunds - // TODO: Think about what to do in case of underflow of gas refunds (when we try to substract from it if the value is low) - let mut gas_refunds = U256::zero(); + // Sync gas refund with global env, ensuring consistency accross contexts. + let mut gas_refunds = self.env.refunded_gas; if new_storage_slot_value != storage_slot.current_value { if storage_slot.current_value == storage_slot.original_value { if !storage_slot.original_value.is_zero() && new_storage_slot_value.is_zero() { @@ -210,14 +210,9 @@ impl VM { } }; - self.env.refunded_gas = self - .env - .refunded_gas - .checked_add(gas_refunds) - .ok_or(VMError::GasLimitPriceProductOverflow)?; + self.env.refunded_gas = gas_refunds; self.update_account_storage(current_call_frame.to, key, new_storage_slot_value)?; - Ok(OpcodeSuccess::Continue) } From f7417441a6375ebe856bbfcfeee11417bea7b20a Mon Sep 17 00:00:00 2001 From: Tomas Fabrizio Orsi Date: Thu, 19 Dec 2024 12:56:36 -0300 Subject: [PATCH 06/26] fix(levm): change blobhash fee calculation (#1509) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivation** The way we calculate the blob fee is not following the specification; which meant over charging the sender. Also, this changes the way we return a 0 in case the index is not valid (that is, when the index is larger than the blob hash array itself). **Description** We are using the `tx.max_fee_per_blob_gas` when the specification uses the `base_fee_per_blob_gas`. For this, we use the already available function `get_base_fee_per_blob_gas`. Also, now a 0 is pushed to the stack when the index is larger than usize when it reality it should check against the amount of blobs. The previous implementation achieved this, but this new implementation is more explicit about _when_ it does it. Closes https://github.com/lambdaclass/ethrex/issues/1508 --------- Co-authored-by: JereSalo Co-authored-by: Jeremías Salomón <48994069+JereSalo@users.noreply.github.com> --- crates/vm/levm/src/errors.rs | 2 ++ crates/vm/levm/src/gas_cost.rs | 2 +- crates/vm/levm/src/opcode_handlers/block.rs | 25 ++++++++++++-------- crates/vm/levm/src/vm.rs | 26 +++++++++++++++++---- 4 files changed, 39 insertions(+), 16 deletions(-) diff --git a/crates/vm/levm/src/errors.rs b/crates/vm/levm/src/errors.rs index 3621e5903..df3e00b1b 100644 --- a/crates/vm/levm/src/errors.rs +++ b/crates/vm/levm/src/errors.rs @@ -152,6 +152,8 @@ pub enum InternalError { DivisionError, #[error("Tried to access last call frame but found none")] CouldNotAccessLastCallframe, // Last callframe before execution is the same as the first, but after execution the last callframe is actually the initial CF + #[error("Tried to access blobhash but was out of range")] + BlobHashOutOfRange, #[error("Tried to read from empty code")] TriedToIndexEmptyCode, #[error("Failed computing CREATE address")] diff --git a/crates/vm/levm/src/gas_cost.rs b/crates/vm/levm/src/gas_cost.rs index 0cecb9681..06bf1a213 100644 --- a/crates/vm/levm/src/gas_cost.rs +++ b/crates/vm/levm/src/gas_cost.rs @@ -157,7 +157,7 @@ pub const CREATE_BASE_COST: U256 = U256([32000, 0, 0, 0]); pub const CALLDATA_COST_ZERO_BYTE: U256 = U256([4, 0, 0, 0]); pub const CALLDATA_COST_NON_ZERO_BYTE: U256 = U256([16, 0, 0, 0]); -// Blob gas costs +// Blob gas costs 2^17 pub const BLOB_GAS_PER_BLOB: U256 = U256([131072, 0, 0, 0]); // Access lists costs diff --git a/crates/vm/levm/src/opcode_handlers/block.rs b/crates/vm/levm/src/opcode_handlers/block.rs index a5796f012..bb6ef5bad 100644 --- a/crates/vm/levm/src/opcode_handlers/block.rs +++ b/crates/vm/levm/src/opcode_handlers/block.rs @@ -160,21 +160,26 @@ impl VM { ) -> Result { self.increase_consumed_gas(current_call_frame, gas_cost::BLOBHASH)?; - let Ok(index) = TryInto::::try_into(current_call_frame.stack.pop()?) else { + let index = current_call_frame.stack.pop()?; + + let blob_hashes = &self.env.tx_blob_hashes; + if index > blob_hashes.len().into() { current_call_frame.stack.push(U256::zero())?; return Ok(OpcodeSuccess::Continue); - }; + } - let blob_hashes = &self.env.tx_blob_hashes; + let index: usize = index + .try_into() + .map_err(|_| VMError::Internal(InternalError::ConversionError))?; - blob_hashes + //This should never fail because we check if the index fits above + let blob_hash = blob_hashes .get(index) - .map(|el| { - current_call_frame - .stack - .push(U256::from_big_endian(el.as_bytes())) - }) - .unwrap_or_else(|| current_call_frame.stack.push(U256::zero()))?; + .ok_or(VMError::Internal(InternalError::BlobHashOutOfRange))?; + + current_call_frame + .stack + .push(U256::from_big_endian(blob_hash.as_bytes()))?; Ok(OpcodeSuccess::Continue) } diff --git a/crates/vm/levm/src/vm.rs b/crates/vm/levm/src/vm.rs index 1e0e65e24..430dadeb2 100644 --- a/crates/vm/levm/src/vm.rs +++ b/crates/vm/levm/src/vm.rs @@ -597,14 +597,29 @@ impl VM { .checked_mul(BLOB_GAS_PER_BLOB) .unwrap_or_default(); - let blob_gas_cost = self + let max_blob_gas_cost = self .env .tx_max_fee_per_blob_gas .unwrap_or_default() .checked_mul(blob_gas_used) .ok_or(InternalError::UndefinedState(1))?; - Ok(blob_gas_cost) + Ok(max_blob_gas_cost) + } + + /// Gets the actual blob gas cost. + fn get_blob_gas_cost(&self) -> Result { + let blob_gas_used = U256::from(self.env.tx_blob_hashes.len()) + .checked_mul(BLOB_GAS_PER_BLOB) + .unwrap_or_default(); + + let base_fee_per_blob_gas = self.get_base_fee_per_blob_gas()?; + + let blob_fee = blob_gas_used + .checked_mul(base_fee_per_blob_gas) + .ok_or(InternalError::UndefinedState(1))?; + + Ok(blob_fee) } pub fn get_base_fee_per_blob_gas(&self) -> Result { @@ -641,7 +656,7 @@ impl VM { // blob gas cost = max fee per blob gas * blob gas used // https://eips.ethereum.org/EIPS/eip-4844 - let blob_gas_cost = self.get_max_blob_gas_cost()?; + let max_blob_gas_cost = self.get_max_blob_gas_cost()?; // For the transaction to be valid the sender account has to have a balance >= gas_price * gas_limit + value if tx is type 0 and 1 // balance >= max_fee_per_gas * gas_limit + value + blob_gas_cost if tx is type 2 or 3 @@ -659,7 +674,7 @@ impl VM { .ok_or(VMError::TxValidation( TxValidationError::InsufficientAccountFunds, ))? - .checked_add(blob_gas_cost) + .checked_add(max_blob_gas_cost) .ok_or(VMError::TxValidation( TxValidationError::InsufficientAccountFunds, ))?; @@ -669,6 +684,8 @@ impl VM { )); } + let blob_gas_cost = self.get_blob_gas_cost()?; + // The real cost to deduct is calculated as effective_gas_price * gas_limit + value + blob_gas_cost let up_front_cost = gaslimit_price_product .checked_add(value) @@ -792,7 +809,6 @@ impl VM { initial_call_frame.assign_bytecode(initial_call_frame.calldata.clone()); initial_call_frame.calldata = Bytes::new(); } - Ok(()) } From fbf5f6d6ef9fa3300bb8c211124f7bc3aec59140 Mon Sep 17 00:00:00 2001 From: LeanSerra <46695152+LeanSerra@users.noreply.github.com> Date: Thu, 19 Dec 2024 13:04:26 -0300 Subject: [PATCH 07/26] fix(levm): reserve gas for subcall in CREATE (#1532) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivation** The gas for the subcall should be reserved before checking the validity of the create, and shouldn't be returned in case we get an address collision. **Description** - After doing the checks that can cause an OOG, we reserve the gas_limit for the create subcall, if a check that shouldn't consume this reserved gas fails, we return the gas, push a 0 and return. If the the address of a new account has nonce or code, we don't return the gas, increment nonce, push 0 and return. - The address of the account to create should be inserted into the "warm" account set, and remain even if we return because of a failed check, so it is now done earlier and only removed from the set if the new_call_frame results in a revert. --------- Co-authored-by: Jeremías Salomón <48994069+JereSalo@users.noreply.github.com> --- crates/vm/levm/src/opcode_handlers/system.rs | 69 ++++++++++++-------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/crates/vm/levm/src/opcode_handlers/system.rs b/crates/vm/levm/src/opcode_handlers/system.rs index a16effa0e..ec2de4851 100644 --- a/crates/vm/levm/src/opcode_handlers/system.rs +++ b/crates/vm/levm/src/opcode_handlers/system.rs @@ -486,32 +486,16 @@ impl VM { return Err(VMError::OutOfGas(OutOfGasError::ConsumedGasOverflow)); } - // SECOND: Validations that push 0 to the stack - let deployer_address = current_call_frame.to; + // Reserve gas for subcall + let max_message_call_gas = max_message_call_gas(current_call_frame)?; + self.increase_consumed_gas(current_call_frame, max_message_call_gas.into())?; - let deployer_account_info = self.access_account(deployer_address).0; + // Clear callframe subreturn data + current_call_frame.sub_return_data = Bytes::new(); - // 1. Sender doesn't have enough balance to send value. - if deployer_account_info.balance < value_in_wei_to_send { - current_call_frame.stack.push(CREATE_DEPLOYMENT_FAIL)?; - return Ok(OpcodeSuccess::Continue); - } - - // 2. Depth limit has been reached - let new_depth = current_call_frame - .depth - .checked_add(1) - .ok_or(InternalError::ArithmeticOperationOverflow)?; - if new_depth > 1024 { - current_call_frame.stack.push(CREATE_DEPLOYMENT_FAIL)?; - return Ok(OpcodeSuccess::Continue); - } + let deployer_address = current_call_frame.to; - // 3. Sender nonce is max. - if deployer_account_info.nonce == u64::MAX { - current_call_frame.stack.push(CREATE_DEPLOYMENT_FAIL)?; - return Ok(OpcodeSuccess::Continue); - } + let deployer_account_info = self.access_account(deployer_address).0; let code = Bytes::from( memory::load_range( @@ -527,7 +511,32 @@ impl VM { None => Self::calculate_create_address(deployer_address, deployer_account_info.nonce)?, }; - // 3. Account has nonce or code. + // touch account + self.accrued_substate.touched_accounts.insert(new_address); + + let new_depth = current_call_frame + .depth + .checked_add(1) + .ok_or(InternalError::ArithmeticOperationOverflow)?; + // SECOND: Validations that push 0 to the stack and return reserved_gas + // 1. Sender doesn't have enough balance to send value. + // 2. Depth limit has been reached + // 3. Sender nonce is max. + if deployer_account_info.balance < value_in_wei_to_send + || new_depth > 1024 + || deployer_account_info.nonce == u64::MAX + { + // Return reserved gas + current_call_frame.gas_used = current_call_frame + .gas_used + .checked_sub(max_message_call_gas.into()) + .ok_or(VMError::Internal(InternalError::GasOverflow))?; + // Push 0 + current_call_frame.stack.push(CREATE_DEPLOYMENT_FAIL)?; + return Ok(OpcodeSuccess::Continue); + } + + // THIRD: Validations that push 0 to the stack without returning reserved gas but incrementing deployer's nonce let new_account = self.get_account(new_address); if new_account.has_code_or_nonce() { self.increment_account_nonce(deployer_address)?; @@ -535,7 +544,7 @@ impl VM { return Ok(OpcodeSuccess::Continue); } - // THIRD: Changes to the state + // FOURTH: Changes to the state // 1. Creating contract. // If the address has balance but there is no account associated with it, we need to add the value to it @@ -552,7 +561,6 @@ impl VM { // 3. Decrease sender's balance. self.decrease_account_balance(deployer_address, value_in_wei_to_send)?; - let max_message_call_gas = max_message_call_gas(current_call_frame)?; let mut new_call_frame = CallFrame::new( deployer_address, new_address, @@ -568,14 +576,17 @@ impl VM { ); self.accrued_substate.created_accounts.insert(new_address); // Mostly for SELFDESTRUCT during initcode. - self.accrued_substate.touched_accounts.insert(new_address); let tx_report = self.execute(&mut new_call_frame)?; + let unused_gas = max_message_call_gas + .checked_sub(tx_report.gas_used) + .ok_or(InternalError::GasOverflow)?; + // Return reserved gas current_call_frame.gas_used = current_call_frame .gas_used - .checked_add(tx_report.gas_used.into()) - .ok_or(VMError::OutOfGas(OutOfGasError::ConsumedGasOverflow))?; + .checked_sub(unused_gas.into()) + .ok_or(InternalError::GasOverflow)?; current_call_frame.logs.extend(tx_report.logs); match tx_report.result { From bb7251d27ee7970d84a15c750de1ded18c7d2d57 Mon Sep 17 00:00:00 2001 From: ElFantasma Date: Thu, 19 Dec 2024 16:48:20 -0300 Subject: [PATCH 08/26] fix(l1): preventing `GetPayloadBodies Parallel` test to get blocked (#1542) **Motivation** On `engine-withdrawals/GetPayloadBodies Parallel` hive test: When all the parallel requests fail the parallel workers are killed and the channel where the requests are pushed gets blocked, causing the entire test to block. **Description** Using the [hive update](https://github.com/lambdaclass/hive/pull/15) that fixes that problem --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0e2c1c071..3973f07ad 100644 --- a/Makefile +++ b/Makefile @@ -82,7 +82,7 @@ stop-localnet-silent: @kurtosis enclave stop $(ENCLAVE) >/dev/null 2>&1 || true @kurtosis enclave rm $(ENCLAVE) --force >/dev/null 2>&1 || true -HIVE_REVISION := f220e0c55fb222aaaffdf17d66aa0537cd16a67a +HIVE_REVISION := df7d5103d4ddc772307f9947be4ad1f20ce03ed0 # Shallow clones can't specify a single revision, but at least we avoid working # the whole history by making it shallow since a given date (one day before our # target revision). From 342e266f9989d5990f3ab5c8e7434449b64c2dd8 Mon Sep 17 00:00:00 2001 From: LeanSerra <46695152+LeanSerra@users.noreply.github.com> Date: Thu, 19 Dec 2024 17:44:41 -0300 Subject: [PATCH 09/26] fix(levm): create address should remain touched even in fails (#1538) **Motivation** The new address should remain in the touched adresses even in fails **Description** - Remove the line that removed the address from the touched addresses. **Resources** "Clarification: If a CREATE/CREATE2 operation fails later on, e.g during the execution of initcode or has insufficient gas to store the code in the state, the address of the contract itself remains in access_addresses (but any additions made within the inner scope are reverted)." From https://eips.ethereum.org/EIPS/eip-2929 --- crates/vm/levm/src/opcode_handlers/system.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/vm/levm/src/opcode_handlers/system.rs b/crates/vm/levm/src/opcode_handlers/system.rs index ec2de4851..84b74d722 100644 --- a/crates/vm/levm/src/opcode_handlers/system.rs +++ b/crates/vm/levm/src/opcode_handlers/system.rs @@ -602,7 +602,6 @@ impl VM { // Deployment failed so account shouldn't exist cache::remove_account(&mut self.cache, &new_address); self.accrued_substate.created_accounts.remove(&new_address); - self.accrued_substate.touched_accounts.remove(&new_address); current_call_frame.stack.push(CREATE_DEPLOYMENT_FAIL)?; } From 3ad1b8a561b2321d1da5fa2e9805afad913ef3c5 Mon Sep 17 00:00:00 2001 From: Francisco Krause Arnim <56402156+fkrause98@users.noreply.github.com> Date: Thu, 19 Dec 2024 18:18:21 -0300 Subject: [PATCH 10/26] feat(l1): add P2P Eth get receipts msg (#1432) **Motivation** - Support the P2P eth functionality of exchanging transaction receipts. Closes #386 Closes #387 --------- Co-authored-by: Martin Paulucci Co-authored-by: fmoletta Co-authored-by: fmoletta <99273364+fmoletta@users.noreply.github.com> --- .github/workflows/ci_l1.yaml | 2 +- crates/common/rlp/decode.rs | 6 +- crates/common/types/block.rs | 2 +- crates/common/types/receipt.rs | 221 ++++++++++++++++++--- crates/common/types/transaction.rs | 6 +- crates/networking/p2p/rlpx/connection.rs | 13 ++ crates/networking/p2p/rlpx/eth/receipts.rs | 8 +- crates/networking/p2p/rlpx/message.rs | 11 +- crates/networking/rpc/eth/block.rs | 2 +- crates/networking/rpc/eth/transaction.rs | 1 + crates/storage/store/engines/api.rs | 2 + crates/storage/store/engines/in_memory.rs | 17 ++ crates/storage/store/engines/libmdbx.rs | 28 +++ crates/storage/store/engines/redb.rs | 29 +++ crates/storage/store/error.rs | 4 + crates/storage/store/storage.rs | 7 + 16 files changed, 311 insertions(+), 48 deletions(-) diff --git a/.github/workflows/ci_l1.yaml b/.github/workflows/ci_l1.yaml index 5d1efa015..40e6577ea 100644 --- a/.github/workflows/ci_l1.yaml +++ b/.github/workflows/ci_l1.yaml @@ -157,7 +157,7 @@ jobs: test_pattern: /AccountRange|StorageRanges|ByteCodes|TrieNodes - name: "Devp2p eth tests" simulation: devp2p - test_pattern: eth/Status|GetBlockHeaders|SimultaneousRequests|SameRequestID|ZeroRequestID|GetBlockBodies|MaliciousHandshake|MaliciousStatus|Transaction|InvalidTxs|NewPooledTxs + test_pattern: eth/Status|GetBlockHeaders|SimultaneousRequests|SameRequestID|ZeroRequestID|GetBlockBodies|MaliciousHandshake|MaliciousStatus|Transaction|InvalidTxs|NewPooledTxs|GetBlockReceipts - name: "Engine Auth and EC tests" simulation: ethereum/engine test_pattern: engine-(auth|exchange-capabilities)/ diff --git a/crates/common/rlp/decode.rs b/crates/common/rlp/decode.rs index 6418e693a..348999ff4 100644 --- a/crates/common/rlp/decode.rs +++ b/crates/common/rlp/decode.rs @@ -492,10 +492,10 @@ pub fn is_encoded_as_bytes(rlp: &[u8]) -> Result { } /// Receives an RLP bytes item (prefix between 0xb8 and 0xbf) and returns its payload -pub fn get_rlp_bytes_item_payload(rlp: &[u8]) -> &[u8] { - let prefix = rlp.first().unwrap(); +pub fn get_rlp_bytes_item_payload(rlp: &[u8]) -> Result<&[u8], RLPDecodeError> { + let prefix = rlp.first().ok_or(RLPDecodeError::InvalidLength)?; let offset: usize = (prefix - 0xb8 + 1).into(); - &rlp[offset + 1..] + rlp.get(offset + 1..).ok_or(RLPDecodeError::InvalidLength) } /// Decodes the payload of an RLP item from a slice of bytes. diff --git a/crates/common/types/block.rs b/crates/common/types/block.rs index 2f817d3ee..fb4b3eaf9 100644 --- a/crates/common/types/block.rs +++ b/crates/common/types/block.rs @@ -241,7 +241,7 @@ pub fn compute_receipts_root(receipts: &[Receipt]) -> H256 { let iter = receipts .iter() .enumerate() - .map(|(idx, receipt)| (idx.encode_to_vec(), receipt.encode_to_vec())); + .map(|(idx, receipt)| (idx.encode_to_vec(), receipt.encode_inner())); Trie::compute_hash_from_unsorted_iter(iter) } diff --git a/crates/common/types/receipt.rs b/crates/common/types/receipt.rs index e0e888244..31ae45652 100644 --- a/crates/common/types/receipt.rs +++ b/crates/common/types/receipt.rs @@ -1,14 +1,14 @@ use bytes::Bytes; use ethereum_types::{Address, Bloom, BloomInput, H256}; use ethrex_rlp::{ - decode::RLPDecode, + decode::{get_rlp_bytes_item_payload, is_encoded_as_bytes, RLPDecode}, encode::RLPEncode, error::RLPDecodeError, structs::{Decoder, Encoder}, }; use serde::{Deserialize, Serialize}; -use super::TxType; +use crate::types::TxType; pub type Index = u64; /// Result of a transaction @@ -31,6 +31,79 @@ impl Receipt { logs, } } + // By reading the typed transactions EIP, and some geth code: + // - https://eips.ethereum.org/EIPS/eip-2718 + // - https://github.com/ethereum/go-ethereum/blob/330190e476e2a2de4aac712551629a4134f802d5/core/types/receipt.go#L143 + // We've noticed the are some subtleties around encoding receipts and transactions. + // First, `encode_inner` will encode a receipt according + // to the RLP of its fields, if typed, the RLP of the fields + // is padded with the byte representing this type. + // For P2P messages, receipts are re-encoded as bytes + // (see the `encode` implementation for receipt). + // For debug and computing receipt roots, the expected + // RLP encodings are the ones returned by `encode_inner`. + // On some documentations, this is also called the `consensus-encoding` + // for a receipt. + + /// Encodes Receipts in the following formats: + /// A) Legacy receipts: rlp(receipt) + /// B) Non legacy receipts: tx_type | rlp(receipt). + pub fn encode_inner(&self) -> Vec { + let mut encode_buff = match self.tx_type { + TxType::Legacy => { + vec![] + } + _ => { + vec![self.tx_type as u8] + } + }; + Encoder::new(&mut encode_buff) + .encode_field(&self.succeeded) + .encode_field(&self.cumulative_gas_used) + .encode_field(&self.bloom) + .encode_field(&self.logs) + .finish(); + encode_buff + } + + /// Decodes Receipts in the following formats: + /// A) Legacy receipts: rlp(receipt) + /// B) Non legacy receipts: tx_type | rlp(receipt). + pub fn decode_inner(rlp: &[u8]) -> Result { + // Obtain TxType + let (tx_type, rlp) = match rlp.first() { + Some(tx_type) if *tx_type < 0x7f => { + let tx_type = match tx_type { + 0x0 => TxType::Legacy, + 0x1 => TxType::EIP2930, + 0x2 => TxType::EIP1559, + 0x3 => TxType::EIP4844, + 0x7e => TxType::Privileged, + ty => { + return Err(RLPDecodeError::Custom(format!( + "Invalid transaction type: {ty}" + ))) + } + }; + (tx_type, &rlp[1..]) + } + _ => (TxType::Legacy, rlp), + }; + let decoder = Decoder::new(rlp)?; + let (succeeded, decoder) = decoder.decode_field("succeeded")?; + let (cumulative_gas_used, decoder) = decoder.decode_field("cumulative_gas_used")?; + let (bloom, decoder) = decoder.decode_field("bloom")?; + let (logs, decoder) = decoder.decode_field("logs")?; + decoder.finish()?; + + Ok(Receipt { + tx_type, + succeeded, + cumulative_gas_used, + bloom, + logs, + }) + } } fn bloom_from_logs(logs: &[Log]) -> Bloom { @@ -45,55 +118,64 @@ fn bloom_from_logs(logs: &[Log]) -> Bloom { } impl RLPEncode for Receipt { + /// Receipts can be encoded in the following formats: + /// A) Legacy receipts: rlp(receipt) + /// B) Non legacy receipts: rlp(Bytes(tx_type | rlp(receipt))). fn encode(&self, buf: &mut dyn bytes::BufMut) { - // tx_type || RLP(receipt) if tx_type != 0 - // RLP(receipt) else match self.tx_type { - TxType::Legacy => {} - _ => buf.put_u8(self.tx_type as u8), - } - Encoder::new(buf) - .encode_field(&self.succeeded) - .encode_field(&self.cumulative_gas_used) - .encode_field(&self.bloom) - .encode_field(&self.logs) - .finish(); + TxType::Legacy => { + let legacy_encoded = self.encode_inner(); + buf.put_slice(&legacy_encoded); + } + _ => { + let typed_recepipt_encoded = self.encode_inner(); + let bytes = Bytes::from(typed_recepipt_encoded); + bytes.encode(buf); + } + }; } } impl RLPDecode for Receipt { + /// Receipts can be encoded in the following formats: + /// A) Legacy receipts: rlp(receipt) + /// B) Non legacy receipts: rlp(Bytes(tx_type | rlp(receipt))). fn decode_unfinished(rlp: &[u8]) -> Result<(Self, &[u8]), RLPDecodeError> { - // Decode tx type - let (tx_type, rlp) = match rlp.first() { - Some(tx_type) if *tx_type < 0x7f => match tx_type { - 0x0 => (TxType::Legacy, &rlp[1..]), - 0x1 => (TxType::EIP2930, &rlp[1..]), - 0x2 => (TxType::EIP1559, &rlp[1..]), - 0x3 => (TxType::EIP4844, &rlp[1..]), - 0x7e => (TxType::Privileged, &rlp[1..]), + let (tx_type, rlp) = if is_encoded_as_bytes(rlp)? { + let payload = get_rlp_bytes_item_payload(rlp)?; + let tx_type = match payload.first().ok_or(RLPDecodeError::InvalidLength)? { + 0x0 => TxType::Legacy, + 0x1 => TxType::EIP2930, + 0x2 => TxType::EIP1559, + 0x3 => TxType::EIP4844, + 0x7e => TxType::Privileged, ty => { return Err(RLPDecodeError::Custom(format!( "Invalid transaction type: {ty}" ))) } - }, - // Legacy Tx - _ => (TxType::Legacy, rlp), + }; + (tx_type, &payload[1..]) + } else { + (TxType::Legacy, rlp) }; - // Decode the remaining fields + let decoder = Decoder::new(rlp)?; let (succeeded, decoder) = decoder.decode_field("succeeded")?; let (cumulative_gas_used, decoder) = decoder.decode_field("cumulative_gas_used")?; let (bloom, decoder) = decoder.decode_field("bloom")?; let (logs, decoder) = decoder.decode_field("logs")?; - let receipt = Receipt { - tx_type, - succeeded, - cumulative_gas_used, - bloom, - logs, - }; - Ok((receipt, decoder.finish()?)) + + Ok(( + Receipt { + tx_type, + succeeded, + cumulative_gas_used, + bloom, + logs, + }, + decoder.finish()?, + )) } } @@ -129,3 +211,76 @@ impl RLPDecode for Log { Ok((log, decoder.finish()?)) } } + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn test_encode_decode_receipt_legacy() { + let receipt = Receipt { + tx_type: TxType::Legacy, + succeeded: true, + cumulative_gas_used: 1200, + bloom: Bloom::random(), + logs: vec![Log { + address: Address::random(), + topics: vec![], + data: Bytes::from_static(b"foo"), + }], + }; + let encoded_receipt = receipt.encode_to_vec(); + assert_eq!(receipt, Receipt::decode(&encoded_receipt).unwrap()) + } + + #[test] + fn test_encode_decode_receipt_non_legacy() { + let receipt = Receipt { + tx_type: TxType::EIP4844, + succeeded: true, + cumulative_gas_used: 1500, + bloom: Bloom::random(), + logs: vec![Log { + address: Address::random(), + topics: vec![], + data: Bytes::from_static(b"bar"), + }], + }; + let encoded_receipt = receipt.encode_to_vec(); + assert_eq!(receipt, Receipt::decode(&encoded_receipt).unwrap()) + } + + #[test] + fn test_encode_decode_inner_receipt_legacy() { + let receipt = Receipt { + tx_type: TxType::Legacy, + succeeded: true, + cumulative_gas_used: 1200, + bloom: Bloom::random(), + logs: vec![Log { + address: Address::random(), + topics: vec![], + data: Bytes::from_static(b"foo"), + }], + }; + let encoded_receipt = receipt.encode_inner(); + assert_eq!(receipt, Receipt::decode_inner(&encoded_receipt).unwrap()) + } + + #[test] + fn test_encode_decode_receipt_inner_non_legacy() { + let receipt = Receipt { + tx_type: TxType::EIP4844, + succeeded: true, + cumulative_gas_used: 1500, + bloom: Bloom::random(), + logs: vec![Log { + address: Address::random(), + topics: vec![], + data: Bytes::from_static(b"bar"), + }], + }; + let encoded_receipt = receipt.encode_inner(); + assert_eq!(receipt, Receipt::decode_inner(&encoded_receipt).unwrap()) + } +} diff --git a/crates/common/types/transaction.rs b/crates/common/types/transaction.rs index bfa64df91..ca7abac91 100644 --- a/crates/common/types/transaction.rs +++ b/crates/common/types/transaction.rs @@ -230,9 +230,9 @@ impl RLPDecode for Transaction { fn decode_unfinished(rlp: &[u8]) -> Result<(Self, &[u8]), RLPDecodeError> { if is_encoded_as_bytes(rlp)? { // Adjust the encoding to get the payload - let payload = get_rlp_bytes_item_payload(rlp); - let tx_type = payload.first().unwrap(); - let tx_encoding = &payload[1..]; + let payload = get_rlp_bytes_item_payload(rlp)?; + let tx_type = payload.first().ok_or(RLPDecodeError::InvalidLength)?; + let tx_encoding = &payload.get(1..).ok_or(RLPDecodeError::InvalidLength)?; // Look at the first byte to check if it corresponds to a TransactionType match *tx_type { // Legacy diff --git a/crates/networking/p2p/rlpx/connection.rs b/crates/networking/p2p/rlpx/connection.rs index 0e97fcd26..06e416125 100644 --- a/crates/networking/p2p/rlpx/connection.rs +++ b/crates/networking/p2p/rlpx/connection.rs @@ -6,6 +6,7 @@ use crate::{ eth::{ backend, blocks::{BlockBodies, BlockHeaders}, + receipts::Receipts, transactions::Transactions, }, handshake::encode_ack_message, @@ -22,6 +23,7 @@ use crate::{ use super::{ error::RLPxError, + eth::receipts::GetReceipts, eth::transactions::GetPooledTransactions, frame, handshake::{decode_ack_message, decode_auth_message, encode_auth_message}, @@ -379,6 +381,17 @@ impl RLPxConnection { }; self.send(Message::BlockBodies(response)).await?; } + Message::GetReceipts(GetReceipts { id, block_hashes }) if peer_supports_eth => { + let receipts: Result<_, _> = block_hashes + .iter() + .map(|hash| self.storage.get_receipts_for_block(hash)) + .collect(); + let response = Receipts { + id, + receipts: receipts?, + }; + self.send(Message::Receipts(response)).await?; + } Message::NewPooledTransactionHashes(new_pooled_transaction_hashes) if peer_supports_eth => { diff --git a/crates/networking/p2p/rlpx/eth/receipts.rs b/crates/networking/p2p/rlpx/eth/receipts.rs index 6c02119d8..f3e3b1150 100644 --- a/crates/networking/p2p/rlpx/eth/receipts.rs +++ b/crates/networking/p2p/rlpx/eth/receipts.rs @@ -14,8 +14,8 @@ use ethrex_rlp::{ pub(crate) struct GetReceipts { // id is a u64 chosen by the requesting peer, the responding peer must mirror the value for the response // https://github.com/ethereum/devp2p/blob/master/caps/eth.md#protocol-messages - id: u64, - block_hashes: Vec, + pub id: u64, + pub block_hashes: Vec, } impl GetReceipts { @@ -52,8 +52,8 @@ impl RLPxMessage for GetReceipts { pub(crate) struct Receipts { // id is a u64 chosen by the requesting peer, the responding peer must mirror the value for the response // https://github.com/ethereum/devp2p/blob/master/caps/eth.md#protocol-messages - id: u64, - receipts: Vec>, + pub id: u64, + pub receipts: Vec>, } impl Receipts { diff --git a/crates/networking/p2p/rlpx/message.rs b/crates/networking/p2p/rlpx/message.rs index 7176cf96b..7a1ab1141 100644 --- a/crates/networking/p2p/rlpx/message.rs +++ b/crates/networking/p2p/rlpx/message.rs @@ -3,7 +3,7 @@ use ethrex_rlp::error::{RLPDecodeError, RLPEncodeError}; use std::fmt::Display; use super::eth::blocks::{BlockBodies, BlockHeaders, GetBlockBodies, GetBlockHeaders}; -use super::eth::receipts::Receipts; +use super::eth::receipts::{GetReceipts, Receipts}; use super::eth::status::StatusMessage; use super::eth::transactions::{GetPooledTransactions, NewPooledTransactionHashes, Transactions}; use super::p2p::{DisconnectMessage, HelloMessage, PingMessage, PongMessage}; @@ -32,9 +32,10 @@ pub(crate) enum Message { Transactions(Transactions), GetBlockBodies(GetBlockBodies), BlockBodies(BlockBodies), + GetReceipts(GetReceipts), + Receipts(Receipts), NewPooledTransactionHashes(NewPooledTransactionHashes), GetPooledTransactions(GetPooledTransactions), - Receipts(Receipts), // snap capability GetAccountRange(GetAccountRange), AccountRange(AccountRange), @@ -75,6 +76,7 @@ impl Message { 0x19 => Ok(Message::GetPooledTransactions( GetPooledTransactions::decode(msg_data)?, )), + 0x1F => Ok(Message::GetReceipts(GetReceipts::decode(msg_data)?)), 0x20 => Ok(Message::Receipts(Receipts::decode(msg_data)?)), 0x21 => Ok(Message::GetAccountRange(GetAccountRange::decode(msg_data)?)), 0x22 => Ok(Message::AccountRange(AccountRange::decode(msg_data)?)), @@ -140,6 +142,10 @@ impl Message { 0x19_u8.encode(buf); msg.encode(buf) } + Message::GetReceipts(msg) => { + 0x1F_u8.encode(buf); + msg.encode(buf) + } Message::Receipts(msg) => { 0x20_u8.encode(buf); msg.encode(buf) @@ -195,6 +201,7 @@ impl Display for Message { Message::GetPooledTransactions(_) => "eth::GetPooledTransactions".fmt(f), Message::Transactions(_) => "eth:TransactionsMessage".fmt(f), Message::GetBlockBodies(_) => "eth:GetBlockBodies".fmt(f), + Message::GetReceipts(_) => "eth:GetReceipts".fmt(f), Message::Receipts(_) => "eth:Receipts".fmt(f), Message::GetAccountRange(_) => "snap:GetAccountRange".fmt(f), Message::AccountRange(_) => "snap:AccountRange".fmt(f), diff --git a/crates/networking/rpc/eth/block.rs b/crates/networking/rpc/eth/block.rs index f32cc4638..b226a390f 100644 --- a/crates/networking/rpc/eth/block.rs +++ b/crates/networking/rpc/eth/block.rs @@ -297,7 +297,7 @@ impl RpcHandler for GetRawReceipts { }; let receipts: Vec = get_all_block_receipts(block_number, header, body, storage)? .iter() - .map(|receipt| format!("0x{}", hex::encode(receipt.encode_to_vec()))) + .map(|receipt| format!("0x{}", hex::encode(receipt.encode_inner()))) .collect(); serde_json::to_value(receipts).map_err(|error| RpcErr::Internal(error.to_string())) } diff --git a/crates/networking/rpc/eth/transaction.rs b/crates/networking/rpc/eth/transaction.rs index 2e3d0b076..d19b4c023 100644 --- a/crates/networking/rpc/eth/transaction.rs +++ b/crates/networking/rpc/eth/transaction.rs @@ -277,6 +277,7 @@ impl RpcHandler for GetTransactionReceiptRequest { }; let receipts = block::get_all_block_rpc_receipts(block_number, block.header, block.body, storage)?; + serde_json::to_value(receipts.get(index as usize)) .map_err(|error| RpcErr::Internal(error.to_string())) } diff --git a/crates/storage/store/engines/api.rs b/crates/storage/store/engines/api.rs index 18b71ccad..a9cca6e76 100644 --- a/crates/storage/store/engines/api.rs +++ b/crates/storage/store/engines/api.rs @@ -240,4 +240,6 @@ pub trait StoreEngine: Debug + Send + Sync + RefUnwindSafe { blobs_bundle: BlobsBundle, completed: bool, ) -> Result<(), StoreError>; + + fn get_receipts_for_block(&self, block_hash: &BlockHash) -> Result, StoreError>; } diff --git a/crates/storage/store/engines/in_memory.rs b/crates/storage/store/engines/in_memory.rs index 681581774..767d6a62a 100644 --- a/crates/storage/store/engines/in_memory.rs +++ b/crates/storage/store/engines/in_memory.rs @@ -355,6 +355,23 @@ impl StoreEngine for Store { Ok(self.inner().payloads.get(&payload_id).cloned()) } + fn get_receipts_for_block(&self, block_hash: &BlockHash) -> Result, StoreError> { + let store = self.inner(); + let Some(receipts_for_block) = store.receipts.get(block_hash) else { + return Ok(vec![]); + }; + let mut receipts = receipts_for_block + .iter() + .collect::>(); + + receipts.sort_by_key(|(index, _receipt)| **index); + + Ok(receipts + .into_iter() + .map(|(_index, receipt)| receipt.clone()) + .collect()) + } + fn add_receipts( &self, block_hash: BlockHash, diff --git a/crates/storage/store/engines/libmdbx.rs b/crates/storage/store/engines/libmdbx.rs index 1d2a49c5f..350ae640b 100644 --- a/crates/storage/store/engines/libmdbx.rs +++ b/crates/storage/store/engines/libmdbx.rs @@ -494,6 +494,34 @@ impl StoreEngine for Store { self.write_batch::(key_values) } + + fn get_receipts_for_block( + &self, + block_hash: &BlockHash, + ) -> std::result::Result, StoreError> { + let mut receipts = vec![]; + let mut receipt_index = 0; + let mut key: TupleRLP = (*block_hash, 0).into(); + let txn = self.db.begin_read().map_err(|_| StoreError::ReadError)?; + let mut cursor = txn + .cursor::() + .map_err(|_| StoreError::CursorError("Receipts".to_owned()))?; + + // We're searching receipts for a block, the keys + // for the receipt table are of the kind: rlp((BlockHash, Index)). + // So we search for values in the db that match with this kind + // of key, until we reach an Index that returns None + // and we stop the search. + while let Some((_, encoded_receipt)) = + cursor.seek_exact(key).map_err(|_| StoreError::ReadError)? + { + receipts.push(encoded_receipt); + receipt_index += 1; + key = (*block_hash, receipt_index).into(); + } + + Ok(receipts.into_iter().map(|receipt| receipt.to()).collect()) + } } impl Debug for Store { diff --git a/crates/storage/store/engines/redb.rs b/crates/storage/store/engines/redb.rs index 085846b92..17c4b8e81 100644 --- a/crates/storage/store/engines/redb.rs +++ b/crates/storage/store/engines/redb.rs @@ -650,6 +650,35 @@ impl StoreEngine for RedBStore { ), ) } + + fn get_receipts_for_block( + &self, + block_hash: &BlockHash, + ) -> std::result::Result, StoreError> { + let mut encoded_receipts = vec![]; + let mut receipt_index = 0; + let read_tx = self.db.begin_read()?; + let mut expected_key: TupleRLP = (*block_hash, 0).into(); + let table = read_tx.open_table(RECEIPTS_TABLE)?; + // We're searching receipts for a block, the keys + // for the receipt table are of the kind: rlp((BlockHash, Index)). + // So we search for values in the db that match with this kind + // of key, until we reach an Index that returns None + // and we stop the search. + // TODO(#1436): Make sure this if this is the proper way of + // doing a search for each key, libmdbx has cursors + // for this purpose, we should do the equal here, + // if this approach is not correct. + while let Some(access_guard) = table.get(&expected_key)? { + encoded_receipts.push(access_guard.value()); + receipt_index += 1; + expected_key = (*block_hash, receipt_index).into() + } + Ok(encoded_receipts + .into_iter() + .map(|receipt| receipt.to()) + .collect()) + } } impl redb::Value for ChainDataIndex { diff --git a/crates/storage/store/error.rs b/crates/storage/store/error.rs index 7c5df0d40..aaa70dfa0 100644 --- a/crates/storage/store/error.rs +++ b/crates/storage/store/error.rs @@ -38,6 +38,10 @@ pub enum StoreError { Trie(#[from] TrieError), #[error("missing store: is an execution DB being used instead?")] MissingStore, + #[error("Could not open DB for reading")] + ReadError, + #[error("Could not instantiate cursor for table {0}")] + CursorError(String), #[error("Missing latest block number")] MissingLatestBlockNumber, #[error("Missing earliest block number")] diff --git a/crates/storage/store/storage.rs b/crates/storage/store/storage.rs index b3e3e4af9..695ffddf0 100644 --- a/crates/storage/store/storage.rs +++ b/crates/storage/store/storage.rs @@ -958,6 +958,13 @@ impl Store { pub fn open_storage_trie(&self, account_hash: H256, storage_root: H256) -> Trie { self.engine.open_storage_trie(account_hash, storage_root) } + + pub fn get_receipts_for_block( + &self, + block_hash: &BlockHash, + ) -> Result, StoreError> { + self.engine.get_receipts_for_block(block_hash) + } } pub fn hash_address(address: &Address) -> Vec { From 45eeb94aa7c43011f88b3e766987e95e79728e64 Mon Sep 17 00:00:00 2001 From: fmoletta <99273364+fmoletta@users.noreply.github.com> Date: Thu, 19 Dec 2024 19:12:13 -0300 Subject: [PATCH 11/26] fix(ci): move hive setup to its own job so we only do it once (#1541) **Motivation** I ran into errors due to the frequency of docker pulls performed when adding more elements to the `run-hive` matrix strategy. I think we can solve it by only setting up hive once and then passing on the executable to the different hive test jobs. **Description** * Create a `setup-hive` job that creates the `hive` executable * Retrieve the `hive` executable instead of creating it for each parallel run in `run-hive` Closes #issue_number --- .github/workflows/ci_l1.yaml | 44 +++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci_l1.yaml b/.github/workflows/ci_l1.yaml index 40e6577ea..22bd57951 100644 --- a/.github/workflows/ci_l1.yaml +++ b/.github/workflows/ci_l1.yaml @@ -101,6 +101,20 @@ jobs: name: ethrex_image path: /tmp/ethrex_image.tar + setup-hive: + name: "Setup Hive" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Hive + run: make setup-hive + - name: Upload hive artifacts + uses: actions/upload-artifact@v4 + with: + name: hive + path: hive + + run-assertoor: name: Assertoor - ${{ matrix.name }} runs-on: ubuntu-latest @@ -119,7 +133,7 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Download artifacts + - name: Download etherex image artifact uses: actions/download-artifact@v4 with: name: ethrex_image @@ -141,7 +155,7 @@ jobs: run-hive: name: Hive - ${{ matrix.name }} runs-on: ubuntu-latest - needs: [docker_build] + needs: [docker_build, setup-hive] if: ${{ github.event_name != 'merge_group' }} strategy: matrix: @@ -168,32 +182,26 @@ jobs: simulation: ethereum/engine test_pattern: "engine-api/RPC|Re-Org Back to Canonical Chain From Syncing Chain|Re-org to Previously Validated Sidechain Payload|Re-Org Back into Canonical Chain, Depth=5|Safe Re-Org|Transaction Re-Org|Inconsistent|Suggested Fee|PrevRandao|Fork ID|Unknown|Invalid PayloadAttributes|Bad Hash|Unique Payload ID|Re-Execute Payload|In-Order|Multiple New Payloads|Valid NewPayload|NewPayload with|Invalid NewPayload|Payload Build|Invalid NewPayload, Transaction|ParentHash equals|Build Payload|Invalid Missing Ancestor ReOrg" steps: - - name: Download artifacts + - name: Checkout sources + uses: actions/checkout@v4 + + - name: Download ethrex image artifact uses: actions/download-artifact@v4 with: name: ethrex_image path: /tmp + - name: Download hive artifacts + uses: actions/download-artifact@v4 + with: + name: hive + - name: Load image run: | docker load --input /tmp/ethrex_image.tar - - name: Checkout sources - uses: actions/checkout@v4 - - - name: Rustup toolchain install - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ env.RUST_VERSION }} - - - name: Setup Go - uses: actions/setup-go@v5 - - - name: Setup Hive - run: make setup-hive - - name: Run Hive Simulation - run: cd hive && ./hive --client ethrex --sim ${{ matrix.simulation }} --sim.limit "${{ matrix.test_pattern }}" --sim.parallelism 4 + run: chmod +x hive && ./hive --client ethrex --sim ${{ matrix.simulation }} --sim.limit "${{ matrix.test_pattern }}" --sim.parallelism 4 # The purpose of this job is to add it as a required check in GitHub so that we don't have to add every individual job as a required check all-tests: From cb4a64e9e7332e6ce6422271d24a074a46dc370e Mon Sep 17 00:00:00 2001 From: LeanSerra <46695152+LeanSerra@users.noreply.github.com> Date: Fri, 20 Dec 2024 12:37:30 -0300 Subject: [PATCH 12/26] fix(levm): copy return data if callframe reverts in generic_create (#1544) **Motivation** If the callframe that performs contract creation ends with an opcode revert, we should copy the output to the sub_return_data of the current callframe. **Description** - Add a check if the result is revert because of VMError::RevertOpcode, we copy the output of the txreport to the current callframe sub_return_data --- crates/vm/levm/src/opcode_handlers/system.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/vm/levm/src/opcode_handlers/system.rs b/crates/vm/levm/src/opcode_handlers/system.rs index 84b74d722..7ff2edb85 100644 --- a/crates/vm/levm/src/opcode_handlers/system.rs +++ b/crates/vm/levm/src/opcode_handlers/system.rs @@ -595,7 +595,7 @@ impl VM { .stack .push(address_to_word(new_address))?; } - TxResult::Revert(_) => { + TxResult::Revert(err) => { // Return value to sender self.increase_account_balance(deployer_address, value_in_wei_to_send)?; @@ -603,6 +603,10 @@ impl VM { cache::remove_account(&mut self.cache, &new_address); self.accrued_substate.created_accounts.remove(&new_address); + // If revert we have to copy the return_data + if err == VMError::RevertOpcode { + current_call_frame.sub_return_data = tx_report.output; + } current_call_frame.stack.push(CREATE_DEPLOYMENT_FAIL)?; } } From 50e7de0385608031a1c6c420fa13ccf6bc3c8b62 Mon Sep 17 00:00:00 2001 From: fmoletta <99273364+fmoletta@users.noreply.github.com> Date: Fri, 20 Dec 2024 12:53:17 -0300 Subject: [PATCH 13/26] fix(l1): don't return an error if `forkChoiceUpdate` contains null `PayloadAttributes` (#1543) **Motivation** When we receive a payload with null payload attributes we return an error: `Could not parse params invalid type: null, expected struct PayloadAttributesV3`, when this is perfectly acceptable behaviour **Description** * Parse payload attributes as `Option` instead of just `PayloadAttributes` Closes #issue_number --- crates/networking/rpc/engine/fork_choice.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/networking/rpc/engine/fork_choice.rs b/crates/networking/rpc/engine/fork_choice.rs index a66d7838a..a7ece628c 100644 --- a/crates/networking/rpc/engine/fork_choice.rs +++ b/crates/networking/rpc/engine/fork_choice.rs @@ -130,8 +130,8 @@ fn parse( let forkchoice_state: ForkChoiceState = serde_json::from_value(params[0].clone())?; // if there is an error when parsing, set to None let payload_attributes: Option = - match serde_json::from_value::(params[1].clone()) { - Ok(attributes) => Some(attributes), + match serde_json::from_value::>(params[1].clone()) { + Ok(attributes) => attributes, Err(error) => { info!("Could not parse params {}", error); None From be61c69c3d60d837482c97ebc0e61d8c8da40c4a Mon Sep 17 00:00:00 2001 From: LeanSerra <46695152+LeanSerra@users.noreply.github.com> Date: Fri, 20 Dec 2024 12:54:31 -0300 Subject: [PATCH 14/26] chore(levm): ignore some json files we dont want to fix for now (#1551) **Motivation** We want to ignore some tests for now, we ignore them in the code so people don't try to fix them and waste time **Description** Add a list with the json files we want to ignore and skip them when parsing. --- cmd/ef_tests/levm/parser.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cmd/ef_tests/levm/parser.rs b/cmd/ef_tests/levm/parser.rs index 98943f114..d100c591f 100644 --- a/cmd/ef_tests/levm/parser.rs +++ b/cmd/ef_tests/levm/parser.rs @@ -20,6 +20,15 @@ pub enum EFTestParseError { FailedToParseTestFile(String), } +const IGNORED_TESTS: [&str; 6] = [ + "ValueOverflowParis.json", // Skip because of errors + "loopMul.json", // Skip because it takes too long to run + "dynamicAccountOverwriteEmpty_Paris.json", // Skip because it fails on REVM + "RevertInCreateInInitCreate2Paris.json", // Skip because it fails on REVM + "create2collisionStorageParis.json", // Skip because it fails on REVM + "InitCollisionParis.json", // Skip because it fails on REVM +]; + pub fn parse_ef_tests(opts: &EFTestRunnerOptions) -> Result, EFTestParseError> { let parsing_time = std::time::Instant::now(); let cargo_manifest_dir = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")); @@ -87,11 +96,11 @@ pub fn parse_ef_test_dir( { continue; } - // Skip the ValueOverflowParis.json file because of errors, and loopMul.json because it takes too long to run. + // Skip ignored tests if test .path() .file_name() - .is_some_and(|name| name == "ValueOverflowParis.json" || name == "loopMul.json") + .is_some_and(|name| IGNORED_TESTS.contains(&name.to_str().unwrap_or(""))) { continue; } From e6917e92158adc4a26528c97c99b90b7c8c8535f Mon Sep 17 00:00:00 2001 From: Damian Ramirez Date: Fri, 20 Dec 2024 12:58:53 -0300 Subject: [PATCH 15/26] fix(levm): initialization of transient storage (#1540) **Motivation** Each time we moved to a new context, we were overwriting the previous transient storage. Also add a check in `tstore` to see if the `tx` is static. **Description** - Add a new parameter to `CallFrame::new()`. Now we can send the current value of `transient_storage` to the subcontext. - Check in `tstore` if the `tx` is static. In that case it must returns an error. We can also think about moving the `TransientStorage` from `CallFrame` to the `Environment`, since it is a storage of the tx. **Reference** [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153): _If the TSTORE opcode is called within the context of a STATICCALL, it will result in an exception instead of performing the modification. TLOAD is allowed within the context of a STATICCALL._ --- cmd/ef_tests/levm/runner/levm_runner.rs | 1 + crates/vm/levm/src/call_frame.rs | 6 +---- crates/vm/levm/src/environment.rs | 7 +++++ .../stack_memory_storage_flow.rs | 9 +++++-- crates/vm/levm/tests/tests.rs | 27 +++++++------------ crates/vm/vm.rs | 1 + 6 files changed, 26 insertions(+), 25 deletions(-) diff --git a/cmd/ef_tests/levm/runner/levm_runner.rs b/cmd/ef_tests/levm/runner/levm_runner.rs index 8036dbe00..0e3a92abf 100644 --- a/cmd/ef_tests/levm/runner/levm_runner.rs +++ b/cmd/ef_tests/levm/runner/levm_runner.rs @@ -110,6 +110,7 @@ pub fn prepare_vm_for_tx(vector: &TestVector, test: &EFTest) -> Result; +use std::collections::HashSet; #[derive(Debug, Clone, Default, PartialEq, Eq)] pub struct Stack { @@ -81,7 +78,6 @@ pub struct CallFrame { pub sub_return_data: Bytes, /// Indicates if current context is static (if it is, it can't change state) pub is_static: bool, - pub transient_storage: TransientStorage, pub logs: Vec, /// Call stack current depth pub depth: usize, diff --git a/crates/vm/levm/src/environment.rs b/crates/vm/levm/src/environment.rs index 692209322..014fb458f 100644 --- a/crates/vm/levm/src/environment.rs +++ b/crates/vm/levm/src/environment.rs @@ -1,5 +1,10 @@ +use std::collections::HashMap; + use ethrex_core::{Address, H256, U256}; +/// [EIP-1153]: https://eips.ethereum.org/EIPS/eip-1153#reference-implementation +pub type TransientStorage = HashMap<(Address, U256), U256>; + #[derive(Debug, Default, Clone)] pub struct Environment { /// The sender address of the transaction that originated @@ -21,6 +26,7 @@ pub struct Environment { pub tx_max_fee_per_gas: Option, pub tx_max_fee_per_blob_gas: Option, pub block_gas_limit: U256, + pub transient_storage: TransientStorage, } impl Environment { @@ -43,6 +49,7 @@ impl Environment { tx_max_fee_per_gas: Default::default(), tx_max_fee_per_blob_gas: Default::default(), block_gas_limit: Default::default(), + transient_storage: Default::default(), } } } diff --git a/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs b/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs index 6fc393e06..17a748f0c 100644 --- a/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs +++ b/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs @@ -27,7 +27,8 @@ impl VM { self.increase_consumed_gas(current_call_frame, gas_cost::TLOAD)?; let key = current_call_frame.stack.pop()?; - let value = current_call_frame + let value = self + .env .transient_storage .get(&(current_call_frame.msg_sender, key)) .cloned() @@ -44,9 +45,13 @@ impl VM { ) -> Result { self.increase_consumed_gas(current_call_frame, gas_cost::TSTORE)?; + if current_call_frame.is_static { + return Err(VMError::OpcodeNotAllowedInStaticContext); + } + let key = current_call_frame.stack.pop()?; let value = current_call_frame.stack.pop()?; - current_call_frame + self.env .transient_storage .insert((current_call_frame.msg_sender, key), value); diff --git a/crates/vm/levm/tests/tests.rs b/crates/vm/levm/tests/tests.rs index 4544c715d..9e3a46937 100644 --- a/crates/vm/levm/tests/tests.rs +++ b/crates/vm/levm/tests/tests.rs @@ -19,7 +19,7 @@ use ethrex_levm::{ vm::{word_to_address, Storage, VM}, Environment, }; -use std::{collections::HashMap, sync::Arc}; +use std::{borrow::BorrowMut, collections::HashMap, sync::Arc}; fn create_opcodes(size: usize, offset: usize, value_to_transfer: usize) -> Vec { vec![ @@ -3728,20 +3728,18 @@ fn transient_store() { let mut vm = new_vm_with_ops(&operations).unwrap(); - let current_call_frame = vm.current_call_frame_mut().unwrap(); - - assert!(current_call_frame.transient_storage.is_empty()); + { + let env_mut = vm.env.borrow_mut(); + assert!(env_mut.transient_storage.is_empty()); + } let mut current_call_frame = vm.call_frames.pop().unwrap(); vm.execute(&mut current_call_frame).unwrap(); - let current_call_frame = vm.current_call_frame_mut().unwrap(); + let msg_sender = current_call_frame.msg_sender; assert_eq!( - *current_call_frame - .transient_storage - .get(&(current_call_frame.msg_sender, key)) - .unwrap(), + *vm.env.transient_storage.get(&(msg_sender, key)).unwrap(), value ) } @@ -3751,11 +3749,7 @@ fn transient_store_stack_underflow() { let operations = [Operation::Tstore, Operation::Stop]; let mut vm = new_vm_with_ops(&operations).unwrap(); - assert!(vm - .current_call_frame_mut() - .unwrap() - .transient_storage - .is_empty()); + assert!(vm.env.transient_storage.is_empty()); let mut current_call_frame = vm.call_frames.pop().unwrap(); let tx_report = vm.execute(&mut current_call_frame).unwrap(); @@ -3781,10 +3775,7 @@ fn transient_load() { let caller = vm.current_call_frame_mut().unwrap().msg_sender; - vm.current_call_frame_mut() - .unwrap() - .transient_storage - .insert((caller, key), value); + vm.env.transient_storage.insert((caller, key), value); let mut current_call_frame = vm.call_frames.pop().unwrap(); vm.execute(&mut current_call_frame).unwrap(); diff --git a/crates/vm/vm.rs b/crates/vm/vm.rs index ee0d06c79..00a6f07a1 100644 --- a/crates/vm/vm.rs +++ b/crates/vm/vm.rs @@ -185,6 +185,7 @@ cfg_if::cfg_if! { tx_max_fee_per_gas: tx.max_fee_per_gas().map(U256::from), tx_max_fee_per_blob_gas: tx.max_fee_per_blob_gas().map(U256::from), block_gas_limit: block_header.gas_limit.into(), + transient_storage: HashMap::new(), }; let mut vm = VM::new( From ef1f3a128f381fa40fc8954698c04f175cff6172 Mon Sep 17 00:00:00 2001 From: LeanSerra <46695152+LeanSerra@users.noreply.github.com> Date: Fri, 20 Dec 2024 14:43:51 -0300 Subject: [PATCH 16/26] fix(levm): transient storage should be reverted when callframe reverts (#1552) **Motivation** The transient storage was not being reverted when callframe reverts **Description** - Create a copy of the transient storage at the beginning of the callframe - Restore this copy if the callframe finishes with revert --- crates/vm/levm/src/vm.rs | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/crates/vm/levm/src/vm.rs b/crates/vm/levm/src/vm.rs index 430dadeb2..f91d5309a 100644 --- a/crates/vm/levm/src/vm.rs +++ b/crates/vm/levm/src/vm.rs @@ -17,7 +17,7 @@ use crate::{ }, opcodes::Opcode, precompiles::{execute_precompile, is_precompile}, - AccountInfo, + AccountInfo, TransientStorage, }; use bytes::Bytes; use ethrex_core::{types::TxKind, Address, H256, U256}; @@ -259,11 +259,12 @@ impl VM { &mut self, current_call_frame: &mut CallFrame, ) -> Result { - // Backup of Database, Substate and Gas Refunds if sub-context is reverted - let (backup_db, backup_substate, backup_refunded_gas) = ( + // Backup of Database, Substate, Gas Refunds and Transient Storage if sub-context is reverted + let (backup_db, backup_substate, backup_refunded_gas, backup_transient_storage) = ( self.cache.clone(), self.accrued_substate.clone(), self.env.refunded_gas, + self.env.transient_storage.clone(), ); if is_precompile(¤t_call_frame.code_address) { @@ -290,7 +291,12 @@ impl VM { self.call_frames.push(current_call_frame.clone()); - self.restore_state(backup_db, backup_substate, backup_refunded_gas); + self.restore_state( + backup_db, + backup_substate, + backup_refunded_gas, + backup_transient_storage, + ); return Ok(TransactionReport { result: TxResult::Revert(error), @@ -459,7 +465,12 @@ impl VM { Err(error) => { // Revert if error current_call_frame.gas_used = current_call_frame.gas_limit; - self.restore_state(backup_db, backup_substate, backup_refunded_gas); + self.restore_state( + backup_db, + backup_substate, + backup_refunded_gas, + backup_transient_storage, + ); return Ok(TransactionReport { result: TxResult::Revert(error), @@ -500,7 +511,12 @@ impl VM { current_call_frame.gas_used.saturating_add(left_gas); } - self.restore_state(backup_db, backup_substate, backup_refunded_gas); + self.restore_state( + backup_db, + backup_substate, + backup_refunded_gas, + backup_transient_storage, + ); return Ok(TransactionReport { result: TxResult::Revert(error), @@ -521,10 +537,12 @@ impl VM { backup_cache: CacheDB, backup_substate: Substate, backup_refunded_gas: U256, + backup_transient_storage: TransientStorage, ) { self.cache = backup_cache; self.accrued_substate = backup_substate; self.env.refunded_gas = backup_refunded_gas; + self.env.transient_storage = backup_transient_storage; } fn is_create(&self) -> bool { From cd58549a1cdc262baac0e88579704b6fbda92f86 Mon Sep 17 00:00:00 2001 From: Damian Ramirez Date: Fri, 20 Dec 2024 15:00:20 -0300 Subject: [PATCH 17/26] fix(levm): clear sub_return_data in generic_call() (#1553) **Motivation** Ensure the `sub_return_data` is cleared at the start of every `generic_call()` **Description** Added a step to clear the `sub_return_data` with empty bytes. This change prevents residual data from previous calls. --- crates/vm/levm/src/opcode_handlers/system.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/vm/levm/src/opcode_handlers/system.rs b/crates/vm/levm/src/opcode_handlers/system.rs index 7ff2edb85..12bc90306 100644 --- a/crates/vm/levm/src/opcode_handlers/system.rs +++ b/crates/vm/levm/src/opcode_handlers/system.rs @@ -630,6 +630,9 @@ impl VM { ret_offset: U256, ret_size: usize, ) -> Result { + // Clear callframe subreturn data + current_call_frame.sub_return_data = Bytes::new(); + // 1. Validate sender has enough value let sender_account_info = self.access_account(msg_sender).0; if should_transfer_value && sender_account_info.balance < value { From 2bb8fa9b455c8f0ca51e8a4e26af63e2b915ce4d Mon Sep 17 00:00:00 2001 From: Tomas Fabrizio Orsi Date: Fri, 20 Dec 2024 17:11:14 -0300 Subject: [PATCH 18/26] fix(levm): change gas type from U256 to u64 (#1528) **Motivation** The execution client uses `u64` for measuring gas, while LEVM uses `U256`. This PR makes LEVM also use u64 for gas **Description** Closes https://github.com/lambdaclass/ethrex/issues/1499 --- cmd/ef_tests/levm/deserialize.rs | 33 +- cmd/ef_tests/levm/runner/levm_runner.rs | 2 +- cmd/ef_tests/levm/runner/revm_runner.rs | 5 +- cmd/ef_tests/levm/types.rs | 13 +- crates/vm/levm/src/call_frame.rs | 10 +- crates/vm/levm/src/constants.rs | 2 +- crates/vm/levm/src/environment.rs | 10 +- crates/vm/levm/src/gas_cost.rs | 502 ++++++++++-------- crates/vm/levm/src/opcode_handlers/block.rs | 4 +- .../stack_memory_storage_flow.rs | 13 +- crates/vm/levm/src/opcode_handlers/system.rs | 50 +- crates/vm/levm/src/precompiles.rs | 52 +- crates/vm/levm/src/vm.rs | 113 ++-- crates/vm/levm/tests/edge_case_tests.rs | 6 +- crates/vm/levm/tests/tests.rs | 240 ++++----- crates/vm/vm.rs | 6 +- 16 files changed, 587 insertions(+), 474 deletions(-) diff --git a/cmd/ef_tests/levm/deserialize.rs b/cmd/ef_tests/levm/deserialize.rs index 2e6a223a3..0a1c40611 100644 --- a/cmd/ef_tests/levm/deserialize.rs +++ b/cmd/ef_tests/levm/deserialize.rs @@ -131,6 +131,22 @@ where ) } +/// This serializes a hexadecimal string to u64 +pub fn deserialize_u64_safe<'de, D>(deserializer: D) -> Result +where + D: serde::Deserializer<'de>, +{ + u64::from_str_radix( + String::deserialize(deserializer)?.trim_start_matches("0x"), + 16, + ) + .map_err(|err| { + serde::de::Error::custom(format!( + "error parsing U64 when deserializing U64 safely: {err}" + )) + }) +} + pub fn deserialize_h256_vec_optional_safe<'de, D>( deserializer: D, ) -> Result>, D::Error> @@ -201,7 +217,22 @@ where .map(|s| { U256::from_str(s.trim_start_matches("0x:bigint ")).map_err(|err| { serde::de::Error::custom(format!( - "error parsing U256 when deserializing U256 safely: {err}" + "error parsing U256 when deserializing U256 vector safely: {err}" + )) + }) + }) + .collect() +} +pub fn deserialize_u64_vec_safe<'de, D>(deserializer: D) -> Result, D::Error> +where + D: serde::Deserializer<'de>, +{ + Vec::::deserialize(deserializer)? + .iter() + .map(|s| { + u64::from_str_radix(s.trim_start_matches("0x"), 16).map_err(|err| { + serde::de::Error::custom(format!( + "error parsing u64 when deserializing u64 vector safely: {err}" )) }) }) diff --git a/cmd/ef_tests/levm/runner/levm_runner.rs b/cmd/ef_tests/levm/runner/levm_runner.rs index 0e3a92abf..fe361c141 100644 --- a/cmd/ef_tests/levm/runner/levm_runner.rs +++ b/cmd/ef_tests/levm/runner/levm_runner.rs @@ -94,7 +94,7 @@ pub fn prepare_vm_for_tx(vector: &TestVector, test: &EFTest) -> Result( let chain_spec = initial_state .chain_config() .map_err(|err| EFTestRunnerError::VMInitializationFailed(err.to_string()))?; + let block_env = RevmBlockEnv { number: RevmU256::from_limbs(test.env.current_number.0), coinbase: RevmAddress(test.env.current_coinbase.0.into()), timestamp: RevmU256::from_limbs(test.env.current_timestamp.0), - gas_limit: RevmU256::from_limbs(test.env.current_gas_limit.0), + gas_limit: RevmU256::from(test.env.current_gas_limit), basefee: RevmU256::from_limbs(test.env.current_base_fee.unwrap_or_default().0), difficulty: RevmU256::from_limbs(test.env.current_difficulty.0), prevrandao: test.env.current_random.map(|v| v.0.into()), @@ -137,7 +138,7 @@ pub fn prepare_revm_for_tx<'state>( let tx_env = RevmTxEnv { caller: tx.sender.0.into(), - gas_limit: tx.gas_limit.as_u64(), + gas_limit: tx.gas_limit, gas_price: RevmU256::from_limbs(effective_gas_price(test, tx)?.0), transact_to: match tx.to { TxKind::Call(to) => RevmTxKind::Call(to.0.into()), diff --git a/cmd/ef_tests/levm/types.rs b/cmd/ef_tests/levm/types.rs index e92d304df..a74805be1 100644 --- a/cmd/ef_tests/levm/types.rs +++ b/cmd/ef_tests/levm/types.rs @@ -4,6 +4,7 @@ use crate::{ deserialize_h256_vec_optional_safe, deserialize_hex_bytes, deserialize_hex_bytes_vec, deserialize_transaction_expected_exception, deserialize_u256_optional_safe, deserialize_u256_safe, deserialize_u256_valued_hashmap_safe, deserialize_u256_vec_safe, + deserialize_u64_safe, deserialize_u64_vec_safe, }, report::TestVector, }; @@ -61,7 +62,7 @@ impl From<&EFTest> for Genesis { }, coinbase: test.env.current_coinbase, difficulty: test.env.current_difficulty, - gas_limit: test.env.current_gas_limit.as_u64(), + gas_limit: test.env.current_gas_limit, mix_hash: test.env.current_random.unwrap_or_default(), timestamp: test.env.current_timestamp.as_u64(), base_fee_per_gas: test.env.current_base_fee.map(|v| v.as_u64()), @@ -99,8 +100,8 @@ pub struct EFTestEnv { pub current_difficulty: U256, #[serde(default, deserialize_with = "deserialize_u256_optional_safe")] pub current_excess_blob_gas: Option, - #[serde(deserialize_with = "deserialize_u256_safe")] - pub current_gas_limit: U256, + #[serde(deserialize_with = "deserialize_u64_safe")] + pub current_gas_limit: u64, #[serde(deserialize_with = "deserialize_u256_safe")] pub current_number: U256, pub current_random: Option, @@ -268,8 +269,8 @@ pub struct EFTestAccessListItem { pub struct EFTestRawTransaction { #[serde(deserialize_with = "deserialize_hex_bytes_vec")] pub data: Vec, - #[serde(deserialize_with = "deserialize_u256_vec_safe")] - pub gas_limit: Vec, + #[serde(deserialize_with = "deserialize_u64_vec_safe")] + pub gas_limit: Vec, #[serde(default, deserialize_with = "deserialize_u256_optional_safe")] pub gas_price: Option, #[serde(deserialize_with = "deserialize_u256_safe")] @@ -295,7 +296,7 @@ pub struct EFTestRawTransaction { #[serde(rename_all = "camelCase")] pub struct EFTestTransaction { pub data: Bytes, - pub gas_limit: U256, + pub gas_limit: u64, pub gas_price: Option, #[serde(deserialize_with = "deserialize_u256_safe")] pub nonce: U256, diff --git a/crates/vm/levm/src/call_frame.rs b/crates/vm/levm/src/call_frame.rs index 0794e899e..d62b3fefd 100644 --- a/crates/vm/levm/src/call_frame.rs +++ b/crates/vm/levm/src/call_frame.rs @@ -53,9 +53,9 @@ impl Stack { /// the EVM is currently executing. pub struct CallFrame { /// Max gas a callframe can use - pub gas_limit: U256, + pub gas_limit: u64, /// Keeps track of the gas that's been used in current context - pub gas_used: U256, + pub gas_used: u64, /// Program Counter pub pc: usize, /// Address of the account that sent the message @@ -91,7 +91,7 @@ impl CallFrame { pub fn new_from_bytecode(bytecode: Bytes) -> Self { let valid_jump_destinations = get_valid_jump_destinations(&bytecode).unwrap_or_default(); Self { - gas_limit: U256::MAX, + gas_limit: u64::MAX, bytecode, valid_jump_destinations, ..Default::default() @@ -113,8 +113,8 @@ impl CallFrame { msg_value: U256, calldata: Bytes, is_static: bool, - gas_limit: U256, - gas_used: U256, + gas_limit: u64, + gas_used: u64, depth: usize, create_op_called: bool, ) -> Self { diff --git a/crates/vm/levm/src/constants.rs b/crates/vm/levm/src/constants.rs index 291be9bd5..a179002bf 100644 --- a/crates/vm/levm/src/constants.rs +++ b/crates/vm/levm/src/constants.rs @@ -21,7 +21,7 @@ pub const EMPTY_CODE_HASH: H256 = H256([ pub const MEMORY_EXPANSION_QUOTIENT: usize = 512; // Transaction costs in gas (in wei) -pub const TX_BASE_COST: U256 = U256([21000, 0, 0, 0]); +pub const TX_BASE_COST: u64 = 21000; pub const MAX_CODE_SIZE: usize = 0x6000; pub const INIT_CODE_MAX_SIZE: usize = 49152; diff --git a/crates/vm/levm/src/environment.rs b/crates/vm/levm/src/environment.rs index 014fb458f..e48052d8a 100644 --- a/crates/vm/levm/src/environment.rs +++ b/crates/vm/levm/src/environment.rs @@ -10,8 +10,8 @@ pub struct Environment { /// The sender address of the transaction that originated /// this execution. pub origin: Address, - pub refunded_gas: U256, - pub gas_limit: U256, + pub refunded_gas: u64, + pub gas_limit: u64, pub block_number: U256, pub coinbase: Address, pub timestamp: U256, @@ -25,7 +25,7 @@ pub struct Environment { pub tx_max_priority_fee_per_gas: Option, pub tx_max_fee_per_gas: Option, pub tx_max_fee_per_blob_gas: Option, - pub block_gas_limit: U256, + pub block_gas_limit: u64, pub transient_storage: TransientStorage, } @@ -33,8 +33,8 @@ impl Environment { pub fn default_from_address(origin: Address) -> Self { Self { origin, - refunded_gas: U256::default(), - gas_limit: U256::MAX, + refunded_gas: 0, + gas_limit: u64::MAX, block_number: Default::default(), coinbase: Default::default(), timestamp: Default::default(), diff --git a/crates/vm/levm/src/gas_cost.rs b/crates/vm/levm/src/gas_cost.rs index 06bf1a213..be2ec78d2 100644 --- a/crates/vm/levm/src/gas_cost.rs +++ b/crates/vm/levm/src/gas_cost.rs @@ -5,164 +5,164 @@ use crate::{ memory, StorageSlot, }; use bytes::Bytes; -/// Contains the gas costs of the EVM instructions (in wei) +/// Contains the gas costs of the EVM instructions use ethrex_core::U256; // Opcodes cost -pub const STOP: U256 = U256::zero(); -pub const ADD: U256 = U256([3, 0, 0, 0]); -pub const MUL: U256 = U256([5, 0, 0, 0]); -pub const SUB: U256 = U256([3, 0, 0, 0]); -pub const DIV: U256 = U256([5, 0, 0, 0]); -pub const SDIV: U256 = U256([5, 0, 0, 0]); -pub const MOD: U256 = U256([5, 0, 0, 0]); -pub const SMOD: U256 = U256([5, 0, 0, 0]); -pub const ADDMOD: U256 = U256([8, 0, 0, 0]); -pub const MULMOD: U256 = U256([8, 0, 0, 0]); -pub const EXP_STATIC: U256 = U256([10, 0, 0, 0]); -pub const EXP_DYNAMIC_BASE: U256 = U256([50, 0, 0, 0]); -pub const SIGNEXTEND: U256 = U256([5, 0, 0, 0]); -pub const LT: U256 = U256([3, 0, 0, 0]); -pub const GT: U256 = U256([3, 0, 0, 0]); -pub const SLT: U256 = U256([3, 0, 0, 0]); -pub const SGT: U256 = U256([3, 0, 0, 0]); -pub const EQ: U256 = U256([3, 0, 0, 0]); -pub const ISZERO: U256 = U256([3, 0, 0, 0]); -pub const AND: U256 = U256([3, 0, 0, 0]); -pub const OR: U256 = U256([3, 0, 0, 0]); -pub const XOR: U256 = U256([3, 0, 0, 0]); -pub const NOT: U256 = U256([3, 0, 0, 0]); -pub const BYTE: U256 = U256([3, 0, 0, 0]); -pub const SHL: U256 = U256([3, 0, 0, 0]); -pub const SHR: U256 = U256([3, 0, 0, 0]); -pub const SAR: U256 = U256([3, 0, 0, 0]); -pub const KECCAK25_STATIC: U256 = U256([30, 0, 0, 0]); -pub const KECCAK25_DYNAMIC_BASE: U256 = U256([6, 0, 0, 0]); -pub const CALLDATALOAD: U256 = U256([3, 0, 0, 0]); -pub const CALLDATASIZE: U256 = U256([2, 0, 0, 0]); -pub const CALLDATACOPY_STATIC: U256 = U256([3, 0, 0, 0]); -pub const CALLDATACOPY_DYNAMIC_BASE: U256 = U256([3, 0, 0, 0]); -pub const RETURNDATASIZE: U256 = U256([2, 0, 0, 0]); -pub const RETURNDATACOPY_STATIC: U256 = U256([3, 0, 0, 0]); -pub const RETURNDATACOPY_DYNAMIC_BASE: U256 = U256([3, 0, 0, 0]); -pub const ADDRESS: U256 = U256([2, 0, 0, 0]); -pub const ORIGIN: U256 = U256([2, 0, 0, 0]); -pub const CALLER: U256 = U256([2, 0, 0, 0]); -pub const BLOCKHASH: U256 = U256([20, 0, 0, 0]); -pub const COINBASE: U256 = U256([2, 0, 0, 0]); -pub const TIMESTAMP: U256 = U256([2, 0, 0, 0]); -pub const NUMBER: U256 = U256([2, 0, 0, 0]); -pub const PREVRANDAO: U256 = U256([2, 0, 0, 0]); -pub const GASLIMIT: U256 = U256([2, 0, 0, 0]); -pub const CHAINID: U256 = U256([2, 0, 0, 0]); -pub const SELFBALANCE: U256 = U256([5, 0, 0, 0]); -pub const BASEFEE: U256 = U256([2, 0, 0, 0]); -pub const BLOBHASH: U256 = U256([3, 0, 0, 0]); -pub const BLOBBASEFEE: U256 = U256([2, 0, 0, 0]); -pub const POP: U256 = U256([2, 0, 0, 0]); -pub const MLOAD_STATIC: U256 = U256([3, 0, 0, 0]); -pub const MSTORE_STATIC: U256 = U256([3, 0, 0, 0]); -pub const MSTORE8_STATIC: U256 = U256([3, 0, 0, 0]); -pub const JUMP: U256 = U256([8, 0, 0, 0]); -pub const JUMPI: U256 = U256([10, 0, 0, 0]); -pub const PC: U256 = U256([2, 0, 0, 0]); -pub const MSIZE: U256 = U256([2, 0, 0, 0]); -pub const GAS: U256 = U256([2, 0, 0, 0]); -pub const JUMPDEST: U256 = U256([1, 0, 0, 0]); -pub const TLOAD: U256 = U256([100, 0, 0, 0]); -pub const TSTORE: U256 = U256([100, 0, 0, 0]); -pub const MCOPY_STATIC: U256 = U256([3, 0, 0, 0]); -pub const MCOPY_DYNAMIC_BASE: U256 = U256([3, 0, 0, 0]); -pub const PUSH0: U256 = U256([2, 0, 0, 0]); -pub const PUSHN: U256 = U256([3, 0, 0, 0]); -pub const DUPN: U256 = U256([3, 0, 0, 0]); -pub const SWAPN: U256 = U256([3, 0, 0, 0]); -pub const LOGN_STATIC: U256 = U256([375, 0, 0, 0]); -pub const LOGN_DYNAMIC_BASE: U256 = U256([375, 0, 0, 0]); -pub const LOGN_DYNAMIC_BYTE_BASE: U256 = U256([8, 0, 0, 0]); -pub const CALLVALUE: U256 = U256([2, 0, 0, 0]); -pub const CODESIZE: U256 = U256([2, 0, 0, 0]); -pub const CODECOPY_STATIC: U256 = U256([3, 0, 0, 0]); -pub const CODECOPY_DYNAMIC_BASE: U256 = U256([3, 0, 0, 0]); -pub const GASPRICE: U256 = U256([2, 0, 0, 0]); -pub const SELFDESTRUCT_STATIC: U256 = U256([5000, 0, 0, 0]); -pub const SELFDESTRUCT_DYNAMIC: U256 = U256([25000, 0, 0, 0]); - -pub const DEFAULT_STATIC: U256 = U256::zero(); -pub const DEFAULT_COLD_DYNAMIC: U256 = U256([2600, 0, 0, 0]); -pub const DEFAULT_WARM_DYNAMIC: U256 = U256([100, 0, 0, 0]); - -pub const SLOAD_STATIC: U256 = U256::zero(); -pub const SLOAD_COLD_DYNAMIC: U256 = U256([2100, 0, 0, 0]); -pub const SLOAD_WARM_DYNAMIC: U256 = U256([100, 0, 0, 0]); - -pub const SSTORE_STATIC: U256 = U256::zero(); -pub const SSTORE_COLD_DYNAMIC: U256 = U256([2100, 0, 0, 0]); -pub const SSTORE_DEFAULT_DYNAMIC: U256 = U256([100, 0, 0, 0]); -pub const SSTORE_STORAGE_CREATION: U256 = U256([20000, 0, 0, 0]); -pub const SSTORE_STORAGE_MODIFICATION: U256 = U256([2900, 0, 0, 0]); -pub const SSTORE_STIPEND: U256 = U256([2300, 0, 0, 0]); - -pub const BALANCE_STATIC: U256 = DEFAULT_STATIC; -pub const BALANCE_COLD_DYNAMIC: U256 = DEFAULT_COLD_DYNAMIC; -pub const BALANCE_WARM_DYNAMIC: U256 = DEFAULT_WARM_DYNAMIC; - -pub const EXTCODESIZE_STATIC: U256 = DEFAULT_STATIC; -pub const EXTCODESIZE_COLD_DYNAMIC: U256 = DEFAULT_COLD_DYNAMIC; -pub const EXTCODESIZE_WARM_DYNAMIC: U256 = DEFAULT_WARM_DYNAMIC; - -pub const EXTCODEHASH_STATIC: U256 = DEFAULT_STATIC; -pub const EXTCODEHASH_COLD_DYNAMIC: U256 = DEFAULT_COLD_DYNAMIC; -pub const EXTCODEHASH_WARM_DYNAMIC: U256 = DEFAULT_WARM_DYNAMIC; - -pub const EXTCODECOPY_STATIC: U256 = U256::zero(); -pub const EXTCODECOPY_DYNAMIC_BASE: U256 = U256([3, 0, 0, 0]); -pub const EXTCODECOPY_COLD_DYNAMIC: U256 = DEFAULT_COLD_DYNAMIC; -pub const EXTCODECOPY_WARM_DYNAMIC: U256 = DEFAULT_WARM_DYNAMIC; - -pub const CALL_STATIC: U256 = DEFAULT_STATIC; -pub const CALL_COLD_DYNAMIC: U256 = DEFAULT_COLD_DYNAMIC; -pub const CALL_WARM_DYNAMIC: U256 = DEFAULT_WARM_DYNAMIC; -pub const CALL_POSITIVE_VALUE: U256 = U256([9000, 0, 0, 0]); -pub const CALL_POSITIVE_VALUE_STIPEND: U256 = U256([2300, 0, 0, 0]); -pub const CALL_TO_EMPTY_ACCOUNT: U256 = U256([25000, 0, 0, 0]); - -pub const CALLCODE_STATIC: U256 = DEFAULT_STATIC; -pub const CALLCODE_COLD_DYNAMIC: U256 = DEFAULT_COLD_DYNAMIC; -pub const CALLCODE_WARM_DYNAMIC: U256 = DEFAULT_WARM_DYNAMIC; -pub const CALLCODE_POSITIVE_VALUE: U256 = U256([9000, 0, 0, 0]); -pub const CALLCODE_POSITIVE_VALUE_STIPEND: U256 = U256([2300, 0, 0, 0]); - -pub const DELEGATECALL_STATIC: U256 = DEFAULT_STATIC; -pub const DELEGATECALL_COLD_DYNAMIC: U256 = DEFAULT_COLD_DYNAMIC; -pub const DELEGATECALL_WARM_DYNAMIC: U256 = DEFAULT_WARM_DYNAMIC; - -pub const STATICCALL_STATIC: U256 = DEFAULT_STATIC; -pub const STATICCALL_COLD_DYNAMIC: U256 = DEFAULT_COLD_DYNAMIC; -pub const STATICCALL_WARM_DYNAMIC: U256 = DEFAULT_WARM_DYNAMIC; - -// Costs in gas for call opcodes (in wei) -pub const WARM_ADDRESS_ACCESS_COST: U256 = U256([100, 0, 0, 0]); -pub const COLD_ADDRESS_ACCESS_COST: U256 = U256([2600, 0, 0, 0]); -pub const NON_ZERO_VALUE_COST: U256 = U256([9000, 0, 0, 0]); -pub const BASIC_FALLBACK_FUNCTION_STIPEND: U256 = U256([2300, 0, 0, 0]); -pub const VALUE_TO_EMPTY_ACCOUNT_COST: U256 = U256([25000, 0, 0, 0]); - -// Costs in gas for create opcodes (in wei) -pub const INIT_CODE_WORD_COST: U256 = U256([2, 0, 0, 0]); -pub const CODE_DEPOSIT_COST: U256 = U256([200, 0, 0, 0]); -pub const CREATE_BASE_COST: U256 = U256([32000, 0, 0, 0]); +pub const STOP: u64 = 0; +pub const ADD: u64 = 3; +pub const MUL: u64 = 5; +pub const SUB: u64 = 3; +pub const DIV: u64 = 5; +pub const SDIV: u64 = 5; +pub const MOD: u64 = 5; +pub const SMOD: u64 = 5; +pub const ADDMOD: u64 = 8; +pub const MULMOD: u64 = 8; +pub const EXP_STATIC: u64 = 10; +pub const EXP_DYNAMIC_BASE: u64 = 50; +pub const SIGNEXTEND: u64 = 5; +pub const LT: u64 = 3; +pub const GT: u64 = 3; +pub const SLT: u64 = 3; +pub const SGT: u64 = 3; +pub const EQ: u64 = 3; +pub const ISZERO: u64 = 3; +pub const AND: u64 = 3; +pub const OR: u64 = 3; +pub const XOR: u64 = 3; +pub const NOT: u64 = 3; +pub const BYTE: u64 = 3; +pub const SHL: u64 = 3; +pub const SHR: u64 = 3; +pub const SAR: u64 = 3; +pub const KECCAK25_STATIC: u64 = 30; +pub const KECCAK25_DYNAMIC_BASE: u64 = 6; +pub const CALLDATALOAD: u64 = 3; +pub const CALLDATASIZE: u64 = 2; +pub const CALLDATACOPY_STATIC: u64 = 3; +pub const CALLDATACOPY_DYNAMIC_BASE: u64 = 3; +pub const RETURNDATASIZE: u64 = 2; +pub const RETURNDATACOPY_STATIC: u64 = 3; +pub const RETURNDATACOPY_DYNAMIC_BASE: u64 = 3; +pub const ADDRESS: u64 = 2; +pub const ORIGIN: u64 = 2; +pub const CALLER: u64 = 2; +pub const BLOCKHASH: u64 = 20; +pub const COINBASE: u64 = 2; +pub const TIMESTAMP: u64 = 2; +pub const NUMBER: u64 = 2; +pub const PREVRANDAO: u64 = 2; +pub const GASLIMIT: u64 = 2; +pub const CHAINID: u64 = 2; +pub const SELFBALANCE: u64 = 5; +pub const BASEFEE: u64 = 2; +pub const BLOBHASH: u64 = 3; +pub const BLOBBASEFEE: u64 = 2; +pub const POP: u64 = 2; +pub const MLOAD_STATIC: u64 = 3; +pub const MSTORE_STATIC: u64 = 3; +pub const MSTORE8_STATIC: u64 = 3; +pub const JUMP: u64 = 8; +pub const JUMPI: u64 = 10; +pub const PC: u64 = 2; +pub const MSIZE: u64 = 2; +pub const GAS: u64 = 2; +pub const JUMPDEST: u64 = 1; +pub const TLOAD: u64 = 100; +pub const TSTORE: u64 = 100; +pub const MCOPY_STATIC: u64 = 3; +pub const MCOPY_DYNAMIC_BASE: u64 = 3; +pub const PUSH0: u64 = 2; +pub const PUSHN: u64 = 3; +pub const DUPN: u64 = 3; +pub const SWAPN: u64 = 3; +pub const LOGN_STATIC: u64 = 375; +pub const LOGN_DYNAMIC_BASE: u64 = 375; +pub const LOGN_DYNAMIC_BYTE_BASE: u64 = 8; +pub const CALLVALUE: u64 = 2; +pub const CODESIZE: u64 = 2; +pub const CODECOPY_STATIC: u64 = 3; +pub const CODECOPY_DYNAMIC_BASE: u64 = 3; +pub const GASPRICE: u64 = 2; +pub const SELFDESTRUCT_STATIC: u64 = 5000; +pub const SELFDESTRUCT_DYNAMIC: u64 = 25000; + +pub const DEFAULT_STATIC: u64 = 0; +pub const DEFAULT_COLD_DYNAMIC: u64 = 2600; +pub const DEFAULT_WARM_DYNAMIC: u64 = 100; + +pub const SLOAD_STATIC: u64 = 0; +pub const SLOAD_COLD_DYNAMIC: u64 = 2100; +pub const SLOAD_WARM_DYNAMIC: u64 = 100; + +pub const SSTORE_STATIC: u64 = 0; +pub const SSTORE_COLD_DYNAMIC: u64 = 2100; +pub const SSTORE_DEFAULT_DYNAMIC: u64 = 100; +pub const SSTORE_STORAGE_CREATION: u64 = 20000; +pub const SSTORE_STORAGE_MODIFICATION: u64 = 2900; +pub const SSTORE_STIPEND: u64 = 2300; + +pub const BALANCE_STATIC: u64 = DEFAULT_STATIC; +pub const BALANCE_COLD_DYNAMIC: u64 = DEFAULT_COLD_DYNAMIC; +pub const BALANCE_WARM_DYNAMIC: u64 = DEFAULT_WARM_DYNAMIC; + +pub const EXTCODESIZE_STATIC: u64 = DEFAULT_STATIC; +pub const EXTCODESIZE_COLD_DYNAMIC: u64 = DEFAULT_COLD_DYNAMIC; +pub const EXTCODESIZE_WARM_DYNAMIC: u64 = DEFAULT_WARM_DYNAMIC; + +pub const EXTCODEHASH_STATIC: u64 = DEFAULT_STATIC; +pub const EXTCODEHASH_COLD_DYNAMIC: u64 = DEFAULT_COLD_DYNAMIC; +pub const EXTCODEHASH_WARM_DYNAMIC: u64 = DEFAULT_WARM_DYNAMIC; + +pub const EXTCODECOPY_STATIC: u64 = 0; +pub const EXTCODECOPY_DYNAMIC_BASE: u64 = 3; +pub const EXTCODECOPY_COLD_DYNAMIC: u64 = DEFAULT_COLD_DYNAMIC; +pub const EXTCODECOPY_WARM_DYNAMIC: u64 = DEFAULT_WARM_DYNAMIC; + +pub const CALL_STATIC: u64 = DEFAULT_STATIC; +pub const CALL_COLD_DYNAMIC: u64 = DEFAULT_COLD_DYNAMIC; +pub const CALL_WARM_DYNAMIC: u64 = DEFAULT_WARM_DYNAMIC; +pub const CALL_POSITIVE_VALUE: u64 = 9000; +pub const CALL_POSITIVE_VALUE_STIPEND: u64 = 2300; +pub const CALL_TO_EMPTY_ACCOUNT: u64 = 25000; + +pub const CALLCODE_STATIC: u64 = DEFAULT_STATIC; +pub const CALLCODE_COLD_DYNAMIC: u64 = DEFAULT_COLD_DYNAMIC; +pub const CALLCODE_WARM_DYNAMIC: u64 = DEFAULT_WARM_DYNAMIC; +pub const CALLCODE_POSITIVE_VALUE: u64 = 9000; +pub const CALLCODE_POSITIVE_VALUE_STIPEND: u64 = 2300; + +pub const DELEGATECALL_STATIC: u64 = DEFAULT_STATIC; +pub const DELEGATECALL_COLD_DYNAMIC: u64 = DEFAULT_COLD_DYNAMIC; +pub const DELEGATECALL_WARM_DYNAMIC: u64 = DEFAULT_WARM_DYNAMIC; + +pub const STATICCALL_STATIC: u64 = DEFAULT_STATIC; +pub const STATICCALL_COLD_DYNAMIC: u64 = DEFAULT_COLD_DYNAMIC; +pub const STATICCALL_WARM_DYNAMIC: u64 = DEFAULT_WARM_DYNAMIC; + +// Costs in gas for call opcodes +pub const WARM_ADDRESS_ACCESS_COST: u64 = 100; +pub const COLD_ADDRESS_ACCESS_COST: u64 = 2600; +pub const NON_ZERO_VALUE_COST: u64 = 9000; +pub const BASIC_FALLBACK_FUNCTION_STIPEND: u64 = 2300; +pub const VALUE_TO_EMPTY_ACCOUNT_COST: u64 = 25000; + +// Costs in gas for create opcodes +pub const INIT_CODE_WORD_COST: u64 = 2; +pub const CODE_DEPOSIT_COST: u64 = 200; +pub const CREATE_BASE_COST: u64 = 32000; // Calldata costs -pub const CALLDATA_COST_ZERO_BYTE: U256 = U256([4, 0, 0, 0]); -pub const CALLDATA_COST_NON_ZERO_BYTE: U256 = U256([16, 0, 0, 0]); +pub const CALLDATA_COST_ZERO_BYTE: u64 = 4; +pub const CALLDATA_COST_NON_ZERO_BYTE: u64 = 16; -// Blob gas costs 2^17 -pub const BLOB_GAS_PER_BLOB: U256 = U256([131072, 0, 0, 0]); +// Blob gas costs +pub const BLOB_GAS_PER_BLOB: u64 = 131072; // Access lists costs -pub const ACCESS_LIST_STORAGE_KEY_COST: U256 = U256([1900, 0, 0, 0]); -pub const ACCESS_LIST_ADDRESS_COST: U256 = U256([2400, 0, 0, 0]); +pub const ACCESS_LIST_STORAGE_KEY_COST: u64 = 1900; +pub const ACCESS_LIST_ADDRESS_COST: u64 = 2400; // Precompile costs pub const ECRECOVER_COST: u64 = 3000; @@ -180,27 +180,31 @@ pub const MODEXP_STATIC_COST: u64 = 0; pub const MODEXP_DYNAMIC_BASE: u64 = 200; pub const MODEXP_DYNAMIC_QUOTIENT: u64 = 3; -pub fn exp(exponent: U256) -> Result { +pub fn exp(exponent: U256) -> Result { let exponent_byte_size = (exponent .bits() .checked_add(7) - .ok_or(OutOfGasError::GasCostOverflow)?) + .ok_or(VMError::OutOfGas(OutOfGasError::GasCostOverflow))?) / 8; + let exponent_byte_size: u64 = exponent_byte_size + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + let exponent_byte_size_cost = EXP_DYNAMIC_BASE - .checked_mul(exponent_byte_size.into()) - .ok_or(OutOfGasError::GasCostOverflow)?; + .checked_mul(exponent_byte_size) + .ok_or(VMError::OutOfGas(OutOfGasError::GasCostOverflow))?; EXP_STATIC .checked_add(exponent_byte_size_cost) - .ok_or(OutOfGasError::GasCostOverflow) + .ok_or(VMError::OutOfGas(OutOfGasError::GasCostOverflow)) } pub fn calldatacopy( new_memory_size: usize, current_memory_size: usize, size: usize, -) -> Result { +) -> Result { copy_behavior( new_memory_size, current_memory_size, @@ -214,7 +218,7 @@ pub fn codecopy( new_memory_size: usize, current_memory_size: usize, size: usize, -) -> Result { +) -> Result { copy_behavior( new_memory_size, current_memory_size, @@ -228,7 +232,7 @@ pub fn returndatacopy( new_memory_size: usize, current_memory_size: usize, size: usize, -) -> Result { +) -> Result { copy_behavior( new_memory_size, current_memory_size, @@ -242,24 +246,31 @@ fn copy_behavior( new_memory_size: usize, current_memory_size: usize, size: usize, - dynamic_base: U256, - static_cost: U256, -) -> Result { + dynamic_base: u64, + static_cost: u64, +) -> Result { let minimum_word_size = (size .checked_add(WORD_SIZE) .ok_or(OutOfGasError::GasCostOverflow)? .saturating_sub(1)) / WORD_SIZE; + let minimum_word_size: u64 = minimum_word_size + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; let minimum_word_size_cost = dynamic_base - .checked_mul(minimum_word_size.into()) + .checked_mul(minimum_word_size) .ok_or(OutOfGasError::GasCostOverflow)?; Ok(static_cost .checked_add(minimum_word_size_cost) .ok_or(OutOfGasError::GasCostOverflow)? - .checked_add(memory_expansion_cost.into()) + .checked_add(memory_expansion_cost) .ok_or(OutOfGasError::GasCostOverflow)?) } @@ -267,7 +278,7 @@ pub fn keccak256( new_memory_size: usize, current_memory_size: usize, size: usize, -) -> Result { +) -> Result { copy_behavior( new_memory_size, current_memory_size, @@ -282,48 +293,59 @@ pub fn log( current_memory_size: usize, size: usize, number_of_topics: u8, -) -> Result { +) -> Result { let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; let topics_cost = LOGN_DYNAMIC_BASE .checked_mul(number_of_topics.into()) .ok_or(OutOfGasError::GasCostOverflow)?; + + let size: u64 = size.try_into().map_err(|_| VMError::VeryLargeNumber)?; let bytes_cost = LOGN_DYNAMIC_BYTE_BASE - .checked_mul(size.into()) + .checked_mul(size) .ok_or(OutOfGasError::GasCostOverflow)?; + + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + Ok(topics_cost .checked_add(LOGN_STATIC) .ok_or(OutOfGasError::GasCostOverflow)? .checked_add(bytes_cost) .ok_or(OutOfGasError::GasCostOverflow)? - .checked_add(memory_expansion_cost.into()) + .checked_add(memory_expansion_cost) .ok_or(OutOfGasError::GasCostOverflow)?) } -pub fn mload(new_memory_size: usize, current_memory_size: usize) -> Result { +pub fn mload(new_memory_size: usize, current_memory_size: usize) -> Result { mem_expansion_behavior(new_memory_size, current_memory_size, MLOAD_STATIC) } -pub fn mstore(new_memory_size: usize, current_memory_size: usize) -> Result { +pub fn mstore(new_memory_size: usize, current_memory_size: usize) -> Result { mem_expansion_behavior(new_memory_size, current_memory_size, MSTORE_STATIC) } -pub fn mstore8(new_memory_size: usize, current_memory_size: usize) -> Result { +pub fn mstore8(new_memory_size: usize, current_memory_size: usize) -> Result { mem_expansion_behavior(new_memory_size, current_memory_size, MSTORE8_STATIC) } fn mem_expansion_behavior( new_memory_size: usize, current_memory_size: usize, - static_cost: U256, -) -> Result { + static_cost: u64, +) -> Result { let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::RevertOpcode)?; + Ok(static_cost - .checked_add(memory_expansion_cost.into()) + .checked_add(memory_expansion_cost) .ok_or(OutOfGasError::GasCostOverflow)?) } -pub fn sload(storage_slot_was_cold: bool) -> Result { +pub fn sload(storage_slot_was_cold: bool) -> Result { let static_gas = SLOAD_STATIC; let dynamic_cost = if storage_slot_was_cold { @@ -342,7 +364,7 @@ pub fn sstore( new_value: U256, storage_slot_was_cold: bool, current_call_frame: &CallFrame, -) -> Result { +) -> Result { // EIP-2200 let gas_left = current_call_frame .gas_limit @@ -381,7 +403,7 @@ pub fn mcopy( new_memory_size: usize, current_memory_size: usize, size: usize, -) -> Result { +) -> Result { let words_copied = (size .checked_add(WORD_SIZE) .ok_or(OutOfGasError::GasCostOverflow)? @@ -389,15 +411,22 @@ pub fn mcopy( / WORD_SIZE; let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + + let words_copied: u64 = words_copied + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; let copied_words_cost = MCOPY_DYNAMIC_BASE - .checked_mul(words_copied.into()) + .checked_mul(words_copied) .ok_or(OutOfGasError::GasCostOverflow)?; Ok(MCOPY_STATIC .checked_add(copied_words_cost) .ok_or(OutOfGasError::GasCostOverflow)? - .checked_add(memory_expansion_cost.into()) + .checked_add(memory_expansion_cost) .ok_or(OutOfGasError::GasCostOverflow)?) } @@ -405,7 +434,7 @@ pub fn create( new_memory_size: usize, current_memory_size: usize, code_size_in_memory: usize, -) -> Result { +) -> Result { compute_gas_create( new_memory_size, current_memory_size, @@ -418,7 +447,7 @@ pub fn create_2( new_memory_size: usize, current_memory_size: usize, code_size_in_memory: usize, -) -> Result { +) -> Result { compute_gas_create( new_memory_size, current_memory_size, @@ -432,41 +461,50 @@ fn compute_gas_create( current_memory_size: usize, code_size_in_memory: usize, is_create_2: bool, -) -> Result { +) -> Result { let minimum_word_size = (code_size_in_memory .checked_add(31) .ok_or(OutOfGasError::GasCostOverflow)?) .checked_div(32) .ok_or(OutOfGasError::ArithmeticOperationDividedByZero)?; // '32' will never be zero + let minimum_word_size: u64 = minimum_word_size + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + let init_code_cost = minimum_word_size - .checked_mul(INIT_CODE_WORD_COST.as_usize()) // will not panic since it's 2 - .ok_or(OutOfGasError::GasCostOverflow)?; + .checked_mul(INIT_CODE_WORD_COST) + .ok_or(OutOfGasError::GasCostOverflow)?; // will not panic since it's 2 let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; let hash_cost = if is_create_2 { minimum_word_size - .checked_mul(KECCAK25_DYNAMIC_BASE.as_usize()) // will not panic since it's 6 - .ok_or(OutOfGasError::GasCostOverflow)? + .checked_mul(KECCAK25_DYNAMIC_BASE) + .ok_or(OutOfGasError::GasCostOverflow)? // will not panic since it's 6 } else { 0 }; - Ok(U256::from(memory_expansion_cost) - .checked_add(init_code_cost.into()) + let gas_create_cost = memory_expansion_cost + .checked_add(init_code_cost) .ok_or(OutOfGasError::CreationCostIsTooHigh)? .checked_add(CREATE_BASE_COST) .ok_or(OutOfGasError::CreationCostIsTooHigh)? - .checked_add(hash_cost.into()) - .ok_or(OutOfGasError::CreationCostIsTooHigh)?) + .checked_add(hash_cost) + .ok_or(OutOfGasError::CreationCostIsTooHigh)?; + + Ok(gas_create_cost) } pub fn selfdestruct( address_was_cold: bool, account_is_empty: bool, balance_to_transfer: U256, -) -> Result { +) -> Result { let mut gas_cost = SELFDESTRUCT_STATIC; if address_was_cold { @@ -485,10 +523,10 @@ pub fn selfdestruct( Ok(gas_cost) } -pub fn tx_calldata(calldata: &Bytes) -> Result { +pub fn tx_calldata(calldata: &Bytes) -> Result { // This cost applies both for call and create // 4 gas for each zero byte in the transaction data 16 gas for each non-zero byte in the transaction. - let mut calldata_cost: U256 = U256::zero(); + let mut calldata_cost: u64 = 0; for byte in calldata { if *byte != 0 { calldata_cost = calldata_cost @@ -522,12 +560,12 @@ pub fn tx_creation(code_length: u64, number_of_words: u64) -> Result Result { + static_cost: u64, + cold_dynamic_cost: u64, + warm_dynamic_cost: u64, +) -> Result { let static_gas = static_cost; - let dynamic_cost: U256 = if address_was_cold { + let dynamic_cost: u64 = if address_was_cold { cold_dynamic_cost } else { warm_dynamic_cost @@ -538,7 +576,7 @@ fn address_access_cost( .ok_or(OutOfGasError::GasCostOverflow)?) } -pub fn balance(address_was_cold: bool) -> Result { +pub fn balance(address_was_cold: bool) -> Result { address_access_cost( address_was_cold, BALANCE_STATIC, @@ -547,7 +585,7 @@ pub fn balance(address_was_cold: bool) -> Result { ) } -pub fn extcodesize(address_was_cold: bool) -> Result { +pub fn extcodesize(address_was_cold: bool) -> Result { address_access_cost( address_was_cold, EXTCODESIZE_STATIC, @@ -561,7 +599,7 @@ pub fn extcodecopy( new_memory_size: usize, current_memory_size: usize, address_was_cold: bool, -) -> Result { +) -> Result { let base_access_cost = copy_behavior( new_memory_size, current_memory_size, @@ -581,7 +619,7 @@ pub fn extcodecopy( .ok_or(OutOfGasError::GasCostOverflow)?) } -pub fn extcodehash(address_was_cold: bool) -> Result { +pub fn extcodehash(address_was_cold: bool) -> Result { address_access_cost( address_was_cold, EXTCODEHASH_STATIC, @@ -596,10 +634,14 @@ pub fn call( address_was_cold: bool, address_is_empty: bool, value_to_transfer: U256, -) -> Result { +) -> Result { let static_gas = CALL_STATIC; let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + let address_access_cost = address_access_cost( address_was_cold, CALL_STATIC, @@ -611,16 +653,16 @@ pub fn call( .checked_sub(CALL_POSITIVE_VALUE_STIPEND) .ok_or(InternalError::ArithmeticOperationUnderflow)? } else { - U256::zero() + 0 }; let value_to_empty_account = if address_is_empty && !value_to_transfer.is_zero() { CALL_TO_EMPTY_ACCOUNT } else { - U256::zero() + 0 }; // Note: code_execution_cost will be charged from the sub context post-state. - let dynamic_gas = U256::from(memory_expansion_cost) + let dynamic_gas = memory_expansion_cost .checked_add(address_access_cost) .ok_or(OutOfGasError::GasCostOverflow)? .checked_add(positive_value_cost) @@ -638,10 +680,14 @@ pub fn callcode( current_memory_size: usize, address_was_cold: bool, value_to_transfer: U256, -) -> Result { +) -> Result { let static_gas = CALLCODE_STATIC; let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + let address_access_cost = address_access_cost( address_was_cold, CALLCODE_STATIC, @@ -653,11 +699,11 @@ pub fn callcode( .checked_sub(CALLCODE_POSITIVE_VALUE_STIPEND) .ok_or(InternalError::ArithmeticOperationUnderflow)? } else { - U256::zero() + 0 }; // Note: code_execution_cost will be charged from the sub context post-state. - let dynamic_gas = U256::from(memory_expansion_cost) + let dynamic_gas = memory_expansion_cost .checked_add(address_access_cost) .ok_or(OutOfGasError::GasCostOverflow)? .checked_add(positive_value_cost) @@ -672,10 +718,14 @@ pub fn delegatecall( new_memory_size: usize, current_memory_size: usize, address_was_cold: bool, -) -> Result { +) -> Result { let static_gas = DELEGATECALL_STATIC; let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + let address_access_cost = address_access_cost( address_was_cold, DELEGATECALL_STATIC, @@ -684,7 +734,7 @@ pub fn delegatecall( )?; // Note: code_execution_cost will be charged from the sub context post-state. - let dynamic_gas = U256::from(memory_expansion_cost) + let dynamic_gas = memory_expansion_cost .checked_add(address_access_cost) .ok_or(OutOfGasError::GasCostOverflow)?; @@ -697,10 +747,14 @@ pub fn staticcall( new_memory_size: usize, current_memory_size: usize, address_was_cold: bool, -) -> Result { +) -> Result { let static_gas = STATICCALL_STATIC; let memory_expansion_cost = memory::expansion_cost(new_memory_size, current_memory_size)?; + let memory_expansion_cost: u64 = memory_expansion_cost + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?; + let address_access_cost = address_access_cost( address_was_cold, STATICCALL_STATIC, @@ -709,7 +763,7 @@ pub fn staticcall( )?; // Note: code_execution_cost will be charged from the sub context post-state. - let dynamic_gas = U256::from(memory_expansion_cost) + let dynamic_gas = memory_expansion_cost .checked_add(address_access_cost) .ok_or(OutOfGasError::GasCostOverflow)?; @@ -718,7 +772,7 @@ pub fn staticcall( .ok_or(OutOfGasError::GasCostOverflow)?) } -pub fn fake_exponential(factor: u64, numerator: u64, denominator: u64) -> Result { +pub fn fake_exponential(factor: u64, numerator: u64, denominator: u64) -> Result { let mut i = 1; let mut output: u64 = 0; @@ -751,22 +805,20 @@ pub fn fake_exponential(factor: u64, numerator: u64, denominator: u64) -> Result .ok_or(InternalError::ArithmeticOperationOverflow)?; } - Ok(U256::from( - output - .checked_div(denominator) - .ok_or(InternalError::ArithmeticOperationOverflow)?, - )) + Ok(output + .checked_div(denominator) + .ok_or(InternalError::ArithmeticOperationOverflow)?) } -pub fn sha2_256(data_size: usize) -> Result { +pub fn sha2_256(data_size: usize) -> Result { precompile(data_size, SHA2_256_STATIC_COST, SHA2_256_DYNAMIC_BASE) } -pub fn ripemd_160(data_size: usize) -> Result { +pub fn ripemd_160(data_size: usize) -> Result { precompile(data_size, RIPEMD_160_STATIC_COST, RIPEMD_160_DYNAMIC_BASE) } -pub fn identity(data_size: usize) -> Result { +pub fn identity(data_size: usize) -> Result { precompile(data_size, IDENTITY_STATIC_COST, IDENTITY_DYNAMIC_BASE) } @@ -834,7 +886,7 @@ pub fn modexp( .ok_or(OutOfGasError::GasCostOverflow)?) } -fn precompile(data_size: usize, static_cost: u64, dynamic_base: u64) -> Result { +fn precompile(data_size: usize, static_cost: u64, dynamic_base: u64) -> Result { let data_size: u64 = data_size .try_into() .map_err(|_| PrecompileError::ParsingInputError)?; @@ -851,8 +903,7 @@ fn precompile(data_size: usize, static_cost: u64, dynamic_base: u64) -> Result Result Result { let mut remaining_gas = current_call_frame .gas_limit - .low_u64() - .checked_sub(current_call_frame.gas_used.low_u64()) + .checked_sub(current_call_frame.gas_used) .ok_or(InternalError::GasOverflow)?; remaining_gas = remaining_gas diff --git a/crates/vm/levm/src/opcode_handlers/block.rs b/crates/vm/levm/src/opcode_handlers/block.rs index bb6ef5bad..562c2691c 100644 --- a/crates/vm/levm/src/opcode_handlers/block.rs +++ b/crates/vm/levm/src/opcode_handlers/block.rs @@ -110,7 +110,9 @@ impl VM { ) -> Result { self.increase_consumed_gas(current_call_frame, gas_cost::GASLIMIT)?; - current_call_frame.stack.push(self.env.block_gas_limit)?; + current_call_frame + .stack + .push(self.env.block_gas_limit.into())?; Ok(OpcodeSuccess::Continue) } diff --git a/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs b/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs index 17a748f0c..36a50e5e3 100644 --- a/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs +++ b/crates/vm/levm/src/opcode_handlers/stack_memory_storage_flow.rs @@ -185,31 +185,32 @@ impl VM { // Gas Refunds // Sync gas refund with global env, ensuring consistency accross contexts. let mut gas_refunds = self.env.refunded_gas; + if new_storage_slot_value != storage_slot.current_value { if storage_slot.current_value == storage_slot.original_value { if !storage_slot.original_value.is_zero() && new_storage_slot_value.is_zero() { gas_refunds = gas_refunds - .checked_add(U256::from(4800)) + .checked_add(4800) .ok_or(VMError::GasRefundsOverflow)?; } } else if !storage_slot.original_value.is_zero() { if storage_slot.current_value.is_zero() { gas_refunds = gas_refunds - .checked_sub(U256::from(4800)) + .checked_sub(4800) .ok_or(VMError::GasRefundsUnderflow)?; } else if new_storage_slot_value.is_zero() { gas_refunds = gas_refunds - .checked_add(U256::from(4800)) + .checked_add(4800) .ok_or(VMError::GasRefundsOverflow)?; } } else if new_storage_slot_value == storage_slot.original_value { if storage_slot.original_value.is_zero() { gas_refunds = gas_refunds - .checked_add(U256::from(19900)) + .checked_add(19900) .ok_or(VMError::GasRefundsOverflow)?; } else { gas_refunds = gas_refunds - .checked_add(U256::from(2800)) + .checked_add(2800) .ok_or(VMError::GasRefundsOverflow)?; } } @@ -242,7 +243,7 @@ impl VM { .checked_sub(current_call_frame.gas_used) .ok_or(OutOfGasError::ConsumedGasOverflow)?; // Note: These are not consumed gas calculations, but are related, so I used this wrapping here - current_call_frame.stack.push(remaining_gas)?; + current_call_frame.stack.push(remaining_gas.into())?; Ok(OpcodeSuccess::Continue) } diff --git a/crates/vm/levm/src/opcode_handlers/system.rs b/crates/vm/levm/src/opcode_handlers/system.rs index 12bc90306..0cbcb6dda 100644 --- a/crates/vm/levm/src/opcode_handlers/system.rs +++ b/crates/vm/levm/src/opcode_handlers/system.rs @@ -71,7 +71,7 @@ impl VM { // We add the stipend gas for the subcall. This ensures that the callee has enough gas to perform basic operations let gas_for_subcall = if !value_to_transfer.is_zero() { - gas.saturating_add(CALL_POSITIVE_VALUE_STIPEND) + gas.saturating_add(CALL_POSITIVE_VALUE_STIPEND.into()) } else { gas }; @@ -142,7 +142,7 @@ impl VM { // We add the stipend gas for the subcall. This ensures that the callee has enough gas to perform basic operations let gas_for_subcall = if !value_to_transfer.is_zero() { - gas.saturating_add(CALLCODE_POSITIVE_VALUE_STIPEND) + gas.saturating_add(CALLCODE_POSITIVE_VALUE_STIPEND.into()) } else { gas }; @@ -180,10 +180,13 @@ impl VM { } let new_memory_size = calculate_memory_size(offset, size)?; - self.increase_consumed_gas( - current_call_frame, - memory::expansion_cost(new_memory_size, current_call_frame.memory.len())?.into(), - )?; + + let memory_expansion_cost: u64 = + memory::expansion_cost(new_memory_size, current_call_frame.memory.len())? + .try_into() + .map_err(|_err| VMError::Internal(InternalError::ConversionError))?; + + self.increase_consumed_gas(current_call_frame, memory_expansion_cost)?; current_call_frame.output = memory::load_range(&mut current_call_frame.memory, offset, size)? @@ -396,10 +399,13 @@ impl VM { .map_err(|_err| VMError::VeryLargeNumber)?; let new_memory_size = calculate_memory_size(offset, size)?; - self.increase_consumed_gas( - current_call_frame, - memory::expansion_cost(new_memory_size, current_call_frame.memory.len())?.into(), - )?; + + let memory_expansion_cost: u64 = + memory::expansion_cost(new_memory_size, current_call_frame.memory.len())? + .try_into() + .map_err(|_err| VMError::Internal(InternalError::ConversionError))?; + + self.increase_consumed_gas(current_call_frame, memory_expansion_cost)?; current_call_frame.output = memory::load_range(&mut current_call_frame.memory, offset, size)? @@ -488,7 +494,7 @@ impl VM { // Reserve gas for subcall let max_message_call_gas = max_message_call_gas(current_call_frame)?; - self.increase_consumed_gas(current_call_frame, max_message_call_gas.into())?; + self.increase_consumed_gas(current_call_frame, max_message_call_gas)?; // Clear callframe subreturn data current_call_frame.sub_return_data = Bytes::new(); @@ -529,7 +535,7 @@ impl VM { // Return reserved gas current_call_frame.gas_used = current_call_frame .gas_used - .checked_sub(max_message_call_gas.into()) + .checked_sub(max_message_call_gas) .ok_or(VMError::Internal(InternalError::GasOverflow))?; // Push 0 current_call_frame.stack.push(CREATE_DEPLOYMENT_FAIL)?; @@ -569,8 +575,8 @@ impl VM { value_in_wei_to_send, Bytes::new(), false, - U256::from(max_message_call_gas), - U256::zero(), + max_message_call_gas, + 0, new_depth, true, ); @@ -585,8 +591,9 @@ impl VM { // Return reserved gas current_call_frame.gas_used = current_call_frame .gas_used - .checked_sub(unused_gas.into()) + .checked_sub(unused_gas) .ok_or(InternalError::GasOverflow)?; + current_call_frame.logs.extend(tx_report.logs); match tx_report.result { @@ -615,6 +622,9 @@ impl VM { } #[allow(clippy::too_many_arguments)] + /// This (should) be the only function where gas is used as a + /// U256. This is because we have to use the values that are + /// pushed to the stack. pub fn generic_call( &mut self, current_call_frame: &mut CallFrame, @@ -658,6 +668,12 @@ impl VM { let gas_cap = max_message_call_gas(current_call_frame)?; let gas_limit = std::cmp::min(gas_limit, gas_cap.into()); + // This should always cast correcly because the gas_cap is in + // u64; therefore, at most, it will be u64::MAX + let gas_limit: u64 = gas_limit + .try_into() + .map_err(|_| VMError::Internal(InternalError::ConversionError))?; + let mut new_call_frame = CallFrame::new( msg_sender, to, @@ -667,7 +683,7 @@ impl VM { calldata.into(), is_static, gas_limit, - U256::zero(), + 0, new_depth, false, ); @@ -683,7 +699,7 @@ impl VM { // Add gas used by the sub-context to the current one after it's execution. current_call_frame.gas_used = current_call_frame .gas_used - .checked_add(tx_report.gas_used.into()) + .checked_add(tx_report.gas_used) .ok_or(VMError::OutOfGas(OutOfGasError::ConsumedGasOverflow))?; current_call_frame.logs.extend(tx_report.logs); memory::try_store_range( diff --git a/crates/vm/levm/src/precompiles.rs b/crates/vm/levm/src/precompiles.rs index 9ffef1e9c..d793cb741 100644 --- a/crates/vm/levm/src/precompiles.rs +++ b/crates/vm/levm/src/precompiles.rs @@ -101,9 +101,9 @@ pub fn execute_precompile(current_call_frame: &mut CallFrame) -> Result Result<(), VMError> { if gas_for_call < gas_cost { return Err(VMError::PrecompileError(PrecompileError::NotEnoughGas)); @@ -135,10 +135,10 @@ fn fill_with_zeros(slice: &[u8]) -> Result<[u8; 128], VMError> { pub fn ecrecover( calldata: &Bytes, - gas_for_call: U256, - consumed_gas: &mut U256, + gas_for_call: u64, + consumed_gas: &mut u64, ) -> Result { - let gas_cost = ECRECOVER_COST.into(); + let gas_cost = ECRECOVER_COST; increase_precompile_consumed_gas(gas_for_call, gas_cost, consumed_gas)?; @@ -193,16 +193,16 @@ pub fn ecrecover( fn identity( _calldata: &Bytes, - _gas_for_call: U256, - _consumed_gas: &mut U256, + _gas_for_call: u64, + _consumed_gas: &mut u64, ) -> Result { Ok(Bytes::new()) } pub fn sha2_256( calldata: &Bytes, - gas_for_call: U256, - consumed_gas: &mut U256, + gas_for_call: u64, + consumed_gas: &mut u64, ) -> Result { let gas_cost = sha2_256_cost(calldata.len())?; @@ -215,8 +215,8 @@ pub fn sha2_256( pub fn ripemd_160( calldata: &Bytes, - gas_for_call: U256, - consumed_gas: &mut U256, + gas_for_call: u64, + consumed_gas: &mut u64, ) -> Result { let gas_cost = ripemd_160_cost(calldata.len())?; @@ -234,48 +234,40 @@ pub fn ripemd_160( fn modexp( _calldata: &Bytes, - _gas_for_call: U256, - _consumed_gas: &mut U256, + _gas_for_call: u64, + _consumed_gas: &mut u64, ) -> Result { Ok(Bytes::new()) } -fn ecadd( - _calldata: &Bytes, - _gas_for_call: U256, - _consumed_gas: &mut U256, -) -> Result { +fn ecadd(_calldata: &Bytes, _gas_for_call: u64, _consumed_gas: &mut u64) -> Result { Ok(Bytes::new()) } -fn ecmul( - _calldata: &Bytes, - _gas_for_call: U256, - _consumed_gas: &mut U256, -) -> Result { +fn ecmul(_calldata: &Bytes, _gas_for_call: u64, _consumed_gas: &mut u64) -> Result { Ok(Bytes::new()) } fn ecpairing( _calldata: &Bytes, - _gas_for_call: U256, - _consumed_gas: &mut U256, + _gas_for_call: u64, + _consumed_gas: &mut u64, ) -> Result { Ok(Bytes::new()) } fn blake2f( _calldata: &Bytes, - _gas_for_call: U256, - _consumed_gas: &mut U256, + _gas_for_call: u64, + _consumed_gas: &mut u64, ) -> Result { Ok(Bytes::new()) } fn point_evaluation( _calldata: &Bytes, - _gas_for_call: U256, - _consumed_gas: &mut U256, + _gas_for_call: u64, + _consumed_gas: &mut u64, ) -> Result { Ok(Bytes::new()) } diff --git a/crates/vm/levm/src/vm.rs b/crates/vm/levm/src/vm.rs index f91d5309a..a40780931 100644 --- a/crates/vm/levm/src/vm.rs +++ b/crates/vm/levm/src/vm.rs @@ -176,7 +176,7 @@ impl VM { calldata.clone(), false, env.gas_limit, - U256::zero(), + 0, 0, false, ); @@ -230,7 +230,7 @@ impl VM { calldata, // Calldata is removed after passing validations. false, env.gas_limit, - U256::zero(), + 0, 0, false, ); @@ -277,7 +277,7 @@ impl VM { return Ok(TransactionReport { result: TxResult::Success, new_state: self.cache.clone(), - gas_used: current_call_frame.gas_used.low_u64(), + gas_used: current_call_frame.gas_used, gas_refunded: 0, output, logs: current_call_frame.logs.clone(), @@ -301,7 +301,7 @@ impl VM { return Ok(TransactionReport { result: TxResult::Revert(error), new_state: self.cache.clone(), - gas_used: current_call_frame.gas_limit.low_u64(), + gas_used: current_call_frame.gas_limit, gas_refunded: 0, output: Bytes::new(), logs: current_call_frame.logs.clone(), @@ -434,11 +434,15 @@ impl VM { { let contract_code = current_call_frame.output.clone(); let code_length = contract_code.len(); - let code_deposit_cost = U256::from(code_length) - .checked_mul(CODE_DEPOSIT_COST) - .ok_or(VMError::Internal( - InternalError::ArithmeticOperationOverflow, - ))?; + + let code_length_u64: u64 = code_length + .try_into() + .map_err(|_| VMError::Internal(InternalError::ConversionError))?; + + let code_deposit_cost: u64 = + code_length_u64.checked_mul(CODE_DEPOSIT_COST).ok_or( + VMError::Internal(InternalError::ArithmeticOperationOverflow), + )?; // Revert // If the first byte of code is 0xef @@ -475,8 +479,8 @@ impl VM { return Ok(TransactionReport { result: TxResult::Revert(error), new_state: self.cache.clone(), - gas_used: current_call_frame.gas_used.low_u64(), - gas_refunded: self.env.refunded_gas.low_u64(), + gas_used: current_call_frame.gas_used, + gas_refunded: self.env.refunded_gas, output: current_call_frame.output.clone(), logs: current_call_frame.logs.clone(), created_address: None, @@ -488,8 +492,8 @@ impl VM { return Ok(TransactionReport { result: TxResult::Success, new_state: self.cache.clone(), - gas_used: current_call_frame.gas_used.low_u64(), - gas_refunded: self.env.refunded_gas.low_u64(), + gas_used: current_call_frame.gas_used, + gas_refunded: self.env.refunded_gas, output: current_call_frame.output.clone(), logs: current_call_frame.logs.clone(), created_address: None, @@ -521,8 +525,8 @@ impl VM { return Ok(TransactionReport { result: TxResult::Revert(error), new_state: self.cache.clone(), - gas_used: current_call_frame.gas_used.low_u64(), - gas_refunded: self.env.refunded_gas.low_u64(), + gas_used: current_call_frame.gas_used, + gas_refunded: self.env.refunded_gas, output: current_call_frame.output.clone(), // Bytes::new() if error is not RevertOpcode logs: current_call_frame.logs.clone(), created_address: None, @@ -536,7 +540,7 @@ impl VM { &mut self, backup_cache: CacheDB, backup_substate: Substate, - backup_refunded_gas: U256, + backup_refunded_gas: u64, backup_transient_storage: TransientStorage, ) { self.cache = backup_cache; @@ -553,7 +557,7 @@ impl VM { // Intrinsic gas is the gas consumed by the transaction before the execution of the opcodes. Section 6.2 in the Yellow Paper. // Intrinsic Gas = Calldata cost + Create cost + Base cost + Access list cost - let mut intrinsic_gas = U256::zero(); + let mut intrinsic_gas: u64 = 0; // Calldata Cost // 4 gas for each zero byte in the transaction data 16 gas for each non-zero byte in the transaction. @@ -576,18 +580,19 @@ impl VM { .ok_or(OutOfGasError::ConsumedGasOverflow)?; let number_of_words = initial_call_frame.calldata.len().div_ceil(WORD_SIZE); + let double_number_of_words: u64 = number_of_words + .checked_mul(2) + .ok_or(OutOfGasError::ConsumedGasOverflow)? + .try_into() + .map_err(|_| VMError::Internal(InternalError::ConversionError))?; intrinsic_gas = intrinsic_gas - .checked_add( - U256::from(number_of_words) - .checked_mul(U256::from(2)) - .ok_or(OutOfGasError::ConsumedGasOverflow)?, - ) + .checked_add(double_number_of_words) .ok_or(OutOfGasError::ConsumedGasOverflow)?; } // Access List Cost - let mut access_lists_cost = U256::zero(); + let mut access_lists_cost: u64 = 0; for (_, keys) in self.access_list.clone() { access_lists_cost = access_lists_cost .checked_add(ACCESS_LIST_ADDRESS_COST) @@ -610,8 +615,15 @@ impl VM { } /// Gets the max blob gas cost for a transaction that a user is willing to pay. - fn get_max_blob_gas_cost(&self) -> Result { - let blob_gas_used = U256::from(self.env.tx_blob_hashes.len()) + fn get_max_blob_gas_price(&self) -> Result { + let blobhash_amount: u64 = self + .env + .tx_blob_hashes + .len() + .try_into() + .map_err(|_| VMError::Internal(InternalError::ConversionError))?; + + let blob_gas_used: u64 = blobhash_amount .checked_mul(BLOB_GAS_PER_BLOB) .unwrap_or_default(); @@ -619,23 +631,31 @@ impl VM { .env .tx_max_fee_per_blob_gas .unwrap_or_default() - .checked_mul(blob_gas_used) + .checked_mul(blob_gas_used.into()) .ok_or(InternalError::UndefinedState(1))?; Ok(max_blob_gas_cost) } /// Gets the actual blob gas cost. - fn get_blob_gas_cost(&self) -> Result { - let blob_gas_used = U256::from(self.env.tx_blob_hashes.len()) + fn get_blob_gas_price(&self) -> Result { + let blobhash_amount: u64 = self + .env + .tx_blob_hashes + .len() + .try_into() + .map_err(|_| VMError::Internal(InternalError::ConversionError))?; + + let blob_gas_price: u64 = blobhash_amount .checked_mul(BLOB_GAS_PER_BLOB) .unwrap_or_default(); let base_fee_per_blob_gas = self.get_base_fee_per_blob_gas()?; - let blob_fee = blob_gas_used + let blob_gas_price: U256 = blob_gas_price.into(); + let blob_fee: U256 = blob_gas_price .checked_mul(base_fee_per_blob_gas) - .ok_or(InternalError::UndefinedState(1))?; + .ok_or(VMError::Internal(InternalError::UndefinedState(1)))?; Ok(blob_fee) } @@ -643,9 +663,14 @@ impl VM { pub fn get_base_fee_per_blob_gas(&self) -> Result { fake_exponential( MIN_BASE_FEE_PER_BLOB_GAS, - self.env.block_excess_blob_gas.unwrap_or_default().low_u64(), //Maybe replace unwrap_or_default for sth else later. + self.env + .block_excess_blob_gas + .unwrap_or_default() + .try_into() + .map_err(|_| VMError::VeryLargeNumber)?, //Maybe replace unwrap_or_default for sth else later. BLOB_BASE_FEE_UPDATE_FRACTION, ) + .map(|ok_value| ok_value.into()) } /// ## Description @@ -661,20 +686,20 @@ impl VM { let sender_account = self.get_account(sender_address); // (1) GASLIMIT_PRICE_PRODUCT_OVERFLOW - let gaslimit_price_product = - self.env - .gas_price - .checked_mul(self.env.gas_limit) - .ok_or(VMError::TxValidation( - TxValidationError::GasLimitPriceProductOverflow, - ))?; + let gaslimit_price_product = self + .env + .gas_price + .checked_mul(self.env.gas_limit.into()) + .ok_or(VMError::TxValidation( + TxValidationError::GasLimitPriceProductOverflow, + ))?; // Up front cost is the maximum amount of wei that a user is willing to pay for. Gaslimit * gasprice + value + blob_gas_cost let value = initial_call_frame.msg_value; // blob gas cost = max fee per blob gas * blob gas used // https://eips.ethereum.org/EIPS/eip-4844 - let max_blob_gas_cost = self.get_max_blob_gas_cost()?; + let max_blob_gas_cost = self.get_max_blob_gas_price()?; // For the transaction to be valid the sender account has to have a balance >= gas_price * gas_limit + value if tx is type 0 and 1 // balance >= max_fee_per_gas * gas_limit + value + blob_gas_cost if tx is type 2 or 3 @@ -682,7 +707,7 @@ impl VM { .env .tx_max_fee_per_gas .unwrap_or(self.env.gas_price) - .checked_mul(self.env.gas_limit) + .checked_mul(self.env.gas_limit.into()) .ok_or(VMError::TxValidation( TxValidationError::GasLimitPriceProductOverflow, ))?; @@ -702,7 +727,7 @@ impl VM { )); } - let blob_gas_cost = self.get_blob_gas_cost()?; + let blob_gas_cost = self.get_blob_gas_price()?; // The real cost to deduct is calculated as effective_gas_price * gas_limit + value + blob_gas_cost let up_front_cost = gaslimit_price_product @@ -854,7 +879,7 @@ impl VM { } // 2. Return unused gas + gas refunds to the sender. - let max_gas = self.env.gas_limit.low_u64(); + let max_gas = self.env.gas_limit; let consumed_gas = report.gas_used; let refunded_gas = report.gas_refunded.min( consumed_gas @@ -998,7 +1023,7 @@ impl VM { pub fn increase_consumed_gas( &mut self, current_call_frame: &mut CallFrame, - gas: U256, + gas: u64, ) -> Result<(), VMError> { let potential_consumed_gas = current_call_frame .gas_used @@ -1194,7 +1219,7 @@ impl VM { ) -> Result { let mut report = TransactionReport { result: TxResult::Revert(VMError::AddressAlreadyOccupied), - gas_used: self.env.gas_limit.low_u64(), + gas_used: self.env.gas_limit, gas_refunded: 0, logs: vec![], new_state: self.cache.clone(), diff --git a/crates/vm/levm/tests/edge_case_tests.rs b/crates/vm/levm/tests/edge_case_tests.rs index 80a759552..80ece79c7 100644 --- a/crates/vm/levm/tests/edge_case_tests.rs +++ b/crates/vm/levm/tests/edge_case_tests.rs @@ -17,7 +17,7 @@ fn test_extcodecopy_memory_allocation() { ])) .unwrap(); let mut current_call_frame = vm.call_frames.pop().unwrap(); - current_call_frame.gas_limit = U256::from(100_000_000); + current_call_frame.gas_limit = 100_000_000; vm.env.gas_price = U256::from(10_000); vm.execute(&mut current_call_frame).unwrap(); } @@ -293,8 +293,8 @@ fn test_non_compliance_codecopy_memory_resize() { fn test_non_compliance_log_gas_cost() { let mut vm = new_vm_with_bytecode(Bytes::copy_from_slice(&[56, 68, 68, 68, 131, 163])).unwrap(); vm.env.gas_price = U256::zero(); - vm.env.gas_limit = U256::from(100_000_000); - vm.env.block_gas_limit = U256::from(100_000_001); + vm.env.gas_limit = 100_000_000; + vm.env.block_gas_limit = 100_000_001; let res = vm.transact().unwrap(); assert_eq!(res.gas_used, 22511); } diff --git a/crates/vm/levm/tests/tests.rs b/crates/vm/levm/tests/tests.rs index 9e3a46937..9d279e8b8 100644 --- a/crates/vm/levm/tests/tests.rs +++ b/crates/vm/levm/tests/tests.rs @@ -441,7 +441,7 @@ fn and_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0b1000)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -453,7 +453,7 @@ fn and_binary_with_zero() { Operation::Stop, ]) .unwrap(); - let expected_consumed_gas = gas_cost::AND + gas_cost::PUSHN.checked_mul(U256::from(2)).unwrap(); + let expected_consumed_gas = gas_cost::AND + gas_cost::PUSHN.checked_mul(2).unwrap(); let mut current_call_frame = vm.call_frames.pop().unwrap(); vm.execute(&mut current_call_frame).unwrap(); @@ -478,7 +478,7 @@ fn and_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xF0F0)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xF000))), @@ -493,7 +493,7 @@ fn and_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xF000)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xB020))), @@ -508,7 +508,7 @@ fn and_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0b1000000000000)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -526,7 +526,7 @@ fn or_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0b1110)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0b1010))), @@ -541,7 +541,7 @@ fn or_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0b1010)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(u64::MAX))), @@ -556,7 +556,7 @@ fn or_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xFFFFFFFFFFFFFFFF_u64)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -574,7 +574,7 @@ fn or_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xFFFF)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xF000))), @@ -589,7 +589,7 @@ fn or_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xF0F0)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xB020))), @@ -604,7 +604,7 @@ fn or_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0b1011111100101111)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -622,7 +622,7 @@ fn xor_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0b110)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0b1010))), @@ -637,7 +637,7 @@ fn xor_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0b1010)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(u64::MAX))), @@ -652,7 +652,7 @@ fn xor_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(u64::MAX)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(u64::MAX))), @@ -667,7 +667,7 @@ fn xor_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -685,7 +685,7 @@ fn xor_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xFF)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xFF))), @@ -700,7 +700,7 @@ fn xor_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xFFFF))), @@ -715,7 +715,7 @@ fn xor_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xF0F)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xF000))), @@ -730,7 +730,7 @@ fn xor_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xF0)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0x4C0F))), @@ -745,7 +745,7 @@ fn xor_with_hex_numbers() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0b111011001000100)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -763,7 +763,7 @@ fn not() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); let expected = !U256::from(0b1010); assert_eq!(result, expected); - assert_eq!(current_call_frame.gas_used, U256::from(6)); + assert_eq!(current_call_frame.gas_used, 6); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::MAX)), @@ -777,7 +777,7 @@ fn not() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(6)); + assert_eq!(current_call_frame.gas_used, 6); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::zero())), @@ -791,7 +791,7 @@ fn not() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::MAX); - assert_eq!(current_call_frame.gas_used, U256::from(6)); + assert_eq!(current_call_frame.gas_used, 6); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(1))), @@ -805,7 +805,7 @@ fn not() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::MAX - 1); - assert_eq!(current_call_frame.gas_used, U256::from(6)); + assert_eq!(current_call_frame.gas_used, 6); } #[test] @@ -823,7 +823,7 @@ fn byte_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xF1)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0x33ED))), @@ -838,7 +838,7 @@ fn byte_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x33)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -856,7 +856,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xFF)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::MAX)), @@ -871,7 +871,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xFF)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0x00E0D0000))), @@ -886,7 +886,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x0D)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xFDEA179))), @@ -901,7 +901,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xFDEA179))), @@ -916,7 +916,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::zero())), @@ -931,7 +931,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let word = U256::from_big_endian(&[ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x57, 0x08, 0x09, 0x90, 0x0B, 0x0C, 0x0D, 0x0E, @@ -952,7 +952,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x90)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, word)), @@ -967,7 +967,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x57)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, word)), @@ -982,7 +982,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xDD)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, word)), @@ -997,7 +997,7 @@ fn byte_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x40)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1015,7 +1015,7 @@ fn shl_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xDDDD)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0x12345678))), @@ -1030,7 +1030,7 @@ fn shl_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x2468acf0)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0x12345678))), @@ -1045,7 +1045,7 @@ fn shl_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(4886718336_u64)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xFF))), @@ -1060,7 +1060,7 @@ fn shl_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xFF << 4)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1078,7 +1078,7 @@ fn shl_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::zero())), @@ -1093,7 +1093,7 @@ fn shl_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::MAX)), @@ -1108,7 +1108,7 @@ fn shl_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::MAX - 1); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1126,7 +1126,7 @@ fn shr_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xDDDD)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0x12345678))), @@ -1141,7 +1141,7 @@ fn shr_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x91a2b3c)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0x12345678))), @@ -1156,7 +1156,7 @@ fn shr_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x1234567)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::from(0xFF))), @@ -1171,7 +1171,7 @@ fn shr_basic() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0xF)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1189,7 +1189,7 @@ fn shr_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::zero())), @@ -1204,7 +1204,7 @@ fn shr_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); let mut vm = new_vm_with_ops(&[ Operation::Push((32, U256::MAX)), @@ -1219,7 +1219,7 @@ fn shr_edge_cases() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::MAX >> 1); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1237,7 +1237,7 @@ fn sar_shift_by_0() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x12345678)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1266,7 +1266,7 @@ fn sar_shifting_large_value_with_all_bits_set() { 0xff, 0xff, ]); assert_eq!(result, expected); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1295,7 +1295,7 @@ fn sar_shifting_negative_value_and_small_shift() { 0x00, 0x00, ]); assert_eq!(result, expected); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1313,7 +1313,7 @@ fn sar_shift_positive_value() { let result = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(result, U256::from(0x07FFFF)); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1343,7 +1343,7 @@ fn sar_shift_negative_value() { ]); // change 0x8f to 0xf8 assert_eq!(result, expected); - assert_eq!(current_call_frame.gas_used, U256::from(9)); + assert_eq!(current_call_frame.gas_used, 9); } #[test] @@ -1373,7 +1373,7 @@ fn keccak256_zero_offset_size_four() { U256::from("0x29045a592007d0c246ef02c2223570da9522d0cf0f73282c79a1bc8f0bb2c238") ); assert_eq!(vm.current_call_frame_mut().unwrap().pc(), 40); - assert_eq!(current_call_frame.gas_used, U256::from(52)); + assert_eq!(current_call_frame.gas_used, 52); } #[test] @@ -1403,7 +1403,7 @@ fn keccak256_zero_offset_size_bigger_than_actual_memory() { == U256::from("0xae75624a7d0413029c1e0facdd38cc8e177d9225892e2490a69c2f1f89512061") ); assert_eq!(vm.current_call_frame_mut().unwrap().pc(), 40); - assert_eq!(current_call_frame.gas_used, U256::from(61)); + assert_eq!(current_call_frame.gas_used, 61); } #[test] @@ -1425,7 +1425,7 @@ fn keccak256_zero_offset_zero_size() { U256::from("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") ); assert_eq!(vm.current_call_frame_mut().unwrap().pc(), 4); - assert_eq!(current_call_frame.gas_used, U256::from(34)); + assert_eq!(current_call_frame.gas_used, 34); } #[test] @@ -1455,7 +1455,7 @@ fn keccak256_offset_four_size_four() { U256::from("0xe8e77626586f73b955364c7b4bbf0bb7f7685ebd40e852b164633a4acbd3244c") ); assert_eq!(vm.current_call_frame_mut().unwrap().pc(), 41); - assert_eq!(current_call_frame.gas_used, U256::from(53)); + assert_eq!(current_call_frame.gas_used, 53); } #[test] @@ -1477,7 +1477,7 @@ fn mstore() { U256::from(32) ); assert_eq!(vm.current_call_frame_mut().unwrap().pc(), 69); - assert_eq!(current_call_frame.gas_used, U256::from(14)); + assert_eq!(current_call_frame.gas_used, 14); } #[test] @@ -1504,7 +1504,7 @@ fn mstore_saves_correct_value() { let memory_size = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(memory_size, U256::from(32)); - assert_eq!(current_call_frame.gas_used, U256::from(14)); + assert_eq!(current_call_frame.gas_used, 14); } #[test] @@ -1531,7 +1531,7 @@ fn mstore8() { stored_value.to_big_endian(&mut value_bytes); assert_eq!(value_bytes[0..1], [0xAB]); - assert_eq!(current_call_frame.gas_used, U256::from(12)); + assert_eq!(current_call_frame.gas_used, 12); } #[test] @@ -1562,7 +1562,7 @@ fn mcopy() { let memory_size = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(memory_size, U256::from(96)); - assert_eq!(current_call_frame.gas_used, U256::from(35)); + assert_eq!(current_call_frame.gas_used, 35); } #[test] @@ -1583,7 +1583,7 @@ fn mload() { let loaded_value = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(loaded_value, U256::from(0x33333)); - assert_eq!(current_call_frame.gas_used, U256::from(18)); + assert_eq!(current_call_frame.gas_used, 18); } #[test] @@ -1597,7 +1597,7 @@ fn msize() { let initial_size = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(initial_size, U256::zero()); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); let operations = [ Operation::Push((32, U256::from(0x33333))), // value @@ -1614,7 +1614,7 @@ fn msize() { let after_store_size = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(after_store_size, U256::from(32)); - assert_eq!(current_call_frame.gas_used, U256::from(14)); + assert_eq!(current_call_frame.gas_used, 14); let operations = [ Operation::Push((32, U256::from(0x55555))), // value @@ -1631,7 +1631,7 @@ fn msize() { let final_size = vm.current_call_frame_mut().unwrap().stack.pop().unwrap(); assert_eq!(final_size, U256::from(96)); - assert_eq!(current_call_frame.gas_used, U256::from(20)); + assert_eq!(current_call_frame.gas_used, 20); } #[test] @@ -1656,7 +1656,7 @@ fn mstore_mload_offset_not_multiple_of_32() { assert_eq!(loaded_value, U256::from(0xabcdef)); assert_eq!(memory_size, U256::from(64)); - assert_eq!(current_call_frame.gas_used, U256::from(23)); + assert_eq!(current_call_frame.gas_used, 23); // check with big offset @@ -1680,7 +1680,7 @@ fn mstore_mload_offset_not_multiple_of_32() { assert_eq!(loaded_value, U256::from(0x123456)); assert_eq!(memory_size, U256::from(2048)); - assert_eq!(current_call_frame.gas_used, U256::from(217)); + assert_eq!(current_call_frame.gas_used, 217); } #[test] @@ -1702,7 +1702,7 @@ fn mload_uninitialized_memory() { assert_eq!(loaded_value, U256::zero()); assert_eq!(memory_size, U256::from(96)); - assert_eq!(current_call_frame.gas_used, U256::from(17)); + assert_eq!(current_call_frame.gas_used, 17); } #[test] @@ -2002,7 +2002,7 @@ fn pc_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::zero() ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2022,7 +2022,7 @@ fn pc_op_with_push_offset() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::from(33) ); - assert_eq!(current_call_frame.gas_used, U256::from(5)); + assert_eq!(current_call_frame.gas_used, 5); } // #[test] @@ -2320,7 +2320,7 @@ fn jumpi_not_zero() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::from(10) ); - assert_eq!(current_call_frame.gas_used, U256::from(20)); + assert_eq!(current_call_frame.gas_used, 20); } #[test] @@ -2345,7 +2345,7 @@ fn jumpi_for_zero() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::from(100) ); - assert_eq!(current_call_frame.gas_used, U256::from(19)); + assert_eq!(current_call_frame.gas_used, 19); } // This test is just for trying things out, not a real test. But it is useful to have this as an example for conversions between bytes and u256. @@ -2423,7 +2423,7 @@ fn calldataload() { 0x00, 0x00, 0x00, 0x00 ]) ); - assert_eq!(current_call_frame.gas_used, U256::from(6)); + assert_eq!(current_call_frame.gas_used, 6); } #[test] @@ -2519,7 +2519,7 @@ fn calldatasize() { let current_call_frame = vm.current_call_frame_mut().unwrap(); let top_of_stack = current_call_frame.stack.pop().unwrap(); assert_eq!(top_of_stack, U256::from(3)); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2542,7 +2542,7 @@ fn calldatacopy() { let current_call_frame = vm.current_call_frame_mut().unwrap(); let memory = memory::load_range(&mut current_call_frame.memory, U256::zero(), 2).unwrap(); assert_eq!(memory, vec![0x22, 0x33]); - assert_eq!(current_call_frame.gas_used, U256::from(18)); + assert_eq!(current_call_frame.gas_used, 18); } #[test] @@ -2559,7 +2559,7 @@ fn returndatasize() { let current_call_frame = vm.current_call_frame_mut().unwrap(); let top_of_stack = current_call_frame.stack.pop().unwrap(); assert_eq!(top_of_stack, U256::from(3)); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2582,7 +2582,7 @@ fn returndatacopy() { let current_call_frame = vm.current_call_frame_mut().unwrap(); let memory = memory::load_range(&mut current_call_frame.memory, U256::zero(), 2).unwrap(); assert_eq!(memory, vec![0xBB, 0xCC]); - assert_eq!(current_call_frame.gas_used, U256::from(18)); + assert_eq!(current_call_frame.gas_used, 18); } #[test] @@ -2669,7 +2669,7 @@ fn blockhash_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), expected_block_hash ); - assert_eq!(current_call_frame.gas_used, U256::from(23)); + assert_eq!(current_call_frame.gas_used, 23); } #[test] @@ -2701,7 +2701,7 @@ fn blockhash_same_block_number() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), expected_block_hash ); - assert_eq!(current_call_frame.gas_used, U256::from(23)); + assert_eq!(current_call_frame.gas_used, 23); } #[test] @@ -2737,7 +2737,7 @@ fn blockhash_block_number_not_from_recent_256() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), expected_block_hash ); - assert_eq!(current_call_frame.gas_used, U256::from(23)); + assert_eq!(current_call_frame.gas_used, 23); } #[test] @@ -2756,7 +2756,7 @@ fn coinbase_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::from(coinbase_address) ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2775,7 +2775,7 @@ fn timestamp_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), timestamp ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2794,7 +2794,7 @@ fn number_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), block_number ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2813,7 +2813,7 @@ fn prevrandao_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::from_big_endian(&prevrandao.0) ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2830,9 +2830,9 @@ fn gaslimit_op() { assert_eq!( vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), - gas_limit + gas_limit.into() ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2877,7 +2877,7 @@ fn chain_id_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), chain_id ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2896,7 +2896,7 @@ fn basefee_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), base_fee_per_gas ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } // TODO: Add excess_blob_gas and blob_gas_used to env @@ -2915,7 +2915,7 @@ fn blobbasefee_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::from(2) ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } // TODO: Add excess_blob_gas and blob_gas_used to env @@ -2934,7 +2934,7 @@ fn blobbasefee_minimum_cost() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::one() ); - assert_eq!(current_call_frame.gas_used, U256::from(2)); + assert_eq!(current_call_frame.gas_used, 2); } #[test] @@ -2955,7 +2955,7 @@ fn pop_op() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::one() ); - assert_eq!(current_call_frame.gas_used, U256::from(8)); + assert_eq!(current_call_frame.gas_used, 8); } #[test] @@ -2979,7 +2979,7 @@ fn jump_op() { U256::from(10) ); assert_eq!(vm.current_call_frame_mut().unwrap().pc(), 70); - assert_eq!(current_call_frame.gas_used, U256::from(15)); + assert_eq!(current_call_frame.gas_used, 15); } #[test] @@ -3148,7 +3148,7 @@ fn log0() { assert_eq!(logs.len(), 1); assert_eq!(logs[0].data, data.to_vec()); assert_eq!(logs[0].topics.len(), 0); - assert_eq!(current_call_frame.gas_used, U256::from(649)); + assert_eq!(current_call_frame.gas_used, 649); } #[test] @@ -3178,7 +3178,7 @@ fn log1() { assert_eq!(logs.len(), 1); assert_eq!(logs[0].data, data.to_vec()); assert_eq!(logs[0].topics, vec![H256::from_slice(&topic1)]); - assert_eq!(current_call_frame.gas_used, U256::from(1027)); + assert_eq!(current_call_frame.gas_used, 1027); } #[test] @@ -3214,7 +3214,7 @@ fn log2() { logs[0].topics, vec![H256::from_slice(&topic1), H256::from_slice(&topic2)] ); - assert_eq!(current_call_frame.gas_used, U256::from(1405)); + assert_eq!(current_call_frame.gas_used, 1405); } #[test] @@ -3257,7 +3257,7 @@ fn log3() { H256::from_slice(&topic3) ] ); - assert_eq!(current_call_frame.gas_used, U256::from(1783)); + assert_eq!(current_call_frame.gas_used, 1783); } #[test] @@ -3304,7 +3304,7 @@ fn log4() { H256::from_slice(&topic4) ] ); - assert_eq!(current_call_frame.gas_used, U256::from(2161)); + assert_eq!(current_call_frame.gas_used, 2161); } #[test] @@ -3329,7 +3329,7 @@ fn log_with_0_data_size() { assert_eq!(logs.len(), 1); assert_eq!(logs[0].data, Vec::new()); assert_eq!(logs[0].topics.len(), 0); - assert_eq!(current_call_frame.gas_used, U256::from(393)); + assert_eq!(current_call_frame.gas_used, 393); } #[test] @@ -3382,7 +3382,7 @@ fn log_with_data_in_memory_smaller_than_size() { assert_eq!(logs.len(), 1); assert_eq!(logs[0].data, data); assert_eq!(logs[0].topics.len(), 0); - assert_eq!(current_call_frame.gas_used, U256::from(649)); + assert_eq!(current_call_frame.gas_used, 649); } #[test] @@ -4257,10 +4257,7 @@ fn codecopy_op() { .unwrap(), expected_memory ); - assert_eq!( - current_call_frame.gas_used, - U256::from(9) + U256::from(3) * gas_cost::PUSHN - ); + assert_eq!(current_call_frame.gas_used, 9 + 3 * gas_cost::PUSHN); } #[test] @@ -4286,7 +4283,7 @@ fn extcodesize_existing_account() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), 23.into() ); - assert_eq!(current_call_frame.gas_used, 2603.into()); + assert_eq!(current_call_frame.gas_used, 2603); } #[test] @@ -4306,7 +4303,7 @@ fn extcodesize_non_existing_account() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), 0.into() ); - assert_eq!(current_call_frame.gas_used, 2603.into()); + assert_eq!(current_call_frame.gas_used, 2603); } #[test] @@ -4342,7 +4339,7 @@ fn extcodecopy_existing_account() { .unwrap(), vec![0x60] ); - assert_eq!(current_call_frame.gas_used, 2616.into()); + assert_eq!(current_call_frame.gas_used, 2616); } #[test] @@ -4372,7 +4369,7 @@ fn extcodecopy_non_existing_account() { .unwrap(), vec![0; size] ); - assert_eq!(current_call_frame.gas_used, 2616.into()); + assert_eq!(current_call_frame.gas_used, 2616); } #[test] @@ -4396,7 +4393,7 @@ fn extcodehash_account_with_zero_bytecode_but_not_empty() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), "c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470".into() ); - assert_eq!(current_call_frame.gas_used, 2603.into()); + assert_eq!(current_call_frame.gas_used, 2603); } #[test] @@ -4417,7 +4414,7 @@ fn extcodehash_non_existing_account() { vm.current_call_frame_mut().unwrap().stack.pop().unwrap(), U256::zero() ); - assert_eq!(current_call_frame.gas_used, 2603.into()); + assert_eq!(current_call_frame.gas_used, 2603); } #[test] @@ -4492,15 +4489,15 @@ fn recover_test() { let calldata = hex::decode("456e9aea5e197a1f1af7a3e85a3212fa4049a3ba34c2289b4c860fc0b0c64ef3000000000000000000000000000000000000000000000000000000000000001c9242685bf161793cc25603c231bc2f568eb630ea16aa137d2664ac80388256084f8ae3bd7535248d0bd448298cc2e2071e56992d0774dc340c368ae950852ada").unwrap(); let calldata = Bytes::from(calldata); - let mut consumed_gas = U256::zero(); - let result = ecrecover(&calldata, 10000.into(), &mut consumed_gas).unwrap(); + let mut consumed_gas = 0; + let result = ecrecover(&calldata, 10000, &mut consumed_gas).unwrap(); let expected_result = Bytes::from( hex::decode("0000000000000000000000007156526fbd7a3c72969b54f64e42c10fbb768c8a").unwrap(), ); assert_eq!(result, expected_result); - assert_eq!(consumed_gas, ECRECOVER_COST.into()); + assert_eq!(consumed_gas, ECRECOVER_COST); } #[test] @@ -4508,18 +4505,15 @@ fn sha2_256_test() { let calldata = hex::decode("ff").unwrap(); let calldata = Bytes::from(calldata); - let mut consumed_gas = U256::zero(); - let result = sha2_256(&calldata, 10000.into(), &mut consumed_gas).unwrap(); + let mut consumed_gas = 0; + let result = sha2_256(&calldata, 10000, &mut consumed_gas).unwrap(); let expected_result = Bytes::from( hex::decode("a8100ae6aa1940d0b663bb31cd466142ebbdbd5187131b92d93818987832eb89").unwrap(), ); assert_eq!(result, expected_result); - assert_eq!( - consumed_gas, - (SHA2_256_STATIC_COST + SHA2_256_DYNAMIC_BASE).into() - ); + assert_eq!(consumed_gas, (SHA2_256_STATIC_COST + SHA2_256_DYNAMIC_BASE)); } #[test] @@ -4527,8 +4521,8 @@ fn ripemd_160_test() { let calldata = hex::decode("ff").unwrap(); let calldata = Bytes::from(calldata); - let mut consumed_gas = U256::zero(); - let result = ripemd_160(&calldata, 10000.into(), &mut consumed_gas).unwrap(); + let mut consumed_gas = 0; + let result = ripemd_160(&calldata, 10000, &mut consumed_gas).unwrap(); let expected_result = Bytes::from( hex::decode("0000000000000000000000002c0c45d3ecab80fe060e5f1d7057cd2f8de5e557").unwrap(), @@ -4537,6 +4531,6 @@ fn ripemd_160_test() { assert_eq!(result, expected_result); assert_eq!( consumed_gas, - (RIPEMD_160_STATIC_COST + RIPEMD_160_DYNAMIC_BASE).into() + (RIPEMD_160_STATIC_COST + RIPEMD_160_DYNAMIC_BASE) ); } diff --git a/crates/vm/vm.rs b/crates/vm/vm.rs index 00a6f07a1..c2940edc3 100644 --- a/crates/vm/vm.rs +++ b/crates/vm/vm.rs @@ -169,8 +169,8 @@ cfg_if::cfg_if! { let env = Environment { origin: tx.sender(), - refunded_gas: U256::zero(), - gas_limit: tx.gas_limit().into(), + refunded_gas: 0, + gas_limit: tx.gas_limit(), block_number: block_header.number.into(), coinbase: block_header.coinbase, timestamp: block_header.timestamp.into(), @@ -184,7 +184,7 @@ cfg_if::cfg_if! { tx_max_priority_fee_per_gas: tx.max_priority_fee().map(U256::from), tx_max_fee_per_gas: tx.max_fee_per_gas().map(U256::from), tx_max_fee_per_blob_gas: tx.max_fee_per_blob_gas().map(U256::from), - block_gas_limit: block_header.gas_limit.into(), + block_gas_limit: block_header.gas_limit, transient_storage: HashMap::new(), }; From 588e54f3ba9df976ed8d00c3d9abacd40027c134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jerem=C3=ADas=20Salom=C3=B3n?= <48994069+JereSalo@users.noreply.github.com> Date: Fri, 20 Dec 2024 21:20:10 -0300 Subject: [PATCH 19/26] fix(levm): fix logs address (#1554) **Motivation** **Description** In [execution specs](https://ethereum.github.io/execution-specs/src/ethereum/cancun/vm/instructions/log.py.html) the address logged is the current executing account. Closes #issue_number --- crates/vm/levm/src/opcode_handlers/logging.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/vm/levm/src/opcode_handlers/logging.rs b/crates/vm/levm/src/opcode_handlers/logging.rs index 9ba7e2504..ed6df2552 100644 --- a/crates/vm/levm/src/opcode_handlers/logging.rs +++ b/crates/vm/levm/src/opcode_handlers/logging.rs @@ -49,7 +49,7 @@ impl VM { )?; let log = Log { - address: current_call_frame.msg_sender, // Should change the addr if we are on a Call/Create transaction (Call should be the contract we are calling, Create should be the original caller) + address: current_call_frame.to, topics, data: Bytes::from( memory::load_range(&mut current_call_frame.memory, offset, size)?.to_vec(), From 53c082957c26bc0c20b135b0d89150d730ca75d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jerem=C3=ADas=20Salom=C3=B3n?= <48994069+JereSalo@users.noreply.github.com> Date: Fri, 20 Dec 2024 22:05:06 -0300 Subject: [PATCH 20/26] fix(levm): fix interaction with cache and db (#1531) **Motivation** **Description** TLDR: We don't want to interact directly with the db without consulting before with the cache. This won't fix nor break tests because in every EFTest we send the cache empty, but it is a necessary fix for executing multiple transactions within a block. As a side effect we have to move contract creation and insertion to cache to `transact()`, so that we can revert if address is already occupied. Idea: - Move contract creation and insertion to cache to `transact()`, not to `new()`. - This is because we really want to check if the contract already exists both in the cache and in the db, and if when you want to create it you see that it already exists in one of those 2 there you revert. Currently we only check it in the db but the tests work because they test only one transaction each, so the cache always starts empty. - The idea is to stop using `db.get_account_info()` in the `VM::new()`, we want to query the cache first and then the DB. For this we have the `get_account()` method in VM, but in `VM::new()` it doesn't work because there is no vm created yet. The idea is to grab that behavior and take it to a `get_account(address, mut cache, db)` function that has the same behavior as now. The VM get_account method can be a handrail to call this, which does `get_account(address, self.cache, self.db)`. Additional Changes: - Remove unnecessary stuff in `VM::new()` - Remove receiver account every time a transaction reverts, independently of it's type. Closes #issue_number --- crates/vm/levm/src/vm.rs | 104 ++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 62 deletions(-) diff --git a/crates/vm/levm/src/vm.rs b/crates/vm/levm/src/vm.rs index a40780931..846d98a05 100644 --- a/crates/vm/levm/src/vm.rs +++ b/crates/vm/levm/src/vm.rs @@ -158,20 +158,14 @@ impl VM { TxKind::Call(address_to) => { default_touched_accounts.insert(address_to); - // add address_to to cache - let recipient_account_info = db.get_account_info(address_to); - cache::insert_account( - &mut cache, - address_to, - Account::from(recipient_account_info.clone()), - ); + let bytecode = get_account(&mut cache, &db, address_to).info.bytecode; // CALL tx let initial_call_frame = CallFrame::new( env.origin, address_to, address_to, - recipient_account_info.bytecode, + bytecode, value, calldata.clone(), false, @@ -201,26 +195,14 @@ impl VM { TxKind::Create => { // CREATE tx - let new_contract_address = - VM::calculate_create_address(env.origin, db.get_account_info(env.origin).nonce) - .map_err(|_| { - VMError::Internal(InternalError::CouldNotComputeCreateAddress) - })?; + let sender_nonce = get_account(&mut cache, &db, env.origin).info.nonce; + let new_contract_address = VM::calculate_create_address(env.origin, sender_nonce) + .map_err(|_| { + VMError::Internal(InternalError::CouldNotComputeCreateAddress) + })?; default_touched_accounts.insert(new_contract_address); - // Since we are in a CREATE transaction, we need to check if the address is already occupied. - // If it is, we should not continue with the transaction. We will handle the revert in the next step. - let new_account = db.get_account_info(new_contract_address); - let balance = value - .checked_add(new_account.balance) - .ok_or(VMError::BalanceOverflow)?; - - if !new_account.has_code() && !new_account.has_nonce() { - let created_contract = Account::new(balance, Bytes::new(), 1, HashMap::new()); - cache::insert_account(&mut cache, new_contract_address, created_contract); - } - let initial_call_frame = CallFrame::new( env.origin, new_contract_address, @@ -871,10 +853,8 @@ impl VM { // 1. Undo value transfer if the transaction was reverted if let TxResult::Revert(_) = report.result { - // msg_value was not increased in the receiver account when is a create transaction. - if !self.is_create() { - self.decrease_account_balance(receiver_address, initial_call_frame.msg_value)?; - } + // We remove the receiver account from the cache, like nothing changed in it's state. + remove_account(&mut self.cache, &receiver_address); self.increase_account_balance(sender_address, initial_call_frame.msg_value)?; } @@ -939,21 +919,28 @@ impl VM { self.prepare_execution(&mut initial_call_frame)?; - // The transaction should be reverted if: - // - The transaction is a CREATE transaction and - // - The address is already in the database and - // - The address is not empty + // In CREATE type transactions: + // Add created contract to cache, reverting transaction if the address is already occupied if self.is_create() { - let new_address_acc = self.db.get_account_info(initial_call_frame.to); - if new_address_acc.has_code() || new_address_acc.has_nonce() { + let new_contract_address = initial_call_frame.to; + let new_account = self.get_account(new_contract_address); + + let value = initial_call_frame.msg_value; + let balance = new_account + .info + .balance + .checked_add(value) + .ok_or(InternalError::ArithmeticOperationOverflow)?; + + if new_account.has_code_or_nonce() { return self.handle_create_non_empty_account(&initial_call_frame); } + + let created_contract = Account::new(balance, Bytes::new(), 1, HashMap::new()); + cache::insert_account(&mut self.cache, new_contract_address, created_contract); } let mut report = self.execute(&mut initial_call_frame)?; - if self.is_create() && !report.is_success() { - remove_account(&mut self.cache, &initial_call_frame.to); - } self.post_execution_changes(&initial_call_frame, &mut report)?; // There shouldn't be any errors here but I don't know what the desired behavior is if something goes wrong. @@ -1038,18 +1025,6 @@ impl VM { Ok(()) } - pub fn cache_from_db(&mut self, address: Address) { - let acc_info = self.db.get_account_info(address); - cache::insert_account( - &mut self.cache, - address, - Account { - info: acc_info.clone(), - storage: HashMap::new(), - }, - ); - } - /// Accesses to an account's information. /// /// Accessed accounts are stored in the `touched_accounts` set. @@ -1199,18 +1174,7 @@ impl VM { /// Gets account, first checking the cache and then the database (caching in the second case) pub fn get_account(&mut self, address: Address) -> Account { - match cache::get_account(&self.cache, &address) { - Some(acc) => acc.clone(), - None => { - let account_info = self.db.get_account_info(address); - let account = Account { - info: account_info, - storage: HashMap::new(), - }; - cache::insert_account(&mut self.cache, address, account.clone()); - account - } - } + get_account(&mut self.cache, &self.db, address) } fn handle_create_non_empty_account( @@ -1251,3 +1215,19 @@ fn get_number_of_topics(op: Opcode) -> Result { Ok(number_of_topics) } + +/// Gets account, first checking the cache and then the database (caching in the second case) +pub fn get_account(cache: &mut CacheDB, db: &Arc, address: Address) -> Account { + match cache::get_account(cache, &address) { + Some(acc) => acc.clone(), + None => { + let account_info = db.get_account_info(address); + let account = Account { + info: account_info, + storage: HashMap::new(), + }; + cache::insert_account(cache, address, account.clone()); + account + } + } +} From 3465a1e819742e0bd2cbe6e4dcc48de1fee401dc Mon Sep 17 00:00:00 2001 From: Maximo Palopoli <96491141+maximopalopoli@users.noreply.github.com> Date: Mon, 23 Dec 2024 09:19:36 -0300 Subject: [PATCH 21/26] feat(levm): more precompiles implementation (#1522) **Motivation** The goal is to implement some of the remaining precompiles. **Description** The precompiles implemented in this PR are `identity` and `modexp`. There are around 100 tests not passing from folder `eip198_modexp_precompile`, but those are not Cancun or Shangai tests, but older. --------- Co-authored-by: ilitteri --- Cargo.lock | 1 + crates/vm/levm/Cargo.toml | 1 + crates/vm/levm/src/gas_cost.rs | 82 +++++++------- crates/vm/levm/src/precompiles.rs | 170 +++++++++++++++++++++++++----- crates/vm/levm/tests/tests.rs | 52 ++++++++- 5 files changed, 231 insertions(+), 75 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 524fc8aee..a2417a7c4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2191,6 +2191,7 @@ dependencies = [ "hex", "keccak-hash 0.11.0", "libsecp256k1", + "num-bigint 0.4.6", "ripemd", "serde", "serde_json", diff --git a/crates/vm/levm/Cargo.toml b/crates/vm/levm/Cargo.toml index b6494e5d5..cb4ad6571 100644 --- a/crates/vm/levm/Cargo.toml +++ b/crates/vm/levm/Cargo.toml @@ -18,6 +18,7 @@ thiserror = "2.0.3" libsecp256k1 = "0.7.1" sha2 = "0.10.8" ripemd = "0.1.3" +num-bigint = "0.4.5" [dev-dependencies] hex = "0.4.3" diff --git a/crates/vm/levm/src/gas_cost.rs b/crates/vm/levm/src/gas_cost.rs index be2ec78d2..7faadcae0 100644 --- a/crates/vm/levm/src/gas_cost.rs +++ b/crates/vm/levm/src/gas_cost.rs @@ -7,6 +7,7 @@ use crate::{ use bytes::Bytes; /// Contains the gas costs of the EVM instructions use ethrex_core::U256; +use num_bigint::BigUint; // Opcodes cost pub const STOP: u64 = 0; @@ -176,8 +177,7 @@ pub const RIPEMD_160_DYNAMIC_BASE: u64 = 120; pub const IDENTITY_STATIC_COST: u64 = 15; pub const IDENTITY_DYNAMIC_BASE: u64 = 3; -pub const MODEXP_STATIC_COST: u64 = 0; -pub const MODEXP_DYNAMIC_BASE: u64 = 200; +pub const MODEXP_STATIC_COST: u64 = 200; pub const MODEXP_DYNAMIC_QUOTIENT: u64 = 3; pub fn exp(exponent: U256) -> Result { @@ -823,67 +823,59 @@ pub fn identity(data_size: usize) -> Result { } pub fn modexp( - exponent: U256, - base_size: u64, - exponent_size: u64, - modulus_size: u64, + exponent: &BigUint, + base_size: usize, + exponent_size: usize, + modulus_size: usize, ) -> Result { + let base_size: u64 = base_size + .try_into() + .map_err(|_| PrecompileError::ParsingInputError)?; + let exponent_size: u64 = exponent_size + .try_into() + .map_err(|_| PrecompileError::ParsingInputError)?; + let modulus_size: u64 = modulus_size + .try_into() + .map_err(|_| PrecompileError::ParsingInputError)?; + let max_length = base_size.max(modulus_size); let words = (max_length .checked_add(7) .ok_or(OutOfGasError::GasCostOverflow)?) - / WORD_SIZE_IN_BYTES_U64; + .checked_div(8) + .ok_or(InternalError::DivisionError)?; + let multiplication_complexity = words.checked_pow(2).ok_or(OutOfGasError::GasCostOverflow)?; - let mut iteration_count: u64 = 0; - if exponent_size <= WORD_SIZE_IN_BYTES_U64 && exponent.is_zero() { - iteration_count = 0; - } else if exponent_size <= WORD_SIZE_IN_BYTES_U64 { - iteration_count = exponent + let iteration_count = if exponent_size <= 32 && *exponent != BigUint::ZERO { + exponent .bits() .checked_sub(1) .ok_or(InternalError::ArithmeticOperationUnderflow)? - .try_into() - .map_err(|_| InternalError::ConversionError)?; - } else if exponent_size > WORD_SIZE_IN_BYTES_U64 { - iteration_count = 8u64 - .checked_mul( - exponent_size - .checked_sub(WORD_SIZE_IN_BYTES_U64) - .ok_or(InternalError::ArithmeticOperationUnderflow)?, - ) - .ok_or(InternalError::ArithmeticOperationOverflow)? - .checked_add( - (exponent - & (2usize - .checked_pow(256) - .ok_or(InternalError::ArithmeticOperationOverflow)?) - .checked_sub(1) - .ok_or(InternalError::ArithmeticOperationOverflow)? - .into()) - .bits() - .checked_sub(1) - .ok_or(InternalError::ArithmeticOperationUnderflow)? - .try_into() - .map_err(|_| InternalError::ConversionError)?, - ) - .ok_or(InternalError::ArithmeticOperationOverflow)?; - } - + } else if exponent_size > 32 { + let extra_size = (exponent_size + .checked_sub(32) + .ok_or(InternalError::ArithmeticOperationUnderflow)?) + .checked_mul(8) + .ok_or(OutOfGasError::GasCostOverflow)?; + extra_size + .checked_add(exponent.bits().max(1)) + .ok_or(OutOfGasError::GasCostOverflow)? + .checked_sub(1) + .ok_or(InternalError::ArithmeticOperationUnderflow)? + } else { + 0 + }; let calculate_iteration_count = iteration_count.max(1); - let static_gas = MODEXP_STATIC_COST; - - let dynamic_gas = MODEXP_DYNAMIC_BASE.max( + let cost = MODEXP_STATIC_COST.max( multiplication_complexity .checked_mul(calculate_iteration_count) .ok_or(OutOfGasError::GasCostOverflow)? / MODEXP_DYNAMIC_QUOTIENT, ); - Ok(static_gas - .checked_add(dynamic_gas) - .ok_or(OutOfGasError::GasCostOverflow)?) + Ok(cost) } fn precompile(data_size: usize, static_cost: u64, dynamic_base: u64) -> Result { diff --git a/crates/vm/levm/src/precompiles.rs b/crates/vm/levm/src/precompiles.rs index d793cb741..d7148d355 100644 --- a/crates/vm/levm/src/precompiles.rs +++ b/crates/vm/levm/src/precompiles.rs @@ -2,12 +2,13 @@ use bytes::Bytes; use ethrex_core::{Address, H160, U256}; use keccak_hash::keccak256; use libsecp256k1::{self, Message, RecoveryId, Signature}; +use num_bigint::BigUint; use sha3::Digest; use crate::{ call_frame::CallFrame, - errors::{InternalError, PrecompileError, VMError}, - gas_cost::{ripemd_160 as ripemd_160_cost, sha2_256 as sha2_256_cost, ECRECOVER_COST}, + errors::{InternalError, OutOfGasError, PrecompileError, VMError}, + gas_cost::{self, ECRECOVER_COST, MODEXP_STATIC_COST}, }; pub const ECRECOVER_ADDRESS: H160 = H160([ @@ -118,21 +119,19 @@ fn increase_precompile_consumed_gas( /// When slice length is less than 128, the rest is filled with zeros. If slice length is /// more than 128 the excess bytes are discarded. -fn fill_with_zeros(slice: &[u8]) -> Result<[u8; 128], VMError> { - let mut result = [0; 128]; - - let n = slice.len().min(128); - - let trimmed_slice: &[u8] = slice.get(..n).unwrap_or_default(); - - for i in 0..n { - let byte: &mut u8 = result.get_mut(i).ok_or(InternalError::SlicingError)?; - *byte = *trimmed_slice.get(i).ok_or(InternalError::SlicingError)?; +fn fill_with_zeros(calldata: &Bytes, target_len: usize) -> Result { + let mut padded_calldata = calldata.to_vec(); + if padded_calldata.len() < target_len { + let size_diff = target_len + .checked_sub(padded_calldata.len()) + .ok_or(InternalError::ArithmeticOperationUnderflow)?; + padded_calldata.extend(vec![0u8; size_diff]); } - - Ok(result) + Ok(padded_calldata.into()) } +/// ECDSA (Elliptic curve digital signature algorithm) public key recovery function. +/// Given a hash, a Signature and a recovery Id, returns the public key recovered by secp256k1 pub fn ecrecover( calldata: &Bytes, gas_for_call: u64, @@ -143,7 +142,7 @@ pub fn ecrecover( increase_precompile_consumed_gas(gas_for_call, gas_cost, consumed_gas)?; // If calldata does not reach the required length, we should fill the rest with zeros - let calldata = fill_with_zeros(calldata)?; + let calldata = fill_with_zeros(calldata, 128)?; // Parse the input elements, first as a slice of bytes and then as an specific type of the crate let hash = calldata.get(0..32).ok_or(InternalError::SlicingError)?; @@ -191,20 +190,25 @@ pub fn ecrecover( Ok(Bytes::from(output.to_vec())) } -fn identity( - _calldata: &Bytes, - _gas_for_call: u64, - _consumed_gas: &mut u64, +pub fn identity( + calldata: &Bytes, + gas_for_call: u64, + consumed_gas: &mut u64, ) -> Result { - Ok(Bytes::new()) + let gas_cost = gas_cost::identity(calldata.len())?; + + increase_precompile_consumed_gas(gas_for_call, gas_cost, consumed_gas)?; + + Ok(calldata.clone()) } +/// Returns the calldata hashed by sha2-256 algorithm pub fn sha2_256( calldata: &Bytes, gas_for_call: u64, consumed_gas: &mut u64, ) -> Result { - let gas_cost = sha2_256_cost(calldata.len())?; + let gas_cost = gas_cost::sha2_256(calldata.len())?; increase_precompile_consumed_gas(gas_for_call, gas_cost, consumed_gas)?; @@ -213,12 +217,13 @@ pub fn sha2_256( Ok(Bytes::from(result)) } +/// Returns the calldata hashed by ripemd-160 algorithm, padded by zeros at left pub fn ripemd_160( calldata: &Bytes, gas_for_call: u64, consumed_gas: &mut u64, ) -> Result { - let gas_cost = ripemd_160_cost(calldata.len())?; + let gas_cost = gas_cost::ripemd_160(calldata.len())?; increase_precompile_consumed_gas(gas_for_call, gas_cost, consumed_gas)?; @@ -232,12 +237,123 @@ pub fn ripemd_160( Ok(Bytes::from(output)) } -fn modexp( - _calldata: &Bytes, - _gas_for_call: u64, - _consumed_gas: &mut u64, +pub fn modexp( + calldata: &Bytes, + gas_for_call: u64, + consumed_gas: &mut u64, ) -> Result { - Ok(Bytes::new()) + // If calldata does not reach the required length, we should fill the rest with zeros + let calldata = fill_with_zeros(calldata, 96)?; + + let b_size: U256 = calldata + .get(0..32) + .ok_or(PrecompileError::ParsingInputError)? + .into(); + + let e_size: U256 = calldata + .get(32..64) + .ok_or(PrecompileError::ParsingInputError)? + .into(); + + let m_size: U256 = calldata + .get(64..96) + .ok_or(PrecompileError::ParsingInputError)? + .into(); + + if b_size == U256::zero() && m_size == U256::zero() { + *consumed_gas = consumed_gas + .checked_add(MODEXP_STATIC_COST) + .ok_or(OutOfGasError::ConsumedGasOverflow)?; + return Ok(Bytes::new()); + } + + // Because on some cases conversions to usize exploded before the check of the zero value could be done + let b_size = usize::try_from(b_size).map_err(|_| PrecompileError::ParsingInputError)?; + let e_size = usize::try_from(e_size).map_err(|_| PrecompileError::ParsingInputError)?; + let m_size = usize::try_from(m_size).map_err(|_| PrecompileError::ParsingInputError)?; + + let base_limit = b_size + .checked_add(96) + .ok_or(InternalError::ArithmeticOperationOverflow)?; + + let exponent_limit = e_size + .checked_add(base_limit) + .ok_or(InternalError::ArithmeticOperationOverflow)?; + + // The reason I use unwrap_or_default is to cover the case where calldata does not reach the required + // length, so then we should fill the rest with zeros. The same is done in modulus parsing + let b = get_slice_or_default(&calldata, 96, base_limit, b_size)?; + let base = BigUint::from_bytes_be(&b); + + let e = get_slice_or_default(&calldata, base_limit, exponent_limit, e_size)?; + let exponent = BigUint::from_bytes_be(&e); + + let m = match calldata.get(exponent_limit..) { + Some(m) => { + let m_extended = fill_with_zeros(&Bytes::from(m.to_vec()), m_size)?; + m_extended.get(..m_size).unwrap_or_default().to_vec() + } + None => Default::default(), + }; + let modulus = BigUint::from_bytes_be(&m); + + let gas_cost = gas_cost::modexp(&exponent, b_size, e_size, m_size)?; + increase_precompile_consumed_gas(gas_for_call, gas_cost, consumed_gas)?; + + let result = mod_exp(base, exponent, modulus); + + let res_bytes = result.to_bytes_be(); + let res_bytes = increase_left_pad(&Bytes::from(res_bytes), m_size)?; + + Ok(res_bytes.slice(..m_size)) +} + +fn get_slice_or_default( + calldata: &Bytes, + lower_limit: usize, + upper_limit: usize, + size_to_expand: usize, +) -> Result, VMError> { + match calldata.get(lower_limit..upper_limit) { + Some(e) => { + let e_extended = fill_with_zeros(&Bytes::from(e.to_vec()), size_to_expand)?; + Ok(e_extended + .get(..size_to_expand) + .unwrap_or_default() + .to_vec()) + } + None => Ok(Default::default()), + } +} + +/// I allow this clippy alert because in the code modulus could never be +/// zero because that case is covered in the if above that line +#[allow(clippy::arithmetic_side_effects)] +fn mod_exp(base: BigUint, exponent: BigUint, modulus: BigUint) -> BigUint { + if modulus == BigUint::ZERO { + BigUint::ZERO + } else if exponent == BigUint::ZERO { + BigUint::from(1_u8) % modulus + } else { + base.modpow(&exponent, &modulus) + } +} + +pub fn increase_left_pad(result: &Bytes, m_size: usize) -> Result { + let mut padded_result = vec![0u8; m_size]; + if result.len() < m_size { + let size_diff = m_size + .checked_sub(result.len()) + .ok_or(InternalError::ArithmeticOperationUnderflow)?; + padded_result + .get_mut(size_diff..) + .ok_or(InternalError::SlicingError)? + .copy_from_slice(result); + + Ok(padded_result.into()) + } else { + Ok(result.clone()) + } } fn ecadd(_calldata: &Bytes, _gas_for_call: u64, _consumed_gas: &mut u64) -> Result { diff --git a/crates/vm/levm/tests/tests.rs b/crates/vm/levm/tests/tests.rs index 9d279e8b8..fe4b6fa5d 100644 --- a/crates/vm/levm/tests/tests.rs +++ b/crates/vm/levm/tests/tests.rs @@ -9,12 +9,13 @@ use ethrex_levm::{ db::{cache, CacheDB, Db}, errors::{OutOfGasError, TxResult, VMError}, gas_cost::{ - self, ECRECOVER_COST, RIPEMD_160_DYNAMIC_BASE, RIPEMD_160_STATIC_COST, - SHA2_256_DYNAMIC_BASE, SHA2_256_STATIC_COST, + self, ECRECOVER_COST, IDENTITY_DYNAMIC_BASE, IDENTITY_STATIC_COST, MODEXP_STATIC_COST, + RIPEMD_160_DYNAMIC_BASE, RIPEMD_160_STATIC_COST, SHA2_256_DYNAMIC_BASE, + SHA2_256_STATIC_COST, }, memory, operations::Operation, - precompiles::{ecrecover, ripemd_160, sha2_256}, + precompiles::{ecrecover, identity, modexp, ripemd_160, sha2_256}, utils::{new_vm_with_ops, new_vm_with_ops_addr_bal_db, new_vm_with_ops_db, ops_to_bytecode}, vm::{word_to_address, Storage, VM}, Environment, @@ -4534,3 +4535,48 @@ fn ripemd_160_test() { (RIPEMD_160_STATIC_COST + RIPEMD_160_DYNAMIC_BASE) ); } + +#[test] +fn identity_test() { + let calldata = hex::decode("ff").unwrap(); + let calldata = Bytes::from(calldata); + + let mut consumed_gas = 0; + let result = identity(&calldata, 10000, &mut consumed_gas).unwrap(); + + let expected_result = Bytes::from(hex::decode("ff").unwrap()); + + assert_eq!(result, expected_result); + assert_eq!(consumed_gas, IDENTITY_STATIC_COST + IDENTITY_DYNAMIC_BASE); +} + +#[test] +fn modexp_test() { + let calldata = hex::decode("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000108090a").unwrap(); + let calldata = Bytes::from(calldata); + + let mut consumed_gas = 0; + let result = modexp(&calldata, 10000, &mut consumed_gas).unwrap(); + + let expected_result = Bytes::from(hex::decode("08").unwrap()); + + assert_eq!(result, expected_result); + assert_eq!(consumed_gas, MODEXP_STATIC_COST); +} + +#[test] +fn modexp_test_2() { + // This tests that in case of the sizes read first are bigger than the calldata len then the calldata is filled with zeros + let calldata = hex::decode("00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002003ffff80").unwrap(); + let calldata = Bytes::from(calldata); + + let mut consumed_gas = 0; + let result = modexp(&calldata, 10000, &mut consumed_gas).unwrap(); + + let expected_result = Bytes::from( + hex::decode("3b01b01ac41f2d6e917c6d6a221ce793802469026d9ab7578fa2e79e4da6aaab").unwrap(), + ); + + assert_eq!(result, expected_result); + assert_eq!(consumed_gas, MODEXP_STATIC_COST); +} From 65d846badc7354c30f75d951d6cb59324a2fa041 Mon Sep 17 00:00:00 2001 From: Maximo Palopoli <96491141+maximopalopoli@users.noreply.github.com> Date: Mon, 23 Dec 2024 10:11:20 -0300 Subject: [PATCH 22/26] feat(levm): implement precompile ecadd (#1533) **Motivation** The goal is to implement `ecadd` precompile. **Description** The EF tests related to this functionality are passing --------- Co-authored-by: ilitteri --- Cargo.lock | 12 +++ crates/vm/levm/Cargo.toml | 1 + crates/vm/levm/src/gas_cost.rs | 4 + crates/vm/levm/src/precompiles.rs | 147 +++++++++++++++++++++++++++++- crates/vm/levm/tests/tests.rs | 48 +++++++++- 5 files changed, 204 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a2417a7c4..54d4f7ef3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2190,6 +2190,7 @@ dependencies = [ "ethrex-rlp", "hex", "keccak-hash 0.11.0", + "lambdaworks-math", "libsecp256k1", "num-bigint 0.4.6", "ripemd", @@ -3534,6 +3535,17 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "lambdaworks-math" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "708d148956bcdc21ae5c432b4e20bbaa26fd68d5376a3a6c461f41095abea0ba" +dependencies = [ + "rayon", + "serde", + "serde_json", +] + [[package]] name = "lazy-regex" version = "3.3.0" diff --git a/crates/vm/levm/Cargo.toml b/crates/vm/levm/Cargo.toml index cb4ad6571..bb3036458 100644 --- a/crates/vm/levm/Cargo.toml +++ b/crates/vm/levm/Cargo.toml @@ -19,6 +19,7 @@ libsecp256k1 = "0.7.1" sha2 = "0.10.8" ripemd = "0.1.3" num-bigint = "0.4.5" +lambdaworks-math = "0.11.0" [dev-dependencies] hex = "0.4.3" diff --git a/crates/vm/levm/src/gas_cost.rs b/crates/vm/levm/src/gas_cost.rs index 7faadcae0..5fde6a53a 100644 --- a/crates/vm/levm/src/gas_cost.rs +++ b/crates/vm/levm/src/gas_cost.rs @@ -178,8 +178,12 @@ pub const IDENTITY_STATIC_COST: u64 = 15; pub const IDENTITY_DYNAMIC_BASE: u64 = 3; pub const MODEXP_STATIC_COST: u64 = 200; +pub const MODEXP_DYNAMIC_BASE: u64 = 200; pub const MODEXP_DYNAMIC_QUOTIENT: u64 = 3; +pub const ECADD_COST: u64 = 150; +pub const ECMUL_COST: u64 = 6000; + pub fn exp(exponent: U256) -> Result { let exponent_byte_size = (exponent .bits() diff --git a/crates/vm/levm/src/precompiles.rs b/crates/vm/levm/src/precompiles.rs index d7148d355..1c9412d09 100644 --- a/crates/vm/levm/src/precompiles.rs +++ b/crates/vm/levm/src/precompiles.rs @@ -1,6 +1,15 @@ use bytes::Bytes; use ethrex_core::{Address, H160, U256}; use keccak_hash::keccak256; +use lambdaworks_math::{ + cyclic_group::IsGroup, + elliptic_curve::{ + short_weierstrass::curves::bn_254::curve::{BN254Curve, BN254FieldElement}, + traits::IsEllipticCurve, + }, + traits::ByteConversion, + unsigned_integer::element, +}; use libsecp256k1::{self, Message, RecoveryId, Signature}; use num_bigint::BigUint; use sha3::Digest; @@ -8,7 +17,7 @@ use sha3::Digest; use crate::{ call_frame::CallFrame, errors::{InternalError, OutOfGasError, PrecompileError, VMError}, - gas_cost::{self, ECRECOVER_COST, MODEXP_STATIC_COST}, + gas_cost::{self, ECADD_COST, ECMUL_COST, ECRECOVER_COST, MODEXP_STATIC_COST}, }; pub const ECRECOVER_ADDRESS: H160 = H160([ @@ -356,12 +365,140 @@ pub fn increase_left_pad(result: &Bytes, m_size: usize) -> Result Result { - Ok(Bytes::new()) +pub fn ecadd( + calldata: &Bytes, + gas_for_call: u64, + consumed_gas: &mut u64, +) -> Result { + // If calldata does not reach the required length, we should fill the rest with zeros + let calldata = fill_with_zeros(calldata, 128)?; + + increase_precompile_consumed_gas(gas_for_call, ECADD_COST, consumed_gas)?; + + let first_point_x = calldata + .get(0..32) + .ok_or(PrecompileError::ParsingInputError)?; + + let first_point_y = calldata + .get(32..64) + .ok_or(PrecompileError::ParsingInputError)?; + + let second_point_x = calldata + .get(64..96) + .ok_or(PrecompileError::ParsingInputError)?; + + let second_point_y = calldata + .get(96..128) + .ok_or(PrecompileError::ParsingInputError)?; + + // If points are zero the precompile should not fail, but the conversion in + // BN254Curve::create_point_from_affine will, so we verify it before the conversion + let first_point_is_zero = U256::from_big_endian(first_point_x).is_zero() + && U256::from_big_endian(first_point_y).is_zero(); + let second_point_is_zero = U256::from_big_endian(second_point_x).is_zero() + && U256::from_big_endian(second_point_y).is_zero(); + + let first_point_x = BN254FieldElement::from_bytes_be(first_point_x) + .map_err(|_| PrecompileError::ParsingInputError)?; + let first_point_y = BN254FieldElement::from_bytes_be(first_point_y) + .map_err(|_| PrecompileError::ParsingInputError)?; + let second_point_x = BN254FieldElement::from_bytes_be(second_point_x) + .map_err(|_| PrecompileError::ParsingInputError)?; + let second_point_y = BN254FieldElement::from_bytes_be(second_point_y) + .map_err(|_| PrecompileError::ParsingInputError)?; + + if first_point_is_zero && second_point_is_zero { + // If both points are zero, return is zero + Ok(Bytes::from([0u8; 64].to_vec())) + } else if first_point_is_zero { + // If first point is zero, return is second point + let second_point = BN254Curve::create_point_from_affine(second_point_x, second_point_y) + .map_err(|_| PrecompileError::ParsingInputError)?; + let res = [ + second_point.x().to_bytes_be(), + second_point.y().to_bytes_be(), + ] + .concat(); + Ok(Bytes::from(res)) + } else if second_point_is_zero { + // If second point is zero, return is first point + let first_point = BN254Curve::create_point_from_affine(first_point_x, first_point_y) + .map_err(|_| PrecompileError::ParsingInputError)?; + let res = [first_point.x().to_bytes_be(), first_point.y().to_bytes_be()].concat(); + Ok(Bytes::from(res)) + } else { + // If none of the points is zero, return is the sum of both in the EC + let first_point = BN254Curve::create_point_from_affine(first_point_x, first_point_y) + .map_err(|_| PrecompileError::ParsingInputError)?; + let second_point = BN254Curve::create_point_from_affine(second_point_x, second_point_y) + .map_err(|_| PrecompileError::ParsingInputError)?; + let sum = first_point.operate_with(&second_point).to_affine(); + + if U256::from_big_endian(&sum.x().to_bytes_be()) == U256::zero() + || U256::from_big_endian(&sum.y().to_bytes_be()) == U256::zero() + { + Ok(Bytes::from([0u8; 64].to_vec())) + } else { + let res = [sum.x().to_bytes_be(), sum.y().to_bytes_be()].concat(); + Ok(Bytes::from(res)) + } + } } -fn ecmul(_calldata: &Bytes, _gas_for_call: u64, _consumed_gas: &mut u64) -> Result { - Ok(Bytes::new()) +pub fn ecmul( + calldata: &Bytes, + gas_for_call: u64, + consumed_gas: &mut u64, +) -> Result { + // If calldata does not reach the required length, we should fill the rest with zeros + let calldata = fill_with_zeros(calldata, 96)?; + + increase_precompile_consumed_gas(gas_for_call, ECMUL_COST, consumed_gas)?; + + let point_x = calldata + .get(0..32) + .ok_or(PrecompileError::ParsingInputError)?; + + let point_y = calldata + .get(32..64) + .ok_or(PrecompileError::ParsingInputError)?; + + let scalar = calldata + .get(64..96) + .ok_or(PrecompileError::ParsingInputError)?; + let scalar = + element::U256::from_bytes_be(scalar).map_err(|_| PrecompileError::ParsingInputError)?; + + // If point is zero the precompile should not fail, but the conversion in + // BN254Curve::create_point_from_affine will, so we verify it before the conversion + let point_is_zero = + U256::from_big_endian(point_x).is_zero() && U256::from_big_endian(point_y).is_zero(); + if point_is_zero { + return Ok(Bytes::from([0u8; 64].to_vec())); + } + + let point_x = BN254FieldElement::from_bytes_be(point_x) + .map_err(|_| PrecompileError::ParsingInputError)?; + let point_y = BN254FieldElement::from_bytes_be(point_y) + .map_err(|_| PrecompileError::ParsingInputError)?; + + let point = BN254Curve::create_point_from_affine(point_x, point_y) + .map_err(|_| PrecompileError::ParsingInputError)?; + + let zero_u256 = element::U256::from(0_u16); + if scalar.eq(&zero_u256) { + Ok(Bytes::from([0u8; 64].to_vec())) + } else { + let mul = point.operate_with_self(scalar).to_affine(); + if U256::from_big_endian(&mul.x().to_bytes_be()) == U256::zero() + || U256::from_big_endian(&mul.y().to_bytes_be()) == U256::zero() + { + Ok(Bytes::from([0u8; 64].to_vec())) + } else { + let res = [mul.x().to_bytes_be(), mul.y().to_bytes_be()].concat(); + Ok(Bytes::from(res)) + } + } } fn ecpairing( diff --git a/crates/vm/levm/tests/tests.rs b/crates/vm/levm/tests/tests.rs index fe4b6fa5d..a4b1993fa 100644 --- a/crates/vm/levm/tests/tests.rs +++ b/crates/vm/levm/tests/tests.rs @@ -9,13 +9,13 @@ use ethrex_levm::{ db::{cache, CacheDB, Db}, errors::{OutOfGasError, TxResult, VMError}, gas_cost::{ - self, ECRECOVER_COST, IDENTITY_DYNAMIC_BASE, IDENTITY_STATIC_COST, MODEXP_STATIC_COST, - RIPEMD_160_DYNAMIC_BASE, RIPEMD_160_STATIC_COST, SHA2_256_DYNAMIC_BASE, + self, ECADD_COST, ECMUL_COST, ECRECOVER_COST, IDENTITY_DYNAMIC_BASE, IDENTITY_STATIC_COST, + MODEXP_STATIC_COST, RIPEMD_160_DYNAMIC_BASE, RIPEMD_160_STATIC_COST, SHA2_256_DYNAMIC_BASE, SHA2_256_STATIC_COST, }, memory, operations::Operation, - precompiles::{ecrecover, identity, modexp, ripemd_160, sha2_256}, + precompiles::{ecadd, ecmul, ecrecover, identity, modexp, ripemd_160, sha2_256}, utils::{new_vm_with_ops, new_vm_with_ops_addr_bal_db, new_vm_with_ops_db, ops_to_bytecode}, vm::{word_to_address, Storage, VM}, Environment, @@ -4580,3 +4580,45 @@ fn modexp_test_2() { assert_eq!(result, expected_result); assert_eq!(consumed_gas, MODEXP_STATIC_COST); } +#[test] +fn ecadd_test() { + let calldata = hex::decode("0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002").unwrap(); + let calldata = Bytes::from(calldata); + + let mut consumed_gas = 0; + let result = ecadd(&calldata, 10000, &mut consumed_gas).unwrap(); + + let expected_result = Bytes::from(hex::decode("030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd315ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4").unwrap()); + + assert_eq!(result, expected_result); + assert_eq!(consumed_gas, ECADD_COST); +} + +#[test] +fn ecmul_test() { + let calldata = hex::decode("000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002").unwrap(); + let calldata = Bytes::from(calldata); + + let mut consumed_gas = 0; + let result = ecmul(&calldata, 10000, &mut consumed_gas).unwrap(); + + let expected_result = Bytes::from(hex::decode("030644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd315ed738c0e0a7c92e7845f96b2ae9c0a68a6a449e3538fc7ff3ebf7a5a18a2c4").unwrap()); + + assert_eq!(result, expected_result); + assert_eq!(consumed_gas, ECMUL_COST); +} + +#[test] +fn ecmul_test_2() { + // This tests that an infinite in one coordinate implies a zero result + let calldata = hex::decode("0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000230644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000010000000000000000000000000000000000000000000000000000000000000000").unwrap(); + let calldata = Bytes::from(calldata); + + let mut consumed_gas = 0; + let result = ecmul(&calldata, 10000, &mut consumed_gas).unwrap(); + + let expected_result = Bytes::from(hex::decode("00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000").unwrap()); + + assert_eq!(result, expected_result); + assert_eq!(consumed_gas, ECMUL_COST); +} From b9081ac9f9ca775296cfd8ee2ce6b91be801a030 Mon Sep 17 00:00:00 2001 From: LeanSerra <46695152+LeanSerra@users.noreply.github.com> Date: Mon, 23 Dec 2024 10:19:26 -0300 Subject: [PATCH 23/26] fix(levm): mcopy should resize to the biggest offset (#1558) **Motivation** There is a bug in the `MCOPY` opcode, memory is not being resized to the correct value. **Description** The `memory::try_copy_within` function has two parameters `from_offset` and `to_offset`, when resizing the memory we now use the biggest of the two values. --- crates/vm/levm/src/memory.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/vm/levm/src/memory.rs b/crates/vm/levm/src/memory.rs index a94c0d7cf..e20de3db2 100644 --- a/crates/vm/levm/src/memory.rs +++ b/crates/vm/levm/src/memory.rs @@ -139,7 +139,10 @@ pub fn try_copy_within( .map_err(|_err| VMError::VeryLargeNumber)?; try_resize( memory, - to_offset.checked_add(size).ok_or(VMError::OutOfBounds)?, + to_offset + .max(from_offset) + .checked_add(size) + .ok_or(VMError::OutOfBounds)?, )?; let mut temporary_buffer = vec![0u8; size]; From 409d22a4d7d7e3e3dd950ea25d1a54868e0f2448 Mon Sep 17 00:00:00 2001 From: Tomas Fabrizio Orsi Date: Mon, 23 Dec 2024 12:48:58 -0300 Subject: [PATCH 24/26] fix(levm): resize memory in `generic_call` before any validation (#1556) **Motivation** The `CALLCODE` operand was not resizing the memory with its new size; it was only using the new size to calculate the gas cost. This turned out to be a problem common to all the `CALL*` family of operands. **Description** Right at the beginning of `generic_call`, we now resize the memory of the current call frame. This is because, the memory should be expanded even if the caller does not have enough funds to proceed with the transaction. This comes from the test `stRandom/randomStatetest248.json`. In this test, the caller is trying to transfer `U256::MAX` to a different address. In our code, we only expand the memory IF the user has enough funds; but we should expand the memory regardless of funds. --- crates/vm/levm/src/opcode_handlers/system.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/vm/levm/src/opcode_handlers/system.rs b/crates/vm/levm/src/opcode_handlers/system.rs index 0cbcb6dda..fa06122d5 100644 --- a/crates/vm/levm/src/opcode_handlers/system.rs +++ b/crates/vm/levm/src/opcode_handlers/system.rs @@ -643,6 +643,9 @@ impl VM { // Clear callframe subreturn data current_call_frame.sub_return_data = Bytes::new(); + let calldata = + memory::load_range(&mut current_call_frame.memory, args_offset, args_size)?.to_vec(); + // 1. Validate sender has enough value let sender_account_info = self.access_account(msg_sender).0; if should_transfer_value && sender_account_info.balance < value { @@ -662,8 +665,6 @@ impl VM { } let recipient_bytecode = self.access_account(code_address).0.bytecode; - let calldata = - memory::load_range(&mut current_call_frame.memory, args_offset, args_size)?.to_vec(); // Gas Limit for the child context is capped. let gas_cap = max_message_call_gas(current_call_frame)?; let gas_limit = std::cmp::min(gas_limit, gas_cap.into()); From 5e136f4c29bcad5ff929f4b00f6c8ac8021f9fe4 Mon Sep 17 00:00:00 2001 From: Federico Borello <156438142+fborello-lambda@users.noreply.github.com> Date: Mon, 23 Dec 2024 12:56:28 -0300 Subject: [PATCH 25/26] feat(l2): multi prover foundations (#1397) **Motivation** We want to have multiple `prover_clients` with different proving systems running in parallel, then the `prover_server` should keep track of each proving system and their proofs to verify them on chain. When all the required proving systems finish to create the blocks proof, and then verified on chain, we can say that the blockchain is advancing. At the moment, just one proving system is allowed, there isn't a mechanism to keep track of many `prover_clients` with different proving systems. **Description** - Introduce a common API to access different proving systems. - Deployment and modification of contracts. - Switch between the `prover_client's` proving systems --- .github/workflows/ci_l2_prover.yaml | 20 +- Cargo.lock | 2569 +++++++++++++++-- cmd/ethrex/Cargo.toml | 4 +- cmd/ethrex_l2/src/commands/prove.rs | 4 +- cmd/ethrex_l2/src/commands/stack.rs | 2 +- crates/l2/.env.example | 18 +- crates/l2/Cargo.toml | 2 + crates/l2/Makefile | 54 +- crates/l2/contracts/deployer.rs | 230 +- .../l2/contracts/src/l1/OnChainProposer.sol | 56 +- .../src/l1/interfaces/IOnChainProposer.sol | 28 +- .../src/l1/interfaces/ISP1Verifier.sol | 25 + crates/l2/docs/README.md | 14 + crates/l2/docs/prover.md | 78 +- crates/l2/proposer/l1_committer.rs | 8 +- crates/l2/proposer/prover_server.rs | 432 ++- crates/l2/prover/Cargo.toml | 15 +- crates/l2/prover/Makefile | 37 +- crates/l2/prover/src/errors.rs | 7 + crates/l2/prover/src/lib.rs | 9 +- crates/l2/prover/src/main.rs | 29 +- crates/l2/prover/src/prover.rs | 128 +- crates/l2/prover/src/prover_client.rs | 71 +- crates/l2/prover/tests/perf_zkvm.rs | 68 +- crates/l2/prover/zkvm/interface/Cargo.toml | 7 +- crates/l2/prover/zkvm/interface/build.rs | 6 +- .../interface/{guest => risc0}/Cargo.toml | 2 +- .../prover/zkvm/{ => interface/risc0}/NOTICE | 0 .../interface/{guest => risc0}/src/main.rs | 12 +- .../l2/prover/zkvm/interface/sp1/Cargo.toml | 25 + crates/l2/prover/zkvm/interface/sp1/NOTICE | 32 + .../sp1/elf/riscv32im-succinct-zkvm-elf | Bin 0 -> 4120668 bytes .../l2/prover/zkvm/interface/sp1/src/main.rs | 59 + crates/l2/prover/zkvm/interface/src/lib.rs | 17 +- crates/l2/utils/config/errors.rs | 2 + crates/l2/utils/eth_client/mod.rs | 12 + 36 files changed, 3579 insertions(+), 503 deletions(-) create mode 100644 crates/l2/contracts/src/l1/interfaces/ISP1Verifier.sol create mode 100644 crates/l2/prover/src/errors.rs rename crates/l2/prover/zkvm/interface/{guest => risc0}/Cargo.toml (97%) rename crates/l2/prover/zkvm/{ => interface/risc0}/NOTICE (100%) rename crates/l2/prover/zkvm/interface/{guest => risc0}/src/main.rs (89%) create mode 100644 crates/l2/prover/zkvm/interface/sp1/Cargo.toml create mode 100644 crates/l2/prover/zkvm/interface/sp1/NOTICE create mode 100755 crates/l2/prover/zkvm/interface/sp1/elf/riscv32im-succinct-zkvm-elf create mode 100644 crates/l2/prover/zkvm/interface/sp1/src/main.rs diff --git a/.github/workflows/ci_l2_prover.yaml b/.github/workflows/ci_l2_prover.yaml index a45097021..b6049bddf 100644 --- a/.github/workflows/ci_l2_prover.yaml +++ b/.github/workflows/ci_l2_prover.yaml @@ -43,17 +43,29 @@ jobs: uses: dtolnay/rust-toolchain@stable # Use cargo-risczero v1.2.0 # The risc0-zkvm crate should match this version - - name: RISC-V zkVM toolchain install + - name: RISC-V RISC0 toolchain install run: | curl -L https://risczero.com/install | bash ~/.risc0/bin/rzup install ~/.risc0/bin/rzup extension install cargo-risczero v1.2.0 ~/.risc0/bin/rzup extension use cargo-risczero v1.2.0 - - name: Build prover and zkVM + - name: Build prover and RISC0's zkVM run: | cd crates/l2/prover - cargo build --release --features build_zkvm + cargo build --release --features build_risc0 - name: Test Prover Execution run: | cd crates/l2/prover - RUST_LOG=info make perf_test_proving + RUST_LOG=info make perf-risc0 + - name: RISC-V SP1 toolchain install + run: | + curl -L https://sp1.succinct.xyz | bash + ~/.sp1/bin/sp1up + - name: Build prover and SP1's zkVM + run: | + cd crates/l2/prover + cargo build --release --features build_sp1 + - name: Test Prover Execution + run: | + cd crates/l2/prover + RUST_LOG=info make perf-sp1 diff --git a/Cargo.lock b/Cargo.lock index 54d4f7ef3..f6c23cf3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + [[package]] name = "addchain" version = "0.2.0" @@ -256,7 +266,7 @@ dependencies = [ "alloy-primitives 0.8.14", "alloy-rlp", "alloy-serde", - "alloy-sol-types", + "alloy-sol-types 0.8.14", "derive_more 1.0.0", "itertools 0.13.0", "serde", @@ -288,27 +298,59 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-sol-macro" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +dependencies = [ + "alloy-sol-macro-expander 0.7.7", + "alloy-sol-macro-input 0.7.7", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.89", +] + [[package]] name = "alloy-sol-macro" version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bfd7853b65a2b4f49629ec975fee274faf6dff15ab8894c620943398ef283c0" dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", + "alloy-sol-macro-expander 0.8.14", + "alloy-sol-macro-input 0.8.14", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.89", ] +[[package]] +name = "alloy-sol-macro-expander" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +dependencies = [ + "alloy-sol-macro-input 0.7.7", + "const-hex", + "heck 0.5.0", + "indexmap 2.6.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.89", + "syn-solidity 0.7.7", + "tiny-keccak", +] + [[package]] name = "alloy-sol-macro-expander" version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82ec42f342d9a9261699f8078e57a7a4fda8aaa73c1a212ed3987080e6a9cd13" dependencies = [ - "alloy-sol-macro-input", + "alloy-sol-macro-input 0.8.14", "const-hex", "heck 0.5.0", "indexmap 2.6.0", @@ -316,10 +358,25 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.89", - "syn-solidity", + "syn-solidity 0.8.14", "tiny-keccak", ] +[[package]] +name = "alloy-sol-macro-input" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +dependencies = [ + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.89", + "syn-solidity 0.7.7", +] + [[package]] name = "alloy-sol-macro-input" version = "0.8.14" @@ -332,7 +389,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.89", - "syn-solidity", + "syn-solidity 0.8.14", ] [[package]] @@ -342,7 +399,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac17c6e89a50fb4a758012e4b409d9a0ba575228e69b539fe37d7a1bd507ca4a" dependencies = [ "serde", - "winnow", + "winnow 0.6.20", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-primitives 0.7.7", + "alloy-sol-macro 0.7.7", + "const-hex", + "serde", ] [[package]] @@ -353,7 +422,7 @@ checksum = "c9dc0fffe397aa17628160e16b89f704098bf3c9d74d5d369ebc239575936de5" dependencies = [ "alloy-json-abi", "alloy-primitives 0.8.14", - "alloy-sol-macro", + "alloy-sol-macro 0.8.14", "const-hex", "serde", ] @@ -712,6 +781,17 @@ dependencies = [ "syn 2.0.89", ] +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.1", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -772,10 +852,10 @@ dependencies = [ "axum-core", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.5.1", "hyper-util", "itoa", "matchit", @@ -805,8 +885,8 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", @@ -829,8 +909,8 @@ dependencies = [ "fastrand", "futures-util", "headers", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", "mime", "multer", @@ -853,6 +933,7 @@ dependencies = [ "miniz_oxide", "object 0.36.5", "rustc-demangle", + "serde", "windows-targets 0.52.6", ] @@ -886,6 +967,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "bincode" version = "1.3.3" @@ -905,6 +992,8 @@ dependencies = [ "cexpr", "clang-sys", "itertools 0.13.0", + "log", + "prettyplease", "proc-macro2", "quote", "regex", @@ -965,6 +1054,30 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8ee0c1824c4dea5b5f81736aff91bae041d2c07ee1192bec91054e10e3e601e" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + [[package]] name = "block" version = "0.1.6" @@ -977,7 +1090,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -986,7 +1099,20 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array", + "generic-array 0.14.7", +] + +[[package]] +name = "bls12_381" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" +dependencies = [ + "ff 0.12.1", + "group 0.12.1", + "pairing", + "rand_core 0.6.4", + "subtle", ] [[package]] @@ -1009,7 +1135,7 @@ checksum = "ce58205497760ded0e4c743bc7a7aee28da5ca29b4adb7a635bf3bee2d118ebc" dependencies = [ "duplicate", "maybe-async", - "reqwest", + "reqwest 0.12.9", "serde", "thiserror 1.0.69", ] @@ -1031,12 +1157,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" dependencies = [ "once_cell", - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.89", ] +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + [[package]] name = "bstr" version = "1.11.0" @@ -1251,7 +1387,7 @@ dependencies = [ "bitflags 1.3.2", "strsim 0.8.0", "textwrap", - "unicode-width", + "unicode-width 0.1.14", "vec_map", ] @@ -1304,6 +1440,58 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afb84c814227b90d6895e01398aee0d8033c00e7466aca416fb6a8e0eb19d8a7" +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58", + "coins-core", + "digest 0.10.7", + "hmac 0.12.1", + "k256", + "serde", + "sha2 0.10.8", + "thiserror 1.0.69", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac 0.12.1", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror 1.0.69", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58", + "digest 0.10.7", + "generic-array 0.14.7", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3", + "thiserror 1.0.69", +] + [[package]] name = "colorchoice" version = "1.0.3" @@ -1338,7 +1526,7 @@ dependencies = [ "encode_unicode", "lazy_static", "libc", - "unicode-width", + "unicode-width 0.1.14", "windows-sys 0.52.0", ] @@ -1361,6 +1549,12 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + [[package]] name = "convert_case" version = "0.4.0" @@ -1489,7 +1683,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ - "generic-array", + "generic-array 0.14.7", "rand_core 0.6.4", "subtle", "zeroize", @@ -1501,7 +1695,7 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array", + "generic-array 0.14.7", "typenum", ] @@ -1511,7 +1705,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array", + "generic-array 0.14.7", "subtle", ] @@ -1524,6 +1718,16 @@ dependencies = [ "cipher", ] +[[package]] +name = "ctrlc" +version = "3.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +dependencies = [ + "nix", + "windows-sys 0.59.0", +] + [[package]] name = "cust" version = "0.3.2" @@ -1616,6 +1820,84 @@ dependencies = [ "serde", ] +[[package]] +name = "dashu" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b3e5ac1e23ff1995ef05b912e2b012a8784506987a2651552db2c73fb3d7e0" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-macros", + "dashu-ratio", + "rustversion", +] + +[[package]] +name = "dashu-base" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b80bf6b85aa68c58ffea2ddb040109943049ce3fbdf4385d0380aef08ef289" + +[[package]] +name = "dashu-float" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85078445a8dbd2e1bd21f04a816f352db8d333643f0c9b78ca7c3d1df71063e7" +dependencies = [ + "dashu-base", + "dashu-int", + "num-modular", + "num-order", + "rustversion", + "static_assertions", +] + +[[package]] +name = "dashu-int" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee99d08031ca34a4d044efbbb21dff9b8c54bb9d8c82a189187c0651ffdb9fbf" +dependencies = [ + "cfg-if", + "dashu-base", + "num-modular", + "num-order", + "rustversion", + "static_assertions", +] + +[[package]] +name = "dashu-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93381c3ef6366766f6e9ed9cf09e4ef9dec69499baf04f0c60e70d653cf0ab10" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-ratio", + "paste", + "proc-macro2", + "quote", + "rustversion", +] + +[[package]] +name = "dashu-ratio" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e33b04dd7ce1ccf8a02a69d3419e354f2bbfdf4eb911a0b7465487248764c9" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "num-modular", + "num-order", + "rustversion", +] + [[package]] name = "datatest-stable" version = "0.2.9" @@ -1729,7 +2011,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -1826,7 +2108,7 @@ dependencies = [ "digest 0.10.7", "futures", "rand 0.8.5", - "reqwest", + "reqwest 0.12.9", "thiserror 1.0.69", "tokio", ] @@ -1928,9 +2210,9 @@ dependencies = [ "base16ct", "crypto-bigint", "digest 0.10.7", - "ff", - "generic-array", - "group", + "ff 0.13.0", + "generic-array 0.14.7", + "group 0.13.0", "hkdf", "pkcs8", "rand_core 0.6.4", @@ -1963,6 +2245,45 @@ dependencies = [ "encoding_rs", ] +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "enum-map" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" +dependencies = [ + "enum-map-derive", + "serde", +] + +[[package]] +name = "enum-map-derive" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + [[package]] name = "enumn" version = "0.1.14" @@ -2029,30 +2350,267 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5692dd7b5a1978a5aeb0ce83b7655c58ca8efdcb79d21036ea249da95afec2c6" [[package]] -name = "ethbloom" -version = "0.13.0" +name = "eth-keystore" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak", + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac 0.12.1", + "pbkdf2 0.11.0", + "rand 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "thiserror 1.0.69", + "uuid", ] [[package]] -name = "ethereum-types" -version = "0.14.1" +name = "ethabi" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types 0.12.2", - "uint 0.9.5", + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror 1.0.69", + "uint 0.9.5", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types 0.12.2", + "scale-info", + "uint 0.9.5", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-middleware", + "ethers-providers", + "ethers-signers", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "serde", + "serde_json", + "syn 2.0.89", + "toml 0.8.19", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.89", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array 0.14.7", + "k256", + "num_enum 0.7.3", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum", + "syn 2.0.89", + "tempfile", + "thiserror 1.0.69", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http 0.2.12", + "instant", + "jsonwebtoken 8.3.0", + "once_cell", + "pin-project", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + +[[package]] +name = "ethers-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror 1.0.69", + "tracing", ] [[package]] @@ -2137,9 +2695,9 @@ dependencies = [ "ethereum-types", "ethrex-rpc", "hex", - "jsonwebtoken", + "jsonwebtoken 9.3.0", "keccak-hash 0.10.0", - "reqwest", + "reqwest 0.12.9", "serde", "serde_json", "sha2 0.10.8", @@ -2164,14 +2722,15 @@ dependencies = [ "ethrex-storage", "ethrex-vm", "hex", - "jsonwebtoken", + "jsonwebtoken 9.3.0", "keccak-hash 0.10.0", "rand 0.8.5", - "reqwest", + "reqwest 0.12.9", "risc0-zkvm", "secp256k1", "serde", "serde_json", + "sp1-sdk", "thiserror 1.0.69", "tokio", "tokio-util", @@ -2246,6 +2805,8 @@ dependencies = [ "risc0-zkvm", "serde", "serde_json", + "sp1-sdk", + "thiserror 1.0.69", "tokio", "tokio-util", "tracing", @@ -2282,9 +2843,9 @@ dependencies = [ "ethrex-vm", "hex", "hex-literal", - "jsonwebtoken", + "jsonwebtoken 9.3.0", "rand 0.8.5", - "reqwest", + "reqwest 0.12.9", "serde", "serde_json", "tokio", @@ -2475,6 +3036,17 @@ dependencies = [ "bytes", ] +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "bitvec", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "ff" version = "0.13.0" @@ -2658,6 +3230,16 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + [[package]] name = "futures-macro" version = "0.3.31" @@ -2681,6 +3263,16 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + [[package]] name = "futures-util" version = "0.3.31" @@ -2699,6 +3291,21 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gcd" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" + [[package]] name = "generic-array" version = "0.14.7" @@ -2710,6 +3317,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "generic-array" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cb8bc4c28d15ade99c7e90b219f30da4be5c88e586277e8cbe886beeb868ab2" +dependencies = [ + "serde", + "typenum", +] + [[package]] name = "getrandom" version = "0.2.15" @@ -2739,6 +3356,19 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "git2" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" +dependencies = [ + "bitflags 2.6.0", + "libc", + "libgit2-sys", + "log", + "url", +] + [[package]] name = "glam" version = "0.20.5" @@ -2778,6 +3408,18 @@ dependencies = [ "walkdir", ] +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "grep-matcher" version = "0.1.7" @@ -2802,17 +3444,48 @@ dependencies = [ "memmap2", ] +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "memuse", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "group" version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff", + "ff 0.13.0", "rand_core 0.6.4", "subtle", ] +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "h2" version = "0.4.7" @@ -2824,7 +3497,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http", + "http 1.1.0", "indexmap 2.6.0", "slab", "tokio", @@ -2833,14 +3506,37 @@ dependencies = [ ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "halo2" +version = "0.1.0-beta.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" +dependencies = [ + "halo2_proofs", +] [[package]] -name = "hashbrown" -version = "0.13.2" +name = "halo2_proofs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "pasta_curves 0.4.1", + "rand_core 0.6.4", + "rayon", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ @@ -2855,6 +3551,7 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", "allocator-api2", + "serde", ] [[package]] @@ -2863,6 +3560,8 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ + "allocator-api2", + "equivalent", "foldhash", "serde", ] @@ -2876,6 +3575,15 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + [[package]] name = "headers" version = "0.4.0" @@ -2885,7 +3593,7 @@ dependencies = [ "base64 0.21.7", "bytes", "headers-core", - "http", + "http 1.1.0", "httpdate", "mime", "sha1", @@ -2897,7 +3605,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http", + "http 1.1.0", ] [[package]] @@ -2985,7 +3693,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array", + "generic-array 0.14.7", "hmac 0.8.1", ] @@ -2998,6 +3706,17 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" version = "1.1.0" @@ -3009,6 +3728,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + [[package]] name = "http-body" version = "1.0.1" @@ -3016,7 +3746,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.1.0", ] [[package]] @@ -3027,8 +3757,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -3059,6 +3789,30 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +[[package]] +name = "hyper" +version = "0.14.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "hyper" version = "1.5.1" @@ -3068,9 +3822,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2", - "http", - "http-body", + "h2 0.4.7", + "http 1.1.0", + "http-body 1.0.1", "httparse", "httpdate", "itoa", @@ -3087,8 +3841,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http", - "hyper", + "http 1.1.0", + "hyper 1.5.1", "hyper-util", "rustls", "rustls-pki-types", @@ -3098,6 +3852,19 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.31", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "hyper-tls" version = "0.6.0" @@ -3106,7 +3873,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper", + "hyper 1.5.1", "hyper-util", "native-tls", "tokio", @@ -3123,9 +3890,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http", - "http-body", - "hyper", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.5.1", "pin-project-lite", "socket2", "tokio", @@ -3389,13 +4156,26 @@ dependencies = [ "serde", ] +[[package]] +name = "indicatif" +version = "0.17.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf675b85ed934d3c67b5c5469701eec7db22689d0a2139d856e0925fa28b281" +dependencies = [ + "console", + "number_prefix", + "portable-atomic", + "unicode-width 0.2.0", + "web-time", +] + [[package]] name = "inout" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -3434,6 +4214,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.13.0" @@ -3467,6 +4256,20 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem 1.1.1", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "jsonwebtoken" version = "9.3.0" @@ -3475,13 +4278,27 @@ checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" dependencies = [ "base64 0.21.7", "js-sys", - "pem", - "ring", + "pem 3.0.4", + "ring 0.17.8", "serde", "serde_json", "simple_asn1", ] +[[package]] +name = "jubjub" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" +dependencies = [ + "bitvec", + "bls12_381", + "ff 0.12.1", + "group 0.12.1", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "k256" version = "0.13.4" @@ -3575,7 +4392,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin", + "spin 0.9.8", ] [[package]] @@ -3584,6 +4401,18 @@ version = "0.2.166" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2ccc108bbc0b1331bd061864e7cd823c0cab660bbe6970e66e2c0614decde36" +[[package]] +name = "libgit2-sys" +version = "0.17.0+1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + [[package]] name = "libloading" version = "0.8.5" @@ -3691,6 +4520,18 @@ dependencies = [ "threadpool", ] +[[package]] +name = "libz-sys" +version = "1.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -3746,6 +4587,15 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.2", +] + [[package]] name = "malloc_buf" version = "0.0.6" @@ -3817,6 +4667,12 @@ dependencies = [ "libc", ] +[[package]] +name = "memuse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2145869435ace5ea6ea3d35f59be559317ec9a0d04e1812d5f185a87b6d36f1a" + [[package]] name = "metal" version = "0.29.0" @@ -3880,11 +4736,11 @@ dependencies = [ "bytes", "encoding_rs", "futures-util", - "http", + "http 1.1.0", "httparse", "memchr", "mime", - "spin", + "spin 0.9.8", "version_check", ] @@ -3946,6 +4802,24 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "nix" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + [[package]] name = "nom" version = "7.1.3" @@ -3956,6 +4830,15 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + [[package]] name = "nu-ansi-term" version = "0.46.0" @@ -4057,6 +4940,21 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] + [[package]] name = "num-rational" version = "0.4.2" @@ -4088,6 +4986,63 @@ dependencies = [ "libc", ] +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive 0.7.3", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "nvtx" version = "1.3.0" @@ -4138,6 +5093,31 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "openssl" version = "0.10.68" @@ -4195,48 +5175,316 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] -name = "parity-scale-codec" -version = "3.7.0" +name = "p3-air" +version = "0.1.4-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" +checksum = "066f571b2e645505ed5972dd0e1e252ba03352150830c9566769ca711c0f1e9b" dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "rustversion", - "serde", + "p3-field", + "p3-matrix", ] [[package]] -name = "parity-scale-codec-derive" -version = "3.7.0" +name = "p3-baby-bear" +version = "0.1.4-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" +checksum = "ff00f571044d299310d9659c6e51c98422de3bf94b8577f7f30cf59cf2043e40" dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.89", + "num-bigint 0.4.6", + "p3-field", + "p3-mds", + "p3-poseidon2", + "p3-symmetric", + "rand 0.8.5", + "serde", ] [[package]] -name = "parking_lot" -version = "0.11.2" +name = "p3-blake3" +version = "0.1.4-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +checksum = "cc4cb69ae54a279bbbd477566d1bdb71aa879b528fd658d0fcfc36f54b00217c" dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", + "blake3", + "p3-symmetric", ] [[package]] -name = "parking_lot" -version = "0.12.3" +name = "p3-bn254-fr" +version = "0.1.4-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "bf19917f986d45e9abb6d177e875824ced6eed096480d574fce16f2c45c721ea" +dependencies = [ + "ff 0.13.0", + "num-bigint 0.4.6", + "p3-field", + "p3-poseidon2", + "p3-symmetric", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-challenger" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be7e4fbce4566a93091107eadfafa0b5374bd1ffd3e0f6b850da3ff72eb183f" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-commit" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a03eb0f99d68a712c41e658e9a7782a0705d4ffcfb6232a43bd3f1ef9591002" +dependencies = [ + "itertools 0.12.1", + "p3-challenger", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-util", + "serde", +] + +[[package]] +name = "p3-dft" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1556de968523fbe5d804ab50600ea306fcceea3500cfd7601e40882480524664" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-field" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2af6e1ac47a2035af5165e668d64612c4b9ccabd06df37fc1fd381fdf8a71" +dependencies = [ + "itertools 0.12.1", + "num-bigint 0.4.6", + "num-traits", + "p3-util", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-fri" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f351ee9f9d4256455164565cd91e3e6d2487cc2a5355515fa2b6d479269188dd" +dependencies = [ + "itertools 0.12.1", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-interpolation", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24d0f2907a374ebe4545fcff3120d6376d9630cf0bef30feedcfc5908ea2c37" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-util", +] + +[[package]] +name = "p3-keccak-air" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e66badd47cedf6570e91a0cabc389b80dfd53ba1a6e9a45a3923fd54b86122ff" +dependencies = [ + "p3-air", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-matrix" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa272f3ae77ed8d73478aa7c89e712efb15bda3ff4aff10fadfe11a012cd5389" +dependencies = [ + "itertools 0.12.1", + "p3-field", + "p3-maybe-rayon", + "p3-util", + "rand 0.8.5", + "serde", + "tracing", +] + +[[package]] +name = "p3-maybe-rayon" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eecad6292021858f282d643d9d1284ab112a200494d589863a9c4080e578ef0" +dependencies = [ + "rayon", +] + +[[package]] +name = "p3-mds" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "716c4dbe68a02f1541eb09149d07b8663a3a5951b1864a31cd67ff3bb0826e57" +dependencies = [ + "itertools 0.12.1", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-symmetric", + "p3-util", + "rand 0.8.5", +] + +[[package]] +name = "p3-merkle-tree" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad7ebab52a03c26025988663a135aed62f5084a2e2ea262176dc8748efb593e5" +dependencies = [ + "itertools 0.12.1", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-poseidon2" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c042efa15beab7a8c4d0ca9b9e4cbda7582be0c08e121e830fec45f082935b" +dependencies = [ + "gcd", + "p3-field", + "p3-mds", + "p3-symmetric", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-symmetric" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9896a831f5b688adc13f6fbe1dcf66ecfaa4622a500f81aa745610e777acb72" +dependencies = [ + "itertools 0.12.1", + "p3-field", + "serde", +] + +[[package]] +name = "p3-uni-stark" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8437ebcd060c8a5479898030b114a93da8a86eb4c2e5f313d9eeaaf40c6e6f61" +dependencies = [ + "itertools 0.12.1", + "p3-air", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-util" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dedb9d27ba47ac314c6fac4ca54e55c3e486c864d51ec5ba55dbe47b75121157" +dependencies = [ + "serde", +] + +[[package]] +name = "pairing" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" +dependencies = [ + "group 0.12.1", +] + +[[package]] +name = "parity-scale-codec" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8be4817d39f3272f69c59fe05d0535ae6456c2dc2fa1ba02910296c7e0a5c590" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "rustversion", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8781a75c6205af67215f382092b6e0a4ff3734798523e69073d4bcd294ec767b" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core 0.9.10", @@ -4278,12 +5526,70 @@ dependencies = [ "regex", ] +[[package]] +name = "pasta_curves" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "lazy_static", + "rand 0.8.5", + "static_assertions", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "lazy_static", + "rand 0.8.5", + "static_assertions", + "subtle", +] + [[package]] name = "paste" version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac 0.12.1", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + [[package]] name = "pem" version = "3.0.4" @@ -4345,6 +5651,16 @@ dependencies = [ "sha2 0.10.8", ] +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.1", +] + [[package]] name = "phf" version = "0.11.2" @@ -4383,6 +5699,26 @@ dependencies = [ "siphasher", ] +[[package]] +name = "pin-project" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + [[package]] name = "pin-project-lite" version = "0.2.15" @@ -4441,6 +5777,16 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "prettyplease" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn 2.0.89", +] + [[package]] name = "primitive-types" version = "0.12.2" @@ -4451,6 +5797,7 @@ dependencies = [ "impl-codec", "impl-rlp", "impl-serde", + "scale-info", "uint 0.9.5", ] @@ -4464,13 +5811,23 @@ dependencies = [ "uint 0.10.0", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + [[package]] name = "proc-macro-crate" version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit", + "toml_edit 0.22.22", ] [[package]] @@ -4618,7 +5975,7 @@ dependencies = [ "bytes", "getrandom", "rand 0.8.5", - "ring", + "ring 0.17.8", "rustc-hash 2.0.0", "rustls", "rustls-pki-types", @@ -4752,6 +6109,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "rayon-scan" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f87cc11a0140b4b0da0ffc889885760c61b13672d80a908920b2c0df078fa14" +dependencies = [ + "rayon", +] + [[package]] name = "rdrand" version = "0.4.0" @@ -4854,24 +6220,20 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.9" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ - "base64 0.22.1", + "base64 0.21.7", "bytes", "encoding_rs", - "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.31", + "hyper-tls 0.5.0", "ipnet", "js-sys", "log", @@ -4880,29 +6242,88 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "quinn", - "rustls", - "rustls-pemfile", - "rustls-pki-types", + "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", - "system-configuration", + "sync_wrapper 0.1.2", + "system-configuration 0.5.1", "tokio", "tokio-native-tls", - "tokio-rustls", - "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", "web-sys", - "webpki-roots", + "winreg", +] + +[[package]] +name = "reqwest" +version = "0.12.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.4.7", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.5.1", + "hyper-rustls", + "hyper-tls 0.6.0", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "system-configuration 0.6.1", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", "windows-registry", ] +[[package]] +name = "reqwest-middleware" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" +dependencies = [ + "anyhow", + "async-trait", + "http 1.1.0", + "reqwest 0.12.9", + "serde", + "thiserror 1.0.69", + "tower-service", +] + [[package]] name = "revm" version = "9.0.0" @@ -4942,7 +6363,7 @@ dependencies = [ "alloy-primitives 0.8.14", "alloy-rpc-types-eth", "alloy-rpc-types-trace", - "alloy-sol-types", + "alloy-sol-types 0.8.14", "anstyle", "colorchoice", "revm 14.0.3", @@ -5068,6 +6489,21 @@ dependencies = [ "subtle", ] +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + [[package]] name = "ring" version = "0.17.8" @@ -5078,8 +6514,8 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin", - "untrusted", + "spin 0.9.8", + "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -5290,7 +6726,7 @@ dependencies = [ "cfg-if", "cust", "digest 0.10.7", - "ff", + "ff 0.13.0", "hex", "hex-literal", "metal", @@ -5369,9 +6805,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", + "rlp-derive", "rustc-hex", ] +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rrs-lib" version = "0.1.0" @@ -5382,6 +6830,17 @@ dependencies = [ "paste", ] +[[package]] +name = "rrs-succinct" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" +dependencies = [ + "downcast-rs", + "num_enum 0.5.11", + "paste", +] + [[package]] name = "ruint" version = "1.12.3" @@ -5474,13 +6933,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" dependencies = [ "once_cell", - "ring", + "ring 0.17.8", "rustls-pki-types", "rustls-webpki", "subtle", "zeroize", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -5505,9 +6973,9 @@ version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring", + "ring 0.17.8", "rustls-pki-types", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -5545,6 +7013,15 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + [[package]] name = "same-file" version = "1.0.6" @@ -5554,6 +7031,39 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scale-info" +version = "2.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" +dependencies = [ + "cfg-if", + "derive_more 1.0.0", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.89", +] + +[[package]] +name = "scc" +version = "2.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66b202022bb57c049555430e11fc22fea12909276a80a4c3d368da36ac1d88ed" +dependencies = [ + "sdd", +] + [[package]] name = "schannel" version = "0.1.27" @@ -5569,6 +7079,24 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac 0.12.1", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + +[[package]] +name = "sdd" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49c1eeaf4b6a87c7479688c6d52b9f1153cedd3c489300564f932b065c6eab95" + [[package]] name = "sealed" version = "0.5.0" @@ -5589,7 +7117,7 @@ checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", "der", - "generic-array", + "generic-array 0.14.7", "pkcs8", "subtle", "zeroize", @@ -5664,6 +7192,18 @@ dependencies = [ "pest", ] +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.215" @@ -5758,6 +7298,31 @@ dependencies = [ "syn 2.0.89", ] +[[package]] +name = "serial_test" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" +dependencies = [ + "futures", + "log", + "once_cell", + "parking_lot 0.12.3", + "scc", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.89", +] + [[package]] name = "sha1" version = "0.10.6" @@ -5878,45 +7443,476 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] -name = "slab" -version = "0.4.9" +name = "size" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slug" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" +dependencies = [ + "deunicode", + "wasm-bindgen", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "snowbridge-amcl" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" +dependencies = [ + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "sp1-build" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e58e5f49cf1481363abb74b55104e215f3b6e58dc2adb748bde7a6e4ea61b51d" +dependencies = [ + "anyhow", + "cargo_metadata", + "chrono", + "clap 4.5.21", + "dirs 5.0.1", +] + +[[package]] +name = "sp1-core-executor" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8324d09601526d2ddfb796efb24996d3cc33ea8802bbd085bdefe93a4989b4dd" +dependencies = [ + "bincode", + "bytemuck", + "elf", + "enum-map", + "eyre", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "log", + "nohash-hasher", + "num", + "p3-field", + "p3-maybe-rayon", + "rand 0.8.5", + "rrs-succinct", + "serde", + "sp1-curves", + "sp1-primitives", + "sp1-stark", + "strum", + "strum_macros", + "thiserror 1.0.69", + "tiny-keccak", + "tracing", + "typenum", + "vec_map", +] + +[[package]] +name = "sp1-core-machine" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357af5138c7a591d1a612d105d75c1c01cad0ed6cc383d1ae38b7254e85ea227" +dependencies = [ + "bincode", + "cfg-if", + "elliptic-curve", + "generic-array 1.1.1", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "k256", + "log", + "num", + "num_cpus", + "p3-air", + "p3-baby-bear", + "p3-blake3", + "p3-challenger", + "p3-field", + "p3-keccak-air", + "p3-matrix", + "p3-maybe-rayon", + "p3-uni-stark", + "p3-util", + "rand 0.8.5", + "serde", + "size", + "snowbridge-amcl", + "sp1-core-executor", + "sp1-curves", + "sp1-derive", + "sp1-primitives", + "sp1-stark", + "static_assertions", + "strum", + "strum_macros", + "tempfile", + "thiserror 1.0.69", + "tracing", + "tracing-forest", + "tracing-subscriber 0.3.18", + "typenum", + "web-time", +] + +[[package]] +name = "sp1-cuda" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "553339106b2c30fe9faa32ac9cf03a4c9e6410bd6c4c1c740678f6dbb82f2fe5" +dependencies = [ + "bincode", + "ctrlc", + "prost", + "serde", + "sp1-core-machine", + "sp1-prover", + "tokio", + "tracing", + "twirp-rs", +] + +[[package]] +name = "sp1-curves" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd206bc1fc44b7a215be0ae17c9b79e25ecfc2774dcd4e3753c0a03dee784e" +dependencies = [ + "cfg-if", + "dashu", + "elliptic-curve", + "generic-array 1.1.1", + "itertools 0.13.0", + "k256", + "num", + "p3-field", + "serde", + "snowbridge-amcl", + "sp1-primitives", + "sp1-stark", + "typenum", +] + +[[package]] +name = "sp1-derive" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf59bbd55ee20f0decb602809aadc73f09defb6f6d27067acf16029e84191b4a" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-primitives" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d10c2078a5dfc5c3a632da1bc59b57a19dadc9c03968047d8ffb06c0f83b476" +dependencies = [ + "bincode", + "hex", + "lazy_static", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-field", + "p3-poseidon2", + "p3-symmetric", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "sp1-prover" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc363eda811717369513ca72abafbb5cdec0ed16cda12458ca5321e4167e97ff" +dependencies = [ + "anyhow", + "bincode", + "clap 4.5.21", + "dirs 5.0.1", + "eyre", + "itertools 0.13.0", + "lazy_static", + "lru", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-symmetric", + "rayon", + "reqwest 0.11.27", + "serde", + "serde_json", + "serial_test", + "sp1-core-executor", + "sp1-core-machine", + "sp1-primitives", + "sp1-recursion-circuit", + "sp1-recursion-compiler", + "sp1-recursion-core", + "sp1-recursion-gnark-ffi", + "sp1-stark", + "subtle-encoding", + "tempfile", + "thiserror 1.0.69", + "tracing", + "tracing-subscriber 0.3.18", +] + +[[package]] +name = "sp1-recursion-circuit" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "108607ce729ab2fedb25f039284baaad022c5df242e0530c5b453e89cc8306a3" +dependencies = [ + "hashbrown 0.14.5", + "itertools 0.13.0", + "num-traits", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-symmetric", + "p3-util", + "rand 0.8.5", + "rayon", + "serde", + "sp1-core-executor", + "sp1-core-machine", + "sp1-derive", + "sp1-primitives", + "sp1-recursion-compiler", + "sp1-recursion-core", + "sp1-recursion-gnark-ffi", + "sp1-stark", + "tracing", +] + +[[package]] +name = "sp1-recursion-compiler" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673d2c66a48e6d17e1165b5ea38b59de5e80bf64fd45f17ebc9d75e67c4ff414" +dependencies = [ + "backtrace", + "itertools 0.13.0", + "p3-baby-bear", + "p3-bn254-fr", + "p3-field", + "p3-symmetric", + "serde", + "sp1-core-machine", + "sp1-primitives", + "sp1-recursion-core", + "sp1-recursion-derive", + "sp1-stark", + "tracing", + "vec_map", +] + +[[package]] +name = "sp1-recursion-core" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fb84b20d8ffb922d4c05843406c458a6abef296bc31e68cf5eb64fa739c921" +dependencies = [ + "backtrace", + "ff 0.13.0", + "hashbrown 0.14.5", + "itertools 0.13.0", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "serde", + "sp1-core-machine", + "sp1-derive", + "sp1-primitives", + "sp1-stark", + "static_assertions", + "thiserror 1.0.69", + "tracing", + "vec_map", + "zkhash", +] + +[[package]] +name = "sp1-recursion-derive" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +checksum = "3125726165ff77fb2650ae031075ba747099a6e218e5c10f84ac2715545a2332" dependencies = [ - "autocfg", + "quote", + "syn 1.0.109", ] [[package]] -name = "slug" -version = "0.1.6" +name = "sp1-recursion-gnark-ffi" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" +checksum = "a049cdff6b64bc1cd2bebdf494fd314bc4b45eff9058ea69dace55a0fa77e483" dependencies = [ - "deunicode", - "wasm-bindgen", + "anyhow", + "bincode", + "bindgen", + "cc", + "cfg-if", + "hex", + "log", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-field", + "p3-symmetric", + "serde", + "serde_json", + "sha2 0.10.8", + "sp1-core-machine", + "sp1-recursion-compiler", + "sp1-stark", + "tempfile", ] [[package]] -name = "smallvec" -version = "1.13.2" +name = "sp1-sdk" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "ae8dfb448a10491096db03187af55b8334ac52303c280956d0782a9fe78dd814" +dependencies = [ + "alloy-sol-types 0.7.7", + "anyhow", + "async-trait", + "bincode", + "cfg-if", + "dirs 5.0.1", + "ethers", + "futures", + "hashbrown 0.14.5", + "hex", + "indicatif", + "itertools 0.13.0", + "log", + "p3-baby-bear", + "p3-field", + "p3-fri", + "prost", + "reqwest 0.12.9", + "reqwest-middleware", + "serde", + "sp1-core-executor", + "sp1-core-machine", + "sp1-cuda", + "sp1-primitives", + "sp1-prover", + "sp1-stark", + "strum", + "strum_macros", + "tempfile", + "thiserror 1.0.69", + "tokio", + "tracing", + "twirp-rs", + "vergen", +] [[package]] -name = "snap" -version = "1.1.1" +name = "sp1-stark" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" +checksum = "a597ed68cd03f80d9cdb9f4b50924e3c890c35c39956f7e87dd2262b72b2d12b" +dependencies = [ + "arrayref", + "getrandom", + "hashbrown 0.14.5", + "itertools 0.13.0", + "num-traits", + "p3-air", + "p3-baby-bear", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-uni-stark", + "p3-util", + "rayon-scan", + "serde", + "sp1-derive", + "sp1-primitives", + "strum", + "strum_macros", + "sysinfo", + "thiserror 1.0.69", + "tracing", +] [[package]] -name = "socket2" -version = "0.5.8" +name = "spin" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spin" @@ -5994,6 +7990,22 @@ name = "strum" version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.89", +] [[package]] name = "substrate-bn" @@ -6014,6 +8026,15 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + [[package]] name = "syn" version = "1.0.109" @@ -6036,6 +8057,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn-solidity" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.89", +] + [[package]] name = "syn-solidity" version = "0.8.14" @@ -6074,6 +8107,32 @@ dependencies = [ "syn 2.0.89", ] +[[package]] +name = "sysinfo" +version = "0.30.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "rayon", + "windows", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys 0.5.0", +] + [[package]] name = "system-configuration" version = "0.6.1" @@ -6082,7 +8141,17 @@ checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.6.0", "core-foundation", - "system-configuration-sys", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] @@ -6171,7 +8240,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width", + "unicode-width 0.1.14", ] [[package]] @@ -6241,7 +8310,9 @@ checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", + "libc", "num-conv", + "num_threads", "powerfmt", "serde", "time-core", @@ -6409,7 +8480,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.22.22", ] [[package]] @@ -6421,6 +8492,17 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.6.0", + "toml_datetime", + "winnow 0.5.40", +] + [[package]] name = "toml_edit" version = "0.22.22" @@ -6431,7 +8513,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.20", ] [[package]] @@ -6495,6 +8577,29 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-forest" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" +dependencies = [ + "ansi_term", + "smallvec", + "thiserror 1.0.69", + "tracing", + "tracing-subscriber 0.3.18", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "tracing-log" version = "0.2.0" @@ -6539,6 +8644,28 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "twirp-rs" +version = "0.13.0-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27dfcc06b8d9262bc2d4b8d1847c56af9971a52dd8a0076876de9db763227d0d" +dependencies = [ + "async-trait", + "axum", + "futures", + "http 1.1.0", + "http-body-util", + "hyper 1.5.1", + "prost", + "reqwest 0.12.9", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tower", + "url", +] + [[package]] name = "twox-hash" version = "1.6.3" @@ -6683,12 +8810,24 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "unicode-width" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" + [[package]] name = "unicode-xid" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "untrusted" version = "0.9.0" @@ -6724,6 +8863,16 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + [[package]] name = "valuable" version = "0.1.0" @@ -6741,6 +8890,9 @@ name = "vec_map" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +dependencies = [ + "serde", +] [[package]] name = "vek" @@ -6754,6 +8906,19 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "vergen" +version = "8.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" +dependencies = [ + "anyhow", + "cfg-if", + "git2", + "rustversion", + "time", +] + [[package]] name = "version_check" version = "0.9.5" @@ -6958,6 +9123,16 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.52.0" @@ -7145,6 +9320,15 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" version = "0.6.20" @@ -7154,6 +9338,16 @@ dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "winsafe" version = "0.0.19" @@ -7172,6 +9366,25 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.1", + "send_wrapper 0.6.0", + "thiserror 1.0.69", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wyz" version = "0.5.1" @@ -7306,6 +9519,33 @@ dependencies = [ "zopfli", ] +[[package]] +name = "zkhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4352d1081da6922701401cdd4cbf29a2723feb4cfabb5771f6fee8e9276da1c7" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "bitvec", + "blake2", + "bls12_381", + "byteorder", + "cfg-if", + "group 0.12.1", + "group 0.13.0", + "halo2", + "hex", + "jubjub", + "lazy_static", + "pasta_curves 0.5.1", + "rand 0.8.5", + "serde", + "sha2 0.10.8", + "sha3", + "subtle", +] + [[package]] name = "zkvm_interface" version = "0.1.0" @@ -7318,6 +9558,7 @@ dependencies = [ "risc0-build", "serde", "serde_with", + "sp1-build", "thiserror 1.0.69", ] diff --git a/cmd/ethrex/Cargo.toml b/cmd/ethrex/Cargo.toml index 27303b318..d32c516c8 100644 --- a/cmd/ethrex/Cargo.toml +++ b/cmd/ethrex/Cargo.toml @@ -13,7 +13,7 @@ ethrex-net.workspace = true ethrex-storage = { workspace = true, optional = true } ethrex-vm.workspace = true ethrex-rlp.workspace = true -ethrex-l2.workspace = true +ethrex-l2 = { workspace = true, optional = true } bytes.workspace = true hex.workspace = true @@ -44,5 +44,5 @@ default = ["dep:ethrex-storage", "libmdbx"] dev = ["dep:ethrex-dev"] libmdbx = ["dep:libmdbx", "ethrex-storage/libmdbx"] redb = ["dep:redb", "ethrex-storage/redb"] -l2 = ["ethrex-vm/l2"] +l2 = ["dep:ethrex-l2", "ethrex-vm/l2"] levm = ["ethrex-vm/levm", "ethrex-blockchain/levm"] diff --git a/cmd/ethrex_l2/src/commands/prove.rs b/cmd/ethrex_l2/src/commands/prove.rs index 9a6480c78..12fa233f7 100644 --- a/cmd/ethrex_l2/src/commands/prove.rs +++ b/cmd/ethrex_l2/src/commands/prove.rs @@ -1,6 +1,6 @@ use clap::Args; use ethrex_l2::utils::test_data_io::{generate_program_input, read_chain_file, read_genesis_file}; -use ethrex_prover_lib::prover::Prover; +use ethrex_prover_lib::prover::create_prover; #[derive(Args)] pub(crate) struct Command { @@ -30,7 +30,7 @@ impl Command { let chain = read_chain_file(&self.chain); let program_input = generate_program_input(genesis, chain, self.block_number)?; - let mut prover = Prover::new(); + let mut prover = create_prover(ethrex_l2::proposer::prover_server::ProverType::RISC0); prover.prove(program_input).expect("proving failed"); println!( "Total gas consumption: {}", diff --git a/cmd/ethrex_l2/src/commands/stack.rs b/cmd/ethrex_l2/src/commands/stack.rs index 567708e02..ed7428194 100644 --- a/cmd/ethrex_l2/src/commands/stack.rs +++ b/cmd/ethrex_l2/src/commands/stack.rs @@ -291,7 +291,7 @@ async fn start_l2(root: PathBuf, l2_rpc_url: &str, start_prover: bool) -> eyre:: .arg("run") .arg("--release") .arg("--features") - .arg("build_zkvm") + .arg("build_risc0") .arg("--bin") .arg("ethrex_prover") .current_dir(root_clone) diff --git a/crates/l2/.env.example b/crates/l2/.env.example index df1d1693d..f2dcbe0d0 100644 --- a/crates/l2/.env.example +++ b/crates/l2/.env.example @@ -1,11 +1,16 @@ ETH_RPC_URL=http://localhost:8545 # If set to 0xAA skip proof verification. # Only use in dev mode. -DEPLOYER_CONTRACT_VERIFIER=0x00000000000000000000000000000000000000AA -# Risc0Groth16Verifier Sepolia Address -# DEPLOYER_CONTRACT_VERIFIER=0xd9b0d07CeCd808a8172F21fA7C97992168f045CA -# Risc0Groth16Verifier Holesky Address -# DEPLOYER_CONTRACT_VERIFIER=0x44c220f0598345195cE99AD6A57aDfFcb9Ea33e7 +DEPLOYER_RISC0_CONTRACT_VERIFIER=0x00000000000000000000000000000000000000AA +# Risc0Groth16Verifier Address +# DEPLOYER_RISC0_CONTRACT_VERIFIER=0xAC292cF957Dd5BA174cdA13b05C16aFC71700327 +# If set to 0xAA skip proof verification. +# Only use in dev mode. +DEPLOYER_SP1_CONTRACT_VERIFIER=0x00000000000000000000000000000000000000AA +# SP1Groth16Verifier Address +# DEPLOYER_SP1_CONTRACT_VERIFIER=0x397A5f7f3dBd538f23DE225B51f532c34448dA9B +# If DEPLOYER_SP1_CONTRACT_VERIFIER was already deployed, set to false +DEPLOYER_SP1_DEPLOY_VERIFIER=false DEPLOYER_ADDRESS=0x3d1e15a1a55578f7c920884a9943b3b35d0d885b DEPLOYER_PRIVATE_KEY=0x385c546456b6a603a1cfcaa9ec9494ba4832da08dd6bcf4de9a71e4a01b74924 # If set to false, the salt will be randomized. @@ -38,3 +43,6 @@ PROPOSER_COINBASE_ADDRESS=0x0007a881CD95B1484fca47615B64803dad620C8d # 1/true means fake proofs # The RISC0_DEV_MODE=1 should only be used with DEPLOYER_CONTRACT_VERIFIER=0xAA RISC0_DEV_MODE=1 +# mock means fake proofs +# local means real proofs +SP1_PROVER=mock diff --git a/crates/l2/Cargo.toml b/crates/l2/Cargo.toml index 95d57fd95..8bdd28b00 100644 --- a/crates/l2/Cargo.toml +++ b/crates/l2/Cargo.toml @@ -30,6 +30,8 @@ thiserror.workspace = true zkvm_interface = { path = "./prover/zkvm/interface/", default-features = false } # risc0 risc0-zkvm = { version = "1.2.0" } +# sp1 +sp1-sdk = { version = "3.4.0" } [dev-dependencies] ethrex-sdk = { path = "./sdk" } diff --git a/crates/l2/Makefile b/crates/l2/Makefile index 344157131..52365e321 100644 --- a/crates/l2/Makefile +++ b/crates/l2/Makefile @@ -1,10 +1,11 @@ .DEFAULT_GOAL := help -.PHONY: help init down clean init-local-l1 down-local-l1 clean-local-l1 init-l2 down-l2 deploy-l1 deploy-block-executor deploy-inbox setup-prover test ci_test update-cli-contracts - L2_GENESIS_FILE_PATH=../../test_data/genesis-l2.json L1_GENESIS_FILE_PATH=../../test_data/genesis-l1.json +# Basic +.PHONY: help init down clean restart + help: ## 📚 Show help for each of the Makefile recipes @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' @@ -16,9 +17,22 @@ clean: clean-contract-deps ## 🧹 Cleans the localnet restart: restart-local-l1 deploy-l1 restart-l2 ## 🔄 Restarts the localnet +# CLI +.PHONY: cli update-cli-contracts + cli: ## 🛠️ Installs the L2 Lambda ethrex CLI cargo install --path ${ethrex_PATH}/cmd/ethrex_l2/ --force +update-cli-contracts: ## 📜 Update the CLI's config contracts + @if [ -z "$$C" ]; then \ + echo "Error: CONFIG_NAME (C) is missing.\nPlease provide it as an argument:\nmake update-cli-contracts C=."; \ + exit 1; \ + fi && \ + CB=$$(grep 'L1_WATCHER_BRIDGE_ADDRESS' .env | cut -d= -f2) && \ + ethrex_l2 config edit --common-bridge $$CB $$C && \ + OP=$$(grep 'COMMITTER_ON_CHAIN_PROPOSER_ADDRESS' .env | cut -d= -f2) && \ + ethrex_l2 config edit --on-chain-proposer $$OP $$C + # Variables ethrex_PATH=$(shell pwd)/../.. @@ -39,6 +53,7 @@ L1_AUTH_PORT=8551 L2_AUTH_PORT=8552 # Local L1 +.PHONY: init-local-l1 init-l1 down-local-l1 restart-local-l1 rm-db-l1 init-local-l1: ## 🚀 Initializes an L1 Lambda ethrex Client with Docker (Used with make init) docker compose -f ${ethrex_DEV_DOCKER_COMPOSE_PATH} up -d @@ -57,10 +72,11 @@ down-local-l1: ## 🛑 Shuts down the L1 Lambda ethrex Client restart-local-l1: down-local-l1 init-local-l1 ## 🔄 Restarts the L1 Lambda ethrex Client -rm_db_l1: ## 🛑 Removes the DB used by the L1 +rm-db-l1: ## 🛑 Removes the DB used by the L1 cargo run --release --manifest-path ../../Cargo.toml --bin ethrex -- removedb --datadir ${ethrex_L1_DEV_LIBMDBX} # Contracts +PHONY: clean-contract-deps restart-contract-deps deploy-l1 clean-contract-deps: ## 🧹 Cleans the dependencies for the L1 contracts. rm -rf contracts/solc_out @@ -72,6 +88,7 @@ deploy-l1: ## 📜 Deploys the L1 contracts DEPLOYER_CONTRACTS_PATH=contracts cargo run --release --bin ethrex_l2_l1_deployer --manifest-path ${ethrex_L2_CONTRACTS_PATH}/Cargo.toml # L2 +PHONY: init-l2 down-l2 restart-l2 init-prover rm-db-l2 init-l2: ## 🚀 Initializes an L2 Lambda ethrex Client cargo run --release --manifest-path ../../Cargo.toml --bin ethrex --features l2 -- \ @@ -86,26 +103,27 @@ down-l2: ## 🛑 Shuts down the L2 Lambda ethrex Client restart-l2: down-l2 init-l2 ## 🔄 Restarts the L2 Lambda ethrex Client -init-l2-prover: ## 🚀 Initializes the Prover - cargo run --release --features build_zkvm --manifest-path ../../Cargo.toml --bin ethrex_prover +init-prover: ## 🚀 Initializes the Prover + @if [ -z "$$T" ]; then \ + echo "Error: ProverType (T) is missing."; \ + echo "Please provide it as an argument:"; \ + echo "make init-prover T= ."; \ + echo "The prover can also be run with GPU (G)"; \ + exit 1; \ + fi; \ -init-l2-prover-gpu: ## 🚀 Initializes the Prover with GPU support - cargo run --release --features "build_zkvm,gpu" --manifest-path ../../Cargo.toml --bin ethrex_prover + @if [ -z "$$G" ]; then \ + GPU=""; \ + else \ + GPU=",gpu"; \ + fi; \ + cargo run --release --features "build_$$T$$GPU" --manifest-path ../../Cargo.toml --bin ethrex_prover -- $$T -rm_db_l2: ## 🛑 Removes the DB used by the L2 +rm-db-l2: ## 🛑 Removes the DB used by the L2 cargo run --release --manifest-path ../../Cargo.toml --bin ethrex -- removedb --datadir ${ethrex_L2_DEV_LIBMDBX} -update-cli-contracts: ## 📜 Update the CLI's config contracts - @if [ -z "$$C" ]; then \ - echo "Error: CONFIG_NAME (C) is missing.\nPlease provide it as an argument:\nmake update-cli-contracts C=."; \ - exit 1; \ - fi && \ - CB=$$(grep 'L1_WATCHER_BRIDGE_ADDRESS' .env | cut -d= -f2) && \ - ethrex_l2 config edit --common-bridge $$CB $$C && \ - OP=$$(grep 'COMMITTER_ON_CHAIN_PROPOSER_ADDRESS' .env | cut -d= -f2) && \ - ethrex_l2 config edit --on-chain-proposer $$OP $$C - # Testing +PHONY: ci_test test ci_test: ## 🚧 Runs the L2's integration test, used by the github's CI docker compose -f ${ethrex_L2_DOCKER_COMPOSE_PATH} down diff --git a/crates/l2/contracts/deployer.rs b/crates/l2/contracts/deployer.rs index 80d94d753..6e1358b0c 100644 --- a/crates/l2/contracts/deployer.rs +++ b/crates/l2/contracts/deployer.rs @@ -22,9 +22,11 @@ struct SetupResult { deployer_private_key: SecretKey, committer_address: Address, verifier_address: Address, - contract_verifier_address: Address, + risc0_contract_verifier_address: Address, eth_client: EthClient, contracts_path: PathBuf, + sp1_contract_verifier_address: Address, + sp1_deploy_verifier_on_l1: bool, } #[derive(Debug, thiserror::Error)] @@ -65,14 +67,20 @@ async fn main() -> Result<(), DeployError> { download_contract_deps(&setup_result.contracts_path)?; compile_contracts(&setup_result.contracts_path)?; - let (on_chain_proposer, bridge_address) = deploy_contracts( + let (on_chain_proposer, bridge_address, sp1_verifier_address) = deploy_contracts( setup_result.deployer_address, setup_result.deployer_private_key, &setup_result.eth_client, &setup_result.contracts_path, + setup_result.sp1_deploy_verifier_on_l1, ) .await?; + let sp1_contract_verifier_address = match sp1_verifier_address { + Some(address) => address, + None => setup_result.sp1_contract_verifier_address, + }; + initialize_contracts( setup_result.deployer_address, setup_result.deployer_private_key, @@ -80,7 +88,8 @@ async fn main() -> Result<(), DeployError> { setup_result.verifier_address, on_chain_proposer, bridge_address, - setup_result.contract_verifier_address, + setup_result.risc0_contract_verifier_address, + sp1_contract_verifier_address, &setup_result.eth_client, ) .await?; @@ -99,6 +108,9 @@ async fn main() -> Result<(), DeployError> { "L1_WATCHER_BRIDGE_ADDRESS" => { format!("{envar}={bridge_address:#x}") } + "DEPLOYER_SP1_CONTRACT_VERIFIER" => { + format!("{envar}={sp1_contract_verifier_address:#x}") + } _ => line, }; } @@ -162,15 +174,30 @@ fn setup() -> Result { ))); } }; - let contract_verifier_address = parse_env_var("DEPLOYER_CONTRACT_VERIFIER")?; + let risc0_contract_verifier_address = parse_env_var("DEPLOYER_RISC0_CONTRACT_VERIFIER")?; + + let input = std::env::var("DEPLOYER_SP1_DEPLOY_VERIFIER").unwrap_or("false".to_owned()); + let sp1_deploy_verifier_on_l1 = match input.trim().to_lowercase().as_str() { + "true" | "1" => true, + "false" | "0" => false, + _ => { + return Err(DeployError::ParseError(format!( + "Invalid boolean string: {input}" + ))); + } + }; + let sp1_contract_verifier_address = parse_env_var("DEPLOYER_SP1_CONTRACT_VERIFIER")?; + Ok(SetupResult { deployer_address, deployer_private_key, committer_address, verifier_address, - contract_verifier_address, + risc0_contract_verifier_address, eth_client, contracts_path, + sp1_deploy_verifier_on_l1, + sp1_contract_verifier_address, }) } @@ -201,6 +228,20 @@ fn download_contract_deps(contracts_path: &Path) -> Result<(), DeployError> { .map_err(|err| DeployError::DependencyError(format!("Failed to spawn git: {err}")))? .wait() .map_err(|err| DeployError::DependencyError(format!("Failed to wait for git: {err}")))?; + + Command::new("git") + .arg("clone") + .arg("https://github.com/succinctlabs/sp1-contracts.git") + .arg( + contracts_path + .join("lib/sp1-contracts") + .to_str() + .ok_or(DeployError::FailedToGetStringFromPath)?, + ) + .spawn() + .map_err(|err| DeployError::DependencyError(format!("Failed to spawn git: {err}")))? + .wait() + .map_err(|err| DeployError::DependencyError(format!("Failed to wait for git: {err}")))?; Ok(()) } @@ -271,6 +312,39 @@ fn compile_contracts(contracts_path: &Path) -> Result<(), DeployError> { "Failed to compile CommonBridge.sol".to_owned(), )); } + + if !Command::new("solc") + .arg("--bin") + .arg( + contracts_path + .join("lib/sp1-contracts/contracts/src/v3.0.0/SP1VerifierGroth16.sol") + .to_str() + .ok_or(DeployError::FailedToGetStringFromPath)?, + ) + .arg("-o") + .arg( + contracts_path + .join("solc_out") + .to_str() + .ok_or(DeployError::FailedToGetStringFromPath)?, + ) + .arg("--overwrite") + .arg("--allow-paths") + .arg( + contracts_path + .to_str() + .ok_or(DeployError::FailedToGetStringFromPath)?, + ) + .spawn() + .map_err(|err| DeployError::CompilationError(format!("Failed to spawn solc: {err}")))? + .wait() + .map_err(|err| DeployError::CompilationError(format!("Failed to wait for solc: {err}")))? + .success() + { + return Err(DeployError::CompilationError( + "Failed to compile SP1VerifierGroth16.sol".to_owned(), + )); + } Ok(()) } @@ -279,7 +353,8 @@ async fn deploy_contracts( deployer_private_key: SecretKey, eth_client: &EthClient, contracts_path: &Path, -) -> Result<(Address, Address), DeployError> { + deploy_verifier: bool, +) -> Result<(Address, Address, Option
), DeployError> { let deploy_frames = spinner!(["📭❱❱", "❱📬❱", "❱❱📫"], 220); let mut spinner = Spinner::new( @@ -288,46 +363,74 @@ async fn deploy_contracts( Color::Cyan, ); - let (on_chain_proposer_deployment_tx_hash, on_chain_proposer_address) = - deploy_on_chain_proposer(deployer, deployer_private_key, eth_client, contracts_path) - .await?; + let (on_chain_proposer_deployment_tx_hash, on_chain_proposer_address) = deploy_contract( + deployer, + deployer_private_key, + eth_client, + &contracts_path.join("solc_out/OnChainProposer.bin"), + ) + .await?; let msg = format!( - "OnChainProposer:\n\tDeployed at address {} with tx hash {}", + "OnChainProposer:\n\tDeployed at address {}\n\tWith tx hash {}", format!("{on_chain_proposer_address:#x}").bright_green(), format!("{on_chain_proposer_deployment_tx_hash:#x}").bright_cyan() ); spinner.success(&msg); - let mut spinner = Spinner::new(deploy_frames, "Deploying CommonBridge", Color::Cyan); - let (bridge_deployment_tx_hash, bridge_address) = - deploy_bridge(deployer, deployer_private_key, eth_client, contracts_path).await?; + let mut spinner = Spinner::new(deploy_frames.clone(), "Deploying CommonBridge", Color::Cyan); + let (bridge_deployment_tx_hash, bridge_address) = deploy_bridge( + deployer, + deployer_private_key, + eth_client, + &contracts_path.join("solc_out/CommonBridge.bin"), + ) + .await?; let msg = format!( - "CommonBridge:\n\tDeployed at address {} with tx hash {}", + "CommonBridge:\n\tDeployed at address {}\n\tWith tx hash {}", format!("{bridge_address:#x}").bright_green(), format!("{bridge_deployment_tx_hash:#x}").bright_cyan(), ); spinner.success(&msg); - Ok((on_chain_proposer_address, bridge_address)) + let sp1_verifier_address = if deploy_verifier { + let mut spinner = Spinner::new(deploy_frames, "Deploying SP1Verifier", Color::Cyan); + let (verifier_deployment_tx_hash, sp1_verifier_address) = deploy_contract( + deployer, + deployer_private_key, + eth_client, + &contracts_path.join("solc_out/SP1Verifier.bin"), + ) + .await?; + + let msg = format!( + "SP1Groth16Verifier:\n\tDeployed at address {}\n\tWith tx hash {}", + format!("{sp1_verifier_address:#x}").bright_green(), + format!("{verifier_deployment_tx_hash:#x}").bright_cyan(), + ); + spinner.success(&msg); + Some(sp1_verifier_address) + } else { + None + }; + + Ok(( + on_chain_proposer_address, + bridge_address, + sp1_verifier_address, + )) } -async fn deploy_on_chain_proposer( +async fn deploy_contract( deployer: Address, deployer_private_key: SecretKey, eth_client: &EthClient, - contracts_path: &Path, + contract_path: &Path, ) -> Result<(H256, Address), DeployError> { - let on_chain_proposer_init_code = hex::decode( - std::fs::read_to_string(contracts_path.join("solc_out/OnChainProposer.bin")).map_err( - |err| { - DeployError::DecodingError(format!( - "Failed to read on_chain_proposer_init_code: {err}" - )) - }, - )?, - ) + let init_code = hex::decode(std::fs::read_to_string(contract_path).map_err(|err| { + DeployError::DecodingError(format!("Failed to read on_chain_proposer_init_code: {err}")) + })?) .map_err(|err| { DeployError::DecodingError(format!( "Failed to decode on_chain_proposer_init_code: {err}" @@ -335,32 +438,27 @@ async fn deploy_on_chain_proposer( })? .into(); - let (deploy_tx_hash, on_chain_proposer) = create2_deploy( - deployer, - deployer_private_key, - &on_chain_proposer_init_code, - eth_client, - ) - .await - .map_err(DeployError::from)?; + let (deploy_tx_hash, contract_address) = + create2_deploy(deployer, deployer_private_key, &init_code, eth_client) + .await + .map_err(DeployError::from)?; - Ok((deploy_tx_hash, on_chain_proposer)) + Ok((deploy_tx_hash, contract_address)) } async fn deploy_bridge( deployer: Address, deployer_private_key: SecretKey, eth_client: &EthClient, - contracts_path: &Path, + contract_path: &Path, ) -> Result<(H256, Address), DeployError> { - let mut bridge_init_code = hex::decode( - std::fs::read_to_string(contracts_path.join("solc_out/CommonBridge.bin")).map_err( - |err| DeployError::DecodingError(format!("Failed to read bridge_init_code: {err}")), - )?, - ) - .map_err(|err| { - DeployError::DecodingError(format!("Failed to decode bridge_init_code: {err}")) - })?; + let mut bridge_init_code = + hex::decode(std::fs::read_to_string(contract_path).map_err(|err| { + DeployError::DecodingError(format!("Failed to read bridge_init_code: {err}")) + })?) + .map_err(|err| { + DeployError::DecodingError(format!("Failed to decode bridge_init_code: {err}")) + })?; let encoded_owner = { let offset = 32 - deployer.as_bytes().len() % 32; @@ -448,7 +546,8 @@ async fn initialize_contracts( verifier: Address, on_chain_proposer: Address, bridge: Address, - contract_verifier_address: Address, + risc0_verifier_address: Address, + sp1_verifier_address: Address, eth_client: &EthClient, ) -> Result<(), DeployError> { let initialize_frames = spinner!(["🪄❱❱", "❱🪄❱", "❱❱🪄"], 200); @@ -462,7 +561,8 @@ async fn initialize_contracts( let initialize_tx_hash = initialize_on_chain_proposer( on_chain_proposer, bridge, - contract_verifier_address, + risc0_verifier_address, + sp1_verifier_address, deployer, deployer_private_key, committer, @@ -503,20 +603,22 @@ async fn initialize_contracts( async fn initialize_on_chain_proposer( on_chain_proposer: Address, bridge: Address, - contract_verifier_address: Address, + risc0_verifier_address: Address, + sp1_verifier_address: Address, deployer: Address, deployer_private_key: SecretKey, committer: Address, verifier: Address, eth_client: &EthClient, ) -> Result { - let on_chain_proposer_initialize_selector = keccak(b"initialize(address,address,address[])") - .as_bytes() - .get(..4) - .ok_or(DeployError::DecodingError( - "Failed to get initialize selector".to_owned(), - ))? - .to_vec(); + let on_chain_proposer_initialize_selector = + keccak(b"initialize(address,address,address,address[])") + .as_bytes() + .get(..4) + .ok_or(DeployError::DecodingError( + "Failed to get initialize selector".to_owned(), + ))? + .to_vec(); let encoded_bridge = { let offset = 32 - bridge.as_bytes().len() % 32; let mut encoded_bridge = vec![0; offset]; @@ -524,10 +626,17 @@ async fn initialize_on_chain_proposer( encoded_bridge }; - let encoded_contract_verifier = { - let offset = 32 - contract_verifier_address.as_bytes().len() % 32; + let encoded_risc0_contract_verifier = { + let offset = 32 - risc0_verifier_address.as_bytes().len() % 32; let mut encoded_contract_verifier = vec![0; offset]; - encoded_contract_verifier.extend_from_slice(contract_verifier_address.as_bytes()); + encoded_contract_verifier.extend_from_slice(risc0_verifier_address.as_bytes()); + encoded_contract_verifier + }; + + let encoded_sp1_contract_verifier = { + let offset = 32 - sp1_verifier_address.as_bytes().len() % 32; + let mut encoded_contract_verifier = vec![0; offset]; + encoded_contract_verifier.extend_from_slice(sp1_verifier_address.as_bytes()); encoded_contract_verifier }; @@ -535,10 +644,12 @@ async fn initialize_on_chain_proposer( on_chain_proposer_initialization_calldata .extend_from_slice(&on_chain_proposer_initialize_selector); on_chain_proposer_initialization_calldata.extend_from_slice(&encoded_bridge); - on_chain_proposer_initialization_calldata.extend_from_slice(&encoded_contract_verifier); + on_chain_proposer_initialization_calldata.extend_from_slice(&encoded_risc0_contract_verifier); + on_chain_proposer_initialization_calldata.extend_from_slice(&encoded_sp1_contract_verifier); let mut encoded_offset = [0; 32]; - U256::from(32 * 3).to_big_endian(&mut encoded_offset); + // offset of 3 addresses before the address[] + address[] + U256::from(32 * (3 + 1)).to_big_endian(&mut encoded_offset); on_chain_proposer_initialization_calldata.extend_from_slice(&encoded_offset); let mut allowed_addresses = [0; 32]; U256::from(2).to_big_endian(&mut allowed_addresses); @@ -563,7 +674,6 @@ async fn initialize_on_chain_proposer( .await?; wait_for_transaction_receipt(initialize_tx_hash, eth_client).await?; - Ok(initialize_tx_hash) } diff --git a/crates/l2/contracts/src/l1/OnChainProposer.sol b/crates/l2/contracts/src/l1/OnChainProposer.sol index f4f204072..22725841a 100644 --- a/crates/l2/contracts/src/l1/OnChainProposer.sol +++ b/crates/l2/contracts/src/l1/OnChainProposer.sol @@ -7,6 +7,7 @@ import "./interfaces/IOnChainProposer.sol"; import {CommonBridge} from "./CommonBridge.sol"; import {ICommonBridge} from "./interfaces/ICommonBridge.sol"; import {IRiscZeroVerifier} from "./interfaces/IRiscZeroVerifier.sol"; +import {ISP1Verifier} from "./interfaces/ISP1Verifier.sol"; /// @title OnChainProposer contract. /// @author LambdaClass @@ -34,18 +35,26 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { /// @dev All blocks with a block number less than or equal to `lastCommittedBlock` are considered committed. /// @dev Blocks with a block number greater than `lastCommittedBlock` have not been committed yet. /// @dev This is crucial for ensuring that only subsequents blocks are committed in the contract. - /// @dev In the initialize function, `lastCommittedBlock` is set to u64::MAX == 0xFFFFFFFFFFFFFFFF, this value is used to allow the block 0 to be committed. uint256 public lastCommittedBlock; + /// @notice The next block to commit. + /// @dev This variable holds the block number of the next block to commit. + /// @dev `nextBlockToCommit` should be equal to `lastCommittedBlock` + 1. + /// @dev Only the block with the block number equal to `nextBlockToCommit` will be committed. + /// @dev This variable is called by the `l1_committer.rs`. + uint256 public nextBlockToCommit; + /// @dev The sequencer addresses that are authorized to commit and verify blocks. mapping(address _authorizedAddress => bool) public authorizedSequencerAddresses; address public BRIDGE; address public R0VERIFIER; + address public SP1VERIFIER; /// @notice Address used to avoid the verification process. - /// @dev If the `R0VERIFIER` contract address is set to this address, the verification process will not happen. + /// @dev If the `R0VERIFIER` or the `SP1VERIFIER` contract address is set to this address, + /// the verification process will not happen. /// @dev Used only in dev mode. address public constant DEV_MODE = address(0xAA); @@ -61,8 +70,10 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { function initialize( address bridge, address r0verifier, + address sp1verifier, address[] calldata sequencerAddresses ) public nonReentrant { + // Set the CommonBridge address require( BRIDGE == address(0), "OnChainProposer: contract already initialized" @@ -77,6 +88,7 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { ); BRIDGE = bridge; + // Set the Risc0Groth16Verifier address require( R0VERIFIER == address(0), "OnChainProposer: contract already initialized" @@ -91,11 +103,24 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { ); R0VERIFIER = r0verifier; + // Set the SP1Groth16Verifier address + require( + SP1VERIFIER == address(0), + "OnChainProposer: contract already initialized" + ); + require( + sp1verifier != address(0), + "OnChainProposer: sp1verifier is the zero address" + ); + require( + sp1verifier != address(this), + "OnChainProposer: sp1verifier is the contract address" + ); + SP1VERIFIER = sp1verifier; + for (uint256 i = 0; i < sequencerAddresses.length; i++) { authorizedSequencerAddresses[sequencerAddresses[i]] = true; } - - lastCommittedBlock = 0xFFFFFFFFFFFFFFFF; } /// @inheritdoc IOnChainProposer @@ -106,9 +131,11 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { bytes32 depositLogs ) external override onlySequencer { require( - blockNumber == lastCommittedBlock + 1 || - (blockNumber == 0 && lastCommittedBlock == 0xFFFFFFFFFFFFFFFF), - "OnChainProposer: blockNumber is not the immediate succesor of lastCommittedBlock" + blockNumber == nextBlockToCommit || + (blockNumber == 0 && + lastCommittedBlock == 0 && + nextBlockToCommit == 0), + "OnChainProposer: blockNumber is not the immediate successor of lastCommittedBlock" ); require( blockCommitments[blockNumber].commitmentHash == bytes32(0), @@ -135,6 +162,7 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { depositLogs ); lastCommittedBlock = blockNumber; + nextBlockToCommit = blockNumber + 1; emit BlockCommitted(commitment); } @@ -148,7 +176,10 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { uint256 blockNumber, bytes calldata blockProof, bytes32 imageId, - bytes32 journalDigest + bytes32 journalDigest, + bytes32 programVKey, + bytes calldata publicValues, + bytes calldata proofBytes ) external override onlySequencer { require( blockNumber == lastVerifiedBlock + 1, @@ -169,6 +200,15 @@ contract OnChainProposer is IOnChainProposer, ReentrancyGuard { ); } + if (SP1VERIFIER != DEV_MODE) { + // If the verification fails, it will revert. + ISP1Verifier(SP1VERIFIER).verifyProof( + programVKey, + publicValues, + proofBytes + ); + } + lastVerifiedBlock = blockNumber; // The first 2 bytes are the number of deposits. uint16 deposits_amount = uint16( diff --git a/crates/l2/contracts/src/l1/interfaces/IOnChainProposer.sol b/crates/l2/contracts/src/l1/interfaces/IOnChainProposer.sol index ef31a4a43..13f3ee600 100644 --- a/crates/l2/contracts/src/l1/interfaces/IOnChainProposer.sol +++ b/crates/l2/contracts/src/l1/interfaces/IOnChainProposer.sol @@ -6,10 +6,17 @@ pragma solidity ^0.8.27; /// @notice A OnChainProposer contract ensures the advancement of the L2. It is used /// by the proposer to commit blocks and verify block proofs. interface IOnChainProposer { - /// @notice The latest commited block number. + /// @notice The latest committed block number. + /// @return The latest committed block number as a uint256. function lastCommittedBlock() external view returns (uint256); - /// @notice The latest verified block number + /// @notice The next block number to commit. + /// @dev This value should be equal to `lastCommittedBlock() + 1`. + /// @return The next block number to commit as a uint256. + function nextBlockToCommit() external view returns (uint256); + + /// @notice The latest verified block number. + /// @return The latest verified block number as a uint256. function lastVerifiedBlock() external view returns (uint256); /// @notice A block has been committed. @@ -25,7 +32,13 @@ interface IOnChainProposer { /// @dev It sets the bridge address. /// @param bridge the address of the bridge contract. /// @param r0verifier the address of the risc0 groth16 verifier. - function initialize(address bridge, address r0verifier, address[] calldata sequencerAddress) external; + /// @param sp1verifier the address of the sp1 groth16 verifier. + function initialize( + address bridge, + address r0verifier, + address sp1verifier, + address[] calldata sequencerAddress + ) external; /// @notice Commits to an L2 block. /// @dev Committing to an L2 block means to store the block's commitment @@ -49,10 +62,17 @@ interface IOnChainProposer { /// @param blockProof is the proof of the block to be verified. /// @param imageId Digest of the zkVM imageid. /// @param journalDigest Digest of the public_inputs aka journal + /// ---------------------------------------------------------------------- + /// @param programVKey Public verifying key + /// @param publicValues Values used to perform the execution + /// @param proofBytes Groth16 proof function verify( uint256 blockNumber, bytes calldata blockProof, bytes32 imageId, - bytes32 journalDigest + bytes32 journalDigest, + bytes32 programVKey, + bytes calldata publicValues, + bytes calldata proofBytes ) external; } diff --git a/crates/l2/contracts/src/l1/interfaces/ISP1Verifier.sol b/crates/l2/contracts/src/l1/interfaces/ISP1Verifier.sol new file mode 100644 index 000000000..beb0143b4 --- /dev/null +++ b/crates/l2/contracts/src/l1/interfaces/ISP1Verifier.sol @@ -0,0 +1,25 @@ +// From: https://github.com/succinctlabs/sp1-contracts/blob/65a1d96b720ffa2e6d167fb62527c9c8a534abbe/contracts/src/ISP1Verifier.sol +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +/// @title SP1 Verifier Interface +/// @author Succinct Labs +/// @notice This contract is the interface for the SP1 Verifier. +interface ISP1Verifier { + /// @notice Verifies a proof with given public values and vkey. + /// @dev It is expected that the first 4 bytes of proofBytes must match the first 4 bytes of + /// target verifier's VERIFIER_HASH. + /// @param programVKey The verification key for the RISC-V program. + /// @param publicValues The public values encoded as bytes. + /// @param proofBytes The proof of the program execution the SP1 zkVM encoded as bytes. + function verifyProof( + bytes32 programVKey, + bytes calldata publicValues, + bytes calldata proofBytes + ) external view; +} + +interface ISP1VerifierWithHash is ISP1Verifier { + /// @notice Returns the hash of the verifier. + function VERIFIER_HASH() external pure returns (bytes32); +} diff --git a/crates/l2/docs/README.md b/crates/l2/docs/README.md index 9e591cc39..dc99f0f3d 100644 --- a/crates/l2/docs/README.md +++ b/crates/l2/docs/README.md @@ -11,6 +11,20 @@ For more detailed documentation on each part of the system: - [Proposer](./proposer.md) - [Prover](./prover.md) +## Quick HandsOn + +1. `cd crates/l2` +2. `make rm-db-l2 && make down` + - It will remove any old database, if present, stored in your computer. The absolute path of libmdbx is defined by [data_dir](https://docs.rs/dirs/latest/dirs/fn.data_dir.html). +3. `cp .env.example .env` → check if you want to change any config. +4. `make init` + - Init the L1 in a docker container on port `8545`. + - Deploy the needed contracts for the L2 on the L1. + - Start the L2 locally on port `1729`. + + +For more information on how to run the L2 node with the prover attached to it, the [Prover Docs](./prover.md) provides more insight. + ## Configuration Configuration is done through env vars. A detailed list is available in each part documentation. diff --git a/crates/l2/docs/prover.md b/crates/l2/docs/prover.md index daaf3c2a9..38e1c1410 100644 --- a/crates/l2/docs/prover.md +++ b/crates/l2/docs/prover.md @@ -2,18 +2,17 @@ ## ToC -- [ethrex L2 Prover](#ethrex-l2-prover) - - [ToC](#toc) - - [What](#what) - - [Workflow](#workflow) - - [How](#how) - - [Dev Mode](#dev-mode) - - [Quick Test](#quick-test) - - [Run the whole system with the prover](#run-the-whole-system-with-the-prover) - - [GPU mode](#gpu-mode) - - [Proving Process Test](#proving-process-test) - - [Run the whole system with the prover in Sepolia](#run-the-whole-system-with-the-prover-in-sepolia) - - [Configuration](#configuration) +- [ToC](#toc) +- [What](#what) +- [Workflow](#workflow) +- [How](#how) + - [Dev Mode](#dev-mode) + - [Quick Test](#quick-test) + - [Run the whole system with the prover](#run-the-whole-system-with-the-prover) + - [GPU mode](#gpu-mode) + - [Proving Process Test](#proving-process-test) + - [Run the whole system with a GPU Prover](#run-the-whole-system-with-a-gpu-prover) +- [Configuration](#configuration) >[!NOTE] > The shipping/deploying process and the `Prover` itself are under development. @@ -48,16 +47,21 @@ sequenceDiagram **Dependencies:** - [RISC0](https://dev.risczero.com/api/zkvm/install) +- [SP1](https://docs.succinct.xyz/docs/getting-started/install) -To run the blockchain (`proposer`) and prover in conjunction in a development environment, set the following environment variable: `RISC0_DEV_MODE=1` [(docs)](https://dev.risczero.com/api/generating-proofs/dev-mode). If you are in the `crates/l2` directory, you will need to set the environment variable for `dev_mode`. The `.env.example` file should suffice. +To run the blockchain (`proposer`) and prover in conjunction in a development environment, set the following environment variables in the `.env` file: +- `PROVER_SERVER_DEV_MODE=false` +- Depending on the Proving System: + - RISC0: `RISC0_DEV_MODE=1` [(docs)](https://dev.risczero.com/api/generating-proofs/dev-mode) + - SP1: `SP1_PROVER=local` To start the `prover_client`, use the following command: ```sh -make init-l2-prover +make init-prover T="prover_type (risc0 or sp1) G=true" ``` -The `build_zkvm` flag is used, if you don't have the risc0's "sdk", you can build the prover without the feature to check if all the surrounding components of the `zkvm` can be compiled. +If neither `risc0` nor `sp1` is installed on the system, the prover can be built without the "build" features to check whether all the surrounding components of the prover (except for the RISC-V zkVMs) can be compiled. #### Quick Test @@ -65,22 +69,25 @@ To test the `zkvm` execution quickly, the following test can be run: ```sh cd crates/l2/prover -make perf_test_proving ``` +Then run any of the targets: +- `make perf-risc0` +- `make perf-sp1` + #### Run the whole system with the prover 1. `cd crates/l2` -2. `make rm_dev_libmdbx_l2 && make down` +2. `make rm-db-l2 && make down` - It will remove any old database, if present, stored in your computer. The absolute path of libmdbx is defined by [data_dir](https://docs.rs/dirs/latest/dirs/fn.data_dir.html). 3. `cp .env.example .env` → check if you want to change any config. 4. `make init` - Init the L1 in a docker container on port `8545`. - Deploy the needed contracts for the L2 on the L1. - Start the L2 locally on port `1729`. -5. In a new terminal → `make init-l2-prover`. +5. In a new terminal → `make init-prover T=(risc0 or sp1)`. -After this initialization the system has to be running in `dev-mode` → No proof verification. +After this initialization we should have the prover running in `dev_mode` → No real proofs. ### GPU mode @@ -108,42 +115,47 @@ To test the `zkvm` proving process using a `gpu` quickly, the following test can ```sh cd crates/l2/prover -make perf_gpu ``` -#### Run the whole system with the prover in Sepolia +Then run any of the targets: +- `make perf-risc0-gpu` +- `make perf-sp1-gpu` + +#### Run the whole system with a GPU Prover Two servers are required: one for the `prover` and another for the `proposer`. If you run both components on the same machine, the `prover` may consume all available resources, leading to potential stuttering or performance issues for the `proposer`/`node`. -1. `prover`/`zkvm` → prover with gpu, make sure to have all the required dependencies described at the beginning of [Gpu Mode](#gpu-mode) section. +1. `prover_client`/`zkvm` → prover with gpu, make sure to have all the required dependencies described at the beginning of [Gpu Mode](#gpu-mode) section. 1. `cd ethrex/crates/l2` 2. `cp .example.env` and change the `PROVER_CLIENT_PROVER_SERVER_ENDPOINT` with the ip of the other server. -The env variables needed are: +The important variables are: ```sh PROVER_CLIENT_PROVER_SERVER_ENDPOINT=:3000 RISC0_DEV_MODE=0 +SP1_PROVER=local ``` -Finally, to start the `prover_client`/`zkvm`, run: - -- `make init-l2-prover-gpu` +- `Finally`, to start the `prover_client`/`zkvm`, run: + - `make init-prover T=(risc0 or sp1) G=true` -2.  `proposer` → this server just needs rust installed. +2. `prover_server`/`proposer` → this server just needs rust installed. 1. `cd ethrex/crates/l2` 2. `cp .example.env` and change the addresses and the following fields: - `PROVER_SERVER_LISTEN_IP=0.0.0.0` → used to handle the tcp communication with the other server. - - The `COMMITTER` and `PROVER_SERVER_VERIFIER` must be different accounts, the `DEPLOYER_ADDRESS` as well as the `L1_WATCHER` may be the same account used by the `COMMITTER` - - `DEPLOYER_CONTRACT_VERIFIER=0xd9b0d07CeCd808a8172F21fA7C97992168f045CA` → risc0’s verifier contract deployed on Sepolia. - - Set the `ETH_RPC_URL` to any Sepolia's endpoint. + - The `COMMITTER` and `PROVER_SERVER_VERIFIER` must be different accounts, the `DEPLOYER_ADDRESS` as well as the `L1_WATCHER` may be the same account used by the `COMMITTER`. + - `DEPLOYER_SALT_IS_ZERO=false` → set to false to randomize the salt. + - `DEPLOYER_SP1_DEPLOY_VERIFIER=true` overwrites `DEPLOYER_SP1_CONTRACT_VERIFIER`. Check if the contract is deployed in your preferred network or set to `true` to deploy it. + - `DEPLOYER_CONTRACT_VERIFIER=0xd9b0d07CeCd808a8172F21fA7C97992168f045CA` → risc0’s verifier contract deployed on Sepolia. (Check the if the contract is deployed in your preferred network). + - Set the `ETH_RPC_URL` to any L1 endpoint. >[!NOTE] > Make sure to have funds, if you want to perform a quick test `0.2[ether]` on each account should be enough. -Finally, to start the `proposer`/`l2 node`, run: - - `make rm_dev_libmdbx_l2 && make down` - - `make init` +- `Finally`, to start the `proposer`/`l2 node`, run: + - `make rm-db-l2 && make down` + - `make deploy-l1 && make init-l2` ## Configuration diff --git a/crates/l2/proposer/l1_committer.rs b/crates/l2/proposer/l1_committer.rs index c814e25ad..68601750f 100644 --- a/crates/l2/proposer/l1_committer.rs +++ b/crates/l2/proposer/l1_committer.rs @@ -77,18 +77,12 @@ impl Committer { async fn main_logic(&self) -> Result<(), CommitterError> { loop { - let last_committed_block = EthClient::get_last_committed_block( + let block_number_to_fetch = EthClient::get_next_block_to_commit( &self.eth_client, self.on_chain_proposer_address, ) .await?; - let block_number_to_fetch = if last_committed_block == u64::MAX { - 0 - } else { - last_committed_block + 1 - }; - if let Some(block_to_commit_body) = self .store .get_block_body(block_number_to_fetch) diff --git a/crates/l2/proposer/prover_server.rs b/crates/l2/proposer/prover_server.rs index 835850424..b4b936358 100644 --- a/crates/l2/proposer/prover_server.rs +++ b/crates/l2/proposer/prover_server.rs @@ -4,7 +4,7 @@ use crate::utils::{ committer::CommitterConfig, errors::ConfigError, eth::EthConfig, prover_server::ProverServerConfig, }, - eth_client::{errors::EthClientError, eth_sender::Overrides, EthClient, WrappedTransaction}, + eth_client::{eth_sender::Overrides, EthClient, WrappedTransaction}, }; use ethrex_core::{ types::{Block, BlockHeader}, @@ -28,7 +28,8 @@ use tokio::{ }; use tracing::{debug, error, info, warn}; -use risc0_zkvm::sha::{Digest, Digestible}; +use risc0_zkvm::sha::Digestible; +use sp1_sdk::HashableKey; #[derive(Debug, Serialize, Deserialize, Default)] pub struct ProverInputData { @@ -37,7 +38,7 @@ pub struct ProverInputData { pub db: ExecutionDB, } -#[derive(Debug, Clone)] +#[derive(Clone)] struct ProverServer { ip: IpAddr, port: u16, @@ -48,8 +49,146 @@ struct ProverServer { verifier_private_key: SecretKey, } +#[derive(Debug, Clone, Copy)] +/// Enum used to identify the different proving systems. +pub enum ProverType { + RISC0, + SP1, +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct Risc0Proof { + pub receipt: Box, + pub prover_id: Vec, +} + +pub struct Risc0ContractData { + pub block_proof: Vec, + pub image_id: Vec, + pub journal_digest: Vec, +} + +impl Risc0Proof { + pub fn new(receipt: risc0_zkvm::Receipt, prover_id: Vec) -> Self { + Risc0Proof { + receipt: Box::new(receipt), + prover_id, + } + } + + pub fn contract_data(&self) -> Result { + // If we run the prover_client with RISC0_DEV_MODE=0 we will have a groth16 proof + // Else, we will have a fake proof. + // + // The RISC0_DEV_MODE=1 should only be used with DEPLOYER_CONTRACT_VERIFIER=0xAA + let block_proof = match self.receipt.inner.groth16() { + Ok(inner) => { + // The SELECTOR is used to perform an extra check inside the groth16 verifier contract. + let mut selector = + hex::encode(inner.verifier_parameters.as_bytes().get(..4).ok_or( + ProverServerError::Custom( + "Failed to get verify_proof_selector in send_proof()".to_owned(), + ), + )?); + let seal = hex::encode(inner.clone().seal); + selector.push_str(&seal); + hex::decode(selector).map_err(|e| { + ProverServerError::Custom(format!("Failed to hex::decode(selector): {e}")) + })? + } + Err(_) => vec![32; 0], + }; + + let mut image_id: [u32; 8] = [0; 8]; + for (i, b) in image_id.iter_mut().enumerate() { + *b = *self.prover_id.get(i).ok_or(ProverServerError::Custom( + "Failed to get image_id in handle_proof_submission()".to_owned(), + ))?; + } + + let image_id: risc0_zkvm::sha::Digest = image_id.into(); + let image_id = image_id.as_bytes().to_vec(); + + let journal_digest = Digestible::digest(&self.receipt.journal) + .as_bytes() + .to_vec(); + + Ok(Risc0ContractData { + block_proof, + image_id, + journal_digest, + }) + } + + pub fn contract_data_empty() -> Risc0ContractData { + Risc0ContractData { + block_proof: vec![0; 32], + image_id: vec![0; 32], + journal_digest: vec![0; 32], + } + } +} + +#[derive(Serialize, Deserialize, Clone)] +pub struct Sp1Proof { + pub proof: Box, + pub vk: sp1_sdk::SP1VerifyingKey, +} + +pub struct Sp1ContractData { + pub public_values: Vec, + pub vk: Vec, + pub proof_bytes: Vec, +} + +impl Sp1Proof { + pub fn new( + proof: sp1_sdk::SP1ProofWithPublicValues, + verifying_key: sp1_sdk::SP1VerifyingKey, + ) -> Self { + Sp1Proof { + proof: Box::new(proof), + vk: verifying_key, + } + } + + pub fn contract_data(&self) -> Result { + let vk = self + .vk + .bytes32() + .strip_prefix("0x") + .ok_or(ProverServerError::Custom( + "Failed to strip_prefix of sp1 vk".to_owned(), + ))? + .to_string(); + let vk_bytes = hex::decode(&vk) + .map_err(|_| ProverServerError::Custom("Failed hex::decode(&vk)".to_owned()))?; + + Ok(Sp1ContractData { + public_values: self.proof.public_values.to_vec(), + vk: vk_bytes, + proof_bytes: self.proof.bytes(), + }) + } + + // TODO: better way of giving empty information + pub fn contract_data_empty() -> Sp1ContractData { + Sp1ContractData { + public_values: vec![0; 32], + vk: vec![0; 32], + proof_bytes: vec![0; 32], + } + } +} + +#[derive(Serialize, Deserialize, Clone)] +pub enum ProvingOutput { + RISC0(Risc0Proof), + SP1(Sp1Proof), +} + /// Enum for the ProverServer <--> ProverClient Communication Protocol. -#[derive(Debug, Serialize, Deserialize)] +#[derive(Serialize, Deserialize)] pub enum ProofData { /// 1. /// The Client initiates the connection with a Request. @@ -67,10 +206,10 @@ pub enum ProofData { /// 3. /// The Client submits the zk Proof generated by the prover /// for the specified block. + /// The [ProvingOutput] has the [ProverType] implicitly. Submit { block_number: u64, - // zk Proof - receipt: Box<(risc0_zkvm::Receipt, Vec)>, + proving_output: ProvingOutput, }, /// 4. @@ -93,10 +232,10 @@ impl ProofData { } /// Builder function for creating a Submit - pub fn submit(block_number: u64, receipt: (risc0_zkvm::Receipt, Vec)) -> Self { + pub fn submit(block_number: u64, proving_output: ProvingOutput) -> Self { ProofData::Submit { block_number, - receipt: Box::new(receipt), + proving_output, } } @@ -112,8 +251,7 @@ pub async fn start_prover_server(store: Store) -> Result<(), ConfigError> { let proposer_config = CommitterConfig::from_env()?; let mut prover_server = ProverServer::new_from_config(server_config.clone(), &proposer_config, eth_config, store) - .await - .map_err(ConfigError::from)?; + .await?; prover_server.run(&server_config).await; Ok(()) } @@ -124,7 +262,7 @@ impl ProverServer { committer_config: &CommitterConfig, eth_config: EthConfig, store: Store, - ) -> Result { + ) -> Result { let eth_client = EthClient::new(ð_config.rpc_url); let on_chain_proposer_address = committer_config.on_chain_proposer_address; @@ -253,15 +391,16 @@ impl ProverServer { } Ok(ProofData::Submit { block_number, - receipt, + proving_output, }) => { self.handle_submit(&mut stream, block_number)?; - self.handle_proof_submission(block_number, receipt).await?; - if block_number != (last_verified_block + 1) { return Err(ProverServerError::Custom(format!("Prover Client submitted an invalid block_number: {block_number}. The last_proved_block is: {}", last_verified_block))); } + + self.handle_proof_submission(block_number, proving_output) + .await?; } Err(e) => { warn!("Failed to parse request: {e}"); @@ -317,51 +456,6 @@ impl ProverServer { Ok(()) } - async fn handle_proof_submission( - &self, - block_number: u64, - receipt: Box<(risc0_zkvm::Receipt, Vec)>, - ) -> Result<(), ProverServerError> { - // Send Tx - // If we run the prover_client with RISC0_DEV_MODE=0 we will have a groth16 proof - // Else, we will have a fake proof. - // - // The RISC0_DEV_MODE=1 should only be used with DEPLOYER_CONTRACT_VERIFIER=0xAA - let seal = match receipt.0.inner.groth16() { - Ok(inner) => { - // The SELECTOR is used to perform an extra check inside the groth16 verifier contract. - let mut selector = - hex::encode(inner.verifier_parameters.as_bytes().get(..4).ok_or( - ProverServerError::Custom( - "Failed to get verify_proof_selector in send_proof()".to_owned(), - ), - )?); - let seal = hex::encode(inner.clone().seal); - selector.push_str(&seal); - hex::decode(selector).map_err(|e| { - ProverServerError::Custom(format!("Failed to hex::decode(selector): {e}")) - })? - } - Err(_) => vec![32; 0], - }; - - let mut image_id: [u32; 8] = [0; 8]; - for (i, b) in image_id.iter_mut().enumerate() { - *b = *receipt.1.get(i).ok_or(ProverServerError::Custom( - "Failed to get image_id in handle_proof_submission()".to_owned(), - ))?; - } - - let image_id: risc0_zkvm::sha::Digest = image_id.into(); - - let journal_digest = Digestible::digest(&receipt.0.journal); - - self.send_proof(block_number, &seal, image_id, journal_digest) - .await?; - - Ok(()) - } - fn create_prover_input(&self, block_number: u64) -> Result { let header = self .store @@ -390,64 +484,139 @@ impl ProverServer { }) } - pub async fn send_proof( + pub async fn handle_proof_submission( &self, block_number: u64, - seal: &[u8], - image_id: Digest, - journal_digest: Digest, + proving_output: ProvingOutput, ) -> Result { + // TODO: + // Ideally we should wait to have both proofs + // We will have to send them in the same transaction. + let (sp1_contract_data, risc0_contract_data) = match proving_output { + ProvingOutput::RISC0(risc0_proof) => { + let risc0_contract_data = risc0_proof.contract_data()?; + let sp1_contract_data = Sp1Proof::contract_data_empty(); + (sp1_contract_data, risc0_contract_data) + } + ProvingOutput::SP1(sp1_proof) => { + let risc0_contract_data = Risc0Proof::contract_data_empty(); + let sp1_contract_data = sp1_proof.contract_data()?; + (sp1_contract_data, risc0_contract_data) + } + }; + debug!("Sending proof for {block_number}"); - let mut calldata = Vec::new(); // IOnChainProposer - // function verify(uint256,bytes,bytes32,bytes32) - // Verifier - // function verify(bytes,bytes32,bytes32) - // blockNumber, seal, imageId, journalDigest + // function verify(uint256,bytes,bytes32,bytes32,bytes32,bytes,bytes) + // blockNumber, blockProof, imageId, journalDigest, programVKey, publicValues, proofBytes // From crates/l2/contracts/l1/interfaces/IOnChainProposer.sol - let verify_proof_selector = keccak(b"verify(uint256,bytes,bytes32,bytes32)") + let mut calldata = keccak(b"verify(uint256,bytes,bytes32,bytes32,bytes32,bytes,bytes)") .as_bytes() .get(..4) .ok_or(ProverServerError::Custom( "Failed to get verify_proof_selector in send_proof()".to_owned(), ))? .to_vec(); - calldata.extend(verify_proof_selector); // The calldata has to be structured in the following way: // block_number - // size in bytes - // image_id digest - // journal digest - // size of seal - // seal + // offset of first bytes parameter + // image_id + // journal + // programVKey + // offset of second bytes parameter + // offset of third bytes parameter + // size of block_proof + // block_proof + // size of publicValues + // publicValues + // size of proofBytes + // proofBytes // extend with block_number calldata.extend(H256::from_low_u64_be(block_number).as_bytes()); - // extend with size in bytes - // 4 u256 goes after this field so: 0x80 == 128bytes == 32bytes * 4 - calldata.extend(H256::from_low_u64_be(4 * 32).as_bytes()); + // extend with offset in bytes + calldata.extend(H256::from_low_u64_be(7 * 32).as_bytes()); // extend with image_id - calldata.extend(image_id.as_bytes()); + calldata.extend(risc0_contract_data.image_id); // extend with journal_digest - calldata.extend(journal_digest.as_bytes()); - - // extend with size of seal - calldata.extend( - H256::from_low_u64_be(seal.len().try_into().map_err(|err| { - ProverServerError::Custom(format!("Seal length does not fit in u64: {}", err)) - })?) - .as_bytes(), - ); - // extend with seal - calldata.extend(seal); - // extend with zero padding - let leading_zeros = 32 - ((calldata.len() - 4) % 32); - calldata.extend(vec![0; leading_zeros]); + calldata.extend(risc0_contract_data.journal_digest); + + // extend with program_vkey + calldata.extend(sp1_contract_data.vk); + + // extend with offset in bytes of second bytes parameter + let block_proof_len: u64 = + risc0_contract_data + .block_proof + .len() + .try_into() + .map_err(|err| { + ProverServerError::Custom(format!( + "calldata length does not fit in u64: {}", + err + )) + })?; + + let calldata_len: u64 = (calldata.len()).try_into().map_err(|err| { + ProverServerError::Custom(format!("calldata length does not fit in u64: {}", err)) + })?; + + let leading_zeros_after_block_proof: u64 = + calculate_padding(calldata_len + 64 + block_proof_len)? + .try_into() + .map_err(|err| { + ProverServerError::Custom(format!( + "calculate_padding length does not fit in u64: {}", + err + )) + })?; + + // 2 * 32 bytes are the offset of the second and third bytes offsets + // and then 32 bytes more for the len of block_proof + let bytes = 32 * 3; + let offset = calldata_len + block_proof_len + leading_zeros_after_block_proof + bytes; + calldata.extend(H256::from_low_u64_be(offset - 4).as_bytes()); + + // add 32 bytes to reflect the last extend() + let offset = offset + 32; + let public_values_len: u64 = + sp1_contract_data + .public_values + .len() + .try_into() + .map_err(|err| { + ProverServerError::Custom(format!( + "public_values length does not fit in u64: {}", + err + )) + })?; + + let leading_zeros_after_public_values: u64 = calculate_padding(offset + public_values_len)? + .try_into() + .map_err(|err| { + ProverServerError::Custom(format!( + "calculate_padding length does not fit in u64: {}", + err + )) + })?; + + let offset = offset + public_values_len + leading_zeros_after_public_values - 4; + // extend with offset in bytes of third bytes parameter + calldata.extend(H256::from_low_u64_be(offset).as_bytes()); + + // extend with size of block_proof and block_proof + extend_calldata_with_bytes(&mut calldata, &risc0_contract_data.block_proof)?; + + // extend with size of public_values and public_values + extend_calldata_with_bytes(&mut calldata, &sp1_contract_data.public_values)?; + + // extend with size of proof_bytes and proof_bytes + extend_calldata_with_bytes(&mut calldata, &sp1_contract_data.proof_bytes)?; let verify_tx = self .eth_client @@ -504,10 +673,25 @@ impl ProverServer { info!("Last committed: {last_committed_block} - Last verified: {last_verified_block}"); // IOnChainProposer - // function verify(uint256,bytes,bytes32,bytes32) - // blockNumber, seal, imageId, journalDigest + // function verify(uint256,bytes,bytes32,bytes32,bytes32,bytes,bytes) + // blockNumber, blockProof, imageId, journalDigest, programVKey, publicValues, proofBytes // From crates/l2/contracts/l1/interfaces/IOnChainProposer.sol - let mut calldata = keccak(b"verify(uint256,bytes,bytes32,bytes32)") + + // The calldata has to be structured in the following way: + // block_number + // offset of first bytes parameter + // image_id + // journal + // programVKey + // offset of second bytes parameter + // offset of third bytes parameter + // size of block_proof + // block_proof + // size of publicValues + // publicValues + // size of proofBytes + // proofBytes + let mut calldata = keccak(b"verify(uint256,bytes,bytes32,bytes32,bytes32,bytes,bytes)") .as_bytes() .get(..4) .ok_or(ProverServerError::Custom( @@ -515,11 +699,20 @@ impl ProverServer { ))? .to_vec(); calldata.extend(H256::from_low_u64_be(last_verified_block + 1).as_bytes()); - calldata.extend(H256::from_low_u64_be(128).as_bytes()); - calldata.extend(H256::zero().as_bytes()); + // offset of first bytes parameter + calldata.extend(H256::from_low_u64_be(7 * 32).as_bytes()); + // extend with bytes32, bytes32, bytes32 + for _ in 0..=3 { + calldata.extend(H256::zero().as_bytes()); + } + // offset of second bytes parameter calldata.extend(H256::zero().as_bytes()); + // offset of third bytes parameter calldata.extend(H256::zero().as_bytes()); + // extend with size of the third bytes variable -> 32bytes + calldata.extend(H256::from_low_u64_be(32).as_bytes()); calldata.extend(H256::zero().as_bytes()); + let verify_tx = self .eth_client .build_eip1559_transaction( @@ -554,3 +747,46 @@ impl ProverServer { } } } + +pub fn extend_calldata_with_bytes( + calldata: &mut Vec, + bytes: &[u8], +) -> Result<(), ProverServerError> { + // extend with size of bytes + calldata.extend( + H256::from_low_u64_be(bytes.len().try_into().map_err(|err| { + ProverServerError::Custom(format!("bytes length does not fit in u64: {}", err)) + })?) + .as_bytes(), + ); + // extend with bytes + calldata.extend(bytes); + // extend with zero padding + let calldata_len: u64 = calldata.len().try_into().map_err(|err| { + ProverServerError::Custom(format!("calldata length does not fit in u64: {}", err)) + })?; + let leading_zeros = calculate_padding(calldata_len)?; + calldata.extend(vec![0; leading_zeros]); + + Ok(()) +} + +fn calculate_padding(calldata_len: u64) -> Result { + let len = calldata_len - 4; + + // Calculate leading zeros needed for alignment to 32 bytes + let leading_zeros = if len % 32 == 0 { 0 } else { 32 - (len % 32) }; + leading_zeros + .try_into() + .map_err(|_| ProverServerError::Custom("Failed to calculate padding".to_owned())) +} + +// used for debugging purposes +#[allow(unused)] +fn print_calldata(calldata: Vec) { + let mut hex_string = String::new(); + for byte in calldata { + hex_string.push_str(&format!("{:02x}", byte)); + } + println!("CALLDATA: {}", hex_string); +} diff --git a/crates/l2/prover/Cargo.toml b/crates/l2/prover/Cargo.toml index da6d463a2..fe5e3344a 100644 --- a/crates/l2/prover/Cargo.toml +++ b/crates/l2/prover/Cargo.toml @@ -13,6 +13,7 @@ tokio-util.workspace = true tracing-subscriber = { workspace = true, features = ["env-filter"] } tracing.workspace = true hex.workspace = true +thiserror.workspace = true # ethrex ethrex-core.workspace = true @@ -22,10 +23,14 @@ ethrex-rlp.workspace = true # l2 ethrex-l2.workspace = true -# risc0 zkvm_interface = { path = "./zkvm/interface", default-features = false } + +# risc0 risc0-zkvm = { version = "1.2.0" } +# sp1 +sp1-sdk = "3.4.0" + [dev-dependencies] ethrex-vm.workspace = true ethrex-storage.workspace = true @@ -41,8 +46,12 @@ path = "src/main.rs" [features] default = [] -build_zkvm = ["zkvm_interface/build_zkvm"] -gpu = ["risc0-zkvm/cuda"] +## risc0 +build_risc0 = ["zkvm_interface/build_risc0"] +gpu = ["risc0-zkvm/cuda", "sp1-sdk/cuda"] +## sp1 +build_sp1 = ["zkvm_interface/build_sp1"] + [lints.clippy] unwrap_used = "deny" diff --git a/crates/l2/prover/Makefile b/crates/l2/prover/Makefile index f754dad2b..f2d2cd6ec 100644 --- a/crates/l2/prover/Makefile +++ b/crates/l2/prover/Makefile @@ -1,18 +1,41 @@ -.PHONY: perf_test_proving perf_gpu rsp_comparison + +.PHONY: perf_test_sp1_proving ROOT_DIRECTORY := ../../.. +######################################################################## +############### RISC0 ############### +######################################################################## +.PHONY: perf-risc0 perf-risc0-gpu + RISC0_DEV_MODE?=1 RUST_LOG?="info" -perf_test_proving: +perf-risc0: @echo "Using RISC0_DEV_MODE: ${RISC0_DEV_MODE}" - RISC0_DEV_MODE=${RISC0_DEV_MODE} RUST_LOG=${RUST_LOG} cargo test --release --test perf_zkvm --features build_zkvm -- --show-output + RISC0_DEV_MODE=${RISC0_DEV_MODE} RUST_LOG=${RUST_LOG} cargo test --release --test perf_zkvm --features build_risc0 -- test_performance_zkvm --exact --show-output -perf_gpu: - RUSTFLAGS="-C target-cpu=native" RISC0_DEV_MODE=0 RUST_LOG="debug" cargo test --release --test perf_zkvm --features "build_zkvm,gpu" -- --show-output +perf-risc0-gpu: + RUSTFLAGS="-C target-cpu=native" RISC0_DEV_MODE=0 RUST_LOG=${RUST_LOG} cargo test --release --test perf_zkvm --features "build_risc0,gpu" -- test_performance_zkvm --exact --show-output -# L2 Prover comparison with rsp. Uses GPU by default. +######################################################################## +############### SP1 ############### +######################################################################## +######################################################################## +.PHONY: perf-sp1 perf-sp1-gpu + +SP1_PROVER?=mock +RUST_LOG?="info" +perf-sp1: + @echo "Using SP1_PROVER: ${SP1_PROVER}" + SP1_PROVER=${SP1_PROVER} RUST_LOG=${RUST_LOG} cargo test --release --test perf_zkvm --features build_sp1 -- test_performance_sp1_zkvm --exact --show-output + +perf-sp1-gpu: + @echo "Using SP1_PROVER: ${SP1_PROVER}" + SP1_PROVER=${SP1_PROVER} RUST_LOG=${RUST_LOG} cargo test --release --test perf_zkvm --features "build_sp1, gpu" -- test_performance_sp1_zkvm --exact --show-output +######################################################################## +########## L2 Prover comparison with rsp. Uses GPU by default ########## +######################################################################## ETHREX_L2_BIN := ./target/release/ethrex_l2 RSP_BIN := ./target/release/rsp @@ -36,7 +59,7 @@ rsp_comparison: $(ETHREX_L2_BIN) $(RSP_BIN) >/dev/null $(ETHREX_L2_BIN): - CARGO_TARGET_DIR=target cargo build -r --manifest-path $(ROOT_DIRECTORY)/Cargo.toml --bin ethrex_l2 --features "build_zkvm,gpu,disable-dev-mode" + CARGO_TARGET_DIR=target cargo build -r --manifest-path $(ROOT_DIRECTORY)/Cargo.toml --bin ethrex_l2 --features "build_risc0,gpu,disable-dev-mode" $(RSP_BIN): - git clone https://github.com/succinctlabs/rsp.git diff --git a/crates/l2/prover/src/errors.rs b/crates/l2/prover/src/errors.rs new file mode 100644 index 000000000..2ce1ce6b8 --- /dev/null +++ b/crates/l2/prover/src/errors.rs @@ -0,0 +1,7 @@ +#[derive(Debug, thiserror::Error)] +pub enum ProverError { + #[error("Incorrect ProverType")] + IncorrectProverType, + #[error("{0}")] + Custom(String), +} diff --git a/crates/l2/prover/src/lib.rs b/crates/l2/prover/src/lib.rs index ee528391a..4c99e12fe 100644 --- a/crates/l2/prover/src/lib.rs +++ b/crates/l2/prover/src/lib.rs @@ -1,10 +1,13 @@ +pub mod errors; pub mod prover; pub mod prover_client; -use ethrex_l2::utils::config::prover_client::ProverClientConfig; +use ethrex_l2::{ + proposer::prover_server::ProverType, utils::config::prover_client::ProverClientConfig, +}; use tracing::warn; -pub async fn init_client(config: ProverClientConfig) { - prover_client::start_proof_data_client(config).await; +pub async fn init_client(config: ProverClientConfig, prover_type: ProverType) { + prover_client::start_proof_data_client(config, prover_type).await; warn!("Prover finished!"); } diff --git a/crates/l2/prover/src/main.rs b/crates/l2/prover/src/main.rs index 9eb5ce426..a442c5877 100644 --- a/crates/l2/prover/src/main.rs +++ b/crates/l2/prover/src/main.rs @@ -1,6 +1,9 @@ -use ethrex_l2::utils::config::{prover_client::ProverClientConfig, read_env_file}; +use ethrex_l2::{ + proposer::prover_server::ProverType, + utils::config::{prover_client::ProverClientConfig, read_env_file}, +}; use ethrex_prover_lib::init_client; - +use std::env; use tracing::{self, debug, error, warn, Level}; #[tokio::main] @@ -23,6 +26,26 @@ async fn main() { return; }; + let args: Vec = env::args().collect(); + + let prover_type = match args.len() { + 2 => { + let prover_type_str = args.get(1).map_or("none", |v| v); + match prover_type_str { + "sp1" => ProverType::SP1, + "risc0" => ProverType::RISC0, + _ => { + error!("Wrong argument, try with 'risc0' or 'sp1'."); + return; + } + } + } + _ => { + error!("Try passing 'risc0' or 'sp1' as argument."); + return; + } + }; + debug!("Prover Client has started"); - init_client(config).await; + init_client(config, prover_type).await; } diff --git a/crates/l2/prover/src/prover.rs b/crates/l2/prover/src/prover.rs index f366a61b8..4c408df39 100644 --- a/crates/l2/prover/src/prover.rs +++ b/crates/l2/prover/src/prover.rs @@ -1,38 +1,83 @@ +use crate::errors::ProverError; +use ethrex_l2::proposer::prover_server::{ProverType, ProvingOutput, Risc0Proof, Sp1Proof}; use tracing::info; // risc0 +use risc0_zkvm::{default_prover, ExecutorEnv, ProverOpts}; use zkvm_interface::{ io::{ProgramInput, ProgramOutput}, - methods::{ZKVM_PROGRAM_ELF, ZKVM_PROGRAM_ID}, + methods::ZKVM_SP1_PROGRAM_ELF, + methods::{ZKVM_RISC0_PROGRAM_ELF, ZKVM_RISC0_PROGRAM_ID}, }; -use risc0_zkvm::{default_prover, ExecutorEnv, ProverOpts}; +// sp1 +use sp1_sdk::{ProverClient, SP1Stdin}; -pub struct Prover<'a> { +/// Structure that wraps all the needed components for the RISC0 proving system +pub struct Risc0Prover<'a> { elf: &'a [u8], pub id: [u32; 8], pub stdout: Vec, } -impl<'a> Default for Prover<'a> { +impl<'a> Default for Risc0Prover<'a> { fn default() -> Self { Self::new() } } -impl<'a> Prover<'a> { +/// Structure that wraps all the needed components for the SP1 proving system +pub struct Sp1Prover<'a> { + elf: &'a [u8], +} + +impl<'a> Default for Sp1Prover<'a> { + fn default() -> Self { + Self::new() + } +} + +/// Creates a prover depending on the [ProverType] +pub fn create_prover(prover_type: ProverType) -> Box { + match prover_type { + ProverType::RISC0 => Box::new(Risc0Prover::new()), + ProverType::SP1 => Box::new(Sp1Prover::new()), + } +} + +/// Trait in common with all proving systems, it can be thought as the common interface. +pub trait Prover { + /// Generates the groth16 proof + fn prove(&mut self, input: ProgramInput) -> Result>; + /// Verifies the proof + fn verify(&self, proving_output: &ProvingOutput) -> Result<(), Box>; + /// Gets the EVM gas consumed by the verified block + fn get_gas(&self) -> Result>; +} + +impl<'a> Risc0Prover<'a> { pub fn new() -> Self { Self { - elf: ZKVM_PROGRAM_ELF, - id: ZKVM_PROGRAM_ID, + elf: ZKVM_RISC0_PROGRAM_ELF, + id: ZKVM_RISC0_PROGRAM_ID, stdout: Vec::new(), } } - pub fn prove( - &mut self, - input: ProgramInput, - ) -> Result> { + pub fn get_commitment( + &self, + proving_output: &ProvingOutput, + ) -> Result> { + let commitment = match proving_output { + ProvingOutput::RISC0(proof) => proof.receipt.journal.decode()?, + ProvingOutput::SP1(_) => return Err(Box::new(ProverError::IncorrectProverType)), + }; + Ok(commitment) + } +} + +impl<'a> Prover for Risc0Prover<'a> { + fn prove(&mut self, input: ProgramInput) -> Result> { let env = ExecutorEnv::builder() .stdout(&mut self.stdout) .write(&input)? @@ -49,24 +94,69 @@ impl<'a> Prover<'a> { let receipt = prove_info.receipt; info!("Successfully generated execution receipt."); - Ok(receipt) + Ok(ProvingOutput::RISC0(Risc0Proof::new( + receipt, + self.id.to_vec(), + ))) } - pub fn verify(&self, receipt: &risc0_zkvm::Receipt) -> Result<(), Box> { + fn verify(&self, proving_output: &ProvingOutput) -> Result<(), Box> { // Verify the proof. - receipt.verify(self.id)?; + match proving_output { + ProvingOutput::RISC0(proof) => proof.receipt.verify(self.id)?, + ProvingOutput::SP1(_) => return Err(Box::new(ProverError::IncorrectProverType)), + } + Ok(()) } - pub fn get_gas(&self) -> Result> { + fn get_gas(&self) -> Result> { Ok(risc0_zkvm::serde::from_slice( self.stdout.get(..8).unwrap_or_default(), // first 8 bytes )?) } +} - pub fn get_commitment( - receipt: &risc0_zkvm::Receipt, - ) -> Result> { - Ok(receipt.journal.decode()?) +impl<'a> Sp1Prover<'a> { + pub fn new() -> Self { + Self { + elf: ZKVM_SP1_PROGRAM_ELF, + } + } +} + +impl<'a> Prover for Sp1Prover<'a> { + fn prove(&mut self, input: ProgramInput) -> Result> { + let mut stdin = SP1Stdin::new(); + stdin.write(&input); + + // Generate the ProverClient + let client = ProverClient::new(); + let (pk, vk) = client.setup(self.elf); + + // Proof information by proving the specified ELF binary. + // This struct contains the receipt along with statistics about execution of the guest + let proof = client.prove(&pk, stdin).groth16().run()?; + // Wrap Proof and vk + let sp1_proof = Sp1Proof::new(proof, vk); + info!("Successfully generated SP1Proof."); + Ok(ProvingOutput::SP1(sp1_proof)) + } + + fn verify(&self, proving_output: &ProvingOutput) -> Result<(), Box> { + // Verify the proof. + match proving_output { + ProvingOutput::SP1(complete_proof) => { + let client = ProverClient::new(); + client.verify(&complete_proof.proof, &complete_proof.vk)?; + } + ProvingOutput::RISC0(_) => return Err(Box::new(ProverError::IncorrectProverType)), + } + + Ok(()) + } + + fn get_gas(&self) -> Result> { + todo!() } } diff --git a/crates/l2/prover/src/prover_client.rs b/crates/l2/prover/src/prover_client.rs index 26e4c9af9..dcfe4782a 100644 --- a/crates/l2/prover/src/prover_client.rs +++ b/crates/l2/prover/src/prover_client.rs @@ -1,5 +1,7 @@ +use crate::prover::create_prover; use ethrex_l2::{ - proposer::prover_server::ProofData, utils::config::prover_client::ProverClientConfig, + proposer::prover_server::{ProofData, ProverType, ProvingOutput}, + utils::config::prover_client::ProverClientConfig, }; use std::{ io::{BufReader, BufWriter}, @@ -10,11 +12,14 @@ use tokio::time::sleep; use tracing::{debug, error, info, warn}; use zkvm_interface::io::ProgramInput; -use super::prover::Prover; - -pub async fn start_proof_data_client(config: ProverClientConfig) { +pub async fn start_proof_data_client(config: ProverClientConfig, prover_type: ProverType) { let proof_data_client = ProverClient::new(config); - proof_data_client.start().await; + proof_data_client.start(prover_type).await; +} + +struct ProverData { + block_number: u64, + input: ProgramInput, } struct ProverClient { @@ -30,16 +35,19 @@ impl ProverClient { } } - pub async fn start(&self) { - let mut prover = Prover::new(); + pub async fn start(&self, prover_type: ProverType) { + // Build the prover depending on the prover_type passed as argument. + let mut prover = create_prover(prover_type); loop { match self.request_new_input() { - Ok((block_number, input)) => { - match prover.prove(input) { - Ok(proof) => { + // If we get the input + Ok(prover_data) => { + // Generate the Proof + match prover.prove(prover_data.input) { + Ok(proving_output) => { if let Err(e) = - self.submit_proof(block_number, proof, prover.id.to_vec()) + self.submit_proof(prover_data.block_number, proving_output) { // TODO: Retry? warn!("Failed to submit proof: {e}"); @@ -56,7 +64,7 @@ impl ProverClient { } } - fn request_new_input(&self) -> Result<(u64, ProgramInput), String> { + fn request_new_input(&self) -> Result { // Request the input with the correct block_number let request = ProofData::request(); let response = connect_to_prover_server_wr(&self.prover_server_endpoint, &request) @@ -67,30 +75,37 @@ impl ProverClient { block_number, input, } => match (block_number, input) { - (Some(n), Some(i)) => { - info!("Received Response for block_number: {n}"); - Ok((n, ProgramInput { - block: i.block, - parent_block_header: i.parent_block_header, - db: i.db - })) + (Some(block_number), Some(input)) => { + info!("Received Response for block_number: {block_number}"); + let prover_data = ProverData{ + block_number, + input: ProgramInput { + block: input.block, + parent_block_header: input.parent_block_header, + db: input.db + } + }; + Ok(prover_data) } _ => Err( "Received Empty Response, meaning that the ProverServer doesn't have blocks to prove.\nThe Prover may be advancing faster than the Proposer." .to_owned(), ), }, - _ => Err(format!("Expecting ProofData::Response {response:?}")), + _ => Err("Expecting ProofData::Response".to_owned()), } } - fn submit_proof( - &self, - block_number: u64, - receipt: risc0_zkvm::Receipt, - prover_id: Vec, - ) -> Result<(), String> { - let submit = ProofData::submit(block_number, (receipt, prover_id)); + fn submit_proof(&self, block_number: u64, proving_output: ProvingOutput) -> Result<(), String> { + let submit = match proving_output { + ProvingOutput::RISC0(risc0_proof) => { + ProofData::submit(block_number, ProvingOutput::RISC0(risc0_proof)) + } + ProvingOutput::SP1(sp1_proof) => { + ProofData::submit(block_number, ProvingOutput::SP1(sp1_proof)) + } + }; + let submit_ack = connect_to_prover_server_wr(&self.prover_server_endpoint, &submit) .map_err(|e| format!("Failed to get SubmitAck: {e}"))?; @@ -99,7 +114,7 @@ impl ProverClient { info!("Received submit ack for block_number: {}", block_number); Ok(()) } - _ => Err(format!("Expecting ProofData::SubmitAck {submit_ack:?}")), + _ => Err("Expecting ProofData::SubmitAck".to_owned()), } } } diff --git a/crates/l2/prover/tests/perf_zkvm.rs b/crates/l2/prover/tests/perf_zkvm.rs index 0ce7740ed..a43288b87 100644 --- a/crates/l2/prover/tests/perf_zkvm.rs +++ b/crates/l2/prover/tests/perf_zkvm.rs @@ -1,9 +1,11 @@ #![allow(clippy::expect_used)] +#![allow(clippy::unwrap_used)] +use ethrex_core::types::Block; use std::path::Path; use tracing::info; use ethrex_blockchain::add_block; -use ethrex_prover_lib::prover::Prover; +use ethrex_prover_lib::prover::{Prover, Risc0Prover, Sp1Prover}; use ethrex_storage::{EngineType, Store}; use ethrex_vm::execution_db::ExecutionDB; use zkvm_interface::io::ProgramInput; @@ -12,6 +14,51 @@ use zkvm_interface::io::ProgramInput; async fn test_performance_zkvm() { tracing_subscriber::fmt::init(); + let (input, block_to_prove) = setup().await; + + let mut prover = Risc0Prover::new(); + + let start = std::time::Instant::now(); + + let receipt = prover.prove(input).unwrap(); + + let duration = start.elapsed(); + info!( + "Number of EIP1559 transactions in the proven block: {}", + block_to_prove.body.transactions.len() + ); + info!("[SECONDS] Proving Took: {:?}", duration); + info!("[MINUTES] Proving Took: {}[m]", duration.as_secs() / 60); + + prover.verify(&receipt).unwrap(); + + let _program_output = prover.get_commitment(&receipt).unwrap(); +} + +#[tokio::test] +async fn test_performance_sp1_zkvm() { + tracing_subscriber::fmt::init(); + + let (input, block_to_prove) = setup().await; + + let mut prover = Sp1Prover::new(); + + let start = std::time::Instant::now(); + + let output = prover.prove(input).unwrap(); + + let duration = start.elapsed(); + info!( + "Number of EIP1559 transactions in the proven block: {}", + block_to_prove.body.transactions.len() + ); + info!("[SECONDS] Proving Took: {:?}", duration); + info!("[MINUTES] Proving Took: {}[m]", duration.as_secs() / 60); + + prover.verify(&output).unwrap(); +} + +async fn setup() -> (ProgramInput, Block) { let path = Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/../../../test_data")); // Another use is genesis-execution-api.json in conjunction with chain.rlp(20 blocks not too loaded). @@ -45,22 +92,5 @@ async fn test_performance_zkvm() { parent_block_header, db, }; - - let mut prover = Prover::new(); - - let start = std::time::Instant::now(); - - let receipt = prover.prove(input).unwrap(); - - let duration = start.elapsed(); - info!( - "Number of EIP1559 transactions in the proven block: {}", - block_to_prove.body.transactions.len() - ); - info!("[SECONDS] Proving Took: {:?}", duration); - info!("[MINUTES] Proving Took: {}[m]", duration.as_secs() / 60); - - prover.verify(&receipt).unwrap(); - - let _program_output = Prover::get_commitment(&receipt).unwrap(); + (input, block_to_prove.clone()) } diff --git a/crates/l2/prover/zkvm/interface/Cargo.toml b/crates/l2/prover/zkvm/interface/Cargo.toml index c1b09c65b..a207f9709 100644 --- a/crates/l2/prover/zkvm/interface/Cargo.toml +++ b/crates/l2/prover/zkvm/interface/Cargo.toml @@ -16,13 +16,16 @@ ethrex-trie = { path = "../../../../storage/trie", default-features = false } [build-dependencies] risc0-build = { version = "1.2.0" } +sp1-build = "3.4.0" [package.metadata.risc0] -methods = ["guest"] +methods = ["risc0"] [features] default = [] -build_zkvm = [] +build_risc0 = [] +build_sp1 = [] + [lib] path = "./src/lib.rs" diff --git a/crates/l2/prover/zkvm/interface/build.rs b/crates/l2/prover/zkvm/interface/build.rs index 5dc8be1ee..78dcdd988 100644 --- a/crates/l2/prover/zkvm/interface/build.rs +++ b/crates/l2/prover/zkvm/interface/build.rs @@ -1,5 +1,9 @@ fn main() { #[cfg(not(clippy))] - #[cfg(feature = "build_zkvm")] + #[cfg(feature = "build_risc0")] risc0_build::embed_methods(); + + #[cfg(not(clippy))] + #[cfg(feature = "build_sp1")] + sp1_build::build_program("./sp1"); } diff --git a/crates/l2/prover/zkvm/interface/guest/Cargo.toml b/crates/l2/prover/zkvm/interface/risc0/Cargo.toml similarity index 97% rename from crates/l2/prover/zkvm/interface/guest/Cargo.toml rename to crates/l2/prover/zkvm/interface/risc0/Cargo.toml index a4b709c0c..6b9dc2289 100644 --- a/crates/l2/prover/zkvm/interface/guest/Cargo.toml +++ b/crates/l2/prover/zkvm/interface/risc0/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "zkvm_program" +name = "zkvm-risc0-program" version = "0.1.0" edition = "2021" diff --git a/crates/l2/prover/zkvm/NOTICE b/crates/l2/prover/zkvm/interface/risc0/NOTICE similarity index 100% rename from crates/l2/prover/zkvm/NOTICE rename to crates/l2/prover/zkvm/interface/risc0/NOTICE diff --git a/crates/l2/prover/zkvm/interface/guest/src/main.rs b/crates/l2/prover/zkvm/interface/risc0/src/main.rs similarity index 89% rename from crates/l2/prover/zkvm/interface/guest/src/main.rs rename to crates/l2/prover/zkvm/interface/risc0/src/main.rs index e4c2569bf..c4c9b6251 100644 --- a/crates/l2/prover/zkvm/interface/guest/src/main.rs +++ b/crates/l2/prover/zkvm/interface/risc0/src/main.rs @@ -31,12 +31,12 @@ fn main() { let receipts = execute_block(&block, &mut state).expect("failed to execute block"); validate_gas_used(&receipts, &block.header).expect("invalid gas used"); - env::write( - &receipts - .last() - .expect("no receipts found") - .cumulative_gas_used, - ); + let cumulative_gas_used = match receipts.last() { + Some(last_receipt) => last_receipt.cumulative_gas_used, + None => 0_u64, + }; + + env::write(&cumulative_gas_used); let account_updates = get_state_transitions(&mut state); diff --git a/crates/l2/prover/zkvm/interface/sp1/Cargo.toml b/crates/l2/prover/zkvm/interface/sp1/Cargo.toml new file mode 100644 index 000000000..97a6fbfe4 --- /dev/null +++ b/crates/l2/prover/zkvm/interface/sp1/Cargo.toml @@ -0,0 +1,25 @@ +[package] +version = "0.1.0" +name = "zkvm-sp1-program" +edition = "2021" + +[workspace] + +[dependencies] +sp1-zkvm = "3.4.0" +zkvm_interface = { path = "../" } + +ethrex-core = { path = "../../../../../common", default-features = false } +ethrex-rlp = { path = "../../../../../common/rlp" } +ethrex-vm = { path = "../../../../../vm", default-features = false, features = [ + "l2", +] } +ethrex-blockchain = { path = "../../../../../blockchain", default-features = false } + +[patch.crates-io] +sha3 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", branch = "patch-sha3-v0.10.8", package = "sha3" } +crypto-bigint = { git = "https://github.com/sp1-patches/RustCrypto-bigint", branch = "patch-v0.5.5" } +secp256k1 = { git = "https://github.com/sp1-patches/rust-secp256k1", branch = "patch-secp256k1-v0.29.0" } +sha2 = { git = "https://github.com/sp1-patches/RustCrypto-hashes", branch = "patch-v0.10.8", package = "sha2" } +ecdsa-core = { git = "https://github.com/sp1-patches/signatures", package = "ecdsa", branch = "patch-ecdsa-v0.16.9" } +tiny-keccak = { git = "https://github.com/sp1-patches/tiny-keccak", branch = "patch-v2.0.2" } diff --git a/crates/l2/prover/zkvm/interface/sp1/NOTICE b/crates/l2/prover/zkvm/interface/sp1/NOTICE new file mode 100644 index 000000000..6c440f936 --- /dev/null +++ b/crates/l2/prover/zkvm/interface/sp1/NOTICE @@ -0,0 +1,32 @@ +# APACHE NOTICE +Original work Copyright [Succinct Labs] +Copyright [2024] [LambdaClass] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +# MIT NOTICE +The MIT License (MIT) + +Original work Copyright (c) 2023 Succinct Labs +Copyright [2024] [LambdaClass] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. diff --git a/crates/l2/prover/zkvm/interface/sp1/elf/riscv32im-succinct-zkvm-elf b/crates/l2/prover/zkvm/interface/sp1/elf/riscv32im-succinct-zkvm-elf new file mode 100755 index 0000000000000000000000000000000000000000..a6fe4d63571695577ac7342fdf6f59302b03d3be GIT binary patch literal 4120668 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

n_ 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≫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

&G(1Jh{9$EQXo=u^49hhhmu7)aDnFX9wIdQ%-kc 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!wCxUe4TWhM!w2b0;!4#@uPl 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%0A^eVv5 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%0A}nSBbzh{VI#S zw)5j>i9apJoR8~Q`17p-KA^H}K>DiYDV&8?pdsRIWu7K zdZt6nIg` zYFi3?Iq-8ig9}`AtTN!}SmLX4p<_=+5jx)I>nMG!S&7Rk>L`Q%h_CKP=n|ZB$v~$G zXt(=R9mPaPG0{;>W2tW9n+f8Z3F4ax;(HD{XXXt98INy9>KGgNW+X3RNPH{f?XpK< zEX_~VQM!scO8lqeItu>CnE6F?ls}nKM{&hx9(oiz(bH3gZ#Pc}KPG-SF1pH|E5xUl zJ`bOh=qJyjpDaZGScv|y5dCBk`pF{nlSSw!i&7P#g^uu;k}I^-#-|oqC661itDe%V zPY{z*RZ{ET7bOO7HSq1{UaPjY}ywskYJ7gp`gq>u2m^0UEPtQmu!p5r2VP{n)?5y4$HZJK2 zJC|_wZKO}LYrrw{oQclkTe!#Y+s)gh3B9*unQoWthPE=$M?3tljyax;7yn!D{XLvJ zmoumFdE#?*&B8L;o5R?detX|?+A{cs@Gej@DQYhN;w^8OLdBco%zR4A3Yz??~tpty|BZj z9)T6oYy4VL+jv&xy@4*2Zi`P7-?vHK$s~J?*hUX!nd_uZZasX~*s;{5u^%)wwKrjA zh*eeRH0urae+>3_*ym(lNrzsUTh;fyT(_a${u+5{acuo`gF`h%z z=;M8TSsk62zGjr3vhoCe!q6ddw31VFBi|A_#D0drBea=kUqI)7*0#z;&X|dxEtIF$ zu+sY_SJ-%dP~P>j9i7V=LgX3&Gjx4CknKm)MaW zVkP=n>n3}#^ldNtO7;kP6mqT{eZFCXaj@@CsYz&VHf4|Ax-0uB<_}*vG+UYHj9)+J{_3cOm?74b zv1m=evl!nf^e28f@B6-+T5O(UWp~i09^z9sU|V2o_@~Jp+12Vj#cy9J-(LQo`*zu1vMS%)w@>ZUU=CW0vY+?g{O$3trp_>_fqg`5 z$MJdp|MuIpz2qyPuJ#Vqr~kfrPybKotBQI5Z~t~HC^QePL-TH>(0o5StVi=x=RJNe zwb#i*uuQGLY4k3AEods&ITu_=b)Fu ze@o!MB~Ejq1i4@0oS6?9kyXd>sWDEyH34Zl`+WoqB@=J2hj;_0F3c!|)I z_8O5dU43!MZ=z%<`>XEqTHZAPpHul^-dD^8K^}krxgdfD{dV{kBbqlIndesa=Ucvx zj1gJ$1pP~xz)j#m;Lrl_2H^F;BT5dbJyhmO#lqOc^()yKGUMu6Qn--$AvdOOh+N+D zH6`QAR<@C+v+>YjC)#y5_bk3pVu~%Z>#)QN$efE!Bfl3I>fFRmb@pMGj2CuqcO$YX zt}R%n_UrZvzWfn4MBlKn8CNB@vxQ_aSC70~aOmg1pvTRFM^jgA_dL6)j+#5mIP0IV z(BmvSvcba7MBTs)^#ga$g}2Ye&oo!$xLa~XWvcq+kkgmM=4fR9WjXsV_}#uoUl&Z; zfAMSJ$@yxP7n8FZsX!=b97pD*L!mM~sT$BDPBwxd8UtN@NdlCUvQG(bkgpY+1qWP-Kex%6EF^$0q0O7}3Xm@n>c8Q6w>w7|sFYRV&w~uz&=* za0}p$fIB)nE^?4>Gx;`?Z!`HebGC1Te!=YkHwkVhxLan&C5DFnf|~`m58Q#-aaFFh zA#e-ej(|HlJFd#dRuiJXA^IDlzoA+Ct8%t=fSUxj6WlGcZf6ka!YS@8P68<-I<_EFV8@Cx9KfHyiLUQXfFgy~AlA<-juz*Hkcm70_RWQCMD~bP{;4)PeEZ8`5&ugLkL{oMeS@xD&iB z6_aI*hd08RBf;wiFAH8Dcmp%y<*pOFA@B;|jes{gBcA9I#-W-@=a5-x9B!<13d<`e zzn8r38lh>4-rpL z#H{Ovr}GZ3Mn6+=wnlM(_N+X6wV5FLnQ5G*ON_aRzGkAosl4sduM)X3Uh2wtg$BGh+fw%Hq8W0e7JzrjcXAEMcgk_b>)6o zp3evD3VB{Ph!60duk@c+SMVzQ=jZs(t1I`b_{|)1CWQQT^M3nwQDp@*HQ4|C%$X zSE*PUi<~f$XT{w{9L=LI5f}P&AofU=6~51N$Rkd!4Kss}TgT^@Huj{IKYyJ~>@_wYe(k)#eVa7?YiTD{Win z=*NxRP@m?G)({hHqE9szZQ=Jz9Gt{nyW|tbe?Mo>H4=N9J`X=@75o-nrt@9%fhX|Q z6BFr;SKQVlj`^1_DSMt;a$;LsU4{2C7W$rh6m6ZW{N~L)RX)xveskXWfWn{4x6W#Z zTYH|=)mg8N*uE>aE|3^4_YwRU#4fVW!u)zRa?uXPPQDDEvS#ds9?fGVsh7HCy}clK+;*WdSwYwq^m`9;3+M`KJ>&{ocKM%s=&T8ob}1=bWH?Jw!I$~)y_4ZB6Yzu&|N3M&G5*Ep+kN z3HVVTPLA1$_b;4)KjXvKPlne{z>oXzYbV1wb5$H4UFtbAZy%owpEm)Y>%+HAh7+S( ze7??y-#Zx&zbV3(`S87y;T03`gb)AvWH@}f_%SdKK<`MUoNB-&MZV+E%I2e{#7Q=Ci8Xf+A^mXD9qWjS+%Cwb?75-tyioM-qAN*I5r|^0Drew-xmab>mm;AKd zkoh$F&8N|CKEuA`ZFWoIHuec`vzs>D#y-bwz;6S7n;q%7jeW^a9bCe4k?>R#i}Qt8h|E(QJRH|oHyXZY} z_1(X#c< z#rY1WEwSFYsC~V0@rL!bcDn9dyt~7>Ak$%7*wf)$*xxZZ_XjyV$ooPb3-YfqLayKHvcX2CtW-nk&Z-nj6Y_0EOI*U!`k^p zKeJx)Ryr5-fZxA9cfF+>7j9lJd4jw?lm9{b96f!^Hvi>hZ}5jF?cldg_A)+p$wyB1 zhB#Xndi`Xt`SX(=y=}Q5X7*?Yp+ofT(VQu<{a5I|ezs5M!s8=_guwRPEVQVF&+=nENCV0-qD^4m^=qQ&)E-th4Xmd)HYRXe{S?WraLN6_bOfG z@s2!OYEINu)y-T=J*=iupU(M{LdP5jXxyMe!Y{v!Of z>Q{JUQ%K0z2;J>TtMC5#c>IWGAGE7IFZhfdc=%*$Tb90Ev4wXV^lc(1`}DpAfKTLP z|1arV{6|y!7QaaPHqo!gKa4%cnY@B-M6LdX5bU;@QHTnQ&bqqqwT^c4CdQtPOMe&N{f3c(7D%6 zo^va7jj`uuCBL>>=H{x&YhVJF{qHxO6*s_tBJ zi{@OmgXfT2k^T_vM2+MTem_b(PZOW_g1`TT-=sFA;FAYh# zdaoL)?%`~~1;z+WXE6F6~~y(Pej zyPRRX9`VQP9adP@GjT;N#5S2nJzHFj+u%h;@-^B;hiZF~c28s64lr)tVB9!UH0P(h z_ou*{fqx(PI~h0NRls%NRRaG8aOSJ+0Py!PZon&n2Y^=!{0qQu1ilmapEGX2D}Woo zD+K=Mz;^<_5%?DvH{j*KgTTuL{vO~5fL{Xq8;l$9FmMxiSm5sj{(a!hz<fro*=#<&451zrNY^rzY+-4uPMNNec_y|KIEZ7yTyR&X9s&d!+VCLX;J z+ZC3WZSHX{K;4t{-J;id@FEvEPnA*HKTgP~PJL7LJ-X3%gnsSNjeV<;>t*=ZPnGNNyuKaCm(|Givj4nX zSN%$VU~0e8Kc3nz?UU2`)zH(-9zrv6uNgmo6Y#11YUyc0?lmFzn(U~+PZ{q9;Pt>G zz*~<-MRpeDrqWkhdZIiZ<@qSjM<>%0K1ACJ<(oWRZ19FRlA|iNv9+#!>htI`>bnQu z?a_96tJS?rb89Mf>%O~)uTGfm7k6?o( zRbsk(qRxU$RCvC~8{7DollHvVPr95*wassFHT7QfPkytWJw4RIk8PJceA2>?-5Zi? z7i;xlbkZMA(MkEvMx~3YH8uDjq90C{!z*i9W1&NdT##7OYm|-jKG91(UDkX#7w+fG z-~sg0MrdpB1Jm@=hMpGYpoKYTVGf$7>8CBsaWiw=#2iPD;t$HVpbIt=<7xYP@LHZ} zLN{$PqIwfLE%~u}&@21VEA!};M+LqF_!8htfJf~H;Pt>Gz*~=E8|PbT6B~#*Ei2AT z8XYEo4)Xze+h{(_qUw+Gz**>PJ0w;kLB zxEsLTJUec);LZhC2e%H~WwYZp3GUHz=UVAR?fGvgn+jhx{+E>Sbx$s&kJ|fop7e1}__l@O`#$_1 z{P(uU!aev)G?Vw8H`zAx?BTTTwNZFf+VJkhtNeST6Zf=AbvCYSk(RoBRhdx;axU0p zk1u~-s+M@3iMAj0?7q0)Pwg=Jq6TjWaOUFGQ}O)wy(&1v6>_d2f8OvJ%SR{S`F7-Z zd*9)l$EeYe$4{-F58jH2F^LaaW`uXKuT-tQ!;TQ!J$;NOu%kxpdL?ionh@Dhx<3Mef?(=)Y{pZ`^ zxq@r8UH#PU4hkQ5>`EVXU!#mZ6kJZYht?VAoVr3ry`rew*)a9}ckh5!A>{ zw1b=$_sd@B4VL)iw&Ay|9t?Q4%@J&?7tnEEo!z!VPI-3B4siE_`{?Yr&4PP1G`$+! z8^FC~cHAbx75k(N+@;{2J3DSvaIsyLt@8rw@zvRFSmY-C1sC0~Z9lk=&W>BJ`U~!A zaBl$jmf3M5s=weu_ianTJ$H88)}AZyVWa13oDW={7=Cg2N13~J+4~fG!0JNhzDDWi zA4Ar+i=WA8)7Kgo&t2##nCUW(K`#<+=t;*G6{p5Dd!@J$bBlk3ThK(Kax!YCE3d#BGzT44quh8CF ze4pe%&i#+?l4tmKav}5kL!MvJT}$1W-+YHW=H#CJrw?hdkNtzdC4a3ROKtLUf&Z9z z<&W{~kBQk$eN4;!mN+5Tkz5+&mHmXu+ib1#an|`bAMHCg@$y;O9GzUe=C&Hg}!f ztgj=V>012IA(=-{r%OM=+G9TxKcvzr<0ICVW{tgxR`@S5?2<2FbID{G1n!DGkBj~p zZ*^LJaFQGbV+RXI-tJ~c{y8_$t;_jmiJMd*|=QtaAP;ULTVhx~hI|_Tl2b(}ki_*bnxd zwD@R0e+6Owu?1#6E*?-kZPOvO8$URycP_X(xOLzzn;kbIxJTEbGp0k?m4+!n!Y2R8xk25>jej@vA_@QGvo&L7Z+TUo; z3gmRiqhoLX$!X4;4l!cZmec$>*M=oOj=xW{!uNrnZCsM6w34rR=O`6zq<>{eeO7X0 z+7IF%fkx~H$l2lTZL#;&Bm0k^HrP9J8WNv2mg=7-UhOucIddEFXtx<>>bDV}cB|2n zxz%Y&+=|_Kt8-TVQ|!5Y<~li7q5SKYjSZi%vld#ZblDr)^MLZl|C!JZ>yJGH`91jO z2KJxLp2YCHY_0H8#Z!y>5lua{=wh{YL%x<;O#)vFd}2Q$0=%_6NDPNS5Me(o)OXj7|Q(^4K zsyQlrZ#rzyr;X&}(_xzFKljvhSlsa6_si+9al7T&>9D~u|G9sg4%2*_si16|soxNP z-GA;srazZ{&F^P$I&AP2|GA3kFzsdkIcqvBKI%Vr`gBq|KMCzEfcDO_h)Hlm&|pbKJGg*7!|jI?xsu~5@2D3u7O$S%4r^k8f1d84 zQ~Tzv;X%d!z5mk*#Yci>5S^B_6Gy*||C!UMhvZzd{Xn0@ihV=v-7HP4l|36d^QmIl zyng~Qe|Z32giU$jgItZa=t3!F^_S+y=qb(K(KTi|&EmF>AX~!A*d>4E+S127P8GT=a}}-rk8>XuQUCk;llIR{ThK)y>LIzQL}q zIO*>N-=MA~$&Y&LUg8^yaW=@;5b|*Rxpb$jYj|E@PqoDS3|9ERgZ^*g`hSQoY1c_3 zdYR-SUaM@1*1Xp@GrQ)X$osDByX0zZH#^AZz+Q~l71Cb%I3n;N9cjI(Vi3?4|Oo z+AF_C`WW~6-j%&Xjf3j9wtZs!C)&iH_xz-BK2x<@ zpTCi~S@cdNe+J8}jsw(Wd5^|<{t9;+e#S}pnI-?N+H0#;KD1vFuM$?z)>4mm+hbZR z^xlMv4sATd{?9|(bmPm!t9+T5iNAVQvmZV|od6vFU#=xqp8cPPh@1HGD(XZBHG3cM zy}%y?{y?oR`PkjAP=MMT#E=C8!wXAZvm>kchP{l}*G0dcHU{X|`05h)?ey{SkT^W@ zF+k_|Dioc^e=*y9$r#D^;*%s+h4?LE^I|&-@zm$B!^g*m_>1EBoMw*4_lfMDIyTzh zV;_VZ_Q8yO+t}M%#Wyn!t(>=LDd3MBf=)(w*JJGMZDVh56=TLYM1eN|uLm9(;l0=v zZ{oX)^FPD){sS;|R>61(pYMZNRcq>Ck}xm4&z2m zggs|VY-IY&jQ8ZT1=HKhf`5nku7d-jBV}LzJ?#k%&)nWatQXF&yQS3d6T6_x{Djvp z`bMAJ?WOo{RiCbTGi|t`YszMRez5M%Jb$oH_2IFZ+lasW&9vc$;%}Sz`ShYwo`1=1 zog21WGMuZT=6q9KIeettZb)#Zs=b`GTh4j#vsVU#Xx3Sh5iNjxLUf}NZ)~aPD zyZxBf%OoF~(O|+S@YgTR;=?ZJ@Dldt;WH|xEBzmKa~*kCGC^wN7{{(f z)JOLJsmPN(nvyLleqGUKs6(R`53!N5CfT3ALirEhu5#e2Jbs0Mg&k4!5#o-xU6&KoPXS~$VVvrnYb?YFi*`}Pre1o z{nPLSYm9tAk_)FPBYOx2{w}_Evw=@Oh@Bi{-#3U~Q_jePi*JWB3HY!XZ=F023Gz5( zOyH8UhV=}bJU{rrwUt}M4mR&5XA$e3F@K1$mz+hdwAFHyGwjchlk<2GIO{$u{6^;R zZd=~f0KC3m-pL>P(X#$ILykRyeWC~bdHuT6kT12!dFNgYpJXmm!Lo?4G*g<|_>D;F z_F%OY#!k31h!0<4K*IQ@B}U|(v-_s0>rT82eqo6xc@e)bwKHamnUb^p$uEGr6Wjyf zGGDXdlJkT(7H}^C_eOC4e0E%Nq|je*!{9c9`_9>M86O!B6?d)Zcd1x4U&Aua0%d52H6e2P8s++V=XO-5~9&Jk+c! zp@ZR1zw?)T1ML;hOln^mzAyL-ssAAFhwqdd4ViKW-hvKMjt&t*5dES!2K1NrBU9BF#6O6?7+%1++%ob<5|@tMn&;iZYZQHYye4k& z{^vbCljlS7yy6ePMZfyCg{~~$=G}|0;GNIeQS!t!kSDI5JaG~7#I-J4V7DZw+uXju zZrZTGj&5E6d;#zUtQl-}88i6dV)Kd#erR@kwN(a}&CCxom6Q14!*;Z84sBM=$PcMW z%--W1iyT;Qi64Gw|7DZ-;V)GjpXeqt^TS`f1%CLmaemkUKa9c;o8X61@8b{Uhmse# z6@D1O|6jk^WbIJTIZqvDy~>FuII|1Ci^A_D*IBdh!%P+MD&TW~bA}gqD{!e%TYog* z^TX}a_@U&ns6R^mw`W3j>ok729exV0gdehhY{PS;9jDRUVUbJDh@#6xv*dY0SBerJ zs&ZG*R?9OXaCG3r{K9*Q|D`XyBTs&qqvToZDfRnv=M4P`gA=AdoMk>v4X7#n`A+)7 znGD+C%qaaSwsY4E?XZ`9lrzxJRM1ZNly>f-9ppRjY3dKt4l)(`GxMxz&cJ!{@Z0!h z@W;kwFGu{c6)rel-GlfAP6KBKrtyBg@(i%fI)4#4Yo4j{#y{ip{`4Oee^2m! zt*^-Urt<#5ITO5}J%VxGuRZwtd4HPv)o+#er^VJfh4;tHrt*Hh(&POZcz=dmluDkR ze+utk2=8AA9W8|SFJx>M7|odl@csqx{sr*9 zkB1#>DfC|K!X&z{$vNgUaX`$qcg~x5jXdy-W=IXP<^;SVcu477Eql3cJ8U<15WkYt ztt_=A*c;4czphEXEi2S@*lySd@1d?3wxOSw;3CFi6|%vA2eB_X!K2*mHJbI;3$$1% z_HASoozB!nM|DfgD~&H7#unbLIZeqckzH5X(ID|LFM%^3+`YU5KG*;cRC?plpnA?U zw;G~5M$N5GUx9B=ZiUAM&@V+-m3&b=x0@Uf$b{y0B@_JTJ~547wZMm);hjzJ;pp+u zDg25U58#SV!$--JdR=e8NzA@>A)xCuTSJzjCjcX4(t@AK(?__X4~Rq$cXio=KFO1JB@ z8=!yT!_gkDdH8gu%C9y00_&&BS*lm1?hVc}$e*Ej4!#eGL35v&&z$H1qd8w0+lJ10 zQ+I^9Am;^tO^G>nv*J6vFM}Ua`SG5FF4b?vN4)pHe`dZD{~mM}@y-s?j_@51|2o`AF%g4Ub*J2^BwKG)A`O|-s3x-9_mEM0Xqv%v3&l)_enmFNw(+U zsI~Km=I(q8c1p`zkX4+af77z6=`F~rsNlXyS%qw6j*&6N@sB?tu>{nJ3k=^EJ_b+x zIb%ZnQwE<`5ohoUc;Y__U1Q7t>p|fYUCDoutF=8l>YCRe1E9leM0eKaPUW40w=>>< zxF4a~ym&%y&UX8>eqv_585?Q5&)Tc@e}^C8+Wi+Oz4@5r<%qY;syBP|-~6WZW`#Sr zWL$6lKh%$Ka5XY*aM8V%If#E&d?|`2-GRNhLgvHQV|TN!M?Ee6WG>XVX{UM5#d)r1 zH)>gQm2;#WRsXPF{EVIWsk_nR<*K7+^ViH@iymAV(%`M4lSV|3$0y)@UX!H$kYGpmnixr6u*skPt{HHf0$q53N^kTo8p&Ha~=QPG#PPhn7Pn4 zGT*hHjL^ll@MT2&l{eH)Ri6j{`7Ox^^}fMtrpO3&Fa1GJMhvPw7vogFgwjpZ-KXfL z|22LIuTLG*b<gO``%Zl>82jPc@e+Fqr!h&*5DrR-g`tJU|spY2hSYmzY0Fs z4F4U^v5Q{<+q3TX);FJ|&n}kQt1_pSSt$B(du1M-$$s3klpmLV6lI3i1OG*bT}92= zAhl;XliRW?V6@=FZQ3n%B=OhF^wjMYVJmxv>VMIP8Ikq=oUQLqxNX` zZ}7_vpF*!=wEbV?XDi(6=?m!wp%r5?y{df&-_Mp-`tDZyzthj=eeeF?qc1%47W9R^ z#-(ruRdv4dEy%N`tFAAB2|AU%@3s4lU z)4uy&WXr#?r(JEgWUAS-u9o-;k;BZr=%j%?noi#aJB?%}NbQV}!8s_0b5BMzVLDMA zpHz?9TgAVEZ~rL%e`IDfFMcTTub4LV!|+X^JLLI>9`QGdEj_7i?HbiK`%~WDbSK}- zzOS-__R2okT;%Xv*1F`;nVbT=gm5x^ncBVfO9+AG>*PaAnP5&RGuS>?ZzCzW>Mk|HpPz?%!SD|EKK+ z{@)U&otj&j*U-w5k}psb`8W7YLo54k+Q|PasKdasw|o+P`a^chUTjzNuw!5PmAu;< zFYUYDy$}A<()A~y*Cyzd^X$7h&tA6_pWRZsA+eMgjHRk}6#izR;Z#M55nKMeMlF_r zORg(xX9&6?Z`rNg&>-uII53sJkh4n?f0X+4eIfQ}OJW00X~U%^H3))ge)tC2yA?m4 z%Av>{MX2?~Gx(Lgd4dP)5otr|a_ZjT>6R%mJ9Za%`=h_H4eHhwxqM@`IgllZWSyJ&cfwHHK(SNqRPjfTup*4DA$_0poiaS^{(AW;_vUaf;{6_c%xFx^aT@hGYA-=Eq2t6{e$O?c`D!PcsfPdXjr|e3 zIUli`$R*U6s0LmQoITJCeqP|@8?x(xlWWL(r|OH(^R$$lFLHxtYpHv>S!W50=PjO} z$Mf@MXn!8?dBEoar;f(d_NfcPzLlbdV*Brx_EVqlW?bZZy>Wmo2mSGSd8(|%&ij@4 z4bmSXhBYYqyNrj7osa(#^o-w{e9bL&GFF`3V4Tw`U+$pYyq7P8igXfgo ziC@<{r)RPFs_sYIGc4R}{n^>>r_(#UaZ)Uw}lCv))IZqki%2U?skL2Dd>-ATb z*)C%$ye{O8Y5JE2dr$s)<-L>FYdiP#N`JlXG8*+tId8-oV=q3#UVMU_+CA*ouqPw> z{mg5u&S=QgvBv6HV|A>t2x~0D8jGNRL>Rw%Z=GS6mE}XyFRPrtaXye9Voh0ce}WIh zpGcj!7QdpGBhp`^@=ZS7rT?1P?@D;$X~i`J%@Q||fgkjo#-8_Sb~Jw)aZUm!Za^n) zfNzRs$O{fU0=zX(ZNQ`W9!_1m+TVENDt*c<@^yz#&_{R@W2I!Dwu3Q3=43(>Yd6nc zRHl?MD|Mo}?A;@OkU{nErijS6d#v%YakgZEE}e+MP6p@jA73;R}=A9h_LZ+P7w2yMs}D z!y$j|PLiqGqjm#6s3^Xurn(ZB@tRn>@of`p_ig{k*}FyD{w zJ>B#M>-WJ^)^GL=aC@fWsy&Un?daT_?S{ z)`veU@_cG8Whauq*`U8pL*i!E-_5MQO{~97tiMgHzfI1W`J0TE%uP;9;wIxP{U+zE z{6|@nn`KQ72SSTo^O)#k$j)W#2PgE@zZFDBKp$=|b1Txs8xjNBsuNF^S?*>l*dGwx zPs2x?d6)nH4GP9@wLX=unf^MuCi96)3#C+=%G;=Semx!ji=l>xslV}GjF408WZ zxW8`VzVos%=z5EYT~~3RdQzpokrFG@#>6&mijC{BGv^s z^Eji6e=zOKAnkSdoh~&9-K=@~Cat_w}LKau}RmJN;$2Tk}+J2A68rE09oGHcwRzGhs%{#U+@KF6|qiDP{j-k%|lkv7lIKk*r>Yd(J2e5u+G z3%xPHQ()=nOI}A=xdBK^OrkIGnX4n6PFv!`sGebevNS!b7RV0_2j;3+tjlQ z&GmLekMJ<+He{%cN!}Exktww@BXz_oG9G8@YoM*mX@@pxcd6H|B6+ixI z|C`q!ht?pQkgYmnCD;7r$Re>tFSn&GRAb_DzKh@b<#vmLuYt#NKeL8D1?jWso|D=h z{G@7ov3ap-Th-N|ZLjWzv?b3*UIc9t%Mv|IY)j_D_5;w)gV5jJ!<_MW z3VJNj!O_8iMh|lq1o#2q4+H-z;CueT%l8?mu(1WwMFRsNZZ z$8=dUjMt6mK{wh>;4~k-(KRzSNFNm+@cOr!@s${H@>Au-MwdKQ*xPbVum>SmU1DYg z&OV8P>&%D1(QA9w(jK}|e!1kNoA~bZg^ZQ(Wb_Ym)v0&IFF?1bu_K#nVk6&V4eqY7 z>oYaE&M%Umf&GfsWi_;4V>c&i?54UJrykuc+Fone8T7afwMG*(T~7>FlMY?aUBEi0 zHd(&bSdxd{pQ&|3e`!8i>nzEz4vyD4=rw%%LZ>l7Y@=M!FY4u*r`}8dLe?73XBIhU zWr%O@U&K0NzhpP(4ifAO&0WYk#4oYobmz3@D9t?$>jj?^NH13@MF`Tu91rF-9Lt@SNmh(9w%BrBbU#e)D`VHu5#<*X;7zL&n5LKF;q=#r6ZS&R_Dr zPZ!%4S>wyQ!GCA}2wNF>XyVrm=?gvjO)p|SE{A@JdDB-IOA{-E#*sIo3$5_^ag=A| zo&ju)cP~voHs}a>2;STL`E9UU>)wUzy$qUR@2ZEGEodqtS7@rWXT2db)go7Ds#(E> zh6D~h$Q7Du=(&=1ud*X1e3`!n{_vmKP5d?U*TP?`*kFpUpo3#khVfw`HuWK&@Aix5!OHPa(fTS z882etL*6^?HOaYk_rFek#}=Isi4TlE(D_X6XQV4SXIu6!OCkNUdI zh1`Gd#QnhrUzbU8|NRs9EMT*UnkPTU`?^L3fk+}|*9KOSMfEo22Xk+16fogrt> zWX!gi0Vg`OucD7z_(b=pKF4p8xkv?qzwz~(mp#Agq0iZo0<JD^4(Lq)Gh|+)I7r@BDDg77S zHB}W19+dMQgEjYh?a`L#WZs;;uh`b`7tPn~`flc0+CiW7+i^G>hThD6cY?DFx;iIT zY+KqHz9;w!H2u2e*Xgz!Sa<9pi%*XDN%G)RuZ43Ksr3(N?))0 z0v^ro1@~U@BM0bnfId&u_BQc3dGm3Vq7&A=|NBb%{vy5$a&KhFy|H_~$O80yVr!5K z_3g-y4K?sx3%CW`f`3@>c}rqloxNGU=OsOMu$x+`2dNX)0e>Aq7aSx$btGWzEEu_W zawdoINZtO^irB!FI_sgrB}J9w*An|)`NNdF8a%vmr0hn^+_Dj#q^%sd?wgj`@jQG= zTRD0YxJoSyF-YcL;8(pv#%bk<^ES&I_=1ex%AsGq z*D|}0+UU-rui8;PU_E&)bFBwbp-|9zHTb&w(o05cMxCX|ZerJ`#;u0mlrR8eyr5Bh;RK71_dh zEujlfFZo*ThCk7*{I=h^`zE}Hy(cs4Z`o!;1!>ZKWs_eF|%i$ zC3VNtbqBeFd*<1}WtJs1#|&Unb4*=<1%L(WEN^_Iy=qx^=sR`9!!HxLNgbcb?@gcW zoRujt&dQfKEqbZZg8$^qOsR1u@_VUH9g0L*(e|?BT($U}%iv9FookCz0dv08FteWA zp}SY!sasFosk>M0(ygEDBKOu^y89#Ql<5Py_2auVTkj*gx%heyb%JVgHH<;>|0&8{5M+$YQQ-ije| zH5atrIncc6Q7@sm|uEa9obJqwD9=xgOS8*cw8hAqu z<5goU)oYxk`T59;`A&0UzHz2L-#IgH8LV@sC1Dw7>6UX=ex9Z4wZcn%{|aNO_VDEX z3;03E>60O+&u%%#w!qUV6X=xijiwFokTV)$H+I( zK}P<;7T(eEj%v&7yh!nmksp1RxPrGieeeYMhx;>lLPUp8m4~cwMst0>klTUWqkZ&f z-TjLXYvj%1{hSxQS=nx%a_=mEU2;hd-&=mtlYK>Aaiz}Q$_%_>@HD}j;1z@0ZB6`P z=(DoV*dS*uGo|QN@QrlHTc7DHc23w?ovC7ep#3~{nU1e7UuM1MR{Hf9A}81j=*NdB z{3U@dtCv}4d{Mrw%9edJ_CI3Ta}+NSK7dchaKCsiXZwhcIy8wNR4Y4blU0@|iM@EK zZWTP9kh|fFdg@u>3G7dZ4E4VM!{~R_)^*`U;FW2O!y)3 zHHyBXo=M}st1H7M;v9flFWBVc>*Y`E=4;WD*Xyj8S_ArKz0|T^YFRHetd|^_}{TDq(peLX=G-Rm3 zj@}UIp$2>ZTz3cGT+Sb7N^OzVUcDXJ8{;fCw(A4x9OnN}`LWNAZ#4RTfSrA(s%_v_ z#w8zMz$y`bq%jU>!z1F@=s)CqGj`guhtT;#@Cd1SG-w%pm-1}6dRF$5iqBc>b-89_ z%5%fDq1TOlm(fmz*ABJar5(5OY#Hk?{XkE>Q&YbDfZtXyLOU`C)l=K54xtx*@OSi! zbJe?4er{^S`|U-fJ(IrCUb)wv)KoZIyGD4LRpPZLxz{Ft7ybJUv2-WsBW+fY1N@NE zb=^vGBHbIJ4ovlJsh92wy7&K?mfMLeXDr1Rt8!y{>oQ^0oI||C@`S1fB>dC6f3^jl zdbh;uRabMqe>3?OIdj?EZ?b+^8xbv4x))oOcLmuaK6`MjbKp|W&zF-wn0HrKuZ(rR zNB8C|z1G=JZlAAQhOHrdn!I$J!*#phnQCt1SH-B+nOl)GVqMfh>f&0GG;*Pz#dBSU z;;~0w;2zhm7vlB<Ti9qn;QBM(n?B2Kc!u%*^_b|&_!rPKzo{9$=%Qavl1F{H z`n~c>e6uB2cC1_xi&-TrVk>Lsz%x!9I~dY+x2v`~_4(3}dpo%$-fd}al|fxx13jRL z>q4#<``0`CYpKfJXh-3!S(te-5@0xYxboK<;3|I=bF18;yQzQL&vg#< zPvv?y^&gNaRY&KzLuqQf$~}!5uX0UOTLPHYUhNKj7G5v+s&rdjKMSvy-?t+l`hf?i z;Ud@Dkq=zE_h3U5bT^cklk0jU?i8M+zVIPxAU~_QcjMDLd;)zpi;Yph-YC%}uW9T# zd^(*6HS5G@v|M)q-21@m(v0sB2lPG8#4XrPPScmstI4za`8&vi%6#&Sd({HXz4(Nl zduo9mTW}csD>dgkZJP1jjhge_t>DZ2zgx2`Xrow@>YoDWjPo?>!V_b$cjH_7+;_mQ z1wW)2e;=i$^9t}CEk@2%YjKsT1;aYkbN{vx9d5Cfd$N|ius_mbRiDwFroTU#3mi+h zzx|D2ImXG@eSfc|E-^04{rHpchxi)dHNta#FD)ZKsOfWs^%LxX=gt2fIyR&}Ec|L; zxppw1Rj2MXcxU_yJA5<@eTAW~F!U9MzQWK~82SoBUt#Dg41I;6uQ2o#hQ7kkR~Y&V zLtkO&D{NQf!`4$>(AP6uL(tbVVQd-bi*w0U{b84N)LVI!D=@CCE9fg9wzZxL>&Yzi z#q&?1V{>(fvO-^Bseu4}RY(m4=!<$l+!y?AS9h;2pgSbWbLR2{HNBxP*3F?#=w^$b zHlI%?44ULucPKA5|zK(60WE%*8RH0!>Xsk?dt-hT)6mb0E5?Qj@_ z8qHl%1HZ(+=vtsz-=-F8)%SFF@k!lU_c7hFEN$i8t2JxRKeWZDB5ABMe&s${%lA^p z^#hAFcX3XOo!=SA-Q5|8%^A~kbL6^-{Y?J;U-sTSzN+f#|3BxRd+yB~;6OmMf?OsM z@o6`c+DGrL1gu(X9}H3ltX=|+Xl0N(AmQXDVG6YeaI6(EIF`0LV(&9 zhcHzuq7Xnt@_ny!Z$hx3X7`FbDel0suPK*{@&x1 ztstsw_MZyW;orpn?E;?38M+iuzuX35_5RLK_V3tZn)KL0)5Q~oN_P)1$FH=#}BF_Lm~&OK;C57O^6^}t5yr%1D%^3+9@RU6gQ zw#Ssc7up0YRrNXT0{s#dl$-044$LoeAFAf4#SU0Rtl~x39-@ERgs=nH>*F$04Ulsi z(<=>#onu-3%8#f~qYQ85-bU{+`cH2P6TBS4pX0)&u0zLOu{WkCRvY@ZNrrwOe74VL zA#dIh`htd-v#A_CT56~<&}dVs>4cCi0^jM99r*3Qhl4sA7IPJ{ueI~w0kgX7hhQda zhq~QjVeg$gOz&6i3|%(TaJQtr@1XP5So)34@cV;HdEUv=)3yZk(zO9e<847k)*fus zX`R?RJI!>`==0whj4W(P#@F^ZmylkQz69Q})&^9`+Q6V3qYb z%y(h#6LnEtwTm|4T(T>wN|C|pF##PuV5n;P!llSZDeucx2XyH{Lsxe+brsiquS5K+ zw3fPZuI63U4sb~B(E&QqfUal&bLiyTt6p6P`m(*IwwKc0=osNE(G^1f>O6cGw$p~_ zzG`Tiw%O84H(5<|)8E@{sj`46ZJ?)(Ais8|UP>FteHHg5^n;--tTX36t)sL7ynh5< zzuwSlIOPhN(xz%q7#ZA5z4)H?wtDd_e1JU;_>Oz+-U+RdRb)gB+Tf>AgQT3>quPZ& zfici%gC+c{s@}1LpLGd1O3$~$I`IxNf-DZ=S>k<;D&phRkyo7&H^QNK8T?t*KpAVq zSJFT0fqAA=y1&sW3mf`Q=zV8L(<|B0NF7Q0j$anf-QTD~9l=B?UuoD>rL@VQP5i$h zD&>L)qPpr@+UT-CvTmfS=9+Y>>^^)!;IV;xxAZ>V3%^nSvfBeX4I06dx@te^x#zhq z37M))cm;Y^qmx1hkxS}Bot&IKjq&nuKu=s_#;0}&>dFr6?;Z=s+wTubom4e-p&o88 zGo)ANnQAEi+QIm#eMt7im35V}mjrc>+B$J&#*EO-j*?Y2Xo0{H9&XrK+xZJ>|(IrCFL0jJAtbT$p3AJ`L(k6y$$fiWStEO-m` zn;mr;4lp;kAmB7K$ed}wnfIUQS9H`Y#s$4UFm>_AV1_mH+XK;4&+!cWi?~=a#{s5| zpY~_W&lh2XN5ROMC+tewcdIZRTVkirYP7n?EcdLUaD6b7^{6&{oZw%B`PcJCeDYG$ zIt$x?IWTE|k62z#F5|(_!N&NuD)Y9k(L2Ca@V71sGvCR)>n@&G%JbX2`2%U2zcL0I zN`2lATF-|Jhw+O1*E%yFpA+iY)ntBjK`>qt?(K!Pr2aW|oYl*;JS%)eIUiA~P91m;dptUI8Q5WR2Jgv{G>jX}1?<1bxWPX&ZZH<$YgZF+ z);2VHbL=B})T>5(buK>3Ib!#ks(|@|?|g^)Wt-|I`bowFP60MsD3-0V7e%f7Hw|m( z-`JD!6T^*u#U3%UiMje~_LBK6`^db?J~BUIpO|Y5_o7?b!|`7BbIc~r>~{?J;xn<= z2BJf1Y!${g<#hZ5e#BUL(~Exof=j^nrqwHKs4J=s@1c_n^JZB59mk?q#{cto(-rpY>ATB={rlXL(q-Z4W@QCpnom& zn}zN?h+g8`L5=81^x}Z0*)yZa($zQNzw{J3;3@hY4p{C7<+kV_r2P5nLiG@Kn%xjSPz=iQiIj@`okKJg%S=-FM+AF;41 z9bs8#qH~ulBJXX63NB>6Nv=PRs&o4C{jit{mqt~vZ%kD_OQo9!47qM8hz#X&(%`;3!Ao1+Y{A;;g>;slJ#b8LWf62Rrsl>viI>k!9VD? z23626eZ=<_F+F%N`O{y`+!@swgJbcWyYtk4-VKhHou}+BQI*>eqb))fWfJ~~pZam0 zsyswr^LR{6qR*J|Ry2NUmpnBv!&JjQHuM_a?c7P+vv3|di#R?-q4X#Eat>R?M!Uu=7y4&j2RuB@hQ;p@ago>$T@ zVm~VAVol_JPfQQUr~UVsIzc)+Kc>SsMs?|+m`>XmlktRd`A5#<(MZ=kFn#*3a4CIG z345zQ5ORCamvtM4e&5rmme28(y-W7HbY@E5dX(<Ddmk14cIj1d=M zf0=1AZx){wW^Smd4X1{s-TXETB>Tf-+i+@{8t@E#{Z{0(f-`MX{X6WhYWny}WN)#h z%eY3qWnUIuxfmX=psi?U_Xcb~$EUBhr$$v}0c|;zwnx@W3t~Ev&XFHe(k_GH@7xYC z@DtiHL|axJZObg$@+@fAZL|3*O*a8M3Y5Gj}ov?Ntn~Y4Vo# zoVeB$dqpjI0r{8%k6G*&I@wVDCmYsTA^MG>hC1h3?12oUen$Fd`lWPyBHr8M(`)k5 zjxKhFwTM3cDX|--=6PVqPBy#_4TVc3&XQKIk(iv87i+#v0F!W%?N3$qX*(vCrr!7^C&a}7C4iim% zZYBKNAHJIeO-l@YZV7nlYEw}T3;@0y_7Ehe$LsILJJ)3=ruL{+FWbioElOY{5EcriBq z(w*XW6V?-7L62Y$-*GiOePvWz8)8arF!c*p^8L%uwSc2Asz22Jm|uV1F3EfHtjyv6 zI~mhK?+~^Qv0szEINRyJi@0Wv8Gn~1Uh;KEao}@bzqYyT$BxX2P)@HB+0TA8>Xk57 zIjUc2gDc>Z1|zBeLS~cxtIv9%%I!Ur@`q?^c%}^59JCZ#evU5dfE;!JucRIDsgyCE z-_HuI%LO=jUEzUPAc$5}kMyort~Oxj!~KdY^fL z2Y%_#_smr@F2O#C(KgRwKeQ*WB7E6iGUEGw%eTM0h8jW&gKhpx*Ej{5)IWpT*#x?_c|S=Ya<1?hnMg%?a?oMAF6^nJ~T5j)v#Q zSnFhZWsIYBC;Em$!(%)>s2of!=dGdMsEMZc*s0)4TTN?J&ifwo1A5nF_SJGow+!rO zjiqweTDp9VWAD$ENvkxS_|B_D*b$G;A!@#Zqb5Y;H%+=5g%pXS=k4JZL&G)JdeBL?`&=&vHyc^t!G5P_<#pD+ri;v6!>}Ur& z_#n7ZN9H@|$4Wn>?38uTF47!820Hol2U}pTw2o#HTU!clQ_X+LOa8lTX%g2fe~M?| zQ5srSb6t8TdT=lO!qWj&&bhoGprN^1{ub}YBIi#hah1V*Q_BC-c+XkoZb#oy2C)T} z(th%8@D|F`F^0{B4Ynnwr&Uu&@)*pSdg{PP%1xPMY_F+z+8F8|KsWMSjbtn?IQxnr z@%G498v{&K&MVG$uIP*}19M!Vf`UNYfjO2!&`(iY0RIjZ-sNzQ9=77WoFL4Oz8gkRAj(XRop zbZlSdV3`Z7PBYrXrv=iyhR-eHqaSfrH#FA&F?6}^_!52JFE95tcP6hx|LtY){tJ0a z4}WK&{5>T z&@XI;7wEU9U60P*%o+Q0;07>=5nzrbhPPTUoz09Rb{J0hK%*)HcYOhDmbTIXc(qin z(~vD>N^Fy~PP93)Rkjn^;(x*)Y5YGWTh5k&rqhxCjfMX68UK`QrhncKzIPzS-_$|c z>cRb{*Xa=cMF(SEpfh?zFyfnhJ>tF74q3dz*B4;c@b(B_mb7&Rbs2AX!)epKli64B zAUfTD7u6cRvc^*`${C=3nlia}P=91PRbM@A*U@K7xds>2W#CHzutyghPSRGvuYyfN z6QPmw0Odp`)y`eei?UN6nG@B6;4yGVFN~auJ}e8dzae#A+KE2?LQCmk=!EOBP5Gy~ z5FC)Rdj-#uIzd-ofj$}wUw%%xM_St23!Sdu+s=MkHJE4NgV;EC_%iLME#sZgyDS5F zr0#($dH)0KKlI07zAXvGC=>E{MO5a>z0z5Y^zT7cRbYA-&~JurkE$t*|0WH^Mh5px z)M9tm(I2mjHq#24M7mBkyy?>$Bi%Zg@wqZ@9u2CpL8cqIkg;kS_Tm~a`PBgxoP$n8 z#^;n#7M_($eMg}u?&BCmpLPVA9x>JV+f22D^ts#6A6>xm`KF9>8poWffGX}{ViSPl zuQGIhY^U@0kq&*gybAq6nzDn~wiQWRFfot3Mxd+yNZWNlA24URoW5}m=}VYzNPuG4`2UQ#a*Ocfqaq$CTwp<7t~rt(lW7LkEG&Xyzm0^DS(iT;{QDY?<4mdT#;a zpL}$GA#(v5eF44fDx?14f{)d}3$Tm3e5@*If4iYk9l`EwXrONg4-6Dw+dY9kS%@vk zJFsUxppw2Y2U~F&x*1)={^BZB71bq+7z>PKE&{%0tl+0R?+WhGvE?^F&&AlTTTQ); z>jc-5CTA?PU(CD{^CA3K58$5X%yaO6{+-wX?odbDg7p^H!q2tXwWqPp;k)7Z)DZq7 zdm8m5>R!Hs`I;R@{8u*q3Jo$w4LFQlp+``cj0~v#tHJT}%=&3|qpq?|l}|ltITzw* z$-Jyn5~8n1|AfGZX%Deyo9gU50+u=R7RK$jN8KLl8oenEmQ#{*#94o&F(NUdyWbC% z`9U~76r1cXbz*~>7JF2x5sSdFIv9FBb+~zx;bdX&F}`pzc~{4rVGlD+=1uV32t6PqfR1t1k5tT+*vGwuOQ=dVm`%eC!IYGvPzgcdV@B66MO=kNfpCy_|134 zH?iBgai7;A2{g4S8o;acn$bhsMT-iT%D;Gj9jxuzdqMaW;0rHS_~q>qE#W|FV!< zmvYUyHK23vgI49p5HfzwK4cMkR7qOi$u}jmk>Y*sGE2Ml*a+qRnfW0wrv+9@E5Xob^-iT5L4L| z=(IZIB+nEaJ0AQ5p69T#EOqu_%KQuV#rP_qGPri{iRxD_25<9XnhLAw7bn|s`FAWe zhw?9UbG5*Ms7s?UCr@Azh>8`W7aM&r}gp?lY{4j~lO_9s#HXN|^xm1(QW z!|0L~QH^i2_=3dSeG=5vPp`zEYd!Dc_aT=S<6!h|)hR}OyU=0TU)!6RYt&E6{Yq74 zBI`%LuMd23*r!R$@3G^BUd}4yDR*jAHK0cuz%yT5WH@ucYXYynrOsz;zURF+!7_<2 z67qT26&_xVY{SEX%UeB%9?P3`b<9^*3HBGV&M?82YTzsM&j5HZ0bi!{n684i5>;R? zxA1Hc{02{-2alC(g&(*szZE^kweXG5cM0u-PLp|9T?LQHw+VFGKzPhr#@K*#C99#= z7+<&P0CEsqLcfq;f7v;Fdzg23U{|Ay%5Op6)`E4^AqVJ9#bNPmfXg${&6cGH>`j(c z=FjX(+JkY#vX?2>Ut{Rns4kcBY&-B!u*x~uzXO&VdU-ob&sk0zV;|V`Y0JsGe|?gF zgumbmwdBKq4#Hn^K15F8ud|VzTvkReuV+rDyD9sl%RH7koBE~GE-#&Ks{UX>#o+3} zA*4AyCVhkSRXR}*zis5dzoERZHNXoW`gZWIbOB_l^g5(1&v9 z#{@g19*@C?E8)47_(~Rqbm;LY*jG@6c92I&)aqVjt0Q@gOA3YOY+ZE(`qswOc?-eF zcLY^s2lTVSc`Iv0lHb?2vk!YY@S~e6Ye<^E7v2<%yXpJ-z>dRezz##L=h^xrzHfw{ z_D9+z*Pq97E~VeLSJK9X@WeZ`(TbS9gR#+M$5eOL)5p`_jNgkLlLpPG(;)s;J}#=x z=U*D%foa2|*tHxVVv`=BK2oPV=w`=~{&jyf7Ml3sa4a-9b1cj?(;^%Tb2xJ>%;wCo zFpD$C!c5K_3o|&&5g?v+ka(;3mn^gvaJJ0|XWt)3-i1C(a|-a|v3XYjUMFYq6^7d9iDS?gddlyAgOEM1=CC+45=6HDVgv0lMY%+~tvs1f+otfuc-lfbv8 z0^gd-6Z`HwkY}ilrTB2|z!#^(G5$WXzqJ~(;~0M*HHLB0i22ML(oP);OdVfjsJi({ zpP$vWe7_w(9_$|f+f7NowRs7Ac(y0~*yzhu-Uw5T!w%Ux4}EgksrmtI)+^R92H0t+ zPFLbjgiSV?@qlv>znZ-<+27lFtkm#Em6>YyTc(qPAH;d5(l2c=y_`;lv;0(l{O)yW zG@Xrinoj%nMs+b`q~cXWMTV@)gYSD=Nx%Du>0H~z@VYEP9?Ao1x*HJrQ|aZLi}B5w zj{cZyIF}b2&Jbc~NCI_u^e*pjIuE^P=+O@`hqVzonh?-uucCkZg`uYlPQi8A zWX2kUWB5d1pK=ZFGN!h)CLb4`E-UkKe#STSPrVs0pTx8FrniAQJa*9Zu4N8x_j>T_ zmGJm@^7uQt=Ff}+?xTKNl6`5;pV57cY4m%@CujFP=3ye1TFxOpF`_TekARN?%OjPCgKY4=LgTL%4e!C#i6L!0{0{yEqI=)+=ksPwJNp{3^9rGFHgA{Tt7 zm~)VNL38zDG4HV%&O74c6Y4y^fo7^4Ukf=;@5Oh}I_E*`W$b2omP`GYZ!x{O|H&SB zkJ8^>7ImLl)#!}>!tyNZh;!-QMww4m8<~T^o^+omZq)B|V~+~x+wg&tV_I zquHRHwDhA(q`pZV2SNuM>_)Gyy->R0$?Cg)6!S-%RX+4o?V5l1LYhm0tz?G&3KepL!BGdIWoJiK&C5>G$Zrif1#o)86pTJ=xHi6HJx$Wk7#F(^9i$ z@n6o_nU*!wfF_^h9r>Lu#RysbCeV9kK60ayWT`y73imqE;s zOx6@&YiB_JyAB!Zt_Q@u!EE^_t)@0fqp)4DOACvhpBK;CGhTcZV@B~EI^;aA16<4Z!7}DU5U^gAX>kc%^yrUxr zV``a0_VJrC!EaXBsvQ0}A1tMuBXbITvJQPuxsN<+=tD1I{|=9-oLge*+*{E7!_k-M zed#Z9;_$~=9E?@0xzWhucQAhsuJgp_W_(6^cYW?|#*Z8`?_zudpJmJAT`|Q#1^I-N{3mDe#eqiXAu0kis_g5i*7o%hNK7;d&i^e)oT5D;8WA=9pJ+&6O(lPxi{Lfig3*mPss$PbsuWStno}tgB9^Zc}sRJ|b zPS)ua^3Me8n3a64UYSWF-~{H@9<7+DyuraY;;N(k3%5zz6m&)&W9aMf(YF zTQ5cR%fn6DjpJte`r)y7&<*PIT|@L@yf`=2E& zUmw){xxNT~d!2V5UBsG|4By{PFW>9y(fVKJ9`>vZ!?7}%uYc~aIvaj%@sE0A{bAi7 z+O+&fFaw>NZg}h38#;qJ?R(cyU%bvdF}71C^TdI(Hmh^bl6m4f8G}R~zZ*HfnHU7? z%*dj@m{tYrmnvp4$CO-uWc8|H{~z>0U*eJUVa~PpX4V3*mZ)MDYl4#Nem|e z+cQpS?{<&1XRTX%_w*Xa>Qm$}hIOnnOvgQ=rk&NdsGZw4*3LT9Z0DX?BXLSQjAgx; zAEPUjztl{VUDo+2gN+J=pZzV(vW^hx~~D%+6oNoG@!ci5<|L zb(DQfuA|~x*Cx_iu48RH)-omQHTCt>e=22do?kEj|5LxHmU5QlR~>z};-ggB#qw`Y z))@MVXu+FP|JF)m4G zoN_v2qq9?MA1WEAgiLQGahV&0=Pxvt_9N%s)xrjza&(!F@xblOk%Qjk~ockuIHdr<3mNk?!xL`{KCi)Goh#q?=BOH+#9;mp+rZvKjGQ!ec!c3xRYsee>3YIQ!+Wn3z3^FvYQ$dH3Z8Q0GQ(rdyV`#Z zwjOruq-zZCs$$kJBpB-?m|rb6tHX_knp}|Lp|WxPB$aO7j*DdjCAAvB<@+0u6}V95D!o{ zUW?3qhCia2;cc8_3I^_UnPYgrnL|H5iuLYO@qggispW?AD0b9dY>^4Wsc#nh!rz~% z^wsEX)|}kUGuHIuM-vo!M)2d1wK~uw=$uq)=zI40>$@Ud%`p4LqH7lforlZtHRT)P zXgLL(@y(6&U0{iyWu)r@+nG0$dhzbweZ(I91OCWu*-PtXN>7FIsOUF&8Zjf|Wnv?_Hz6svG%RJtmx!O<1p1rjhq+^V+`kdpZ zyI%hHF6mw;-AAN5blh|bT!iwGZU*U|CEZKMO{WVNiQS0KHJIxvOvzNCFH@1;--Yh@ zg>?V9?0(CemBTvVY{Qw2J`Unnl7-!#P9Kgf<4m`jlSMZ{LA3Am`2Z<1kY>y~nCi5%x6 z$LvMw_KG39$Z>DvxEpdDL5_QvIl_mka63NT%tg`W5!pMh`*rl)KM6#7x5W?M#Mk{Z z{D4e}ACih$6(g3YnI^i|>RA&OTw2!2xWo^&dYNH07C&eFdC?aky>mb7OFkvmSuCV? zZDlsV0l-pIL#XJ$}+D$iI`_UU}mn;|z+W9uC}J2RH9 zZ$c;jn(=Y`S>m4=L9b1*X?2ff#3zZ}lhhB+%=Dn%Rsn8?ozjPL-w4+831fzv80X!> zIC1yA;uoBzK7E|N<63;JW9$oKAJ+H>dWnWc{UtgPUeKRRGUB_QYj5SBY`FQEhBfpI z!yS6=u{_?g-^#zru!dcXU--?Wy*t&nY)@i$9g&%_2mE!TeqVwPck};3`gNrL*sw1A z^4RoEYx@eTN%IJ4W|HPP{LNoJ;rdc{*j1)=A?wdCyxDYraJQ^g_2=}x2h&)SG|g1I zm`lfp#k%lh(qNnY;0)8cfOXscy3mWkdpReXxSmI)clRH2C}`I_jnI^*ji2r@{^3Ma)HjtPJCu$VUe`D>fU~hU1Jl8dr9_ikeJrwUJ9`1tdNT1WPBYp2D zW=xDdREu&{{5|ycA9CX%#_o(01(UZTMV1?hS(<-17ITsFt$-D&VXn{2NIvUo#2>Yo zv#&{aBSq=SXa6Dd-tD{#6lIJXo~H~iwF zdhXsmgL3eD%Q>}8{FGqG{T=xI#x92bbPngUQs*D1&T~@dTvOhA>l+&-t-5cU2|gLq z_q_)$%QsU5TjBb>OPO=oO@Bw*xhpMigKK)OmGtwljGXul<7J&rns+VZkK6Wv`TqCk z$C%4t{GAh@G9KH!#)>@A6w^N+IG6H)W>yu&Iy1wMV7W2+l2OrlitzNu}Xm z-d5!5$P~kQkG^yFZc{bhiBA|b{S9{Mr=R-&a;`0fw)Yv{wLH765j^=$u_;)m!8g#$ zUyu48Hf7^|v=#OgZKC!~^w)8CbJ5G&z+#22?MuK`OH8q|)M&=how1Rw#HVQ65Yu~? zcMmgny5n`DI-?QHVT37mjk*!sZVWi(_=)h5EBXpO&-MQOx!&*$SzFG!iVf&}S(kQQ zR;2rN@O2F_wcm!XKY+hKlX%oQQie#^nw&VXKG26^a|Sf}$e&+-%tn_Tb>N96c_!vJjbtjlj>CUJ+u-W$`leH(}C**7%Ds$Y1 zZjd?4+JLM@_7b)~uZX>z6ThXhzba(SNt%7mAZ%FcbTi;}m<}Ff?_pj^`kMeYouT%A z$F$BY3V7J7YRY$H%pUNz&N5WvDW;1G_1>FlsDme)R$uCIIerXxo?=>kicIfv+G!H@ z414Q(tWO#wcI~8-O!2?fdmZ@iR8u#CH%@48>VwQdY@99n7v1?Q!<#!B9W>hTF6SA1 ztm{4Ex$$iGD$>ou-x7J={TS(H!AskCHq+PR`qSU=44h+Eko;%)eSjK0mv3i5vwi$; zhQtU!k3Yz>8Kye$5xf8fBRscr8}DsXbfwQn@R0Mxp56W-u&tp1R>6 z|D!#2@@njM7WsU(waJ#J020 zHvuhUBjN8yZSjRBmRl_K3_dTmJOA5!eo9*Cf0fT~s1(1O-2V-F#_y^mzG+KcT>$1( z0nTjGmxAwf2jA%qzH>VG&gnJnkdt=EM?32b@SQVi+FIZV*uQP9GtIW{nKf-3(`+wz zkHeY-RoKR;KgC{^#4QpPem;*&8-bxbK^{-qMr0Ak(;Uy@C$Xo?7qXTCehPTAGL87Q z=dd-5fYlRw&kh}uwd7*&DSVbl!+J{Ee=^UAaTK3?3Os0l%ch6oqfbG9FkfY#!utK^ zvE^AKch@4m*<*S$3?qI|KI1fEK5*}p;0rS)-xhp0(%odg7>=$S{Y>_b;ON8An}cz* zjA4!9B;P*N*LOshSjZ*1BFy@v`WuY+^}{k9t8F&*%4kj5z!k97Y}U+%l2}60 z{#wP@g0X{O2{k#^P%{_2AjcZkHrJOIbcc)wymn$|otEof^4(mkR}uSy#BwcgEo`k^ zw|7w+D+0bHdg4QD%^iPa-a+P;qU{|w;a^)r!SAqNlQC4lhDhgLI-Iqaal`#F_P_-f zB>V0zxx{yvV_HKT!yOV~9j1Z~*kbLA(P=@yKa7tVhK+PT^`2@t{Ba<5Kb%#~RNmejd`td%wx0FD|Ap-)Fi%K9zSlPwVjDEq0Pp!yN1LjGb z(Hw`EQ!2rH&42<^+rN(rzNYO$Vuo-IJ|5NEmKcN5jj8e59}ULe2%aK3$B(Hd@$IJi zaeXcPfKG9;`M+Rztffimhgsr-=S;^IBairwRm9d`6^)OZ*g=y=Kz-&@93H97uw zrHq#@ld?uXx6X{^x_!*t_+7W!@k=uEBu|OqB^Y)x&*)+D%=0pBblh_>S=a6%k4`9C zbYRHp5yM9-U*eE{-cq+Sm-|FKEi=GB+cm|*^Xqf$zdvE0t~T;-kp+)2dUDN<{Ga?+ zNS#+qiHHr_^XJ&0*JXR)msa;0%a23X#>dfrNWSRKxnOofm?N|KR{n$T^l7$YSN$E2 zKAe2UoQMr>?mv(2Wd7s9WPf4*KGJ;wx|F`6=K|~xlj|rr9oK!#EJ@?p`733-`9N2h zONb8t7rt9{^t%;5mUVLyBhT~O)Gz-I-(Qw_3eTsxAJ1~TtkHAqmd~Qw=kf|B z|HK$a?d7By0+u)$Y<@xtv#9lbj3VH?$H(S3^35v#yN&O#L63u_D<5;8OS)pxJxRJH z$4!^S<}U}&8v>p;8jO6x@iB5An{Q9LAnCf3uK)4V`PlqM(yb!hHqz}oZn`8kKbLgH zq6(tj3ZH{K zTl7auTn~JncZ|=vzMX+w=eTE@IoMUKH6%`FZ{)lu@hs;_f3qEIi+1@-3w*x&+Zlq- zdxFpRG&9v*Ba`@i?{C59ucR+M5kB9i1wN16TX`W~TFJ@cBNcg^$7K z|1#AdA32XCv3Ye5eV}0TeOh4ichRqHU>t>Qf_@MAxO}&_nFF9tx^o{o;IoimV9+Fq z&39iA@*YiL^TgZmv3d5$i1bNe^Su|?&b%2(3}3MM-eB`x+Xmt{y_DD5IWBY%*!)kC zxgWywH^T3~I7a3o-9KO~N?-YPY@V3X7IR&0?Q4AZcVy*@W4>#`=KVMwvbP5FU2g4k z(mq4l7f+m4_T#AiDOmXr;qe>c@n0MlEBF7)oCNhGZ8~XBC+*oMPRrZ|A zmj#YElYV?=P6|6r;r1EytFy5ggW&eQJVqIV79pe3|I)`K<+i(Xv^$9m5y920vUg84L9r5rHo@=XM^2m6XQk3oa{v@XT}VD zg$CkzlgEGO|AgB!H}(VO#xD4XG1#GR!0jI<%?#2!3vU0?H{kXwGE}G_ zC1V9i+5+?_nlnQ=15wRKlwIY@cM7;^IG8b z^ogHk)808&FZ#P)HS~2wIj;0~-RSQaN2+GL-o%b?3$}Ec;Pc4Ff?VcwbFnSa(}Bkr26&#SeJsBjx6g1RMJX&FEa;zc`|SUV z+c)9%v5d$uxc$_t|J!l82e9e#_gSl7=!w_J+>#fz4tCyJ=i=pnTZXA zo+H+3Cga&J$C%zj(@p*N8^I<{fZK1#I2O0>cO7Gx7&v_mdjDw!Kbc0-Nj_9?Qg(~G3fw3;ydme1oS!t=}RujBdIt;X~7{&#Rr8KeGhV4D_m z()4#hbWkvULuEfz*qJy!cK=A9Sfn&Zd)%Ui|4yd<#O%7ce(_MvS?NnZ_XIbiAw(zA`76Gnjmm>HM@b zHD`cN{YhXc@f-2UX__;LuwH^WgK@8sj%WUyK|j**?6$u%rvx@gAEG}!i*(E*+>p*Q zuzYYgf3E2vd_2cuUt+%}=L~xDEprP8F2v{at{~aE; z;IXDTi}+1~=SSQAPxAaR`Aw)~--niZ{1{CC-}d3e4m4WIl#lOswv)b&b^?5#JdcO( zgYC0FQC8&X3c>gfN}NO~uh@RxOt7(S&tjLbZraWQ<9|Mh@qbw%{E@`?C-E$p8mkru z!S`7gk!Wuy`(*I_=dk&~_kXd7^x*rl?qO07c<>KdVEXuHf#u_?83D^?yx1o4HH;tp zjkxdNPrnyjE6QF$_hSpmGugLFo*9?9>|@+KS1`JVVEWndI|@#S>04jN^gFf0^m_@W z56%px--@y+TQI^VOdtHsFVl*lj5%^sn0_vpej6}`TrmAMzT6y(>9?^i`EDDlR}p)G z$J$uEnWyPh)5h&xgu_s*?Xj4?;D=3^K4YSP2h;yyggA;VF#U(piA6ZmjF0Ihn0^Xh zw@-}e*PmPktNU zh7Xu?t^woqG5t)>$Mo@?_c49Wg6X#roZNU#FlzSNF)a4MjL#5EKOuVnf$3+1>0bk; zUuho2^z(g8U*dqN8!L_KEWz~8u;WA1JNx*0mf-8?f!lpOP$Dtbl9)cYpWxm}{g5ku zf1cn7Q$~ z${s>{TIze^Y%Mqj4|%*%^w`55<2(!BJ0GVv1k;YLN4H^v7K77IXo1s12fs|warKkW z_;nJe2R9)eSMvFaTbN6Dq#1ATo5Ja3ukh|B^Q7SPT^HadVCJ;I>Dlw#kK?uFU-(XN z`qX#PI_83zLtrc_?esIh{I?v%>4lE+%(&TUv6mq6>jO@82kf-X;6)+)T|$9l_LH%j z{Owm{6OSWg^#E7y!Mq_jE;dRxvB%NXJz2+pL^1y?>+*@A)aXjOp2hg84ee44}z@qKb^v2}#6-PGQJl-C@~oVnF=2>%Sq+?hXL z5}(hW3O&K$d*aXGKa=rnNYe2vn0hAT*-$%=d1Z-RtAhAt_8wwXv%iT`Hlm=K{Y|{m zfrN6#cc*0k9>VP~zuZywH%W7Q)28p>vw@GG_fGHB`NGs0JJWxj#@r+CiFqz*)xiL9 zbJAjZGQLFYhobL12;XzPWf>TV>rzyrJ*DCt}v5j})msVjCSH;v>J0;$6cfOA*`8LN6o$y=x zKtS`YPQYgz+TMwbY{%cMhp#7~M@SE34P_|@aj{fr4e``^kaiJit0;dh{8vl=V^3wQ zxk6XI!hI#a=ncq`af(XtZ}~sZR2BcPqMRkG`IdX;wBS;ali ziGM_%I|C8+2nDCczud&1egXdFCTqbs`f?CYnL})A=2$p-bM)ls&e6>b(q6J2!e5i+ zh4NQBwuv2YqW{dGmmbECK1@tU>64=8S;X9QyTyocTNA=24Ou;7;Mr!FKHc|K_iW=- zrC((2=}XDjWoo>k&U*>^@vQuM>P4IC?ZoB;bGD|iF7XQ10$za+>}1xLI;_L&#M)bQ z*1_nn%J%q_5^ahvy;wQ9_y*@`$TAma;(aG@<;3Fa9Gu@%%{{#8ajtb9wW0e+k~ofu$gTho@@6VFBsSd6~6 zO_4w5z~S>6S^LI1iVu?ODEj;aKCiJN%*TB*pGRBrd2LHRPw{sf?6R;W^OVxx_pD(* z@;?aHM;}l`?5?-z%VQy)%l-iJjQ!M^gJRxB=J}aFf~V?a4%CSM(hgee$qNqhwLZrG zSE@g0>SJR3%S=6^kD0~ZrpNgB@~*W$zW*P>1ZfMQt>Fx?S%ZgfkM!}ZrE&2gvglLX z?y)TV9J9a$Gp#;Fnb_=^)){7|%Y3)hwO%UL8Kz6DOjJ zABRt$Law*_Hi;@FUf&>&FmgrwVEqEuA_K^p8ng|W|Bz!B?O91236cAKJnu;SC+@Ln z)bs{)Oa<5q{ak{6FqFocQGYyesR|Kuq3Ri8G@|FKR`VS(7Q$=z*NgNSo6!g8jB50( zT%!;C{YnNc@#F35FlX5#X5c~OpK}TS33DvvpArLK^w0OWCoZF&w!|;9egU1JxelOv zr(MCnKS%D#%i4?1ARmc6{6YhL6#oc!G$lTh9&Gz-`&HU->@(^oG$3A~u3U=lUy471 z$Sv~A9w7LJA-BL9%)d%M6zS^sN9=bi^2GJm`YZ8&k1*fuk5NMTYaF|XeyWImswkL} z-;Ioqkl&(|{KnWn7x~2x2l-;(5RqT{E#_tMDUfGrl!a%=b~nn^^$++TBfrEmPRef$ z@>}#Z`Hi)Z=_dJYDbvVrF}_~M$ZygAPvzIA?LWz{7n+(San_LIObgo&InG3mGm&GF z)hzabH{ypD`S!Ojx1_KCXc2qyaxNn#Ewa%3io zr^g_t^^z}fy4TpIwYG=p{&7IcUxW0W(qulFbu9FwH{;J$TR^&e(iM_!;y7O}#PP3QZMVb^?Afgj<|EqCF?evF4mpPGQRnDvSk znPN)>+~+gFdG5DV{v?TekAAJBuc;s&7?@T;0d2y)^og=QyS($IJNT{5+s9 zo@D5C#KE8S5V4W&F}=T@0j~S8p+A0v_0Tnzp1F=^ant$rLe?1(=jf73L%%_skL))X zAN|^N{&tG#J$l&C|9D=~^Pe{i=bA$DtRT+{Q@#0|p?<`7*(-@D@>|op=11&b^Cq(L zs_FghX7YNDyk0i(rIEPxhJKS6OK<*`e(+@(HX`bSU7e_5XvF!ao;I9MO~w@1kTZa;tTn$hI* zq@RzL_)R}bP?md5+3Q8m`iH4!y+V5E^XQ{~{$6t(D|z=k|E3;q{u;XcTIxam*O33K z|5Q(v&072BI<}`CQpf(}z406C=!C-5aeJzsJ*X$wg(t43p7|y1DRn%VI)3?$b=0%^ zrt0@R^}FR;>i3;g{eDgT?mf1C+h3;sQomO?qz(6_+HeB(oBNIRlUPsR)P_2<((vB= zvQgjrs;L@g8v0h~ZZ9_mC8k~J*z+EeakoxDkH5{sA9Nx%ve2eQn0NT9Q6DDlz005tZ9MyN>iJtE z$^WyU*({#pPxZG#@}?Zy!4784GMqOLH>$6={^|`=eF8m-nTv&QIZUUy&EN z32ivUa8A;ug7gz9-#ov3PBU$gi$tyIKpS;0*Iz*!DQnK_Qg`A*Ev9^rQ9kr3<#U>4 z_Br13{739X@YQoZZR9&Am;ACkpROVoE%n2<(kIxGK6Bxj3GhrS=ra@FxMuoX41LzM zl0Mj)KHms!IzXF-*3qWCC2giao5xy38=duN3%XoQ+aV{d;+xVIeDkl+<-QhlITyP8 z<)7%HX2VN&&o;atebuPZ2?~6Y#mNttXVI)lC``kT|Dkh#`T`*41w3SxrQ3D3K@I= zn$VvV&oaEL`=|8aT;#DZ)rZUz9cg%P>}}My%r*5J&r`l?@Z~V)iSX_`v+oK`DOC19+#4J z{_nbcLtg)&tZ$$rii>II3Dj5W-#S`&W$Do2#TK;akmBQSqXqdj)1n_`+MU#W-#`nA z(|42(3Fwf3FTR-$j++A=rnI1if)*RTl@?w)bPtxbpa*)O{b=;TH}i&9Za|CQx1dKQ z^eFgN-f+rt=?B)gpvk4spBCQ5@XF2b?>giU zKJosdq04aS!u3_-Qapkz36DtHyGeU^rK$fRvclT3btlj9X0ChlD8F0|eUQuJ(MNdf zuxFy*@!!Q}LVld-E#)U48r2@3Mk06jAQxXv^uP7@i4M~?t>GP!y~D`Hz2*M5UPcK1 z!S-yHr4G=l;rO%?8NBB)zO77_*&1(n27ODjOhuqq{R#L8dfh|5UqLVGD{>`!5*?*g zduX+(3gR*`Pk!A~u9PC4ybete$#8m;{O44UaQ5jxFlC7p;P z`)|<5n-d^T-n14pS^|wOZyk;7ms-%L0{RrTiax4*bqjg>7ic3mS~G1bpiN<`XyZ*o z{@kSeNk8QMwMpi<{wKZsH6CJLgl7J^Y6!Gh1#KoEtA*rWLH@|U^ivnZw;!YTFP?yX z`m#}-b@?;i?0;+&+f;bS`%4r5$aNeZUg*ob-&d_e)^6szb^J>(@0?{meY~qqg>R0) zH&e)OGdF}mSm`Zeg{vF1$dXrYgHRV8IB@XO}?rI2>1pk4U4^i}I9 z=gsJsi}}{qNg7>)?)l4b%A`-MhkTti9+@Ie24feYiFehLlxg(0(*wKWC>;`%C*hap zo9Xa|>11Z1Z<=Uv9<l~%W0O(QI3VN)@#zv1e)1x2s*xd?xh|DzcMFI4vYy~|;R+{MHLJ#*?z8E`& zbzmQm#$``3V$hBQdw2`J4dP!dypgktI2_9;-zdh3tY;q8BrCP7LtEgF_rZ5r+mDTq zSmyJFlP|s%3&AlMyJLfT1r?OFkg`^a?@7R^OUjI-VID{JOAR=+2l3m8S!#QQ?C~2= z`P;#4i`et9!WcB~iOU?jaG7?+ZiMeQH1nP8A4{4#6I|EuE?}Rh_??DcIT1TxD{G5{ z#*6*AM`tT?;oEQYC(KuoN3y=VQ}r!ANS&V~z0`LK^?i)?puQUmQ!t}g}j=O7C!|$h>=rJUvi~gBEn#OouK73MGW$64R zq92ZtH^B;pH{?C>!VISt{+);oc{}Off1Gx|!x&WeqpKY|zui$D8K07s6Y$9G@Yz?c zp+5mfDi_;G=&}r~<~-=K6}rfEGGF#l;r%kkrtsuf=%L%+;=A9|uQI;!+piM5r$dUD z<+_PaNXxz_-kb2ry~|9!XQKaIvdp~mqUe9$i{z6)jA21(% zZxvManw0!5*pfDvLz^YXrH$Xm`2FarvZuk(I#G52wmbQ;FYh@8 z=rX!>bSZBsJ5!*`W38l1OZmx%Uus*)FEY+*qRV*b;&wTH-(vEE2kBQ-XsD@%F#Z}cfosN1mse5$5!7F<3(1503dtu_1+Vrn)hhbaA@DtR zp|i26ZR9#m9?+gV1cT8b>U8NO4%(9a^qj4eSaUgFeDaUc8|+O=ebA3hbdn{s&16whN{4lhjAjXvM6TLW`2{Bz|>%1t>sp zy6H7iw+7aE6i~NH>c(|*-5UIQt1xq~)J?A;ukZoVUO~Rqe*6e;b5q^+Gv=-F{ps9Z z_;HpHd%IT*Y@u47`*=I|fyfiw_h5}}qSml_<1Z$DZcoZH({j&7qMsK3 z3;ZC614bJBxWPc4eu@~5o5d$8gillmpD6ZmHADDB*;bz-8{bA7-$vU#qb7)NW6P1f$%Se-Y_MIlCvsXA(auz9B|fq-(A3 zixtla2CMTgGOQIH<|hBgzlgz<{Ff1F`d9s<_Mu3(d8z+Q_2X#Cf2cRHT#DFhF(z?h z4eDVw{agN1|I6S()-WCB`B&5r|KB2f2Jgr3vDS!>uF7zNHfuF(Vy<=|w&eVfSGUS^ zLQ(v?xxZ_E$eG{YU$Y@=_FdNFI2{JyV}sAGU{5yX0CQp;81*kQlfK+jKgOrsV0~K9 z!iP7~?Mc$km2wgLB1C+%Qx_his@(NZr=U0Ez{DWRFYBc3p-^r%zT@E?;pFZ#( zvgT>U$?{LIEi-lB`Rny+u8&Rmr`j2Qy$;U%Z>X2Cwbk{4U%a~7f1zH{oMY=1&8A+5 z@ukJjllJO!KYpL5u|DCuR-}8(lDR-xTi^xpxt$LG(T0v4OZn1I&BZ_4OvX83{g@&C z_45BBp0Qr%luFt=1`YG^-?V)!gS9!Vm8;=>jP)U`n_``?2T!NI{l3RLe=VKA#&1O} zzM>|+*8ImLuD}5Jd1@2yf8o+T$#*eyQ_FY8LE24xwE3>c=c%LLMfbxW7W`qsAH;(| z{)t(D{0grGg;(Uik*>j{>~vd&90+gQhgdgr=$mL2>Gl(1U|ol=?9ahii@;~^N3Lzz zV>cvgWju-5clRXb+6RK|ox4)vCo9QlkAkq~+p-m!Pmmtr` zN%tkP2Jd7q9l2`xzl==cwiTg&3uBI*KtB+}M%HTjYdEJ)h<`Mzi}0okU7ZmLqdH{L zexW^T(kA+;guf?^y0gxY^MkF?ytjh0DM8$4(riwq(fjNCy+D(3+US$E*RsCv`#ugC z=~hKK@hwfu%5i2LZglLK=#OXG$0t47UiRT~LeP%1x`g-(;oBQ!9}ss*{M&6q)5OB#u{WYkZ3F}1Hz?RvTQ*H2FM^~Q~&E8`R92bE2HB0JG2 zy3y*Hk504k{abCs+w;#vL!-Y2l=t=5R~=!!9y~Vz9o8RTz6tEP7&Rr1uIRJmGuFMG zfN$w{0`xlp`W=&ghuGXPvx%1nP5L2qS-t*&WZA}ujz>rD^Vf@pYX3xhfMg%=Cx7kd zd9pUkf9CU@|7=|dt@(xqIBM;N4hRZ$HzD9pzm2jN-U(1=<+OCzep@})&_=-SUpO8zK!Qq zqT`3bcOujIhF9Cc->)U!*$y0^_l>G}d+OT8=-iV3;d$!>>2)f7M@gTQ75dVyuR#Cj zk(XD5{u$_v443u3=#32YMml;U9r_c$&rFB@Y0y6n`m=A4ndY8Z6NV<4Nk8bQ5x=1h z-A7+kiXLUXoO>a{ddVaMe`h4*X_5T$TMrcOIUC1$8$w* zM}58hw&+NShbsJfoAJxLr3~@8tiNbuq`7AdV;_;WmNRcKWrn9qXByQb3ktllkp2EY3R^D6Aw!Ft_5 zbDH*PN4zj{`&gq-Cx_UvZm*b?To=FMUe=_%@2-J12Rah#Kb$6UJKSzD%PIZ5(djq{ z-NzB`NZV%masJ(>!@h2bpTb&6${>2c$>_{}>G;NHgpK+;uAJnxKL@|UM@WxvG5*AZ zs_zN&kKxs&!}uoLi*G5P5n#)q0Qr3%wiLI7q)Sqe}ax&8b-gJ0@{>TY+HU`;78_(X}80l979}dLc zT42<_pMRUf`p!sC>Br%zjHdp?m{A|JZ;8l0IbE^q?0JTB@0XUyike?&dfC}WyhYjA z>VJx=Nox!}ufh~rmNj|4U5XtlYkk2lqO8pdU>mS!XnxGswd^MlF9`;v|8pMgZ(xt1 ztH|5$1F4^H?;6wUbL`O`afjof%z#5|LTk~*hL`_Uqq<^|8Gk)H=;5o2jECymWZsZm zXF8R5geGa>d32W_OW5zrR)qcUd&ewdnzV7k!u#kqiG`4qhsUu8YurW5-ECUL_$<#* zV5YKW+~ON&(^oM)eg`qv@1ou5S08^D8*p2e3jZwT+SZoDHAHXtRJHBZDye%km9)*>&4j~2rhXBAnxaku$@*n9Ih zsj6%7_v|`V)zt&dP(U|`Sk$R5il!)m12l+YmC_*21W|J{i6v@=Um`alnw#94E)LD4 zVz8nZ%}wYapvIVBfsGkVSEMB*xh7mCnptc?GZ`E}G%D}A_NnUObo;zsa^HKu&+q+F zpRPWu&N+Lnz4lsbuW8#~{~KqS`Zy0|F!*(docGyZSg-6ce_<_g-pLc;R6ay(L-J9&utlDJ+e+Q=c45&2s_V%?#|poEfc^YfL(ZC&y*2vaHNi>flpisZ z`ME7qXk}lvighmgjaKCHdgSx?d8`TK%qn70&p!_>R~_#HCvy_=YGSkS1huNva>Ta# zvo(X@)Bm97*BR2U{@k+6?VeNSV`D`2FfAWoPR|h?0A6lgaB0rVa z`)!PKDZJk1%h!zHEV9$PXY$%D=~#SsAcq~m{JkOMnsSJ zx{jWK9?b=XekS&*`#fVIv`fi)uymhGWpa*3N_31oTk56re!e?3=&ub*Y~8Mwnz$LO zF~Xl2j&0)~8(z-d#UJ3jf*k7sd-S>Qqd!<*>jGo2p)2z2DP_$_PpSM-)~?j2J#>uP zGW;&PD(FoR)aMFXk&)OgN5S<7_D-wthCFw;3BNcA_-0!(a*jQ~3c0sJ+3n9$Q~IpY z6|Dce-Bb?`e&h{vVy+_VtBzW!CCtfBRsQ7JA_vAgjhTwxG!0|3hM`%Bf12pkF-GiS zZL88lq{J_KMVDo-x=RUOvX`_2_rnW^86Ub2obnZikMnGw&{t>!{{;%pmFe*MuHyw8 z8OOJFy&QJ~0TT<@n3RS-;JzsUd9{$(! ziHr;1j{O|yNK0Hu*0ICdHWRFE`XAWOzhLC+k6{+?qnhn|ARkav+^YMkVr zF!{OiysldVZ+1QNEi-@Q@1{NSGst{&+*3z0S_h2SVdU{&Xq&F?41837LWa!eUFcx+ zLVo3NY;JrySO1u2@8KQo$iS0$2jj*s5JuJ%KL1&A{(r!GV*8PuD$o3P4L1)Xw_Xz7 zcBmU<|1J8YqP!2(eQdRSN!LlwTI@FU4)hu!YfA4q_3t}Q!vF9u(lf@9vvAg~MIJye z?4=T4eVP4F(By14Z;NXKKA_AI;cnd>Ly~h&{*CD!&H#-wMt%$+fuQ$DChdDs4MdU<0%7$W}e%r!R>= z`zm!;7IsXug7r$>lAOuR$NnMu!5nOKRhjrQ{%|bsW85b5bC}*L4?yz=ut|RSBc*>6 zdg3+cchri$q;p55i2j%x7#nC$=a(!(8Iv8dUWeS;Y8`^@i#lSFA9EmR&Wky_)qOeP8y5H^?DyX(2ks+n3k0LA0dFBJ> z7|!Mpb@(4fKA6_BWdE97b!lCAm&ie6AZs9d<*$dxeCMHc{#MRpK}HpPi{QZu z_)_|VFz;*N{qK!2>>cZUwm!RiE$6>ux8HKAw&Cryk8|$!>zt-%(x#w;6&3W*(*>e!9FdgQ-{z$f^t|@zr+QJ9U=Il6A-i_}H z9$mQncrEzI?LU*V=NDf_0M zn|9?_;Y+R!Vr(nn%kNE7g|+{xx>kMkmBRNvDmv_CnPcI58yj5k*7MH)R^(Ci;}fib zW5@LvtLp!3udh>CqqfmJ^=$Itum{aA5CZlmj(SRDyvS{QDd_ukfgxGWmK8lD z`bg78bOLkejK2VVJqR7my`ehv^b6EQKaW1Dc-?NVkg>d8xbgH1e!mK>M_1twaBJV& zkg*l)jp-kc9~WIi&AE|%dwHF`>Wqxry9wJ`^Ic2Y4(w3$j>u@e%qSUsZo6+)qRp7YrtNZMZ)9luDTHm7=_|29KzI&b- zI4(6{VgIYg#dg#Fu&UwgcNSK3-Cp$z_`X8y9cW9Blp?W#t*le_Et?+G`W2ZkK0{bIZSfz-h<@ppW)h_P~`{dfxr4Yk$et87RYD znDI^CQG&5H%f3!Mj`Y1U4%zefjLo>`Q_p2~+LY>^{s zV~6%xjkQ~wGX1ZoPqte}c3&6!s`UGl?ABe~&*{0I9$oSk{Y-37Jtyw->r2=FLu3$i zC_M+=EPFgY8;8g^jO%;O4H5fJ`;|7A?%mh-nJraA6#!-x~iec9q))P3$Or|6SeJ^j<}-wcJ_0HxC}A@qI=2CDL}h@P_=( zaL-!_c0SQ}%;^yRpkr2wI(XzU{^6j-`OD~9dX;48Q?jtaiY%cno;vtsj(rYw@SL+i zeJ*^1FJ_JZ6JhD~b2I#fy(|7O8KcvPZ5?y>BYFC}=4%fhZyId0ga>oJWrg9Fb8cAU z^t@Q4?F;Q|I(8X-cdiB-_c;UgD=^gYTv#{bybk$8h{r8n&$TxmhPpojok+<@jedI=6mo5xjY~&sC z3SM4h6mA%+y2dOz8ovBkM*5uP_u%(hbF)wPJZrBL`GQSC%!hhr?F$gUczxi*!Xshv zZ84Ybnn>sHZGTYg5-T!=-lQA&+ot19((^}pM@X#9J*y~9J_&k^>+b$9y*j*qhYH^{ z7hi1PpXAxvZ^nLM;}E?k{X9L5FBf?j#=b2)1g@*Wb=4v4S8(NTQ-#q|I7-a(vD=m1 zM9v_3-mZQsU8w#}Cckkwy7*@J>jL(b+ZoqO>=)bU<;35{mzWFsvf|&=dwzV&Ch^E{ zNasNn|Yk`xI|EHvp17?|Y^2gZtnKuU;+LQv>N$fBl~et?1R80@GwHPJ`&x z>(Q%=(W{Seo~zcYZ=zSR(@uF4UE|k$Vd&maOOe-pWH>gEq6ZiJ6yHu9ll>uatneqW z%};jy1Hw-(uXJ3Fy*wk2Z@{9zxWySFRw`$PZ;r{HL-d2}gNN7wVlMdBMAz~Tm94tF z*13QflYcmC*$AQk=sl^33$WM2KU>n1zjI|0d??03L zFU(`vPu_32@5;fumF!1&m-vr)UzmMP*{>q+>8iQy<#w%OI)5#`)5jhpd9>l^OA)!K9~>n6v#nSwtl6X-A{d}R%NkrijrH4F~lHj8&*KeXbr`Q*dCeDj;fB^Nt<`}AI8=y*tMyZo1@ z8R0R+qXJ*eV8^7ze`{CHV(&niEyfnOF>% z=m=sB0dtZH;KT5vTSC{gFn@szK3U--kjy4^NG56t*V=~=&WWpMdf>Gsm~ zC;RG1<96u_sN)bK>s`CR>ejJZM(cNu6Me7su>MU)r1ZS~p66{SUH_%${ojUO?-=(U zD3*&nP{;!nUW?qlkG=0obn!ZT8{$isIPc*%LS{oHz3481_ZDY#AMQ^s9c3mL;8&dO z@*X~@?3Lg1=R5Hax8Byxdr~`ATHots4co1EX&W|wCozK7bv#dOSa`7d^D1Bc_ii2( zUx^j_9Q$%ZSuyzbM!%75@z-ZpRu9jkJGH+hx%#--umD-O=Xm%bVyAb_mVO3?v-PLP z&22Xxw{PxD=ZUixj%-!-XE!SA{-3^WJ@CD^&1U>{JI|%Rz)qe^Pw_9KL#v4&NsOAF zz*;BQw6KO{o^-$6P}WDUU}896kQ zd`Pa1)6jX`jJGnTEsW`QeAu0D%i6J0JLxTi+~J+95wXep#qn7q{opX4Os&N)ROut_G z&F|dbwERoy|KF7U{~YgpiMS|z`*ZZ~-B4>q#tkMe${Euc&H-Mi&-)`T%2`J_&a&7* zFXA?OaBip1CN|y#e5uH+?3MTWO`*@oS)Bf@_*Oi#3@~?LJ4zAGrpOb;``>A?3E{W9(N|n9+CIe--o|o z2)?2I|)7KM?TO?44oL2JcJ=5w14yVd#Y^S*JT8vdH?Ij!=q*qr&@bFU-_rw;nC=d zs;cAps>8>-)?YHhihbGWdig6Og(ihSgR*OymAQp=2~JKNnIAtNUQup;vIO>YHG`QYNkO`PK$4oI9*S-Wh0>F?^& z-wNI1I6NO;&}DUooY_s^w{(HnSy=Ajuk@(QUy8pt_)A0bq*)vI##>cB7=Z3WRdz*i zGI-)^HdtQ<^FwTu_*?!n#Gu|dYHGSY`s#7y!rS5B{ymfb*&D|>yX)=zhu+HY4AEVt z?z3?0WO6rt?Cy8htTOD+|3&*{1!tWPfnPH(>yBP`*-(|=*@o}no}ghrwb97_gzM}} z3iX$(u74Wz1~!f=Tz&^WAaJ_%N~7?{%U#$9i9Kz+O#77W%h_+xXO}g0%t|hSr;uBt zAJ%fBv<~kTT=FA?--*LVmtv1jSK-Q05`#eo?S(I6s%vDx=o1^LLKl+ZIb zT6ALjAouZi=39jp)qYca`@}Zv%kFS#Q2{M(?L~{HpvACymln@o=E9(b4ZZSDbN%T% zICn&1AkZQ~@7+f7CX!R=)2=wr0XeB{Q{(%3pO4HEyP<^Jy$<8n@-rB?!V!9bkMM%{ zRm9(eUNG~V^CbA#H`H*(`u`#ag?Wy`W5@_A@|2#_FgRhSe$ZaM1^-V4zGZmzjxs(W z!+zp@s_TQLx!rgxX9?oRTl8sqC12yhKFr)c4L-LH13%82rN6cKpu?B32Cn(Xu7N^u zr|yL<{NHtJ@E0O8&>vUWfzg@5jQh~3GvQVA)m5Wei|k>EL7U@?tRabC-UA=1igDb=FKp#)`6@o;wC@UeZ2n+5Z*jac54Ncifp2#DBzZ*FMYMav?FDs*9N? z_>8zr&3zY#N1O(q;!~T@eB4O}j+;qjX$<0cP*6Cv*u&%OEz`nB$%PwRE2UAP3> z+hpFx;42AkrDOO~xwqnNaDIh-`PKA^ecP~a z`LoZy1wZPU?Aac99ACio^ri*IZ|Ijy4EZ-c`;kA>E0|~1@|SwK!s_ca4;Gvw8Ge^` zu>A^!gVfC(%oOI-a?ca;o3tIO%@jgoGKDqQrVA@BNwdBJ`CaG~b7aOo)M12Y5I38N zjH}p_CT}=XsJ)z?ncTmcYlj%yO!qhXERrtWV*4RJ%4mdt!YW$o{(2u^hLHx+}Ue6VmvSKj4Q$aW#kgR?CAA+?UrL; zT3_JoY$>TvEJLnaB$xd8+_2`!C>xk{VfbWHV zkZbU(&m>3Z`a0d0(%Q5Lf3r!9MRMQp)jPy7Rt1ka+nCR95W|odI`LVXc#yrOP8FJt zL9BjJLC(Zt4SUBL zCz+|iF0R2YuEs_kEPKb2?fOi~-u(~#f3Wj_-lw;si@u|6xbL;Q`}-F}&X(-lCrbBr zx&IsP8Aid*=Q!sF|NM~By~eK6?+%sj+f(}g_oe?IEB*fm_y3N{QV!$urRV-fxatjT z+_|dsyJy|&=?cloa&sJU5S2P6;_GDZqrWvl9!u5;g_rd(~ zBZJ**8Lp+d*5St%hCYGAy7#~S{X$@q<@aWL;JAAxfWE$j>k)ar65F;gYZLTT^lzV@ z!TvPFACq0-AC~=zzh2|RzDN8LC7dG6N4?m0+2^JW)q6U4Qpb<9otM5h8?50>?%C|A z_u{j z3i3i$3{&~1S`91rGCBJJwYlX%!)oziL$K$PT&iKedBdHT7`)fFj)8S7J~PESR;**i zI_8YLqQN>Ae%3V(Va}fJIy~(q&F{g^KXtF!EA%?pln;V?FMPZHwEwW=b_vd1$3FWK z{?M07YwgdawYRymNtNNj=*|%9ozHrqG=$iw+a0T;~I-u7yy~AmAHnYUtIRgovc!d1{``2&mV0~xIY}LI}^F9MP;qJrqc}DD2!vB6c@SIQ1 zv~VWjtBB}4BXZM581{@q_}f3=o;lEtz14n;d*(m|afON->CgW>*Ra)QU=KCj=>9H9 zj*x>rw*tFh$3LS>o={@f+J5lb^uHL-w~TyC3+E`_jQ;v=C|k4ZgW0z`m3e;}pOrz} z^e;-{^WtNZ^`_?!pGMcwzZ^Fw68k-sGs?)}G`Cy;FJDUT#gBM4a>xH9e*C+!mF~ty z`v_+oxZ^IYzJ+lzK8I_8&+wQ1p4cqd!dT%bp!5Gn zBGVZ!vX1;(_;M2KHX`{m9YMRji}M%mV{E1OG~LzfJ$Gt)y7MmYxwGdz&hqYgFYGMf z_jrhWXynQL-@;$_zuqp-yZC;yH{DnfzKK}>4P%sZU)nIgDP!r-^Dc9q4eg3MTT1gx zEUB>bL1IAYo%O{1RzAT0eC%&B#`~~^iJt`Tf_|T6Ub*IAo40<0d0xzU6U0+OPrOo? z`h@IXUv|F5Ja6)2gDqgb>6f$OVrV-I`rphmwvzAi&`<5@4~Y%?6DO5X&Z!8mQx)+Q ziDMZ`)~9*uJk};Mo;|FrXIXPrDP}L%+gs-&-&?=nKx=rIGbxzg>EAK(tBF1CJi_`V zKXv{!#OC1NL#!pvM6xTcOG_R^;m8sEnCMH%dnB(qdpIyEkN-b=XasUt?C2J7{Daub z@By`c@e00^J7vL#jG=4vHOC5tOX2BLUJoBRIyldGvcq>$^CU8W8ZhQs`(lDGu;Mk>>~h;^ZJfT0oZA_nG+$L1v;%zk7W>jT?%P4-yf!7O9^`Z1wb zcE~+GS0^;TEaR22Zrr40^(iu5#7pV@!A^n5|&F!?4USd$yEn-_5g0`~9Bwb=Zucg}9m z=Og&|UOtD0{cd3f|8w4tuDwNO%6cozyq;&UKb7liMshY7`eM^j^2WA`yfM)UTECEQ z$3A_Zk9cfVwrW=>`*Nqm%}k+>@IlrX4A17s!{dKT`_YuhCh@;?4IliroLc0wTN7>!wVfDl;GofE zjCcu0qpY*PmFR{K8~+BM5su@kn=Y|=Nno-lfP{avhD}$?Xacq3sC!|8;-K@DSNM4tv z?9jQ?06)ySXP;$PuxDD1pJXQc`yN6G8Eh!{A(De&Fo<1FQDkK<;cQeYE^ zlNW&Te*jr4b?naP412asuGms^)gg3MkXQ`!jQ-62^G8nBJ!)$j$j|VBb1gbppIyQk zyPwlFu7yv(j{HG}2X-0u_XFfk!-F^ON7jDNuxqF@ihPJY?_agkzp^R_Z;h0kFrNKgqi`C( zZ~ZPfMex&bk7J?x7)RA>#7X}JIL|~{Ecu_^?>ztErxRq(9CZ(10y=xnEe zJYpT~M0f4svp0ed`;SI;tefjr*vbFBulp+u@=2Iq#y_6%V~5!fKMW1V%RHlN4l*u2 ztCte<|0uZ@rzw%USwAvz2A{QzdFLqo-olNac;O+=$Zb8pq_bGNTfphhjOltkUMq4C8M@Pu zoX>D=iX2rRX9SR|JM1I-O0}OewQYkQls#j3^>Ft5InHb$Z+7)+)|1p^VXsO4V2Ec_ z)S>Ul30igQ=@l*0~ z8Qaa@C+@?z27O-@D!JBjAAe`5!uKX{|8=UX_WiFEX1^bK`H@!&hd!dZRs{bdHA~2p zq@E}8X6@Fk=sfrnIbOKsC_bn^K$AtRsjGP}_D+Esod~%w=s)fE50IN*YaU{*6Xs@Y z(9PH?X4nYN3B#k0(%b&i*soW^51-Y1A$p{%s`gEI?YS`LD~rt`c}dylR-*4ECTd_8 ztx8K>0`>y?oQGnCiuuZ@`Ddn!@TG+D_>D+EZ_4ueiH0>uaT6XS(PZ zpTtPQBZ>E-ujQE=(>fk|pIPFkJT<9JVmAd_zaV>Oc*!h0SO<+aF@Ef&=}Q?e@7RMs zYCiJvn%9sA&#(`@j{gtJn6huL z9H!}A)lA$)atO~g^cZGzB9r!~>35Va=YC)>1@OZK9P(Gp2`b=BDEisI``N$y*}wbQ zznkpe$;-%?<|J$j>QKC*aqDHC9wgGFP5(Pd#-i-Yw22`=UU4bn&jQVW^#^%Z@cgReCfAG zd#-hSu5|5~zIL&^r=^sK(fpd5Q__9^_24{UPNc*qiJ{=@AqKk=Tfi3>on7ybnD@@Z zUq&tsywCYqS~r{9h`DSb_Of+8`;H1~RmCsJZ^l^31HLfp zjTkj{5T7`o7$52!@Td91y0$Fm=gcZ%+WY*adgpDdrGP^Yuf&D&d|W%f625{St7T24 zD+{~+NPM8+6MuH$5#kDS9`NZn!1^EK7vD^b;Bn#x#2IE12PkaDb`5J=&<+j8HhF>X zH^7S*vp-pz0m_aG;pLRU~nSb@G^ zy<}S|{Gta$Mipi~!n+w)<(aBb`vCHKj0teF~hq_vVhx7BeF8y7oeUh4ku93kP!9QqXgNcnSKFK$ zY;7=PksoCx_{7@Kg9@LG)XqWg6xWjYMFZH1ft-To*qi&xzT%0{oIK?mHYdIodKa*! z`sGEzKRWNJ#B**gxaRHjLd~;*W@Dq~!H!L(|KD=|H}2N|2b;+$VNOME>iaq_;F*6X zX9K>-k%NZ492tjwJO%qWgMGXZ`*;cVG4?X~C&20Z&?dPLM4o2XtfFp~ z->}b-x{5sYKZS~;y52`>MY?N#R!IFwM^J1Qi63>>{7mDFmpPwgeS8i3S0 zuKBU&5I@s3Kj>7c`B|Hy=I3Ezl-RCwe#NyXh>1~Cp=*9-s_vSfmgkRVgNG8?8&-GM z`Dnk#V8+Neol?zDVJ)`LBRpq4?=^mpy?mJUdRUp|nxE6C`B_QL&$_wfMKi`5&u1_8 zBKGnX*f+0}qsls}BsX%^sFw>rAO}!te%_JRMy5Zl)00i=2JGeEq6RXc&*K&T)47$J z*4TRNcgyi0p?TN3)@Q@*&~-KX5V~g%w+K1J#L!h`l828b0T_sV$p{l z_c_Uo4?QmRq|$#QaE;dE+sb+v`Bv6>9Tj%#kpZr!gLdnHzxS8ql7TNcbN5>5p>mtSIckRa^DUg2cF=Hse#CHg?>Ef7ou!!65taY4 zUxi1lr3U>g^yT=r5k7^S@=yMOI`dj;=U0(i^cbIC>Yj3TSC-r$_CI&5(Rm_;7l_H$ zuhF_XTvs7|(R6IAaOfyw3vkBW2+p{h&RKX3%6zn0Igc(@=Htti^Y~I_{=8K=Kfg^m zyLT#c?-u3kJ*do|98u0s_A95e6W>2RqCYNB`8(N1-PX!Ek&F3Em$4d!tG;67zdl$o zR%L(cIG?W@oHu9KFFwvVO%)D1%Fce;u(OYn*Rq0s4vd*zG2yz^u6=w>1vwlCkmE~` z?FYn{A-YTQvd{@dY>75{lf1o%{oyw)Y>TF)AMBz>?AI*v4jd=)wYpUt=j z!hz+#wuoyq?H`G59Kl(pZT_a_3%|&3&b4BEZ(VRxII!Qgs3T}<{T|O;%)Ijbh@HT` zUCHy|k%vFWz2un4^#f<~uJ`kNKRq4}=VgzY*zRv%eAVQ9Ys2%B3)jA7%7J|AZH$-i z%@^;=w=VsF73KTVTrS_bzZF|3*xtHoX})#mRpJ9`AMw%i^R3fQ;`c`Tkpn;C`}_Gl z_78D!$$JanKO>(mPn^?=9Kb$RVqgA1c-BFWo9wrUg%eLv=<^-WXE*x)N$B^Sz!h-( zaT($?3g6HU#=9GO0*^f>Yungt_+6c7+%0P|#F`ATCPS>r5Noo6HCe%$l%6Y*aCQ${uC?9=L2lM{8lk>5C2=lME#n6)*Uwe?Z< z!Oy>Lv{x$XZYvMlZ!~dzogwQe|K*iN;kg*==?;3EoTCb#Y0}s7c}L~H&RYB%pRQNP zJ;~E&Wrn^c{4M-mcoAKjMW1GY{~Iu_u^u(g7oPnQxoMZPmY-$~GQmF|!Frpn%-s#F zxn|bfV%FSp*4$FoBx~^}w<+_dJC*ZO*5Z#2D)VPYl=HLw?pkCG6`oze*;_TGwRoE< zJiC~DWa6geaLF3wj28CLAC@!X48g6i^fcCLrQpIDmEd=fJurQU3!i$Gb<5gioc6UZ z@S*lsa;k{iVb`-37s^`1K3f8>ErZvFnoS?MYI1n+sn556d&+_E%CGyfD_#r~e)ytl zp9}A=yy^qlTl4<*EWGbL(W=kLeiXW#?XdpICmL&V9(@P=ZNP_}*lki%WmttX9ix1I z*NXg`g z#ugsq`|8U-#P@o85BziJ5Ipot?1G5V_2uBP_S++;=T}`_%m#mtuZ-Ru*n#cAe|?&3 zPZl1!)M$Td*|kmA=QeWxz4UiC3^)ba@_o`PeDAax<@=3`kRSITSA6YTo|c#o(r$OZKlrc z7)XA7Nz1QgVf41xW+t&l2N`CL&-ffI!;oK*Cy`;#A;Vr3xWp5XUm1Fhhzvu1C6Hfn z;IUT?%h)M$s}i|YiQKA0ZdD?;LddNUaw~)_L7ye$81l$LS0lfwN^w>@j5DOfEgLm9-gXy^asCPb3eT zSdNw2M?BzwA2?%2KE<2$zD;Ov>3uP9bPszs>J<6JRZ#CqbPlyb|L{q1J*k3C%qP0% zUUZV|b3#orr)97}yN#@kgoYIG=i8&2dGN-9=s);$x*D$An zoIlUm)9fch(l63VZcrQD`Mktz$bmC9U0emwHvw>T>%0<0^49lBT!(#rF#tRW9Q=UG z`PbNi;tyy#asz$5S|0?@VAF^_#9;Oppn0&V`9suu?w@JJ<@zn1eE${ChBj5T(B=zP z6uKO&xD#9cW#|-Y+VaV(`91^P&Ap$yAspzul6O(Rq%;kMc0x0ul?9E2HbN7j1#^Uq z+W>Ek!zR>w=Q6JFS{c`LGkl9ZA-tQxfA`Q3le~L}{CjwnSXRyqU)Cx)Ddc3YB8O#_ z+FbFZu{p5Y*lg}FHmkd(Ppx59Tta?KP;Cyv%faC)e<{}jPtyO7Yn<6&`O#10H(BOx zH?PIF!?1j>l4rv;g}h!IP@B=&mhl|?m7zvTnY>@GrGD=p%=-uN{%YP|S$hBA()(+9 ze{JdggG%qO;r%tG_g9zRU&Z^YO7E{My+6eJL(gG9OqMk`h&4FKVf~mB)F9Si4QsH* zY0T8H25VS@)h26+HCSykxzn8oKK8Tlutx|;E@39hEJSN zf=?r#B%f5k-wyAvcYe@{@AS39JIK8PIeWf#c!%#Zi4k!9mQKF^%8KwE-a$@&fw~u8 zJG_G|ec4L#9p2&l46Bjv@J_xJ-bw8AmE^@M*#9+F40#dVP$Ru%^M3IsDDhbZOZDdL z|5?xculFSp@d>nCn%BSKdMkUC>!gOT2R0Z^YhG z1Ia6qujZCcxn2t@w?b@!vtmR2z2NKJ2yw z*lpXXt9pz+qN|W$^N?XdxgY$tgWtXyD{`O)IC5?kG7Nun9REs+=O?#Uv7W1tWvo|` z2Rg^Py3`};D`s=fkH3Y!gB$$9pCa4vVc{FahV|!!R`^e#gQiW#+;Cu}zLxL4)`E=< zPjD~zck>i<(7eLmZXZ%f$54}?>oO0p4j8X;dl>ox;``$L?(<9UJ42rB+8Hfc|CD=o z@-Dp}<@tJ#$=~jN!umaon{{6v_XPA;X`aj1S`ytdEPl7YTZYB>UY21|xn7cC5x$pY zSc>mu8J6UGS%x+8y)45Lcl(7O;F;b$(RYl206th_WY0L$r}P?=(Q8c9ca-ERKEPgM zGJ1{4=rtyz*O<7sBv%u9j=W=f_xit>q6Vo&%UN_F>z+??oY)~!LW;*741u@d7{*By70_mNTVy&Z3n zt3p3q<|D3@1ruxaY8WUd~YrC$7{r8P2C)?JA{gOE`p> zA=W6rQzJ@!po6UCP-!iPJZrhKw3b6XYuTX3tzK)Pp6BA9>{-jBz+sdV%Zy^Yqf6uc zDKd4M70XRSrcSdWkG{dSB5k(DX)SWMBzyDZ7rAsc zr0$$tR_b&0{2G7f|Cq*8uDSB&Ev^Zk_23!XI7Ij$%{&(?nS)C7d8HFq>|fg^Bj+Zw z=b3CJ_Tf`3N-wt%@DT8j6$c&z9t9rRH@T^SzKMb5=%2Rwrp5LQY?SF%jPK2_&&FS{ z-iq=)uYI+V$H|ZV12z!PS-ybpaVx=h z?7(~_c3^x;gV=!KDr~@5ra^4Lyx4%zg$-f@hO4mwBTE{@2F!~Mm|E5#Hek308!(w` z5F0QrHeln1hHe`$(Z*QRaQ-Dta zJ_Yy`#)(b_o&=5!49%*cSv54PhGy7U(5x>_sZGu4S{&e2{b;)L@KWf~q-i?h@q9RN z@Ci-RBhO=pcK*zz>F@SI_oFUNS*wAAU)40d?b>s>_eo9D{R^JrJ2j!uF>rr09N2>H zYO5Do3JryJLNlS2&`4+ld;pplQe)|*33ZRy{jnl;{64WUy)>a83GgKF)IQb%K8AoI z24?u&oPXmb`clg^fr;!cU2pjtaXG)<7YxxdcACi=ablTi$g*kJR<_xgvz^9_ZB8V_ zG_g3a% z9}1m@vcDZ#maotdedXGRCibDT)z2QcZ3upbAy%qbiyc{OZrP1pxsu%Gx!9S0*-%b;BSnw+6}H zwT;>fVZDdVA+K_V-p2;m$Hstb zfAOm4@|AioTgyJSihV5cNBZ)~dT?dmHD*Ju)@h*LC$0uFPlLG^nOEAsH;Qb_4F*0K z_z>Vj;5}p>aM}MyMGox6u3oFm_yTO}%Kmg~*lPgCb|9ZOPHwh`ZbC1ilh8-#BJ>bC zFa~U-?f4`z)n=o@7m^`nnv-)Gu%&Y7pj;Uz{LkPddQanI{L=t9p~tqf4=A!9*az?S z!wEkGaQbtD6TJUFgcJBUlN9zJcttbhgJxun;~U6{t%k1d#tDDJ6jj3K0>+C@E~1ka zIy=LDz6}|StW7WnjWP#0bb1k;uBw2uZvmbHj*lCBLQS0?I|aE>C$w*BSbTu9u}*@A zYMb`g{R`jkv*LW8{w>a0U4Apqu5DU+N+ah&en!?n)0Vo&ku6U%&LK@l&a?S`H@wBY zAO9%7N${@PcbY>Jn~~qjK8iZzT(FFvi&w{Ej62AiPEaC}ZF~ z)WOOg)7;``?ayWHuVn4xFNn3(Fi!kvjH7X14RCTt=PKaHj@`^1@DySYoQcJuCbG*(W`>%R)KF(q zaY$IH;U&BBpcNlF+KT1qQ@>%f6&ZIDcI7B5nHj~rjIt6-MzOX=0Urf?6!SQWvDM|- zcQ{*`{pQx)e&m_o+_uv1Y+D&H@9_tmdv*t$Z_Euy4p-q&5dZQ>iF@Ju?R5Rg2OrWl zDY*#9AwN8&)1&sT^a3_I0 zio7)3BCSw*$m$yRrQ6(k{iR#M_aVK%wvt1`)QDZ7eUxIGM#l}(GCqKe2RGTjX&>bv zJo0PaJG^Q72<(X?^aT++0U>6_@Y7#;>vS+we0s(KzJp6#T$#$lQhaftS%&B!?W{fS)*5 zqjgUex`+4}x=8y^ksbH*9Q;`LAH^?Th3<(jr2pJP*N-|#>mI>_Jy@<9{e%6uy~17p zE%cOu=NpP)Gp?Ac%y7otM{WTh4tzN95y0u$(dLok8RVWq?iG;_Ib=I{B(`JM6|wL3 z(c2?~+*HWTBJw3ie>~t3;He_-+BaO|Obx!qJK2W5X{$D=i?fpGBM<&oG(&t4c@_cx z)WQJsGXlISN_Yj3ae_-&)ks|sehi`ZQ zy1)zhb*vA~5B=%kP)}$zP6=3vOdwoIju1Hu7X8(sOYiw+4^^g1%QMi$JKufeIdJcM zd*tkH6S|nt#YAS2N7Xh2x(u=6#UapT2z2oQ_W}0-CvFG4w++|Ok6-%IwLib~p{s)& zM~1>f3+s^2@C!VdTrvV)sbj6wS@8|bWsbE3U39)zn+ZKC;gc|YG6Md`{@QMq`2XkN z>($%Xo8S{+9-}gkIp(RzJSp~-8SJCBVdx#~Ti}iR_>DW3cN|CK6l|t(tx@YYVw>p@^!LtB9~*gq z`Ke`oYT;XAQ(BMq)w3Rb-%rna^l(YXihd~R*p|PFe$so($lc;&9c`i~omghHIYEtf zCKN|8kE5K%%qZ6VDD-T-i9g9nX6n(i_0FVXU0A7;M9;c;f1TB(o}JHd{dp^n|0#z5 zDY~KFii{iO>eSW{IyK~Mof|T@`9l)tFDym3pgYBngU%$!ad#zrT4`?eSMs~cK6|73 zfFF1jaB9T;Rlut}a3An$;MKsZfmeIry>zlshfWUl+S7)*buzNFTPI6gsb^0c>ek8l z(7SaqGOSxCOMI?pPb+ae>}EbOKH}d<@M+|eEot-``z5x7b0(0#*or~P@ zBK8})PhktA-w*59zz2|LT8`VY_cWw$SPuW2(!O-pmNI_M|JZ`6bdT{9c?SDk*Y9U& zALyU+EB&(X94^1>;gR%Dxkinp_$t)!k{|O0uE`#Hh~6u?_dj3SiwZ8GQvaMi9{#F_ zzv|(ydibjz9vLOP!!zW)+CNbm?{5B==eXn3z0W#+grD_|zI@j4FwfWvpW!3O&4ABl zz-LX^chjw8W;*uWbStrBx)ooB4=y(y_;f4MHeL9z>@##}Xgn;o8SjKfWx95>%NX)p zbAQwE5dSCT{~p@3JPfb()kP^}Y7!aMh|EoBnai48*|RT>1CIfZ0*?SM zP~gbJqWBXM_`cW+0Z#$<%E46IRB)aO&Qrm8D)7E~Dh@mbJPJGlyrFn1G&vQToC-}& zg=T$e-cU>dPXSK>PeHRjG{^VxZvMWh%rm|*{K6V%<3(_q3QkkOX(~7|j zaBc){1GjtMp4!KLQS(ls#BaBP1N|v;lNjS9#yANa`qH4Gm;{~#o&=r* z2QLlqE9CGiWbi8}vCX_RV9%DruaLp7pzsNtFb(PlpaFacFUH`-xbSK}8o5uxsev&yFeZG< z{l**v9s?c&4juc=Gd55T8y?%tjYoLr*&C1W^7qF0XB z0IvaF0~|U6?AyP6CH_Gw^N>-YrTjBni$*a880V@FI3`ZZJ3v1}A!M_LD)i z!10}CYJo$?zA|Wl`@J;t-rt92;5@;KWhTJe6RgOR3Gns=czXi8J%O+A!IH$ll#d^WVqLSJMFeIlVJqtX%ve=7<`DPEoJwNw75=h=gE zdeHzl;|stq5W_DJ7r#M2obeX`PXbTv8^#)!Jjuf2tZWfZc-sEr-7~ zgFjZ`Z|rBcc;$l^=Op*{w&_n4=MN8nGyazC_+5(RHS80c-HS8%K){p0Qvxs6F{V0j z!q=+m2EchFaD1^De6TB=)|9yS!uIC^)dDrt8a2^BBW59U~aIdX4 z2ArwI2A&dl(Q8wCarWBOUYx!6dvW&Oe}Xu79324XvEV!woX3Lm*a2`J3(jM~c`P^s zFP_Xip3FR+%sievfK5II_!!`0fJ4WAHo5nHFV5ckPY~yp=Lf*~z1rlbfYT}9bP70~ zGQfHs3w$i_vB05YzxC|B-^(Z7`}^>T_3k#gS6@F3&R!ekJ;`nK^%(SZFPq$G`QLBu zJNEpaH}@^O{-JZPYy8t!P;W2(?}+y0Y8$TOU->@)kLY|iw--Rihu{&fUFWrNynAl1 zjWde1G>Ww}inT=E0P>@+@3tOzJ@9(q=;OZfg|+f-d-n2LNp5uaFn<_;US9d&)%WkV zXP@lx!Flbn$@m$%^IM_WN#Jx6IGqGeR+1 zfO8Z$xv7~b@aORFv>IVF)ooo|xiz;NyXhw<2x$xVJY*T#=j$ zw-#$lYw!FNa*ww|=VFvRj41J~zA?dQTa-9|)Jhd2#Q7sSk802e@~GO}9Do1*d#p$< zrgNwyS2nf8(siDa}Zk|JCxTWrs;V zw8MHag{O#zn++Loa`Q%o-*~soBYX!>#8&n~inUc_?SPZyU?hlr#EE^x zh<%LDM4j;}Y9^2yiHv1M50K~h5^)hl&eTwH#(MYw80#oQUfE0FfNV;(MWBJui8=&# z{HD%_ZL?(jGWPCq(`STdRpi$Vl6+ZZ#ock|b^f28ALL+p+#Pqi<96r9VcqjCZw?D% zDeAca&iu6DukV$^;*E1RGS zUbFy?t)+;MuuqNW$o~c2YfYHcZCTNA-E?96{b<6xodW)P?lx*!+Jdhyht4XpA5zHo z4C||n{V@CD2;+*%xN^wvBJy9MA2Q>>n>`VG$OQ04J#Ow-++SqBl;c{zaijAT`ziLC z@!ZMYahJ!OuOtr?e#{T5X1@B5-6V#cM@~Zo2SMzK5XD3Hn75P zkio~&MhuX(62WI46`y$yzd#Ycf`TV9CtI;LeC_zu6Tlk-r zZUu1iD~iO`a)TMacP)AE_s*O5{&$(Tg~%4<3voWdyZ@XSzXvDpI`ZP|T}NJ=y}ahd z*~@EQoW1vZarWMSf;e|PJ^;?|Np|$-vwn0w8Q$Vts+?6?(|dR)`-)!jCJFB(h)u+a zO~i;@jK^;?9(j{M-Xt=oSkVK+&>zGt6tz1;!@XrHFwrm6_jvWoIFB6dJ1$fDyEJA3 z=ENL55S9c?kw^4Pf-giKNsgrGe?MbECwI%EX^h<~j~EwYj}*xzCNH=gUTy+- zqrm^avM#n`H;6pzO_vP=tc#ZW|8YF>j_;IwVXXs7Jc19PU!E|z&CoGYB)3-bx^u&k zKg1~%ag2=Qh2ys;uR8&}QRjXCgXHHsj#>C*P!C@lCHq75wwoju9iK>%SOsy2{&o{N zqc0JoASTf`lsb(bTLZpE)?}#FcnSML(Kn|}{Jx^k@W-f8$W8n$IpQ4s^aB1Eg+GRv zN1S}*chn2-h?m#CxM_g-Cx0GVN5Cs8@s)nM44lC`0lZP*{l@H-i{3GN<>LQyIH&dg zRO}9~E_iP^d-MOi`p=vH=hc5(b_due1k9~-1MC4fd(<<}TXy?_Q@b-)*Y3R6dA6dN zfE8I12>YuIN6ud5ylG@#_uM1<=u3#~OD-|pHQDjp05pMjnP+mU;e*iw@BzLtY@P)0 zMuBI-@Maj^90qR^k8Z=>!RCn-iHqu53%Ax5{&8>}4EYd(LY|d+j-|9sLhjgYS$-Z{FMJuE8(DFX&n|j`?6;lZ%*A zdy%>uo}}+zBYWk$Cs<{ zHXOM?YKn`jM92QkGo|S@5HyHdh|d)A13?f2F0GG$bKw0uD=g6 z)0aI%C{YD}@JVq!sUqFIGaK8I-Mur(A?)s*8RvVscV=vRvc23p zlYG4Pa_`It-=*eTdS|BiO}TewlJDi-nbK3U+&fcxYL*}|u(z>WOLauZ2XDPvAGMLd^U&p%V%>1fB9?<@|VwM>JBVE zoBh-uNZ)FIn}4&(H9nht{N=M*@t4nLgTH(>4@P(K*<8zCKAQ*em(S)J{_+Xm_7%

{N`=&luCrT*h}UJvSFDHOzCD8_qn&JeOXb7c>~o1=9`l9L9eBZH9Rs_?$3QHT6)Y0URa2Cx-`T$8U%&X~zcJd&V|98&mc>Y_uKWX@>kw$*c5oKS- zIS%xf43D{qo})D?d=fpP@8TSf7d}o8Th1b_Z>K-o2qXVv&VX1vLfK32p_g=mAe(`XdEhZ)?-9(q7uh zxnO~(p-V()-9s1p6PM`ZP+#uS%D9DV-D|+@>688-*Mz3Sd+u$yDQwcC>+si~;JSV$ zykB}o$2w%^Y-HzbWan&T=WJx>X~@pgoW{&)$j;N8iN#qavJcrg%bcWUAv`ICab%DU{5`l)OnSAl;EH4B|EFS>$#}&lKvO% z$WPq|E{RW@+DTLTr8UfBugrU;mMg+u9X}9f=W+cpcv-F~^5XFikt@#ck*V_x-9IhL zb$SedpPOUesF1IG$SW(!Q})aXnan4}^`si!OP-GIB~M59lBc74$poFZTm@mwL)~k*78P z2g=jYvL3B}ggkvl&wg6>tjJ@dX730F&8?l(+_qM7-b*FFtCarQ za@LR3>1OML?5R7cxoxciUIo0$1E;pUlbYMsYT(ttt37b3E3L`5(j#xkm(Db|uB8rm zFJoH3m?}fvzeT@gN6J|CGM2TBrIN8M=sT8?GM2rJWi4Z=WGoB%j%8$!vFv3mYZ*%= zV_DF5EFpG z|4w4u?(>FnjXn##-)o#2UdQ>|tyS2G?l|4wcGU9!sM2poxbIFUnG4VF(o$cHUs^wN zsQbGPsihJ8@afT)>n*YD7@#gO7SmQ@Um7?ufE@9v4Dl>< zZ@g_D_s`@0dE7q_xHs>2F89yn{<+*gx4V`$HDy6}Ep0Nhpu3i~ap8jQTH3^t1>Lo@ z@nz?A*V4vv=XKZ8MmL<-T}vBjI}e&W#DJ64ztD&sU{GG;uNapJ`c>y+3W zzRqM3-{wAin(8dzX8}J8ICN+uK1_@_R*aGZD>TEelOtA?A(o_wxwLs{=FP+R(u}xk zu6JFUmuB9)-##?6pp^xU@RcvHpos-7ENDPp#CeRhFV2(2f7tTr0dU491g9i8r39yb zID6_$iN*HKVfEtd&CT-Sj9(+yJ4elnGya?$e&kF!ukQqLPG2HipRTFK&x0?SG2!n~?7RETGd|fIaq0}d9(>}dHZRWjuyVa~oxM2Y3(DaO!YAbB z^_?Kj#^M2R_S6IS!`V|?TZ}R$d_fs#51Mv2_%=5X-^SR9Pxvb|HIK{vz2F@{X_U4@8Kg;1i%an7wy!o5n z`@L(!dw(CAv7Vb*&&{moX4Z2v>v=xwc|PlTz7=Vkj|`iF49g(Hnm6k8oPHCWrXZuH zAfu)rqon`mx!`;*IG+p7;H13y-RFbz`QUs$IG@imC-BS#C4IYz|0nT3F?Thgq<@Og zB>~J%)Gz5w}nF}nX^bpOTZ{)>U9fTw_`fTy_MOY2F%Cjp-X zT>3Ti;jjO~x>?A0d#xM8gcb`~Hw#%e3t2Y{SvS}s*dxi}Txc~H`1^pr5BU3lg9r9Z z6niFyJrmdV%=wJze8zM>V`43VQw*G<;1tm~od^6p;O7B9k1<~e&KH97h2VT4I8O#X z8Te%2leynZvr~be3j9>y(r2R&&A>T>tjJi63$a_4WRMkSBP-5ER-DaP>1C`g0_TOy zTgH_Y9j}1XMc{N1I9&uz7lHFUaGnRw^T2r?@QZ<84E$o?;L&ytIG+Q~=YTWvvp9n> z&0tJ37}Jaa#ylPPbl}s0(?h!Nm$=- z;4}}M;P-wwHv?}5-VD5X0Gv-q9=vznHXa)Q=hNZs)8XyY;qB9bdvTrvZ_k0Z=fK-@ z!1)|-ItQH20VnvqAI|fE&j&sq`1}EI_R0hAJbUHA3C?rJLj&ME2b|}C^Biynr+zr6 z!8r}iX>d*>Bbt#BQ`issH+G00DjkCkC%VSxK&Ls-X%2LPw*6%J8Nkl~eg^O}pyP?I z@vY$b|MnVBgHsxu(%=Mb`^oY%fu9NdOyFmN^9jzqv2lR8e@|80QY-s9`F6{)#efT?(X3uIv?izf56;Z5-QThHJaqhT$0Gz46dYD+m zUh1!Y6&wKPAUIQh1w8UAIm>{xBEC|5macq%jBBp{RQ#Cwn$b!9K;J%k-ZkK@nd!F% zxW8egGUIcV6Zb1<>sbTT+%&8-fE&Px&7FY!(`%rkW`H$-FB09BM7O2HAK6d$;mgFI z87so?+Mnsw_ZMQnUuZ>(7h=DQeeTuw=VQO0kNti=_B(Q?=;a5m-0 zg;wK2_8v_7hs=Xfc<_J zIG+X1XMyusz%K-TA@B=%# z#>blRv1WW$zj-gh7sUO0`sAIU>}wehj@~_tci-l<^WJUW=AC!%ym{x{4^Dn?@`JM< zoV_$Nft$ch;M6qr)fex5-qZC1%)58r=AC!%zU@Tq`5-t2!6^t%!2#wu06YLZ06Z|j z`hK^4TUo~~DCxM$0p{7eZ}ZNxci(oR>pKKaA#e(TQ)qyBt^i&EyaIT|iO+M#>jTWQ z*QWE%bDw=1edncTs>H#@x&Az375|?hIsh0kHL>xHtDQ)3u^G!Pc8FIJ`&>-y^AfW$ zcL}l2OU#Mt5@%v@5wXujPBOE|oTL^J_qF_?f`ZL}r~yKEj#K)@J(pchc8C;5YAS^*i^p z($_x_FgJGwoXyPv``UWW1HO!0oNI`Yepbgx?dLh`m6)iGmwr{p5IL8%j91I$#IeHW z)&=Ap@8#K*JbNwAUdx#Ql{|Yd&t4EH@C^H!I?mv}l-!}K`H;_Z4LLto@8MiB_n9u8 zS{Cs<>TKGK|BJnM4|C%z558x1q}|mXe3I9vIF42$X|-Cd?6qvK6LQeB4&YD+Ovu3w zhpab-(0-5_8c5q5b|Tw}0}kDaVA{8Rn@zJ$;>Ib9FebEx9k2n@y2T_e(0&|@NejIw z&4EDZTk!k4pBZVTMDG+qK0NpNxu4SesI~2kF#Gs#*;o2L=AOTX zv;I0|&)9`_%#-+%zQj`(0B6?h`wZZm^~YYU%mjUk9)2|N#HkBZjmtlW&&0%qYM-fprYQ6rF{}GbW58n*7gzV0 zW_h3E`!ciNKcnR$JLZI|XS8ts3eV0Q{^~iS3)OzpZaHUkf_*F#mh3s@ysGuluzLZ$ zCKu9c5`~9Ro3r7gocmSU)yY|2;)9DVc8ME2;sz5R*`X(MVj(=P*<0e`1AF+;CO)=9 zOb)zm&xGbbD7q56=b&Bo#06GT^B)vlr=TnF1hma;zDUt9HFXicYZWst^y0Jl$R!p% zXm)Jml490H7enW)bCH$tEIZ?X=QzEF6VVzR7uX4z5sz==``Txk;HK^8XuwVD$3KP* z+=C6=h;I}TnYqA@@$5NoJ-DrJ((AdNemwF_z!L&@mK5vvO(1i%w9$HUHQHEN2Orrb zW^m{SoFKk|M$pC@bmdtt5!$GIkXPE1$j}tDQ*@H=B1iO{rN`&l%%0ciG!HrlG#dM-CNx?GjcWEF zG|;GiUnaVzIQc$k^crZSbWgn;p?iQsqu0>SxkJA5veO9}LY5{j6gm|Lgibq*rn%$a9s5PhPBs3}xh%7;?xO+)-ZwLLin=b)R z=z*M7)?9{Oz4Z7TJ2gJHbT@sq^=pnk#R`q44>h6D3TRZbZ@Pg-+MbGI_^5mEQ8(hF zM(7WQr*%5z7=Ha8{Q8aXxL5R63w+ntj4ua+A_t;VeEdpX?B9(|T*CSRKNlI0wc=c4 zsXk=(3&+4Qx49eqE+~cF6@hKxtYVRa-fmwG#vTMm-KNC&otRzSKi!~r>Dd4t^XSo_ zk6{uVC&6()IPPzP<0Lpvg5&;;oW~JqiMBF%fsyHtXaPBIFxL4v7=cTG#)`y$m z90zCmb-^hky%`NS)3X6Q=Fy{ZA^}Y~OHcL7wd^ZMpU~K8zwbx&DaTdckNVvBw%_+t zAaCL+IpcUp?;r=u6vgOr=O#`Peqd@`Z((M1=h(?sYCR6FZO!` z+l>rq^h7sY1YTA9NIP+Xip? zpd0YEf!o02z@dMG&4~k#1Mdai%k?_my})~c$AHIlIXZisr-z&1oC0UgCIzRA;M9OK zbI^ga?*^RH;GE)_Qan?VXX4Dw2Aru$n@Qja;Lx!FXZ?B|XZ`v*UY|YAg&#D*nY!cD zI&fYG&g+`sybhc>i^5wE&f-7eo0#|}9`!kQxCx)AznRqUsC%Sb?y2j!7nV&sKEw zX$CrEphE^afM7_-mgGW*;~^PKdfczrx4bATG~=mXvdJO!M!advnFJWL4> zecnwUZNj@O&z$9%neisi)WAFDv;&VZyF4zl&7E24Nk7K<`8pCgDQ&(Hia z6}Lr@LC%B`8)K|)f=3QKa^S(-HhInlJaXWX0}tlVN#Bg4>pk6G=z34L7g>0dg*OB6 zW}pf027nI$&j3dr&W?A;U<4T?U!&+yD}&5Ts?cGq7d-Wtg&qw0gVNxc5j-1YkiH?{ zF?wm@(n~|HO46if#T(=~Ipd*02I*Nb2Z3jSBO_;tM;tt2;Nj0i5}m^SE5*+?_}Lop zv!@9^i5-a_)9Am9=)VSjt_P3x;Bf(X1hMnamn&pRXqcH<3x$7ZLc2Bm<{Ex;4Zpdj z3GLSKn``(@&IuBoP0tH+1)vcP%U$5Dr7uI6| z&MNN_tp8n2a6T(L^kVCm-&_NomE8z_^Ar5$nqtyhW6?`fq^HJCOwgM~KUW$V%!mxS z^vihk+nCrcXB{yYeO|z0@F6aIXpm9(4)1gDA*=YH%P4jg+lehC_aJ=Y_f3A^%fkoG zes7R*W+Iw-;H!c2OlK$K;G6^J8aj_X3{I>ok9B1t8_r5_*5w)AddP;k3iv8;J}Y^) zGegYoa$9YGX4g7?e|@m7sGU{T)z~+Aj&=MFy-p^6gEP!?=rWGq;Ndrz>w%NY0bVcT ztD((mXfp(DhMLfB2>1|i@Nm&NXH7fN39Hn)G(@+LUCT4;{)JAvSMbcWdAPHp9sCj* zRrK;@bnG5v1Ui|}$wNlnwWUzRu=+jr!#~V^_{WGFkC9jTS_|JpR!wBpTf_IDCGZ6B zIPe(oKGU?4pErxiJIR&3ikP#lNv`bk)DiDAfD^Y%9H!}oKBw6|G~Li}k6&CjD7qUP zpu28M&Pq2xn_2p(FRah(I5HnY=5yoJ0qXqIa4{iq_c&(~D*xakzXBN&dm{T6FZ9o| zEBs~?`jOiuKPS2KjO2eCY%%#$;F5cfpPk96Dl;H{xJM!-J0ajJ@Th6eKikjy$uertV#aVL)W;hY2bCe4Vs?LJxmVb zG1kX1at~iKxPQH#P61BF0V1&27sDfW8>E8`Z(^A@ZDvp}v-@;T(t zolD4lk_YuJj+*ALNlnONb{;yVQWH9I<5O>un$QE(gtppQcPllYt#-QiT53Yq+6jjl zn47P)VFqGsksdIsk+r))a)(heBkO_2F@I= z?k(o?4=~f=!kTyYC2)gVNUZovqPg{&OJuH zq?V)3JWlYx%nl7x%ZbbPspEw2#qLjpZZyWI(|awY-Kol%pQV9U_a|2Jxaj_?tmIy1gUahB z?8(F%tYkOmAIs};(fz#c6@Ku#37#l8a?L98qG&8s>Ulk4PSy z*PZkZ$?Jv?*9)9=#cR^JiuHCCxLnD4V^8M&gY|J0e7GEak}Gj;Zc*h~H~08Db?gdoq(1Fj z!}UUkHY;Ub6VRfqnDVX;=+S2NxmO1?X)X4-S6ONAs$$x?I-n0e(bJa|`^>9t>0$S2 z1x`;>m!AI`JA3Lf+ov10<-}#IfuJ5eF>4wM{e*TxH#^b0vJ{CJ(LLm2<5NR6v?^wW zR(uCK6$hbHW~#?d@95$C?B8^2X|s?zOh6ao*P!7w(K+sK*ttjHfq6|adHjr(+Iyy$ z+H}V1>poNLJN`54AX$L(FHB8_*vo zUJqSgPmcNZ&=y$^F?V|Y6?SSfJyj$8iJUucC??G}Ab(dBQ_?du0dJ?SK|cAt6GHnd zfL{Up^}xB;#8t@WRdxz^0=SY-cO^0dFE_6&4tU7t4(JTMw4hkenkj}+@8&HBj5`f*u59_z=v z3OLUUJO@1Hv44WS6PzIoPO?79X~^q_PFvRhWQcs4yfSxM)<5SEBa^&t=m==lQA|*e zco}G9XOKH+BXr?;)w+eQYR%fnUzI+YDeB0~3`;f8g<5ijCS%LEwoa!++g$X?gV^cA z$iwH+V_y+Ds@E$i;0fSy;IXe%bun~*C2RgN?s0jrm-X%NWJWLlf!NEjS6M07vZzr; z!_S?Gc6W1jZfoT9lJI`;F|A9f;qP8(Sbc%MriTmJXgM7U|Lg`4b48c2e}RTCL2om&ph0i% zX`;6`HqqOWCVKl=6TQ8siQeAWL~loag?bx$H|p*Af!>~1Oo;rAGlQT`Z_f?%_S_&2 z`x1I#mU{bGpttt~dV6D_wRJw>C0>FH%51Jj`|+__|QW9`5&UU1K)jGeD~=cO@8l5>(Y>MdS3XyPVWxA z+P}|IW>9_e|A2eT>8|iAu^)0?J3hNttW$|^BnGO)Hz|oLd>e*8V_Ebc6tfP!V5VhB zj{|*BdKiJ^yBoL1u@9ZAO_hG#2}#{200SM zAjFR<1|ddNF-XXdL6U(jO9r+q8Q8L9V9Sz$ElUQrEE(9c0z6(S;;*!HY-_Uvyzb+o0V*0vyyunZB}w)qs>Z2ehD^f1Yd6oUyqn;K~r+*)sYqshLF~&|}j19yXA!3XpKeN(et9BA&Y#_!6 z`7uViiLFXEu~q3NwkqAkR;8QRs$>&em3;YaRdG<{Z>lPP$P%)LooYf`JMMHB`$g8M zrRO$F4ZSwL5Zlq|)7E$^ayvU4l?-fDGO$s}z(yql8UoIOpLz8Co zKz78}rRL>OOQ)urYM_VM$_hQM z+Pw(f(r7d6?1>hMA&A>rs&+$c1wGK@vmR15E5CSNOl(5sTph6q6}y3+ zui6dCe^u;;*sGsoH^fGWZ2%{0^yWj?`S!uFs`jB0?}&XElh|r{$NzZyFo<2qOo*;m z_Mtc^>vM{nm5crp8-N^=pYm;mDe>5Z&IQ{_%;L&-BtO+r>I@sjgekUy{)5fZ ze^9F%BUT^wH+!l*+S$hWP-;F`|NnfO0qsP`r6;f(*bbFDafU3h6EP>q50FF1?4TcE zoPLA`x)588L`uv#_i0jC0zLmfZ#S$UH>LWnYiMf?DtW|LfyM(Oha=>zL=Jb5{}VZ! ziWDUe6{Bw=w^`1Ss;ZrAEAxV1^Y{_o7!Kh zfgXOX+o#7<$lWi;hNu}uMxoAz`1T)`_H8}IEX_OoeG^bHLqAr%_~+@^WyVr%_~+@^NQEhyy7+Ubh-9-Z;pnK zZo|)r*$Fdl%Y3gie;NL={N?zIne-H!oLzUBVHJ8lID92_u8!~*O5rhbfb0QVrE-k# zP<_OO!gpHpcU z`<&8z9=@&>eM%qiM5379z&STZLhKn1;XmVZ>Yi^|WeH%ISz z#w>sIEk@pYU7?)+tP#D(GDa7kZjpLfsb%a;`I)N>%Qid9tFNg4PUy6ezxcFKj05}V zmyPnppEb*K9(VF{KkMY%P8afX-do7GeYPNTNb^MM<@{;0T)d6`1+ydH`gy+pFXUgH zj(pn>jC|Wy%<^65IisP^o8^o7yX%?)_u{$UX_W8acTa!WjOL?8>9Z@q?+T;z(FI27 zj%Uu~pWSAZ-?iQ>|9IFOzJc0c`&W0Bf88?kpL*69el@e(=iG3umFD?czshsWF-CWO z+02*UY~-Kkn&;P<p|^;CxZ za>hpVx&R;q`C{AJZE3M*n!5p?LeQtBhfbeRkHnpP1qA zC^Y3{X`Mc{%qtyNM?WMhM zYAdybShJgj-vjV_z>b}uPxn;TPS6{hdYT^D3Hl$Wvgo%Yd=lT$PHuJ29w-28e4Npo>RoC#*KVg5s z(f{OH>g{j&0N;`MVjaU*{`9}1;Y)vrj+?2&Gb6kjZ!j0Unx|r(c(o3ni z;LUw*+Q|PY@NOMG^wf5~GtB*4hkO3M6b(Q5IQMTIe(qn{%X#$gxPR+#`0FQlh97bN z*5RX$$#?#Q`;)i3;WDm$g8LJfZTt%V)7viJeOaDU>jZioAy;r{e7+ZhS&ajKi?nb{-NQch4Z=3 zJGg&K)!s>7u+rn9dLV)x56Sse>>WA3s=cH4pla{%BdYd}y|Gn$M{h>7!yQ#NJ$$r_ z=Ob^kgYzS%rB5eWBDY!I^;kk;;cEcZDnPD5B*v9+0T+gdBkL$1FeskeBuk2CF z$mb^c^NDTvIHT5}N6vg=)JnMI{#}V-TilMx z?sReTIJDUdZ8r5q+u%prKK80;wdcuhXm}hR?1cxLQg%b_S@AKfWcYO|hJRDQ+X$b< z_NmVbZ{+tl|LZvW?)I|pZj)s<(6O6+dB@pzx0ii)n_3!VSie3q@p}A1dLcY|ADAUM zsa+oj9s{1EcOXmeK)=XvZ_r~lehsvg9t&vM+B)VICSu8xL z%c96VzWa6fFx%|-iEX;9aWB@v)HXW}Jab}OsRNsM_aAp!lV3!h?qfy{>}l>W8tI^2-#`cLdW{avXz&v7-v@o`$xE-S2d-* z0Xz;o20ZDE7L(>EI%*p_YFh)|NoO1IZNNu>k2K<~$xj2`FUD}2PQtGw{7%8|RL6fmzrUnx z&doZ%1N|`fZ1sbcbR)L19S-|el#L({qijdJtRdj-zU^?Riz_%eF?sdcWDNo5yzhzY zkso@M<<*p#DgtNbm4ZvYQs9zv6F5Gnyn2%RxIS3V^U+1vT69(Ghr0J&r|iqxsItkd z%U$9*x?*@I0w8Fcn5IK zK-koQ4Ck=JIr{VGncI!yNXIT+jr)M)WVn z(4leBp_^6$UkQ9A@Kw+c{fZ7v1J9gzJ@$}$G}uFp2FL1WGUzmDTo3g$Xj~63fd+f= zgeE7cr{x5+43*dj$ zzW?AHbln_u-5hk?9NF&e$wdL>> z*N1o4T)(U4`dv+I<2-(EF3&WVXA)mr_l@QPp96djaES%#e502rGvcfJK9Mgki;#yp z|NLxyqG%`jsq=reSxIJ?B$;87VuneI873NifE&P}<7=>y%rDV>Y+WZc;IHW<4S#Hg z#5WS}NPHvlk;FIGU_&In;Z=NY`CNQ%^*wrorz0z4${dtI?#;=ZBH#1h1P<1)*OxNm~lUK01YS6KZL_x1Aq+0mt_V!!c4RzhMw zmwt7L{dQnqRm@PO7qMTD)hDsvsfB^9dV7Ox-G2}}h%H1np^LDUo9bdabP;wG_@lt@ z`})G!`dvb|TAB&HgjPZ)q0!4hAMVF2EancSn$l#UqDi7clj*B#$CF_nk&{h^&rVwNm^O9sCsgWr+?j=rjkSu)t9jQs%c z`+?IlRji!@df&ku*Jrst%k}J$Kf?On$@<>F`le6np@Uhj&vJd1>wzPO_z`M-?w42A z=L7P}`n+GgpNq~|#rNjgkE-usmlS*sa*+$&x2MF=Q!&UCUtCGT60& zCVtTX@B!chz{y`u)cHmD5bUwk_9)&54z)B&YWoWxI;hd8Ax_X})DS293Tae0jO=Bx zA<$qiG}tuobNnXgbR0VFg^ruZQ`Y-Uwd;OgLHXcYxi7Nwg0`}b4!?k{tf!NnM`-ln z^*lrlS)B3VXQ>kd8sr06TwCLRO(2KRcyAUt%OYokP3-9)@Il~%!0DN)&oM+p=+)2% zv8S_JZ-HLvY$DV3zJ8-j|B7f;xCgl*mN^bB_CkwIoc%$*p*|l0t&T&>z0h(K^#pDr#XEf-fhJ1!bn}&SGuZT9x|JUW{{)3CKor~=K#}{Ec#c!*ZqXWPn0sbiP z`@X&;$W^UuqWA08ViUbzzt$T4d5uO5I_+0Pqp=5c`3YqHye76(lOtWHX>s6nl0zuW z=l-*b<6cxRYCi5+>&0J<56n8%Vubq-E<+ZVA&bk9#bv;CKW-VaxC~ibhAb|htsmE* z3pKhm_#VG(x=gDa`7Q9bE;b0{&u$`rFXGE7Uz!?~yTrGtV^0P)ra!PT^Zn0_@4To? zX>r$C%Tz;L);+7ZbhhzFK!<9a5u8(XeS=J%WiG!#rZl?gGF2Qf=ULQqtbS)M{g88| zmSa&LBmSCaC0ueV2kY_}fh@4ESMwwR>SpmcFTU~)|K}DcdR7Oy3)RX z?@If=!6Ez6KPAt*mpt!5>fCD0HO3SE+72OKdOV@miu8D*zEB+pPA@1a9S(V?T%;76qX zZfAN&(V?tYYM9jB16@!X&yDzYrtmZPTOZHee~_LG`ZDNe!1qZ3*Zpwn7{DI|e&5&A z5@R>m06k7=jKS*h*K?yf{*5~1CE;J{Bv13AG%$XE4AjSIkFv%ep)P#ji{yD!-MHSr z-Vgi%;P(T+@1N)gQ+9+p1$imylX;!;uc^~l{qAs(&pFq(ABCH-F@7FP^&hD3lf$JK z+OI>(o(1Vukv-(n!$RMgszb^iaz3YL+^<8@za#HGOX6&z|H?Vc@AdX*5Jin;;;NC^ngPVxWjxV+z z+O)Vh*}bIr(B8$Wmv!{J^gNz4@;`XqsO@DP{a_38iEH{BYx-DA()T#`sWbF2EtJ>t zGe0&h+nG1IdmFu&&OCZt&64!6zUyk~&73Pej?%+fE`P>|7U^@{`DG(trgwGsmkarO z-a{YgX9^bmi}~H3qhIwO$%yRj2^pH}mg)-n7!*oc!On(DV9E`dOtv_1*Nm z{=QM9XEpzc?;6%hFH&whQz+lr=H&1EZXy5tkInMU{1qQJ%Xj`h{k88bAgX&A(duP|T%KidbAU#R@2AG+`Wm_@Np@8Tmm1Lz{e%< zaVb1p1`n6Q&!zd%qjfyYzw^7beXFZguWBtXYkF0YefIH6U-H<(|DTVuhluze!lkr z-@Bjh-S-t^^uyny@54*%TcvV1hw&lmdV{g=;-_@^K8kSy+ux<;=>$E(rSK|awChky zDLl^@4IMIW{L(-CHGa(bTu08;WsaX~?whC9>c6XJ;N1DqyB==gdx!bnrSd)E=_KF1 z)c@Ytzg54t^I`7y+Cw$ZcaZlV8@~5;&hOr}93Q0%|7Gj&_5%;o|IS(Ryr$0hN4<8!6l=o#@dZ4L&496OSt;0QcaGuH0%ej}-jJFQoWc(hz z+Y7jt^i2cLCFt4yBkm>pk+%--T7H1O@Q-t^4z79Q@V(FP0ltuXb#ToahbMQwlYZ}~ zfy<0Mp69@Q-0vpf(jT^U_{z7_&wl9t@LSR+_Qv7o?zo(O_`l}2q+jff!#)4{aqfR1 zza@QRZyY}Pt^cGa{m=O=_EAo}(Mq`N>pNmmU$m$%TGSUCdry-`T7b6zZvo!Wdpf+U zeQ&g5*N^PDbH(t{1MezzJoiI8w)u+TD?fWfwDaD(?A*xa;phH+L8)`{Kke*}&BG_R z#G_q3zh!4!zTZ#p_oVabjc!3EN8Ck85V;1+s5~XV_NV8_j+Oo?%;c&jR}% zc#dt=eGBYy;2G3eP-=c4`y9BRe;$;~5M+-7&#*x4VQ6EHVB*xAAQlooSNcRoO06zu zL!DaSpE)-DTf{rM{n2PP`NU^9cG& z>%mQis55V%k7Or(BuB*WuFI>ihR8Jqz4ZmPh7S!tx9YFhN3jUp+QE10@X`D!jHbFaX9?VU8P+|zYo2Mf2Q7OKX8!GTaCj<7rlc$ zcwe>?e4gU-`wy~z@HS|6=yN=;%-4FOog*fCXj7k^-E7(W-_&PkMlAaQ`V`YUEc<@? z@|ZVf-?z8F^nPN-N9kRBrmVIEb&q_GRn!C;FH<7X4QLDPY06$20oEf6u z-DAea5HNfo6_>el`E7~Uq&H`Q<@e_B>WN%02xPI61D8HGk;esApNpJVWOD4+khwTD zRdR{P$t8B%{GKk8x0r?}nXSAt)+ylc9!LR2V?Xzte|IO1w9)pfHQBy zoS8NF(7_eR(hBHosxp2mUlJ{I-SH1LE6`jF1Gt}U< z%urMQ@3alCSHMgB_T%{N-RHq4d`R+bG4GA&ANDA0!mrUjNfoFgx z-Oa_Mx7kXW%ujTf$2d`+&r7=O!|~XMV={lyp+|`O*W~liKO-~w40ns~M-<)xFWP-x z)AOu&P0zF9H9gOY*YrFqUVHSFE8fy$F0W3j&uf!jbm5s74tO07cpc_?J}1}V^Ewpp zIu!6a6!3Zryxd}?ylaXn_Zq&d^O|{><~6{t27WcaRmW?7m-T-z4t-ev^6Ieu<<(^U z%PVsp?mL*M@SpFs@VoLou`$wDC$@#0r$Zl&$2u3f;nOEv_%pIaot2bj&qjuMaOokL z3D=D0TUg)zY&f6aA^164ezOMZ=27bWW`DfLJXjODII;&(=lAv|{KkJ#d%;wWYF|O+ zr#R2Rc`NsMYccI@xBA@e(By5!KKHG~r1Lf_?Y-6C)BLY~4nf<~Jo=#*&jYcRA~za^ zMSd=b{0i?!@7ZRSS6^GdcX`3%>~Ajk`bS&B*kdtv=_5V#>Us828?0rQEl{nCF!9kJs;Kmi^$L_yYO5Ed|-Lo}bH}^*R2Y^|B>< z)+>9O*>4RTTRU}Jp0xCe9>Fr>08*pe4QOXb)B8?u7ju7!Bc#bsq0wJZ^wR1Y_@ry zq2jms#RM^=#BU##dDg^?G5Ngk1UyehL$aTAr`k`-b#GTOqtXM@|6ba;kUdr7#8B={ z!9BP5_nhu*eox~cuo3QZMS1b@plik^WF9$b6)uk#I=5JZ<}JlR zPi9!$E;BWv%z;p60YB9WzSCFn`4{cn{55vgCAT(Cj;(hsGjTby#92#^?OHoFLM~!Q z9(W#j9-8K{nR%J{Ub>rk7!otdzH836l|9#`&U^hiQQbWcOMF!7KKYP}i@LUZ5)YNS zZhC?l8q6bf(`s&?iq(xDH}o>aCsx=o&PL36#KtF`6Tp*B1{!9d zWj{7h&d7>$Ju@-97}v*u>t|%exIV`9_z@>!c4i{U`y{q2X(z^$c6_AIj_v4Ed&eW& znR`E!RI!+UE-x_!y}8sckg0@!E_-1MI%jz?=`FWX=DFC5bL|BCUsF@~^ByvD!T^3Q z@N(Y5_-j8}DWh=4BRp3#Fc+(}1%N?`{F!0$l1DIt{YWp!SR= zodyHI2cS^~8ZnE3IU+BC27MG3KPlHnioEmX%0p}KQ4uNwhx~oIt zC?m=YOgru&pS5x^b`qL|!8r`hVQ`ijkxr8k@DT72aH$dLH2I~-#m}e7^!g?=k=Ts5 z4V*J4LQQBw>Oq06}ZH;I?lghIT&LuScB{n zPfrnJgHr~a8s&g^9eB(`&z%r`(9U||{AQ(xnSbDR@jev1|3luRFI?H*AM$mfaW9|E z<1;xgtv$&3eU#7SjFNWMH?MR{VT#Y>JKT>saK66z2>L*mi+UP2>I0ve~FvBV>~TyW+T=T7Ck zRp?0i^BrA3aIP9>r*YO1I#S>Z!D%5lMZqZw&N|Jaz@xwy0AHZXCGUH=U$32Vd(pAI zc6`LPV>{@n8|t;QPA_~~1wZAS)tIkSr;mZtDs<*5D`gI$Gl%TNL<*c!;G6 z$r}Q`8u)5-D)Thz&dyxKGcDqodU&RuCePdhya)I~;F9;$`K({B^I5-M*Qx#B+z-zE z;EY`wVb019=B*6%gEP6RsvSxDIFEf2oOC;q2In+5SI(Q%?MND&)9|@+-sBQ+S^`ds z!D%r#>wI1ed@=Avz!!nD&S(94ozMF9bu>GBKFbV^20pVtVXF3QNuAFbaL#~p7TIPG zijxAT6gVZp3H#lEGc!QUB=7`q)=LA3OMVf0cTww=zP}o!7TY~e7*_J%fNXVI4=WdaB9GL z88|Nk=jGtMTy!})!nXsfBsL$Te&QzhOmzGb-(DE6=Y2wK1^z`a^UPQcz4W!LAm8l9_)KIZi1nuF6II`vN1Y!3 z6FKpHj~qD1!6^<-z2JnMYS1OUz(ANhlBTgpjn7%JlR@k;Hr`}i>2jj$ z65ThD7&HM+HaOYfyb9l76}~|Z-#}<$1Gj<4fycp_vuCH+dk;LJ;JPl+ZH}%>>S)IO z&gFjR+9{W~Y5ZI}K60KN+rfU1p>wg5=fW#F&q~fsTpq+*cYt#a+n=*$&YaZcWF_#G zz*pfL;Nwix$qDz;R*e5E^R#k&r!r3~%m2^a+(BLUqtInVb)Ht5|7Xrj_S)H7%E!S4(M{?$vzDA61@tMCyb~A5N;Xd}$;Cr?D_UnA6 z^sSY0g6|n}?ts2#botTOj4nU3vft3@#q>-?e$xB?K*bnuZX!RrpQX!>?q}(1CdZn| zv1YQY8SzQd@+^APtNV$I+ek26t+aEWlO9bWO|j4_w?o9&06)y6PSani$Oavq5E2czz2a#-kbFgyvEn!e&VC2qv492 z82?<%IbkbjhKmU=RJ2`+_)cpvZnhRzdSPp&8@AF8^C8W)BJrS=a$Ac7PP;{2#p?6g ziYd1(|Gm$c<+tB%4KI&HURpGAA<9QnJWh&E=2RQVV}_hM&Bj z!z+I(cOHJ~O#UYyGe+m^G4tnV&2l8>af{zUGwgzMR)%PAM|aDDPQo=0EwEk-xiO=I{BG zSzh%GvwY71{+RI@`jf)w&NrLokG$C|b#@x%oe78g80AB&%yRgXM*e#}M)drpM(G&$ zdGax%bf||j`<^>felBUsY}NcvE-~}BUt%7<(RE87_~x$s7oRiB7yO%fSY{ZGZNIi$ zyrodu13n?{`B==1cG5d~=6bXI!%;II;hA^EoU-+APWf5hpV@Af4)rs$_9tiLH{~~? zk1aK#k)NC?-}IPK4u7POf9y&lU))~EM{K9O>&gOrllRmW%0~2kokl+LyC(T&qc~ua zr}`kV`VS*^;s|H%Ji!dl-=XK@JDk&VeS3NPVl#ib(=4C<95Y>?qYlDM)hD^nlVx&T zZ)hL=VA!AaDZP@N@QwaSHPcmkD!cjPm0sAM(j4i9{i-Q5W~0UJ9yJivqw3Fieb zFS6wP6vfN(O&>Q7w~$x7<6TdbKl;(277~0fWSRMkE&5Xb&M3Dpcgkydrf`}0uAg=C z?G}GG7s_qV7W_G{%xld9-+P!o*`FHawuk6bWu9yCCVE@j_>4d5A6#pe*Ye$6WuyGv zqtqpq7^Po>?@xZThL=6$yuV_WfAo*$@Y|T}+V+)Q`OiMd{U0}kkI{R!Uz^|kcZJd& z(#QJ+YCJ2<{CmG@=5MCna@Wo9WrdTMTFrZS|D%)ekp9@a=&R(n%Fp%io6L~C>v?46 z6N-oBPfXIcdy}Jb`MV}L_tP=T@4Ly&ANniu`!|?U2eD(E!504xJwG2~hQtp!$L9!V z`aIELXMcy84-a5#LLt_*ujgZ8kGvaMu>e1zY{*+G4-A#>%*BiWz5(HDInG z&z!f&3m3Cao;-8DIOwg8n&vu{XEx0#J2n4uJKhI}&3aS}2{LG-!1q&E%_%WjnggR|FW2ARZP0A>U~F;J|>eKaP|6b zzOQ^`fseL?6Ts(+-=OmC>RG1W&N`ys$)#8AFIWTQy9}{KW0!Dmqjc|Y8Nu_b>w@Qh zt9t(Q4paS}%)(aBJ9ew~dt%eq@Oysl%m2M?ToWzv`M&!Er^4&t8NctCr$77`-;ahJ zGx+`2-T2gb-{%?3(bh1s;I1hFL&tNjj$AkWzkOV}&$K+R(O37|UExLihRncT;@boz zKg|8+env?0on|R?X**{ib=^o`do=XJGw>oZ+7cq4edNsPyTa_n2(hM;Rd$^!;5tG5)`)gWjl~TUZB1)pyGBf91Scp25z1jJ5l_H`9Z&%}$GrVIFvx=LsKD z&!c8*tLGkjtSJ0_zns-0Jl)Qks^Bzzm^F1dYwB{=)a9(H%UM&Kz+)3@Y7=W}6a4v& zsA;}d)=)6-bn(7bGW)!6aqxag@cyFU{ldd?Ztd=)(BLW4hZz@-?hdzdA7;7EH&}xP zYY-jK3+*}A^*37EOFKFHfxe>AyTjzqceAF#hV8&wmPjE#OD}WV}UcQC3ps zwD%aJcZAwU-*BH%TG(S8zVb@5v}^m7(bfWX7~Wm~A-+=pKch9j`-zs)y=&?F-%`)I9NzN#FZ8TJr`q2;{hJ?pUT9SLP0pW$=I5dFDmXD}ybdSh4_^?c zT7DclfIJ*J(1agdzW_f@`~v(yx7YDw_e*~Edr$N1_nvO@?2)s7cH?tr_3U2~SsLS< zs^HoE_rJ%pKgl{+#yTJ`I8LstmzhIDOR<|vv9(L>^vF_d?NZ?6tj3qxv5BSl^NU3X zs5LWrl$ocy=u6zd%+rv}g=X&2)Iyt_IC08C&TU0k>{RDz181EAj{(nl3y?o%J&7LQ zKwWYtb;%>L--=%0DQegrJ;f(FfK%7pKwWbubepJL9(5Dc6+w-=*$*9|7k!J2PcfXMo4~zRcQ|IpC3d z*GI#y*wP4gu?KxXe`qh~bo81*Tt&aROZ~&6{$Wx}a27&`x*8X7>L(uc6O&qm)5EjS z6Ahix)W9+)h=-icV$$riQeFo!5ww|Dz%wm?51dI0os&)n@DAV+;4-&!0en~hALz|H zF;DeDhv|c6*0%6SdZCH^e+UjO@O+`_hYr&Z&CG4|+5+i`ruP{g%=;|wr7t>6Uo^T; zWT4s`jSl3V3srA)nBHiqTc>zm>5tARx-Jy{3EzZY!YAQRsjGu)oyE}(&VWu$EVc$+ z;Q=)XXdjzuD-JqR0}n&n`Op@>P0^OKw0grqoPIxan-AUQLpSP54l*}EZ}Zd~I|knI z6Z3#mi}R?(nbf76DEFTSUFShp>TbX%=}Vs6fc(;zy#I*wf6_}oMSs0Vf7^*Uz>)tA z$p22{|A_Q|(xb}#+2h9be5W2SD{JDHQddcXUkLnC&SI`v3=VU_p<8g+hyKTJI+tgg z%d^ep*{B0L@M(g1?8tu1qu>8T7w~z&=K-G&d_MQ-;32>!DfD^|lxM`y^fXn&{bj8od89U|kkv$T2 zuGfNxRT`jsEjv491^m0N2`$b_KfHikRp?)pAOAPix!~RKv>ToxGcNk%0oKIFkU#WG z`U(6{2bnRE8LtyKF*oo8@Hp_8g3prvj(+_wS>|NFlv7{d&piOIKL($%`RONGfYBkjef!N*BB_%!%9u@QV4^g$MVAbvr50=+P$d>k7) zZs|Ubwg#;S@o^r+$9ZUjQG6%_A5XC!o@Sk!*pvCv>wrE$C*(YO*0BkhQ`m>6u@m&V zC+5$s?hT@sN!GveV7gFw$8_MwVDpt9(}5q8*sS~*>6^3TBa17&b9QXUV&%Vd zNza+vqkNa{le^GKJ<4y1;J3tk+p0bbHdOg5A@=;_T+UP6{hd;m@>Ld~^X8!Q7P4Nj zr{fiUH^_R?b%W-IH25)^KX(LwZYTcS2K+fvy^XYNftD@MvISbUly-I*r7q^~63aEA zYn@&Jj@^D5`)y(i=g+q@y*)xhp`Fl7XeBff+6YbHbr>HhY^U51Izn)s7vRj^m+??w zd)N=rfU~9#8*r}k5vslw_P6R+rTJg>n2Arto|dXVg?*^{QqZRAM~M$M$^J6&p~U~H z_)qv=FN$XzJY(RQbBRk;Z`6VSPjumUOQ4tLf~Rh)>U?eB=q(SuW#Ugb$a1|u@?y`y zZ?{9^4*6~WH>F2s#xF${#0D};9=|r{aaNQ=e)t4u-D4k>pL?pcn8rq?pKgW6ZRIBq z8|8obs*&IRppk#;7kJ%IF7@Mv2GLpN6V#w;H4itvTnh>4HjwAl@@ zf!hYW4LJ05WbbADnq*HF_69%Fn+yHfhckhHj1Qah@MoI(k@%SSnb7KY9@z29J{b|*A1T3PDbajkD`17b3lH( zkpI-5Q&VGK#vhc~YhtvN-hJnpa`|2Lu$|ODK1Chv(~q0^51e+&A9&oMCQ>NhbClOV zXJ5y8M)XrrL-ra}_Q~dVO&a-24jGlR1DSgzQ*+=rswwZk-@47n8V+T--yq1 zJ3jG0Am87_S#~;scLMJKPHcZ8e&X%KOTZJ~_jsK3OY`ZRvkT-M5YteJnH zFZ!F7d6B~5u=#gXjrK|Mlr=){svtaAy>N51a1O{e)YOe z`C6Uii!%64at?J!{495o^0VX|YCk`*sJj1}oKKYeZZ&U24ou~Yy6=_PWvTdEay}e* zFBX4`Jq!3-Q}~fnW_7={LU#7DNJnHjDlMQ~CPIvNf_+9()yY`1v{DrQW$>Sv> z)U!6SkA6=JbjALl`|5HH5ev8l+yahY0lX$pBJ>tITm3HjtC!fw#mDCVN=}g)mC#UV zR~&TseeqX@(04=lXO84}gf?9PZSc=3v@v!zp^fgh=(N$|UDjW1yrui3jd_qd`&HxL z&E(A_=QZQsEv)hH@b80MS)6=gWrjeE|7ZNWnfzFmcsHP3m2LseqFv<0pqVvDT%4UC zF9ywG&@1Oi%q#w^^s|dB!H><3P2_=C47|XFo+=-g0Eh2enyoJOn=K9V z=aNpnz1HW?O&%e4w{s?Ut@B;aUF-R?S*|H$T&)S8uOsje-5Eo7&fs0;p^x|2|J#Ij z#F6-FLB0{Vo=4X588iMiypcTcS@~+vUC$Znysyt~XuLmroD0XB;Cxo{`eMHcPNMI~ zL3omH!j`J_GY6TIcu>|4`mVZuF5-Ehfk)od#9ww~R)Ln&bM?F}d3JJsF^}98HjaJx ztdH89o=(FTTt6>{59>vfo5HiRr6JF(>qz~XUocnv5}sLK;3UZA8z5i9`=`G ze;)dpZ%NcNmj}MixAAq@Kj<#Um!X%tm;O@vNfQqJrJK*i*I|ywj&p#Y1NSq!= zOK+B+&x+RMv!a!Kpmv;kU9cC_j#00Zo+m$_6|Koo2Cu;Q1*tfTneR~_&w-=Iqd+gOtg6CIdNTgvmeM~KM}D<${|M!ytaNa8KTEz1N|jC*`s-cdy|`}wRe*t_IPe! zkLS)XaCi#5roK0P=)eK;EeG;zA8v_WnWXRLI{GvYwd6Yi^{j z-cy~aC9+$YrzLV*nWZJUy2>0a^nP`QmgIaY^Rp!9Q<4z(7y@4qY>P7bJbnEcCQ<9rSG2j>TWpFG#cxc|c8wbPG~3){{8!SnBb z%;y(ye`ZX*lKj_6nUS<;_~haZocn#0`!5$6p(_P$u;qb2ihtF?%CHG&5PDDpl z``O8Re*QVGFDo1>Jz0W7r6)^psPtqB4o|lIG5NV?6b>`}?BMD5vqQ7i;Vb|CR-W%_ zMWZX<{LkcMe@or}X$@RNRiw&%N1zVn!((UW(ic)k%uqaNmSgu}P_G%~NF@BTH4 zMpyQH9J*gGG_n&WaTI@P{xbY!`OEPaGZ)!$6WY5~y|nKs)iW1~?xBz8!x4JRd>f&9 z1(lsBd{4>h>n|Npyly?PPVsvAf!`Qj`;VW7p5Ih>JonQycpp@F+w0uJ0@!WgX@a)11VwG#Y3QliQc%1xSJj3Lx6tAzGoZx?YC-~0VA6~_M z{z&oq$)!BYrGKe-z4jP$?>N_6c)hC&-~AAEQ20Cf^_|F4r{eW<`9s|Q2a4B+zOj|> z{|9-ceso+XI<6BP*NKiJ57M9mJAiip?*J}64s|-PYWvWGRlA2StlB*EVb$KD6RWlk zy;!w#=*FszLqAsS8#=OT+iLAv#imK_K;)1)1;_?98vd`GDX-QNxuCGh8L+;wX<^A3 z@Evjn@PM2F|5whHm$TBbX?!1h#{ZRb<>jn&=_g?(o2GM#?@qM@u@Svhv(&lCh8#=1 z&P_JtSn71H$mi)_yYwrg?H%YLbnJ=)@!_?9HOXwhzfrQ;v!)NZIL}{WBkx9z-m7SL z^a7EQ?IU3G(u+qFwUh*FdB5746pk?KWimkCkk0 z-|ztP^>HPe;cvW&&rc}XJo#1m{s)z8_7oG`pS~ev^SK>E{4eJNE*jqT*Tcy8Z!6h6 zd21KnmovkBJ#_D1?dLgOrEpmLsWafSTH(-B+QBpV{D1O}ukd@)pTqikMV9+MrEs`% z3p!)%2Ne!$S7DPbU88X5`JE^De}mFPzeGJJG}&Gq#U zIzaV%Q^%?JuEu@En0GF|_PIs;W2@ghx7hD3$Jbt7%s9)f0dskA0ACzm8DIMxYY<<2 z&|4NY%@yKn2fe6E{a)1YdGw+h`(7t~tJAk?u-FXDxP|LKhmXGA&bsUI!PndA-t+NE z&bJfJ`S|GP+p&@J@zIBY4+9^DSHt)Y!_qGfPr!*80pAjRYy1H->*PK7M^yi6fd7Yrx+oXISZ`LdUoea7rH&awYGdm;@y z4Ll8;J>B#BYjjFBO1x0@m(vqj)sKe1TvGn>=D`}>l8tuyIZ4)w*y>zK-s3kTuacL{ zshs7Ep2?OZhdHBbveMfIzKN2*XD#cWn>_Z9=#E4&=_M?lAAbxSG=D4UvKQJ*0#5-? zAy;*4AA0F=Vm-YYb7|0vIRosi#*a-jxxS8m!1Xv2dQL%4=$jDwx>-BTzNFMQO7)-LXeE!4hu%XTdLw!0 zi1^-dAkoX8>XA&0z? z9CAeBl{MhJ2AtP`GjL~BF=?){Qr=3|+Dfk1Xy&k|&RhvR2Rx_K44k0>GMn0r+>WsJ zb})y>?E~i|&zb~h_9nP7a83m0gr5TEHQ=-coYsO9vx``-^|J%k0$&S!9q@JBhqXL2 zJD?Pav~%Bp|Lo`R`TtsQ$?&Whp0%H6h5kA%oPOZ_z|+8yTb&liBG4)Vts>A$@^l(4 zj*&y!Lk?*pHQfk$r(S-30a|>h2`yNcbu&VATF{H|f-^$az<=zVw;KM_cjgR$^8h$! zz&XP+V?UW8k^-JkaGn2}{5U%Q>*NQVSwqNeYBRDs(hL8Y5#ll`Z(BBjH!-kD4D9uQx6Bc#U(0ncAS`9*Lw--DKDh^ zUZ-m2?*)Hd-|KTEbbU`wqHd0aJ|mzWx1>XSZxY{o)TLaR7gDFEppAaLuJ85hUr^tx z+CqSLG(tTAy&sjj0=mD{sror*Y@VV);cZQ5pwE@iX`s)Q;H+Kvtz@9kS>4|){fC)} zY;}(}{yRQMwz|(d%lj1XD|@}kK_h?J>V9v(7duzo^X>Oy=c@a@{a);Bb?>+2^s-!E z@gpUt$6ott%|{8}gQU_X=Ji=C^+&yv$)FMlzI=#mAS!k4nMg!1j02=Bv(DiB^ z4FrGWPT@{&j+r+vhO@D*3C?kFj)QX?oWZF9XM7vrF)snm_;IF^eM{!YBJ+Hoe4)IO zH$=vPi+_*<-eTjg0;k_W!IcaHSF#ISYBB;hxt>?@mI-+^#iv>YT*;)!VvP*S9`is3 zjpw*#Ua`KvNw-USpS*6DGF<-)+wzw{|B77-WX_PDL)|Xvwph1Ix-Hi0bUMy@oleJD zmpNT#b(yP^*|W!adQKCZ&&n1z;j{kCI-l#Fnd=w8=LM{@`K&XU%ck3+`g&6a|F=H& zcq!{lW`qQM9+SF*u3NIKGh!Go%Q};FqwAI|>nzJU%dyU6Ju-CT`quL;fsJps=6^B(b>IfU;l^Y`@FY6$oc z@YTSH5rEgkRy?z=clBr1ZGYV}bN#G*4{(05^<0tdU_DR&R}((#>sjZszMgfxtMggc zyE>oS;WKfe*M{s$9Z{#5?rYT1?CkkG_U}#jtgmOC&oB3SUIET4z?s>(F7^2a9mdQr zli9i6a^TeSXS<#Y-)O?;U-fz>S7VZ^@y-LM^P2GaJmBX6XI`*NeY{==o;{ys7WM4b zGx~wtiy^gRa;=p;{e=sId@?>a`DC@v-*^R|NiJH=&IaOqiR9RbxPj@v^+H%>0rVF~j#O zbH5T?pXPmK_LszfDc)D+fB7+Fye0;e-%qF*Fhbol)|<3*y=FBAlo&I|^~8Xs(8;gS zPmg~;J~P+C@8d{RV?e);BT=0V=J$~#Bn~V^hyxQt``+~)Mv&ktfcdTvI<;Z-?~n;k#*aenJ-6g@)R+=$G-Lx((4ch9tTcd(~&G4$$3g4F)l+R7IHf+`e|I4*;k$+3= z1$GlwKly>Qz#O@b`oxgrkk2gzvhB;XF;`@|*l#i?Bx0bO{Q8kE@7-Lh%eHQ>b=lVE zxaqQ8XRo=xF57i{w&MrwYm`_AkAIyu8EP7i9rn**PS;~ZT!b)0qC)N$5jQ^#4C z%~|4H7-@nt`@X?L;QnyQuQP zzP|fD@<~3}B_HgN6E!6#s^LeTIO+BPCtqwzzPJuQ=&Q?wzIJt)sMB}I1oJUBGaqw= z`ItM-MJA}lkDrH3oQF)D$Fm3e3Y%AuJaOT*;IHc|_CJAt7W{K+j)J~+>HDDPHQ_CQ zJ`2E^Jg>V1oQSDRiK%p)$@9A8iOCn!E7k;OT_$v#b(xqY&PJgL&cwgqlm(}p;MAa_ z>F;IFM8aDL&I^4TXm;1+hW}2eJidb9l1 z3S#^fb{cp_;0^Mi=?G7khyP|BG5sC*U9T6j6Pz&uPBHSpag_(I*Aa;cEl>RN*ehr! zJ)DV(%|ahY4<~+`OWwD)YOi=+$(1I2yXl@Q{+KUw(|;~+X?)fx|!h(a!4Mkb~bT?9Fm8so71Z6C5>i|u9xa) zhA!r;>dnkt9bx9`jv;u+IXUBbJ2gQqlK6vjXG_>?GHEt5L9BQsX( z>QTVSk9p+BOzP;)N@ReuZdjXXkJwk{po<@cy;pwJ*bk5&_-gj3*@La&)>6o&_o_iY z#`r9W%%IOIcCK(cpK&IiIe+FegY$(pA{3%I;-DYSM2xJTI8LG@77ua=Gx+bw}$v`O)=}Nu?EdG z#X&D0H5rph4-v1^c5eQ~cGkU^_~l~O!6kNT=n^~OTw=#JUt-5bF0pevE&_fL@Qdv9 z#6{5LA~}nwt{=$vEq9bUR6h{=&4}-04!pu)Y;$Rk>f2{uh~QHbw6aNzZ`HJXEn`Kp%S3WRF`X^x^l^JqmBH=GzX7^trf*03m`V~uW$06q zp8rl_sPxF7#8B*y^z76Qzki7{oa}@WS>9lo%>EHK_WPLed*ae+9XN zQl&1Ze3I$+A?Ns!9yt(`xX$?n`c<4Y$o(2CqgeI3n&Rzf48jSWr6J5Y<9pcXkrEmFgIm8#d@(gbHc zr;6|G5f_@39-X?J>Wn;9WVeu*k*A8B8=R+kgueQn^wn>muRbJo+j@DLJVIaoPWtjU z(3ej>M5oQDc}hO*X5y}X2}M5sFNq;f!X~d^e^q8f61kPX`KG03Hq0& z$f>x(rwdpEe*cm$57&b81@QX<`27mjz$vc4H3A!Lr<&)yQ@g8u(xA4f(m`QL#W+qmHGd>qMWdtV| z-^3%wV^(@KsTTo{dDL%Ctl^o7+04~E6ZILPbHg*^bDF^0HIpWwCKHd|u<9y*2$-aMJml0B3mNk;6KHPu##~ zy)Le=ah*@P&adMWI4=Qb;#mAb|9m7JXT4uZm+iB}dF<*YIO}zBUAF6b)T+5?zaME$ zH5cvoBdw|CqWylPHPu|SpG#g-%|-kDNb9P(Xult6U0p6ZH?gLgi}w4G*3{&pC6~QU z>qlBw%|-kDNWkm*k=AMbNb9S)Xult6z3NAbNI%lhu>->39_l__x2 z{nT~fybhd+i@+)A>V7Kv9C*xI56-gREz3QLh0*07QN7mh{lDy;d3+RAy7#NPddm(p zfq)1xorDlWR1T1U7`hM;SsXWTUt1Jc#)VxlZ6_pb;d)!dagVISC|)c>;sT~eqmEwm zq9TrW)KNs7<#lJ#amf2U)t!*8>Tyf%o%g=)`$v7cx}I9j?>y^y&W0_wjsvpdu#N+= z^4@C8t$B8T&Rv+)zl)k+AaKYRj#4 zX0_!Bb@n4-^ETceAKzD1=IA=bd-!Z^k61BV+ap%Y*7k@Ma|(6Vu|3jB%zO znsbVvlQXQBHbahGkaXGKE9qu@30;mEmUNZp`PF3}oL^Or87_w|#|)Rtc(FsADA!7g z+m_}Nc*bg5Mv@B{NiKl-hC6wOZnZ7UKipF8FNB_N(uaf-+g4WoS=&|#{QD8Mr5t-W z(kyeX%ndc44_;&@N`$jhvfV# zD`u;0v0}EynO4l!wpAxFS58WT*_sctVou11kvCO|iB#f1l{iq!ho#K6I5DBj$U$G~ ztS@!ewy&o(ez1-u{i!jN)H9ju7#iPGa1@xW_S70DT5XFZ*I|njt(dKGq7}1sEU6Xq zQPjy%)Jb3DNbc*|NzBUNB$%ynq80NG#fgcS?Qx0!^RubPcGBb%jTjNBlKL0?R zsO&;Vt+w2X!)nVDaPa(pb(|=5JQgRKwmg7;vFZ3viPPFpg8Yf!o%o-;q z)Y*@S6We%ye2n+Xpw99hK6Q1RXw`9RoM_eY9}_dh^42DwE8kDT=bvcHZFy@epRIAC zmCx2V(aL9Q-rCCNAL_$u<8xfc1OJhP&sJM*)$v4IZqHj=%ly5u6>{=lowv67?7t=9 z^H0@hYiwoZvo*G|@;L`v-Z5`&tut%hx|4iX{+fi(KgpJ36BEaa|C{V<51bbtFCH5k zZeCN)jgJ>M`^8tA*P5q=bEBiR{LttyV*s>4>ge#GXoXfBst6bB722_CMflk0NgCq; z!X^4i+F%w*5atwUnKWyvc#2z(DR|^LC=M5&1;o1 z2D5}Qn8l32EMg3%HC`!%o)0|_dhX72vp-($i&c0+ce6iUj%m)XLe7?n6wzk7X>4yw>f=HKo`#zN56BbpcubuQF8QJ%jxj zE=!?q*qb4gLfuF{rchqi08|<4qI%=<@CewkvpW5Qpmeu@{lmTKZ!hGFR_Uw*pkwn*i4%|u$CUuFp+E5 z$+d^*1DEBfXJ13sYt4_Qq64YW=_A*(p=U#9E(P>r=q1ogcd{-ZW5=-#_%|hPAN~~c zf2y;CefT8i|5WdhYt0{rbEEw<{8u<%?}z{EhyObY|94clSU*ZTRy`_wY_zY&TK@RI zzS>|_uE%xs|Mz{Yq4iUIpUG#%4+u zzAq*ZUnaraN#9p_kKOkLe)T`f_r>JlgCuqHf4lG73FfZzeGkdDU*)_6-)CM6%uVop z<~3zbCw$-6{?hLF-w=NI4%SvbCJn#Odf+-^`p#he+RM_cu`hirDP_~xS2&|^pWO2& zl6jY-Y&PSem0rItdyBEq8EyNs4;x_g#ce2mZYZ`QiFRQXuwC;oc zNg}=KHPv|HHLg>JCm&SAlH+uv>cN1hdrcS4x`46rwm?MdrWoN{6tO+RUQNGKjjG4w zo*i!E*{@Z@*;6s9zE(x}>OionN->_L{MsJ&disjJmD=`a`pVp&$@d!jGX*JEhy9t1 zFF#bo+)tFYeVUBto>RqkO)dKcYv*Royues_C=l_m&s5cis!?_cZOA*^;^sYa9}&0s z>NDD%m$})4Ni`go1VpW-%Xd*<9&zYH+M=q**ECRx+uCh{d~^a}#xo;Rm?BRTYb0pv@X}!bb;uWY0pE13t2U zPPGOf+1s#1gOA$x@zI}uLQ0&Ew1?ndE=MVSn0fr>bChrtt4`)hWJ^9aK8XCRoEZ)F zZB^U&)|kb-=oF2lZjqZ^0O z<3g_SPJe#L5gC0Pd(OAE`i5d#T30H*(d-kK)!HgM|6uaw~lJKr@EFuY?Dyic!<3qSy5Q?{pYfzN{Gg&Q`?C8?d!=`E6B=kJ0Zd-=|F7 z-N8HEl6RbQl+q4MQ>5*nEGjmX^E{P#OqJQj?2nbk)$p$7s%Y?@14_hQ*=o#wLuvHD zx0*R`8e4Z$uKx&#XXhx9tSoqT4)%~^>kLIaaZnXiHQ=Spx1SRbD?ikY@EmL#JgaF{ zjK>dR!zkm5HFCcO_NrT`h_nG53zYD2@N4mFfuQp*T>pzI+;0VVmiK;zjd~qyvtxGc zw?6jCd|iobWnYrT2U?9U!8qs7iZT0Br7;Mf!f&t--c9VU_ny)?hWR%uFTX&9X9OY+ zSysOPc&j47NIRQfY-~}Kvf(opQ`heI0>%Mob$o2WQ=JA~`Tjlq}?6>%C5A(a? zzzd3SHwTR2Zfxvb0i$MjK)A85&bL&t^?Bae$U9%8UZeQMmelaW)vWVAE)_jY)z-A6 zX`8Ck!jFwhLl@J+4~_GNf78PJ5tmncwA!n!txnN??Mey%x+NvNX2mm%Wh%ZDMTw*;iZ6p-gg6m|G;uuhl42Mx z)mSkLKjeb9v(Tjozw7i!Iy_FlTQwTep>Jb6DtcMXzKBh;6m-;sE~_FVLk;^wUL)*- z&kI#izECxmg>_NOGlFNs$irVX)im%qPlnIo;00pwOMys+m-13S+ajv*?Ozlz?_)*2Uo6IN)>i7qFF!GP>uVaU zM8bb>m3~^xor}Ldn*U$5ibI+zyozp!TE$2y2irXMOsowE=M2>t;f&d=@Eh0;p^8t? z(IE19EwROQ=PSlvurHKZe3GUHdwLxa_Ct(#Ip9OY11~Z;b>JeVdHSMCY2;11ki%F6f|9ONLbua0@EXj-8*c+2LiCD$B z=~H--CErcG{--Vu?@`2@PvG%!N&{M6F0i}4beuEzfty$HUE43h4NSR_>0WzD7rG;q| zkXK6!4~nL0#i7)2v7V|OtEQ4yOVP-UhfDMn@@gsJ!BH={wRD+V3l~-+OT_&}#Qk~W z6m7#e;(wQ-$u_{o7R9I|?yW&CDtfC%?W=0A>RjUMbJ<@M+4H=CZD+sM+h0dU9ICO^ zp^CZ}iGL6C+?UAG#fpqyMfd>n{sum7FSazBdTC*7lMC4&r-nChJnZ5g_8=Yp2C^k} z_igO=E;Z;xMu($Ms(RSZUc1Bx)ZH<14@T;gdd@$Cy1tC}RIA!?yz{YY_RnjR{&p65NEeXRz)H!H@_o7rb83)`U3X8Djh z%Zjye?s4V@)1f~ZRD$=(_cZb=@2kWvU83x%b+?M4Z&R1tpW;-s{1@=4i`i>@JnOi) zmEc_|&fx7un%G*T2LH9rVT?Geiiw9+7Sd%9ThO(G6ka-MF~(JreyO&6Jm zbz|nQl*qHhN6+_E#1;9fjG27SuUn1VsQaP3r>ZU>?~82juNa4U*UI1P#`fP6dtIs< znQ!Xiqr>Ji5!p8T^nF#{7pXf8hC1X5naV@9kSl-TDn;D*9=C^{!#2H!zk8i_ z9X?_ad+=g^kXPL>uw|Le#C{s`;Uo6*v3KvMDrLYPeaiLzW;|zP(Z1w9!|Mb4+<>_U z?;)_yeo+yP@LaaX7JnQts`m$cjl@B7_Nm6cSJk%mn>e^nF&g(u+2WqP0dyA`ro3@^ z((rJfWb<3-5$M$R|1sM>~VHRwL%Foqmb zG-?0VxYXcXK240iK`~B4H(&eMtf$~znaD)5!+8AT_WSnK`Tj1R1#idus)#*SI(|^s zB96~ngXvkwJvO7X8u`R#3LL527VSv^iOo;*zzFLRuFoGPv^R)f7#OibamE_Cfq z^S(Wq$Nk+H0lnjW&J=UKn_#UoGmI{2gBG*)jhp%%uZRW2u-{&yh_BDX590T;zD3rE z|3_S*8Y@Rr&R@{J_=PG`k--tg?Bo0qZI$D=eh>MFdypO49ZyiEm7I^bL^Zx1sv6E; zq1*ZJaJ(8WM!&zo4lTk4-h93yQXinKFRMn%2;z=kDdOdepwM)$K#Wo{C`QI z%_#FX)Fn3k*W(mpRt&3g8(6G`KI+wcqMH(2$2KYETG&PRvPbK@)O_qK}_ao}7qo~0P&@2fr;3ob&R!|1E` zee}GkUC)0=*Md&$#b|8D_t*j9evb0bMwgocV)it}*gsV&F9Js~I7)WmSN1FMey#)L`tbW9{Qn({%Qz;5T%Wa{o7f@bflfSB zPi(ZsqiuMB*y00+wqY^#B7ev8?hn{E+0Fau)5q4+4l(sa`gig{vOPmxe&G&dNBp^8 zIMF?Prwf0_yGr>#karcyU*47X1u+8e%9Xz_(C*`R@M7tAu_@Srf#bNRp8j**TQnYe zcTFpF^WLaKd`vtrW0oR5rrj}rH+uKBVtoCkBEA84-WDzBa8EQ2a{cCAiWnBujOwd2 zxwpD8tO1$6N;6zrX``K`3Di31`L=H~p2a(a}3RMiV(VM-IN@ zujn=Hn*1}|!Nm_N+Q5+8D3`KSYvw@=5BD^9WFF2bnr=p379G)pA&X+zN+{3m;I5Op zATfg{t_vcoP7_{y+2~IwJ9RRI|FUjsc~|WKbl?!aZx;u4J@ZripTYA6ST;}(v^$#6 zscLL=RV`)e$vOBkGr4aTyytKSksaDA<;bk(YxL#|r_or09AZzr`{VcG4;q^o+oijt z%`t9+SImnxdB!*(v+mOlA`9dl(l^VvhP~`mrYZqH618tVTUgU#E(Fy~+19V#B(-f{R_#&|%u8H@d{FltJ3RIrwua z{|(aSUDrVdIX7i6X4g!+*mMr}G{Hk`miIzzCOR=3eJH<>d-<)!hB~nu#E~)GlX5Tz zxyVM3k^d8s{~{HgMNgNZf5y{%_fp<@{gLmMUC;kUY}4uO_Cz#s?m^FLd7tMZzJacl zQ;v#@D8r?ixDDC=8%F~+(KR{tt_p1Ou*t{+e67Y7#`VZ(D&rY=QM(;`%>6e}5Bqn? zoT%Ga(SS`L|5SqfE&o^K^ciGeloqVI5Zla=nvMKOJ2Xl&hJ0l5Rn+`d70a%tJWr$l zmb2Mz?JN?0nJZf{uS1&;BZ}b?CUmKIPS{H4}8iu zmy|nr*c8wV#}re>#k1(?kSW;753%vb$7Hx%%KGsp-EbhwwcPJTMh#>&^95qdMZ_T| zp}*u61-`0I-j9tReG)uds~AhqrJQ{!Bf5!LpLv>{7(^wagUd{(mMei zUIadPJ(6QFS?Ecqj&qSR@CO)rWGi?QI!jggXHT)WR_ri~F;0K2{lNgEj zIKOikHS|9`Nq@r7`yHkq8F>}B|Af3gKtJUlq#1EFo%Q2##Cbr`b zt7tcbFH*(Q$=Jhtu(K`LF>HR;UR66b%6HN6AsprS_y+3Vo5FjakI6(Dxzz2GOj#Gp zpF`F@RHgk6I`L%{|4tiXE_F(sE&i=4DyES`kaa`dd8xCux-6IV=aubGw;}6sCHD_Q zew#Rl*M^tF0Y9pH!1Jl_j(V3o;Te-BwdfjcP@`rqz6HBmTMOPsWSb*QnTT`5_J@(1 zeaJsL+mMN0!Y0(d1h)Oy29D~-vB})G^i|~j9q`OTANFt$ZQDW>nc0L~aY(FeESwmp61(#?Fj%&TLkWu0oJAx$*AhK+iz-5!ZD z&OMFDfUX%e?_-2o-8~Cyf(k>BCJfLaEMbVd5%?RVeymM*$Q8#6W z_&#MQ<6fQ-uKn;}ro$*}#W(FER#ticLB4fRG0J!c`9x%jYuM7-2V%dH)`$<}SNd=x zWtb|eU(>|CVXAQzI=4^0M<+(uE#IdYpUdBy&fuZNdhkKXJP)#D(00j%!@kE^-*v zLGswM&`a`b8qa&aQiO38Htr&a@bK%QE^0J*NL?7zVH$oYJRLgkXvpFDK1bf&*e4cS z)trlba=(mW8#$-mOrKM89`BF)ob8-fV{5vIW>@>_<6A!(+sD*aPii`UNHaE6~pfI{q5x zodI;q)AnVwUHF`e>&sbK>CTPig0H)KLB=bO)PY#x&@y z`073KAjlfAfXKvmw&AJZ96UxQJXuNE8z^^$r2iL9#4d}86`gg|+w<7r7tFRs&^ep`v#H~m)WdI(VeSp% zgJeC|$a)4_IWpVGIoL$a-ISMW!@$+Zxui?qwDMQfE6>aU*Wveg=QH@zZJObvoZIn* zqqp%K=ULZr?Lq2={L#qkG?B`E-x24{e+PRb!mg6^s(&p1Q%zjnxFRyY=9SA;Gz7C<`Kj8;FFr**^`=~QQqzFZu^rl ze%H-_-|!I`Gq!Uc<~);oR$k4$Qg-)HkI2P#{v#ivj`w8#JM~&eY_*>QnX7w%{3ChO zeCZ>asACT4*J}B$z#dnBLRk(Y-^gt>@>sWsd_~Bq9j7{jRoUnShX;Gz1fR95us3^< z>vg8h6}7Z0oDE##!2THGptQLzX;;Je8)+|$xybV@Y$tq>ZC|4X`&PsI@CCuD-pCYf zE$=zR-IPOniEl9WN%lpQY4n-O`aX&_{Tldt9q*Am;d$Dz+Q4Wm*RUTsiTi0$BeBT1 zkoT5zNS%`HL}~MjY3EQL#-2OndZxxKY_rU@%%^BD~UJ zXyk#Z1F^lMKjdDXG5ul9YYwAvrD@k={;&pLA$?wj^oPV~aewF?-N7HC-*JB^v=(gg zoA^WgNZcO=70-n>KS%q@I7}VLc1gUxh;8sW{X6&^&cSK8E@{8U_$}_?8rR9);FAuK z6NEoa=!R#2LpW=YsgID|i^)SA;93i|1|KK$H)R`Se#T{F9UvY;<_z8;{hZ6!{(dps z$N#N7BmErl{&1d`e$M?O-{ahK7U#%h1@b)fEXu<3w}641nHcsUym%nSrxEbAftX>* zFyhX~j_|JhF?fj#EF}(dJ*WxfH0Iw_cbk6;9~*KT%bvy`&&8H(#)hU5n-PC|rxMeS zWSqce%@|2M@5FZ2+^dKba^Mx%9S^#+@;2mn4*xlZVGC16VJFVUHy%WvzJZSexu+F> z(}G@-lW4@Zm2F2Be@%JNN7^c4``wz66~Pv~rW&L1HA5r(r!S~#BYMs^ht^>SIcKb% zShA8fKeku4iH6Iz6L!S;Dt2lO<-UcS&@I^UQr`0o`Rp~+1MR64C;e+nkhg01i0+a@ z3p!U(pB#<&rxfn3rG7@2Q)c*7L)pnK$T-D#7CCkQiTh^pU2>c^JF#0ar z>#|)X;6)Ynk54q7z@Ij*n93e_i1worGA#V?`f$lx$!Z!70g9%cQd z5f3khN4J7?A+~1tv-rpD@P_+_OJB&jlvmG8c@5vjwG%nd;y!$$SoA*eOVlY+PlG2f z(=G|o-W#kM8IAby3y_QdMSXG5HkL8DsJVf*2mToTP~UE2#JXH>MJAjYWR9Dik){*7x}WB$$jRwncRO$h#HB9CF-gU>W7@Li^Vdz*6A zVSiPp^l=(KF3eaa>F12?*oEpf@K}yhdd~E7Mhddhcs1vHk=<9hk9Gq7P1Ni`2IpW` zQutOmb%~$yPUjxkF6BM+j|kUQ#1wn!Pr={J;rQxpQ@(}g6Z{c&sMbdv;LFWvv zaeTE~=FJ%6`j+BzGe+gWOZXg~lYYl@0G=Ql?$?wEK1a;PM$S3NcQ(Xgdfp?;X?(pO zU$o!!MH;#l_UkTq&p3|hv}0yrM`x-2!fM(s<7m4~C6`b@-@+=htrNWcTXLS?D#1Ii z(8Ta3RWXj^#Vb@XeXkPi>5^j@9UANJ7{fLxdn&JJ6t2nqr{QCx9*w@YaEb2G2CJU%;HaBE`qX&e z-CybVVlR#mdve^-!(Via&tG_g&!4ZehvgYQ;%DZ2CeGib@2M#aK1lWFGUu)|N?#!J4CVNof@<__9CcgIm>n18{($~L<|4{@&G~XJ;`6+tig%3V z9Zud+&%A5qUzbK1C$y7!eb4ibD&8@c=bb!X&p0B!!TP^E&)fo)dE6X@%=ILOrgtIB(H=2OUDm3b8Mm-=8` zS?JV%JvlQy9U67PvxB2)__4Hj{V<#@4-?U4bhKuWZjNP@<5%~t>!8QHFJ(hO3?qhFx*_nBd8$aBR?dj?lseNh!v!ky znWGuu!cYcv&<&Ylf1N1%5SjZbWkAn>o(`S00O~W5Dds&x&)=Deyf9xhlxfO~`R?Y+ zWA9d^o%i~vr-<@-t9D!z9gu!5s)ey5nqPH<{ZW~()xvopr&g*v!lfZcFx8cbT`%Z1Agk(?VH+5iL5#l`(MQW?7yjzsr?mSFY5e;1|_l!8!}_7;@j1qXQQ!a zr*oa>e7%VM_O>8vTilVU*qdI&q5E1C-`PEtFy)N!JzuY{7#F&g`+Z7eai(ljdwqBD z?jYAz9YE)>1#iJa-s5|Vu}ODPwvS&xju~q=?I`|##~A##p!HKCy~rb7$N98AoPW!h zmbb8*YKm`mj^aDNuM){bzYDjx@gdAt3b}pzvz0w=*XNNe4?3cHjM>@5^VC5>)Mff} z+IQ3ku^jS1Us2Hc7B-h$=|I(GxO)=^VD~)4*){v{`TO|4k63prww89mV(en$0mfe+ zGUH_9@qP49GgfrYQP};1_#k3{nsYhiv+`ZNWxVDTX*2LOY2*Qj)t0X|a}APL!K&|g zFUM^7;rS!J1s^Z-D7**Wy3F=L(?FSnb%|8+4BozsA;VsOgN&yX5z`T;VEaYtDXMQb z^0E4WYJ7sP=?y=rUva~3>U+N$nI`Lc7xrR{+t=%W>YFNk8e;^cEYxI?7l_Hy%+CjW zfDW<-MAU=aVi!JOEM+KFV=S%T+{f)QXezc88gskb>K^%J9B7pN+PX6?^fHHUzYku1 z;M5ow8ZJ_`aB0*LOm`vc+*j0Hga70~)(;fMdKDUdfoC{_Id>L{VFzU_5tmv0h|FRi zOqtD&%WN_KSAlU?55;%am#T5Oluhczlv&0#XaAkpMqWD_`axCvuNGvwH|Mkokk!bW zJ^7Dszv~cVevwJ!-FH_jV=p+r|L?rFKlQZ@`5S;NGREz*7dS^QdyyxSaybpTyo)xG zl*_k}%e%f+4dl{y0C|50nam*esUud&F=f&dm&q@Eb(#_hdlg?;%BKDkWfQqDWt0A< zA1j-4keptQ!K9`$C9oF<72M>p&|8P%(}*()RB{36$w8kycNm<*Gp{j+YqO4)zSbf3^IKexedz^_ zZ_L7%$#qdmwkW~A8a@FzcdXNdc$E8ZBzC>if&Mtde%)ypw4eXQLENiI|LG7$?4CW! zorevhDproLM*IhRa=k58P>#vC5bE+9*YhSe*H=RZM3ft-8zPfV*GL98 zHm>Te%9z{t67;J+=@3^Rq>iK5v{+2yFGN;~cBWywu)POl9nf}n>ExgSVfx98GW>{? z6Dc>e2g0m3YL43}Z!}|sSdQ_bfH8!+a81Q7=jai}hsb!@xP4Dvn5(*l_JLdv z=#F&sz#SeKb!lyFKIz|&(>*~ieE`GmQ)4z(H+_Hb?um?d9;AvE;-44Dg-mA*c8+Y{ zDYUt+O}KZ@@`-;JTe+v>y-w^_teux1%)IYtqhUGiyopDP;Ui=_uOGJgXzBAz8L9G; zm!dCJ%AfeEgN$q^kGI`y=lZHM$y2|e%eKBLBeh;rMr2%O;J^KH9@hcnq--|+bT%^5 zV9E(T!%KhW56em>vU2;+l$E@l@wNbQbzwce?hO3e8LWMzlDlNi2=X9mT(px81f&cZ zjl?I#J5!{rNLe!TmyGv`G-RXyE>(D$KZL9p)mB+)3dp%d!b7YnC?t^oe`KaK^#6@%&B~Yp|%E;O&pmPJfKH{%?^lWPd!E zUidBT^ta?#cx0(r+AG!%47mld)SkNE{@rMR-toS+wmLDWv3~&d74k^iD5{CIhwn$n z8;RwS&8of3iP$T3hFFKO8jUZaXP0n%f(`ma#zCrq4>P_zihJ-?j%nnGerx993@_vJ zYF}cG!ArE`@LgNUsVv@&?M0@x5~F$EMovBC1c=!V@ZY@~dqixvjJb7NFQA`-wtD(* zzSB=NhI6!1K5V-=f2Wa?Sue>P$3C4c)+=B<32`ghT8Sh9=UZX!7GUU<7^&m$ciCxTs*9Ur;F`gV(=JS$!sM=-5lm613#PA`_AWoEW6|DL#V+nq% z`m!<=UnVvdTWmNoby1#4e~7{yt^Vjye{vb0(%v}~Xw!XZn~WJ}nYJnN+aCC_%N1#3 zBe#FqY8;}!9l7)w=-JI@p^rBNgt&ox*e?Sj91Ix2H&i+2$@i+X$2Y`s9@t~C=w|vL zi66c?it)_wU=eYI%+;O97@NA==v%^eGqydr_>DEkmCEKVE))b#CM{Cclv+@++kL4v)#NA?3FU+1<)< zFeblZiC-1N$e*X4jNgjO@2o`m709m`Nq>FnIPzt*&)}7>PR>7Qmhy|gk+O@tAiL-m zajLXc=rF%_8UDhQ;YghqT{}d)h8#PoZ^n2<;&LqKN+g%#&)Vgfeysl*8U6|xz8M+5 z4L%%>$*?eGc%~`C5h=q}Z_sDVVa-p_UNU1k+DT@9f<1N2`~-XBnE8oWZTX2+@%+T9 z@6Asbwx?k*gmv*Yw(_73i$Lt&TMJ%QW+Gm6QC1A*HN< z=Un5S7S4L+ld;cb3j4KHJJVy=tKSo@`nLU{pNe05U0x$!lg@q0>PyY_Esu@U{w!&Y zyfac={kq}W!hP)77c0Zz_&t3)-1FzyJ-NImw%1Yoo&$#bhAWifbGOkdUoYF$@;PO_ z%%8hfDO+XC@VQpa_Lr_bTvol}WgoGszl8IGZ+WiZS${F-*@K*1Kj1Io{;6+2<#SEH z!C%OEb}o6R?1BD#&c|gu>T^}={=BvDkz8Vl%qMc>I>|e7E`|(BeDKb*}V` z-;<<1m7Lf;&D|qTHMQ+shAfZC@9Mt7P5ny#nY>Z<`pH%KOHPn$BId!{oFlxgY{Sz} zmIWGXCMs=w|4z(YR-cQxXt)2S#JB52#W%~<+8C2f`VF@bm#w2+NSn8G9J#t``q5gHHEGlX z$C^}rIo71`%dy7GFUJ}WzZ`2=Gt$q&lsd1UV~vwspUjCn>%D60Hx*w`ryBXy5^}RkSQBHn;@eG*@x}eBIOibo&&P`I=oPe|Gt|g^>8kIjW#nt= zkE1;;a%lffrM>YIeO*(tW9`+unZG;ZTqSaMmKyoj733Hh-}(u0Q%;lOI|qLz-^sJa zs;#U`!T5#!n~8VnFW%1>J#x-6-V)PWls)OLw>s9naBq=ylp52$z@z`T?wWV`Sg(j2 z&>Qi43Z)MFT%n6&`w2B)%K4ccc`EI4+&;Vx?HXk0%ovXp%J9W)*h~l4u8Cc1elvcp zZvoxIjCei!mXFBSA?EB-MmOABsXx$MTuzB4P8}JC{Z8l&N=WRA% zBlqw1+=JeK>0i%zn+;gY`M7zklZ6do#ufEyd&#s;{t0d8!7 z8yn!p2Dsxkz>N)XV*}jS05>+kjSX;P1KijEH#WeH4RB%uoY(*-Ho%DuaAE_T*Z?Os z!0F3ww*hXe4G2&A0UL1Y&$R)^{B#?zq|F8>{}z`Q(;p?;fWWUK!~s9q1`PVgHXw5E zGWugKh}nQyov;De5;5af|7|uPu4jGYaRGjq*x_Hy811_6slQb*J8+4`4w(8}5witK zZd{j##PqS+8ZX=tr%#NRVMxpdRNfi?Zla!_ZpL+s{x8>aCwlHg&zQ4M9-b*xf4BiqUTQZ+!@z%CwlHg&zQ4K+hfM zxdT0Spyv+s+<~4u&~rxzJ$L>eujc_Nrl)dLHxjaUGjz*YiN>_tf9C zqUvAU&nBJZl|9)Xvwrt;3(~hSd7u$pI-T1Tf*)5M><{K#{GNpX6ye6Epi(*ElaYp+mt_gzC`HmsYqtw)WK04rRNkJywgozeh*j#c`e=D<64FXSaAeuz6qnTUQ#?hb)sE{}yW_Dj$~> zTuXa(*zOqbWZRp#DR=FJvWCZMe6DqKY157`TX*kcv{$b-+d5Nw3ZHA%zsR;u+0?Hb zv}t$KcA8K&Za`n+qYboaCzS2q##;Y-chPp5P*$*%cJeI7wQ%mr`VZPn>>apvV%gq{ zrukeA*}R``7#6U+7=_XqA_ z&v?#vy?++>{44LD7_X1bZFL%#cg7~;*8*mnegd&TMf|?U<$d;hl=0j%CVtP>5Z{=+z}rali$4fJx_JG=V8g8_&1jdS+1DB-5$URu4t4*byw845ptM8Xf1Latr6gWguSwTT_tsZ_bCCCw&w76g z*B|5kl=HslcxQz7lh2w_$g^kgen;8V&p$&?C-Q!BS9$lMzbU-mQI`GKa-Yk!nfGH$ z)bTMK)fFA|WTJ4l>u*~waEz=I?r-yH9qv)ua!ljn_na2zd53$NJtqHRycrU+nQgoc z?9=2LjIOGVa{Onr3^93m+UGLY(Zj~ddGw57AYT{bkBgjVy&RXhh@9&pa;}TWxh^8- zx=#08Zza#Lz^AIWbtdP^^Kbi7=(DVHlPB5fjHI~9 ziMS{m^^_4>z_?xJQF6ZA<>j2Qlj!MkS2xbt|3TJe$Q84Z$^p((BChmUzSOjv&0ljZ zBT_A|k*71SReq%vyuujHW%T_`Vmw(IW1S!E?=RWb-(S3=zrX0+{?O^eT}HpfB*svr zk)MX14?Pchu1RNa=w<8;J*hi%_KSIx@tE5fXSu`8^Ne|Xr5kki)1K4~dN-bDoD%dr z=(+E@_)_H_JyU#g zkDf^CD*A3O@|k<|q{%&c7W(8KJrU=wYJbuFJ>s!RpLmR+`rM|E&WPKG-daHhdm2vZ zuNAK7A1(w_3F8e*8E=>y?cvYc*#r6j=mVg$|KE-Q)IWQqY+qpj$tPfcaKLWoe34Y!IzFhX{$dmhp*zorRKYNWpFP8L9%MW|FEK30&`yr(< zPS%E>JtdYgUTzX&3ep&R+@<&rCc)nm{OnN@W#1sVr;rVQFYxyQKl=_zdZ+o%-g3(r zUo$BUe2iPM;b-6GWsDu1lnR}3T3w2tejJ&%2EAyptI3o0gFTe>(JZ=;_cIE8eB}ciZsi zK8oIN>*3Gefv&x4*Z(5u#n4NjmrD98^p!7TtimJ@ zLz!9Aa|LVQPhqXDizvrJ*6O;S{9$Nb-1hZ}+degB`;?cog3!EhL3Ey0sLl@;>XhqI zbbcHA1?@n`-$l1W^P$g&z5x0He-ZRz=q1ogC4C3BYX!Dz3brc)n`6bk1KYI%+cgE- zl|jAQu(R*aGWPwM#J)div?FZT8H>D(eS;>kZ%`U#>MHDkCL8t=_Pr`au5+V(k^8LJ$v~|`VPvzg0fGc>>1ffuv7LGlzj?i&!Apy*n5MmH`scEt#=aay`Zyi z*rZ<2u{m9Zy>ep`?0v!B7wqiwx3gao?ES#r5A6NGPFp&}KEI(@Y;nA7lPNPb>pr+P zUh4Q+6+at2I$Rh!+KPwg(E}Adh$819=6_i2pq@A{piAvQV71K-l+@=^C%M!~9(9tJ z#17_BCwbIK9(4j;KZf!jL-}(lKhIiaSF{g*`_iXP+Vtx+a=Y8?Mq!RvP7mvi5 zp<~)(Oj9=kCus#ch#^-HLr#JB83QQeGMDSW)NFL&xKwZ zJsTf!HnL%k$Ab6xkPxx8)z0ep7!@BA#RrF6JfGlWepog_QzQ6^_HsXD>hzV^fvMR4 zsal~r4f{`-khwf!_xv4h`~$IlXd3is(9eN>4)s9UpqD@|mGm9x#0qp`$}!+NCJAnI zVg))e1)a&rO@f=)P$f2u68nXiD`CS;Y^V|&M)AENd|+4Lu7n>p+~mHtG0t@d@#nkD z^|IlnY|u-fm%dATJX8=a&{eHacdd@u$D=i?eY9gqw2u}nJU670u={dlk+4|eEL zh4RooP+6}={zgr|$8)B?qi#$;2i^2<(3$ro?+Y=vOaAH_&l6*->VrX8vzpBNezma!Xavd3&w;0@k2I9#9(rXEYE zM|9R^XG@@$KtC4xv3@(B%Al7)9}azZ68#(weK_=C(1&#$pPJ>K;#S)<5 z65j)Vu<U=M&j0QLab1MxOW27V!%KJJrN=bHVgH*5Ahjh=kF_4@}P!vp-eEBcee8bA(dN z(DR_@O1f@spIGWm_hLgjwoel3&7T)q;Lp8d0X&@NFA2@{7t0*m84DPXzrde=$NV_I zj)7lO;n%zv?&cS0ixV?WA=Y0(TR@iOQQA)1a>1Po?p)}!6{gTuSV26zV<7QBF1T~S zO9(!kU*o2-zD{9sJk)9|5)UItc~CK^<$C$ zvB>{eQrE9RPO#++)B!CJF8_;2s0+G2kA9{)|HovDdUm zO`TVUBD*JX?Iir$DEu3-ki`xb=%b*If_@_O6YX|TKLz?J(8og`Z?}W`crbp1rib|PgPN!f^nY}iLa z9|?T~^btw0p9=j{=o6qbo&p=6(C4R5fIb2GDbP>pI_%97n-x3X-@`n*`%H9qF9o0)I8j`qk!)R}7Lpv`N_wb+y?T$@7dHJR9pINcVTO@=-h z`XuO+lEh}0K)(d~#n3NK5|dvH{bJ}BLBFW$V)DvJ5<7i4e7YPyT>+o2NMfh2fKOMz zrz_wSbbS(Kn?%_rQa0jr8}^CNCqh3J`l(5K-n&!Z0A$9^OImdANu*w&x3wm672u|e6KY7 z$8WJ=w~ZaMv_oxU$8@O&7lG|Uuw4k>Ecqw>Lg*JlzX19L@XeZkO60p;ZW8%!w@p9b zhi!Jb&uSBU0GYMrpe$p@Y&ocev18bP>0$cF&Gj5i8_-;gEO1So4&E!kdqtA^xB~hW z(1Xx}N$TS&=vP6%68e=%Wa&!iS3;i-eY#ba@KZmxKF+e$M@juP=)pDU!FA}tbxCaX zb?Cu$=)ra90dze`*@Beqa>|DNu*t&Z&@YF68T8ANV80sr)zD`^pOFOn4CphUUj_ZD zuESn=auVz_z&-=)*MR++B-pP3`!!&{2JD<)KR}E5C~~q<*-y%ENcNNRtIK{;epT5| zD(SMHRMKTXsibSv1vyQ#pOjy-pOjy-pOjy-pH$LiKdGe4eo{%7{iM0b;q~~a>G6Kj zKC5H?$YJXvvGT*(M`G2@WbG!Kep<%Xcb$HsOBVesssANB`6WEL37*`PgeNz_lbhhl zP4MIu&-3EnvR| z?6-6n%hjEB(~U8iX#S&S&6}4#nor)3@ozgA2lsA1bZZ=)Pk%u^{RR2-7eLoNVb;Pz z2i@o(W29_4?uPD$?t<>J>bU>MwI2pVVrwrj4vjto(_Wi8noplVzE-#*pFRP~UC+G0 zEpw@p`P9jL>ZAaA0rUds1^#?ukV3{O7eOzU^c~hXIuGo5U}p^EyLr%aiL-NwvvbX{ zT!oM3fjtlGd0>Zb=_|3-ou#j&@X>_2!#1gYK30dajkCXQc#FAscq;L8IaWn!Jsylt$xv_m0(ra<>Y_e1wX_hTCv=Lfw6 zda0!A3*gNHcrzc~Fn*izCGcLK4}CuLdC=#iR~zhJ%Rr}#y9^X{Ir2=_-_IKE#RLG{@F?J&j$Z&@XrQ6bbTiL znF)VxfIl}R(cK%M-vIr3=+|5M$MfXv)p^k8LZ?pAuY`F5`dsL9q0fOn$KQ4K@ONM< zM79f&?LuT*_7^g@Wm_+Q{*GSAelO?)p$~*U5W4IyWNr)e66mFpuHQ)6Zlr9#q-^++ zN3C({FQNYu`b_9ElVG0%eGc^5(5X)w_Sw*9L!SkGR@Y%~eliJm=Cy3g0ecSEbCO`s z0ecSEnGXQnI#$Ap{fFX!PUc_zKThsD=1$@|uWU+!-O@j9<9lNN_&Up239HVpW2{5R zu@W|&x8z=}byr{;E0NH?`T71Xa1YoM?VY`kJkj3$P#?J!`w#khTh82~GnUxTYVUr& zuV0!3JL6ckF%Eu*1DSU~w_lcY|V6@fZ`cfx-sT1Y} zNqT4HLBAGk*MjXDu+c8I`HyR$UjzMW=vQ|gcID0_*qP(BtsmI?fxTZ6?96e3UIM-J z-G1?Sl01cyuI1~@v1aacH@TLPqH>-dr)QY!3Yga`TYaip6#nPTAOA?M)ro&)|6zS$ zM9vp4V$DqEg;PFftlX9RS&LE5QD801wrhc}xt316Bkz@1;`cUx>09b#{f-drAjKJR zrN*%bzTkd2#+Y$rZTBjy5fbVn*Ln20xzE&_%8a-^ncwg5{QuI{v3JnAD#jqPchGwF z)Ol!Aj(_u0z5I{7+{?e|onFuxgIL8FMD`9^&-$4gH}&$bhrSm2!zR5u^zP8RL+{S> zeR)2I=W}=-zx{kS=-r@qgWiqjb9g?7=W}>I$DDVb#=P^q%NCgP&eNE8o_pg0Iq%$; z&b;%|&^$TsJd)15^O8H}ne)ywn0H=WzrdV#p258HBGySAcY2f0$-Hyg1ajWFFNJyM z`Nu4XLLe|0eV{gt)f<1A(wjKK@u(yxbZl7l+=Y4J5 zhF;eXpa zGdXW;6aU-hnaO!$8+kta#r=_#U50=CNak*zpta94W6vnQ4?RB5OwNOQnE!3-6v}yU z4{b_spJyiL!EKi1iLY5I=fOR~|F(H%avt2KP0Vp??;~@W`V{j|yNS^g+ox8UD6q6o zZ8BlgN2@+r^)W%8{2Q-H@vooHdLT^T0e(_l4dUdLQV0Y__6Pa-m?yJ8LU#a$)f^ zHn~XjGX?t5;5!<8{lM2R3I2Z2`$0bn`cYksU&_7JSNtSEjY@RepUgJ}j49663I;TgTqo@s9%kDDcO|-dge7ZCxUMyRGX& zTiyI#68yxmLUknboktS4<$;@Aa@!pF z&`9XWtqR}t6aD%1`QWB+AT~#yawpmnJMKhVV#jTL-iq7$d>7!ZtWJVE7u+4zMzG<| z12_EwQThjV=HZ(Ph<_P>${JvwAC_&W$@tq0V$=*`)C^+O44YkD_dGFbRXX%^=;>Cw zN?mqt4BC&g0oe(1aH-4%RNjJo=irNT@Wna!;yy{@_dd}3K<@*cb~f^x7{6zMEemW} zV9QE^JrjB+^i1fPNw8;NA2P5H>DWi+cG>c&>Cn@mr$J{QEa)A^G5@gqn>mmq*qg6N zg5Bzmtk@IccheUYOJ6jRy>6v18i{YBPxdGHBJP*I4FB`9{1NTmxIZ#wF+kr)r(@?% z$?}inM~Aj#y!}<+Kv)XC7 zu+IIr$IkT2bXc>YtKt;1UKpcem5ZO8XXte7JP3S)utP=IA=aFG)%-T! z{ht{($K+A!X`-F7t|MZPn@jMU9oG>#33)jQc^QSgj6$9g?TmHK+W#qWa}58nN$@AG zC1S^44F2z1OT-#CC)yKx{764I%>y=166|j1Zs>04?j+dzfUOVMa==DEzYTj1^c?8Dq4(}O?13#wuv>l6 z_r}d_z6ky$m^ zYK!Mnm-DI1dDP`Rc##nE@w^B6k+E?0*uV|_$XK|pjSbKvi!b``j+w3F;q1Q53w|&4 z=b`>Q*81yQ%p9l%f7iy$rd(8>)&+7Qz%9TXTa(5v7ek;QS(Bzq8TV&7b+ zW9GzlY3%rig8#_6G+m3oJ_&xSo%&HRv(-*vf6O+%v{Tq5GuLd|sbXoTWG+D3DM{;8 z+a7<}(N0wsP>%n>F|#7|)GCjxueD`3ImdExt>w_I{3s`eC@1$;PVP+xFbC~-dx|!`?h0 z3HAzP{>VB{>n2*U2ax&pb)MiGW7X6F_|X2u4*hL$a)D(nW;^!8@g;WbiQ`MU47)NS z3HHSGz3kX4z_; zd>@0Y8;h+Q3*E~1v0xvIts9H28w=k@gKad}D!^8e1bYSa3g{<6KPd_J#OLkU6QA!g z?1A@_U=M)($Qnm>>|?+_2JBK$3Q;@ zI`daTxk>8od+o)~&f%N3KJXg&t$sdnevaMG&j&wwjA(p*j%95dJN_}?8v{Nae0mc6 zow6C7#Q&@f|HGROGydf;<6ju7^Uh)DiE+**=#N0(4E>>Z6!=#Fz5?*&gD*b`{}~so z=0j(GPspDHzYn?(I&0j8dL-e059q9c7wrzcyH$5OiT^Ph{*rpu)Y>v0-DeN#ozf>H z;?J+20RJbz{|U(d1n@I|N%d1c<~N1%lHh0llgj+3=rPcbNrGSInX;kxgx)g={+`f# zLia)Ubus=2li(i<{;}X65B~8<@Q(*Sdv!xEhF+kbO8HKud=n_&ge3SUK%W5p6zHcU z!Eb#&aZE*lWlb-O&+H`sS0=%qxTcw%|C7PraZR&Rz;_Dx#)EHs68z(#kB2@E`nV+c zt}f0QIN+M|9cBifB0er_2NwWLfbsWIpOOn|Z zh$h)gM`nncWF;$@WIx$RM(`yji$)NQVV>`~)jiA`iMwn5d;X|Tb=SFd?>*<9d(OG% zoO{ckk0NhJ+9Siyo*6wJmoOg3&Yr1FEv0`;>HmfF|H3iwzYzF^z&{53V`Jbye81>u z{Dh0{mj&7mtDe$oEH% z|H${>&-oZ11OLm=$CsgxFGn9=4t%6Nayj^4jy}E|eSA6me=+!741O1Z-$i5Ke-ZGD zfG-8UbPW7QzCRNGk?+5s__P0H)c9Wl{+EFNW#E6=82DcX{+EG2XV?I*9dWkHXnA}& z_+JkG9|!-BkAeS4`7sjzk@DmH#NQf)|Nk^TGV)xXk@@(wsms9sGVs3?{4WLn;raOg zNBMz0_P@(1^5x%Q@c%!>M;L!{MfFp`?-cMm1^yqtAE7pN3h+~aHv?}T1OMUqjidP| z%KK5?kMKS^Y`FgTzv15|In2ZHZ|LMqt?nz}|7Gz1GT_7aBg8tF!T-zP|7Gz1GVpJv zf6er7KK+|N2LAJb&j;QFylD*l%Yc^wF9lvYhWr?w=OtIl5m{#T5F z{}teW1^8b9{#Stia{9lV{x75d%f`Te8SrJmKMDMkW8gpX{gM8Rk?#+Sum0c0KiM}1 z{+vlP^C<9{XiUkUzKg8!A^|4H!sB=}tcepifv{}sTm0R9Q!pBMxGk?)Vhf8_h` zC;r>Vz<>C;W~1@{6!?D%{67W$p923C;I{(&t^~g;$H4ze;8y}q15b~E|48{U6919% zhB4E(PG|Es|NYVf~$4E(PK|Es~Dv$uec{HD%m{2Rc(0sLo!|LigFADJI9 z5`T;LhvrATkNCIsjDi2~^UOx`|Fz&h^gOfK^lvu!)q`LC82n!kydL;0;IqcSKLR`g zJPe#Yexv-kf1CUWrT^Q$GY0;{&omp2|25!0c%~WS|2g{qIr@Js{l9h${I3OmE%46* z|Lhp}k9>dR_>X-5{Tctc${!>1d!+v7%$x4(;Qt%o{~N~O{~N&n2KfI5`2Pm*AHL^* zH2+@%{>S$GkGB6tzCRNGk?+5s_+K;z{+!tWe^=+P1OMyB!2de%zYhGb1OMy5fB2a> zqwybpX3l8*=Rlu1@J9pu(J%)8kCY$pC;kgZ;s3xx8vb|{8f@wboU|A&A-0{mOR z@BdW*{I93~*VF&&=>K(N@c(tduLJ%$;GY|V|3}J?k>fv7e!QRf&mRMS_LD!s9`mQk zQvtux_>*@B{9C~9|5XtD=Yiim@S6*MbH~7cF7Ua)KLGp#W8gmt_$1&HflnM`{3imR z2)qh-74N^F_{T@#-_SYy484)~k2pgQ{69edK0yB(>0jd*_%{M?1U?7&oH6j90(=T^ zKUZ_K{GSZ`Sgz*#i~qzi@E?AD;%NLo&-_1jeqwEE75!U9|8E4p8^^%^M&LIB{{rwY zjDi2i_eb*o$oJpR@wdjnfB1QEqw&8P{D+(um-+(ueF6MF4}PB?1OLwh|2*)Oz*mle z|H$`8;y?2J_Y?oaW8gphytvW$uLl32=f!;y{Jsc&H-q2JW8i-?@SB0(1pKBk@E<8Z zM&dtGe!QRf9~g!I0}oXq|0xza(Z4M&eikP!t)5v`6fg0dGag#XTPx~XAH@?LRz6b-vAptV@S@>DfOQx zzi8|Fboc*u#?aGF1gk&uemGsV1kUwaKYo-sCi{OaM;+Pw*Y@ z1pJ*)=L^+z2JCgFoH-Ft=QpeUa&434OrXK@S>*hb`p&6?=d;N9D|P%Yp3frZt;G3X zJfDR#i<}t$i|4b{@xP{X`r!F2@?G(2{&PNyS1R8DUq4Nq%~Gbm0X|L6W%0_geE+-q z1oiFjAZN1FWv0t{ES%4B3b^r{vsj|?&F|C+at@0Zt@;YMo}|uTDLM28IG-fvuXrVg z$gx~`f;xMpwD(ic-~@1uvlnCP#vT>lX#-a|7pd{s7;4M-UoZbXlW(i~<9!9srh4*j zhnyQFwsj9>X~SFx=+ zxsy*DmwQTwhTL@>+EoGhK$~&Uq!L<;g9hWk-3DhHT*raqINB2&%Qt>U zaO_!0TNclT;Mmj3|9YM??nT~hTf%?UZzGlp_~&B@o^9{?yenmk{ntM0R_B|HSfkyDf6&(T`JZmnH10owXV0Lo ze6MUhX9CSQ6I{*|p0tBprmk)D<8R-#*9CHK#kT>i2UF6F+ zzl%H><9CrCYdSwT$cxqdE}j$ANSWdpK@I#ao)1({8O{dc8}slXzu`lE!-w*G@Z0kr z96S%Grt{>%vw*7kT|5VyJ^}#o#1-SUqGsn)%PUWtq}r&yw?b zHrInbygRwTbH5dOQEu)=KX?Bq{G++Gx|Z0#SxalCY z6P`E|o;btS^$-1}F?T5I1uYFZR2chAv479n(MYK`IR4Qg{Y?IhJ`Lr8*bp9w4dH>< z5FUsP;eq%N9*7U&f!Giphz;R^_z)h558(lx5Ar~K2oKZ^;eom#JixnyJiuAUnYoN( z%;$k*GdKwkoHAs*C-MJeo)6&xZ6g2WJ;t;si!|XU#*ML*GuwRmG?!;{2glr(Paojf zWZsV{-cw`V_P8qN^JC%N(jnJ*7!2#hmP?do%lGuUyGl=W__tsJ)_L- zFgf?Fg)^P}@lD^lr`*`wYcYSYO|uqqj(dxRoa1g<$T{x4rqkFN1a2blxVNxJE*nBt z^4sLuZuW)shMY#Zn_;JVcbGQ9tmnCB!}c08!uccoHbd@%Eg`4+faomF(A#Y}^{*of zW&UVpfuGUSnW)UEjY~8QdH0`2OD38wHCg-VC7wA~OHbbxfTv5+w*wMAO`R#P+L>(sN2H;9eU_8BjzF-Not+pN}{@TM@o#~Cf1C2q_55@TU^ ziMudgVpnCg#ENa2J<-y=`#SW*fj<6k5uF(|T9#9`m9i@-n>l{jYAHK|vg0T_kFu%b zmu>6}8!h{yZp-edvGDb%yHG!V*#;@wN!j(3?WSx#dffijcZR)SCGtSgmUF_2wvYBZ zCwwpG6i&caN^xdGQupcJ_6q!jos=nswx!66Qd`%{L{=DEpy}ooEtl<0Hs9CJe7LVa zx2-qe?OBSffmT)}^y$UU*ruuS@fOXE_iDM0zNEKzzSg{E`D8n^ad~e0fq=JnqGqqL zwDgPHxtp37YK!JVZv_(8VJ)|PJ8kSw=B#IvxkKAkop#n#b^3hUtNM}d*b|^{1Ms%y zb!7QI^yB`=a^Uj_h(|@P_5NrtRQTH6|`@ zZB|R)2`|;cU$g-Y(7SEgq%XWM@M-O=1yV0~c?sX1Enyy( zP*dqd}l8|>>3Fpk+DBrK9z5K}exr_M^nB8LzFBKt3%`ZGwmi2ZWO&a{((JV%_-&VFhb_$uw?z}- z$wscjV&BvrE&b}QKzi+gL4LA3I-<@4y=ttztW~r(cN~wW=)>#qA>Yc(@XgHi<;d6y z#=eZPFJtV>82d8Dz6^L7@Uo&!l`gd^y@;h5Tfz6C1)5y~50t)swn-x(=S zhcD&q^$7g;6l44__jT}s+!ry{a*r@Za({|3S8#Yk!A;~}$f;3f*w6e7^6)9fTka9~ zK<9nE5YIz)Bmxh__?8DeP(P9fdbZfZWOOnkGTP?>y`+D9_K?9? z^_NHAa2pu6%|#xF`aH0?zyn)^2hfkce6A245LyUL(xsOor=<^@1UFwl3GSkw1b5L- zg1hJ^!CmxI?K)pS)h;sKT5uQrR2$)0H!&S>Z-&FT{*|Mf%H3G19NkooOejMp zlpzz!kO^hTgi>TesoRhey;V_=%kQ$T;rwm(K-RD4T-g~0>l(v}k;_=qYOqG*JM$}b z;K;i5!t1(cRV%wUy?U?a1cJ!pq$zXO=&jP+UUWdgKJcncJ-yZpc##7G^32J*@firOmKQrfJ?kG5?m{!MfxTY^Dr0kEz=iS$ZP+G9wB?C9=2bxoo>GbTC@>40s!|TJE*Yn!TY^w?6?r%FCFmDXo9}!|&K;3fooYNb)z= zAN=IoF3)ZA;4u8r0|yP-^)^%?Z>tM(K>PRW5B|#^64_ZPmvy!g&tOZWw8Xl4aFKP* zPW1G1;3TqX6K66n&?)~r8(OG&dV?wR^5@X%J&nDLw?EdVj8WL_tI~{J=;!-7wA_IM z+_3}qTDl!NSf0N7fF!!JrMS+xmv#_&zk&a|4g~n@I@%8^|v2* z$L&Ku?OLkp^d^P$+=1t{#H-Z3`ZO(lyA>3h)?d3Vfj+`R!XMj25B^pDDDs47F4Lg% zyPkOi_uu@Z8!cNUy*v)ulm3^FBv0ZS|4Zeq%*uO>D&7P$tvE_9y zi%tI8RiSja#Ih$wb?>4$XMOi*>GA(*iBG|Zr{EV$V(q#CKe@9ryi=tKEp6-YK-$^^ zt&>`M@}96Af}bre;p?FAJosF>MN3z18SmT@@#oY1TcKf32wPNlZt2yUEogXuuZA7+ zs#i5-D1U8*UtX2EwZ5-+CLSs`h1lQm}XKXRLl(q^WWCaGJVt?AJ+akS7oFo>nPxC4J*w z_@o-#9{2f!@#$}m9x2u>eemnn{!#kK*u7=+)@td18MMv2Re!W#n_t(Qhki-i@{8<8e?@cdUSv4yw+5UC9w*lKRDgc`yg+;A?EUoZ7*5hQ zwD}!;ebkK$pJb6uz4V85-&(7bb=_o7+2MNvITQY~=r{bmW6jx`w`R>mJ6x%`=dixG z`{l`QT_4{b7^k~+9YMEdAqRR}LD%UsoQ848`&QPV%aJ21HMge2Fr0;k>sW>t#{P=| zs{vNM5*)uX;N5~h#0?3r=(*g_^u&k$iw#ZgK+b(K<=t}2K>8koHNiw^Z3T>PeOPlF z&(iv*|JR?5Zw2^m$ozTNKK#duv}RS<9bv8i?(ZI^uF`b7SqfiAa@oIv%Qs$*{_k+H zSa<)8aET%l3%D>=0i|!@nPa~zkNwv5*BFQK=-Kh;+41OM8$E2JhwYKRQsDSfJICP@ zCr{mE%*{HtzLzybw84uo|IM~&^Ta0^7wgGf`xAlmH5Vn)KMsD-n3Wx(7uz&1(&n%I zmx=wLU7fbfx%PdhX|nF~vhNI}uVnoxK7*1>nO8C;f*r{_Rjg}RADG(%36o80rP(NQ zd5Y0HO?P`sbfa&!?)IIo7j1x1K7ts&;okqmPQZ@t`<>?Y{b|r%7*$sM$i4qa+1n`l zFlE1Y{Id9(joyz__9K-2EM>oZ{IZRm<@A@bC6t{_+0&0-wxP4!D`T93>!S9pZy&Zz zWU!eDBXdFF2^#SbiP*>Mh{Gd;Tx;D!_67G6X?u)`*Tjjnk-1YF*qg{7BKHwpXZF~|o z`or&o_JViYZBehi{gAhgenwauMB78@wL!7_2iHW{^WH9j?1B+M>MNGG0QOKAR3CSACsi92uGsqT&Gv~e++vH5RmPn+3g8711rex_KjF>L- zKWM~|M=|tE!3ML@kDi&-HYz@AOCfLZjmw;V4Ecn;Qk|t8bo#1A@SQmWehS*bwjuAM zE04W@W;%+07#_@JpBVB!b;OqHPP|x8Zw9g+tZzEnI|Jw@iwn}_!7Vj#5 zixbO$&wB8hq1*V0)8|=Xv5(!&3&rOabT@a%dY^N$keOm{nB0lcc$Ty$b1^y3Gvzt< z!CG_^dR^$_Kv%J~of=@`Ppa-!exG!CFt|f#-BWe1Umta;zAK*|F%!S8{(myxacVXc z>S?1+zaHqMK_|uxy*^7*NxysU(<&-SYGd&1KyrPI(&%kT>vi3Z-onE zG6WYDchi)A_P-Q9liwpgwA25GUhrtsif#2z7d$>W1dpDH!|~{;8i~hX|AUOfoxyPW zockG@#|CNTkIe$c1{-K_Y+8nlO>!7M{@C>Fe$QhAKMZZ}*x2}Ojvkw~$Z(w6!tV{I z=SJWZQ|qN;IMoipsd@~Y+IIfWa5~oBF`WE1N8^-ycQ{VTKOGk*lW}S@quxa5){fjb zjD5f7#bdZJx9s~S__zu0)e7%*!h5@!M`Pio?Rd|4A)mZG`v=?VzqUA!{Py~%j+{rF zML%pF_5A)X;~+R?qHga!jDFVf%WySt zHF8z!d{c}oo<|OMBZqZ-bzF@)K2P0pp^t$-fOqhDa>aE^)}T&Ix0Ej?%-Sr(Wgt7b zl$!m#9 zGsDXl+Y-AefbZ6-rd?GYdm|N~{=l&MDKGt^{s8rdZOV$SqyE6~ep4op347!Nc&ul< z6X$D*wf~0ydhLK+j!p=bYw7ZG&G^7Mn)`vUX5abNK;pmuTNikLpyH@qL2f`f>$s=`O>E}pdivI|mbOByUBJB@J4fpw7p89@Js~9TQ3uaM)V+F_ z^f8zS{f4#H8hq$;wZxr2P8#vEHMcILB@X-;eTJSdKZ?&|jn+S*{HWAPec(qOVd@K? zsM#leNK1surH%n_?U4c654bgFYlaija-aGbZLJyTZx0+z--*Az)H*Hw+N6+O4t{I+ zfAolqA^vQ}y_%~LK55{p=c?n1bH(%^bjJ>aSNPViF*Acb(G3sf;UQv;4g27s6n3C) z0uKV`eSE#dIGi}}*go1Ircb=bUK3`VpwEj(G>`a!2Q9pfrx0T}s@aq0Yq_-+x_g}N zO>Wi_F8pk`@YXmzXG~7fPu(lWHxxZejt6V%jt+n9DC4>AfcMc;u(^?eS6-yq?E%K| z0>-f%`rV05aiAQ(NWEK^()#cG#XGk6JmmV|1T7c1Q1kBjpq9IHDep11$N}t0EBCK= z=!rAlHgbW>wcPin z$a#A1)OC99mJj0dyHwAeRHgHWH<@ zRrY;7cN=xx{ypC3*&QF&6Q_NGdN1eyhxK&(J$mAad+-fOJZFKHDES=qKddM2Si<#y z-fw;4%^c;?`)}Go@MCSKa0M^PJ%EPziNN{0cZ1J6MsDpC`U;+>|IWxoz-Qeldg8WM z>C5RnyH?MA7x?3^`sLPMtt(nQev6)4dkSUg+Y{h^>p6T6jkwkW*a?w!&=1^hc+oOu zM>My7k(QhLC-9-Iw&_};^mj(0Y&taO*&WdFU%@SMK6PCRJ+|_HtL{DwZr_9^w|$lR zp~Kp9^xPd&^#1lU4<(*B6Tjq1Z{}WJB=an6R|r2Gu-qCQ8eOEh-^Ney&489@U+m-Z z!zp?q_@bT;zNshv?oImnLHcw z_u?h+-vq|(LN#XIU3U%iuMNJN`@?e=j;<5Bg(2{+<-E7{4vxywCcet{43Q zJhori_LA>X@R61n#8qAN7xsM#>!7GnpNYElsi-kqkFpMm80a#$Ar)aA6mjR|#qKKo zH1>5fYckt1=h)Q6`iJ$V@*TeoeArq?Y)z+;Z~irK)yud4xZ+$fu4)rK#TDa@;#_s=e^6rcPW6T$KJfu!0mQSoVq9^qI<9)I2Cl|U#9#TYpvr%v zkN2xJ)Nh>Vz2sqCDBlzesJ^S`J->Epg4BC2I+8nl;>5XP{BPvmAafBNT38Q(r;3qt zf6wu2)<)O}o!AK7*a&&r!3PkRH4byQlsPQ=O=Lco=u|J@&ug1?w8*g?hd#*qZBMyZ z0{(nM5x%tCx_lsa``2`LCi-&CyISJA8=243kt3f%&W`6E*1g-NY4&%gX^Ci5PrUpQ z-9BZqmI#;Wxl_K0%$lluw<9+UWTJ%}?J$(gw#$&;<3m#uFFma1K7E;<`1D)Mr%;S_ zo`L@_kXR!*2Kxeu=I6DXwFRAcfVthLC3f^d!+nhD?tn298{x6vk)QBtAQ!w(OKjh% z<>tT2`mhgq@cTe6GG9+T_LP>G&+iVNTYI%ckl4X3zhj=J^u+cmBWG0^s{DLl&GP?w z&8W-hi8Us2bQg90o;FP*Vey-K6Cs|5_Xw1y(iRRx8hgsnlM6Vt>&%l3{+SH^f{ct^(C??V{Yvs}DDRjP$A3LwPGgHKd-r}CY&-)hq zxeNTCXRLQHt`Eu_7?$UP%osDj0GSa*W<-%05xbBJqhyAe{h%)^+E^#ZTE)~R!S|om zj77$lUfo-5>FIC4kE^Xf8hJY@M-Gd2)|5$Uxf_@GcXv5;9>o@CUS^m_>zNPuR4gs* z5U)!g>Q2Tw82E7R|8D21jK_TFt8bqDOdD>VBmtJJabns?}sfsZNN zrQWL^{@%e2_%f5F_Fm$22zIkJaOZr2Vv?xWkoH6N zecSM*?v-~c{5tmY|5zPE>vTfL>g-Z=CWqH~U<3Ty3x4#a=ra<3k&&P+PC9fN~FR@YOgKl0eGQBV9;oJ3;?+N;ULFoSEPekTBHRzET zdW6`5?~}_WM2`qeWSF{-h#j)V5qZG7dEVWvr4RIl)61SOS9y}?hV(sstWl9?;>(Ho zGPl4d)V)dOkmSk1kMPQt7UUna2UpJuG1o%yPX?W*GsocFIC8<2!cxRybP?9>$x13lf`XIx5te^N+r{53rbVtePYIv*@U7$mo z6nYBT%^F+E;72<{`n2(&=)ktCY^h^Zz50lHdq4Eo>+Su!WA$pwz1443h)tYZ0}a-8 z3?xp`bo-{8&=m&<5*uIE?6cn*u){|N5}$q)R(BDbHht2@MeDU8_& zUG3nPbY;FE$5~TVrmx%>$XR=Qz9OGT?CyA`j`VqcT{=x!J4B7-ntVPXv zw{|DA5}u(Fd0wune-VxndAx&yNl)h(LCJy;W2o4KYEUDWbtjun)Oqm%QUBP9^ceTO+kK6 zL2pb!woU;)1^5(n`V@4-B)gsd1Wm0ud$#bzG_fyK+|t(zF8RyVyrVVO?z+`BTjo0T zo$Tof5|ey+9r~QJeHI9h@!ijMcpd(&?`FSikQ|H72~K04=L=Y0NV#^tQM?m-wR0l! zt`fVDdwwFhW#d>MSJ@H0%FiF@`Fo>2GtQ{h$*b?gUX4y?&X2Q$?~r$KvX;m)FQBo= zVC>HE;4z*$^P7%W*cGcKDo<2?hU*cJvbvD8%N&Q$d36vl3fTc4U@%+{y4v-6XUhRkHQAvM{UqfbV!PGY`HEAal; z$zNd{Q^fsJ_=uXQpBTgvnX5gIx-*Gin3a|3Hy*@Z@!Pi1D+aPt+V*Ll-0;8cLvdch zFN<~v-8-`9$lYGka-L^?2OmlIq{8~3RMEi7o-O*=&W6xaDvoj{xD3h&<`lB)y~?7V zdH)kxgnTp8M~GiS2l}9NmQmXq%yn!}rmx(K{cFK*+kja`efAczfIPPhIdALnhs=l| z3s}>!uB&ei$((n$GKaQi)!c^{up=VSpLo~{YR}0tMt$CJ&((vH^N^m*p5$9D)Sdf9 zwF5l!-u)=;o7fou#w%4)vBj&d@AhR5-j9;Y{EYjW$e+RReo-T&nL;-;2k}E zyYLY{xnf?C;-R*6?yLpGfZBl}uj8g}n>*=?kLOEmmhf*F{tde^)~B=dF#H>We?#zZ zh_Q_*Jz(b1uh=FpNUnL?&xBUYd1%cumG9K^pS))niwd;*+E$?h-wQX1%jgDns^Q!c zQ?#?qj3MpPhSond`iA&I6fLv&!f$g8pO#vshc3pK>C0iIyL#A*1P=Jfjd(k_AZNd| zDd^n)nB_dM({eUFM{JZf3+=h_jNxoyE%{C04*`GVIm(@EIPEb*axTH`2zDsz%?#^K z)(CYoLQWk1h^1JYx8es_u6V?NN8CXk!8b_^&zAiwibs-L!6RUNBp=uj6&|^aT$L-q z^Fkf_hdC>L{Pjb4q>Xhmc6x9*?$En9 z?nxydv6+a@-4j7y84)rt04?y0?-0lo~ME`IKBeEDbQdy~ZynaW zy$e|j?l84^068E1#kNmI10yY?J)+VVK$L^7HNgA<3MAH);`VzV1Fxwf<* zC!jfF@scL?I(E9U*I8eRZ>4$@dKnv?d8mB(LX+dH1;A$v8y@wAcujOU45)+W$ya%p~*Tx%EUiNo~zBh=o zi63A1>wcxLe+16McmcU*AomO>mQwk_%?ro@Wejy9}`89+2RcRB)RC7eZqO@Jmss8%oU!C|2{1nK*`WeVT)?P}E_MB?KTM6=y z9L-d`Ci9Q~DNpP?%BJ7g94?kYFX+ll;!!j?KXCh;t zRl4gYelzcey}#871Or2PlsRW0y9V=;p;@q?2SqlLyHb?@J#QPcQj&{%Sp0l;7JL;w z)cl-MQ(^v4Xv@93fMR(u+oImUU)9{PNMy;qc2%vGz}GDF+QBpA;k}9M7O_VMeF4S3`F_H)zBHPq zD^`$8eSBIdnzm&AI-a#x|3#WAx*z(yZ9O}T7Nh%w;>#$FEk#$4qp1s~7XOVTWZZD1P;6@|BVO99EAiW3H6-(9n90i;LnRGd2nr=mu}CMNjhW#q5ZA z)yugS_m8Omf5W5M)rwZo106)ns+0YI1v*K52iiH&TsN}sqwC4uMLomtlQJ%{rzl_2w=#$P`tFhWDr4pUH`j}9lK-RZLRCJy zVGO(Q4c0)VtbzFMJA0+;X0UH>9{cuE?AvQCbE=n@IgRY$WIr2l_H+^hi+7i}HP{Aq z3w7H?SNzj>@&bv;{v%h%>BuAY0sV0gYuc~i`|Z$;i^&hK>%->3hN*S6+`0o=ZcRwf zt$CY#s6)tL$puO3#wBs$U?DwyWJl1G+^6AtLdsZIl)3Z^-CTwoFJ)a(%DSS|n5~z( zvx#NMo;&uQ8gqz;&S8(Ru9qu1NUm=6a$+j2%q4Q*YnV%nuNR_?*y}uJtjWo-!%5~7 zBD{hBeqIiF6nb#S8sycQH5(`!^zi#Q@z?#_3(3JK)r0Am_i%nhr?2+FI7u8jXw;?*Z-cB|GnV)%SO=)sjT7(XS)Toi;`7C48;sH4UhFRNv~GWG z0KXP{HA`!Zr9rjs%&prhJj>cG0=={8`P6OLW#?<&9VdXp&Vl~uL;sx)Y>lL~Z$|7@ zFS56Hsg=tPk4+CJHp4`gnNHn$ z@)t5P|FlH!Ce3cD(wx%HAbt+ydmB8BjBiu^l$Yu2*MvWhO)C$xihQ;t}&EISr{v_$Vhib;~Caub2d!?+34+Wg}G}FjsXBmm?W-Vv#pnduO zSTdL0oJ?$c2EDO4={Ed?+@#x)wfm6GuOXMu&=c8bl1`&ee4MLphMYfC0Zqm^)vcUA z)QO*5#ZW3~w}SkfO26IYAB@@hIAdmNT%u{Vkuzr&+Wj8w@<03iLc8q!q+O%_Jk6L> z%J^Li-n1QmjabXmf-ku&T%09B`~&^b%|7=OzdPCU-dRf9oVTQtmqMAw-JDgT@(B*W zr{(UPRJl`qJF+GfNbKK)EYbtH{of;h@I3aE^>Tkm&+X^Fe={`xKDkh4gHtolD6WSj zo*{X!zI^Jb2R_%cM25C0J1@}`1CKchFPE5b&O901cxFD~M%FZc}vZ`Kea|zVLj)Y%+4&W*5e=f&R!C7I_Ce8N);tJR6yt4P13I z$mgBMJ|}FK8f+KlDr1H3UXLkQJCNn1hMqQAR?ep|_Z zOYA2%amD%QRQ5b8emmLcw-w}4l#>J8j=Zf;nFinMa_e>SM^oan5A@%?`336aTivX| zl`L=jwLAx2h0mV-51A@(sDf^s8H$ay$>%NS{yyY5Hmvw!?l17^1Mv1HWL7n?Fl3z@ zBNjG`SlF!mB%?kv$*oUKf+myP+4+e^LuR7ekeX=B(I>id^0EhFir8^VE}Ld&!JpbE z{7)PxuyL-)Qq7Pu!(znB<~1J}!{#04_Yj`~>)U|87ebr8V*&eaHt*bpzTc(Jt|C6? zb+qp?HuquoWA|=esJmM%@$a*TR%bu4lI4Fk&@a$}H7#>UaQ{}Y&lY>}kr(^yHSN2c zdh&4Uo+pktQS+K7VS^pgn$N-47GAr{i4pgYAJLkzHQkwOx{SJAUE~FKxpiyMh2-&6 zzX@(ZWD>cK@fWFw*hfA7*M{eqPx!t?7L;xZLth>Gs{9b>=KDED#ODNG;;X?ztXugV z#il9DgM0De1q!fZad2OEc@M#ki!KB>pyeW$KTw@vm+&#xj6ZKt*a z|0i;5m*VFwv1=-d=obQ$1i#Y=*KW zoH`x6i7A;Yk;RmSk3ESu`?lVH7_(Ely9iluZYDtA12%cg`0-?Ypc^gB^On5YGoJes z^S(icN2!n8N8nmo+iE4U&_!ECKJpZ3G=rSE5@I}gXr*iPg}vyemiuy(*ze4%jIQ?m ze58ar$cHo!u_o%29J)WH*G2 zc6xFfvXFh2@GyRBry9Pf;figbJ?2(?EB!oG_k!)h3(D_^>?!O$?`aw}mu^t@tXo-1$k4HDaYiE;_IIC$CNh; zrky8!7$%EM~TetG_632Kyy_V(u2@m>+xb`?ElJZ76QV`G!mzvyCF0 z`#$F5iO~E+XnrE|@g(Ns3Czb6n2#qgA5UODo&fv=;3qiMohM*(O%pramNwU!@B@Ab zkxz}C_@B__W`;Psj5WNrMD07==+^42W$+m@A9L0=;z&C!_rZ3{4lmK1HcJ<~EBDGv zVp9dvcSqQhx`23A(8?V^mPw53KKwCTc5;?oyXilx=9~-*-Gy9>M>zjO%5k>GTI(y` z!uhPpuVPKk-jDDvHTQvYv>g{MU23nrXz7mmiG;UieqzVOiVCme@WJMguG^tWmFfEe zmix`H=KY);{g*G{URSuEQ@F1!+{3zp|M@ntciH+;jv#5x;+N zw(l=GOull5oTb*GVsYgUbmL%>1*ENenTaGe|3(U zZC$0i4+TTU!wW**_Gs8{=B$}7qu+zj_!}kVf0a%XO6dPo`cEGB-;zd`(66hf{cYOd zoI5*sH@V->B@@A&(5KBv|NTyQ3BJ8D_-=agcKF%n;p?@^rPxMB|DD^Hum(k^v{g9T z0kuvLUhThS`$xqufnRCxSsMSA%tg`f_+jt|2d%_aTX+VIC&I^@cbW!#>_3B#*^kBk zdfJa@{xkecL2H7&5Z_YO3V3-w`SVZVyF5p0hL63_MN6CEV>>iI(F`Axqj_)#@eHqH zVkL38s8I(WUjlDlJz4kQN&kLM;l8$T59{*WJ_kOgZ0;@iHgqJJIP#L_JwH=Ry!Dcn z2)(R%7oW}jElu{7!9xN2q7I$dNI>#`n9G%Et(P^)-4*Fi_12*C$fb#B{o!rr8nL{Q zFtIJPS~a(YRs!cdNX~NXIo19J{Uh)EZ_&SE-})!?9+o!ygWFCn_J=-)9j$k8tW=+@ zZF3Vru}6~;N82R&-tgA7hwNLit<08`C$Ze>l$m~a^JND5EnzN#2I%1|x?1VXwr4%_ zTs^V>8p)RoN^V^G){;Q6?S%O_bXY33xA=Vw=rdQI75id$h;B+Y*-LNJnk{S&%Q~1? zMISG^jkPvD>DAB3**%;ybDN&K>Unj3kGJ<$Eq551_x!D#QFK5{9DZ8)A?=O$Ij>@@ zuG)(Z&9jE@EN@BQz%vs{YP{!}(=WY)+`_l|Qbo5{I@xyWW7kG>e^T zirlN=TsNKb>#&!)%Q@qL+}{W`X1-kb9={0wk=;Cp&m|TrXNb*Qgbl;<7|&Z?$8WN) z++Db@!Z>?exubQLcU9!eyR_ZqP6f|fc2^h+X8_LwpI7eaz{`Q_z{>^R4Lk+B6L@R6 z698TYJOI2*;Ol`e2c7}GvfMF%mjX9{mkN9(@C@+fz}J^MLEt68gTPA!-U_@EcnWxT zxnly40ylw21wIdW9{3F4JhOmDfLr{I2z(rH?hAF`ua}e0U)~i49s(ZTho1%+EeMequ23nXr3Zdo#i@UyEqxfGmQ&HgK!n2VQ!Q`FCG^X=D-YL0fC23~pWQSdP{ zlmTaDi}b8d-;R8i^#RY+9Ih6-Hz{&C=x%No+arkWfvwv~%%nT$#Ph6I*ju-Grvcmm zZUD#M0-X8oH0JSfNY0#Y?r3`DH(qwdoA_eNchpY1njD!ZWy*J~y7&|1QsOt|_tH%l zv#$y}y_<8**;7`ZhxhZ0ai(I2rL|#~4B&UcXP5{69pJ@-E&7}tV2&lR z1v$@%eI;_9k!A&rnJt>+J@ik1>s|3hyAP7nBIg+$I$R-kclt!^u3bUdM~pv-bxkj^ znh%TY=@CC<1bJl2`qP(bN!Mu6OW{l6Yu&7kX0Rtt?(^6qC-+pTv9J~YVqSC4T3%{g zu#*3oQul)OrS9U+Qe#nfDRZ&ZU9h{n-|W1)~=X1Au<2kTJzOE|Djj$V1(|7#$x1O-uum4%D0w3mG|DDR+`CKa9 z-k~M_?l~>-*w2u+ywmZsr1x(pX}P0!YPsv!`(0sc_TQbPB`RLl?ZpEFUd0Ooxx21U zCT=#^dk)P`M(02F8$DtCOER(cH!1H!^6o$LE@w(yaCE?X@{a?FAO44)2>v0Jxa&Vs z$e?gnxE258IP#HSCoj2E_&~-VzSs?q==heG6O-LX>@`zrUz}wRc2@1h=k)mbms2&Of|M^G;~j6QBEm?tP*{_bP*W?u8RH?-O_F_5^tC#XI=z>d4^| z_w0Qo?m4?l+z;nV&?6JO%3q)8RE(R{Rna;TIS;%O_BHZ4*)lS8v>sPdJYyRDo#sS#PeT_@b)xxcUD1_O z4SbPKNq%ZqN%vHIwfG3-p4Yn6UDutm?x|g6ol|9A6RVm;zQ~lq`IT)l_e2l6oG&12 zZTt`-J5AzdtV>huA89iRXB+WtkIZ;{>=Q)x74+SQ?2w6G&_xzw8xg~>@^+zaz9pfT zOMR^UErYX7UCua_n6RAF>}R8*}vO?wtHITh~t#KS{A}^cZKS>J>(P3i+MEX3OIz=bIDD zl)jqfG-QxZ>sfQpAm%?0e|pL+^j)p9H{Kn<2iNl-$Z_yl#(4$XCVJ+xMsCk$a`K2_ z-(pUb9H$-1=bYUnaRVc6vTh$&ZfBU2sqBnh7CBGrI!Sx64dV2Wt zp0CMs13Bo%GuRFP{zwt7@;QC^dtb54^#>OZ!u@)C?o}}CY~KB;%^LRlgB2T!brj_H zJ;%x{9@+lgMVRmc^}j3cdf9@F;J1ILi~NVaz$+B|7+yWM%lkZkYrj;*@b?BIp<#3a&2n~Yu_Yxc`M_u`s%>rgL^q?&(BFN zwC7+K_L)`$9EV@>ds(?$@|Goyg!&bs`~zgAbo!l8bSkb@vQv=-gfL>9L;9Qm9)%ukzuNStM_T!dI7tpt8B=Z%b7mB z>M6<3QCj9IvAHSl3@abb?(*xa{jqv4ob9u% z`{liu|9tZgu&t{7-z(_TGGNJ*RPH5w=7m~RyV$5d6x!H|*W`Y`;%zU`(IeyJS@FCY zuW-k|ssG^vd1=QE^{74$@6(~3etW&@ZijoHB)3xfKFxpL@&msg;HK!7eaxo~XOdai zAAhl5cNhA#<=_2&UG?nne(il$+Ok782%cqy`r!wmJ$t;(mIAFAuTby#(jRzWcYz0W zH3wz?nVLIoHx8XU1)LZ+p|4gl9A}@OJZmV%{E<0kTCE`3MOsyf2Oc7Il^>(gx-I1S<9u=(!=o^4V1hRvV(ypm*{^Di`M`GOZl_7_{KKQc9>*l_+dWh`JG58rXO=U5i@q1; zRKV!nKv{Ae`!-W{+wsfROWCEACFa++g0icQUzWUN&Mv2{N!eP;HXXk#dA0PHb3=RC z|FfTU-J!zSp=0znrus|SEM+%S7C$EE14~?8_G%Bqtw!~ivMrQdLD^NuFI%npOIhr! zzFI#QZb-eHJx$DhkDnvrpGPS68s9JxyF|NL^sng3=9c--V&eoEYw~QiYUy{0wQbv~ zC0NthwbV@>RQkGytc3Yca>r)YMcHjeqKUQa?0hi&8qc#l-~X*ASa<(Sp1ZSkGkwj& zlz%vBH|-xV8d7HZHU4Mi|Dgf5A!FL)3#PAogffq)XYh3>k=>fyv4S;Pw)bUK5AF7^ ze&|S|>7l{CNSpmfc((1>Gik5?OAk}-;bY}!v;PRswjFy`Y`1^)Bb0q)uxu{-2suQL zXm-mX_G^)UvaJf(Hs*sNda}!2b*Lgeee(>X_c_kC-3foZ2!Fg;;0?xdBJq=<-@j4( zc`s#Ir}k~4>|@6-tN8Om$}XVnm6W~l_+=G;PM~a%vN6h@eEhPCKc9mqcETSo!XIxI z_-Ks&D*ohL&E9s(ZlWx{Sj9(UlvVtBA!Qd(_Dag$c>J=8KPON&NZA-=Pdc;RNac)TZnytX# zu_3%_#B_4~=IQB|H-*_BulUuSl`d_v^jq${o3Q> zyk)Te)@?{x#vI*p=j2UvkJ@u=P%mp%>}tuCX01wos;ph*JYc78DLEo5@OiJo2cFeA zQ_7%S{Pf!blq2t9Gx-m-Ls8Z*GAH zH0DkrSA(*J+#;RzAs0Cc#A)GMF7hOtxUShv7VBH`Z%hdO*L)ARqfE;-bI#kW$rIdXS zI#l*VyjLBHZTy~fD7o_JeB?+LIkNdL>rnQ-pz|r)LfI96S%=0|e<^EHwia2{RFF}= zZXTvXv7@mM88a=A$o3`Euk{6GJtgZwe^0$u$G5^*gJhV4`5bXa3y$K8!dUJb zJ(g{+>=0YBqxS_*^3>G$CLQ=G|u5Q$6D!$P@Ug(~$Zqc>-T`>Xv^M z+v=;pzY6@TPIc#3v8}$mV|B4Uy}_nwf7Y$+>}&AK6?hHlF!rqLg(? zmHf^o6J@ey!Hzb~Dfm1tDA)^!kQK;eeKGQ3u^Z1UHfH7*yEFAAMqO%&TbEg~<5TGF zTYmI%4%+Yd@cd`JTgFdFv@BJ!plCPbTDEJ=2k@s_SN$x}*Ec9Dyq1>+lnhx#9Q06? z?)4s0|3}D=dZ9`Bp2zD7a)dQjiuh|~kmrRlV9goLFOhyLU%Ik&+Blbkd@OtrD&C-; zC6CIx*h3dER>8vfl{(Rst=?7j60@ilnc0SqBvs>=tt^adGGes6zQk?Wx5QYudx>K_ zdQ^Sm1=;6}|G`mwKCSrfTZxIa;%97i&&hw(U6^Wh&u(os&RO2-Xw!B4h9AXm_)+7m z&X2lhb$`_RnxErf+lKCW_)>qHR(T3e!s}OR(y-C###GX-LqbA9jgzfDf_z z-pHBV%$+6dpOU$w{ZYn(qc8;aA%Sg7itXC=QKKcl#1p-1J#sW1+@@V$x#UJ<{}N>X z5+klJapU>LPEBW=*iYPP%*Tii#egpc4*%-#Z~g+OzLR}q-7zN)JhnSl821`~%zOTw zHZH)2$$OONJ?8<=!Qb>f+Pb@BR2-uEQSxtoaMWo4-}+x41y0T<_SBXI?Bxz3^T9t3 zJO;ex*WC3bP7PNzSEGIbx`F<1)p5o33w+x2en@B|e7A9l!n;mvRC`qwe5vw!20YQ_ zLFf>8^k}+0OW&SdM%%;VWTX2wJjU|A^sVQ_;eG2lBz-&9uO;lG50VSji;aNJiMQyC z4KZmGU7W9Ge5%QflsI&?d`A#CG|N{T*g3?#su`bZck@p4dS|t<8M~VJ5AVm+c}b0( zHLSyHgyy_oQ>437*U2+zAMdVlVtMATChymz-{gBem>qv<4D4-@0J7p}j&mYp9VD_z z#w9%gTcEPXQ2JSHD8+ki$VqhcjpQCywkbW$UJzeTOOAq);XOY!T6Qzeok92VeeAh_ zr|MIS(G`n_jD~3lM^43u zN$j3na--!^Xd?H|Ku@{9t-CE>6q;CW%R1~0xqlrSsM~U)o%Kcw@&A^`sh7O1g|8gn zUayw25$bxIvQyY=IP3Upks2vWzCp{Wy0P$5%6?|dvh)XAlYH=)l>Z`UlVqv;>y+P0 zZpUWLJ%8)ywN_m9nYtgR?q5>&l`-p9_11OPH%oqSa_YUdvZ3&$Yf48?_Q&<^gv#YK zH#6rlap+x;Lv0TU-5hNzbbUqds-RCTzvNu*+qEv9AwPmn#Z#K2L${Wv^se%CobT5z zbkw_a;KUf6@~3zfWG|VN*@|774|bKwvv%tGy51F#y4S&UzaJ*gx=H@mAYo>jhUus>% z^Wh)huMpR{RCglO6XJdHoQmU$U18efxj5DIsq`tWD@2(v{U1%gV1a%o$vF(Z{Rkaxh#fCqq=3H%$tuK|85@Gn6>;HAI~;H3ip67XArUjzIbniB+G0z3%3 zMBtYJe+c-wz@N|@6L=K32|OzB(||t>ydLqCjC@p+YTIiRxFp?k380q#m8dxqxI0=Ku0FG57$Gx|7$(XVy%YY{mF5%kDN-OU`@ybj&H2;CidpLBQ6Bg6aE;|}jva>b~AHFP$j z&l-^*jl}pHfe-Ij40sLjYT%8#8%EK)p|gSa8+gBg_XR$j-Z9`cz^j2b?yeuoSIEDZ zZRO|qc85m1>iG7G>XNSU_oc5oyLshUQ+h&Vh?02 z$+0tLrYxK9{(1k8^UGIkP~Q+R;(1Hv@XS} zIpz`L%AU5&m@%(6}^yO;@hCL@RoMoC>yk)lXD-t=Q0L!8H2f_Y|t3+8sOEy8+SL- z<~(Tk0o%&NeA*}P=bbswYYw!UlBSl-X=NmjfmFM$(T$0c5znTAu!vCj@mi4E*Et%7eg`KDKEyL4~ z>l19~oNu(WQZ_}|<&<4{{Ic~@b{u7O%FdwdyyKUxld`){b6fJK84LHF<}Q5wwBz<6 zE@jtKHbdD?%61>WY)ti+vMI_gr|in(m#tC#rL0cb8I+xO{Ib=mzo*jQQ|a%i^!L=` z_P4R~rS z5Q7>)BX4;5lF@i-r{NDN_)B^fO{iZl^z%Ho_NS|TKb@>albi)~$7(tI$6Z*3%&OJg zvzs*IoEE;fxRkZ?3e7lcmFAv>eS5(M&Ani=W-P`}xwuy|7VOd71^YQ2`;g`?LOz~b zrMu_W>c&T!boV1Ix^do8-92xG?w-F&cayB6S~f@?BR2eIe4BFL#yVZ@z2wHpeUIe( z2HlqZ*p~dSJ%6=vKHsdmowN1XODlTZsmlc98yQY~eZUKbSTDSePjjB(MZ)}E$$9eJ zt5b%3YXClMrJm)iEtc!{ZHBzdxBtpz9ie-7aF4Ioz0wN)&oJzD737QJmpS+w$?v?< zYs3Fi5n*o~?cG(Xxe`0QvrKd6;4dpL)r*T&$nWt___6fx3+}1 zQcAbiM#%3-1>BkRXHAg3dU^bDL2`CeA${ha7d!TV22%BXcHsQ)iMtb!L}7?u;&D<(ZtdcxG3y^-RZ1o!Mp1JJYddoY`fq zKf?)S&gcrgekQqIXLf~mpXo&MXLdzap5a87pV1X%61;Z$#<@y=Ec9gnKDQ8l$dAhHiFicim*f*WBdB z&%Oz{&Y2+KB?qu=X*0Innbgfji~%peySD=+#w@+^*Gw_MR;E zH*E&G&#?EHx??CB2Yp&+f(2Te1zHMuy5nV)v%s zhqj-)3-k+z&dD7^d_uNGT^;1j`gP@O@dZ{Y|H$tLZ7%=+YexOfqed*qnI*-!-15g9 z@@?q&5LYkADD9cVs;?L7>UmkM`57O^roqlWUG!NM&7<2b2S%0x!c>DNkR&>3=`p{)<$XbuGj~~Bmjg-BVvWqDD z8Ona~_+_i5>=epIC_9U?ryjp-W9J33W~9HYZ(c#By?uPY0JaDHr7ZR{Yg77r{Ic~@ z_EO3&qU>iV`^Dpzt&_4-D2x19IE%8U9=~k7^8#XXtfRzF-<0Zqt*HfGyFl{mWNoF+ zVO2U%dlY-=0`bQg3-!guIpY?)=ge5_et6zuJ{UkU4So40-q4xab zj`V5bXLW1tI4W`D+<}Q)L5-BKv`BUR3DSkv8e3;W*2t8YbkmvA1^k^hgq z_m6MutPlOq(b19oD~TPY`PDR)eI(g&6gS3AGuZAbQQNGvv<(no+>K$Bq`(+7jJ6vq zOyXD$Y0HSKrXGw775UMngHg{-^JVOZw8jZ#aH*kbfo+!>H!U6ekuZ|BP@4PxJkOCW zSytk-W%u6i`bS=h&+~bHe||ro=kw6s8}SiyS8nWs5AxR0#|-?k<`{27sk?1&{G>7V z1d%=1m%==caLe zU*-b--YVyXTag`kbXN4%&Pn`aC$B-)T;qgWHaTtPCj5Wm)5ouX{;K)e3Gt8R@XKpn zO6=2(od$P*;v(P6d4=$^k-LS@6yEK2e*Fb2+H~g7_(PZEvd4ckc5t&fW*<~%${V+R z>u=rI)n`JDM}F9I+g5XI1Nkg-m_<%yAPVId!-Lvt!3i9=-ZrsWH|rGUx&VZT}@rLE#HBC04#LVKLG6Z z+OT1PZ2{Hu81})n=-bz#Z(obPeQnJ##07R3*bK0FU`K1ib_(n!V3WW? z|NYx*!*&QPe520k zVl>$o-e3l|)!BgY+t%yNMWH@&{mc1)q2%93L}tnRq|WE@Ey;Pw-G7E0O1xH|8NA_4 zYW1zZ;hlrkkK7!uJ&aE1j`K^5h^IB?nP)IXcHu$}7)U z;`ycMEKAW@c(Y()scu`|3@8RYJM%BJ%(K@R8W+oSJ4XIyXLZ(x&Q@7tHOp3vv3 z)Dy_FuwMDI^tqopyDNPwi2eJ^mHI-Ow|f*k?+_%FY#;{H`&PJ0`oNF5s8T0L!+Y>; zse0)vby?rv$e5{HR#teOS8u$!%;@*(eWSW8(d*TFq`EBqTCd(eR+kkLUcIU6GUIZu z-jAxw693Jsr);^(Ii!EttM}9DdWBbe_256V=WhIxSFgUhEOD7vkN0V2*GpgO)mvU& zR(O?H@8aq*quZ<3UR{>Bq#Q>MX&czn)r?>9_J5rR^I@s)!FYCM38v5~I9rK7#_xIc z(dSP7VaPt#U!%Oed<^Kbb?77>4iOV;7ng(Izbx^cFpemvW^wp{DF##6J$rfJwn$ah`0kXAgP$qtBKoU=s_ODbQKn9kih;R&DS zn?c-6CMYpE5`&}H)h2ErFR=?BwTL@#Bgv0qGknxtQ~Ze4nfVCkS0Ay~njdl37H_fQ znOod=@)m2Id5gQQ_y-}={KM;sAGIQHc){w#2d!cY`Ys=1oxMF%z6qskE1F91CdchB zI337e#eY0KP3L+3Dm>^K$?<{RaV<8)wZsf9IojKD2od zU!(XD{rDQ?cMxAA{zU5&{C}tCYpnNtjjXToHLjC+Rrpy-{=}XDcJPe-^7rEFko*?R zRczK@aX$YQ_AQOBz#HuB4gQinq3l(&@D*E0j}MvM2+YM#IC73Gyeu&OXX-bY{Za`Z zWgisIP1{O|dz`ifFI2%pH^enV6Q%eN&fx>l?{vMw9+4}eYwLF&3cut1?f3pB_ux0k zb@+)Ftk@ek8_#PU54~IUW!sk>VvM{&wLyMEJF?iH@`i}`DJ8Zk{Z%K{q{kKPd$fG~ z0;6$>@l}i|J)+z0`v>o?#FOgpK;J(yZZCIpfwz6l*XZvv>ys0i8h|Ee=C|8}nUuOJ zek7q{uD*0g#yjN2>8Nkmh{$EhyBZ4KpyH}ipLxl<7XJ=?sJjbJ zq*y9{or(<)9wDYa!QOCBBP{(Cc0zyUcNWg@ z_ifyk-R%K8IXK${&PZhP6e9Q1fh}|CzT0USy0n z`Ihw9_Hwr{`w%gB|E1&&i96GS>wGnz;oaaTly{aSL&<0ALzKOpY$`S zm3CJsd!_29H1~}%_r{ktcZt;sEtucjE60@hH*)2~LfQIX@Z1YerB>OiL)nKUCSiKt z|If}n{l8L+xqp|1KmS7a-S`gp#eKdjf8lcv`32{}b#OknKyZE(->=5`%6%{VPyFt@ zVbiVXuL|GAPLR9xR5_;(H~xPJnsyj6kaw=J}P1tiMtI2 zD`UBR!es%WX?i(`5YwEN10Skc&Q#&g=tuaXlT|#~iO4z) z^9Jg;k$T?)buxB|Y053({^y783W!`!o!%YDjguGn7=C$dHS%hKEAVCFZl!NW$Ht3H zFhimzDBG^UdzwXqcgOse#5prIdCOLKHDmEHmT8_XYbO0n{oDAnIe*$H^) zukJSmmUb(7Q#aJ5{;oUH9pZhSQ1Cv+%00$rkuQl6#yowGQDm6g&%V)DDjk@ z`3K9}nq&U&mbrU#Ym&LuScjrF9}m{8cd4gyRrgKDiY%M@{uy+cBckWayw%(FJ2*!I zCq%!{`cXCxeu%Egz7wyWmOW2jbr$$_bHM)^@D=$t9rFJY#y1T&ztLGPOPN^+U|h1J5)?{K=Y+i?7MX|YPx0j$5c$i2tL%Op2F9859ez6 z>DYJc=yAh6ddl->kCSJJ_=j>>70 zckG;nYzN9|DHI$M8Bf0XuC=J<|3Vu9D*tGsWG($B~{ z)q6aDf}YOb33zj<-^62rn$!3t4a21I=`Nh9mF*Wex_FK52!qPwn@yT zYWIVTN#^5M`l0%kxRL&w857@2V@hN9t8Z#O^q3NNFed&kACu9}n5Od(Fea5>K;fm` z*Nc2@R{T9CzX|l-d^37)vlBO)l};Dv(>79YyqC6xX8?!)K=J>C%(3E4rs;f*z%o`j z|0wMfeqqCMY}vzfaF6<(fEG4c({Gv`;SNiUH_i4e;yp9tICZ1yoPTQN!RK?*M&NGb zlgJ}Q({0R^+z%OYKP2_rG@38WNw*Gk<+N=wt{&F<9FO7m!+**=rY6F@XY`;I0pRjJ^~fQ{N0?l`_zhDf{lxO@eu3pd;v&aq7CpyBXhw?9qkn z(S_C;^FsPvC3I3#&h;p{_)bqAd`|zme@eX?{C>PISIzJL#qC3W41t7w7pQkeTw=Vf z=(rJjfb#{;FyuUlchZc|sST<;^uPvR&y9S;=M&;iX6Q!mJNH7wzwOcXS#iq=52!m@ z)>YXHat*Y-Q`RwEH&(wjne+P>q;9y3T-{qteI_U|l!|}-XsrIfbEmv{MXIhb($ny2 za|VWWR50nMt*C#28|_^nx*9o94Y}9SGrk|)ZE%4bJG{VZM=xw2M9)DlO}- zBS)FDpB!twmP1$V}q0rQhu2HTzknge80b}|HbsbnEq}0=bj}n zkw^S9{U2UTeaZ(ZKWx)KIlwCFho~Q-et`PqN2h+gqJD__ln+vVIN-GHCCB>xfwKOW zP=5*agVZMu2$;wtfwKOWP@nQa$`1$WpEo`$>XX0Re*yLDs9#6_*ikd}>5tq@_t%Zx z`kJKTS6c3^3)MFm8&91$!5Q2l?kvH9)G~YPxKBCALn~U?{e-hG2|}i{?_ZB zo1-6%=T-egz}wjU(EI#i444mb2v-t^@E-C$>DYg{M_M)?MK4wTc=R#f7zyS>KM&E* z)AaM4x?@n;&tXM(RsF=74>{ABkB=AxA2A3%Vi0__&hMBHFjoTe9v}1Jy_l-~QS@8Y zk4LY}hkka_25;i_fB7u^d>5F9fO(pJo|~f|%?GObi9pw}`+Zj5uUo`lSXTdgEVuvn zt=jWh0ZctGYb@(^ujaj)+4J!$ep1zs$3K`4{p_TT1GMqwv-I;_U>*YIY5I9?j(!d+ zzEssuocVOA`S_WSpZWNikN+(50j3_9HGby98#h(+fq(V-tNLk!ABFGtTYcZ9pNDAU zY1(-1Ed6{6n4Q2Jpr0?#(U0bnRsE3n+lfd&ziu-hoB7zx$3Dw^fT;&&jm>=QIp(AI zZB;)We`P-O^AK%3O&iahrJqj$vlEyD^z-F8`q6y5s-G_A6Ib&gCh^Ju^9eAYz**)4 zOg%7b0?a2c$9xq3ujY2&%G^z$iTb^>#Ne!e_MKU$7d^%FxbMD7o; zKSAabWIjRWqhj0TuGs9H5N_WJVCsQc6J$QYIp(9}QB^;l{9!)y^AK%3O&iahrJqj$ zvlEyD^z-F8`q6T&s-G_A6Ib)8V?K4vr;hp5on?Q3sRw3F9rLN1V?IhgR`uh_#~Im} z_)4gLXWi72D~Ch&uDaBZ5BRm-?d1z=7M(2pMyKi03(lrnTWisMJ^fnQR{{G5k*}g> zd*>*dDWAT-FFrXZ+{$~e-T1z-MPAC=5qFDTUMPr8j$SQsmBgrKh+8eb*ta9<#Eu+M zb1%GB=7axbyA|u(F1nD@;O7k~KYHO|KX?1i*p|`d>(S0K5IOsW% zOM|SR58Yq+1{tFdp9c09K90(FBz}Qwl>YNy%o?TFm)1yZGwzOVcNz}!jt}dg*6ER7 z#5!g0D}2;B%YA(C?cZJAfw%72i5=(phxTEE1fMy>y&@}g^Nuq;_HpdHtk`#3#14@+ z*@$=E!k%mi^}WXE`R&cvCz&lFJ2N0Qy~c@jYifBTbILSOR`%Tp(+)8PnT8oy?&aEp z2DTwMHC>;#1h60Nu+j%POUFhuucy7&U@x}oJ`xv(xR2Mfb+aixbG44(SI9J5z@xLq z0|2AW{+&p&#ffcdVN5NIscf8SVjnUgzLod4#EK?Y;_Kdm4_fj~uCQX66>coK!ind% z5JR-Z=_qa?hDgd+P`;e<<*cK;&$I>q^A;yulyze6WosGDU=P^%w2L7tW-cM#XNg+l zEAcVmbD63;@GsSCmTn{mBjv;Rrg-aD(P5$?Wb?j3(}91ZkJ;;4=hU@YA-l!ORn#$p zzzzt`dpRusj=tFE40d{EVC00vb{NFr%C{R#$q(#Cl3O;~MmqIb__5$FYtH^GA@A=N z;>)(U{ViMe)RSMj9=$tiZrxM&2sUGKE9=Dk?h|*`B_!HQt<+xyw54^a=S|d28*Ky=NQ^vW+ie}#HUMb&Nw%~v9 zGq+~)C)?ioJPXdg7ub;`~v&i}v#BXH$2J17x zc@cJa5q#txruv>H9vlDOR{UGEm0Boqmq|;*W$^oz;EcDqoI!BsT%GrbKSSi$Q)!!T zy>bqPA7xN|^ZMJ&IxruJ#Vfp#vzD(jC+2BxnOV2O6J_)C)-pX6vhRc@%jcQ+0q^Q8 z6k1k(P=%Amq~1Huh{DX@e<^3zZ?@(An5jGbC+JVkZ}fS@J$>><6yvmsFM8&T)gJWa zp4q{B+oxEctRe3tx@Bi4rF!xXy>-u!s;Bu@ARv5eEPGtngI~?6_b>Rd7URcSj30~l z{dnsy)*W&p$&lPF(f-#=gZ5z>J(i-w**q)#ZFR1<B+J?aWhvIoUQ9{nz{`s7=Qev1u? zem}jpxzsoKev#WZ+CbcCgWEscFhjqYMoquPMmI)&VMV_td7XuRlTB8;32zhnP4a&3 z-1G}=FPfoYjRzWUO=zivx9Rvi@w@Xp@w>eYza!v5$cn&k*=zKR5cUqbWakqZ^26Q#>UB z{~g9pUk+n@3H;!UK)#pLQu>SXUenw>qOd}EjPMfLD(6S{;#0vt zk8R!o{r=O_yofRd2VHvQPg4FAYoX~8x^iQht|Z^Q6&niXP7gs>$2@whqO1An8~E}>`P`;@(hc7A0>&nVm(8ecQ5X9(Ro{=IT`9Ri=`sb|1n zVx*<9P0=aJ$M;G4x`1!x{e1#GV-&7o|N+QtFxg3@oS7t>lrD{r_v9>1Nf%-l(i#g<-YohcF*2m*h z;lr|z@L%){{MSy$6VL-^TSs3}rvQpSI*)8}&-x62vJgd#p^SM_HGYr(b}F)BN|5dGgleJ;H)OZ&%USM0~ZJ32M#~aQsX1u_5FJ!#H4$QzV)A>K)6)9+ci+T^} z_D~db32oBI}`tS z(xQKKm7+fP)AgIFPkE8@4Ci{(@2IHHxt+=@GdZ_2@iQlF?wc=bUW4~u8&rn{(HqPVQnh2Ej&$*q+xt)n0HHpuQd{&X7KKIl8FQGo=8On>C>rua> zqCWE5 z@;yMky3MB3&__M;OVtZ}19_q3_f~Ql2|V8$<(Kd3m+uYKYuaEs3wHyz)7-N_;OluK zM1FUYgGqh|%{`0c*Ka!V`^X@5h4-OCI5*9-(zjoTWieq*bbLq7hHl~ zdWp5xyu@8w?6TsSE;pX+f=_mfJt6c7&9Y|7j@b6%_~$Y5nvRo8`S{s$jw}ATdw%&+ z7605kzkI2Re_jAAKB{x&99R7F7`%3zxRvANH9a*Q+f_Oz6@Pn=$R7CTym@%!Ja~B9 zdGPS?Ts%B+q?(5ttyq6dBdXOcRz_;_Lho#29;-#iN+PyemcBtE|qAKwli zH{s(+_;?aNZfZW>SkA{Y!sChGfOg^Y#PuV`%lWVgA1~+gdDgm|k7tkr<$Rv{oCD18 zQ4>C1&gZG$RbIb{9LT`uGw}H$d>%f`9ged4@bM&kJP98+@%O;TBjtR&h#bgJo}s+R zJqGG`me)_h$IJM=FRzGgbUIqWb-AyQPj8H_xE-XeK?8pMv> zUVo_-mHk3bjy4#Fvgvg0R=ZAeg7p0UW;4|IdSm0kTY|a93*MySEt~B2TvNi{xWGu~ z7OW@6PjZt>Jm+)d4}Ok1Q8V?i`t_;R^|Z%*>QXxm4L=GsUS&)L>R;%w!^xf-4;Vf6 zjaF#$L6i3l&>!&=Z{EPSyLs<+x7Fjnm2ZcCD({rKQUA}hz1aIRWiKlEpFYX=pZARK zGgDiLkAr_nPNmfH-4PG==QFU}1L!;a^VCv1f(>!XjrdHN`+T+c=vi6>~#s}3KsxI#_>T*9mIc!<2n>=NW9}ejH{-7@J4VIN3r~i6g z-dnHB2g$`WU4M%H8@>J;z5a>ioi3lG{{_1I@B**@g=OX6r~gG>|IJ?i+SjSa_fPb{ z*z13>*FSdubo>86|4Y37mw5g2F4=VXcj49p!&Ur=Z`7()d5Z{m;_) zFP}C3x!^xq2LCJN@XMy;{)~l=fFC*v-*t}2-^>|)#JA86c%e;PGj|9=fuNz`A4H~~ zt=!!-=Uo*9?)8TISIZuhKCgIM|5`t(4g28VXc+fNua3IkQ*{SsOwHk159X)(_rbb3 z+tskY=C%8b{%bY~%14#`QoeR7zntW_jgF6ycRV0^1@C4J zb03QHhyd>e2I|~cc3AwjA^Z55)Vq&0A9@`y*&V|h`>EG4G$Q@-4mmLf_$_|w))yz8+^y|jPcX4lgmlYL! z1$I|J-jKF7?j{x`W3!N8Z5)z6Xd)e8`78Y%RRrG z#aR-*-kgsdq`%4=tqWH}pWD%I2mIC^&PVTg9d(%NpX>E=x+eYd9-d=N211L9_%tT% zjbBO{p+(>PGbcW2TVL`S?&n{N{jgnhbo7@A-=QJyBMc33Pk92pe3IOCNn7-9+CtYi z{pc|8hE4d(C(&(+rW0CD%Os6e#Tlc*9^X$VRZghTlp9Jz^6glgGY&-!?}N*f z!#BAHQ~LHH2S1hI9Qc$4SN)Z38NdGG+Oh}f1AGh9ZU*}&&zfCHjL1%ON#+?g#rH)y zzV(9g-CoE%fNjRV!g(I{ki|N=ktE|W<&L5)dmu7XjellNACfsK-O^U~vuRUe61+aW zyZXrDXKABC-!0wcaqu^SE3CI&;?Gx}Wxb!5w_}73a)In0az?H8DQBYtsJ$|Nz}Tnd zGky9M?jXn1I7|B=>(4z;*8C4xe>HDeBd5*8PgRt?V~zB_(9aOEfHy)Vho_{}b9Q!z-cNhy49xf)LgU0H`glDtI6Ku{$58es+%?IUZ?oupUAsLPMfX9C+{RV$Y5E2>C5S2eRy|V_Md&HFZi5l-z>#4 z<-nzK{p4BdU`uBLPUkQ-cPl>F?w}J%^48xb-ufHht-tN?x(s|$efiT8c##^dpUAfgc|YdHl~dbIV#lpHzB`x_m12YzFa;1s5_~89;_4c z0lQX>o!_njY+U3)8*Aog&B&_?&yrlO++X&_7S03TEx8*^p>@rxjESiw_G!t-JGCqF zGu|84>-whyAL2xYSvM<&eGw7}<2GGv~Zf7!Jtu+Jg+M;c-N9gCawa&ENbw%NC zb&4+c1T0UNxI@3wtaUi0-@qTCOV+I4NPSe|rzpE%137Eg z+jR_>;hxt$WAto$l6yDD^qri87cgh=86KWP_m#EWcpN&jkNq=tn)+LKn&N9pe|8^~ zoJ}F@pwzqfQ+GY~|9FWut9h5in8xZ2p(S^(t?$ugWsc|w@E>L4#aJ)CjodBg3+W%_ zSUYK7XpS|g;$52WSWmMKReAwul9m%sf_va;#{hV{9XX!CFEdQ86~@rF+Xyjd>_hqp zql3UBKRzB-^n8ciru4ae<9DTuY+UKB{X;otfA%iTO9Or@>K8g@Y|yGtev7PINq0%C z=Ny*%fauZou`}{kV=jw72VR;(C)R(n-W&J_f0pkOhd}Jf@iZor@GO*3~ZaW#$jg&I$gS8=_x z32YPe&E9fvGDPnturj~0Be z`UY$67x-AAUqO==G-<)3EO?X!kMhBzeDElV6H>aD?4`&I9c!8X)6(8fz1jYOCpZ5@ z;}mNxYtm&h7S>1P8@^rmKI7q6_^6?L3Rk$%4C9=}yQ3pF2oE)ix;(MN31^TggZ#@V z{?1L(k-UUY>wm29=ufd=&OCate|Hsh{w@`{sBS#-GBc4IBu5SvEvr#?UT zvSr@PVepuug`Dua^fBajK+%{bFwnYsi)q8%M$f5z*j!2vS9}W`P`cK%eHnQ2C%K`% z%5m4UG4(jCerWt=;VJA*09)JtB){nDLE*hm!aDQAmuKRge6Ql$dJV@%glFROR`!0*&JN32p!0FQEezmCDYN(AHNIq{?4OOj zFKgYN9UcaPk(}NGL zI;ig1yHV_YdwiE0L6(qDL+AR?bgOh=^j3)*v|>Ab&=zCR@&!IuXE_f|e=Dtn8%fUS z!Px$?cD$XjYpU+p>5%MAX-x1=D>{#UR9>8!egt>a8brk>fNwzfVEiC+fWGVYPwz*? zI7IF$Te8pFmqNeD;*kALO348SC$!qzp>*`?t112GcqcrB{;JQdjmxm9eO6xv8jjXm(IR*YU-|rAa{b*8{ufLsv&8;RN6gf_ z4q$_UlMXi>N7)c*^j;( z0CuLHV@vxYlN0{XT?fhY@TkBn(shpW_e`DgHXP9{N`0#~66_CqW2l&YNAQ{XDE^}9 z>d1rSDg*}ob|~Q4p%1PArslmV#Xt9h=g^jOx9r0ZIy*e(V|KI1AhkE_mAqBQnPCI= zj!ArBz&&tS>$wdlcxxCPw_eVn&~X>m`;n<9N`1lGUq(IOf>`+O0F)Irvkp=N?xPJgj%Cq@m{>S0fckON@mYvx7Bzs%WzSSes(e-x;-52(_eM$UtTd^C3$JkB0 zb-jexw?q$bzTvmQ|3LXW{>ne~@qIr-&q9B{)kuA2H@2VnWO$#Wv%%vd4H{SXy}`Td z@(Fkgc{3ExNW^B=r}WK;(*EhxU0KuZ+hk1r(e6`XzlBaehn!`PRz2Vs9g(%1_DKmJ zL*Mf;j&q(FDW03W{)jjZ2i+nPoGq{mnBlU0lpjGfd;*`R2Kd2X-9X^E5 z&Ak^sDf%-01;r=PaTP7@d%ZV5^nJd0^IJYWKlrIf56fuhr-zikY5ebU^8JLYc|!7| zXdjB?MYEy%i2NqOXZg)2nLzF%{Eg&NQ}z44j&BW_pz{4*$(oe=R%-GV<)an-EM_ym zGTt&+&Rcp7YcKpI>hYH~9)DT$pUPkSioZlX{t}&&zxZUFvOkKygvkiod)^c(y(pg`Xg|G;LeYdUC#s_muX*#ddS?4O+25=5ZKY5dF*FkoqIP z&suZ1p1aQ2Mw~Sa;#;h*_oY7O_qkDc_{ZVpQRsH}X4RjEUnilTpW}zB2S0sQ^l-f{ zhnLspKmR&c*^3)D{i<>Ip69sJ$Mv|015o4coyWMZ5Z`naPd&%DIS*6oUB`M8vvask zuXpbPJ#PPk^IUII^;oWWhc4Ut95gp;obGRwWPV8T)4X1%U{?FZgIQu2!X`P=y#9ioKeTX4 z_JF!thtq3ItWDMWy`|JXzAW?*&c|X|wNLC#LfL^IJnEP8RoSc1V_9Nyu?ruwiOH4U zEHSxHVwXOE?Cpo&AFIHNQvae$39rZv>b)DePxMUVw?%d+UmSb`neyE1u{hyYQ;nzH zHhO}OC33+VjMR^x3RvxoC-|6=d+U(7$9jfe&I;A<5NB1-;6FQRgdUZ#%CC%7{mod9 zGS)+K7Fjh`WbpKQDSaf6*7r8apQUpDsWBIROU^9h?#s-$f9sjqEIh}W72Y~)&3=0JzR>}Gar<}etg-yRuzy$7*gvhel=a3Gxz9D=!S2P)+bFxh-`lSHG0|1#Xb|dinL6j{H6{NPPWW&<^y+Ios@YK;NxAa}fRw zkI-w8AlD?iEP4~N=_mMY4DHXux7~M;w}I}i@(Y&pu2kUBX?oMVN%H8{;!XIws(4eP zwGy{~>u2+&GvSfKEBBZW7&-W(W1i*?fNk!9M>_Dz^XHT4<&|SOKRziuGV~qB1i##4 z!TY|$n5<>ocVJAuL+p7_@yVRL4{IL6XAoel!YARYFPcv#$jb8J}GiVt>N^V zoiCqE*t6Db-hA>Guz%0b8q0a{$^S$9ce2L*Rq>%v5MBkZOl^CtDF+?NJHv+pCb$zg z(Q_ldZSb#W>v5y!X7q<;JLLT{Q_czHZF*!hIWV_Wvzdz9Y_j5m;#eeTTU;gW^!S~!* z$$vxeM>+Qmy>+LVdu*o}dfTlg{Mp#E1D^Y~TMcK&QhpoEJwr=PX9yb1UIyJFL$U#W z>&-ob=s1I?jXf^>`>lL;;VWvo z_Rq)w;~_l;zp^VupB3K|dx1}sI2kpb+ze@iry5+wSC(Rol8Q%IBZsu&b1^v7QeX*td>{p$2KWxca z;&R^gHQXy((7&%UQ_JtIOWj)E6hc21-FrmA7;+EsQuXfO5bq-dCBBUJrQY@!@daVd z!1r?p9{=a<`&WkS$AhUq-XGCt=_=0cLe7Qj5BZIBDzJM=PQ}0(v`^b=-i7a3QM1X7 zCYzkd-i720Uzi*0CD!Q9CSo**MQLSR5$5_hcO{g+?=i>d#cy({sqZOm26nH!A=rY= z(&92t{L3x)yqY=VZDu_dYh4>V+4Ga=*bC#eR-fc&V*D!)E+sBT&bv)3mc({6iG$`G zkUUi6z~wBJ+*DrN4CVO#OyOPV_msC$9)1Mh*>63Qx;4Oh;Di2SSr5~T6*Qh>Q z_59O~W%K_U>(j{DBl*8d^T)oC`Jebc`6y{8tYSrYkIP%f<-1?+rDG1FL-p^VxR_L|)V8HDyN-P|)<;k*K0XI;Nzm+_MBR2@$q?=Piz4*?- z_s`y6$NhrloP7gxEtMyl9p9boU&M4`mzu&0hyjtjT!z)3H{AYV{H*M+d6@W(3H;R1 zM1PU*llZeaC+|B64rK6gKLS1!%{>;d3P()tJIJ@BPvMZt?Un?Wz!3u)@_{drC)g{A zMN8Y8-@1w^H6pc`NwW>g|tT^Goj6_h$T|diLk8NGov{e((;Tnc?xU^lilb60_26lIshb z0UQ1Td?#CpD_a^c@ynS#PaaWzJHc)C8rbc?4g;I74cjKLMPNsPod9;SHf%&-P2PYw z32ckc?QgC5287U&!qq@u037rSe&+($86%G?y8d^@=T9w;I`Cc_JhZ`e8(g=om>FQ- z1Jp+jjUtbV$fXHQw}IVWTgB!aZ}#c768|i1#fUj0`8Nx$1~ z)`pckNqu=>hk+dh7M!htlNEcb;{TyJ@0}oWn?g$_>$2YT@;Us5W84XC8};BCZ8M(! z3BT|Mx3B1Tti$jR;U%MfNAVHH&_C?o1D`>*uuk_YUW0xhc~Y5_AxC&!5`!4aN8?pA18=1Kl;wa@p*`rm#`>{` zL1a=bGleJ+Z0t?;40~jy#-+eav z2bOrbzU{yc1Dmf6+ac{1fd!}gCxD%-4cjTOChxYK1h&P32U#`OAug~H2gWgocM?1O{UbU3E zOR2k*a?VVXJ~x&@CKkz)M|mgZamu?UmpbA6a&><&V86lRx65+@Vq`VHMNi83k>3qg zv?%ik&=xddLLYg?HtJ&>Dt8}k+b;R=td6AZc0dE+N$wz?WR4(lXG@ii>%@@5k)I$# z{fv1DcW%G`4f-H{jB%>*n$(AeD)r(@y}3#+{@g>1mvJT;r>SXI?odkpz&6Gip1^;e zL0%+9Ua;Op-j>MI$0)jY5gmg4P`Lm{`3^jH*{jEtUk?0o;FklxT<`sOY42C$M8{Ek zPcHnIWA7X6^^CWC?^m(rtJr(;{hG7)ekJo<$=$e(D%&7cc@IcoEpjJ!dS z^m0G5{~eTfQXZ$gOO=xwI_c$(E?!9e2I@CZzk&Kf`|MR_HRE0F#!S{ekNwPi+KNrk z6!R-yMEOOOUqtyu&{P97(!hKgpb`GxiVPhl4+HaT>*gNy0Qadk1)aL>i&D2Y5$kwD zcp!Q;^xigTqEnkLcm7x_)(Abqlb_gEHnN@h7GDydD79y?FT~bJKNkJ4_DTO!Y3^yA z_*^z;XZ+|_+IOJ#!FbFG4=&(d=K{)IWb;2bv6hGv$wbi0BTl$Air(%x@uY*^?l>I- z4tl#oxkI_bnxfZ_mUQ>Ph_v>$hU#o z@(tZ+-f~mvU##JL zuaoxTwAV#@;R#PpD_cO?3n^Pbx3@-(4LiVEOIw|Dw1vLI*p@K1C5+8$>y+>vX=}+$ zTZM=ko7l^X4=%Ujw6}JS_RvQd+Y-jMgt0Bvd`#H_(jGblwg7h{MwA>*pK-5d?e6%3 z*aAUp0l|?nTOjepYFohg0<#OgXmI0r@qV%SUxIt0A-sf+aAOYsQC_;gABzE z0Ja6#ZeWwOVIu-N8F2e10@wio?10*^Z33GIb{N=EV8QRdxVtQnCXQ zpDD8gXq)l$PXs(W0DFJh4#3tI+ki3j4`c5uI{&muf)6uwhbIuE>7 z={=qufUcnI03UcvK3-)9z|#*`*a6~W;tkX~H(ZQZ@C`STj96>T2zCHCoN?UFq+_i$ z9d~W9&5C0u#FK5-I_!jX#a8%D)UyTP5himj*#hZL%v-mXe5ZYzp!=lHf|t1c;8BhB zb|jB#-!QNlVDrF^)`pD<>;$l^RsSTgCu_q>-q*es_=#y*=-}7_wRLOBC)<|+b~~`c zz~*biN}k%jBCw;tP5?Vu8&>k)_L+_+b$}->jpYcfUr#b#TthtK``N z^;XQR2PZ|2BhQiPv59JZFM^&L(|W4YIVrXRaxRI?%UD)>k-P_#cTpZjA8bP(jO16A z*#a{DmC6>-{QEhJv3s_F%!7LhN$A3aM)K&(j5E$SJ14}>ATKrZ=tu_L4ih?Ht-?z;B5yz&MkP)1zO>pCY-yWj)DR zMLF^(De{N)E(V+!6GY}rmsR;g!H0RvNG11L=O-hT+?z!1 zO$4lS$w*|~%)Xptye(yXZ3zEufVj&?wg0v)zk1&L9asBuPCRnKONr@px&(ey`4Qo- z;L@b8=lDLudIK`M+K=qnWt+Ljsc7M%8CpocL(^sErSZWA`v4MW#q=sFCa zLuP~bC7(wGyD^5{*n!>HIVpDMY(BUe8eR<_48sS*@PV+VWt+1z8GkWcHvTuhOyiGh zegY3C2G;d>ozp3{r75|tIiD@vQY_%g6JyNXS;LC$HhH%)vRNgG(~ zql`_P;=@$F5ZdIM$$FdhPNc|r*=RHEVw2?;y6cklp^sc7J`m23HgQgqT&ir(yOlp# zbZX>=yiaJB-Y=B*1Vk^wMikpHBkvdTz9BYdEGaSsn-SZugYr&Q&UzQI9nFg=zZjm{ zKz-f^!**;F+c9%7CDtS z9oy?2-*C&GrhJRVnJKasarm9;+s$5SM_u$ z-ptYSeb)0SqhFQ2rJr$(nKn2lMjsf3c3D%UGt!6B7t#OvpilS>^bvG>i-Br=d-6PJ zzV$qK$pEmM=yyB(;VgQ*;!$~E&(8bMN$cD-$vQ>%@W7D$W_-}5*00q%C7zTuapVlI z>r#9i5jnrBmXGHtvrGDM$S&F=HwYgu><2e&eSgv9J!82~if{5d!A;|8_8gz8*zX$m z*PF|vT2xkTJ)}!Dz^Yt}U;2pfJ+9!}H<5|X^%=iSh!z%}v z-=?7U2_%CvK7sC__6f9#t`*ci0c@OUp8z<{nTHhA;Qx zI|1xuZP+$!>S>>V&~b({B6#5AO1^y&9#HQ_O>EF4HfRQ)0JtJHDDPc~jp}qxf?uX* zYiIBYfPdb5R`3XNYEJsKPoRh{oWUoML^r}F?I^AS7db=8fR{yZ(8T5kPb2sXV%V!4 z*!-Q7_zYO{SP`Fq>8D(DNzR5S4|4|7Hpy8Nc2-t=x^h0K#*dwa4A%1CS&Ol2pFmRP z!5E6rMFtwlGd67Ja1r0Y1U`WzZ%r|ejv_t*=pa7H+)gq_p_!H{`+jbp0DBo_oNBz8 zsyY^QNV&{M>Hc%X&EXS}^)9lW9{sj4&M@PgKJPP;XGQiS!+s>8+dO0R_CwBNv8mAk zSSRMyDL#Q&W5NcbJ+UX$Io6C%K&_p&gB1TxU+P|s-XMPBJHGIC(HnBe8?8Iw7ucor z?`!8R<70VjeG?iwiJk$CLZ3DD46zaBtCO?|Y=(BXLz~bj^m&$cu|JEzjsiOY>||}& zSRPmt8afH=Iec)O^Ua%%J4l_TDtpn$RlLnrfK=+tjder z;adxG5&77koGz=fZGUmV)G{3oLIhX#xEe_ zFSeD9f78n}{w~c^;N!%JxE{ZAh(WdB)ndCdCVT)%{I}XyAp8!V&$kS`3crB7*%eLV z3sB$i3lxbtfsXM30H@B4StIzEe9Pb$$Y56&iGL8kKr+BQ>8psHoi}pNufm2NCDwRT z3p{GM@(n27WJq1)N0D=7^Fny#g}~3Y{pHPJ&Xvtol*13JY=73g7^b|Ha$+3w6}CU^ zw^H6pc^l1V9oFibY<$DIKF|ld?V{Xd099^=$P8yKpUcK%Ux6G1DbAyrbVAD_ZL97@FD1?&h1SGt99}7;RX5g;4zcH z&X;$cn{J6 zi$?BN_aH8Fdozoa&*0OMb?}iz$bI}3_zYCviHG6W0put?rilP@wC1@eGz@;3?B_{f zTaX#8wf))350C`58(iE3>_BZ;<)h93yB*kJVDq(MvAt$|1{sN8(LMt$bLHHBQEF-Q z5_e6q*;-=?9~1v0Z~vLR&zEe0PKoK6@zH7?tIqvtD~bF@Usi1ymq=SVKRVOu-5qWx z?RC!49y$Pe?6gl;w*>*Qv(FTV(E9+FCnDTWxuKlK7TAIicGUpMh!% zzc4-n)m9=pJ+|iE62sYS#ph_RllH_{?a3A0o{A@yv9;zTo>;es%x2wI?q2Dxqpfvw zwAGexV{FJJE#GuoDuzJXLN?(mPPckANqos>5IvoD56*FRr(+J9@sBoxH_h-g=rF5t$2+UQ z=e_~THc_^{8U3cYrY%LZCTY&8bHdz~1WLw|lB6!*&^sz;5zgZhLCa`&6hk+dh z7TT+E23~=q=*)BY7ogb^k27}9_!mynHsk4^SmebVESm8zj4twG4k#a9`4)sEVNN1j(t>o`1lRfH}+rxxvl&Q$Z>qmu}lCO0#3yo5c__(I_5y%S=wMlG8)LmQbvEW(YZ4bECSohau$XVxxGc^BopXY901)=e2UHe-_9 z(SA2s3H-s6QqH^>e~j^CztVTii4|k?9i#6U zbB)c|#=;LW?aDUR^eg(&qN(NfSNUZgN%dAKV`zroael%Xij0%@Iw=>uOZXx4C@x}M znV&aL-UFo{(eKdhiazl#S@>IBwWcz*jM%6hz;`gV4q_ua^qQ)3Xc<$7(or=Zc!QEV zVsqZL_of-SgT0wn_U5~>v*s%w) zhHt+E{FuSv&e1ry5C<3H?ra>6jCO(to#1FEINC{hB@V|a@1i_B5eLWPP9z`KHKFn{0NtufrTG<#{|GhX=%=vo3f*mu_F3 z(@Xp7ls$g8($_-LwnOY9Q)@5}KK}Y*F%} zb$+r%$%}c)mWYg@gu5ph?{FDD&a%ln^TaUDlO`epYo3$VTxi!jvje_6=-K4Z#XwNm zN`{C( z5WgV2w{22lo~{Ph1G%3p!5&A3XuF)UJa%>wTOz}K2eGxWxx27Y<3(%+llwrUoXZ#S zS7zud&$lA{8~Zg61>g6`om!|?F=Og2IzMl_KT7+=ayY=#3X+}vPJQ2WSHkW(RPKR-SjsFcV%52Uxd3Q z5^o`Q9Mha5pC5h@qhV1;_FDE3UkH3_mOV!~_oGaBT9Mca_|`0ZF6}LNU{0m&ALzYo z7G1y`(fj!-?ngWhZgcP5yO*x!VLWJQADiGcxU_d6^z}fuGdP}`<f*OO3(M?OmY8_EKXoR9lH=HMW-{21B>ksK)kk#b78K&v>$C42HtHLarhPL(}se z|0QEE^m=@3#z(R}XrY(7_#yuP8H1ttTH*VQ|CJaF z@0=8!g*ztmh{4c4x>eIL7@zsVhp?GAkIF~ zUxSbBl^BdFpUi(s490YP4Ci5C&K;FM?t3o!po&SlYv0@cOYINma`UzkA_9AETE`!! zV`O3iKSzuV{yOaJ>O4#xrTZt-aWeY;iQ-x5&X+}A)!ElMyu*!MJ`*bw;rydboqt5I z?|j&R*yW~<8!S7sbclta99tb;Q;HibJBM^SCpiPEij{GcUrzJg)i28&0(LL9B>uZ3 z@gM(*u`+GN>R1`corRsAyM_0bXUEHEeem1Zzb`djrZOI;I$nl-DYjWL({W=-auK|= zcp3aMya7Tyzb$by86#!bubT0nCB3*Av)q5C<7Rf9!LL(z%?C~_`umEw8MO}SzpIFw zQQs0p?1HkmnKWnV-T1Cru@PE=m42W90x>fhU+$AN!B%XMwFup68~?@E<8!lPh$`ZL z)+_myf)`ZB|Adu2Ru8Yh=Oy=rGUDGNuZZcz|9tXp%}30a5?lOCMGTSJ!$OXBy%-|s zM8^<)3Y+m+d|sUEW;nwh=B&3hh|i0-Z{$JSChmj};Ah@$%licGzU+dH0V6#&K28kw zb?Qx<)Dz?Qj@R>^MwEOTl9w|39eJN#-U_(hAl__WFK?&&Z8`HHHr)6?bK;G>fy%eR zvTw#F-~zw}X5b3fTK5k6-FpxFL-uQ47~9Zij%EMSkhiKs8;+lmoPkqK_R^63y`PuL za<`p2le>|3zHi&$8+-Lv;EN_>YsM!`P9=GZ{H~vwq0JX?Kb7%6dLe$lBK#uHm`ypm z@T>9HXaC9RY_**>lN`;&RwGkFS-*)sP7W4%vr>F~#(QM{oN(R`pOu_{>Rbgr$5~Cj z;$C+sJ4jvAnyH)EN*&I6q%JZmDzYmnvWt5gdHSQzNRfE;3F+5Y*>8HFR=?KKLGF@O z_MKW1WW5bT^$|6#)RKd;{+H2))nk)$QQi?Y*uN}tf;j#U7`r~I-mp$waA$~hleHUB z_?q~~)Dqdd^al2=0tZU_uix$=a*@VtHx*MXYn0`>ii_oeS5z z_;og}I*)$Yql*1~-FftD&D!59YV~U!?XBM5K=Ah}_tp@9c8$GF+&uT*rvFCoZDHAe z?%ozItu@!#cw9|GM)!HF@hlojtUHf>XYFlz&3W`YYi|qDTK&$sx4xOZoiYx7u=c(h zHTKoWPxi)M3*H+IkFjr9tLhf2ILv8>iS=h#>3LOauS(-IRsU*6bI z*>7RddGt%&@_r4@!{^;^V`aYy&ZFneqo`ZaFM9a=`c-{qlZ?@JOM(ERT=k09X7HYJ8-d%|whZ-7Q7^~l4hIli2YDt5B zH?$%9PkPL}@e`1DtJT?9OHS(BjYh8C_UMwb$CdBX%-!1XLWnnjrtWBXf%CzwRs5=1 zozea-@3UV$U%WmSPKV|v@BexJYh5MppRBdkv)6eJdH;j+=yw*cD*Ufn{aQy4b2lMh zp=+cXf^S!P3^weP|6tsTX8ct;0=fw{z}rQy68!)jM(I`H7W&hu|B&c^JInPa>0?g) z>DYP9YqtJ0QEOha=QPK9exp{ubLmf0O+oB=^s}gGP5BN+s9Qs}UWcysX3bNkb;N}D z^5@CR2CdTCDVmWs(n`-h7b+4azmRbAX)DS=~=RIn2{H}Pr zk&}1HrfIw|mfKnXLQj2^JAu&no%M>wMINZ}s`mv-e98EBXeBhx`}Ls`jSJ6GG@f`+ zc!j*NFtu1{Jnfstxxm3d8O}9L>!p&D5e=GpBhQ45`=q%w;s^Q?4m)s|Im(XJlUN$W^_5Mrj z*1TxCf-VxuACR8!zK5pgoM;X0^!sx={X!dM_}RM<{9GBzKB9H68JfrDNzPX%D8o;5 zlIb=I3(jkf6+EX=nGkKZ}ZkLRr+&TKYv6C%Mm(K+l)ZCCE-4%?td+Tq-S*28rwRR?%Lg&2XhGz!F=>A0yEy>jccJ}=GSAA#8>!vTCZ~yF< z$GZwoq;`FHQO~Qd!iQQ|P`xMV#q%8xa;4UOd~3ernqxnHJn#Nz@cpq|Bly*LpE)(y z@Z+8@|92BPTEVAsgM;LUsD=B5WuX%8%ld-%IrfKlZypx;9FpAS>lNR8zZ*^ZRGwqO zqv`L7-*M5+KJfU(CuN;yz88L5eLu126GCe<-xKc@8S#M=pZr$k_rkmN_iM?wRRMp! z{(dpOu=4MPt@``-KULXpVvFwg;;&SGFT6{S^ZQ?|{GJ%l@ZbF2w6CpM-s&l21aI-9 zhMcxMG>@Jw`71h2{-3~S$^Sb{<*UruSz>qLKliCOenQav87I~Pe8#Z$XBQm8SKHJ7 zDC_F^YPawXGI#nyOJkm|cKo|N_Wl`P?U6oWo13}+5b)=+n;Vd;{AL^Fj6}t6Unllg z;u00Rc_gc0mj-;f>~3HargdbTJO`>iKE-4Fe~D-JrQZ~?4Hb_I?=s+B>Wy9DPqW9F zDjVaWyP)5pz(2@4-Bv7sKREz=pXu(iCC67C|F_A_ZOfZ6spSFw9_R0@{<~TJ?h8;J z@X7=9<#+du`*Q*CHh9?!V;he$&QoW`cAPSDhn_hT+W6F&p6hv&JoxC(dmcE-JH7Zu zFF4Ix%FDPjDDRdpCDxUB?(eH-4E4Gl*&p=F@NxEL9KZT8L-AeH)ON7!qw+BW$Nd!L zhn9U*?}wObAM`%*#*x}b%_+8BQX|9(Xs+iT1CWchd6toaTy=LM{d#=FoC-mAjjpSqeg9=gm()q#f%jHSL= z-b4ww_u31s1LF%)w>S7g$L=+AcfK9GvjZiYKL;Mk8%`oOMhtak@}bm1+Ydjde!*G^<#kfLt1M4Jx z2`w2nQ}(yeQo@O362$N)oN#N>>FU1Ri6<{7#{Y7sW8iWpw*7L-FQ@!+C!D{WI|~2J zy=R>JN&N@%K|t z8M()XjIn3<{+%KH?b-brhPRQ%o(%BswBg>$(r%Ww zzF)3(`-sP<-8k*;1Lq#yVT_$-UXL;FCwZq`=DTc%S_fH!v2Bl0mQ{1gJ(gvyo?%V) zNx6EreeC!t=2scI&FicK522?bg+1 zhkJEPhxLZm4(Z!j2E5(ffxKK03cQnh8$$nuqfWzsy{A5DJN4c6p1M}sY0BGs8i#GC zF=Ov(*lvgHVLMk*CwdB*yf-(oHkpjK9d$r^(ULy+O+U zH+%0MCs$P^`kzy~PF3|Y-KnG#B82Kb)zzI!r%9&>h~sD#Np%87Bo28%98FsU6qQLF z0Y~S~t;0z-1kj-7?Z7!k?+ zu6?TC>5wpp_s+e4i$mFZRlQu_T(_hyh*iWYTXvI7W;~OOT*Qv&aWB$ zL%KcrPsnr9LSB{@r&jKQ*-c*Ur1odh{!H4>p*{C)xZ{-=uAOM_ksrmO+@YMiERy?` zJ7AOA>$f#%&)t0P=8(4)x|`gdcQ>4~XivE(@0D@K*sGgppINMUw}ZLYyK+aG{4VfW z-K6ms)1Gqf`n7PsElK;)EuQOMBi^pgnJ^O=?eWSBG+ka*z9Iytxqb=1v+v zM*A4;qqL7QzJ5z>Qu`R~DR(IMqKwb`4^!GV(!P=Q^JveT3AE?^v`Ot7X-~OBxi^pT zc~ilgH)(u{iD{z!eA>@veBN>xo;TK>@p#k0naw8uoTIs?Dr* z+cLFknM2N8ulD?X7eO~eZ}s2$85}KG7IJ1iw9^Z1?5MHZx_B$3mvKt<+Rh#o{>;@`Z{vuvg+;7Px~Px#}Mc~XBH{P-9@3Orgz`}~L>k+JkV z#`&>Z_)&Oq3Lolz(jOB()b@0KFS6+W@uJ)O|9J8Ac+q%NHN%U|@L~d9Ou&oCVEDLJ zwZe<79(l0)xIb1TXTz|c+aYm;JP0GLcCvm6`?e(oE7K}_Dg8#O_Q$0E*o}E{zCgL zd$RN7H+oaHpu&4@Y+Y;s8=Kqa&EQ|yNezr5TKc~uBn&lW1#?;GHvq9PEj zs(K~0^Hw7lsFM9H@{6{_>=Za#@_l{S=DyEf&H_w#se|9adRgJK*L!?JFtVeJoHvJbpD%Rl46v`+elQ;U=)L5*D)W zsdO~F+{k_OYxoVb^0(O2X32b(U(2-hZ#VBtKFgl`0Q)oS$M}{?; z;qMxSO+CDo%U*j^$h7ru5AR|Al6$3JBQ{H5m0y8X{|&5P1J;AU+A{-I@IMZ(e(Rfe zo&@ITuE{W`FV;RL@w3YMX}I4vzSp*y_e>mO$A02##2%01a1zcEGvELRdcPed*U?Oz zr7xU@vzMmh>7h2tGT}f$s#l+JjGM?-25+8-76!F6qH{(rLI$ zLPmejfi(F7kTFkH`uuT#cV!dom2ZKs@%3!1gsL!b%Wu%M<@br5MoH>-BOma+O})uR9Ke6Y zxKm~4Am`ANW#{{T4V)(&Yq}g487{KCWFEjzgq}5z8igk#f^$Bkc2h2`|* zxXAG6_kam`UQ)>B?*WrqU}~5G2U+v5mg9vD$ZS*mry*b!IgZ?a&2oJ3e~j(RUyB?E zhgu&_;Oune_~7AbI6GxI{##hTf1L))Y02^5(fSR~vVJq=WEfeBEYDr_-Rc5-6orls zhOh~HLeHhHd(wzPf2nPU@e^X-;6IEu@b^{t6SwUb8v-AgZ}-Tz{-aN7ADH;Jv>v!O zh!62eKNlcx-t=278TQ3S?nm80(F+B1LVtI68lSq>5tH=8U%v+V`}e;5{p**e>4#fR zSN^(7I+1Nt zKE&51fBPoO-`VEx#~Zgi=M+}7t?@6J`TPdH@9>TV51ny3tP_ z6nrIGQxnMDQWMPG91L>a${1s3y?3?uY18hk3xaa;_BH2^@QY1Nw}47Pge-f=ldm3mqL~zZ7J@ z6lA{?WWS^ocx8{P*yAepxB=EBr1v=$%%9j&ksG_8({XYCs?VOMd>i~1jk~dP99=K} z1Nu0neJg8fvZitm1bp?GD&9@}Sg@(Uo>lg)_=RiFuf$HMyp%IcQ0=e zu}{_XHTd_~H^0f%UNRW8$KjNy~QR$CJ|A#4G@&x+IhLq2S`RgB(f{fO}@roxhc03LW6 zT7OmF0JLsG>n5~rLhG`B^?e1?Y(Y(jwZVXkJS3jNU;p3>$hKf07vTH8L*?}kPGA4e zYgjqch3}^9>BnqYu`hEUIDnqRe#DN}yw;5@ve@U}E_{|>G~GUyI^vU1_!@Gz3?XZ> z=*J=Y7)tB*li(MBt+u=C#OINIw=egDwAFhn4Hxr9hRx_>hAl9*ClP$4LWhk0^LmW_ z;N$83XAT*;KfNQU*q`+8+?h^=deXV8?h3iWv+ToDJ-dwDPo4-wcfD|2@}EbUo7m$z z7D&s}!MVN-RcWMxaZ~DRyIy=T@jG9AZ-Lw^h@XKyh4wS)x#m}iJQdlk;=9-{;g2fA zGWzlpN7*Ne&3M8&3cf_|DR7)(pDO;0+_ggi)$H$8^%y?f4gJA;fbotK!btzVP6I9< zKHw2Qm=7QOe_&gp_dqY@YC{3{QE(DAs&k)v7JuQ<<9@6x^TL-Rz9Ad@+O5P1B!`&m zrKb3+WW5X4)8MO2JEplG{ka)gx*1uz8U1-V>vlQ%^K$g(<>;-;(Vv?r-$eN)WbGz7 z&qqJ2-Dxe?e<63-rT^UG0etkHie5M0;7lT-@A~HNL*5Q9b#;!bMsiBjtCI6&?2^Zf zQvUnUCAx#08!q`K)S40Ht~sLAT2GaFzK;#`Q|zH%A*W6Kwv5~21YLPcl|Jpy)5qS& z47-PY=NG7Z|4$A3i)WbjgTIpT;^-`Ve2!AY;JD~3Tl|~s^F?>t;@=EbG(@W$6%9HT zdMWAWL&JWw{)>(+w41uo%Xf;7-hhtY;3k|6s>R!&<3}a%x_YxCDGZ(0+6+CKMmN>WN`b>vd#41Cf zQ{Cow=$I4Ld@KC-O~&hEyefRG%z?OR)%*@%?Bo3SR^*Z?c}t+VZ<-QsT^MS^PG%0o zU*~pOlK)V{AT;m8Vf>DQ6sq zeY6))$UZlbffh5%7;_`zZL|~K#?iWe{Tb&*WqLK<1kVs}NL}m;aAer~S+~8c+vi!g zFI;5W_g{`qg)TLX@Dk}3RXf@2eYG)}^gA$Tkd zKZZ}hkMwCb(MOzh3c-)9)J^^r8igO*G(R>e_|c8S=S$$_aefp$6n%cYF*vtSnNjer zC2LWbzXe%}pGfD6%!J&8DY@lCn*W+Kf6-3!Ul`g7!+-wUS7mu;x51z7hq3$Q&TyBR zyD?a;d2LMQKPBP-f`boNuTiG zzFV*vFD~<@$sGHbuZP~qu-_<#;FYPo)KmoSz7RaZUF~5hpWvmXJ}-eA3!dXnH}%@R z(CFfS`S~PXT7ZoLzfu?6XkJQy^Efzf0_Uw4U5#OgZ84-eUD2H{odn=>ci z6uHro3A)Hqg)DVjO<*2DRvjUB#$<0)&z^&IOUgR_3f%pad3pZY${NQQw;evy_6_TF zs`ib~PxG{WBRqGT&vWCpm|s5Ejd>ODTZIdK!*3PvTLgZKxXDZeev80gm9NfUBIjBE zQ`3LL%(>l;JLH<~ZMS2M=h*EX%j`B}TXH?Jv1^%~*s+XqWL@tv)_0k&|D4*g{&Q8< zsh!Y&nK>uWe@*06s#TrET5>wqPSt;2Eo(%6)%A1KnyxwSnjLf0+RU7(`p=mI?Mv(j zZz^Q!PC@^@i8ZTr z_hBbEi;;yjViWl~WAGMe@GQ5PSdc`9H!|+2vD@z>5AT?QQj5S;a{V#+5m!WUkRGZW0wq@GTH*HbVJm+=hhhM-CIKUDep#tH6TuI;}+fc}G%=--+`|5_g9&w~DW>#!Jv{)43{`o?1) zU|P_>1^rvlzXknUr78Nxv7mno`VT?>A)7u=u5a=U(0|a4)9(`6COyl>=F|3HIfgfP z8~1A~4beB)3#Qp`ZP9igG#0@QP<{@D!7W;UB+(x`gCS^;d6sE9t!=fNSgSBT2PqSp z4oYD(5>Lif^L!X4mR)z^o*QuH_=(pZ9Dz9A=8tOp+iLX z%a}i9OlY?W+KruI`nHkqouQ`Es_`XgwVL@?L#x%$YBjW4rIJn+v|0tNRz*#-=GAFa zVh&DOR-e=sD$}L%=`z0rx}3Bx$pmN8WjY33lIyO>{-ak-qf1|RcCHUXmqF+<2weuJ z(Ixv5a0`y1OY7C?GJOVgsi4asbcr401%0{%2V->k*3stm681B z0iSk_<%L@ov9{~Y(VK%WL7(7ajCQr309YKcwI=_52q1Zj1&@Ouf?3;uG4HmI^uxEIChPqOY-D85+jDkk6;XQmD zp2e8sx#CCf{sH$R;0Z(cEB}7>5ZrU2zHUc*>3164QqGtrWuB>89ANOuyaQb~eIJ|U zr)7IXa8>rV`S!-G?n&$o=vUhs{GOIS(oJ@AmL1|81po4lm9=s|S0%GX;V-#kTV3bJ z(o|T_Myo2t7in_WEl{|XSejjJ*r~+Q#7*D_r^M70EcPY%M|BQ?OZB=v?qUPFZDu)^ z#`FD$kL&%)pGho@_CJrUwQgg~AG^a3kFXyt(}CaLH}xHUbiCZ*2OkQ$fJQU3#>k+5 zv>yz-1ckp9cX{M&pQpQ zA>-mB>yB&RkAgqsjxQ~oA_i5v|_RkLY~F1+t$$rmR4EVvt;yYkn3H%Du& zWAK_ey2v^v@nHBi=Ivgt&v_aJ_i|3Q`*ESs^m}tXoG(oBD`HD9H^vp;*t$?e{CV!a zPKlG^eov1<{h-~L z^n>3(;=EpFe!sz1Le3$RntB6r_bB(_0}<^H1aF0T_`yDQS4i-ZJ9=lRFoX~I$rt7Q zNY;Ecbm9SX5qbvp_M%TGA%_?aVAX4A{ERi=o)owN|C+XA+IJWLKK#oWId4(IgCcKa zoY9{T9V-O$#@JY+XG%=k`;h;{(Cf9yua>@`JKh-5@?_QYd5ps!1b%G!++}<8Tn-K` z2aiuKm-w>&fk%womBe!d)2x$`O!Yj$JMb%opWp%Ud*c6U8!68Z+)kQb`K~OvF7({c zF(;qf1nh%vo(lWm`Ln?u4FS6msw~Xs_u~i9i@+)J_!9?0g(vr!g@O6x7Q0Nt>#`Qn z`5Rad`1J(qQHJ+B8s0NcVJ+}ikBv8a%>mYfu_ukmn_jF5{^apBNiUr`uXJ*@c@?Iw zN%m8$$dPWGnC~gYF}<$ws9Lt=AN0>~g5XTfG)^y$=?#xZ z)i9@vS}&o8qS#PA+;31ksz3fc({OgmaZJC3^}BrXWY=i^`d!3(`s2TUDsBIc;ypDi z#uZaxIXyY~hQ|x~_`5{*A;N2~MNa;Q;ywNGJE!67l;z~>8t>_^-`l3aa$0ioceH*h zW?8=(awr;R&%Bd8-TyA}p1%AgE@aoK-v`j^l(%QZd;0SCzn`xB{XaV1)90VLljW~V z+>qid?WD0sKCZ}TGc`6}Y)r8~)#=0@`Rh^X!|=aR?2)D|6no^ucVu$x5&TfX@9`e|9`C{L@gDp-f5;ip7P~F81%LAvyR~ZzXQo>y-$MBo z@h3!i7kGC}`x}z(YNt)&K60Pi%Uws0|Kro+zQ=A2XZ{dx<^xg*exF1i$zpd>FjT*_>HQId7?Y zNy_OT-=e&;nV>xW1U@r^xAFRx@h;{v@V3mZDB`>6_T%aof}d;`W$P*1vCQoxZfG`~ za!#tUjnu8DZU=QUv)AR^fcKf(c%QjVbslMRJI&eaHc8zgb$hAXM_p)S78u-S4}6;K zZXyG&ir_%|Q1QnRKWN>7Pt1h2mX~R3@N;(X4)7>;Neo}lUT~5Bed@4wQZL`?(_s3u zGjN)t*0|nmJ&eh!$r;IuFCG~q# zdW^x_;T?&!TMF+ig?E&A&PpFaLIM6v!>SvrchG*cG2^5*Z?AQA;vPE#;hq7>_& zpYeyKjXn=wIIu{y(QXOt+Pr|YA?A(F6}%tdtBQsFO}okDqqRfR-!+NXS41v_k&Ma_mlr`@IUzl>!BS7 z+Ts0ReMj2(h|e#RzYTuKCcbtIPM=?l3h;^yZA6CF2TB(FW*y?r-xG3{!8sgr<@{N- zAU|8cQ7brV^_0B*YquhQl20I`p1~*f0`mi{RZ)s$sOof z&&)*MqBs2bl_cjEa=xI?b>;t@jmTa5o!vIH?w>U*7rkr{GnV087v0xvLgOB1U7YjD z{ggxzy}@~wyjv6-mOetrHa|95w@rs>BWGgx@;&Il!QRW@A2X?6L?+W#&N|3b6}5K8 zr;Yo{X^cxO#pH1ZkDvOuL1=!;d?gRTsm`~0>bPmv_-65lX+eba-dJ}!5Lri`2Z zfsCsp1_zoJdbTD06Po5bvWpndL@@5tbP-x#9glvOdyZkw>u(B^FOIviPxP4mSMDZH z+EG7G8oA(7KSiEwOeH?&6;1F7EB_=a=(o{kw~J-u;|eC(P)RJI#`! z?8zYayZ8Hdv1!9xIDhHJE-Y&PR?YA`=Yq^f=Epf6{2}Muu|A!D%qGViam~WRhRBd; zkH`=c+eFI`V(w17R%*?mW_y|($km4F=ZWTtemIZR{p9~%*3AVrkww_a!07>(BXA*) zg2Z@aOgm0lQyH$iG zf5M*b2D>eD1ADp~?AERu?8J^6D8GSn?lTr|fDf+o_jcx4K751g+|}k;dT)34Ui4vx z|MyvXZ>MdH!Dq4eEbKiCdykmE5o=aEGF}W~M}@HWs9PVx-V4oIHz9R1)a?ji?@_mF z_PXTIS6PR;JE+@B-Qw(Z$+djG(0OP`Y{RqA??L?rVNCXR>Bm^Vv)yJ>=T>ud{xt6_ zXo&ZuJaX_2hwP@25al{nmU8l=d5h7b<8k27S!mR-E@2(WkLHjAEps;Xc`@zRau&VT zZFVeVkcA#4_B}%kRbMAEr_*j9?zCegQXZl_L^-kV8Q%WtTWiN@n;2dTudcO|#kD^C z*LC>tXD*rq|5w%P1OJ6n;BW0)XD7UM#2>Dk0e=&7i+dLX-^IXp@eKHrl($jdPI+u( z9lWvb{5#ixf6FPuzpfy6Gqi24`R6R&Cu@MdWgWnwr}NNZ>j!LzIO4fbSg1&*&=m&soO_g@2pwt#-wf+b=OmO2X&p<>$VF` zH&VBrx*gPo?`GXEXP`$1JVA?XMQ9bfJa%Z(e%XOv*)RM2`he`0nLl|Ig_or)9VqV? z?pM$!G`3DPL!-?mvY1r}NCCK$l>{iN?!{d$>O?JZ2Qs>p`Qn-0PmqV@-YU2DW!YXP3^P(Kg^}2d>!grFPSZluzZc zcpvYcdY7_azZCwxl(}A7mJws{uP=n^%rg8py-x5~PJutky{uO5WhI6$n*o2Exh0re z>+rjQ@7*)tZ=<}O^4RcY%%1; z9__;$XTU${&KdAY`E>m2yJpO9BlF|FU2&ri|Gsm}@Nd%eqh&<;UYGlAqc@7b$FT~? zaCA{!`7ZyTAvc!Mf7u^b`~b1jAHaX}0qSl>){EXM*G+%Yj`x1RA1AxAJkAI7IBBg5 z23{9DRazgOf~R=jhp{6*%v$k%nl5Mq)^_g$lwAX!t~mjou7M7&0Z-R}r)%u?;x#_} zhs*GLAJTpf&1d<4Mc1BHsE|9HD|e_R-dS#(e4ywqSLYin%Zo(u!{F${;ON8Xrw^C$ zah{J4@56=A?Pb2re^2_$EnN8#m87pFC+Mr4zG8jXGQVrl71#Q5zPl{vy^m-)uVEYf zj)tvDd|uamP%Wjul263vnP-jGS$F&E@0De1W-)RR{ZrQUadeQzrH8HH zkZYB@E$9Nqkh@;QTn`iTTWmmoH^3JS@P+tz!>*Q@qTjVl-HuM%4&QHw@5?Y*Z!W{M zUF-Eap~XSoI{1&*)=8z2$sh?!ZRyz>$=cgY4w{kBDo1Hb}zJ&rdWDvjJS$3=Z&fu8_ z=%4|*Y+#*v`&83VL%F}ZqSg^|9*SJ53zTznoJ-%>Gmh9Z*o0;bI2J)0i|n|!h_zqj z_hByb`!GJQVG>`wz@+yRz$E^5fr)+B447K!FG+uG^w&P#-X?1;nlu89h+l1p_Z8uw=ENKmpKvoo$ofA z4JwgofY#xGVvPP`^cSPQ81ogM!W!gp8As_RzKQ?p;)!oYBjaZH_D*aRvz$-kZ0a>L z_PZwP5ua$8*fY+%C%&bzZA|ifIvXaw8O+06%D2sYE9-&5Md0FtZnO76l`yY?kCCs% zw}8vHfXlal%ePRDEcULU{6my~h`GF#xxAIRyp_4U)lN44zTMjUR=Yj(`*vH$@7qmX z5e_t`pdXV3yD8J;9DV_=5B%ckxCV4#N*WvDF5xBhz z3((aBO{M41M)vZHX~P~^eogLi$ge~EvixSa^Qp_Zcc9COZP(>;-+XZ{Sd$p@Tho?x zxr2I-Xy35!f6c^H!eOmq@QwIzy%=%nP4qiej!m<*DG#~Yc9eaN*pqvwoK;QsJ-adQ zfI5fas;gPa$+{51Xg5U_-JHwsEKIWZa3=jLp zWE^xr(AU=D1;6Ey8Sy=X=>s&GUQ9E`AXPl2LrTl5u^J%-CJy;tsC3_d! zt&L~fiH@@iJ)AL%-y5H^_IHc#2;aA_XT(qCk>iIPDSm9hZ7z43p&@eL3f;pCt^DH- zksaq>6aQlTYd7&*OMedc0mc8478!$|QDU1om(kyhI6PZl;Coc=vuc>r-z$HUdvn~! z(*CgwcMh>hBoCA1hvJN2kDTj}cf@jZJ$-KAw|~Nod1piGXS?yt*}!==v@UVgF`;FC zUjPS{;Ghy5@Gf9u6*#D}2`LRv+W!081g^sPYbp!R{9e^LmU0IkM);*OBuGX_-Xxp zVER5_QN)MGpndkr4t|{sFqsyz*1t~|_n^CBe32e}=5RMZ!<|hN{u+S}j|d$?r*dZ# zzG{QNlJJ%0uV?Vx!gEdVUQB!y#um%4q_g(he9Rd^F?r}>$A zw=wVbC*YxZ2C@QL##f@H@N@TL9Y=xW-h@9?Ic0j%XgTC`A za@qk;$Z6vVWNn5u@kDmBJ|6xNeEs-PS!1ck8VobO$m9&)q^&7uWaOTcZzlQ~_>8^C zA!J`1cw5Q$6ysiOoO`kGCv;f_FITFhQwbke3qSjODRaTM;`9F!a6z zJrwO@aqN*h=x?=YC(gw_p>OTWBQ_?vSKcH0F*rZrxv6T&HoA$Sm`ZfVa*^)_QU{;q zu3$Kz?#&wR7r57PFJ)ioj-`J56Y`z&eeV!?cJ=);c-Cr6o&T&cS{Z(sd`uEkvN9Sp zjPt+yncw4Gp*_(}UoZ-HUv2h(fIO?;zSl_I6fsk&1!lkdypeKqMy~QZMymfR&UwgP zy+}#>j#TPd|L>4m9{q#!j6&flGnM;eBbth~6u!gX{ZS+J3)(iQ_Ec)2*?;4vbpMU- zPv>s_wvjsUZTdl<8pg8z(85gWz@xw%YI8r&9KT>SMmH`rqJ>|Q+joJHy6P(K-fd+3 zZ_Bv+e%G#`z^#Jz7L?8X3$J42!k21z?qyNAQMn5)Tiaf|_|3$pZRH6GAofmrP;8V~< zPiW7SzUPJJGG?Q@f2c9nK$}E2|L<;;b&G~$hz~P#&S2zq|dv=gQyNIOTD_kFD~4TS)HI$sJ3%LmLfte_3UNfdYE~ z?%9U0bM$@mf`zT4*Tu+1!`tP}FwPyZg@V{o*k$G181JWkP}^x@Gx_zmM#IlBf5r$C zXKaNH_XOu(@N`hyMKX@|`x*a}JCDb-?6b1Gv7&9a8_IwGUit6qnGbTr3h4O;LqYyV z##*NS+u-m0lSBC;>{}6wZgPga#+azGtMq6f#piUo%pXkXiU%gBd;WW+N5)dir4arQ?M_ z%;>*~v*Bmwn*HZ}UGr)GfurQqJ$k&K^JSqs|1Fvqp)=^+dRX(n%09_HcTnT6K+I9J z+wx&E&0pFHa!SS7dn4b(X4EomA98Ljyd5?oxf_qo6aE8MazGrLE3zRPc^bPOy%hI? z*iXUpyE&V&x>sYv1fy0OSu4Me>`_DKTdOFuJibY+2zw~(q;}5QEJyq*k@E)_*Bat1 zk^hUY&g$l!Hfg^c`CpVf@X{`<`5=MN$(RRo+SXEMa0(8c86LAsj6c49 z(~Pm(J?<1^BZCKQ9$6RUG~-Xpd%|8QY_~RseY)E4E}=nJ z4k$KLk(fD0Y^=(0`i%4cG5XZ>3w=Vr%vIWvgN=6aVuXH!$gZ%TgLCkc&?oc?jRf&E zo}5lY&{W86Hqkqt1s#&F82X!J<5Mo@YZm3up#$$xE;dt>;O`0ko!G{NCbWGyjgF47 z#sTO^*4%%CRnw8N1v-+rvgg@bR|VN4_I1%p_MQu~VK-?KFPULal?g;EWDhzB-Al}*&~W;2p`rtNoql2`0IX{7+qQ4#})PXHD$dk$LS|gB(4nmw6%}D zxX_QuSd-|deG>h&N_*%B`mUZzMC7edoki;PQm-%MuJJvTALTc@BNc3Oos;}uB?efm0T5}}i#!cS0&V=11PFN+qupJ&T><0Es_z&O} z=+uSUh48W;LgOUxQ~iC4|usoG6u zs?}1n8hWkOx<52YR?Zvvxr?uqT*UauoZy749Bd=jMc(&#ooIaUqo+>e#=#TQcz$3e zji(=ZV`;pb9G*ghTZI?iAR5n;pXvW58aH;oF*KfkrA*@|wg=d|x!8H?UWoz578th& z9N!*zI$-=bZ(QMGUy07leQqDJ(!?gnpo<-1?>ubZU55I?W7s^%;1lfK#g;*j6Eli@ z#jZea>9+O^Jx-sxZ}fS>Ie{K;M349SemZO5J;+V;H}Vrbj;GuCxw6iH&(|D1z;Xk8A`V z*>F(Xjrf~NfkW7o=;}#1?`-VM685KU9@2g$g+50{q0=37zDIsLGvu})!y_UGgQkv` zkE7SdV&)}Yp167B;S66A@@%G_pEq#S6+NG~jxyFHJx}~UIsa*Mggrp59Vee*Q*W&u zYn)@ZqvzYu^SncO5*<%p==kS^P6k)Q!@i$%;Xp_wGeI}$ptmykoR6U64O8p*$MyY% zs|yu<&=}vwbiDqa-{#9d!_+!ne@kCEF8`9E2hj6k6UiN?SWtWd;zz|_<*;XC%!G+e zRK%~#x;8-<#NJVUQX9ZdqT}1fbo{o}z7Ae4J~wnYcAe<$F&i;ftcKpi)~mMT#cFiC z#dy`@HexIPAF~m$9W{+&BiKpN@gBZ;Y=c(aZy4NEmh-fKAKY0dwGCewny0cI5jWcy z!8abU!^H_-ZbKjYm&UN$SszwwI>PRnOnADU9@Ee8gyD8}QExrjWta)qsn0~_<+y&H{BK3Ny*B5rzdSN*~PhI^>-n5RGg}ZO&jcfc@=zhCtB;c+Y zq24g{j)dI{v59xzWXQYNg}bTy7dM)zpRi}8Z##ZO@)bqY5+{NVkJvRu!#)#xAbA8D zA3>H3mu&;Nvn8?!zphUotF+t#zU(-@0v(7a2VGr)AsVb&&n} zGhAf9wh`{$hwOKd{a#u2_aXb!lVpE7?9(^jrpW$5%ct-3B-x)2j?;G=vcDbKuYCmL zvOn%3`_Y@o{S4;`BKwj1apZo}FtUGyy|l;P&tdPEQIxa)V{gaVJ7+iS|3>)rWxsC^ z+?l1ky!Zbt%l*7Q2mS=KeR8>fbZDW1raezrc$z7P42+@IzA3_A%s zq>H-isk?)^&g^ydd0&ybz0~caE^>dieq+Ue%8pQXn7YXQPBSuV-6pBq$Xx1~3%aZ` zGke`Qb(>npp4ifEhCKYu&L zosJ*y<;mmYJQQ19&z$S+_})5f$~tT(?tyuY;IR?gsnJcCjdoLU1vc{v?1bg`*OpTr zqdZ1=jPjVBEG`Gn%k2c^@nQaTth5u2D}9@Xhr(Nn#NIw9_B+4Mx%_?Jxb2iIo(Fs@ zvCq%LrXn8GS)9)T>xI~l z6&}7TPr04LO05}DvJVwszdnaH!8gA8sC8LcJ`e-r+f#p~_K~}FAN$$1IBOv`rud{E z5nr_2A+N&DuENf)vTOPRV>Y&Zrp#xgl6_yL+j*o?tud>{?u4Acr$*f(b$hAXM_sRS z*1F{H*7)mOPu(5Vb!M+i9%l9i^jlBe4(euR)ODADW1W-RtLne%yTrfByHTu%A!jZ1 z=xYa`?U=1ScpJKrvziP(==GKzYvfMR*#7&)j2)N#_jZxLBA?K?ll6m{CtQxaPH&tIroZR%?|YUNLAp0b*itj)ucVr zT)jsEH}&AAqtXRGW9t_!`!dJ(Nbs`T*+o6@z6QLn1@E)%k;oIO))cANOTE5I_DGep z?vdI@40jE5vUZqyM=IS5p_ARS?2*XL4)6OsK`wRjazNL}nFO@1K-YkV^Q3b_)w7(GySLj9w}JfBl-SQ-+ugFd5`qkd`oruPXFJzW4@)& z;9JVVvwjSXsqibg_rizzObx!37@Ai2Hi?|nKBd9e*{8IRJ3K;*brLtjulL(M8}jYH zAE3JeC)HWnuhfVCsEA*wH#q6+GAQy4obi1mSU$VN4t6YC9RiP@rF~HT*(Gz4Z<&yr zFyZOFVn@N(hmh^!V*R(XtcY#lk*fjQC|;ENT}zRDE5>b?R{lR`yEI9AY?nB;5;h#|I)DwkN%y-9zt3`C zrWx`+6LICNL4@2sC$n8%8k(!f0pvS!5?GIz#n;Sz;6=#wiba`_Ix|h8TpoSK8ht{FbZtY z82v~bvkA=PIl{J4+_4(7fn3Rh)GFUh?p--a@pHP(tPj3UZL`XmaFgu$R`c%=IdUG6 zGU`2%bYtGR3c7ORnRBs^&c!}TK_@9UnMonXR?e`I<_`Rf@s^H$TKjsIPS{B4+c@j| zciNoPMzT-ktn+qFuNl_#)qOo$M&}!5_*cru$IG*YyW;Lx+<*g`ZEWJH5FSeFR@+hsXXp=;Lq)xkKJTp4>e=wtd#e> zr=1mVFve^wwT3+hHkG?(8-9uFwEtPPIQWe5LF;>0#4mC8%H3bK10=pd&OmhTpl7fH zkY~h)iqFZn2Ml~refS`X_#k@2b`|FfVr>OEv59`kMNwaThmScW<{R1oKXRv zNqmYUK9GQKe@M`3%@uNvQ%F^7AF*Mr1>GI#M=iA)yRJa#_a z_6)Z63vxC~92N7A1@Wl_ng43$zms?a+KXK(elUsEZ-0jIPC`pBYa9f?f$WLL-#HOE zHa`ElfmhH$26BY?%X*E^|L4dNng7r5$Ii9eoVoa8=i04}QT(w{JD!OW%NDg`T~WJz zM?K~Bl-DDB>#^DEqdUWfdSH#=KES=<3i1>oYoe9N8{WhzXqw3gZPXR;Z|#0q@4G*k z`*aoZo4kFuJ`m`y`lK1H=1im75Sri((khj!{Um1{yv^H$Z!zxFv)5q$8Sa&8{O?iA zZZ$@$YnaD7jObZ^XcTHJbdA*QomMyfSJ9f9SEAiD#^~ajmzn2F(e9nnmxjrQC%wIN z%VqWUE%<&vf3B&TS&Qb?tmjU{-V-CZ;gI+oqu@9Sj-$|76q!92n|dxb z^<1^ooa-+2>J|8L+cNcPnOW~H^XkCsJdx?LzfxIZzwaV`H}vSAM&~yhsnCAL2^j~8 zdneBQrd0QS^agy^4eq#qx1gYms||O%?9XyH6Jy=dt-t%Z_K5FpwTN~8lF{FDAZ^E9 zgyx>)t)_6T`g%m-rMd5Q?AL|o(QBctMq$AMBlps``F8iqe(ZHj$2S)O$9`3K{`on% zqq^)R{FP=Q6#0#`i>f_F?uGXgXHh3_4pphIF9dh=dF(}WQ-04@Y-ce5OX>@B+%wfxiqtCvE$G zynww;2wFHgqm6!7DU{s8$W&Ztfkt{bwSlkWrksoo^ZW+|7H5k8psISbU$hcTC)S zEWg9#+oz8ds0SYf{CfbzcWPeBua=mRg1}&WS@?%|lbF0)UxxL?!a;$#Cwq6ndVCBI z@xpbiEpyG?DDO8@|8qkjXxjo#3);4zZ3|q5gl^{;hAIEBkB_6Pkg;CC&oPJ<3?Zw)L993E<0{)L;}?2{9?)>yWHFD2857(*uJ0Mtmh0W4%X^0Y61obM*KrXr zybkMi=e?)7Udhu~uZ^>;*FCeW*OJ$;UKPKE_4@NuT(7^GwqCzD$$A}Uy@uI8;UjVI zk@Vu*XgueH{PnE^=jA?2J`SxP>d%OVwnuz=HrP))jrdEdH9!0MLTr6(0RMZr9{c~i z*#EWgVTAohZ6Vl;O!E7RcEe9Tf6P_c;zIU43rj|kb7F6yZT9i^@Iuu&van>zw<8Pf z0ObLX@8%i!#23nYakkNTMoIN86xgJ{N$~upRNXj-b_>w^bKvDU*!pr8H4xoqMM`su z4XH=D+mt;hew#Ws!8un;hBFzHm=N|q@K1l|ca7B0z33UIP9;3bJvptY1${j6_@J$6L+Gpmv33IM$F)g1}B=gVAr~Q1|vnOR=C9#OyAD+~HKJ6)Y z^q!URiA@-eOlsdi`v%%q(4M#8Id6%3kxA{zqv25QQ0}pZqdoUTC$(Qd`vtVGql!VlQoT5sfQ z_}kYHqDy?f`H`G)`?^8S=T1d84F3HLS#!sb+{vBt&T_Q;j`C#PFuPpHf3*nu&Zmsjd4uGj`JcxNJq-r$-vRs4Z1zpM|NM6P*KZ{1{{6b^q)xg2VckDA;mrO!Pt^bLwEnMomHxju z2CvPVjmT(2#hHf@47%~G-h*K0vCk7big~gp%iU;kmv5*3CVeZ~xpC}g(=-?4+G19F#6@SFZ_ zkh`tpIG(_7_d9+3cK+?O`Cl=4{sru!++7C({yOgayJ+a~GM-ocZJB2Hwzd3CeZ~KF z-B*$MW9#uH=6Mh6dlmS)3VdB<#~QE3C%DaS%WUI}W}DsGwarfK*hcv_%D36E;x_m< zC-ysjF5!RXW@g}3iK!~{rg2}?!k5SQ-IwY-R4=<}WY{}RDQGJEFsIkIb-BF=dXDZxxt*=n;>Z))r*-@b`aVp$Zy%lOzvBJHu zuYz;d3eHh0+%+Q=YR!=fx6|~`zU2%&+kt-*Sr@5auCkfRQlziLO|P%y47EeOv#YXH z(c9s!+fiv(Ivr}ALu{@SE>-U6aNp5OZ0-(xhg}`&9mUF0)%p(i;=W3|I@6&p_9{!& z9UbmP!ODdsfNVvBF)oo;THZ1Z}fxg<91`97GrA zed|}a7w#aR$NHchs86|T9r~}gN&z#a*7nlBY1!(?3U^JB{*MGoYGj34(?|a!0XsOn z!tM0ve>hMIdMi}tF#UT0+v;0EyaN6AA*VBulK%S$W1xRS#TD*qvsztLU+uoLv0AO} zs0N3;|6U|^Ykf8A&u>>XHYfYN9o!8olJlm11@XwKQn*+024-0Ij@@-8JeJO>gqdNC z%=y{#9(NN?hWn56?3foxt=tcP_C<29>_YpX9r0%UqcI*#n_e_XFwZ%EQOqHivo-Qtv_j ze(|_k=3PkKj@GNWryrzW|2um`{=YAMaND>4f9?eQMEAwmqc7|~mKxYU4v&mGdOhEO zcN|8>96j~`^&S}iCgYA?{~+}q9RD_X?9mq}8<;5Tw;oETRzAd;=8MNAm$SSdNj_)f zsNgOCspxgG2SrB&2aG?eOTSq)V_!sy#ABJ^62EpuS4XL0eTQ9{=_plpbf{)8WLHT! zw5NYFA?!w}A1diz&mzuR%B_+m+Z{AS4QpvzTB|3X(vmqUZa6?U+9MJd>rg4R+c%aQt;w&*WVg2w32gl42av&8RI zx*2@CibFSXpKjC=pKeks_ZqpE_d+jw$8qc~gI=z^kM+K93caW#^zyTZpo@p5(2KhS zdb#F)>fi6vOA>nd8ST68OBaM*mU$#|omxSx9WPkdv{(POk7@Y@!I?#ttj9{tL({(-L;{no?j z!aj5r``A?In@0b6SD9i*^smJ3vIf$-^Fk-aho;hrj)}l;Z$?sw_le&Q|Gg8IoOY7K zuK)0@~aM%|WiF>RI>V3-|@w=s0 z6e`SBJ{>vLzWm8|jK>&jd6ef|zKE~R*H?bdrS#iu%bDl5E7rM7@tyWmaR#CJ@ZZQ; zJR=cZ?tmYnt(f^apMl`C-Lculrf0X0zxuzYLy1mqOs9U6N z-|Tgpr0#m^W~kdm-5s;njY-{l>YCJTq;AIv>#9}5t27+#_3v}ndaI&Q*KjW!Sq03i z`acjg)vCT#g}(@tVg3Uj=C=Cx*;OOUOO@VoyRvV23H;bKUCT?=W`|vUWO=D-m^J9@ zC|J(>@ZXv~PK|_*fAq#4o$I#;AM`4bf5@=+az^xF=;}hZ*||_9G8eiD^FnB2A^Kw> zx?~~py@7J{jFX`}LwN?hM4m-*Ew*|Mc0%V`L@)KtE3d1f{|xWtewek)u$CEQD|_Yo zjI5t8DDz~aKyl;wHy=OodlfDg}5#6xUv@6+PZwQ*qo8O(p zAr=>wBF;j|yU$$srL0PRDdV?P*}L%k)x1xho_9yoGW5P+_f~yo>x@=gS4eIZ^7pY% zXD{T_UsMhK%5;Y+4E5+wP4`jWaL?aol>Yq7Mk!Cc)SrLfP($CRd0QFl;24Cr=e0S3d(=;lk!^1P0DMf{412RKArbdeg$z- zl-E!mpu9%PKSTL7l;1-6Ck$IrUQM~8yjsdXLHR9|Uqkt4$eBTT73D$7tEBu2%I~NA zV#>cl&OOR2DYq!El=8Pw{te2Ll>fl6LzGug9-_QL$`?`o@03?k{*qybDUVPdrabZk zor^`K=L>BiEAbWk_}T)#(gpA(xYBp+G;QVoN3@%Fh2)!6S9@&Y|IJU#=D`bZf z;T5VSQ{%RnHLBICc3U0n*b(B~k4T(W2j~CH1Nqf%z7M;7tKBrR)s7EuwG-Y}&eyl1 z&-lN{9{x4)FUG%iGtJ!7v`^!^NDHoHPGvcEw%B*k>*kN;v%R~3juks@^fTQtVC@3d zE@0gXtn^*v?seZrU?o;ycq8RoDc?%@`zQyl;$`>)E@Qty&hO#NRP$q|+q}zEiHnGV zt1xHI^)bV3*=4BKi#SWEz<2%IoNKyn>Rj`?#^-uR_uLcAHO^e)%r(wj<0qJF6LZBU zgny`YxC!~b5&6DRB{Cb4?;DvbJ|oJTD39s#4U})7d;{ehz!g3w{7gwNM*En*E?z^F zqZWT{(&VR|eJzFl>{e&mdJa~N2CTViXsO{2y$ShLCGvf${vY~1zQ4n8AKhZ8uYJgH zzxGK(ef?I${rX=T?%zLv@8oacd(n^Fov8H6`f)w_5!ypXma2|u{Wzf;(~khV-cuEV z=*Qc&e&jBwxk_|nZf^G{z|B#3WeZWncT%wD%i>ef@&q;4a1J7%vNle)v40eI&C?>WGG&aCjt8;;pt z>N?adQnzpRx@}T-J#{nG?V|3E+3O~yZasBP>T({@*)e-vVqU?w$fu>dw~Bo`h_6-C z*0S>7P0?UX=ze2C&IpnnTkzv-@%=_akD?cXW&7t=yRGAWQOkQDeMuhu@^^TiwdU+a z(eEa)@yhnr-*LvhrK~$1qtEhpuTYz2N(i~N0O|9Y(4?>Buw%CMOvm(8Zpy6$6RFzEKTi=B{{{7Ao4aoz7G%GYby zb=ly5iHbihxR-YXocEUJHo5$h6L1gSU$D@f8aD2Z_&V{cZnFozo-=cw7ja;M>5vd>WO!pHHhAw#Wx(r{NFHq=Eg z8tz3Lv|c>lbT8&$@*OKpwT@h4>o%C`o!dx{oj-fgyh0D>_nFpt(rsIMk~5& zjuE|ub8D@e2cIk$l}2Gsh1}7zqI0Tb&l@a!x{}y#(^Bn@QuI}DD-3suL*6JSRJf5? zg}50iM5^)gIKk-6HHN#)Q-yGip_ZA!=uOpz+m;CyLP4?FCC(^hM|NyNmxzx9{b`1g z&-}6%tlBC07GO%j*DxEXmf-iOIpookSH+0KCH%J!nq&ljqR9736Lj`_Q^{b&(4&`o>Yukl5R z!*XNZRSG}18_!&&mY7$$OT29=>1=b8nQdyRxy@bbT?w6C2~AxIeO(Ey<)Wr}wfOUG zY`gP0t07O_KWcf{GxRO_joy^~VL_kyqvIadXDoA~%t>t1-IwYZfG^T^xo#Ue{8jxM z?)F4B7DC`w;yRXVoqpl?7*pyYuS3jvyk7q8@_%q?>b|V(fAjO;8A<3_>v@~J@bLO< z@c!F0c!OnlgJpP2@Jol=oas;r6MNY2%Wn0i_1FFF^8CL$t-s@ToB3XUo=Nc;G(hQ8s$o?fi$hlajM9rn2zZ`?63H~QZv8 zUE-KI;>TDoQ)sm;AKhrhYU<1WM(2zeN?9vS^xvfRX?za+J*CgVZ}{IT{CeA^t#Op~ zLneB}%E&kl^J1K|-YcW$G%p0;1szWZFYqp{C+C7npIw#D{N$`o&Z%tr(YWe<@~D3< z_2`jkXsdtjm)A7k2XBp^`;i-yI5T+o`jDCX3}=1UhXRs=c0ozvz0^k*ptNA6TTziH>J(`90ZZqtf?v#QsQq?CweRBSU_>&^BMDM~2X;d!$|5ALq_r za$Xhl|G$s8w5^n-&yI$=HJ=p1S>2wzslO83L^ZF-?;b-dJB(W8+NiXJxodvssPb$k6jXt)wOY`>)4j6uMFN4akFT_{jQS)SY>p zRK>OUZ}silvkwf-unARXyI(6z4XH|P5QdiSgcLa5Kgv_t--URQ_zQWhwJzDuD(7(QdE|xnWEse})_B8)4sTT6R# z_G-zCTU49=4quc(?zaVf?mOsqci?Ya+A3dZtNWj}?x3yhw3T(KS6f*-yVkuV_MtMr zrOmEi^sY9?o)8%z$=crC?oW$6;PT-WT*apW^)S40&w)-Ah0`z{?x z8E-zU71*K=k^6W;U)~)SZ60IXr+sGCM9vkXoN=;-uj}A!HNo69*ps(tdQBsH?~rS6 zFaB7YzPcyhqd)va1gli?qNU86J-l0;&%BZEQs&Jb=1n8-2P|RU5Vr?CwEJBGy^^L) zRc7dB@{(>y8PeS^>G;G??rG-yU%o-?0r)=G%-P1x%y;Hr1v(LUT~9n9r_xSv=G(Bz znjrM<;X+&N&aXuI;LgANT z=&0+>#)a6+LVwo${hDeh;P1XYZ;`>7Up1L zD)W{#BoX49r`np4aheZtb`Sr)n0On$axw8Y9OB&n6>I`-Mjpc!Ar6muE~wgKH)Bt* z{rLH>H-FF>qFeC!Fa6J`KQU`re~^_#t`l9KiT=dZrF6d2Ch~kp^e3{0%3UDQokTXH z{{%l#Uw6WqC_0S^vTkZ$N#>p9`V(9eaeXjsw2TJ)2*O8Xopj5`41slYoYwBz2X*Fi z`w;m9Yfc~C2y2e4!JYb%chL)B>mTP%z$)$pjKbHj?<=Whjv?z&Q*KDkFSsKmZIA6k zZ>pmUl{=LIy&Mcunq zcH>T6KVzS6pYf)ypPAO%@}J{O@n!4^4zQLh?$Jfv`x16_Iw&x`JM-JHCt!{B?_0X> z@Rc2)jp(q-*2y{>Vx0}yqDLR2Laeg}eKu@#^7K1L)=hLuUj6c(T1_7V%bzvaSGyCTk;Yv~|*Db9g5GENcY%Qvsm_khh?9D3uR6 zTNy)e;L;K_>(Wwem5h7SfVqRw^?{S94sP_OkiomHZ@A;#iT{_hyw{SYmqM?|6~OT5 zI(8az%qx1sf}q_nFG$~l*i0Vn_qSmbX(gmh4BCy1$+7%2Rj%r-i_piUXPX6vj-;c9P%z8Z~WMKy?5luTSDH6;Z+e3=`rFA3&__>z!$;@?~L z=0;HGKJBx14ShFc&4@BKoph`{-t8amLe~c|?~LKkAt-X^&*5E~-3V{X`HHKHX!_AB zntyM?y9?p!KlL>8%HRL>zE=@K*W&6jpd(kmdKvSxYoFP3uibRz!>nbz3G1zp+Nrb3@y(XKm4(Aon3&-ljEu`zCY+2JdAxN32jwr0I&A;Xe)Na>}^3 zxm zT7lf+&)cnH6D8|~Ua^Edk?4KBw!HNIbBEY#iCmbmkAg3KOai$U1oTR8 zzvtHBwfkl#i0xd(O&Qw={D3+LDlQSP>l!q@u59J4lx z?eHAzi09>S_aw)xh>Pz*-hXOko!w~IWBhimOR&a2Bj?|Na6w!*E9U9#25$f?GqzHW z^(aRB=I}nU!XFcDt%Ki)T|@aO!>kx(gt?P%R>cjIdui0i+4lr&_Es4(SHmk3-{Kri znKh$SvM9~m-pD*3rH6xY{JMabx+wfeDUaM1d#^i8f32kcS+-ROI?dWVn z@A`YzE%kQR*I8H3dURx;?s_8YnuZy5;lx>PJ)M0QUuDUH6YIO^{K7>auJ1>;N&6w^ z%2miy|Kh&KZsN_jk>SKMvNm*$`~Pg;Bg>iw7=svhw@v@LaZfcvU&W03zr63^pwK+D z4$UWvgyuJ5SK`rp*SJUA`TZ^4WE6W4cmDOEcabm4TZ8PsSZ}-MS~tD7vW`nV%$H-< z5m_kv1mVZ<68Bv-yCTZ_0ZQHv;BBFJj$ISY(Z{MBdu%$S*TzG3Z8W5hQz3g?TI5&v z4K}_hdEy06*ILa~q!RotHMad~C4go_3uhmi zPi9r$?Tz1GdbQ=a_~ie0eYc0dea9HTK78nZoxa=SzxVwU{C8&`eYeMdZ#iE6`+r*B z?TvrBC;#m!6CP791EtDq#p6w@V`he^BLF9@EhKI&XQin!}neP zQoW4V?(h6ldKs^Mw`S7IbjqCQH$2c=I2(;zoJh`ui1r!Sy9=Muq?=y`NxUiM4qi_p_3 z-%bQQq1dQ+@AIa(Uzg|E(hx7_GXA^0Q)LWYzk*5~{aZL8^(w3c4Klc}V)~k*Du=P?l=+@oU=E$%Q zU#|+RiHR(l+6Ufs@Q%J8ol~d3PNn{AR+S7iE8+v$L*fTxR4Mwduvr@oqkjquPTeyV z55^;MrV`HMOl57wDc)HMw#V2zcw?M8pED26CMI$=F^98>dB;ARz}`%60A~#g$h(TX zt;f#GImU-R^Kj2c)Q3AuK~Lt|k%iC^8FCh;(5apWUAVRi+}%-n)4HCnD|1Y4FmeLzsLJWX7#@QecIpS{Uft%-vD$q1N^b{@gE(K z#0J`L|Bx)TU+|!G&L3^=1Ic_h%UZdY2+ny!7Fx)ccA6FVAFE0eAB7i595}B6=e)m7 zdEPL^e@|VS_$WRoT0@jCBAxfkH-;$Bn6!o{Pka=g6cQJgyTdX@A-g8c-KLEp%7>sc z{24{%tu3F&riL};=9jtWcp7I%<&)8wUx>|SWQ5+pSsdqboG%9PnbLh;*MDQ+L!ZI9 zXJxG)?hFpzsW;5~aA$Dtx$3C@_6$zW-oRP+{BzIdA7cJ&WBxn`pAx^w3Vt-9lON@o z+D)##E_{abJ=)VaM{nZ|T)QF4`%T-h6?;yTb3b`&1pJU*qPMAS$UF)>@m4N=l%ZLC z^reZ5GdH8+D^B9jDZ6p#<7NI*Ug&|g_-g<)(@L3Dq{~~z;&Z-C;JEAPKpnmfKOe|CI?x`I4(m1Xuw4@k!{19q zeghxa_-fFKoFlpVjl*Vn1?LtwVJk41vy2OKI&Ejexj9;LQ3%-ZCDt%mFY#kKI*Dyc zGQ`@K!x>&m^s5nho8rhZ@>gfb|0?-kG3!c(n6>dC*d-1zt49q*4>HuOhz>Q&=L~Hs z3=Ofjv)1ICC-yf(!a2Xzt&8_+;cM}sTbwf}d2^Lke>?5TSybnQ_TsadGpz4#=N>O* zrVI)uxliV_Y>!yRtr6!MY;}0YR?ZN^$PGyYJaFa}ZlV1y4pPrcdJ>$ta)2ABy$ZeN zb7q`xhB!Z2jV={GUHa?=`S$F1zJ1oJeEsa!eDS^I`rs%fkHNc2Mj9FCd%6$z4`yx@ z+rf$04X(mwFpl4YIVx;$UUO8w$ctY6t?(zgXBDx8cO{L6F~H*QFUti{JE za|+$~VxvEOnXqPp>xcNTXIp6;X?l5mf0128CiU+0VUsCypual@CO738{pp)uF825K zv#4*~S!<jS7C`f6BXSU?fiW z$|X+o%QYTdF1Dmz;3AjEofGel19z%UckkS6reCgZ-5rAlV{KA!(0@}v{@axeYdP0I zE^b&0PP+F1^tH{9K5x|4Xztv2p)>zWw;0|X79$b$`?pTteh_~w`<1?fJH=WDehxaY z`NVdAJ9m!Ne*7J*$0k(bS1U6h@d?!ykobkz3rqZb?1v?OF7F3Oe1mEWO8gXTf+fBZ z8)1nr#b#LI4b>Ks_=EU0k@)@iHIew;_%@OF4(7bXZ^93Q#IMIUio~zR)=A}f#3ur6`4Yb{U=~RH{6JfQ#Lo?wg%aNoXe*TX%79rU@lyhAMG{{cu-R9FgFstx zN5Jg2KhV~1lWULQ(O|$r^!(K1`45ha`+$y>zWg| zSaY8IqHZlB8vw2y-S}EaY%9;Kti>X^ehWa-*>COs5(H6?ydvsaw>r6kD zwi8y6HggMY|D@M`aAf8E0K7B@oE3yj<)!ZF|4w;AhVo7!<+pq>U@aj?pJ(2wEP=D) zF3S1!%vem@BxGpcmMe89CSio;YdDK5lbK!LMV>#ozrA4=vOIQJJHy_>p zne!(oXu>T= zoqpAkyqvbtuObPLE9>zuDXZXa)tS%h+hXQ|1fM2d*gquiRpcdX-bKF%MIOz# zcoUq=0Db{=&G<6&iEvbTzwUx%ls`bf2*)h{Sis6BEd3a5eayvcSKHn4Q*~#Fgc;!R z2kv-Sg}^;U`bxWtr0sVq=j55nS;8F1n?apR{I)+2FCY}k7&A^X=F69m7g%|x(8ngq zN&sK*62Xhx=Nb6pTmp<4M*>cvgdXKP>t6DC%0CovnkD>5b2i`9xBTXofYnS0F4L@2 zJ_~Hxz3lVUPu(-5T@onw&~j`fn^k8%uWeTbtmP7XT)S-p#$;eMFVUPw-wrs-3H~@s zzrAv_D@eXmo(x$12si$Px_;{QtF!LlWaT`%M|V~divNRtT~#t4n)C2M>IJ60OF5xkt{%Xw-pAf!4*Cgn9(8Y`^BRTS;T&wM7GO(=9;JE}x~+Y@ zQM-V*5=yYqQUxP-L+|$Yl8AOyiH!^~E{ZJsT1oySH!tvdBm1 zPX@a>0yj>(nmExD4;DL1FJI~^;tW4d_u^t-BreB~GkkboATH03%kkp0&l6YR$L0C( zK1Uorrc?oS6!`G2&@0oIpbxqPeb6O#mAZuf4Woa<=-)8LWgV$=k%e=k*D~ zOqtn-8526sayuhKvky}nn0=V3;_SnWN8HQI05Apd@>Sdp=goz7#d?of$hI-23Rps!ia(Goa>AiVX8N8|tUR4IKD)V8E z0_G^6|GkiXnA&f%4>PqZ`!HkAW*=tcne4;Vwq+k?>WS>bj6Irtn30FF4^z88`!G{? zW*=s3UG`x{ewuxl+AZ0KnYtS@vP3GVT43SGFldh7#E(yvC*Z*m<;b5c(6|ri{Ap zSDID$qd)2`fOIM8ynPvU-^WD1QjWY-j=bc)1rW~b^e?VV;F=y>?V~;WFEI5=bT>X+ z8yUUrgI!U%U5W0d7TCZI=e>Ib`>*ns2IjqoJXT4Y1$L(Zk6O(hwVJ;5=2cbj+$wlu6?;^%Q|<**JCFe%CkQk3dKO^HyCc$f z-N(lt{kD%GZj6tQ*D};o13qfNM-BL>$$*b)@KFsus=-HfUzl1ZJ-`XVO#LqV?TkI2 z1(;*OvEbA2@wv;#$5`UVdU4usGSpKGj%&ejEjX^tfa4l)Tmz14z_GklA~e?nX6hH& zhZ)(|@nI2Xd2y+)Wx&T|=y)=8JQ+HceL`{1`cQy8}?-nd0B$xzQ!#tj?z^i;-eD(St) zZ8GCFnQ@!UxJ~X0Q@bGhFjF7PKFrve*@qc9J^L`VOuB&M9iw_^LB_qnpRd#WajPe; z-iwRXXK4F0Xki+(Fb!ImMtW~rmGFaWZiy`}1v7hI*!hy|CIRnIEA=Ve0=oJP|pnTF#~+e03S0l;A1-Ym<~RsgOBNbVQK~0hndQ> z=Rd)A@+NWLaXUenk-udD=1j&-#wf=dBaQoI?%F()xS3vDD$|~S7UMRHaht`s3D4?H z$1@nW8I0Qu#%)Gln6bZRX!{AmjQlD4Ftz>Jhnf0)_F=~UJqs{Tg%)JoeV!KC?T_23 z#GUHX$8#C#i9ibxXdwbEL`d&V3$vhwS|0f7Dmg(&O1Yt(DWxwy* zli7!v%5?UBf_;xYl>K%_?$16*G%{)N>kh z>on%pY0RzDNbfzjBFwD_b1TB!iu8r4{UG}=Q_1YZjIGQ9%+tZK;M2!(WQmWD(}_FX z=UtaC{m#=B>`1r}c%Ix*@ADQ?7mhek=uJ#~psvkk;GcyTe_OYTEo zjm(2a=0PL#ppo?6^I$gfU^eq$HuGS1Uzm~evkz0tqzgE~cBanAemi5rn|trej<=m> zFm5tNIo=pWX8Jhh-nBZzi_>I})VrQD8MiYTw=)?x(R1`3w?@XTk#TEe+#37BOo`qn z%P?aTvkx;OXGd9Xr|A9u}u5^#{WbD@QEp@nn%!i;UrKFr7y*@vlR(gmDg-&0QZ+Znqr z`!FMSW*?@ONf&UU_{_BLKS7wWO#A-hg*k`0CG)6reZ0w^2Xly<wM;x>)5ql*>bVG7xCmOf2wJ#^^xpIBLTKSa zXyHO=;ljQ!Q&Oh)zUl;F#_;)^ZI}^}wX@t#Et4+b1pA(fX1|@W8QF&!$z%g?Tz!XL zg*J;^zmG1>YLn!>bDQ^e^$pGV5XD#P?LmB%%~tvy&C0%Gn-bri))jkr)3-yjKKG91 z%+KM?U*74SU#jHolCW{`$eK4?UnZNo{A@lT|5L;8@hbiuFU7yfrFKR1Qv91-iqDcy z_`XYAUx>cU=a8@4=ixDYV4A#1i{BM|InTqN$pU=&#$8|SdPgOG|EA#cuM{73__cH2 ztL)&tVJ@@`UZk8W_G-?{8#KLRKKT}sZ!Y;7GUl`XDEZctZxi`elP{4mpX27+PrifV zYmj^$8S`0x5_px0_TiVY6u*py@7KFm``mo<$+wVvbII3`F`xBkw|(T>M84JJOJvOF zxcT;zPy9jdR(40nQTgN@W@rCy&HBrFt-j+K{5u@{vt``F`|H4COr6Btn)UEPB|c;8 zH;jvfLydzid;mIA9@Z>llRNI=xd)?;A^GNe`L1X`FC4n){fzk%cad+dm#=CLdb14^ zGv+fSUxS-3nJCr550_FOxZ-zmll<;ccj8X+PU*_qC*6?r%44S|){(wCBYcmhBR865 z&G@nYI<)p#XzoI2Z#FbI8NbFA`2M*`{1|8SVTunQg%2O4k5%~mOKbS>5&Cxhn(~GA z>>o(&15-`>F7Gk8C`MJ1mnoWDqgcP&zOTZg9Km%x``19R2T!oRmw z^3y9-__>uT`CP*F=NZ1VMKe{U^4@sw5MQvaAJ6a};&t%1CxoBR-Mk53>iX{tU$lrf zi#vG3n>XTv`*~Y+E`B=?@@_Zr`0q^aB|daeGeh(7*SU~*+x6cW-lMCwT;S*KS8WB* z)I}@t+X^J2NaQxpYT;h$Mkzt z)`|}%d`;q;TKrP?@p~jbvw45qqzz^{ZyMyial|Z}XiyjanZkni_u<0%2kI+Nx-wa4k=UDc-P_s$^cz2Slf z@r6Ztxui!m?h$Hw6*PcfZ+&!B*`wq5!%X8BQw2WM`tzc@{#+Qwk2CLee?ef%+udv2 zbtv-S(d$xVqnoeL;LOCUJ3O~k3*QW%qz&RzJ-NG-_TV>t%^~H?Z)fh{^K|eb+7)%z zlJG@?G@Ukv*S^Dh_fIod25aFV@6g_~az1yMIW<_*X?ybfhn4l}AGGB2L$u_8!^(MW z0CRf?V-Id!pW-_;Q{K|3c@ul1C^*}PAFdMoiSedHcl$TkzK?flx3n!e=#ac=5OnrG z%)A>Ucr%iNY0E1++`5yrTd$59)~m0&Z3mx5atQUm^1LSXCuz4`o;Ix4a(S+6N8q6k5jT>6`d`pTm0$B{?tU8?P}}@|Y`m zW(}ciP62Z>kGYv=R>bp|n|VEGC$|Ufupc`y+5u0z8^9c@CDahA2~~s&LV2`ry%BdV zeEUS}C#MJPk9OQK)IO784B@34!2|Wx>=W7uT(q1ofASLntapIcp?b!8WC^8SBL#_6R2hEHGcr>c0ss^6qJIWI;S zNBl6q5^>rO;j8e~2s|L5!#|uyw)1~*G`aVksFRx$wd#@47rz>@79G~?(Mq?=m2##H zR#xs1_|M^}v-o0Q;7>SkIN~hI6<(q1W>h(k3|7wK0mvTY30xVmrd_F7c5c)n&aRH@ zwi(Bt@FkRkH~i+UsAXRlaUQu&bL;`sdw~W|(e=7C{uQNMlNP?Xg_OKbJ-BlAVv zw+!}gfIsgi93&X*LrMvA`8{8IDQJAp=QH@Mj^d}9wa=xM7>@zkU)Y`AP_>;+&sjupz4c6WU(snZ+ z63W@sp;_;|3T`@-bIo30u|7XM$b%EoV&TxCBLc_Tv>w_1*2v(OG<=)ezv+~_T_5Nh z4AyYu>DwDvs}q`i2cew0+dA;cZ73bT-F97r((i9j_V|R-*Ab{se0WJC_&ONh^yh(eM*S4)sdu=OW zY(*9_*o*(qwr`C~6Oku{A4!{S|BW(fbI<*IeajihnxPTiTw~fFy^r_y__w*1f{&%L8p{=3P4g_obbY;yUAiB93o%B)&N{$FVLfG4d( z>xO?1`CHulVf^POrw#(%Ztyn9-FJlfuix8nR2e7#UiPN=(gsd)=`iSfnD~@GDv#A7 z{haE;O%});I7zeb={PEnlVDH(@M;gv3fV)CpzckY-!`@8R+;hFSt+OS-!aw<9*F}=XTB6u}E2Geo|T2-Jw}$-l3eQzoDGNcWBPj)0FenW@R0`O|u$SBmesE z`c&|)Pu0ut!2^t4kUjT6_T1})7K8Alpj{CS!jppVBpsfl!;^G)k`7M_z>@;-q<}t7 z1?+KY1>G7x-5x;3&Npl0`DV>3_Bo>p@atb-RzwTTa%9)Cc?D)2vTJP|d3IGE`ygc5 zjd}78ihVb8()aCe-w&@49&sBy;&ymLZK%tyzg-87`F{QF(Je|Bzy4Fcty|N+sXMxa zh47{}&B`^Db?Q~RWe^f=&_XL~-$K^Ymz1Mlr&*8a%6jta`1O}yD#!YUX7ziGwC{Rp zz5M!H{r;$|8!2mj7Z{X1d4_J~5*Fv<_x%#jH-8>}_fP#J>+4Ivz8=5)1m9Z+rfysq;_Dt>@&g;qRKz)31Lg z{Ku}wue}7%7k5v;{%+ZS;Md>kCw~3k!#6%5Q+eueX8c08`bqdN{ETPv>wg_(CG@S| znIS&?|AAls$7WGZ!m<4NAHat?!S{hK{=~a*;QICd8Eq$IDDV39pLsbx{UwZ}?RWO| z>%aM0;1e>z|L^?z&#)**@O{ra%fHv<+urr-zvTno1dx#FT>!>+^ES##@O}^DhA>pRn}2%zpi6UW4C$LXYy!iqCb`XKnf%^XOKsbKEQg9y)Wq*9Uz1 zcj5GbX_TQ4MVpkhi9GN~r|@m)(ev%@On93yfKU2k0KZhuif1XanLaXJ5Ab{WaLV|; z;EnaXF>qnG-}?tH#LqqO{rr}(nl}82zEgHH?+MKOlj~<*c(qdiUyypHY=K83=g<6+ z?ihr`1H4aAs`Y%Iz><1q;@iJKg6D7DeRH5N0e^wdZ>gt^gr5HWJM)Qdck^NDlHk#% zwHzP#z7KoLn2(?Mt(28OTX?g=D)>^D4}8m@j?JH<-4c#b{_&UTH{n?2XWXJ&`Gln( zqaTlXKKPHSf2!`}N$BCXzkqg4LC3uL9oj9S)4xBy`(3~N__!Ax^y5$S-UFeKKFz$x zYkQ}Udt(Z|)C3I14lKJb{t|2?ba4Zp_cwr{ULs<*%rd_hAyGKlxg~Swiq}?MU67Z^sxNlu7EAPOv|ZPk)QD z&vch}+kR2N2}t0bnI~i)_yPTT6_^qxDd)jUHRlH2swoE6l>69Q`uU9e$iG&17E2gP znQ1QE&i8ICW3J{*dL>}xNbugn@yf2zokfJ4cQmUVIX!0wZM<2xLO1J9fW6`-WDIHd zqCZgnVtx}B+M!wX$m_goCFe>yGK=Z@_*cjr3((2!LnayJ`}h~#OVs!AzY`ttJYVmE zPOLl~Od47l>v*u~{fC3e=P%Nd?;KLewbdGL)&akiJ%oYWr-6?{k#OjZ5!T#;TGQ2g zhBYnE85Rzar{!s6tVYcmd=dMF+j-ybjgzd44rxu_+&k>cT5Lp8M^=-NL*QLHc}pOi zODN`@CgRMhR`hh}>uS)~)hcA_dC1mj-Yi;x?&Hl+vgOc`@a~JWruQD66fUjQ*GzEth-Zcm4&*&p`JK94WJJ3XS&X+iU0D%5 zq&`~ZSdE+!As;#oe9zeH%7Vy^hCMo(<23FS-Kn8h$8($=?ER1nt?hizc+LH-SEmiT zI-MhXEOZwkbQihK)48skXvz2Kw=|I%?eb_yH>0`E4s;yV@esO+TgG^a_A!F;xlLg3=1;~>H$dd)gllgiLdhnWPKJsL~ zJvN<(JegDi3)w7kRQ!s2{4B7X0pk}hz5K#2k^#wg33>qX?LEwU+CTld@B8VWxo`fp zB<3;4)td948fQgiwN zb26~|aW?WuKV;uwy0v8(@)YHsWNq969OMUQ1#mm%r{D_U@TQBv$mMLJaILDZ<_uY1 zJJIR)dEk9M;MTc?c1Ygl<(f0&CS zXh)}9BjuMPrxyD1T@X0IhY0JGvyA$-P~VDgQ;nJ2S|??1#vAAMh5>50!m) z0vU20Z}iZfCF787A5~p)(Q@REne2DnddOe+BV?=PE_`dnK-%HIK}4NS5pX-@DfeBV zo4kC>c^_-@7m!&*-T_vT$d)7NC$i^qb}XFqs3^(|$rALIWgfeEgblfSc1QqQuJx@Fzqh3q3g#U9}@%6-9Wr;8KG z_t}8O+gjGLFR=du{!-xPU�`)vWxFBHNPRPqQ{(#u#2rf26I$ks0}};9GPz`K15L zX$N__`YZKbO}&@XpQYg97R{MV+g&`Y<14grljbyE9^ehUfWvR=p=Qlm#`|l$!{)5` zta2XuG5>$Z8%ofeyph&SyQGY~k<@%uzr4ZZo%5Ze_2JzA?zy&G;K{OReNxz-`b2eOb|lo?tjU;_I}<_Vy|( ze}SAuo_?<*6a9*MnTIpLFMCRPC(PQy+zi4GPJP*ZH_R#`&8J~!xs+w!S^P`j--n*z zFU)!J_PZZ>@Cf_*zXFdrwV8P|^D-YEbFKMC%{lde2X6&wopXZnP9ga^=a|3{ct!W~ z1s|t^52<7FPr)tapJX1)0GBtyCpI(RTz>I&(xBZ_7=xk;cdj|hzRml2Z$z!;Wt#J? zcQvPg`MsHO4cq#U?>oIK2FXPL}d=JDnqdg+D0?@V9596iC0+iC9Vhm`3~hbEB0zvbmM9%5_~$l%bel>G*> z@Dk+tO^-51NNXm(d5QN{R)Y9~3tfKZB+y?jZD7y%nC2wdAAA?tyWe}HeOyVJ)BIE9 z_5=JT?a70@fkjxkS2^t;XyN8!(Ss^y(GlLdDn+&?u!cL2ggN^e$r;Ssn$vzga+2gZ zO#Iw{bHiNTXY}8hWR0})c_*v>XMXy8(&sZ)f8cEB)9xDTx&>yN*8jS|r~^O7yVF&>a)qd}SH(h0qOT(A_4BMBgg9 z)E;#=v&Wu#6EKMj4%EU^2Ogcif_>`L?|A9x7s69}l@E36mBV?!pE{Ji3A*Pgk88=i zLq|NhJF-5BE;79PUFH8@*QL94cY)~-ZX+tK0ca*;8xci`L! zJ?+sH?~A*5@i@_=}aN&%IbVJ6OBAbh-4^)#a{L&Y8?JSC@O8a!zAU?&@;q zV`mUo=B*EE=50@D=DOc#=7v9L<{fWo=3N10-ZMa%_uY1)`dr@2j&oMGinBWQXk`;Q zCy26dn}du$&(-0Rj{Vju?6_Ll3v5*3cMkQ#&WdxN5Hin;5&I70uJT57(uXzcI`$!F z@O^p!eS6K5$IKSehIn>Z=yshmIqx}4zNe8VPlFe~^#{(4kk{%$=&`?wJj|I5yo*UnyoYSw@&><_m0^RVrzgKR)b6-%-xy;)SUf1;djeuSe z3OLVxpzQmR{VEy**6f#+_4SuE>*IX49dLi!>yQb@v;>@wA5iw49Ra;&JNbT~x%p2$F8pCWJZvHRw+_w&b~C2?*_$8atSG_WoOhM0D>*~rz2@4v&_V+= zvCuHf=No3lYQwDBA2f3}aej~nr*Uu>4cKE8cuOlAn>~Fj^8}kc9eXhwn>~G8RI|sa zp0<1YIk)1ixj1jlt>Ue@Q72);Fx0G#4&~fxs98O4C_03pqz@&1DCbr~Iky^Y%2_hD zV_}2)8RyCVIdZ@r6EC3N0=q^PQg5NPkg+=W1?rD;rkdtVRTWtaH%S|coP)frcyKj) z+D%$=?w8>G4`}tgbuVX~R^uUBG@f!l{p1ieTFdWfnL!>pczUSb}4iPoUtfirbI9Et_j zy!bobS7XhojULe!kr9IPvvQ9%CWr%n2jS=WmG1G|s%H2M$hK3rRrH+@@_63*M_U<)!Y*Q+~i_&oJoy)m6n8L_S5 zd>-9GC>0TW$yqggGne}Es4tKD@|;7gLDz~dgZ1mWr_o2G^Qb?c`txlwp6?uf8XoZ! zx{0ltb!e;DfAz8&zai`ee4K%CClPBrvfhKE%lfOIS6p*J@m0H1$2z4m8j=a^; z@WNp}-9%imDo(R37<-n|B;mDA7&9k1ssv4gco1+2zj_-hY5u@Sm<&k;9> z4vuqn_8d>@n$~dQE&NI;f%gST)ohn;wD=YKUDM9iop@L+o+s!RQ`N z5*-xZKS4Y6fibLE#W;>Cwg%ZVhv$8P>PcrqC-# z!a48}+Shd8m0)<`6~vWk$>vh6Y0z%$C}2PJ;;|i>nywnz2ioB3Ex`29^cfQzr$k}QU>`~Z~+bZd@#1k zt^gOZPK=2b+BJd;_Mi(dWxayeVTYq*7cIE3Yr)0BZ-I-1hl|};xwv3Xqi1EV(RbVL zyFSkEdyC)q&@cZ%-&21-y6>s?Wz4$Q2iApa?$xC4&NZwJ*RodhUL)wQZZZ|?<^`CK ztPk^ox{2&oF5f6JoO~5)xO~&dZf?5BagvTq$J$Z1(I5|N{ycd4M&G`0m2Y3T5BtA2 z#qK)C#J&*P#}>3zc)P4M*l)4c{94wU$Tx`VPn@hZA#Xlow=^!w+>OJNThWK7;mh)c zFQco|E2Hpd`NrYVt*i^_60=;s3SKSW=m3-TlJo(ThnCZa`=yT9)oy z-wt=Tqcbk{jy@*ZAG+*sk4g7u%uDQ=Xo)^HUSf|;m*}->06bs-W5@a+{StVc{Yrh2 zdWA>z=xgi?mhot`opmFbm{KTbjJE6p5)Vb{L#!F0?cDX~U=FiRut#uOek-N*WI^Z=$?S91yu~4CP*jAG4;%p`lgK)2I^o zaS8mmB$*e2C&4%2iS)0~qrKSLurZ4DAzB#D8|B+AYF|z!nuRC&c_KHHCm?xzTdOZM zEzKic;mD1B%yZ#F6Yx6W)gB)3#n~S|E^qQg^GTC3ewubNanR~0`T!hnew>la zV@)vn2WU?qoIf$w;$Dtd4!cT^o*UZKL~N`_1;e5KLGtyi&(b@BhBsD`$7F1zACfPb z7cK0rJ2KHSz86UvbNcIz`I_CB$KG?hYfB{db!O}tExBZ<7S1E&57S=y$)oQ}|K0jz z{dC(AlQ*=rO~apwCfnfvg8js3#SA=<@QE@2I&fA+nhfPQadz`myiJ^l88 zes@T>?{3ufds=k;F7{CK(S`26+`T*J%!fbkPx$xf8aVg775s3I?g3dtwKI?AvylzL zW9c(@aay&ewH*WHzDL+F@~tVGRJ+^(X_?B#>Bm-gJc z4w{POCKF49-$7TMd?;cHP09acqKjV2i7S#b6nM?G-FahWdPkm5E3q}4Il8g}vc;Ex zDRUxsO@DWPat6Fk3nOcUvF%NU82_)h`1%>+Ie_sW!1xbf{0A`pCCqJ~Z$b}a)BTy- z{h8bSncMxD+x?)8u+WCd`Jy|oL&l%oZ%)VSQcn_l^RUd3&$x2U=g8kj#tJj`GLPvG zJSX1ShvoKcmCHI{*p+F+3VpA~zCnfb(b14SIv&!i)1kim29;x%M{{&Do@1NooId-8 z+SWp7uh1;p$(^Wu+>Ls(*sN0h%<7VU&}y++I}dyMbTM)%I0E-ZC+;Kp#IfE) z!a9G7SvKz!WZaWUKbiEC&Fa>Zk#SE>2AQXflUdg)azMD7?zDI5hsXe7_YQZ&rLpgN zIEfDF&KElrZV^75=8d%I5UuuQ$u&zrwF{D|8ga&$pY7uW9+8?oYma;=^`j zoPAz8Y_p%!M@I+RqvHditATd4Dz(d(AY(lfu+3SD2|Anv9a_+#W!5Zk?-YaoT>JKBY$M(*l>5buMK1S?k?nRC%UxskpSj#M#*P9y zu1#B__jMB33xtq2Hf&>F?#$Kin2laX^^-fvX4$@6`;KOGJSFJvW~29cGi2Yk4c*S1 zVkh*xd&Ul4CRqt|i)9-p+v}T=7m*KnyxUnzgG8y+#c(v4PMlqJzx3xY(x-GRxwIJ~qvMbDm+>u-~kh zga4{1Usuj#|0&-zdr;_QeGqxMHDqsSrY}2#;1t|$4C=RU!`@?GP_I%$%&K&umDnJ( zKG`zpPg(0!XtWNxoruio)1-UXzs}|^pp#gw>JJ?m%w617W*KGCTO%K0^Q*>NEgx0w z1=^70vb&Fj7Ztn){^efacqg%+aq5UzElW6KzDD-x@Kw2&61B_I=u=b?|25=D&Z;kn=%$)zoACm@E?wx@TUC8=OofZ@J7Sin z3oLyrXU|`Ym{qOA*q03hZ^O*meZ!y~^mggt(AEg(X@prdXSi8CZ#cLgVpqn8FsFvt zRcfd{Iy%%I%^tiw&w#%&pUy&uH7{USFEPy85}mm=v~ymG-Hu)TjOe-0J+@Au411F~ z+%efW!LB?@_9~25dV*f5hB+-luh<_gLa)gj(yNxBgG#dx+BeCrdWQYWPUgp(lkCdq zFe^8N9TsEC{L-uPa-dz=AL6?|K1?5XR*qvlEIPMI_WB@gLVshRgR3Qd!))4`7Wyd? z`yP|Iq2Jvs{?Ur%T*WMFovg3h#(#yKx9m^(e@~EmQ&G~{zg92@?wQU1IRDwFR*`;J zv)rpH7JEtBFj>EIo8&JN*-++=eOHiq5$FG%n!Ro|cfH6{88xf~>Chx)`3>xhbg5O- zHs~^1s8_`e*^}s1%B4xZWp1wUkvsuPn40x&}I=T)C8s_SdVTq;-~qZlzqAluJ`C?w5mpJIg_H^r^pP zOi_MaUYXjBh4z?eo|Sl1*_G+;{56t4PCW`7dG)w;RBseG6X7v=Aio8|J2=UDlVNqUZz_o$?YoTc(VZ8*&jxio8* zwN5e1=S?vy;*-s)_!P5x)fBTPI>oFVHN~u(GsP@hm4U}abnxQSlJGf~mV{QIr`*jm$0?YoArq@ODh3{E*Q-nD<+^mJK)$JT^mhBs9mcKa?x*us)sgIb| zB_Dx@jbyw=>c}MYaVqmNh8wHHxt+k+I^fp?NY^AL*8l zVz=m(>5tfzstkHBgWk*Z(djaKv>FAyjNEF1n5-&lEWMoT(Q+5vdQN=Ll{)63!34;VeIg zbHF*Kv-H^rHX`u3Ri;z;`-roAIXq6{|LVn86Tkd`7hgkseqPkgUn}|1c}V^`$$y!b zzid^dQ+O4;WKJdb^;L4|&yG0DFPC%2N{hQ4j`0MxozEg`{T|-`S9t#c?3wbAtxjUR zFJnEsN_cDq>r{nVldfRiRhV`AD$KGstITpWnssV4?W;1Y=T(8Pe&N+qJe~mFZFqXu zfA~6M+x;KDZo|{N(uJ?X!@K^&*C}7r^&h@Y`R@P1*WvM9=^`6ds_y^rb;=iZrMtX6 zI@%rM2_jQRxNjXD4b0Kd+i2*mS|1&)wnxXSp|@)2Z4C4_MmOVQlHpR$|J$@=vJ~F! zXvy#(aJH5IgOD|L@qaM5dx`&p!Qb2bAA((^u9C?i*d2uV4!}%t2pd(|`#}a6=1ez>?CQIzmY5+7j0Gb>CO%Bja6_)lob{jObpugK@+hHAD&_6t! zb{GCaOa6#S3YaDZkNT&5*Y3S$%T zMcU8Ux_Fr4<6)|ghp9du>U})a`*@h<<6)YQhem+!Yn7o-bxx7$K3J)ee=XTBA!t#@R{^kah-; zgOBNoi8#3SZ?3R*Lj!m zr=9(WZYM&wlc3v4(CsApRcF&TyBwL!j9Ok_)p+TT$O3vDax#40Ni?t?#933GMILT} zSEt9bSBW?+{AQiNZXNyVBH`f^oSefEXA!@v;}e|Rk?2$xOMYbKOCr=W(aK#6Zmy1q zO(i@RJ?r@jyc~n)!f$KgyLI#6xpUn8s9upqSBK8Tos-(>J`O6naiFn3?v1Mydw;=c zw6;56%;<}&$Z}{y*4v3XvYK5LpD40`)v{e9j{oV2I_s!C8XQ)q$J^E5v0P2i&G;mD z&$sAR*S;AVU@eYLut$Si@SvM4YpjFd$Fl3xM14H;(y~``_oF&?7sbE#agb)+VV+m) zW8IOaX^IRCuQcJ2q@!Dr zZyH}SZaRKv+;n`64I15ejg7F&(x>PZ@l$N{GWr;GiajPhU9X8x zw`-!)^|5NYJvM!^j*iBzjh?KJQzzTw($moK%<%QJ@34R3%qEWij#atgW>2@8OeE01 zM7^^VcV0(+2VMF)E@;|~)Bck<<0$>28_!!i4d|jhJ>Hz2`bFC9>Jz=Q%ao$+xwJi( zwu^m#p5LZ_%Dy{!=n#4f^unVGY-*)ex zV`sD@2f2G6_C(kjnAjD#c1X`-7c)ee+(~hsZo=l`dF+x5Wpl^W+HoavgXD+TU~}Yb z#Wv|}^f@~&U|k|Vwny?`$L`3kYau`DVmbM-J+jAdC;zj`%fD50EZ8Yw$9eq=*eMwS zdweKho%_1nfyWl9G2r~__sTi)d(C;4FE&W>n|tvAyP_pv{pzpSsdr#YvpwK!YvvsA zInDW1vu14@gPqcI><6(~9~088*%jn#z!s@dcb@ry=Dhn`&Dq8m8zlLyV}E4VwCL6| zW3Vgo?2nvh&UVwBXU@V->5JGY{kvx0Wd!Z9A?%O7;MyPQ*dIARzf3uQ`wz|e8DH#; zipoiTK_vd*8;j;$Qyd8>h* zHx#l?Zzo>^df&!SSH7ou=1Y*TCFGnb`8vqAy(^#fbkBT74)AgWzP-L7hdV;tpYiME z+tXf3uZlC49kPc+)|Ib94wWyugDUyPHM81HXW#CoLyH~AOC6Nkjm~X9dbWeyzsH`c z8hfgmN^Gg7__kDY4bPTpA-awPI)>HgM%JTySjgGzd~9vzqU$KlF)NH5Y^^w#J&3K% zrVw-MpTDzh7{*{rd^qT(%*zkVI@({minfnpPE1rL{p_4;GS4j56Q}+iZ@%4-gWc;} z%#Q@~iTQ;u6KC2b$SQ-`?=qJjWY5c7)3NKb?8B4`vv+%oHHP)&!KZyc5FzxRq_z8L ziN zkcDZ=eyo^(1=VpJ?GveGqk;XGNVSW?_r|LeyHh4f{a)H~A+TcMrAX z3#11>9<@&WIJV)hN1c_=;nQwA<$r>W_)oR)r;kt`+2@hx!R<$)){XFw$v>sPYw2NLGVPz=Phva-GT5A_QVHFIg;F}YJLoqc>x$iGpyzI2jG;^J`&h4D!(FGrO6*8&@hNZz=Yv=8 zfUZ06K?YCXZ}5GB?|!W*W)x#usz0%Ng@_2&ABOY2W;$7cV9 zs5^Em-;Ox#Z!`8EAZI?yS^;f5u@}1DrNjr1Q;f_xZ6sqKM)t%um9@or;&~~ryz)&E z%VEBV3~EbxXk*r{9_2q3aVC9=I|&ycn@V|Tn{WqiJ%dF&W^i^OfJ+ZA=nxmVxi`-QXO2SAlES78HEfg8RA-&0n*R z@~>!j+WIcaiQ4c7r=9te`v!6~_*=}JdW1C?`P+Krk{)~_C+aM^B;wAi+^^BMuL*52 zuegWjug%W1A<)VI-(M1Q%K92Sx{2>TsX0fUWIYcldtD=Ibc;KG zt*<}CTFzaBZ#;^<(!=ZncVG|y3UsztS?wP%51_gBJ@BJ3}zHT^WpdA~M)kzNdfc zDEZ5Iiam}$UY)X+vz2jk@67J;?VagUIrLoteOE!(T{KR=>o#@L_&#K1^m}pie5*#9 zWurcV-NFd7HaY@5-w3mM9_JbhINykmAbkY;j}e>~o#fgqAXmHR)qbV~mDdoD)Z$Bn*h#S}qD^?yh z{@9~zmW|}P_esuk^>yF%>~+#5 zN$PO-{Vq*tA$?3*Y~_*NqsZuS?g^y1AE1JIZ4?4!G#P`B=SWbZqYz3&LU zCO(3_?+AUY8exx34`=T?+^&rd*T<>h_PF#($O9ko*DUU_lmu8d0``UuUoJpCxQ%(X zw?zv-zeo%3S`7ccK}#NdOKUSW;Q)I_s`8xT7^G&TWgc=PXfe0tIQnv{S>m> zv#O2X$)wI&%RVo60Xo#vfVCB0zWn~pQ_9Snqb1)ujIUq5-(URy*n87Bsj6$?d!IUW zs(NNPbT^~6RCm*2i#M(8SyXRKPg(`(OK8E??^8Vc8Mx=h2;l6WFt&-;* zi;XGLiVJ~fnyl>Uttm54sSw);eV3k3f%+rWj`na)*clX(?M#R_`Af|#^ zCC?R$h+j%tfcGn@N1iJ}UYaTITZqlN)mX*5-5fUT*}w*O2J96xiIYk?@9vH*M#S0{ za6`F(y*RDh=Ea76Wq62rdI;XPJGN@bh7aBCTjLpPBQcdXFy>8a*VrBSp@IL<&^&!V z!`KHHOVc0A6k~Y}y!RS-?=|q|YvIjTM>^wI!<(;;bj-OL-h4IrSCfA=y!mQ)^Y{7Q z#WsXqlM5zBgw!{N#zxuoRm!aob8auB?4=gIW=a*}40E=j5Pz666@?hZ6M4_aDDL2$ z`DSxAfO>-Yc^JW$B=653!Ouj;eXy(#B9n+?Oza2z%l-*W{++#}!aMS)@Q#crythU0 zgB5vVTj_5zR|9!JHR=sa!xzoAwu`+^={UyLl-DR<&MhRx_l@%L(+MH-_Ti%)Mwd2N zyY37|I<{3sT8<}v#Zjy$msPpJrO1uk9CX2v;wx^p<2S2g*=OP7`>v&qam?#Eta0(N z)pA8_oh9(`Jp9K!_*rcpype~G0pH|O7QS=i>=0#!&TB)TfJU%2X<4PP7gHv1)D!UP zk^BF2{n$#$qirSdjV68t4*mruei}|YzWZTd!_Q*dUW@M9$69tPeSVhx+*C7g&A>GS zhtCN4t>lj(${*w3K-a{Gl~X{xWzoI!dc$n4Mkd4ET?=r5UI7A*ZdMHHkbe z{72T;IBi|{8OW2heXBhC|(7i@M(N=*4LPA{jB>}hVu0azjUn{Vk>L= z`f7M%t&git>UnQx()Y&P`YXhrku#!mwLc^L6JN#!_)9KlpE<>Q5ASV8X2A{0>@>oIeHqP( zabVD~TiIXc8|}+@i}v$c58cu?d<|Blfk9ONlR})aA6XPdi24dkpi~ z9C(daiO;8`IqYY<*IVetvR`l1X7=~1QeR4`8~z`PPNAI^ew4ayb)R!wE|i(eS-N@H zymqtpo5xwcd90Us&+J~V5(}+5NA|!SWMVIVn%26QjLxo{PI9F{5m>3`a3$j#Fe!l9~g*s^B?Zt^ymB|++@TVS0(E8t+y`82 zDK6{%i&e;0K8FKM=Qn|G_}? zW^6|%46vU1sdAqgh&#s_weIf+1~NB8I}iVq{lr%80(d)apYg$fyvsUTWQ98f{PS~( z52RxRfqPj~Lzh+dcZu;>-4f6I`c~F5<2f&Ns}VibF`}2V?&6u*l)yF|(a-3=eGI!W zwh*3~C$Hg*>LmS)e&$z3^xESLd77=vf!}l9f8aPnp2&%s=;qbfZ(5D$jMea^v(ek; zptoIy-j+je+lJn@vpF(;A3kp>c-`4HJO@9z+;H~4hesyu!>2b_ZT2jLccJf%N7ri| z)(HLMThkMBdNv14^iMlnyEoFhv&LK#H1X*(?I1id_)KS{Wi|2s7n&KXFBT2`HkJwf zDTc38EHeHf)?k~lac*Wk93-|m_G$42>{tzt_+>0({TBE?#Uc~+_xK2Ec;l) z)d90DUafs{#;=ASYFW_GF>{)#CS@s-1 zCu#8eniVgL%u?UY^IK#L`K-%4_)q8myY$grcyp)B>Oe4brR|EvFavMv6<`n%Yf z`8=0AcgY2(+Txe3^OC3M^XwYFt9kxRTll+I-^_fTOP;&*bDy=-`8?HC$g3sq`afM@ zr)%@|otn?H>nOACqB*uzm#;5wd$N;$kr&$0>EEaR3BH*leJ%DW%lb;o+0W`V=2Kdp zf4l%!?BDbPoWyTF z0kkg9%+@ zbaFfs`eZyBzA&B%e?K0rx;~z%`cXU+xF5a;y~`SmIVJN)=8nvpNXM(_E^nj51kvq? z&)RY>`otwAbAmCpwomYU_>&j!kleGv~EA z$Xjo&aDLF&iCk|UO4<4OGP*R);|t6gt1$mYmgakN>Y0;E=r2DOx=e3gF?R}dmu0;O z?Q1^ZYiq( zTbP6R=ju7*x4AG6W6+G>h9Z7GEQ2k~#pFN%wty@3ei>|WKC)KJmz&31?4KpDCG#wM z&^Z=c2EOTu8-9E~-!;h`G>?vliesMK&--+*%)WIV(-GoxqLo(qa;e zSY%|ibF>jkRQ>o|uMEyu6>yXNhn*f(oIA3<)N?iVcX#0k&Ke!fIjidLm=p2ks99QV z5_>N(eEEY#8=kJSl>Yx}TlFe&$zz6{u18rEb^)BE-%enQqg_qGH(kF!GC$!vdHrxTHmk2WExBu;nQNTZ_%-Mw*EmP#u0|iZ+L;)? z8vXog*6mlBovEvw&iGaEz^j~Nb7Jedc0T){-r2jZMZ%w4ek+v3RaA@p^t8-Rm!FrO zO#A6e2Ei}%)0Yl{zs^rzT%N8{etLJIoV{{(H+e1XdI{TI3+s^b3zOfw{qwK~;^sJQucR5e)FJTQb3f*m# z*`6DPJ~UeAV}sNA++SihalZiP0NmSo>U&P&qk$g{{Al3E_~j|TJf-2WV`}*E+oXK# z9VvWGuzPT?k~tw>eZdan5=UK9bvpMOt>+*a7T_oWpMC9CpV_VwH#;VEu5JCoXeJ=E{m&^#0`Mp%2@e zC(I{3Pt>cF>z#!mrj65{;!I?YGm%E4*%5DaI#Qg8%r%1FCf7_F|KoEF|KlNn#&S4sl-WM&2dX1aV&&7dbyR+P?Fn z*n)G|VtH@;C~Gb9+fs7Q!iy2pmXq^#S`Mp8Eu1POgSHShxkWx&&BzQ@g2>X6gqE= zaUwZl8-9m5d^a|^lqu(DWc}(y;-;R<<5#j*$bO;N*gLin<7X!^e)e%T(`b&g3?p{e z*&`#ZbFlL-6g)Kf@om20_q~J`ldLCmnrG9upx5^px`n1$?ET09k3JtU+u~!KwiJAK z3Vdk_xX6uxuZ}e*#K$@lQe*9=soYsRmAeL~DR;#*Wp?Do!e_@htx@#*xl3xg*TZ)Dcc+{0Q?{;|S;2+&JXoQ6jG; zW{`K!?iA&0ZByps>_I#}OF6$@pv+Bkm9r_W%qN%A{>At-y#@?CSnlC%T7-?8_<~RN z=zEj&eYv)yGV}0<`1N-B#h%|t?6;SWG@Qrxll~lK?^f@oKBR2Ru#ae94->oO zu1$vdWTTOJ?Jeq?BHtyk5uGZ_`{|j%{P- zOh`EkjLfCBVQxxG*~EvIv>v?&>E3#s5q%xMj$ilEF8Ovj-_o8h{yTl#ulG~EaxN!t zx4tvc+_c@0yLR(s>HSfC*Df~g-S}^4|D{>*0E;=<$XwjbT-(q5+s<4)wEvR1rvLxH zA9j#0kGW+x_Zsi#{^RXJThLj*rZ3s&m3z6|1I(e@7m?4{?b*WK#02P;ac#zn^zr4; z#X<7-Kxgc!UHJ}kZoc7cO?&ry&ORNO1%|ugG-#WB2@od%3h)!4RbcM8hdGL`;Op?D$AwOX2HSwKG##3o_7i`d{d8zGdg=Mf{Z176 z?PdZzzin*MV8U9GnY$M9JQVeZ+&zF>LvX7oqzuo#t#}K0i5yyqlEy z`!U5{y!oT1+^4Syl`;&&dd^dN5{|9v5kIaLnTcPiE z=)24}axVD`uoL!bUr2aMnZI77<#_15D`2j%0`?v4${jh6d&!vtYt#4(ylzDQ4(>+I z2M>(pJze-Euy?ZyKfGH{qhE~2J(gjggYNVVaB)P3a(_zN-N+t%fZdnaNBPG~hJD)? zIfo_wbzSVIut)LgLjIqs>>qrcy#e}k!4pR2k{|GYl5&4ASGj-uixK_H(T4lSJ@^4I z);s2@Rf_%@{f2v9h&z}Wuk#jhzw&nc5c=7Zn_$Sj%l3I|)hc<;p1>W;yVa`T0`5TG zs_$NQpFK^jvcOGfH}@#Nj_-!RU#jn4<}POLP_DvPgR~vpO5eF$-ALMaV^y`J-OXLg z@*IzU2Dq+G^X(?Zoy<-X;9wW@A8`G5ECVg5RP7{E2OQHEu#YLIW!O73EodzsA= ze>vx9qYxj*WE|Y{<}t_CQ0^MW0sgRHLkh2HQsx-dR{rEOp#M~cxO6H~= zro@zRZ)eYL(X+~(y;jTfzOV|qiw_P&@z-!)T*J9n=<2`$<^KCU=%`1qfA->RxEDKTm`IjIW zzl=3p3jgDx~!ta?btW zikSYyM3u7$`1^w^3tU;f0g2}vX^oq9<6QKlHN^P5&mf(7vpz75xOH|laqF&}h|JhY z>|gq5&0^2A4f(N8xt7#VTJ2n78j^;;1$+A3O?y8vqZhDuevJ0Ju(#h&4E8iI{Kxmg zp7j9dW0zCrGGb|U;wM1b_6LZi-D70l?KJFJKO_EpFW(<4@Bw=}|Es6)J^#@UqYH@L zygTl)u(ztj)}( zt5oLl%h{tg*!x5um=q60pWMv;Cp<-B^cME0ce6)*g}+CAfIaF({vI`VGEd3{xckK4 zo1RVFWaytgZf6p0+)DcC8}(kbDf;N?m*P`;B6z(=$LC`Y1-ktW@Zmt_txcq7lsz*P>}$xH+zD#9TSBKquh@Yv^B#Wq zG+Ys4Oq%$e$2;v5`of>X?PVR`)o%zbO59uTOv$Nx!AaSZ2Je>zX@laS|9o<3Y= z(F-c`=pPx!=dgKDwv=-cFjDTLzag%~OyK`WJ*1sTo|G%G_ZNZJZtkWlgQtB0U&CDo zrSJk9`VBrLGvQ+!S?l4iLfi`0Dfszp(d&PE`CMes8u$bJPI%e|?km|qKTllE8aQP| zAGz6Ud(CQ2u+;NC?d_H{uf1M7f%ogx?K_b>N~G>8?kmZ+Q`+&!^Tax$UhYNFbjeLVWe=gE_AfGPPVbINO!CEswL zg0xk>0WM>0;5;`pICVSyh8NyG7hQq=?%9HFlnY>U3EDO94n(-KecDVVym4Ff>MnTW zk1211kqN!Voou{!{~11Dn3<{Y4(f54gYM^$oFA?y}Qm@ScaC{3q}` zl61bS;=KS5z6$WX`|y#@l$DvxoeqU>c+Y=B*)smrA$wE-O)rmGw3+nVzlQHCdGnqV znF@XUgL^b*`?UBE?gO07-b`3!)JX8HbU*C#zvev~d%*i$&|sr(C;AJrhq=eSSkVvC zjJ4pGHEBCI4Q=OcFviH@7a|?Fh{RBtD&x5wd(Ax2e>APK?q)vcg3&2|(YTIo0Iya* zcMNei?XCqzT~M_!8h+4vf$`(%J`b5Z;>JTzQT?0Rhbu8r{Nod z+Yoy48cnMiaGF^J{r7HAG9OInUgMaj#xZ%WkK@eT4U9GRZE&3F1;^-M(Wy&JnLE)9 z-ypVPr-xTre2tL<6>-As0>y~#9 z*8*$rK>y*1ok!P`Ifc1>V=ppP@VSQbS@;M`Ozw@}0H4Aq1)t}7cukUK!CSf4F|!Ul zX?${5ND|uYCC%Ch{eoXzFJsUREl=kAbfdCA4?U-Q3|r{gx(6C!ZUE;@fR3*|z<+Sd zf5Elb)HJT4SxwLB9_AD}Pujz&_zdRhS@T@vU<6;?XzyPGnO^W|^>ViE`_K!|^k1Q4 z(z>Z{3hk3L>-&0sMmK^V%R&zv1}%eM-lN?-eOUAk%jrl3Gn2W4hCX=T@~->oeOshY zBY^E0`lNj5)59loUhp|-J^1-ObN+b`Hz!^~U!<3?Btx-|}?RlEZqoi4ae8}>zlYo4rk3Uf*Nv|vB?J}%eaX*`FXLl((@ zk3KxU0$tQ~UqM|2~&mN`@P2KOG3 z#`n<^>-4;ec7GqAbQ4b;DmcPrCfLWT&*K$ z`mXvJzO~3S=)s%_eJ_{^+;YY~T|(dd7yKh%g%(VSN!%S`-6OK`Ie5L#OGNjd>(P+e zDZJ!*(>xa3pLoBfr3n7z4l($m8(;Qm>UwZ_e*vE!oxMySJ^X9Bc;RQ@9Ni9^y3le) zEb(agS+9|D$!})qxASw-o%iRSn#+ zCSxJE;_1U?CUf^#o#0-^Lf*Y^GV8!|0k`t*;Wo4GuaxV<-yrYBI_z0B&;1(Ued8y6J|TB}@t&t!>M8I7)?Cqs-!bMlY1*(yUJBi^zW-Vs zJ}f43;WBXhmP!4{?KrgiEaQXiEFyG_E~s&{ANqZ^NRv8^yb{{A(+$w1jET_iGr)r< z=sYtO9Vmo;Ec7KhWS%#y^KhS8By&#Q83X2NW*zs+Ng1LCb<4X?E0f>QxYzJ?^6tX} zm)B3U+_WC0KWVM6IFk(cId-^CBN#pLMy{xc4F`Pq@8K4`uZd_nWkMg7Xv z_=o0q!|UZPhi>Zq)f;A}R@M*~%H3%2cz#RiSB8F8-y6t$Ad4B9$kVz@QMFq9e%$4pQ-++k=b}O|5^9SIsBy;@E;$PZswD~U;ky`iQ&-w zoR?qwee%D;|JNxW_;fA*7wC7vkBc5+H$LdWe&<=)$3%u9OVWL;_l;nt?|kO>e$MuA zzEtZD=Lc*jplLQb1^Nfxk$ddn*BRC(BCA~NFt*6kxf{^?py_!BIG=PW_T#l;Lohk} z$(iuk+^zTu@djS!JnKASqtUjidBjEIeCRLEXMcINXO{`Dr4ITwr4gRd$KG>~a?fY} zz4kimp1JtaPcZCrR~z<-S5;>I+sw&5v~8=tlUCX-ap>$YcA~|*x$kig@z>s=>^;Px zjGM#)p-ynt_qvXIAogwd*?Y8o+GTy^vM$f;-mll|=nE!sDmd$m&cIz;8W)RSWBwl0 z?*cDgw2Vmuro0p#-0(zo)I!TQz54_9>Sgx!k%HVcK?4Br$yG=&MJO)cj*``<~{v# z7pEaMO;ci~JlIbh1=jD}#}u`m4rHc0%{Vhxrtuqs-h2Xj^26M_xPYZ}bVN&M1} zKttSta8j3NFXIkq{A6ma+4#I&x_A&fT1s(}o0XNN^wgxq-|_(KSyx(#+HxX-2Q79lvaV@4U#p zdHlGWvT%QN%|+Y;xs)~jCt0_Dncq^{c@pztQvB-^&PGAnd&Ai1{E_Td6t~K1-=3{%OpV;2ri{={k*axt|+t?-F zqMh7DcQW$rMrk+qF`mrtG3ndYtZ9dsnd^UvKK>%M)KByO5q#SCUr&1dBdq5?t^1of z89PYL_ppm{7odFi*e@yT5yKumTDgCI4>`kk>Vkm%L;OQ(sE2zaiAkw>k~{h<%DoV~ z>|ZZ5GT(oM*lzUo#`g-cBYMLP*iYUA=XYvfhs<==&A}hD#$Sd!Uk#3@gWDgFcdy}& z`kJy|Ani-j!C#{poeoc~djQ>sb^G*}=ofvHdpzr3LO14&(hc&TI5dwvD)=THxEslT zlsmMn<=`HgdEo=rr^~ScJ!!f>rfwfTGnxD9Z(L{C7v68!pZ}TR{^=`*I~4kqavu9E zbUhc`T*SSZ*p09&yQ85s>F1Z}=MCgnOWUYd`dml*AMV80gI^tet^Tf&IT;)z(eWO= zg>>>s)3WwtWNP)j;F|x^_m3`NOiqTjzJg3AUHV=}49V%=VNBuCkMX0=dHqH3X^$NX z9ni0@-br8S$0@9%q+h2z{Acb+%-!hp9@4(YPv+7T<`=#&bxRqSuPXcbdl?t-U4x!{GCK1qzlZkj zr=P5A^5roXH4R=!U%w1}UjL#gZIk;eqmN<7f9yqlAFKO3_1DPnbI|3FxMvdB+V2_m z524K$NdGU|^$4*#r*ogYwiEJR4_bZzS`x4_oeE zng0(!GvMh?Y$)ORMrJR3jWLOyd?)$yxr22tuspBlS^HJ+aXsm$@moy$z}u8BgPXPR zFpr+1Uws3ahCX}pOWt?2o4HT;C4TUxU-CU=3BR-d^gep@d_7L~kD#Gi)@0Mc*Wx$8 z#|pzNdC;#;~%A@U%o(C`d8+ZP~6T>T@fBJAEch1-S7~DNTxog2Sc{e^lIivw2 z^=P`9zrt`|xR|p4rraOir|BVjBeZ|g=YgATWUl%pbn!mzovmp{`V(C&|IvX?qFmXB zsiD7*{goJx!ULJt&oT~Q1+ModU-tr8egFetyyzgG8k%wHD7)Wwo zrsfT^rGDP&cP3m_fX|#zg+BMHUq55O_x2dZZZYHSe;<7h9881ODa)PxGhon3!p!+F z<@dd&zm47q4yJwJmBV-oT;^}&O}m-1*HY)r0rwf&Fn{?>Brv+01#$ z(z?rR#^}HJt}kQ~i;1>LKmMI@MMqgoTF_>X2buBE3i`eR{>pv83widv&3|C}=(~o! z2D}vE^mym%KldwM{Xe>2w;{9mJ<7XM=t4!m|0pq&=qvAfPff;~zLw%sXfWCbEr-EX z<9zfj#%=dn+PM&#^l_;pvY&UxM2 z%RKQ#-bbQWviG_1*ZN&zGwZlg8)wU!8^4s1=%EL-pG>BE2lmh%oO5r+XR#Tb;2qW> z2lU!SbOm?zSG4@pX$M(n+#qX^v3ji$-FVPjUyMX2#vd}em^EpbIdtM;^z0^dVfx)m zdiowcf8FQSc=~Gh{sHt~bUyam|G-$i5C5K^t?a_ciqLwOSv}y!H;Zl8%Bd9KAHinSIK>^%eZMW;3>Lg7dJZ z6?gIOf#}9QWmmm3;BZzv`c4(==AoyUk+_k$@-6Bg&f3mouc?_Q^>+`aJ>X|!v&O5e zD_!;p#ScT%-E-_q&2OeId@jVl>>c#=51b1 zF%|ugxpDv-=fOVi0;G%u5ytZC!p}A_yc9&i!lsXOG#b? zzkoiu?4nf?lGE&2;kck?+CtIgRUWjHfKx|~EZ6wH?` zF%)#U#2KL6)4X!GEVpI~IWPINQfv>}lE{j)Kdgkc2!upi$nBfz3da|^6f?a%c+y{!Ff2u znJj(h6l21e^Sv9|J>YJbswAd@#GRD;6j?iZIEpgV`6{HQEf@S-3puZ0>GDI? zdOP$oXVQ}$US9f_c1UqXIyu41pY?M)v`+HdZDh09u5^01|6Z?M{rA}1iAZ@(5*vfE z7vTFU@R2h3s{WsO<;{Iie^=H2fE~I^zH9Z;t<{{%Zt>oG)(Nh@p<+kcp|qweH{7M` zwXOah!HunHOP+V>x$FkEtdVhYL-W>pw6$fm{$JHj`|bjNS>49+Hch$TuUkLuD(gNw zByhoeo(@!7>0I&q1P%qiiu+(o#;wYuC&sCy&l=Ztc1Y^X zQD38vYwNypTwm<>DU{LkHWW&GeG2`;!}X4g(7hc_GLIP>c#oS7{pM4J_n!K_@;>zURgRnRkIA$><>RJGt%&LQe{H_3`AG%6l;UE_ zLq5%RY5Z38!)Jw7V(J@vfBK&A4M*lu_?x=S#GQLo8L!oCbH16Mw?&?j=i4FZsg!Rg zYiLVB9^~h%Gr^N5E@O>Pzt1cCIk#WRLvP8a@AK&Cyf=M%`iF=6&|7xs7TUVbql|6;h-e-BX>Q+HZo{ni zr?s8kWjFL3KdtB3m_4Mcd0PJy$GJoHzhMW5q64%mr)w(X+oa6Xz(r$PMX@Pqf9&SP z+SgTV^-kA3V6Fh>Jms7=6I)XnU*+xSePMiB(d%D(4WCYIsWZ_bPTK&??aDlTk@(lD z%$_~y&|%Madp`Qryk~*g1Iz(nb|~lcEtInu-`Rus(4wQ^=bCw~N|))J)^3=mPc@v= zn+)d@>=olP?)lFGr+u%nqf(}M`aEE+0OmZyJauNl-&^~7zuv@m<_<( zZaAkd@_oL~$0yYE{Kj9wmk3{4=M#H?IRMNK!<@NA>e4YlBtDksr+x)K-sgeyi_qD| zqO-B5)BZj-^}nIBy#W0_iq7@`|M%f1@Fwv?&r|MoZw^GA^F2Kmy%GDCnF;JdAO0eG zB)VqzI|CBuG-{$lo`_zGK8Y`knW=gjm`l;^FV(uN#G8ydVb)&Q)x+;lPY(Tc6LApH zVbP~ud?zK&O4K}v{)`Td{%o7Ja;M?j6b8qo@8N?3I=0K=J;aK6mUY3ieBZ3>KGqB9 z{Nk&qW5X=ot};{luu)>`4mT@zD*5aqi~Y{szCWG`VV@M=2<+tUq9**P@Bt7zB{~Lr zNo%CzZ0@WW*2Z2$TV&FlR?Z-BXT{ET{59I`S^Ev|{6qE!g?kP4d5G*C@Mp@12m7FF zH{CxXqho3jKYg7(R_aM3xek0JcPKWo4KVsp|#h8uSnofF`^z& zZtYOD>$Wt$b=AbVJ_CJw3HtUE0kgH*bdEg(oqP#8`4eVz_X*UEt%15TbJ-W!-KF27 zb7v8w2!0E$y!!{##PYgg-TAt9-Lk-#)~4t9rcE-7nWhejEEmq%oH5D~Z3Jt8%ONa);LXDv#%Mjg49>(bM8VVwG?oqpt5J zyRH_ze~GwB20Acz9TCGR()t65lf-YW+)d4TB>$b`~wcr2lN0oW8xBTx`Rpur4 z`QP1FnV0>C|J^St^VHw{?;ftqi~Y_2E?1eC{Hy=n;lUUHZJ-JZ(4>`wo?zgOm|m;LYdSLVfD^uPO{GB5c;DUI}b^mKzqPsC^N=;e7I z<}CT%hw*7H52KzFnkuIs^&S8F9sU{Vv4_cjrnC*{LshONcZce@KbxREiLWtC)(|fD zL)hUK1q+53Zyk{d?}P8R5Km3!RQ7#o1M{qA#Vzt*JzQF@(61k_qtVBe9@Ek`dHJz7 zgm=2L(rQ}BpiW|J?nj=VmxeFF`>x=fGc)D{^zFtpe2O&D3uYmIH5|HuhI>}SITM(x z&FBI1w!+(x5j&9QSM0zpDQVbgCkp)ZJyMqusduEVB68P8qk*}vZTgPfZo zHt!OxFNkc{=W5P(u*(4VS#$%=;AFn_G-pMwV^0#9A^O4>&+*UB07nd8`)Sf%K~5h4 z4xL7yG28PrI>C9WuZeM5v}Hsl#GQP1p%dKQWJFenjL4b;>}T#_KXVKFnH$*8M2|w9 z$t?N#u9`&aiUY-_Y9fWDH~3(yJ7NQyIw=m1(TsMhu=x#Ogu z7oZcE5%d6OJ~l@5g2n&j2cE>fmDdX-_L?~qeE^*xdL?$ZFLB;cbO`hWvC)Qid9pv# z%=>)C<{&!66)HM)6TSmaU>{-}fr&=v^F9w+Ie;Fr0KFiCE`SXy4UL3=jn3nJF8kK| z`F;U%bQOBRy;>j0SQ+{?m-o3Ma|h`K`_K!}3C8Ep3)Xvjfztl|BMb7-``;{j!QtrJ zmitxilDUyg2#s^MBJ2Jo;J&CIm>o;-|9=8M{a)h#34J4zyKXn4Th@4Vt^d#F|9tQN z%+rhM{m?A=UX7>_*tWQOh3c@x8-pt-{xU6A!J;k4E4OM>sEzV zvQ~f(8HSlR||rii(=Y(%8xs7808rDH~O p*OQM6Z7Vg*CC!gpRwel^ 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

tFNqxHUfoXVq}$XJll}^Q1kw?*D%x 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 z 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%0A=cDHUZffOZ&_)+zocvjx~*W?96#EO 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 z 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 G?*9NNo=ukk literal 0 HcmV?d00001 diff --git a/crates/l2/prover/zkvm/interface/sp1/src/main.rs b/crates/l2/prover/zkvm/interface/sp1/src/main.rs new file mode 100644 index 000000000..2ee7abe18 --- /dev/null +++ b/crates/l2/prover/zkvm/interface/sp1/src/main.rs @@ -0,0 +1,59 @@ +#![no_main] + +use ethrex_blockchain::{validate_block, validate_gas_used}; +use ethrex_vm::{execute_block, get_state_transitions, EvmState}; +use zkvm_interface::{ + io::{ProgramInput, ProgramOutput}, + trie::update_tries, +}; + +sp1_zkvm::entrypoint!(main); + +pub fn main() { + let ProgramInput { + block, + parent_block_header, + db, + } = sp1_zkvm::io::read::(); + + let mut state = EvmState::from(db.clone()); + + // Validate the block pre-execution + validate_block(&block, &parent_block_header, &state).expect("invalid block"); + + // Validate the initial state + let (mut state_trie, mut storage_tries) = db + .build_tries() + .expect("failed to build state and storage tries or state is not valid"); + + let initial_state_hash = state_trie.hash_no_commit(); + if initial_state_hash != parent_block_header.state_root { + panic!("invalid initial state trie"); + } + + let receipts = execute_block(&block, &mut state).expect("failed to execute block"); + validate_gas_used(&receipts, &block.header).expect("invalid gas used"); + + let cumulative_gas_used = match receipts.last() { + Some(last_receipt) => last_receipt.cumulative_gas_used, + None => 0_u64, + }; + + sp1_zkvm::io::commit(&cumulative_gas_used); + + let account_updates = get_state_transitions(&mut state); + + // Update tries and calculate final state root hash + update_tries(&mut state_trie, &mut storage_tries, &account_updates) + .expect("failed to update state and storage tries"); + let final_state_hash = state_trie.hash_no_commit(); + + if final_state_hash != block.header.state_root { + panic!("invalid final state trie"); + } + + sp1_zkvm::io::commit(&ProgramOutput { + initial_state_hash, + final_state_hash, + }); +} diff --git a/crates/l2/prover/zkvm/interface/src/lib.rs b/crates/l2/prover/zkvm/interface/src/lib.rs index bbadd459e..078ef26d8 100644 --- a/crates/l2/prover/zkvm/interface/src/lib.rs +++ b/crates/l2/prover/zkvm/interface/src/lib.rs @@ -1,11 +1,18 @@ pub mod methods { - #[cfg(any(clippy, not(feature = "build_zkvm")))] - pub const ZKVM_PROGRAM_ELF: &[u8] = &[0]; - #[cfg(any(clippy, not(feature = "build_zkvm")))] - pub const ZKVM_PROGRAM_ID: [u32; 8] = [0_u32; 8]; + #[cfg(any(clippy, not(feature = "build_risc0")))] + pub const ZKVM_RISC0_PROGRAM_ELF: &[u8] = &[0]; + #[cfg(any(clippy, not(feature = "build_risc0")))] + pub const ZKVM_RISC0_PROGRAM_ID: [u32; 8] = [0_u32; 8]; - #[cfg(all(not(clippy), feature = "build_zkvm"))] + #[cfg(all(not(clippy), feature = "build_risc0"))] include!(concat!(env!("OUT_DIR"), "/methods.rs")); + + #[cfg(all(not(clippy), feature = "build_sp1"))] + pub const ZKVM_SP1_PROGRAM_ELF: &[u8] = + include_bytes!("../sp1/elf/riscv32im-succinct-zkvm-elf"); + + #[cfg(any(clippy, not(feature = "build_sp1")))] + pub const ZKVM_SP1_PROGRAM_ELF: &[u8] = &[0]; } pub mod io { diff --git a/crates/l2/utils/config/errors.rs b/crates/l2/utils/config/errors.rs index 95bd3479c..b5ae77baa 100644 --- a/crates/l2/utils/config/errors.rs +++ b/crates/l2/utils/config/errors.rs @@ -14,4 +14,6 @@ pub enum ConfigError { BuildProposerEngineServerFromConfigError(#[from] engine_client::errors::ConfigError), #[error("Error building Prover server from config: {0}")] BuildProverServerFromConfigError(#[from] EthClientError), + #[error("{0}")] + Custom(String), } diff --git a/crates/l2/utils/eth_client/mod.rs b/crates/l2/utils/eth_client/mod.rs index b34f54137..f27d5e801 100644 --- a/crates/l2/utils/eth_client/mod.rs +++ b/crates/l2/utils/eth_client/mod.rs @@ -974,6 +974,18 @@ impl EthClient { .await } + pub async fn get_next_block_to_commit( + eth_client: &EthClient, + on_chain_proposer_address: Address, + ) -> Result { + Self::_call_block_variable( + eth_client, + b"nextBlockToCommit()", + on_chain_proposer_address, + ) + .await + } + pub async fn get_last_verified_block( eth_client: &EthClient, on_chain_proposer_address: Address, From a2c65eb37ea773138c56df8962e6f2fc12baf0ad Mon Sep 17 00:00:00 2001 From: Tomas Fabrizio Orsi Date: Mon, 23 Dec 2024 15:45:47 -0300 Subject: [PATCH 26/26] feat(levm): add new CI directive to show tests result summary (#1557) **Motivation** In LEVM, every time we need to check how many tests pass, we need to open the `Run tests` directive and scroll all the day down where the Summary section is presented. With this patch, a new CI directive called `Show test summary` is created, where only the Summary is shown; thus saving some time. **Description** When the CI runs the `make run-evm-ef-tests-ci` directive, it is piped to `tee` which outputs the results to stdout and also a file. Then, the `Show test summary` directive simply `awk`s said file for the summary. --- .github/workflows/ci_levm.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci_levm.yaml b/.github/workflows/ci_levm.yaml index 5b3311521..4c1266e8d 100644 --- a/.github/workflows/ci_levm.yaml +++ b/.github/workflows/ci_levm.yaml @@ -41,7 +41,12 @@ jobs: - name: Run tests run: | cd crates/vm/levm - make run-evm-ef-tests-ci + make run-evm-ef-tests-ci | tee test_result.txt + + - name: Show test summary + run: | + cd crates/vm/levm + awk '/Summary: /,0' test_result.txt test: # "Test" is a required check, don't change the name name: Test