@aztec/accounts 0.50.1 → 0.51.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"transpiled":true,"noir_version":"0.33.0+2d702155f9341cac08a960f271e3ed5450740729","name":"EcdsaKAccount","functions":[{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)","aztec(view)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"inner_hash","type":{"kind":"field"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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UF/WHOrLmkN9WXOoL2sO9WUHfkl7PuAK1DeIGkBRD7gC9Q2iHnBhnixnUSq+KUqIopQoyoiinCjqAVegNr2Iik1RSRTViaIGT1R/xBWot0U1oighilKiKCOKcqKoBzj6crnBti2bopIoqhNFDaCoB1yB+gZRjShKiKKUKMqIopwoiujojejojejojejoQnR0ITq61PtUu4hqV62vRTlRVBBFJVFUvU81zVWUyaaoARSlC1FUI4oSoih9gKjlIko3RRlRlBNFBVFUEkV1oqgBFGULUVQjihKiqAc4uqx7nk1yU5QRRTlRVBBFJVFUJ4oaQFG+EEU1oighiiI6uhMd3YmO7kRHd6KjO9HR74J/2DiXbeY3vzvN8/zW7n2sbWXYKkl4kpQnyXiSvFpSrMcRQnRTUvAkJU9S50ka5ZKWsUqyLUl3QXHuLKnxJAlPkvIkGU9SvXsv58axxKak4ElKnqTOkzRwkvrCk9R4koQnSXmSjCeJ596d596d596d596d596D596D596D596D596D596D5N6nn+Rjyxbyp+3Do3bZCWqXd4n41J2PT22f7rz5VNv1lOx6Sn/fU6cf9FNOFvU/bZ9nb7keu7v+TnVbTk+ffvy/b398/+1fv//up9MjH//ff3/428/vf/jw+cef//9fv/4/p8b/BQ=="},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":5,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"},{"name":"constructor","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(initializer)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"7b3hjuu8maV7L/t3EIjkS0nsWzk4GKR7egYBgmTQyRzgIJh7H9euLdk7JZtVZcpcJJ8/M9/uyCVpPatKfB/Z8j9//Pf//Pf//T//25//+j/+9vcf//b//PPHX/72H3/6x5//9tfLv/75Y1l//t/+/r/+9Ne3f/79H3/6r3/8+LfpDz/+86///fL//58//Pgff/7Lf/74tzCv/+cPH7bzS1p+bepXl/atXYgHW4cU1l9b2+RdZms3+RB/bX75b1v37X1cjraPc9g2j6u/Hrk//OHLvrHzv238//7hx5II5UMo60QoH0NxhPIxFE8oH0MJhPIxFCOUj6FEQvkYykwoH0NZCOVjKKxoD0JhRfsxlMSK9iAUVrQHobCiPQiFFe1BKEYoH0NhRXsQCivag1CUV7SLv4ayzplQ/Lq67VjSND0VivKKtlooyivaWqG4iSXtUSqsaY9SYVF7lAqr2qNUjFQOUmFde5QKC9ujVHC1R6kga49SwdYepOJY2x6lwtr2KBXWtkepsLY9SsVI5SAV1rZHqbC2PUoFa3uUCtr2KBW87UEqnrXtUSqsbY9SYW17lApr26NUjFQOUmFte5QKa9ujVPC2R6ngbY9SwdsepBJY2x6lwtr2KBXWtkepsLY9SsVI5SAV1rZHqbC2PUoFb3uUCt72KBW87UEqxtr2KBXWtkepsLY9SoW17VEqRioHqbC2PUqFte1RKnjbo1Twtkep4G0PUomsbY9SYW17lApr26NUWNsepWKkcpAKa9ujVFjbHqWCtz1KBW97lAre9iCV+YVrWwspbanYEoX/rsyOVA5S8aRykEoglYNUjFQOUomkcpDKTCoHqSzCqdRbrzy1tg1p3ja9nPH1uC87ff/p6cyfvjy31rpEvaXogr9hNB/G6NKOKF57exFU78fiXnksN3VJ7rdjOdh6XbcC+Gm+Homf7WhrH7eDvhzIzXFP6WDrOW1FXG/4BDeJ/e4vHjrCdAJ0hOkYdLJ0ql2/lwgdYTpzJ3TcDZ2Qo3O55bCvlZYl5LauyWeBjzSfVZePu/JZsnws7HxiSjeJL2qJJxJ/beLrVCfxyxj7YYp98lvnLmvN7Vj8zV+h42PxMe08F7dmj7wiIU8qB6k8N7V528/zclS/nefPn25P/fSwXw99+M2/HaY4757pYgnjb38rfh5LFDqWWehYnls9hXX/y2U+ZI7F9hV/9PPHI1lljiSpHMmTX0JV8kieu6oES9cjsQ9/KY6/Qsn5ybbuelty+7Cw/120G1+ypPddhPN3YefvIp6/i/n8XSzn72I9fxfp7F3442/sKLsLd/4uCv92R+c+7CKcv4sSv91xvwN1WdxNt7s4unUWt+XVb2+YOtw4Xqa+/c+3ZTa+MQ3pRkPb0Y3NFP12EUlxdZnFaVqvijtcrzh+eY8wEuGzEc7SEcaw3WGPcY2PN172++vJrueZgtaM5KeFxF+c+EriL048kfhrE3dTN4lfonP7mVq8zfznmbphztT3c6Zx3s90vrmVe/x7dBGB+xne2FGf/OEZ2no9w5vV0NEtgDDH7aDDPF8P2h8dx+Wu2faTQ3B2u/FPPAE8yngMPMp4tGe34fH0Mxe2iecqj4LdJL3h6WeI7BJPPxNno3jmecdza8iONvZp2T/GkdaU2fhyi3TbOCT/AXw/gy/gf9/YbDtDb/PyeONlf3vHstrt6b11xHc0qtORkzrSkeSgIyd1BD3UbUfWeT/mKT3TERwVHcl1xOhIpx2J636tmb3712HFo+AGBY/cGxQ82nBQ8AjJXsEvfheSy2yPN3bXd5y4NH2wlx57SUuyLQn4S1py+T9O+6dp/RTDEwNoQHZSqKKFwoxSqKKFQqNSqLcWzfsJ3j6c4huFMgpFoUoWCpfbTqHCtD+2Jkw+85Mz7zgKuNxewRd7p0BA+9KRXEcwxN12pNQ7BQJ+mI5kOmLY4V478vgWo2FxBwWPbR0UPFZ0UPAG+E7BF3yfgKEkaUm+JfhLWvKj4L1aQ3ZSqKKFwoxSqKKFQqNSqB8Fb/5HnCuFKlooXG5Lhdq/aSE4/9w0FnG5g4LH5XYKvty6NRodoSOZjiB96UiuIyhfOpLrCBa3244Um1IRs3Qk1xFca92ORNu+EiXEmHmDeskn8c440V7BF/vMw4zmpCO5jmBE6UiuI8jTbjtS6nMxs9EROpLpCPK01448fkP9jBEdFDyac1DwuMtBwSMkewVf8FMxC/aSluRbgr+kJT8K3nVfkJ0UqmihMKMUqmihjEJRqIJvEFlwrhSqaKFwue0UquSTeBdcbq/gi71TYEH70pFcRzDE3Xak1DsFVvwwHcl1BDvca0ce32JcsbiDgse2DgreAD8meOxlr+ALvk9gRUnSknxL8Je05EfBe7UrspNCFS0UZpRClSxUQqNSqB8Fb/4nnCuFKlooXG5LhSr3QNaEyx0UvAG+T/AF161oXzqS6wjSl47kOoLypSO5jmBxu+1IsSkVMUtHHnckTB251isbt9z8ZO2OhGn7ySE4+5ex8+LCwKOMpyMP2COejmxdj3gMPHW/KSDsSw6z5QOejnRWj3g6Mklt4vnC92wU/A6FMHWkhwD/28alPq16ue7SETqS6UhHeoiOnNMRhx7qtiOFPtEcHI6KjuQ6gijrtSMPPwoZHApuUPAG+DHBow0HBY+Q7BV8uc8zB4e9pCX5luAvacmPcu+XDA7ZSaFKFspjRilU0UKhUSnUj4Jv7fU4VwpVtFC43HYKVfA7FII3wHcKvtg7BTzal47kOoIh7rYjpd4p4PHDdCTXEexwrx15fIvRY3HHBB+wrYOCx4oOCh572Sv4gu8TCChJWpJvidESWlLwXm1AdlKoooXCjFKoooVCo1KoHwVv/gecK4UqWihcbkuFKvYo/WC43EHB43I7BV9u3WpoXzqS6wjSl47kOmJ0hI5kOoLF7bYjpaZUQ8zSkVxHcK3tfM9GySfxGk60V/DFPvNgaE46kulIxIjSkVxHkKfddqTU52Ii8pSO5DqCPO21I4/fUB8N8GOCR3MOCh53OSh4hGSv4At+KiZiL2lJviX4S1ryo+Bd9xnZSaGKFgozSqGKFgqNSqF+FHyDyIxzpVBFC2UUqplClXwS74zL7RV8sXcKzGhfOpLrCIa4246UeqfAjB+mI7mOYId77cjjW4wLFndQ8NjWQcFjRQcFj73sFXzB9wksRktoSbYl+Eta8qPgvdoF2UmhihYKM0qhihYKjUqhfhS8+b/gXClUyUKtuNyWClXugawrLndQ8LjcTsGXW7euaF86kuuI0RE6kukIypeO5DqCxe22I8WmVMQsHcl1pCPXuti8d+TmMNKvCa4jCfj4TFNHdipzph3pmGX/GJNb0vrhTDvyD5kz7WiKzpyp9XOmq22H4dbl45l2NNFkzrSjdfnq1+uZpg9n2tHqMnOmHa2R0uyvA+jH9na0Rnp4pjZ1tEbKnGlHa6TMmfazRvKXH70dhk2/nenHjW2fHON0M+DFeLBtSnsY083Pfdv4Z4T9LL6qRWhE+GyE/SwXT4vQXd8m4yZ/kGE/C9F6GfazxK2XYT+L5xP/HF4jvL0rtEXYz6r8JREuH1vo+lnufynCGLcF82xrLsI5bmmk5fYdUG+3Lj6e4Lodhfn5mtzRHZawpC24sDr/eGMX551kXHMbT8u+8eWuz+3GP6n3M/q0R928n/dtbXq8sb+++86naXqO+qBj4ODUB51cS1H/maF1lOGyqyKz6XGGS9gOeZlv3i6wzEc1nPe3Cd+uM+w9wJ4G1yoB9jS1Vgmwp5G1SoA9zatVAuxpWq0RoO9pVq0SYE9jX5UAe5qgqgTY0zBSJUAjwOcCZBJ5MkAmkScDZBJ5MkAmkScDZBJ5LsDAJPJkgEwiTwbIJPJkgEwiTwZoBPhcgEwiTwbIJPJkgEwiTwbIJPJkgEwizwVoTCJPBsgk8mSATCJPBsgk8mSARoDPBcgk8mSATCJPBsgk8mSATCJPBsgk8lyAkUnkyQCZRJ4MkEnkyQCZRJ4M0AjwuQCZRJ4MkEnkyQCZRJ4MkEnkyQCZRJ4LcGYSeTJAJpEnA2QSeTJAJpEnAzQCfC5AJpEnA2QSeTJAJpEnA2QSeTJAJpHnAlyYRJ4MkEnkyQCZRJ4MkEnkyQCNAJ8LcNBJZN2/nmtdwm8B/kxl0PEik8qgM0Oat6+PTMkyv2wXN7I/iXFebr6q7vARj/09EHIZdCyiI1/oyKCTHx35fEfWQYdbOvKFjgw6v9ORL3RkUEVBR77QkUEtDB35QkeMjtCRTEcGdWl05AsdGdQs0pEvdATPSkdyHcGz0pFcR/CsdCTTkYRnpSO5juBZ6UiuI3hWOpLrCJ6VjuQ6YnSEjmQ6gmelI7mO4FnpSK4jeFY6kusInpWO5DqCZ6UjjzsSJzwrHcl1BM9KR3IdwbPSkVxH8Kx0JNcRoyN0JNMRPCsdyXUEz0pHch3Bs9KRXEfwrHQk1xE8Kx3JdMThWelIriN4VjqS6wielY7kOoJnpSO5jhgdoSOZjuBZ6UiuI3hWOpLrCJ6VjuQ6gmelI7mO4FnpSKYjHs9KR3IdwbPSkVxH8Kx0JNcRPCsdyXXE6AgdyXQEz0pHch3Bs9KRXEfwrHQk1xE8Kx3JdQTPSkcyHQl4VjqS6wielY7kOoJnpSO5juBZ6UiuI0ZH6EimI3hWOpLrCJ6VjuQ6gmelI7mO4FnpSK4jeFY6kumI4VnpSK4jeFY6kusInpWO5DqCZ6UjuY4YHaEjmY7gWelIriN4VjqS6wielY7kOoJnpSO5juBZ6UimIxHPSkdyHcGz0pFcR/CsdCTXETwrHcl1xOgIHcl0BM9KR3IdwbPSkVxH8Kx0JNcRPCsdyXUEz0pHMh2Z8ax0JNcRPCsdyXUEz0pHch3Bs9KRXEeMjtCRTEfwrHQk1xE8Kx3JdQTPSkdyHcGz0pFcR/CsdCTTkQXPSkdyHcGz0pFcR/CsdCTXETwrHcl1xOgIHcl0BM9KR3IdwbPSkVxH8Kx0JNcRPCsdyXUEz0pHMh1Z8ax0JNcRPCsdyXUEz0pHch3Bs9KRXEeMjtCRTEfwrHQk1xE8Kx3JdQTPSkdyHcGz0pFcR/CsdCTTkYRnpSO5juBZ6UiuI3hWOpLrCJ6VjuQ6YnSEjmQ6gmelI7mO4FnpSK4jeFY6kusInpWO5DqCZ6UjjzsyT3hWOpLrCJ6VjuQ6gmelI7mO4FnpSK4jRkfoSKYjeFY6kusInpWO5DqCZ6UjuY7gWelIriN4VjqS6YjDs9KRXEfwrHQk1xE8Kx3JdQTPSkdyHTE6QkcyHcGz0pFcR/CsdCTXETwrHcl1BM9KR3IdwbPSkUxHPJ6VjuQ6gmelI7mO4FnpSK4jeFY6kuuI0RE6kukInpWO5DqCZ6UjuY7gWelIriN4VjqS6wielY5kOhLwrHQk1xE8Kx3JdQTPSkdyHcGz0pFcR4yO0JFMR/CsdCTXETwrHcl1BM9KR3IdwbPSkVxH8Kx0JNMRw7PSkVxH8Kx0JNcRPCsdyXUEz0pHch0xOkJHMh3Bs9KRXEfwrHQk1xE8Kx3JdQTPSkdyHcGz0pFMRyKelY7kOoJnpSO5juBZ6UiuI3hWOpLriNEROpLpCJ6VjuQ6gmelI7mO4FnpSK4jeFY6kusInpWOZDoy41npSK4jeFY6kusInpWO5DqCZ6UjuY4YHaEjmY7gWelIriN4VjqS6wielY7kOoJnpSO5juBZ6UimIwuelY7kOoJnpSO5juBZ6UiuI3hWOpLriNEROpLpCJ6VjuQ6gmelI7mO4FnpSK4jeFY6kusInpWOZDqy4lnpSK4jPXlWN9/pyM8zfbUttClM+5lGf7vxz+MJYsdjYscTxY5nfvnxpGX/m+DTh+NZxI5nFTuepHU8aRI7nlf/5b9c2NJ+PKvL/TEP+08OMVw3Xg6vcX5bHVz+M91clt3Rj56uBz3FOfOj1/043HrzR8G/Xz6TJ8TnQwyE+HyIRoifCTEue4g3Z7iFGAnx+RBnQnw+xIUQPxPiNF1DdB9CXIcNcdkNgXPTcxeWRIjPhrhMEyE+H+K4E8uXQnx0YblYS0J8PsRxJ5aCIRohfibER0ucZRp4YlmuIfrbH/0zl4GHkIe5DDtXOB/3XGZ7biEy7FxRMsRh54qCIbph54qvhfhwIeKGnStKhjjsXFEyxGHniq+F+HBJ7Iyl3yXE+V+Xfo5R4TiXYUcFt+w/+hLMcwuRceeKgiGOO1cUDHHcueJLIT5ciPhx54qCIY47VxQMcdy54kshPlwS+4HfYbVcQ1z/dennjVwOc2FUOM6FuwrHuYiv/tP+ky1N2VxCvAZj600yh9vHef98TVx/+3zN0Q9/9GGcxYuv/1uJUXwCaCTGID4DtBKj+BTQSozic0ArMYpPAq3EaMRYIkbxOaOVGMXHklZiZIopEiNTTJEYmWJKxGhMMUViZIopEmNXU8xyYxDXORNjwafWLNbVFFMvRms0xp8H//rZYdfrFpzdbvzzeGax41nEjmcVO56kdTzx5QuVeb8M2rykxxvHdTuM2a53lpz9OnanfOxL3P7ALnP6eOy+4WMPDR+7NXzsseFjnxs+9qXhY18bPvbU7rHP0tfVzLFLX1fXuG27Lv7jsUtfVzPHLn1dzRy79HU1c+zS19XMsUtfVzPHLn1dzRy79HU1c+zS19XHx75IX1czxy59XU1x/bVtunki+X7s0tfVzLFLX1czxy59Xc0cu/R1NXPs0tfVzLFLX1czxy59Xc0cu/R19fGxr9LX1cyxS19X3bR/Mcjlxtj68eilr6zZo5e+tmaPXvrqmj166etr9uilr7DZo5e+xmaPXvoqmz166ets7uiT9JU2e/Qvv9Yutn9z07LMjzdu41sTltd/f0ePIQZCfD5EI8RnvzVhef33d/QY4kyIz4e4EOKz39+xvP77O2RCLPetCa///o7+Qlxf//0dPYY47sRS7FsT1mnciaVgiONOLAVDNEJ89vs71mngieXB91Ss08BDyMNchp0ryn1rwjoNO1eUDHHYuaJgiG7YuaLctyasbti5omSIw84VJUMcdq4o9/0d6+u/v0Nx6ffheypWx6hwnMuwo0K5b01Y3bhzRcEQx50rCoY47lxR7FsTVj/uXFEwxHHnioIhjjtXFPv+jtUP/A6rB987sL7++zsayYVR4TgX8VGhjacYrl58WGglRvFxoZUYxQeGRmIM4iNDKzGKDw2txCg+NrQSo/jg0EqMRowlYhQfS1qJkSmmSIxMMUViZIopEmNXU0ytR9qv1tUUUy/GVqeYnwf/+tnBu/3gU+bgnYVd9cd0FZphkitBIMciOdrLnzOxbhvbar/l+PN4otjxzGLH8/KF4ZS2uxbmb+5xbMezih1P0jqe139zRuZ4nNjxeLHjCWLHY2LHE8WOZxY7HrG/z3e+2SGm7VGJbr65FX18POu+ok0u8/bpsO4rZXd9BKOfw8G2aY5bKGmZfGbRE9b98VR+frzkueQw79taZn1UcjF156soCPuMsO98dwZhnxK2I+zXhe0J+3VhB8J+XdhG2K8L+3ipPge3hz1PuaWoXd8oHG/eKOzeNOjHrad5O1XvUshsXVN73flCHLJ5y2YpkE30655NjJmzjavbfp3iGm6+EuVQl/rg3Hb8l/+237f/eQZr82eQSpzBsr/fePZL5gxWv5X5MsZct/VH24Z4o8JvjuJQhU/Xv8Jusvx9Szfvxb/9aIJ/D+bON/sQzJ2vDSKYO99JRDB3vvCIYO58mxLBLJFgjoOZCeY4mIVgjoNZCeY4GFa+x8GsrHzvBMPK904wrHzvBMPK904wRjDHwbDyvRMMK987wbDyvRMMK987wbDyPQ4msfK9Ewwr3zvBsPK9Ewwr3zvBGMEcB8PK904wrHzvBMPK904wrHzvBMPK9zCYNI278r2+a875kD4EM+7KNxPMuCvfTDDjrny9XT98FJcPwRjBHAcz7so3E8y4K98w78+TDkv8EIz0yje67ZkE8xQzwQRn2zEHt940wL+fqPRK9ksn6uftjbvBH5yo9Mq04Ik66ZVmyROVXjmWPFHplWDJE5Ve2ZU8URvlRKVXXiVPVHolVfJE+1kZZU5UemU07w+WmG++2+De2tjN16Xxbyf6cWOzsHksu112b6lIL6NqpeKl11zVUpFeoFVL5eWruXR1ANPN8+7eYvl5QKHiAV2O6OMB2asP6O3Ds/sRmeUuMrNt1YnzzTdFfvMjosnHwc43v1ZaLXO+YX8mblhuj//oiOzy67v9Qt5+baxzR2frp107+enmcbvHW4c47QcSb554cPhIgOsDnry7ZeR+9X4hl8NcVnI5zCVJ5xL89c9AyOXibp6ScLsY52kg//pUhxQmsI+I3YF9ROwe7CNiD2AfEbuBfUTsEewjYtcWIX5/mOOlATnsadl9alrCmpFEKd28W2ealszmg9dE2wu9rCb+o0oM2mqoajTadqhmNKZtUKpGo20ZTozm7R2k+1tCJwsxs/28f97jspvrtvb+N9u0x/Z2ctSeg0/NcdmfSnz575S77zb2Gsm0B+eX9WR17uPfdO3psm42w45gn8hm2LnDTcntJzmlGD9mM+zg8Ylshp088tnEYUePT2Qz8OyRzWbgeSKbzcAzQjYbI5u72Qy8Ls5mM/C6OJsN6+L72bAuvp8N6+K72cysi+9nw7r4fjasi+9nw7r4fjZGNnezYV18PxvWxfezYV18PxvWxfezYV18N5uFdfH9bFgX38+GdfH9bFgX38/GyOZuNqyL72fDuvh+NqyL72fDuvh+NqyL72azsi6+nw3r4vvZsC6+nw3r4vvZGNnczYZ18f1sWBffz4Z18f1sWBffz4Z18d1sEuvi+9mwLr6fDevi+9mwLr6fjZHN3WxYF9/PhnXx/WxYF9/PhnXx/WxYF9/L5u0hQ4RzPxxWxg/CYWn8IBzWxg/CMcK5Hw6r4wfhsDx+EA7r4wfhsEB+EA4r5PvhOFbID8JhhfwgHFbID8JhhfwgHCOc++GwQn4QDivkB+GwQn4QDivkB+GwQr4fjmeF/CAcVsgPwmGF/CAcVsgPwjHCuR8OK+QH4bBCfhAOK+QH4bBCfhAOK+T74Yh/N23lcMS/wXXZvhPCRz9ltr7scX94vN2Gc/yz17h9LYRf15to3r6p4sPWcbJt6zjF9NvW70GKfyeqTpBh2oOcp8zWdo3dpvUau9/qK/6VpI2m7mz7m2T+5ksY9tSN1D+X+v6zo5sss3W4fvVMSC5cUz/66pngbN/Y3Xyjpfe/EIl/e+cIiPy8fUdR8EeItGchEF0QaU9kIHr7YjcQqSPSnk5BdNmZ9owMosvOmNTlEeEA5BEhDOQR2bCIUtoQhcm7nKVJ22HHMN9se5RHtC3yuF6PeYnfMAvi39w6PJ5xrUITeMY1Ck3gGdcmNIFnXJPQAh7xLxIeHs+4BkECT2buEf865eHxjGsOmsBj4FHGgzWQxoM1kMaDNZDGgzWQxoM1UMYj/jXrTeKZp+0HzyE+xrPO26aXm3jXH7usv+ggDWrSSXE7v7RMv9E52Ha/CZvSza+ZHSUR9nO7SCO73fidOi5iROoojhGpG9QHpI6QGZE6nmdE6uijEaljpUakjuwakPqCQxuROm5uROq4uRGp4+ZGpG5QH5A6bm5E6ri5Eanj5kakjpsbkTpubkDqK25uROq4uRGp4+ZGpI6bG5G6QX1A6ri5Eanj5kakjpsbkTpubkTquLkBqSfc3IjUcXMjUsfNjUgdNzcidYP6gNRxcyNSx82NSB03NyJ13NyI1HFz41F3E25uROq4uRGp4+ZGpI6bG5G6QX1A6ri5Eanj5kakjpsbkTpubkTquLkBqTvc3IjUcXM1qTvzYT9kWzPcfbR1j2Nxj8mHOS7b+c3z9Th8ONo4TNtPDuG2JuFXTZB51OQTNcH+UZNP1MSoCTXJ1wS/SE0uW9gOPJgtH2uCkKQmn6gJBpOavHVj/3LEYDffjni4sU/L9pN9WlNmY7Mdoc3L442XuJ3fsh5M5XhXutpKV7HFdPXcrq7zfsxTeqarHsdNV1vpKmaerp7a1cVvX+Lul9kyG09h2jaeYniq2NxLoNhdFpu7HxRbqNjzfoJTck8V2yg2xe6x2NxhothfLHaYXLgml/nJF4R7sUPytxu/F5B7VxTw1AKWE72eG2h0tZWucgONrrbSVW6g0dVzu1rspkTgBhpdbaWr3ECjq6d2Na47wtm7D8N94EYXBaxaQG5IUcCqBTQKSAFrFpAbPBTw1AJ+5c6lW/cP7rs0fbwbFLgbRFvbaSv3g2irTFsLvo8vcPOIYndZbO40Uewei23clqLYQsUu9gZV4x4Wxe6y2Nwbo9hfLvYeRnD+SXth3BujgFULaBSQAp5YwJLzFbfR6GorXeUmGl1tpavcQqOr53a13MTOXTG62kpXudFFVy9bRPPbxjFmPqT3tQdWZD7XH7khRQFPLWC5z59G7jHR1Va6ym0jutpKV7nDRFfP7Wqxz0pHo6t0tZGucjOKrp7a1cyHCiN3mChg1QJy24gCVi0g94IoYNUCcoOHAp5awJKflJ65G0Rb22kr94Noq0xbC77bbubmEcXustjcaaLYXRbbKDbF1il2sTeoztzDothdFpt7YxT7i8Wu9cUrM7fR6GorXeWOG109t6vF3qA1c3OOrjbS1YVbc3T11K5WUmcLd/EodpfF5i4exRYqdjF1tnAXj2J3WWyj2BT7q8Uu+KjNhbttFLBqAbkrRgHPLGDJ+Yq7YnS1la5yV4yuttJV7orR1XO7WmxiX7krRldb6So3uqp2dUlboS4owm9dfefD/RptPtx20OZj8JHmg1yW4TPNB3xwr9p88I3afHBs2nzwStJ8Ei5Fmw/+QJsP/kCbD/5Am4/BR5oP/kCbD/5Amw/+QJsP/kCbD/5AmY+f8AfafPAH2nzwB9p88AfafAw+0nzwB9p88AfafPAH2nzwB9p88AfSfBz+QJsP/kCbD/5Amw/+QJuPwUeaD/5Amw/+QJsP/kCbD/5Amw/+QJqPxx9o88EfaPPBH2jzwR9o8zH4SPPBH2jzwR9o88EfaPPBH2jzwR9I8wn4A20++ANtPvgDbT74A20+Bh9pPvgDbT74A20++ANtPvgDbT74A2k+hj/Q5oM/0OaDP9Dmgz/Q5mPwkeaDP9Dmgz/Q5oM/0OaDP5Dhc/D9P97wB9J8Iv5Amw/+QJsP/kCbD/5Am4/BR5oP/qAqnwffdf3OB3+gzQd/oM0Hf6DNB38gzWfGH2jzwR9o88EfaPPBH2jzMfhI88EfaPPBH2jzwR9o88EfaPPBH0jzWfAH2nzwB9p88AfafPAH2nwMPtJ88AfafPAH2nzwB9p88AfafPAH0nxW/IE2H/yBNh/8gTYf/IE2H4OPNB/8gTYf/IE2H/yBNh/8gTYf/IE0n4Q/0OaDP9Dmgz/Q5oM/0OZj8JHmgz/Q5oM/0OaDP9Dmgz/Q5oM/UOYTJvyBNh/8gTYf/IE2H/yBNh+DjzQf/IE2H/yBNh/8gTYf/IE2H/yBNB+HP9Dmgz/Q5oM/0OaDP9DmY/CR5oM/0OaDP9Dmgz/Q5oM/0OaDP5Dm4/EH2nzwB9p88AfafPAH2nwMPtJ88AfafPAH2nzwB9p88AfafPAH0nwC/kCbD/5Amw/+QJsP/kCbj8FHmg/+QJsP/kCbD/5Amw/+QJsP/kCaj+EPtPngD7T54A+0+eAPtPkYfKT54A+0+eAPtPngD7T54A+0+eAPpPlE/IE2H/yBNh/8gTYf/IE2H4OPNB/8gTYf/IE2H/yBNh/8gTYf/IE0nxl/oM0Hf6DNB3+gzQd/oM3H4CPNB3+gzQd/oM0Hf6DNB3+gzQd/IM1nwR9o88EfaPPBH2jzwR9o8zH4SPPBH2jzwR9o88EfaPPBH2jzwR9I81nxB9p88AfafPAH2nzwB9p8DD7SfPAH2nzwB9p88AfafPAH2nzwB9J8Ev5Amw/+QJsP/kCbD/5Am4/BR5oP/kCbD/5Amw/+QJsP/kCbD/5AmY9N+ANtPvgDbT74A20++ANtPgYfaT74A20++ANtPvgDbT74A20++ANpPg5/oM0Hf6DNB3+gzQd/oM3H4CPNB3+gzQd/oM0Hf6DNB3+gzQd/IM3H4w+0+eAPtPngD7T54A+0+Rh8pPngD7T54A+0+eAPtPngD7T54A+k+QT8gTYf/IE2H/yBNh/8gTYfg480H/yBNh/8gTYf/IE2H/yBNh/8gTQfwx9o88EfaPPBH2jzwR9o8zH4SPPBH2jzwR9o88EfaPPBH2jzwR9I84n4A20++ANtPvgDbT74A20+Bh9pPvgDbT74A20++ANtPvgDbT74A2k+M/5Amw/+QJsP/kCbD/5Am4/BR5oP/kCbD/5Amw/+QJsP/kCbD/5Ams+CP9Dmgz/Q5oM/KM5nTVse6Xc+74ljBF6duJH4ZxJfbNt4WV0m8bRup5jSsm/r7eiQw34Qb99XcbvxOx5GfGk8TPjSeBjwpfEw30vjYbxXxrMy3UvjYbiXxsNsL40HESCNx8CjjAdrII0HayCNB2sgjQdrII0Ha6CMJ2ENpPFgDaTxYA2k8WANpPEYeJTxYA2k8WANpPFgDaTxYA2k8WANhPHECWsgjQdrII0HayCNB2sgjcfAo4wHayCNB2sgjQdrII0HayCNB2ugjMdhDaTxYA2k8WANpPFgDaTxGHiU8WANpPFgDaTxYA1+KOPBGkjjwRoo4/FYA2k8WANpPFgDaTxYg0/hWffHeK42/YbnPUYbNcYwrdvPDm5KmRi/8pzIaHHbdr0e8+GTU8Ol2/tBrDe/Ev4XnmGnew08ft62Df4Iz7DTfRt4hp3u28Az7HTfBp5hp/sm8IRhp/s28Aw73beBZ9jpvg08w073beAx8JTG84XvW1nn3encKrdf37YSA9KgJp0Ut2NIy/QbnVOFaMBFjEgdxTEidczJiNQRMgNSNzzPiNTRRyNSx0qNSB3ZNSJ1g/qA1HFzI1LHzY1IHTc3InXc3IjUcXMDUo+4uRGp4+ZGpI6bG5E6bm5E6gb1Aanj5kakjpsbkTpubkTquLkRqePmBqQ+4+ZGpI6bG5E6bm5E6ri5Eakb1AekjpsbkTpubkTquLkRqePmRqSOmxuQ+oKbG5E6bm5E6ri5Eanj5kakblAfkDpubkTquLkRqePmRqSOmxuROm5uQOorbm5E6ri5Eanj5kakjpsbkbpBfUDquLma1J35sB+yrRnuPtq6x7G4x+TDHJft/Ob5ehw+HG18SWPbONzWJPyqCTKPmnyiJtg/avKJmqALqcknaoJfpCaXLWwHHsyWDzVJCElq8omaYDCpyVs39i9HDHbz7YiHG/u0bD/ZpzVlNjbbEdq8PN54idv5LevHqTzhXelqK13FFtPVc7u6zvsxT+mprhpdpauNdBUzT1dP7erity9x98tsmY2nMG0bTzE8VWzuJVDsLovN3Q+KLVTseT/BKbmnis39GordZbG5w0Sxv1jsMLkd+OQzP/mCcC92SP5247cCzhP3rijgqQUsJnrniRtodLWVrnIDja620lVuoNHVc7ta6qbEPBldpauNdJUbaHT11K7GPWY/e/dxuOdGFwWsWkBuSFHAqgXkxhEFrFpAbvBQwFML+JU7l27dP7jv0vTxbpDjbhBtbaet3A+irTJtLfc+vtlx84hid1ls7jRR7C6LbRSbYusUu9QbVGfHPSyK3WWxuTdGsb9c7D2M4Pyz9oJ7YxSwagG5N0YBzyxgyfmK22h0tZGuem6i0dVWusotNLp6bleLTeyeu2J0tZWucqOLrl62iOa3jWPMfEjvaw+syHyu3xsFpIBnFrDc508995joaitd5bYRXW2lq9xhoqvndrXYZ6U9N6Poaitd5WYUXT21q5kPFQbuMFHAqgXkthEFrFpA7gVRwKoF5AYPBTy1gCU/KR2MttLWZtrK/SDaKtPWgu+2C9w8othdFps7TRS7y2JzW4piCxW72BtUA/ewKHaPxTbujVHsLxa71hevGLfR6GorXeWOG109t6vF3qBl3Jyjq6101egqXT2zq5XUmXEXj2J3WWzu4lFsoWKXU2fcxaPYXRabu3gU+8vFLvioTeNuGwWsWcDIXTEKeGYBC85XkbtidLWVrnJXjK620lXuitHVc7tabGKPRlfpaiNd5UZX1a4uaSuUW134ravvfLhfo82H2w7afLDn2nyQyzJ8pvkjnxn3qs0H36jNB8emzQevpM3H4CPNB3+gzQd/oM0Hf6DNB3+gzQd/IM1nwR9o88EfaPPBH2jzwR9o8zH4SPPBH2jzwR9o88EfaPPBH2jzwR9I81nxB9p88AfafPAH2nzwB9p8DD7SfPAH2nzwB9p88AfafPAH2nzwB9J8Ev5Amw/+QJsP/kCbD/5Am4/BR5oP/kCbD/5Amw/+QIbP0efrE/5Amw/+QJnPMuEPtPngD7T54A+0+eAPtPkYfESfJfnOB3+gzQd/oM0Hf6DNB3+gzQd/IM3H4Q+0+eAPtPngD7T54A+0+Rh8pPngD7T54A+0+eAPtPngD7T54A+k+Xj8gTYf/IE2H/yBNh/8gTYfg480H/yBNh/8gTYf/IE2H/yBNh/8gTSfgD/Q5oM/0OaDP9Dmgz/Q5mPwkeaDP9Dmgz/Q5oM/0OaDP9Dmgz+Q5mP4A20++ANtPvgDbT74A20+Bh9pPvgDbT74A20++ANtPvgDbT74A2k+EX+gzQd/oM0Hf6DNB3+gzcfgI80Hf6DNB3+gzQd/oM0Hf6DNB38gzWfGH2jzwR9o88EfaPPBH2jzMfhI88EfaPPBH2jzwR9o88EfaPPBH0jzWfAH2nzwB9p88AfafPAH2nwMPtJ88AfafPAH2nzwB9p88AfafPAH0nxW/IE2H/yBNh/8gTYf/IE2H4OPNB/8gTYf/IE2H/yBNh/8gTYf/IE0n4Q/0OaDP9Dmgz/Q5oM/0OZj8JHmgz/Q5oM/0OaDP9Dmgz/Q5oM/UOazTvgDbT74A20++ANtPvgDbT4GH2k++ANtPvgDbT74A20++ANtPvgDaT4Of6DNB3+gzQd/oM0Hf6DNx+AjzQd/oM0Hf6DNB3+gzQd/oM0HfyDNx+MPtPngD7T54A+0+eAPtPkYfKT54A+0+eAPtPngD7T54A+0+eAPpPkE/IE2H/yBNh/8gTYf/IE2H4OPNB/8gTYf/IE2H/yBNh/8gTYf/IE0H8MfaPPBH2jzwR9o88EfaPMx+EjzwR9o88EfaPPBH2jzwR9o88EfSPOJ+ANtPvgDbT74A20++ANtPgYfaT74A20++ANtPvgDbT74A20++ANpPjP+QJsP/kCbD/5Amw/+QJuPwUeaD/5Amw/+QJsP/kCbD/5Amw/+QJrPgj/Q5oM/0OaDP9Dmgz/Q5mPwkeaDP9Dmgz/Q5oM/0OaDP9Dmgz+Q5rPiD7T54A+0+eAPtPngD7T5GHyk+eAPtPngD7T54A+0+eAPtPngD6T5JPyBNh/8gTYf/IE2H/yBNh+DjzQf/IE2H/yBNh/8gTYf/IE2H/yBMp804Q+0+eAPtPngD7T54A+0+Rh8pPngD7T54A+0+eAPtPngD7T54A+k+Tj8gTYf/IE2H/yBNh/8gTYfg480H/yBNh/8gTYf/IE2H/yBNh/8gTQfjz/Q5oM/KM5nTVse6Xc+74ljBD6V+GJby5fVZRJP63aKKS37tt6ODjmkeT9kZ7cbv+NBCEjjMfAo40EHSOPBBkjjQQZI48EFSONBBSjjCZgAaTyIAGk8WANpPFgDaTwGHmU8WANpPFgDaTxYA2k8WANpPFgDZTyGNZDGgzWQxoM1kMaDNZDGY+BRxoM1kMaDNZDGgzWQxoM1kMaDNVDGE7EG0niwBtJ4sAbSeLAG0ngMPMp4sAbSeLAG0niwBtJ4sAbSeLAGynhmrIE0HqyBNB6sgTQerIE0HgOPMh6sgTQerIE0HqyBNB6sgTQerIEyngVrII0Ha/ApPOv+UMnVpt/wvMc47nTv5mk7bO9iJsYYto2jzTfbpqPIQ9win+NNdunk34hxTUB3KA2UvaAc1zB0h3JcG9EdynHNRXcox7Uc3aEc14j0hnId1550h3Jc09IdSmxPNyixPd2gNFD2ghLb0w1KbE83KLE93aDE9nSDEtvTC8qE7ekGJbanG5TYnm5QYnu6QWmg7AUltqcblNieblBie7pBie3pBiW2pw+UfpqwPd2gxPZ0gxLb0w1KbE83KA2UvaDE9nSDEtvTDUpsTzcosT3doMT29ILSYXu6QYnt6QYltqcblNieblAaKHtBie3pBiW2pxuU2J5uUGJ7ukGJ7ekFpcf2dIMS29MNSmxPNyixPd2gNFD2ghLb0w1KbE83KLE93aDE9nSDEtvTC8qA7ekGJbanG5TYnm5QYnu6QWmg7AUltqcblNieblBie7pBie3pBiW2pxeUhu3pBiW2pxuU2J5uUGJ7ukFpoOwFJbanG5TYnm5QYnu6QYnt6QYltqcXlBHb0w1KbE83KLE93aDE9nSD0kDZC0psTzcosT3doMT2dIMS29MNSmxPLyhnbE83KLE93aDE9nSDEtvTDUoDZS8osT3doMT2dIMS29MNSmxPNyixPb2gXLA93aDE9nSDEtvTDUpsTzcoDZS9oMT2dIMS29MNSmxPNyixPd2gxPb0gnLF9nSDEtvTDUpsTzcosT3doDRQ9oIS29MNSmxPNyixPd2gxPZ0gxLb0wvKhO3pBiW2pxuU2J5uUGJ7ukFpoOwFJbanG5TYnm5QYnu6QYnt6QYltqcTlG7C9nSDEtvTDUpsTzcosT3doDRQ9oIS29MNSmxPNyixPd2gxPZ0gxLb0wtKh+3pBiW2pxuU2J5uUGJ7ukFpoOwFJbanG5TYnm5QYnu6QYnt6QYltqcXlB7b0w1KbE83KLE93aDE9nSD0kDZC0psTzcosT3doMT2dIMS29MNSmxPLygDtqcblNieblBie7pBie3pBqWBsheU2J5uUGJ7ukGJ7ekGJbanG5TYnl5QGranG5TYnm5QYnu6QYnt6QalgbIXlNieblBie7pBie3pBiW2pxuU2J5eUEZsTzcosT3doMT2dIMS29MNSgNlLyixPd2gxPZ0gxLb0w1KbE83KLE9vaCcsT3doMT2dIMS29MNSmxPNygNlL2gxPZ0gxLb0w1KbE83KLE93aDE9vSCcsH2dIMS29MNSmxPNyixPd2gNFD2ghLb0w1KbE83KLE93aDE9nSDEtvTC8oV29MNSmxPNyixPd2gxPZ0g9JA2QtKbE83KLE93aDE9nSDEtvTDUpsTy8oE7anG5TYnm5QYnu6QYnt6QalgbIXlNieblBie7pBie3pBiW2pxuU2J5OUPoJ29MNSmxPNyixPd2gxPZ0g9JA2QtKbE83KLE93aDE9nSDEtvTDUpsTy8oHbanG5TYnm5QYnu6QYnt6QalgbIXlNieblBie7pBie15QxksgzLNG57LCfgMy2jbxnG9HvQSD4/CtjyCW29g+l98UDh1+fj9Bwd/xAcvI83HI1u0+WBQtPmgRbT54Dq0+Rh8pPlgJbT5oBq0+eAPyvOZp83ZzCE+5rPO26br6q4/dll/4UEfVMWT4naCaZl+w3Oq1fNYiRGxB2THkNhxKENiR80MiR3jMyR2A/uI2PFTQ2JHew2JHZs2JHYs3ZDYsXQjYjcs3ZDYsXRDYsfSDYkdSzckdgP7iNixdENix9INiR1LNyR2LN2Q2LF0I2KPWLohsWPphsSOpRsSO5ZuSOwG9hGxY+mGxI6lGxI7lm5I7Fi6IbFj6UbEPmPphsSOpRsSO5ZuSOxYuiGxG9hHxI6lGxI7lm5I7Fi6IbFj6YbEjqUbEfuCpRsSO5ZuSOxYuiGxY+mGxG5gHxE7lm5I7Fi6IbFj6YbEjqWrit2ZD/sx25oB76Otex6Le4w+zHHZTnC++cJZH442DtP2k0O47Un41RO0Hj35RE9WPCA9+UxPEIf05DM9wTTSk7eNbScezJaPPUFN0pPP9MToCT15K8f+rYrBbr5W8XBjn5btJ/u0pszGZjtDm5fHGy9xO79l/TicrxhYytpMWfHGlPXksq7zfsxTeqqs2G7K2kxZcfSU9dyyLn6L7nL/1zIbT2GD4qcYnmo2dxVodpfNTtwHodlKzZ73E5ySe6rZ3Lmh2X02m3tNNPurzQ6T24lPPvOTLwz3Zofkbzd+byB3sWjguQ0sJ3yTUVbK2kpZuZVGWZspK7fSKOvJZS12dyJxK42yNlNWbqVR1nPLGted4ezdxxGfW140sGYDw8StKRpYt4HcQqKBdRvIrR4aeG4Dv3IT0637J/pdmvzHunJfiLo2VFejrtRVpq7l3tYXJm4j0ew+m809J5rdZ7O5QUWzlZpd6g2rYeJuFs3us9ncJaPZX2922p/94vyTDsNxl4wG1m0gd8lo4KkNLDhkOW6oUdZmysrtNMraTFmNslLWc8tabG533B+jrM2UlVtelPVt42h+2zjGzCf3vvYki8ef9w+OW1M08NwGFvtUanDcbaKszZSVG0iUtZWyeu41UdaTy1rqI9TBc1uKsjZTVm5LUdZzy5r5pKHnXhMNrNtAo4E0sGoDuStEA+s2kFs9NPDcBpb8ALXnvhB1baiu3Bmirjp1LfjmO89tJJrdZbMD95xodp/N5gYVzVZqdrE3rAbuZtHsPpvNXTKa/dVmV/p6lhCMslLWVsrKvTfKenJZi71dK3CbjrI2U1Zu0lHWc8tay6BxP49m99ls7ufRbKVmFzNoxv08mt1ns7mfR7O/3uyCT+I07rvRwLoN5P4YDTy1gQWHLDPKSllbKSv3xyhrM2Xl/hhlPbms5eZ27o9R1mbKyi2vumVd0tYot7rwW1nfAXHnRhtQ5AaEOCA8ujggNLMOoGk+AISFFQdkANIGhG0TB4RhEgeEVREHhEkQB4RJ0AY0YxLEAWESxAFhEsQBYRLEARmAtAFhEsQBYRLEAWESxAFhEsQBYRK0AS2YBHFAmARxQJgEcUCYBHFABiBtQJgEcUCYBHFAmARxQJgEcUCYBG1AKyZBHBAmQRwQJkEcECZBHJABSBsQJkEcECZBHBAmQRwQJkEcECZBG1DCJOgAOvoYfsIkiAPCJIgDwiSIAzIAaQPCJIgDwiSIA8Ik1AX04OmT74AwCeKAMAnSgGzCJIgDwiSIA8IkiAPCJIgDMgBpA8IkiAPCJIgDwiSIA8IkiAPCJGgDcpgEcUCYBHFAmARxQJgEcUAGIG1AmARxQJgEcUCYBHFAmARxQJgEbUAekyAOCJMgDgiTIA4IkyAOyACkDQiTIA4IkyAOCJMgDgiTIA4Ik6ANKGASxAFhEsQBYRLEAWESxAEZgLQBYRLEAWESxAFhEsQBYRLEAWEStAEZJkEcECZBHBAmQRwQJkEckAFIGxAmQRwQJkEcECZBHBAmQRwQJkEbUMQkiAPCJIgDwiSIA8IkiAMyAGkDwiSIA8IkiAPCJIgDwiSIA8IkaAOaMQnigDAJ4oAwCeKAMAnigAxA2oAwCeKAMAnigDAJ4oAwCeKAMAnagBZMgjggTII4IEyCOCBMgjggA5A2IEyCOCBMgjggTII4IEyCOCBMgjagFZMgDgiTIA4IkyAOCJMgDsgApA0IkyAOCJMgDgiTIA4IkyAOCJOgDShhEsQBYRLEAWESxAFhEsQBGYC0AWESxAFhEsQBYRLEAWESxAFhEqQBxQmTIA4IkyAOCJMgDgiTIA7IAKQNCJMgDgiTIA4IkyAOCJMgDgiToA3IYRLEAWESxAFhEsQBYRLEARmAtAFhEsQBYRLEAWESxAFhEsQBYRK0AXlMgjggTII4IEyCOCBMgjggA5A2IEyCOCBMgjggTII4IEyCOCBMgjaggEkQB4RJEAeESRAHhEkQB2QA0gaESRAHhEkQB4RJEAeESRAHhEnQBmSYBHFAmARxQJgEcUCYBHFABiBtQJgEcUCYBHFAmARxQJgEcUCYBG1AEZMgDgiTIA4IkyAOCJMgDsgApA0IkyAOCJMgDgiTIA4IkyAOCJOgDWjGJIgDwiSIA8IkiAPCJIgDMgBpA8IkiAPCJIgDwiSIA8IkiAPCJGgDWjAJ4oAwCeKAMAnigDAJ4oAMQNqAMAnigDAJ4oAwCeKAMAnigDAJ2oBWTII4IEyCOCBMgjggTII4IAOQNiBMgjggTII4IEyCOCBMgjggTII2oIRJEAeESRAHhEkQB4RJEAdkANIGhEkQB4RJEAeESRAHhEkQB4RJkAY0T5gEcUCYBHFAmARxQJgEcUAGIG1AmARxQJgEcUCYBHFAmARxQJgEbUAOkyAOCJMgDgiTIA4IkyAOyABUHNCatkDS74DeI8cNfCryS7b7z/b2e+bvQTLDFwqSWbtQkMzEhYJkdi0TpB93xgzLHmRY10yQtuyLKltcbuvLcW/LAR/SNXYffqU+7uB4Zupm+3HbvNym/nHjJa6/tl1uovb2C9C4g+OpgNZ5P+4pPQVo3MHxTEBx3Y/78kfq498tI/UTUl/8frVYbs7y8NfCresedpoOLi3jTo/NIBp3LlVB5KewHYifYnjqSjTucNwjzXEndB2a87rTTO4pmuNqgg5phnFdhU/zTnNOOekz7Vs752+lz9FZpn2xktJym/nBDw7XH2zuANC4WqMRQONqjUYAjas1GgFkANIGNK7/aATQuPajEUDjCo1GAI3rKBoBNK52aAOQYRLEAWESxAFhEsQBYRLEARmAtAFhEsQBYRLEAWESxAFhEsQBYRK0AUVMgjggTII4IEyCOCBMgjggA5A2IEyCOCBMgjggTII4IEyCOCBMgjagGZMgDgiTIA4IkyAOCJMgDsgApA0IkyAOCJMgDgiTIA4IkyAOCJOgDWjBJIgDwiSIA8IkiAPCJIgDMgBpA8IkiAPCJIgDwiSIA8IkiAPCJHwO0OVgd0Bpeh2gFZMgDgiTIA4IkyAOCJMgDsgApA0IkyAOCJMgDgiTIA4IkyAOCJOgDShhEsQBYRLEAWESxAFhEsQBGYC0AWESxAFhEsQBYRLEAWESxAFhEqQBLRMmQRwQJkEcECZBHBAmQRyQAUgbECZBHBAmQRwQJkEcECZBHBAmQRuQwySIA8IkiAPCJIgDwiSIAzIAaQPCJIgDwiSIA8IkiAPCJIgDwiRoA/KYBHFAmARxQJgEcUCYBHFABiBtQJgEcUCYBHFAmARxQJiEzwHyPm4/28/+hYAwCdqAAiZBHBAmQRwQJkEcECZBHJABSBsQJkEcECZBHBAmQRwQJkEcECZBG5BhEsQBYRLEAWESxAFhEsQBGYC0AWESxAFhEsQBYRLEAWESxAFhErQBRUyCOCBMgjggTII4IEyCOCADkDYgTII4IEyCOCBMgjggTII4IEyCNqAZkyAOCJMgDgiTIA4IkyAOyACkDQiTIA4IkyAOCJMgDgiTIA4Ik6ANaMEkiAPCJIgDwiSIA8IkiAMyAGkDwiSIA8IkiAPCJHwOUJjW7WeHaBlA67z96HV1122X9Vfo2IETQk9xO+y0TL+Ffu5vECahH5gr1qEjmBiKjmBiMzqCifnoCKYBsx+YGJWOYGJfOoKJqekIJgaoI5gYoH5gJgxQRzAxQB3BxAB1BBMD1BFMA2Y/MDFAHcHEAHUEEwPUEUwMUEcwMUDdwFwnDFBHMDFAHcHEAHUEEwPUEUwDZj8wMUAdwcQAdQQTA9QRTAxQRzAxQP3AdBigjmBigDqCiQHqCCYGqCOYBsx+YGKAOoKJAeoIJgaoI5gYoI5gYoD6gekxQB3BxAB1BBMD1BFMDFBHMA2Y/cDEAHUEEwPUEUwMUEcwMUAnwHTmw34ktmZw+mjrfpaLeww0zHHZDnue43XjcLTx9ahDuKUfftFHGQ1MP+CYRqaPlBqZPharZ/q2cwxmy0f6aK+R6Rv0e6a/f/dPsJsv/znc2Kdl+8k+rSmzsdlOxubl8cZL3M5vWT+OnQG7RwUrVxAnSQW/VcF13o95Sk9VEJNKBStXEP9LBb9TwWX/vlC/zJbZeArTtvEUw1N9xVjT14b6ajh2+np+X+f9BKfknuordwXoa0t95T4Gff218eR2jpPP/OQLmb2vIfnbjd97xR0SevWdXpUTlGZUkArWrSC3aahg5Qpym4YKfquCxRy5cZuGClauILdpqOB3KhjXnczs3ccxl9sp9OqEXkVue9CrM3rF7Ql6dUavuI1Ar77Tq6/c9nLr/rldl6aP9xwi9xwoYfUSGiWkhCeXsOAbrCK3KOhrS33lfgZ9bamv3Pygr+f3tdgbAiN3SuhrS33lDgx93fqa9uc2OP/kHD9zB4ZendEr7sDQq2/0quBIMnOzhgpWriC3aqhg5QoaFaSC36lgsdl15t4LFaxcQW6n9FzBaH7bOMbM54i+9nn1zOd/Z2570Kvv9KrcJ99m7mRQwcoV5OYEFaxbwYX7GFTwWxUs9uHLhVseVLByBbnlQQW/U8HM554W7mPQqzN6ZfSKXp3QK+440KszesVtBHr1nV6V/Ojlwj0HSli9hNx1oIRnl7Dg26AWblHQ14b6unI/g7621FduftDX8/ta7A2BK3dK6GtLfeUODH39tXGlR+yvRgWpYN0Kcl+HCn6rgsXeYrNyC4gKVq4gN4Co4HcqWMsNca+IvrbUV+4V0dfz+1rMDSXuFdHXlvrKvSL6uvW14DPnEvd06NUZveLeC736Rq8KjiTJqCAVrFtB7r1QwcoV5N4LFfxWBcvNrtx7oYKVK8jtlDMquKStJ2514bcKvsfOXYEKsacJuV0ldhxtldhRmGfHPs0HsWP4qsRuxF4jdkxOldixF1ViZ2KvEjtTapXYmVJrxO6YUqvEzpRaJXam1CqxM6VWid2IvUbsTKlVYmdKrRI7U2qV2JlSq8TOlFojds+UWiV2ptQqsTOlVomdKbVK7EbsNWJnSq0SO1NqldiZUqvEzpRaJXam1BqxB6bUKrEzpVaJnSm1SuxMqVViN2KvETtTapXYmVKrxM6UWiV2ptQqsTOl1ojdmFLPjv3oA5LGlFoldqbUKrEzpVaJ3Yi9RuxMqVViZ0qtEjtT6hmxP3iS1HvsTKlVYmdKrRF7ZEqtEjtTapXYmVKrxM6UWiV2I/YasTOlVomdKbVK7EypVWJnSq0SO1NqjdhnptQqsTOlVomdKbVK7EypVWI3Yq8RO1NqldiZUqvEzpRaJXam1CqxM6XWiH1hSq0SO1NqldiZUqvEzpRaJXYj9hqxM6VWiZ0ptUrsTKlVYmdKrRI7U2qN2Fem1CqxM6VWiZ0ptUrsTKlVYjdirxE7U2qV2JlSq8TOlFoldqbUKrEzpdaIPTGlVomdKbVK7EypVWJnSq0SuxF7jdiZUqvEzpRaJXam1CqxM6VWiZ0p9fWxh2liSq0SO1NqldiZUqvEzpRaJXYj9hqxM6VWiZ0ptUrsTKlVYmdKrRI7U2qN2B1TapXYmVKrxM6UWiV2ptQqsRux14idKbVK7EypVWJnSq0SO1NqldiZUmvE7plSq8TOlFoldqbUKrEzpVaJ3Yi9RuxMqVViZ0qtEjtTapXYmVKrxM6UWiP2wJRaJXam1CqxM6VWiZ0ptUrsRuw1YmdKrRI7U2qV2JlSq8TOlFoldqbUGrEbU2qV2JlSq8TOlFoldqbUKrEbsdeInSm1SuxMqVViZ0qtEjtTapXYmVJrxB6ZUqvEzpRaJXam1CqxM6VWid2IvUbsTKlVYmdKrRI7U2qV2JlSq8TOlFoj9pkptUrsTKlVYmdKrRI7U2qV2I3Ya8TOlFoldqbUKrEzpVaJnSm1SuxMqTViX5hSq8TOlFoldqbUKrEzpVaJ3Yi9RuxMqVViZ0qtEjtTapXYmVKrxM6UWiP2lSm1SuxMqVViZ0qtEjtTapXYjdhrxM6UWiV2ptQqsTOlVomdKbVK7EypNWJPTKlVYmdKrRI7U2qV2JlSq8RuxF4jdqbUKrEzpVaJnSm1SuxMqVViZ0qtELubmFKrxM6UWiV2ptQqsTOlVondiL1G7EypVWJnSq0SO1NqldiZUqvEzpRaI3bHlFoldqbUKrEzpVaJnSm1SuxG7DViZ0qtEjtTapXYmVKrxM6UWiV2ptQasXum1CqxM6VWiZ0ptUrsTKlVYjdirxE7U2qV2JlSq8TOlFoldqbUKrEzpdaIPTClVomdKbVK7EypVWJnSq0SuxF7jdiZUqvEzpRaJXam1CqxM6VWiZ0ptUbsxpRaJXam1CqxM6VWiZ0ptUrsRuw1YmdKrRI7U2qV2JlSq8TOlFoldqbUGrFHptQqsTOlVomdKbVK7EypVWI3Yq8RO1NqldiZUqvEzpRaJXam1CqxM6XWiH1mSq0SO1NqldiZUqvEzpRaJXYj9k/Fvvj9Z6+ry8U++RC3zSd/E7yPh9vHPcLL2tJf8/aHP3zZN3b+t43fkTIBd4eU6focpIu/Il3nDFJ/+ZHbeaZpehIpk3t3SLEC3SHFOHwdaQoZpGknlNJyxWmHy939MJw5u934J6AFNyEOCIshDgjfIQ4IMyIOyACkDQgjIg4IvyEOCFshDgj3IA4Ik6ANaMUkiAPCJIgDwiSIA8IkiAMyAGkDwiSIA8IkiAPCJIgDwiSIA8IkaANKmARxQJgEcUCYBHFAmARxQAYgbUCYBHFAmARxQJgEcUCYBHFAmARpQH7CJIgDwiSIA8IkiAPCJIgDMgBpA8IkiAPCJIgDwiSIA8IkiAPCJGgDcpgEcUCYBHFAmARxQJgEcUAGIG1AmARxQJgEcUCYBHFAmIRPAbpM9NvWl4XV789ofA9y3Ik/uu1IQgwhE+Q6bzn+9qjLX8/f9n7cufxLMaa4HUhapt9iPPXPhR93Km8Cz7gzeRN4xp3Im8Bj4FHGM+403gSecWfxJvCMO4k3gWfcObwJPEz3yngC1kAaD9ZAGg/WQBoP1kAaj4FHGQ/WQBoP1kAaD9ZAGg/WQBoP1kAZj2ENpPFgDaTxYA2k8WANpPEYeJTxYA2k8WANpPFgDaTxYA2k8WANlPFErIE0HqyBNB6sgTQerIE0HgOPMh6sgTQerIE0HqyBNB6sgTQerIEynhlrII0HayCNB2sgjQdrII3HwKOMB2sgjQdrII0HayCNB2sgjQdroIxnwRp8Co8zH/afbWsG0OU22rof9+IeIwpzXLYDmed43TgcbRym7SeHcMsz/OKJZuiLJ16iL56IjL54Gjyb4mk7mWC2fOSJKumLJ26lMZ7709uD3Ty+/XBjn5btJ/u0pszGZnvWNi+PN17idn7LejA0YYQoVfFS4bEo1a9Srfs3gcQpPVUq7BulKl2qFWdIqd43XnzcNl5my2w8hWnbeIrhqQZiOWlg3QbiZWngdxo47yc4JfdUAzHJNLBuA40GdtvAMLmdzOQzP/mS9d7AkPztxu9NwarTlNLCbEXtU6ripULtU6ripULtU6riFha1T6lKlyqh9inVr2Ne96xn7z6MdAkFT1M+1xRUOU35XFNQ2jTlc00xmkJTfh7zV25+uHX/5JxL00dPnfDU1OqEWmGqqdXXa1Xw7SoJrU0D6zYQB04D6zYQYU4Dv9PAUm+YChN2nQbWbSDWvucGpv0UnX9uZr1UmKbQlE81BWtPUwov1sNklIpSlS4Vep9SFS8Vcp9SFZ/T8PWUqnipUPBtlSqa3486Zj6B8LVPjD7+vN6loDSFpvzcuNinYILDflOq4qVCaFOq4qXCfVOqX6Uq9dGq4NDklKp4qYxSUar3Y374iYngcN805XNNQWjTlM81BUtNUz7XFNQzTXnfuOAHq4LDU1Or8rXymGpq9fVaFXxTiUdr08C6DcSB08C6DUSY08DvNLDYG6a80UAaWLWBWPt+G1jpccTBI/gpVfFScS+AUv0qVbG3N3huG1Cq4qXipgGlqmo2AvcXaGDdBnJ/gQZWNRuB+ws0sG4Dub/QcwMLPuEoGE2hKZ9qCr6ephRfrOPrKVXxUuHrKVXxUuHrKVXxOQ1fT6lKl8pQ8J8r1ZI28m514bdSvQeJSS4UJEK0UJB4vUJBGkF+OchpPggSK1QoSExIoSCZ/gsFycRbKEimvDJBRiabQkEy2RQKksmmUJBMNoWCNIIsEySTTaEgmWwKBclkUyhIJptCQTLZlAlyZrIpFCSTTaEgmWwKBclkUyhII8gyQTLZFAqSyaZQkEw2hYJksikUJJNNmSAXJptCQTLZFAqSyaZQkEw2hYI0giwTJJNNoSCZbAoFyWRTKEgmm0JBMtmUCXJlsikUJJNNoSCZbL4e5NHHQ1Ymm0JBGkGWCZLJplCQTDaFgmSyKRQkk02hIJlsPhfkg6cp/AwyMdkUCpLJplCQTDaFgmSyKRSkEWSZIJlsCgXJZFMoSCabQkEy2RQKksmmSJA2MdkUCpLJplCQTDaFgmSyKRSkEWSZIJlsCgXJZFMoSCabQkEy2RQKksmmTJCOyaZQkEw2hYJksikUJJNNoSCNIMsEyWRTKEgmm0JBMtkUCpLJplCQTDZlgvRMNoWCZLIpFCSTTaEgmWwKBWkEWSZIJptCQTLZFAqSyaZQkEw2hYJksikTZGCyKRQkk02hIJlsCgXJZFMoSCPIMkEy2RQKksmmUJBMNoWCZLIpFCSTTZkgjcmmUJBMNoWCZLIpFCSTTaEgjSDLBMlkUyhIJptCQTLZFAqSyaZQkEw2ZYKMTDaFgmSyKRQkk02hIJlsCgVpBFkmSCabQkEy2RQKksmmUJBMNoWCZLIpE+TMZFMoSCabQkEy2RQKksmmUJBGkGWCZLIpFCSTTaEgmWwKBclkUyhIJpsyQS5MNoWCZLIpFCSTTaEgmWwKBWkEWSZIJptCQTLZFAqSyaZQkEw2hYJksikT5MpkUyhIJptCQTLZFAqSyaZQkEaQZYJksikUJJNNoSCZbAoFyWRTKEgmmzJBJiabQkEy2RQKksmmUJBMNoWCNIIsEySTTaEgmWwKBclkUyhIJptCQTLZFAkyTkw2hYJksikUJJNNoSCZbAoFaQRZJkgmm0JBMtkUCpLJplCQTDaFgmSyKROkY7IpFCSTTaEgmWwKBclkUyhII8gyQTLZFAqSyaZQkEw2hYJksikUJJNNmSA9k02hIJlsCgXJZFMoSCabQkEaQZYJksmmUJBMNoWCZLIpFCSTTaEgmWzKBBmYbAoFyWRTKEgmm0JBMtkUCtIIskyQTDaFgmSyKRQkk02hIJlsCgXJZFMmSGOyKRQkk02hIJlsCgXJZFMoSCPIMkEy2RQKksmmUJBMNoWCZLIpFCSTTZkgI5NNoSCZbAoFyWRTKEgmm0JBGkGWCZLJplCQTDaFgmSyKRQkk02hIJlsygQ5M9kUCpLJplCQTDaFgmSyKRSkEWSZIJlsCgXJZFMoSCabQkEy2RQKksmmTJALk02hIJlsCgXJZFMoSCabQkEaQZYJksmmUJBMNoWCZLIpFCSTTaEgmWzKBLky2RQKksmmUJBMNoWCZLIpFKQRZJkgmWwKBclkUyhIJptCQTLZFAqSyaZMkInJplCQTDaFgmSyKRQkk02hII0gywTJZFMoSCabQkEy2RQKksmmUJBMNkWCnCcmm0JBMtkUCpLJplCQTDaFgjSCLBMkk02hIHuabCxeg1xTZusUpl8bp9nv2/q4/ApGe1KJftmDiT7bsHXZD9uv600PpuUwdue2I7/8t/nftn+PR3v+qB6P9lTxtXiCm/x22MHF9ePpusO1//b7NWVOdInbsS/LzR+0cHQwcXXx18ZxDf55Us61e+j+ZYe+2LZxXGaXOXS3hP2is8S4bx1/HXZo87CtzcOOzR325b///b/+/Je//Pl//re//O0//vSPP//tr39/e+X09v/4yf/x+DuIL39Rt2P1N3u//H27BPH2suNv3M2/zH3vZf57LwtffNnlX+5nMPHy4sPV3Jy2P9/LfLOGMvdzn28vW773svV7L0vfetnxt4rlX+a+97JDeut+lV3d8cvC915m33tZ/N7L5u+9bPney9bvveywJeuy/eVal3T0suNvaMi/zH3vZf57Lwvfe5l972Xxey87bsm6bi9Ly+HLlu+9bP3ey9K3Xnb8tNv8y9z3Xua/97LDlqR9/E/+8Bfn+CmV+ZfF771s/t7Llu+9bP3ey9K3Xnb85LDblx1yO35OVv5l/nsvO26J7XLDDn+7j5/4k39Z/N7L5u+9bPney9bvvSx962XHT2FI8zZhu8nib6/7w1c23nbiXrET/4qdhFfsxF6xk/iKncyv2Mnyip2sr9hJesFO1lf8xq+v+I1fX/Ebv77iN359xW/8+orf+PUVv/HrK37j11f8xq+v+I1Pr/iNT6/4jU/P/57EZdk19nVF5JPt+4gv2Mfz3ZqnbWV3uQt6uI90/j7cNL1iJ+4VO/nqxWR7oVvP74tz6QU78dMrduJesZPnVwbzfv9q9uF4J+EVO7FX7CS+YifzK3ayFPhTkfad2PFO1lfsJL1gJ2F6xU7cK3biX7GT8IILUbBX7CS+YifzK3ayvGIn6yt28ooFm71iwWavWLCZf8VOXvEbb6/4jbdX/MbbK37j7RW/8faK33h7xW98fMVvfHzFb3x8xW98PPU3/vIv/7alj+mPx+9BjXG7sericn2z4tt698PG6/4ey3WZH296GVPn7ef66WZ58+vM0x+T1uEcvymz4vE4sePxYscTxI7HxI4nih3PLHY8i9jxiP15dmJ/n73Y32cv9vfZi/199mJ/n73Y32d/4t/nbRfP/8lNbnvnb/Lx6VNexI5nFTuepHU8YRI7Hid2PF7seILY8ZjY8USx4xH7+xzE/j4Hsb/PQezvs4n9fTaxv88m9vfZTvz7vO3Czt9FPH8X8/m7WM7fxXr+LtLpu4jT+btw5+/Cn7+L50vrJme79r99x8l1J8sLdjI/j9z5uN/A8Is/2om94kziK3byCvBzKrCTddp3cvMhuutOlukVO3Gv2Il/xU7CK3ZS4vdk8dedrEc7ia/YyfyKnSyv2Mn6ip2kF+xknV6xE/eKnfhX7CS8YicFfuMv199tYxfd0U7iK3Yyv2Inyyt2sr5iJ+kFO0nTK3biXrET/4qdFPiNd+v+7B6X0tFO7BU7ia/YyfqC0SGlF+zkzkeNiu/FvWQv9pK9xJfsZX7JXpaX7OXcX5fLP8Lbpn52x+/+W/bXLqt7vB+btmMyn9l03Vc4t0+HfPuMwz+/KE0vx50aPe7j9xO2cOCu1QP3rR54aPXArdUDj60e+NzqgS+tHnirF07X6pXTt3rl9K1eOX2rV07f6pXTt3rl9KddObcdPH2Fi5ujsGhHO1jO3sF69g7SyTsI09k7ePov5bp12tZwtAN/9g7C2Tuws3fw7G9ynPbHokzr0Q7ms3ewnL2D9ewdpJN3YM/WNPrtghD94Q7s7B08C3kO+2M2oj/awXryDuLZEcWnf5Ntb1FcjnYwn72D5ewdrGfvIJ28g3k6ewfu7B34s3cQzt6Bnb2Dgr/J83y0g/nsHTz/m7z/sVsOd/D0b/L+5/rODtLJO1ims3fw7G/yPO3PPZvS0Q782TsIZ+/Azt5BPHsHT/8mp+2tD/PNd4rc7GA5ewfr2TtIJ+9gnc7egTt7B/7sHYSzd2Bn7yAW3MHRb/I6n72D53+Tt3enz/5wB0//Ju/a8c4O0sk7SNPZO3j6mpyZMpM/ewfh7B3Y2TuIZ+9gPnsHZ8uQdJ4MufzD3jb083rnUWSz7W/GnOfcAzbM7XcqzH88lfXeA7S+tpPbr0jObFzu6SBvB+9bPvjQ8sFbywcfWz74ueWDX1o++LXlg08NH/ydp5o1cvAtX2F9y1dY3/IV1rd8hfUtX2F9y1dY3/IV1qtcYbfjefFFs9xzdC4HH6aWD961fPC+5YMPLR+8tXzwseWDn1s++KXlg19bPviWr7DW8hXWWr7CWstXWGv5CmstX2Gt5SusqVxht+NRuWhux6NyHdyOR+XS9ut4osrVajselQvQdjwq15TteFQuE9vxqPzl345H5Y/5djwv/n3PPA3zckTzJHdEL+505uEyb0c0y2W0yB3RqnZEi3v1ET18AOnbEXm5IwpyR2RyRxTljujlf48ePmjz7YgWuSNa5Y4oqR3ROskdkZM7Ii93REHuiEzuiKLcEb36b/bj57G+HdEid0Sr3BEltSNKk9wRObkj8nJHFOSOyOSO6NV/sx8/gvntiGa5I1rUjujew50r6pp7T4Kuekhe75DkPNu9B1JXPaRF75BWvUNKcofkhP4uXf4R3zad/b1vX5/drjNnl663DpZ0eFz++ok9u37S+vKH72Dredo/0+yv5+BifIvq5xG5Akc07zbWliV3RLvgWqbp8IgO/1rO4frJYJvc4yNKbqOR5pvjievR0cdduN3ObhaPfm70+y2eePsRzren0Hzcet3bNoUbSb3sZxqGOVMb5kzjMGc6D3OmyzBnug5zpmmUMz3+mEeXZ+qGOdNh1khhmDVSeH6N5Ca7uRORMuc6h/0Z4nOwzI9e9m2Xmzc3uXnaDz+2ffhz24e/tH34a9uHn5o+fJvaPnzX9uH7tg8/tH34bV91re2rrrV91bW2r7rW9lXX2r7qxravurHtq25s+6ob277qxravurHtq25s+6ob277qxravurHtq+7c9lV3bvuqO7d91Z3bvurObV9157avunPbV9257avu3PZVd277qru0fdVd2r7qLm1fdZe2r7pL21fdpe2r7tL2VXdp+6q7tH3VXdq+6q5tX3XXtq+6a9tX3bXtq+7a9lV3bfuqu7Z91V3bvuqubV9117avuqntq25q+6qb2r7qpravuqntq25q+6qb2r7qpravuqntq25q+6p751EUDR1/29fdOw+5aOj4277yXvbd+PG3fe298/iSho6/7avvnQejNHT8jV9/XePXX9f49dc1fv11jV9/XePXX9f49dc1fv11jV9/XePXX9f49dc3fv31jV9/fePXX9/49bfAI8bqHn/j11/f+PXXN3799Y1ff33j19/Q+PU3NH79DY1ff0Pj19/GH1/lGn9+lWv8AVau8SdYucYfYeUaf4aVa/whVq7xp1i5xh9j5Rp/jpVr/EFWrvEnWbnGH2XlGn+WlWv8YVau8adZucYfZ+Uaf56Va/yBVq7xJ1q5xh9p5Rp/ppVr/KFWrvGnWrnGH2vlGn+ulWv8wVau8SdbucYfbeUaf7aVa/zhVq7xp1u5xh9v5Rp/vpVr/AFXrvEnXLnGH3HlGn/GlWv8IVeu8adcucYfc+Uaf86Va/xBV67xJ125xh915Rp/1pVr/GFXrvGnXbnGH3flGn/elWv8gVeu8SdeucYfeeUaf+aVa/yhV67xp165xh975Rp/7pVr/MFXrvEnX7nGH33lGn/2lWv84VfuE0+/cjFz/DHu3zEd1+m33Xzc2l9uef7a2rvbrd9i+vizU3Dbz0632RxuPa/76d4k4w6/Rtvm7Qfb6n/bdo9mHTSasG59jNN6HE0imuNo/CceCDZsNI5o7kXjieZeNIFo7kVjRHMvmkg096KZieZeNKOuhj8RDavhu9GwGr4XjWM1fDearlbDS9ij8c9H8/rVsNkeTYqZk/Vhmratw63dma9nEJo/A2v+DGLzZzA3fwZL82ewNn8GqfUz8FPzZ+CaP4Pmr8m++WvyJx42qH4GzV+TffPXZN/8Ndk3f032zV+TQ/PX5ND8NTk0f00O6teD69ZhjodnoH49yJ+B+N8is01EeZvnozMw8b9FnzgD8b9FnzgD8b9FnzgD8fnA0rJtHcNyewYHjjW47ahD8Fd7uyzX07WxTlf8SlP6dMUvS6VPV3ymKX264gNQ6dNVX6GUPd2ovpz50umGsJ+uzYenq772KXy66gulwqfb1aoqf7o21ul2tarKn25Xq6r86Xa1qto/8BHCYoen29WqKn+6Xa2qsqc7d7Wqyp9uV6uq/Ol2tarKn25Xq6r86Vqnp3vz0cPb0+1qVZU/3a5WVfnT7WlVZddFpB0vIueeVlWfON2eVlX50116WlV94nR7WlV94nR7WlV94nR7WlV94nStp9ON+3XX5sNF5NLTquoTp9vTquoTp9vVqip/ul2tqvKn29WqKnu6a1erqvzpdrWqWtJ+uulwAFy7WlXlT7erVVX+dG2s0+1qVZU/3a5WVfnT7WpVlT/drlZV19ON03R4ul2tqrKnm7paVeVPt6dVVbwuIuPxIjL1tKr6xOn2tKr6xOnaWKfb06rqE6fb06rqE6fb06rqE6fb06oqztfr7vH93dTTqip7umHqaVX1idPtalWVP92uVlX50+1qVZU/XRvrdLtaVe0bh9lNh6fb1aoqf7pdraryp9vVqip/ul2tqrKn67paVeVPt6tVVf50u1pV3Z7ueni6Xa2q8qdrY51uT6uqeb6e7nr8u9vTquoTp9vTquoTp9vTquoTp9vTqip/uuoPki19uj2tqj5xuj2tquY17qeb0uHp9rSq+sTp2lin29WqKn+6Xa2q8qfb1aoqf7pdraryp9vTqmpx248Oiz8cANUfBVz6dHtaVX3idHtaVX3idHtaVX3idG2s0+1pVfWJ0+1pVXV7umE+PN2eVlWfON2eVlX501V/CEz2SetB/bkunziD1p92H9SfvvKJM1D/tZ+uT1qf0uEZqM9H2TOQf+xJ/gzUp5j8GagPJvkzUJ818megfk1er99Ak9bDM1C/JufPQP2anD8D9Wty/gzUv5Esfwbq30iWPQP1h2Z84gzUv5Esfwbq30iWPwP1bwnNn0Hz12T1Z0p84gyavyarP/nhE2fQ/DVZ/fkM+TNQf+TCJ86g+Wuy+oMRPnEGzV+T1R9f8OAMLv+Y3zad0/zH47eLmvO/XmxzuO7J0s/Tv7zs+G2X+Ze5773Mf+9l4Ysvu/xredtyjZdgDlcscdn8yTxfP5Doovv54vXni5fwx+MPv9iOOzp3s2f/dsA/X+a/97LwvZfZ914Wv/ey+XsvO1y0RLfdh4px/e1lB79l07L9Srppvfm9ufwObTtZX7GT9IKdHP9elt6Je8VO/Ct2El6xE3t+J2nad3LzBrXbncRX7GR+xU6WV+xkfcVO0gt2EqZX7OT533i3vxvAOR8Od+JfsZPwip3YK3YSX7GT+RU7WV6xk7XoToI73El6wU5sesVOCvzGx+tO5kMm5l+xk/CKndgrdhJfsZP5FTtZTt3J5V/pbds02x8PT8fP26LNLzcXPHsfjt+e1PDPH+HyP/0xHgu7i0PaZ8ibNV9YL6+//PP/+9N//flP//6X//z75SVv/+v//ut//OPPf/vrr3/+4///X+//y2Xj/ws="},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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Oe2400447aTTTjnttNPOOO2s08457VOnnXfaZ0674LTPnXbRaV847UunfeW0S0772mnfOO1bp1122ndO+95pPzjtitN+dNpPTvvZaVed9ovTrjntV6ddd9pvTvvdaX84zZ0MEjgtodMSOS2x05I4LanTkjktymnJnZbCaSmdlsppqZ2WxmlpnZbOaemdlsFpGZ2WyWmZnZbFaVmdls1p2Z2Ww2k5nZbLabmdlsdpeZ3md1o+p+V3WgGnRTutoNMKOa2w04o4rajT7nBaMacVd1oJp93ptJJOcyc547TSTivjtLJOK+e08k6r4LSKTqvktLucVtlpVZx2t9OqOq2a0wJOu8dp9zqtutNqOK2m02o5rbbT6jitrtPqOa2+0xo4raHTGjmtsdOaOO0+pzV1WjOnNXfa/U5r4bSWTmvltNZOa+O0B5zW1mkPOu0hp7VzWnundXBaR6d1clpnp3VxWlendXNad6f1cNrDTnvEaT2d1stpvZ3Wx2l9nfao0/o5rb/TYpw2wGkDnfaY0wY57XGnPeG0wU4b4rQnnfaU04Y6bZjThjtthNNGOm2U00Y7bYzTxjptnNOedtp4p01w2kSnTXLaZKdNcdpUp01z2nSnzXDaTKc947RZTpvttDlOm+u0eU6b77QFTlvotEVOW+y0JU571mnPOW2p05Y5bbnTnnfaC05b4bSVTnvRaS85bZXTXnbaK0571Wmrnfaa01532htOW+O0tU5702nrnLbeaRuc9pbTNjptk9Pedtpmp21x2lanbXPaO05712nbnbbDae85bafTdjntfad94LTdTtvjtA+dttdp+5y232kHnPaR0z522kGnHXLaYacdcdpRp33itGNOO+60E0476bRTTjvttDNOO+u0c0771GnnnfaZ0y447XOnXXTaF0770mlfOe2S07522jdO+9Zpl532ndO+d9oPTrvitB+d9pPTfnbaVaf94rRrTvvVaded9pvTfnfaH05zC4EETkvotEROS+y0JE5L6rRkTotyWnKnpXBaSqelclpqp6VxWlqnpXNaeqdlcFpGp2VyWmanZXFaVqdlc1p2p+VwWk6n5XJabqflcVpep/mdls9p+Z1WwGnRTivotEJOK+y0Ik4r6rQ7nFbMacWdVsJpdzqtpNNKOc04rbTT3Peyu++adt+X7L4/2H2frvt+Wfd9q+77R933cbrv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","debug_symbols":"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GcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWkGcWkGcWkGcWkGcU8YEmdNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKNYNKNYNKNYNKNYNKNYByypi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUm2YUm2YUm2YUm2YU+4AlddOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOM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WpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapxY6nElppb5849ofPEOX8hPCPZp9KZ11r9qlk1rVmn0plXWvWNzWLtu63bhb2jm4H7B3dDtg7uh20d3SB/e5lAvvdywT2u5cJ7Hcvu/82lWsFwX73MqEltdCSWmhJLbSkVlpSKy2plZbUSktqpSW10pJaaUlN285gtO0MRtvOYEZLaqMltdGS2mhJbbSkNlpSGy2pjZbUtO0MZrSkdlpSOy2pnZbUTktqpyW105LaaUnttKR2WlI7LamDltRBS+qgJXXQkjpoSR20pA5aUgctqYOW1EFL6qQlNc2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2yGs2y+gFLaj9gSe0HLKn9gCW1H7Ck9gOW1E4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zik4zikEzikEzikEzikEzinHAkjpoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFoRjFpRjFpRjFpRjFpRjEPWFInzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSgmzSjm/Y1iv794DvtY0L98VUfWpZD8UL8c9XW3eum24/Lq+NmsbGpWNzVrm5r1Tc3Gpmbv/Y7+Y7/J25eOutJsa7+9l7TN8adW/yi/Hrv8fuzy56HLv7vBvXH58tjl62OXb49dvj92+fHY5T/2u2499rtuPfa7bj32u24/9rtuP/a7bj/2u24/9rvu3R34jcu/xbtuHXX5fVTn1+V36duX7j7mi4pu8UZaLpeKfpTxy9/Vx/Pyu/rHA/3yd+/zsvPyo6r3373tUn49dvn92OXPncvXw/zypWuulD8178222J/+6//ii5vIpXAT18//Wm4C5B+qYdnWsG5r2NgNj7xf1orWFw04uYF/+rb5HDAvmTvvX/znbfNNlhk8TLO5qdna1GxvahY9Jf3zH4eZXSqJf/txWB3oCenWzaKno1s3i56Mbt0seiq6dbO+qdnnmqCuNPtcE9SVZp9rgrrS7HNNUFea3TRByaYJSjZNULJpgpJNE9RNFvQ8TLObJijZNEHJpglKNk1QsmmC0k0TlG6aoHTTBKWbJqibLM56mGY3TVC6aYLSTROUbpqgdNMEZZsmKNs0QdmmCco2TVA3WWj3MM1umqBs0wRlmyYo2zRB2aYJyjdNUL5pgvJNE5RvmqBusmjyYZrdNEH5pgnKN01QvmmC8k0TVGyaoGLTBBWbJqjYNEHdZAHswzS7aYKKTRNUbJqgYtMEFZsmqNw0QeWmCSo3TVC5aYK6yaLgh2l20wSVmyao3DRB5aYJKjdNULVpgqpNE1RtmqBq0wR1k8XMD9PspgmqNk1QtWmCqk0TVG2aoHrTBNWbJqjeNEH1pgnqJku2H6bZTRNUb5qgetME1ZsmKPbe8Rs3y945futmN01Q7F3jt2520wT1ZDvJrzS7aYJ6sp3kV5rdNEE92U7yK80umqB6007y3rSTvDftJO9NO8n78E3NLpqgetNO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k7w37STvTTvJe9NO8t60k3w27SSfTTvJZ9NO8tm0k3wO39TsoglqNu0kn007yWfTTvLZtJN8Nu0kn007yWfTTvLZtJN8Nu0kn007yefZdpKXXirpz80+2QT162bvPkFZ5tuXdtFfNysxcbx96ZSSPzX7RwPz4A3cf3f4P9VA6jGXBs7/0y8akEdvQB+9AXv0BhzdQB3tly8tEtciN/sSuTnzbyP3/ru4v7PZ3NRsbWqWPTncuFn2lPHPNvvrad/YE8mNm2VPLzdulj3p3LhZ9lR042Z9U7PPNUFdafa5JqgrzT7XBHWl2eeaoK40u2mC8k0TlG+aoHzTBOWbJqj77+L+zmY3TVC+aYLyTROUb5qgfNMEFZsmqNg0QcWmCSo2TVD338X9nc1umqBi0wQVmyao2DRBxaYJKjdNULlpgspNE1RumqDuv4v7O5vdNEHlpgkqN01QuWmCyk0TVG2aoGrTBFWbJqjaNEHdfxf3dza7aYKqTRNUbZqgatMEVZsmqN40QfWmCao3TVC9aYK6/y7u72x20wTVmyao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Os0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oOs0oBs0oBs0oBs0oBs0oxgFL6qAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaAZxaQZxaQZxaQZxaQZxTxgSZ00o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o5g0o1g0o1g0o1g0o1g0o1gHLKmLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSLZhSL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otGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotGMotOMotOMotOMotOMoh+wpHaaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUXSaUQyaUQyaUQyaUQyaUYwDltRBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pBM4pJM4pJM4pJM4pJM4p5wJI6aUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUYxaUaxaEaxaEaxaEaxaEaxDlhSF80oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oFs0oNs0oNs0oNs0oNs0o9gFL6qYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaYZxaEZxaEZxaEZxaEZxTlgST00ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0ozg0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GUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGUWnGcWgGcWgGcWgGcWgGcU4YEkdNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKMYNKOYNKOYNKOYNKOYNKOYByypk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUk2YUi2YUi2YUi2YUi2YU64AlddGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGMYtGM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otKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotKMotGMotGMotGMotGMoh2wpDaaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUTSaUXSaUXSaUXSaUXSaUfQDltROM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pOM4pBM4pBM4pBM4pBM4pxwJI6aEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaEYxaUYxaUYxaUYxaUYxD1hSJ80oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oJs0oFs0oFs0oFs0oFs0o1gFL6qIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaIZxaYZxaYZxaYZxaYZxT5gSd00o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0o9g0ozg0ozg0ozg0ozg0ozgHLKmHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhQHZhT7gBnFsyBWUp8FsZL6LIiV1GdBrKQ+C2Il9VkQK6nPglhJfRbESuqzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBdGSGmYUz4JoSQ0zimdBtKSGGcWzIFpSw4ziWRAtqWFG8SyIltQwo3gWREtqmFE8C6IlNcwongXRkhpmFM+CaEkNM4pnQbSkhhnFsyBaUsOM4lkQLalhRvEsiJbUMKN4FkRLaphRPAuiJTXMKJ4F0ZIaZhTPgmhJDTOKZ0G0pIYZxbMgWlLDjOJZEC2pYUbxLIiW1DCjeBZES2qYUTwLoiU1zCieBcGSWmhGUWhGUWhGUWhGUQ5YUgvNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKArNKCrNKCrNKCrNKCrNKOoBS2qlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWjGUWjGUWjGUWjGUU7YEltNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKPoNKPoNKPoNKPoNKPoByypnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUg2YUg2YUg2YUg2YU44AlddCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtKMYtKMYtKMYtKMYh6wpE6aUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUya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oRlFoRlFpRlFpRlFpRlFpRlFPWBJrTSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjqDSjaDSjaDSjaDSjaDSjaAcsqY1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFI1mFJ1mFJ1mFJ1mFJ1mFP2AJbXTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjKLTjGLQjGLQjGLQjGLQjGIcsKQOmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlEMmlFMmlFMmlFMmlFMmlHMA5bUSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKSTOKRTOKRTOKRTOKRTOKdcCSumhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWhGsWlGsWlGsWlGsWlGsQ9YUjfNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKDbNKA7NKA7NKA7NKA7NKM4BS+qhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcW5u1HUw/zypWs+FvTVizPr8uqcurxcjvqyktJLJR2XV8fPZmdRs3e3ld/arGxqVjc1a5uaBb2jf/HizOPtxVnvxdvx882EJF//PeWDpoV/T/lF/pciP57rdGm2xa78S1ETuRRu4vqn1//RMHp2+R0No+eX39Bwo2eY39Eweo6RH38SeXm1aH3RwHPNJtmXt+uc+bdv1/1cs8mVZn1Ts7Gp2dzULHpK+ud/nzC7VBKffp/oJ7vd+XWzT3a788tm58lud37d7JPd7vy62Se73fl1s092u/PrZn1Ts881QV1p9rkmqCvNbpqgZtMENXsmKDmOY88I9aPbPTPUj273DFE/ut0zRf3o1ld1u2eO+tHtnkHqR7d7Jqkf3e4ZpX50u2qWklWzlKyapWTVLCWrZqm7LyX63m5XzVKyapaSVbOUrJqlZNUspatmKV01S+mqWUpXzVJ3Xxv2vd2umqV01Sylq2YpXTVL6apZylbNUrZqlrJVs5StmqXuvtjve7tdNUvZqlnKVs1StmqWslWzlK+apXzVLOWrZilfNUvdffXm93a7apbyVbOUr5qlfNUs5atmqVg1S8WqWSpWzVKxapa6+3Lc7+121SwVq2apWDVLxapZKlbNUrlqlspVs1SumqVy1Sx19/XV39vtqlkqV81SuWqWeraV4Ve6XTVLPdvS8Cvdrpqlnm1t+JVuV81Sd18c/r3drpqlatUsxd5ifvNuV81S7P3lt+6Wvbz85t2umqWebM35tW5XzVJPtuj8WrerZqknW3V+rdtVs9SiZec/ul01Sy1ad/6j21Wz1KKF5z+6XTVLLVp5/qPbVbPUoqXnP7pdNUstWnv+o9tNs5Ss2nsuq/aey6q957Jq77kcvqrbTbOUrNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nuuqvee6au+5rtp7rqv2nuvhq7rdNEvpqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua3ae26r9p7bqr3ntmrvuR2+qttNs5St2ntuq/ae26q957Zq77mt2ntuq/ae26q957Zq77mt2ntuq/ae26q957Zq77mt2ntuq/ae26q957Zq77mt2ntuq/ae26q957Zq77k9297z0ksl/UW3TzZLXen27rOUZb59aRf9dbcSE8fbl04p+VO3PzuYR+/g/vvJ/6kOUo+5dHD+n37VgTx8B/rwHdjDd+DoDupov3xpkbiWvNmX5M2ZT8l7/33f39ptruq2VnXLniFu3S173vhnu70y+zt7Nrl1t+w55tbdsmeeW3fLno9u3a2v6va5Zqlr3T7XLHWt2+eapa51+1yz1LVuV81SsWqWilWzVKyapWLVLHX/fd/f2u2qWSpWzVKxapaKVbNUrJqlctUslatmqVw1S+WqWer++76/tdtVs1SumqVy1SyVq2apXDVL1apZqlbNUrVqlqpVs9T9931/a7erZqlaNUvVqlmqVs1StWqW6lWzVK+apXrVLNWrZqn77/v+1m5XzVK9apbqVbNUr5qletUsNatmqVk1S82qWWpWzVL33/f9rd2umqVm1Sw1q2apWTVLzaZZyo9Ns5Qfm2YpPzbNUn5smqX88FXdbpql/Ng0S/mxaZbyY9Ms5ceqWUpWzVKyapaSVbOUrJql7r/v+1u7XTVLyapZSlbNUrJqlpJVs5SumqV01Sylq2YpXTVL3X/f97d2u2qW0lWzlK6apeD7vm/d7apZCr5H/Nbdrpql4PvJb93tqlnqyfaeX+t21Sz1ZHvPr3W7apZ6sr3n17pdNUut2nvuq/ae+6q9575q77mv2nvuq/ae+6q9575q77mv2nvuq/ae+6q9575q77mv2nvuq/ae+6q9575q77mv2nvuq/ae+6q9575q77mv2nvuq/ae+6q9575q77mv2nvuq/ae+6q9575q77mv2nvuq/ae+6q9575q77mv2nvuq/ae+6q9575q77mv2nvuz7b3vPTy8v6i2yebpa50e/dZ6jC/fOmaK91OzdvZyLTYlW7VRC6Fm7j+6fV/dHz/3eff3rGs61jXdWzr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Ks5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BKs5BGs5BGs5BGs5BGs5B2kHLbMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMM5SMc5SMc5SMc5SMc5SD9ome04B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4B+k4Bxk4Bxk4Bxk4Bxk4BxkHLbMD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAD5yAT5yAT5yAT5yAT5yDzoGV24hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4hxk4Rxk4Rxk4Rxk4RxkHbTMLpyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDLJyDbJyDbJyDbJyDbJyD7IOW2Y1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkI1zkINzkINzkINzkINzkHPQMntwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJwDnJoDlIPmoM8K4Jl9lkRLLPPimCZfVYEy+yzIlhmnxXBMvusCJbZZ0WwzD4rwmU2zUGeFeEym+Ygz4pwmU1zkGdFuMymOcizIlxm0xzkWREus2kO8qwIl9k0B3lWhMtsmoM8K8JlNs1BnhXhMpvmIM+KcJlNc5BnRbjMpjnIsyJcZtMc5FkRLrNpDvKsCJfZNAd5VoTLbJqDPCvCZTbNQZ4V4TKb5iDPinCZTXOQZ0W4zKY5yLMiXGbTHORZES6zaQ7yrAiX2TQHeVaEy2yagzwrwmU2zUGeFeEym+Ygz++My2yag/zxnXEV4TKb5iDP74zLbJqDPL8zLrNpDlIPmoM8K8JlNs1BnhXhMpvmIM+KcJlNc5BnRbjMpjnIsyJcZtMc5I9vh6sIl9k0B3l+O1xm0xzk+e1wmU1zkOe3w2U2zUHqQXOQZ0W4zKY5yLMiXGbTHORZES6zaQ7yrAiX2TQHeVZEy2zBOUjBOUjBOUjBOUg5aJktOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAcpOAepOAepOAepOAepOAepBy2zFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgDecgDecgDecgDecg7aBltuEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOMcpOMcpOMcpOMcpB+0zHacg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Sc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kINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkINzkENzkHbQHORZESyzz4pgmX1WBMvssyJYZp8VwTL7rAiW2WdFsMw+K4Jl9lkRLrNpDvKsCJfZNAd5VoTLbJqDPCvCZTbNQZ4V4TKb5iDPinCZTXOQZ0W4zKY5yLMiXGbTHORZES6zaQ7yrAiX2TQHeVaEy2yagzwrwmU2zUGeFeEym+Ygz4pwmU1zkGdFuMymOcizIlxm0xzkWREus2kO8qwIl9k0B3lWhMtsmoM8K8JlNs1BnhXhMpvmIM+KcJlNc5BnRbjMpjnIsyJcZtMc5FkRLrNpDvKsCJfZNAd5VoTLbJqDPCvCZTbNQZ4V4TKb5iDPinCZTXOQZ0W4zKY5yLMiXGbTHORZES6zaQ7yrAiX2TQHeVaEy2yagzwrwmU2zUGeFeEym+Ygz4pwmU1zkGdFuMymOcizIlxm0xzkWREus2kO8qwIl9k0B3lWhMtsmoM8K8JlNs1BnhXhMpvmIM+KaJktOAcpOAcpOAcpOAcpBy2zBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgFecgFecgFecgFecg9aBltuIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOEcpOEcpOEcpOEcpB20zDacgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScg3Scg3Scg3Scg3Scg/SDltmOc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5CBc5CBc5CBc5CBc5Bx0DI7cA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycQ4ycQ4ycQ4ycQ4yD1pmJ85BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5B5t0dpB7mly9d87Gir158DrmXV+fU5eVy1JeVlF4q6bi8Ot66zVXd1qpue1W3s6nbu5vW7+0W9N7+xYvPW8e3F58j/3sdx9t7CknX/rvqB80N/676nfyv5exw3rttsSv/WtRELoWbuP7p9T87Rk8xv6Vj9CTzWzpGTzO/pWP0RCMz8v6uJ1pfdfBcU8r5O+4leWf+7ft2Hc81pVzrVlZ1q6u6tVXd+nP9dmF2qSTic7dPduNzpdsnu/G50u2T3fhc6fbJbnyudPtkNz6/7lae7MbnSrfPNUtd6/a5Zqlr3T7XLHWtW1/V7apZSlbNUrJqlpJVs5SsmqV01Sylq2YpXTVL6apZ6u5bZr6321WzlK6apXTVLKWrZildNUvZqlnKVs1StmqWslWz1N23P31vt6tmKVs1S9mqWcpWzVK2apbyVbOUr5qlfNUs5atmqbtvZfveblfNUr5qlvJVs5SvmqV81SwVq2apWDVLxapZKlbNUnfflvi93a6apWLVLBWrZqlYNUvFqlkqV81SuWqWylWzVK6ape6+xfR7u101S+WqWSpXzVK5apbKVbNUrZqlatUsVatmqVo1S919u/D3drtqlqpVs1StmqVq1SxVq2apXjVL9apZqlfNUr1qlrr71u/v7XbVLPVsG8WvdLtqlnq2jeJXul01Sz3bRvEr3a6apWbVLDWrZin2bvObd7tqlmLvNL95t6tmKfYu85t3u2mW6ifbe36t202zVD/Z3vNr3W6apfrwVd1umqV61d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3vFftPe9Ve8971d7zXrX3fFbtPZ9Ve89n1d7zWbX3fA5f1e2mWWpW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe81m193xW7T2fVXvPZ9Xe8/+nvbvbkSy5zjN8R8Re/2tdjSEJhkGAIA2JNuAD37ujR11Z3Z4cVTGZE/n2RJ8IbKiy4ovsnK9X7dpP7Dnq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56tzzOerc8znq3PM56dxzv04693zt9qBZau32oFlq7fagWWrt1o/a7UGz1NrtQbPU2u1Bs9Ta7UGz1NrtUbPUSeeer90eNUuddO752u1Rs9RJ556v3R41S5107vna7VGz1Ennnq/dHjVLnXTu+drtUbPUSeeer90eNUuddO752u1Rs9RJ556v3R41S5107vna7VGz1Ennnq/dHjVLnXTu+drtUbPUSeeer90eNUuddO752u1Rs9RJ556v3R41S5107vna7VGz1Ennnq/dbp+lLPPtW7vof71biYnr7VunlHy326878B9+B4HeQeo1tx2sl97bQf7wO6gffgf9w+9g0Duoq/32rUXio+bN1tuGZ37VvPvP+37pbuWo3epRu2XPEM/erf+hdvvBfBjs2eTZu2XPMc/eLXvmefZu2fPRs3f7x5qlPtht/rFmqY92+8eapT7a7R9rlvpot3+sWeqj3fpRuz1qlsqjZqk8apbKo2apPGqWqqNmqTpqlqqjZqk6apbaf973S3d71CxVR81SddQsVUfNUnXULNVHzVJ91CzVR81SfdQstf+875fu9qhZqo+apfqoWaqPmqX6qFlqjpql5qhZao6apeaoWWr/ed8v3e1Rs9QcNUvNUbPUHDVLzUmzlFwnzVJynTRLyXXSLCXXSbOUXH7Ubk+apeQ6aZaS66RZSq6TZim5jpql5KhZSo6apeSoWUqOmqX2n/f90t0eNUvJUbOUHDVLyVGzlBw1S+lRs5QeNUvpUbOUHjVL7T/v+6W7PWqW0qNmKT1qltKjZik9apayo2YpO2qWsqNmKTtqltp/3vdLd3vULGVHzVJ21CxlR81SdtQs5UfNUn7ULOVHzVLw876fvVs/ardHzVLwM8efvdujZin4WebP3u1Rs9Qf7Nzzj3Z71Cz1Bzv3/KPdHjVLHXXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rkcde65HHXuuRx17rnsP/f8Mr9965oPdjs1b++NTIt9sFs1kVtwE9fvvv7rju24HftxO47jdpzH7biO23Eft+M5bMe6/1z0l+9YjtvxaTOXbj8jfc08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B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B1k4B9k4B9k4B9k4B9k4B9kXrbMb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAb5yAH5yAH5yAH5yAH5yDnonX24Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk4Bzk0BxkXDQHuRLBOnslgnX2SgTr7JUI1tkrEayzVyJYZ69EsM5eiWCdvRLhOpvmIFciXGfTHORKhOtsmoNciXCdTXOQKxGus2kOciXCdTbNQa5EuM6mOciVCNfZNAe5EuE6m+YgVyJcZ9Mc5EqE62yag1yJcJ1Nc5ArEa6zaQ5yJcJ1Ns1BrkS4zqY5yJUI19k0B7kS4Tqb5iBXIlxn0xzkSoTrbJqDXIlwnU1zkCsRrrNpDnIlwnU2zUGuRLjOpjnIlQjX2TQHuRLhOpvmIFciXGfTHORKhOtsmoNciXCdTXOQKxGus2kOciXCdTbNQa5EuM6mOciVCNfZNAe5EuE6m+YgVyJcZ9Mc5EqE62yag1yJcJ1Nc5ArEa6zaQ5yJcJ1Ns1BrkS4zqY5yJUI19k0B7kS4Tqb5iBXIlxn0xzkSoTrbJqDXIlwnU1zkCsRrrNpDnIlonW24Byk4Byk4Byk4BykXLTOFpyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDFJyDVJyDVJyDVJyDVJyD1IvW2YpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIpzkIZzkIZzkIZzkIZzkHbROttwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJwDtJxDtJxDtJxDtJxDtIvWmc7zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkE6zkEGzkEGzkEGzkEGzkHGRevswDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIwDnIxDnIxDnIxDnIxDnIvGidnTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHmTgHWTgHWTgHWTgHWTgHWRetswvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIAvnIBvnIBvnIBvnIBvnIPuidXbjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTjHGTj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kIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkIVzkI1zkI1zkI1zkI1zkH3ROrtxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDrJxDnJwDnJwDnJwDnJwDnIuWmcPzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzkEOzUHWRXOQKxGss1ciWGevRLDOXolgnb0SwTp7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"}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000906cb9c3"},{"kind":"string","value":"EcdsaPublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}]},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}}],"kind":"struct","path":"EcdsaKAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaKAccount::constructor_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_abi"}]}},"file_map":{"101":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/unconstrained_context.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\nuse crate::oracle::{\n execution::{get_chain_id, get_version, get_contract_address, get_block_number},\n storage::{raw_storage_read, storage_read}\n};\n\nstruct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n fn block_number(self) -> u32 {\n self.block_number\n }\n\n fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n fn version(self) -> Field {\n self.version\n }\n\n fn chain_id(self) -> Field {\n self.chain_id\n }\n\n unconstrained fn raw_storage_read<let N: u32>(self: Self, storage_slot: Field) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n unconstrained fn storage_read<T, let N: u32>(\n self,\n storage_slot: Field\n ) -> T where T: Deserialize<N> {\n T::deserialize(self.raw_storage_read(storage_slot))\n }\n}\n"},"107":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, gas::Gas,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, public_call_stack_item::PublicCallStackItem,\n public_call_stack_item_compressed::PublicCallStackItemCompressed, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one \n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.private_call_requests.push(\n PrivateCallRequest {\n contract_address,\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n let call_request = PublicCallRequest { item, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n self.public_teardown_call_request = PublicCallRequest {\n item,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"},"115":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\nuse std::{\n embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe, field::bn254::decompose\n};\n\nuse crate::{\n event::event_interface::EventInterface, oracle::unsafe_rand::unsafe_rand,\n utils::point::point_to_bytes, note::note_interface::NoteInterface,\n encrypted_logs::{\n header::EncryptedLogHeader, incoming_body::EncryptedLogIncomingBody,\n outgoing_body::EncryptedLogOutgoingBody\n},\n keys::public_keys::{OvpkM, IvpkM}\n};\n\npub fn compute_encrypted_event_log<Event, let NB: u32, let MB: u32, let OB: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n event: Event\n) -> [u8; OB] where Event: EventInterface<NB, MB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_event(event, randomness).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; OB] = [0; OB];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = OB - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\npub fn compute_encrypted_note_log<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> [u8; M] where Note: NoteInterface<N, NB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_note(note, storage_slot).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\nmod test {\n use crate::{\n encrypted_logs::payload::compute_encrypted_note_log, keys::public_keys::{OvpkM, IvpkM},\n test::mocks::mock_note::MockNoteBuilder\n };\n use dep::protocol_types::{address::AztecAddress, point::Point};\n use std::test::OracleMock;\n\n #[test]\n fn test_encrypted_note_log_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = OvpkM {\n inner: Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n }\n };\n let ivpk_m = IvpkM {\n inner: Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n }\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n\n let log: [u8; 448] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note\n );\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_note_log_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 205, 103, 212, 60, 151, 141, 10, 151, 222, 151, 180, 43, 91, 148, 201, 110, 165, 10, 238, 32, 134, 235, 99, 216, 200, 182, 31, 22, 156, 18, 209, 222, 172, 239, 193, 212, 86, 99, 62, 70, 182, 45, 175, 241, 91, 202, 179, 225, 236, 95, 71, 66, 151, 225, 203, 53, 216, 85, 102, 130, 6, 8, 25, 180, 86, 58, 140, 198, 105, 102, 177, 42, 94, 115, 247, 145, 147, 24, 231, 39, 73, 27, 10, 219, 130, 115, 188, 74, 114, 5, 177, 199, 83, 183, 106, 87, 204, 238, 231, 72, 45, 240, 39, 174, 25, 98, 53, 187, 156, 159, 244, 38\n ];\n for i in 0..encrypted_note_log_from_typescript.len() {\n assert_eq(log[i], encrypted_note_log_from_typescript[i]);\n }\n assert_eq(encrypted_note_log_from_typescript.len(), log.len());\n }\n}\n"},"116":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n keys::{getters::get_current_public_keys, public_keys::{OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{\n hash::sha256_to_field, address::AztecAddress, point::Point, abis::note_hash::NoteHash,\n constants::MAX_NOTE_HASHES_PER_CALL\n};\n\nunconstrained fn compute_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n )\n}\n\nfn compute<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let encrypted_log: [u8; M] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n let log_hash = sha256_to_field(encrypted_log);\n (encrypted_log, log_hash)\n}\n\nfn emit_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n inner_compute: fn(AztecAddress, Field, Field, OvpkM, IvpkM, AztecAddress, Note) -> ([u8; M], Field)\n) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n let note_exists = context.note_hashes.storage.any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (encrypted_log, log_hash) = inner_compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n\npub fn encode_and_encrypt_note<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute_unconstrained);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute_unconstrained);\n }\n}\n"},"117":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/outgoing_body.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash_with_separator\n};\nuse std::aes128::aes128_encrypt;\n\nuse crate::{keys::public_keys::IvpkM, utils::point::point_to_bytes};\n\nstruct EncryptedLogOutgoingBody {\n eph_sk: Scalar,\n recipient: AztecAddress,\n recipient_ivpk: IvpkM,\n}\n\nimpl EncryptedLogOutgoingBody {\n pub fn new(eph_sk: Scalar, recipient: AztecAddress, recipient_ivpk: IvpkM) -> Self {\n Self { eph_sk, recipient, recipient_ivpk }\n }\n\n /// Encrypts ephemeral secret key and recipient's ivpk --> with this information the recipient of outgoing will\n /// be able to derive the key with which the incoming log can be decrypted.\n pub fn compute_ciphertext(self, ovsk_app: Scalar, eph_pk: Point) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high = self.eph_sk.hi.to_be_bytes(32);\n let serialized_eph_sk_low = self.eph_sk.lo.to_be_bytes(32);\n\n let address_bytes = self.recipient.to_field().to_be_bytes(32);\n let serialized_recipient_ivpk = point_to_bytes(self.recipient_ivpk.to_point());\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash_with_separator(\n [ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y],\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ).to_be_bytes(32).as_array();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n }\n}\n\nmod test {\n use crate::{encrypted_logs::outgoing_body::EncryptedLogOutgoingBody, keys::public_keys::IvpkM};\n use dep::protocol_types::{\n address::AztecAddress, traits::Empty, constants::GENERATOR_INDEX__NOTE_NULLIFIER,\n scalar::Scalar, point::Point, hash::poseidon2_hash_with_separator\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n\n use crate::context::PrivateContext;\n\n #[test]\n fn test_encrypted_log_outgoing_body_matches_typescript() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = IvpkM { inner: derive_public_key(recipient_ivsk) };\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let body = EncryptedLogOutgoingBody::new(eph_sk, recipient, recipient_ivpk);\n\n let ciphertext = body.compute_ciphertext(sender_ovsk_app, eph_pk);\n\n // The following value was generated by `encrypted_log_outgoing_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let outgoing_body_ciphertext_from_typescript = [\n 127, 182, 227, 75, 192, 197, 54, 47, 168, 134, 233, 148, 251, 46, 86, 12, 73, 50, 238, 50, 31, 174, 27, 202, 110, 77, 161, 197, 244, 124, 17, 100, 143, 150, 232, 14, 156, 248, 43, 177, 16, 82, 244, 103, 88, 74, 84, 200, 15, 65, 187, 14, 163, 60, 91, 22, 104, 31, 211, 190, 124, 121, 79, 92, 239, 65, 185, 106, 51, 178, 168, 137, 84, 43, 79, 158, 151, 152, 83, 42, 170, 13, 106, 209, 254, 74, 39, 145, 73, 215, 17, 234, 196, 89, 30, 58, 120, 127, 88, 69, 121, 61, 18, 206, 89, 118, 243, 238, 177, 71, 73, 47, 147, 4, 155, 25, 173, 248, 206, 52, 17, 180, 122, 186, 106, 191, 252, 102, 197, 91, 16, 39, 94, 91, 224, 30, 168, 177, 26, 144, 5, 124, 128, 6\n ];\n\n for i in 0..outgoing_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], outgoing_body_ciphertext_from_typescript[i]);\n }\n assert_eq(outgoing_body_ciphertext_from_typescript.len(), ciphertext.len());\n }\n}\n"},"118":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::ToPoint};\n\nuse std::aes128::aes128_encrypt;\n\nstruct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext<T>(self, secret: Scalar, pk: T) -> [u8; 48] where T: ToPoint {\n let full_key = point_to_symmetric_key(secret, pk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes(32).as_array();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nfn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = crate::keys::public_keys::IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131, 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171, 176, 218, 48, 209, 73, 89, 200, 209\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"},"119":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr","source":"use crate::note::note_interface::NoteInterface;\nuse crate::event::event_interface::EventInterface;\nuse dep::protocol_types::{scalar::Scalar, point::Point};\n\nuse std::aes128::aes128_encrypt;\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::IvpkM};\n\nstruct EncryptedLogIncomingBody<let M: u32> {\n plaintext: [u8; M]\n}\n\nimpl<let M: u32> EncryptedLogIncomingBody<M> {\n pub fn from_note<T, let N: u32>(note: T, storage_slot: Field) -> Self where T: NoteInterface<N, M> {\n let mut plaintext = note.to_be_bytes(storage_slot);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn from_event<T, let MR: u32>(\n event: T,\n randomness: Field\n ) -> Self where T: EventInterface<M, MR> {\n let mut plaintext = event.private_to_be_bytes(randomness);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn compute_ciphertext(self, eph_sk: Scalar, ivpk: IvpkM) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(self.plaintext, iv, sym_key)\n }\n}\n\nmod test {\n use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, traits::Serialize,\n abis::event_selector::EventSelector\n };\n\n use crate::{\n note::{note_header::NoteHeader, note_interface::NoteInterface},\n encrypted_logs::incoming_body::EncryptedLogIncomingBody, event::event_interface::EventInterface,\n context::PrivateContext, keys::public_keys::IvpkM\n };\n\n struct AddressNote {\n address: AztecAddress,\n owner: AztecAddress,\n randomness: Field,\n header: NoteHeader,\n }\n\n global ADDRESS_NOTE_LEN: Field = 3;\n global ADDRESS_NOTE_BYTES_LEN = 32 * 3 + 64;\n\n impl NoteInterface<ADDRESS_NOTE_LEN, ADDRESS_NOTE_BYTES_LEN> for AddressNote {\n fn compute_note_hiding_point(self) -> Point {\n crate::generators::Ga1\n }\n\n fn get_note_type_id() -> Field {\n 1\n }\n\n fn get_header(self) -> NoteHeader { self.header}\n\n fn set_header(&mut self, header: NoteHeader) {self.header = header; }\n\n fn compute_nullifier(_self: Self, _context: &mut PrivateContext, _note_hash_for_nullify: Field) -> Field {\n 1\n }\n\n fn compute_nullifier_without_context(_self: Self) -> Field {\n 1\n }\n\n fn serialize_content(self) -> [Field; ADDRESS_NOTE_LEN] { [self.address.to_field(), self.owner.to_field(), self.randomness]}\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote { address: AztecAddress::from_field(fields[0]), owner: AztecAddress::from_field(fields[1]), randomness: fields[2], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ADDRESS_NOTE_BYTES_LEN] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ADDRESS_NOTE_BYTES_LEN] = [0; ADDRESS_NOTE_BYTES_LEN];\n\n let storage_slot_bytes = storage_slot.to_be_bytes(32);\n let note_type_id_bytes = AddressNote::get_note_type_id().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes = serialized_note[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n }\n\n impl AddressNote {\n pub fn new(address: AztecAddress, owner: AztecAddress, randomness: Field) -> Self {\n AddressNote { address, owner, randomness, header: NoteHeader::empty() }\n }\n }\n\n #[test]\n fn test_encrypted_note_log_incoming_body_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let note = AddressNote::new(\n AztecAddress::from_field(0x1),\n AztecAddress::from_field(0x2),\n 3\n );\n\n let storage_slot = 2;\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n /// 1. `EncryptedLogIncomingBody::from_note` calls `note.to_be_bytes(storage_slot)` function which serializes\n /// the note to bytes - note that in the case of `AddressNote` the `to_be_bytes` function was automatically\n /// implemented by Aztec macros.\n let body = EncryptedLogIncomingBody::from_note(note, storage_slot);\n\n /// 2. `body.compute_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93, 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130, 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95, 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234, 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162, 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185, 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236, 23, 206, 229, 108\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n\n struct TestEvent {\n value0: Field,\n value1: Field,\n value2: Field,\n }\n\n impl Serialize<3> for TestEvent {\n fn serialize(self) -> [Field; 3] {\n [self.value0, self.value1, self.value2]\n }\n }\n\n global TEST_EVENT_LEN: Field = 3;\n global TEST_EVENT_BYTES_LEN = 32 * 3 + 64;\n global TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS = 32 * 3 + 32;\n\n impl EventInterface<TEST_EVENT_BYTES_LEN, TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS> for TestEvent {\n fn get_event_type_id() -> EventSelector {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\n\n fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_BYTES_LEN] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN] = [0; TEST_EVENT_BYTES_LEN];\n\n let randomness_bytes = randomness.to_be_bytes(32);\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = randomness_bytes[i];\n buffer[32 + i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn to_be_bytes(self) -> [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] = [0; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS];\n\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[32 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n }\n\n #[test]\n fn test_encrypted_log_event_incoming_body() {\n let test_event = TestEvent { value0: 1, value1: 2, value2: 3 };\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let randomness = 2;\n\n let body = EncryptedLogIncomingBody::from_event(test_event, randomness);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_event_log_incoming_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let event_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 185, 29, 14, 152, 216, 130, 219, 151, 80, 185, 43, 223, 167, 8, 89, 189, 88, 188, 101, 137, 255, 136, 84, 252, 79, 18, 52, 3, 110, 54, 54, 206, 244, 209, 246, 226, 207, 247, 143, 253, 211, 75, 160, 224, 172, 41, 45, 7, 208, 137, 90, 56, 59, 4, 234, 48, 53, 23, 130, 230, 49, 249, 142, 243, 170, 72, 183, 242, 49, 124, 46, 52, 198, 75, 55, 102, 56, 89, 254, 67, 59, 157, 249, 120, 184, 67, 154, 16, 148, 227, 93, 37, 120, 199, 93, 166, 80, 127, 173, 52, 80, 135, 87, 1, 168, 164, 51, 48, 126, 120, 47, 102, 211, 227, 234, 170, 208, 99, 111, 198, 170, 226, 156, 244, 241, 174, 206, 30\n ];\n\n assert_eq(event_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..event_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], event_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"},"123":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, MAX_NOTES_PER_PAGE, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator, NoteStatus, PropertySelector},\n note_interface::NoteInterface, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note. \n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value = serialized_note[selector.index].to_be_bytes(32);\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N, M> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n // Values are computed ahead of time because circuits evaluate all branches\n let is_equal = value_field == select.value.to_field();\n let is_lt = value_field.lt(select.value.to_field());\n\n if (select.comparator == Comparator.EQ) {\n assert(is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(is_lt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(is_lt | is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!is_lt & !is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!is_lt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N, M> {\n let note = get_note_internal(storage_slot);\n\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n context.push_note_hash_read_request(note_hash_for_read_request);\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n let opt_notes = get_notes_internal(storage_slot, options);\n\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32, let M: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N, M> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N, M> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\nunconstrained pub fn view_notes<Note, let N: u32, let M: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N, M>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N, M> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<Note, let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"125":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{context::PrivateContext, note::{note_header::NoteHeader, note_interface::NoteInterface}};\n\nuse dep::protocol_types::{\n hash::{\n compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n utils::arr_copy_slice\n};\n\npub fn compute_siloed_nullifier<Note, let N: u32, let M: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N, M> {\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let nonce = note.get_header().nonce;\n let counter = note.get_header().note_hash_counter;\n\n if counter != 0 {\n note_hash\n } else {\n compute_unique_note_hash(nonce, note_hash)\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32, let M: u32>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N, M> {\n let header = note.get_header();\n\n if header.note_hash_counter != 0 {\n if header.nonce == 0 {\n // Case 1: Transient note\n note_hash_for_read_request\n } else {\n // Case 2: Non-revertible note, nullified by a revertible nullifier\n let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash_for_read_request);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n }\n } else {\n // Case 3: Note from a previous transaction\n // note_hash_for_read_request is already the unique_note_hash in this case\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request)\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the \n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the \n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from \n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\npub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let M: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N, M> {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, note_hash);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"126":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::NoteInterface,\n utils::{compute_note_hash_for_read_request, compute_note_hash_for_nullify_internal},\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N, M>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n let serialized_note = Note::serialize_content(*note);\n assert(\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter\n )\n == 0\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, N, M>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, N, M>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, N, M>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N, M> {\n let note_hash_for_nullify = compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n assert(notify_nullified_note(nullifier, notification_note_hash, nullifier_counter) == 0);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n\n"},"127":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\nstruct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting \n * a change note in a token's transfer function only when there is \"change\" left).\n */\nstruct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"},"135":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n traits::Hash,\n hash::{\n pedersen_hash, compute_siloed_nullifier, sha256_to_field, pedersen_commitment,\n poseidon2_hash_with_separator\n}\n};\n// Note: pedersen_commitment is used only as a re-export here\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[36 + i] = message_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n poseidon2_hash_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x1cce4dbf69f14c44865919991ee1057922e34d7310ba237d71759aa422621ca9);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"136":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::poseidon2_hash_with_separator, constants::GENERATOR_INDEX__CONSTRUCTOR,\n abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"138":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::{address::AztecAddress, point::Point};\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(_note_hash_counter: u32, _encrypted_note: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(_contract_address: AztecAddress, _randomness: Field, _encrypted_event: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedNoteLog)]\nunconstrained fn compute_encrypted_note_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_note_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_note_log_oracle(\n contract_address,\n storage_slot,\n note_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedEventLog)]\nunconstrained fn compute_encrypted_event_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _event_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_event_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n event_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_event_log_oracle(\n contract_address,\n randomness,\n event_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_oracle_private<T>(_contract_address: AztecAddress, _message: T, _counter: u32) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<let N: u32>(contract_address: AztecAddress, message: [Field; N], counter: u32) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, message, counter)\n}\n"},"140":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle<let N: u32>(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n"},"141":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_public_data_witness.nr","source":"use dep::protocol_types::{\n constants::PUBLIC_DATA_TREE_HEIGHT, public_data_tree_leaf_preimage::PublicDataTreeLeafPreimage,\n utils::arr_copy_slice\n};\n\nglobal LEAF_PREIMAGE_LENGTH: u32 = 4;\nglobal PUBLIC_DATA_WITNESS: Field = 45;\n\nstruct PublicDataWitness {\n index: Field,\n leaf_preimage: PublicDataTreeLeafPreimage,\n path: [Field; PUBLIC_DATA_TREE_HEIGHT],\n}\n\n#[oracle(getPublicDataTreeWitness)]\nunconstrained fn get_public_data_witness_oracle(\n _block_number: u32,\n _public_data_tree_index: Field\n) -> [Field; PUBLIC_DATA_WITNESS] {}\n\nunconstrained pub fn get_public_data_witness(block_number: u32, public_data_tree_index: Field) -> PublicDataWitness {\n let fields = get_public_data_witness_oracle(block_number, public_data_tree_index);\n PublicDataWitness {\n index: fields[0],\n leaf_preimage: PublicDataTreeLeafPreimage { slot: fields[1], value: fields[2], next_index: fields[3] as u32, next_slot: fields[4] },\n path: arr_copy_slice(fields, [0; PUBLIC_DATA_TREE_HEIGHT], 1 + LEAF_PREIMAGE_LENGTH)\n }\n}\n"},"142":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\npub fn get_key_validation_request(pk_m_hash: Field, key_index: Field) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n\n"},"145":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\n\n#[oracle(storageRead)]\nunconstrained fn storage_read_oracle<let N: u32>(address: Field, storage_slot: Field, block_number: Field, length: Field) -> [Field; N] {}\n\nunconstrained pub fn raw_storage_read<let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> [Field; N] {\n storage_read_oracle(\n address.to_field(),\n storage_slot,\n block_number as Field,\n N as Field\n )\n}\n\nunconstrained pub fn storage_read<T, let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> T where T: Deserialize<N> {\n T::deserialize(raw_storage_read(address, storage_slot, block_number))\n}\n\nmod tests {\n use crate::oracle::storage::{raw_storage_read, storage_read};\n use dep::protocol_types::address::AztecAddress;\n\n use std::test::OracleMock;\n use crate::test::mocks::mock_struct::MockStruct;\n\n global address = AztecAddress::from_field(29);\n global slot = 7;\n global block_number = 17;\n\n #[test]\n fn test_raw_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: [Field; 2] = raw_storage_read(address, slot, block_number);\n assert_eq(read[0], 13);\n assert_eq(read[1], 42);\n }\n\n #[test]\n fn test_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: MockStruct = storage_read(address, slot, block_number);\n assert_eq(read.a, 13);\n assert_eq(read.b, 42);\n }\n}\n"},"146":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/unsafe_rand.nr","source":"#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n\n// Called `unsafe_rand` because we do not constrain in circuit that we are dealing with an actual random value.\n// Instead we just trust our PXE.\nunconstrained pub fn unsafe_rand() -> Field {\n rand_oracle()\n}\n"},"148":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; 2] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"},"149":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::{PublicKeys, public_keys::{NpkM, IvpkM, OvpkM, TpkM}};\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained fn get_public_keys_and_partial_address_oracle_wrapper(address: AztecAddress) -> [Field; 13] {\n get_public_keys_and_partial_address_oracle(address)\n}\n\npub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle_wrapper(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool } },\n tpk_m: TpkM { inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool } }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter)\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle<let N: u32>(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note<let N: u32>(\n nullifier: Field,\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_nullified_note_oracle(nullifier, note_hash, counter)\n}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let NB: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N, NB> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n// Only ever use this in private!\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n// Only ever use this in private!\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n"},"152":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, utils::arr_copy_slice,\n constants::CONTRACT_INSTANCE_LENGTH, utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = ContractInstance::deserialize(get_contract_instance_internal(address));\n assert(instance.to_address().eq(address));\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\n}\n"},"153":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{abis::{function_selector::FunctionSelector}, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n"},"155":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/execution.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n#[oracle(getContractAddress)]\nunconstrained fn get_contract_address_oracle() -> AztecAddress {}\n\n#[oracle(getBlockNumber)]\nunconstrained fn get_block_number_oracle() -> u32 {}\n\n#[oracle(getChainId)]\nunconstrained fn get_chain_id_oracle() -> Field {}\n\n#[oracle(getVersion)]\nunconstrained fn get_version_oracle() -> Field {}\n\nunconstrained pub fn get_contract_address() -> AztecAddress {\n get_contract_address_oracle()\n}\n\nunconstrained pub fn get_block_number() -> u32 {\n get_block_number_oracle()\n}\n\nunconstrained pub fn get_chain_id() -> Field {\n get_chain_id_oracle()\n}\n\nunconstrained pub fn get_version() -> Field {\n get_version_oracle()\n}\n"},"158":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr","source":"use dep::protocol_types::{storage::map::derive_storage_slot_in_map, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V, Context> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T, Context> Storage<T> for Map<K, T, Context> {}\n\nimpl<K, V, Context> Map<K, V, Context> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = derive_storage_slot_in_map(self.storage_slot, key);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n"},"160":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr","source":"use crate::context::{PublicContext, UnconstrainedContext};\nuse crate::oracle::storage::storage_read;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T, Context> Storage<T> for PublicMutable<T, Context> {}\n\nimpl<T, Context> PublicMutable<T, Context> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, &mut PublicContext> where T: Serialize<T_SERIALIZED_LEN> + Deserialize<T_SERIALIZED_LEN> {\n // docs:start:public_mutable_struct_read\n pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write(self, value: T) {\n self.context.storage_write(self.storage_slot, value);\n }\n // docs:end:public_mutable_struct_write\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, UnconstrainedContext> where T: Deserialize<T_SERIALIZED_LEN> {\n unconstrained pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n}\n"},"176":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{\n address::AztecAddress, constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes}, note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions, note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\nstruct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<N, M>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"178":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result = pk.x.to_be_bytes(32);\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result.as_array()\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_positive_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_positive_sign[i]);\n }\n }\n\n #[test]\n fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_negative_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_negative_sign[i]);\n }\n }\n}\n"},"195":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize}, point::Point};\n\nstruct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: Point::empty(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x:fields[0], y: fields[1], is_infinite: fields[2] as bool},\n sk_app: fields[3],\n }\n }\n}\n\n"},"2":{"path":"std/array.nr","source":"use crate::cmp::Ord;\nuse crate::option::Option;\nuse crate::convert::From;\n\nimpl<T, let N: u32> [T; N] {\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n pub fn sort(self) -> Self where T: Ord {\n self.sort_via(|a: T, b: T| a <= b)\n }\n\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n let sorted_index = unsafe {\n // Safety: These indices are asserted to be the sorted element indices via `find_index`\n let sorted_index: [u32; N] = self.get_sorting_index(ordering);\n\n for i in 0..N {\n let pos = find_index(sorted_index, i);\n assert(sorted_index[pos] == i);\n }\n\n sorted_index\n };\n\n // Sort the array using the indexes\n let mut result = self;\n for i in 0..N {\n result[i] = self[sorted_index[i]];\n }\n // Ensure the array is sorted\n for i in 0..N - 1 {\n assert(ordering(result[i], result[i + 1]));\n }\n\n result\n }\n\n /// Returns the index of the elements in the array that would sort it, using the provided custom sorting function.\n unconstrained fn get_sorting_index<Env>(self, ordering: fn[Env](T, T) -> bool) -> [u32; N] {\n let mut result = [0; N];\n let mut a = self;\n for i in 0..N {\n result[i] = i;\n }\n for i in 1..N {\n for j in 0..i {\n if ordering(a[i], a[j]) {\n let old_a_j = a[j];\n a[j] = a[i];\n a[i] = old_a_j;\n let old_j = result[j];\n result[j] = result[i];\n result[i] = old_j;\n }\n }\n }\n result\n }\n\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n // Apply a function to each element of an array, returning a new array\n // containing the mapped elements.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let first_elem = f(self[0]);\n let mut ret = [first_elem; N];\n\n for i in 1..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. This function is also sometimes\n // called `foldl`, `fold_left`, `reduce`, or `inject`.\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. Unlike fold, reduce uses the first\n // element of the given array as its starting accumulator value.\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n // Returns true if all elements in the array satisfy the predicate\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n // Returns true if any element in the array satisfies the predicate\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Convert a sequence of bytes as-is into a string.\n /// This function performs no UTF-8 validation or similar.\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\n// helper function used to look up the position of a value in an array of Field\n// Note that function returns 0 if the value is not found\nunconstrained fn find_index<let N: u32>(a: [u32; N], find: u32) -> u32 {\n let mut result = 0;\n for i in 0..a.len() {\n if a[i] == find {\n result = i;\n }\n }\n result\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"22":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\nstruct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint { \n EmbeddedCurvePoint {\n x: self.x,\n y: -self.y,\n is_infinite: self.is_infinite\n }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite) | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\nstruct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n// This is a hack as returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\nfn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint\n) -> EmbeddedCurvePoint\n// docs:end:embedded_curve_add\n{\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n EmbeddedCurvePoint { x, y, is_infinite: point_array[2] == 1 }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n"},"23":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes = x.to_le_bytes(32);\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes = x.to_le_radix(256, num_bytes);\n let y_bytes = y.to_le_radix(256, num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n unsafe {\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n unsafe {\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose_hint, decompose, compute_lt, assert_gt, gt, lt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"24":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n"},"245":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr","source":"use crate::{hash::pedersen_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field where K: ToField {\n pedersen_hash([storage_slot, key.to_field()], 0)\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f);\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript = 0x2499880e2b1b831785c17286f99a0d5122fee784ce7b1c04e380c4a991da819a;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"},"251":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic \n// if a value can actually be zero. In a future refactor, we can \n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\ntrait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field { fn empty() -> Self {0} }\n\nimpl Empty for u1 { fn empty() -> Self {0} }\nimpl Empty for u8 { fn empty() -> Self {0} }\nimpl Empty for u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\nimpl Empty for U128 { fn empty() -> Self {U128::from_integer(0)} }\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\ntrait Hash {\n fn hash(self) -> Field;\n}\n\ntrait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u1 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u8 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u32 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u64 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\ntrait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool { fn from_field(value: Field) -> Self { value as bool } }\nimpl FromField for u1 { fn from_field(value: Field) -> Self { value as u1 } }\nimpl FromField for u8 { fn from_field(value: Field) -> Self { value as u8 } }\nimpl FromField for u32 { fn from_field(value: Field) -> Self { value as u32 } }\nimpl FromField for u64 { fn from_field(value: Field) -> Self { value as u64 } }\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\ntrait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for [Field; N] {\n fn serialize(self) -> [Field; N] {\n self\n }\n}\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let mut result = [0; N];\n let bytes: [u8; N] = self.as_bytes();\n for i in 0..N {\n result[i] = field_from_bytes([bytes[i];1], true);\n }\n result\n }\n}\n\n// docs:start:deserialize\ntrait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let N: u32> Deserialize<N> for [Field; N] {\n fn deserialize(fields: [Field; N]) -> Self {\n fields\n }\n}\n"},"252":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"// Utility function to console.log data in the acir simulator\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n\n/// NOTE: call this with a str<N> msg of form\n/// \"some string with {0} and {1} ... {N}\"\n/// and an array of N field which will be formatted\n/// into the string in the simulator.\n/// Example:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\nunconstrained pub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n/// NOTE: call this with a str<N> msg of length > 1\n/// Example:\n/// `debug_log(\"blah blah this is a debug string\");`\nunconstrained pub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n"},"255":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_data_tree_leaf_preimage.nr","source":"use crate::{merkle_tree::leaf_preimage::IndexedTreeLeafPreimage, traits::{Empty, Hash}};\n\nstruct PublicDataTreeLeafPreimage {\n slot : Field,\n value: Field,\n next_slot :Field,\n next_index : u32,\n}\n\nimpl Empty for PublicDataTreeLeafPreimage {\n fn empty() -> Self {\n Self {\n slot: 0,\n value: 0,\n next_slot: 0,\n next_index: 0,\n }\n }\n}\n\nimpl Hash for PublicDataTreeLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash([self.slot, self.value, (self.next_index as Field), self.next_slot])\n }\n }\n}\n\nimpl IndexedTreeLeafPreimage for PublicDataTreeLeafPreimage {\n fn get_key(self) -> Field {\n self.slot\n }\n\n fn get_next_key(self) -> Field {\n self.next_slot\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl PublicDataTreeLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.slot == 0) & (self.value == 0) & (self.next_slot == 0) & (self.next_index == 0)\n }\n}\n"},"257":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc, point::Point\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"263":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: Field = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point {\n x: 0,\n y: 0,\n is_infinite: false\n }\n }\n}\n"},"264":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{\n aztec_address::AztecAddress, eth_address::EthAddress, partial_address::PartialAddress,\n public_keys_hash::PublicKeysHash\n},\n contract_class_id::ContractClassId,\n constants::{GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA, CONTRACT_INSTANCE_LENGTH},\n traits::{Deserialize, Hash, Serialize}\n};\n\nstruct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash) &\n self.initialization_hash.eq(other.initialization_hash) &\n self.contract_class_id.eq(other.contract_class_id) &\n self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::sha256::{digest, sha256_var};\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\nuse crate::meta::derive_via;\n\n#[foreign(sha256)]\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{}\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\n#[no_predicates]\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n#[no_predicates]\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::new();\n for i in 0..N {\n vec_generators.push(domain_generators[i]);\n }\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = unsafe {\n crate::field::bn254::decompose_hint(scalar)\n };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes(32).as_array();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\ntrait Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, |fields| fields)\n}\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"276":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/root.nr","source":"use crate::{hash::merkle_hash, merkle_tree::merkle_tree::MerkleTree};\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N]\n) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\npub fn calculate_subtree_root<let N: u32>(leaves: [Field; N]) -> Field {\n MerkleTree::new(leaves).get_root()\n}\n\n// These values are precomputed and we run tests to ensure that they\n// are correct. The values themselves were computed from the cpp code.\n//\n// Would be good if we could use width since the compute_subtree\n// algorithm uses depth.\npub fn calculate_empty_tree_root(depth: u32) -> Field {\n if depth == 0 {\n 0\n } else if depth == 1 {\n 0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1\n } else if depth == 2 {\n 0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290\n } else if depth == 3 {\n 0x21f9172d72fdcdafc312eee05cf5092980dda821da5b760a9fb8dbdf607c8a20\n } else if depth == 4 {\n 0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e\n } else if depth == 5 {\n 0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf\n } else if depth == 6 {\n 0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76\n } else if depth == 7 {\n 0x2d78ed82f93b61ba718b17c2dfe5b52375b4d37cbbed6f1fc98b47614b0cf21b\n } else if depth == 8 {\n 0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1\n } else if depth == 9 {\n 0x1849b85f3c693693e732dfc4577217acc18295193bede09ce8b97ad910310972\n } else if depth == 10 {\n 0x2a775ea761d20435b31fa2c33ff07663e24542ffb9e7b293dfce3042eb104686\n } else {\n assert(false, \"depth should be between 0 and 10\");\n 0\n }\n}\n\n#[test]\nfn test_merkle_root_interop_test() {\n // This is a test to ensure that we match the cpp implementation.\n // You can grep for `TEST_F(root_rollup_tests, noir_interop_test)`\n // to find the test that matches this.\n let root = calculate_subtree_root([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]);\n assert(0x1a09d935ae110b4c861fcec8f9099ec30b4485022aeb3d3cf9d7168e38fdc231 == root);\n\n let empty_root = calculate_subtree_root([0; 16]);\n assert(0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e == empty_root);\n}\n\n#[test]\nfn test_empty_subroot() {\n assert(calculate_empty_tree_root(0) == 0);\n\n let expected_empty_root_2 = calculate_subtree_root([0; 2]);\n assert(calculate_empty_tree_root(1) == expected_empty_root_2);\n\n let expected_empty_root_4 = calculate_subtree_root([0; 4]);\n assert(calculate_empty_tree_root(2) == expected_empty_root_4);\n\n let expected_empty_root_8 = calculate_subtree_root([0; 8]);\n assert(calculate_empty_tree_root(3) == expected_empty_root_8);\n\n let expected_empty_root_16 = calculate_subtree_root([0; 16]);\n assert(calculate_empty_tree_root(4) == expected_empty_root_16);\n\n let expected_empty_root_32 = calculate_subtree_root([0; 32]);\n assert(calculate_empty_tree_root(5) == expected_empty_root_32);\n\n let expected_empty_root_64 = calculate_subtree_root([0; 64]);\n assert(calculate_empty_tree_root(6) == expected_empty_root_64);\n\n let expected_empty_root_128 = calculate_subtree_root([0; 128]);\n assert(calculate_empty_tree_root(7) == expected_empty_root_128);\n\n let expected_empty_root_256 = calculate_subtree_root([0; 256]);\n assert(calculate_empty_tree_root(8) == expected_empty_root_256);\n\n let expected_empty_root_512 = calculate_subtree_root([0; 512]);\n assert(calculate_empty_tree_root(9) == expected_empty_root_512);\n\n let expected_empty_root_1024 = calculate_subtree_root([0; 1024]);\n assert(calculate_empty_tree_root(10) == expected_empty_root_1024);\n}\n"},"280":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"292":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr","source":"pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes = max_value.to_be_bytes(32);\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n"},"294":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"307":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash_with_separator,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"309":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{\n eth_address::EthAddress, salted_initialization_hash::SaltedInitializationHash,\n aztec_address::AztecAddress\n},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, FromField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH = 1;\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"310":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{eth_address::EthAddress, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\nstruct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) -> [Field; RATE] {\n // zero-pad the cache\n for i in 0..RATE {\n if i >= self.cache_size {\n self.cache[i] = 0;\n }\n }\n // add the cache into sponge state\n for i in 0..RATE {\n self.state[i] += self.cache[i];\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n // return `RATE` number of field elements from the sponge state.\n let mut result = [0; RATE];\n for i in 0..RATE {\n result[i] = self.state[i];\n }\n result\n }\n\n fn absorb(&mut self, input: Field) {\n if (!self.squeeze_mode) & (self.cache_size == RATE) {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n let _ = self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else if (!self.squeeze_mode) & (self.cache_size != RATE) {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n } else if self.squeeze_mode {\n // If we're in squeeze mode, switch to absorb mode and add the input into the cache.\n // N.B. I don't think this code path can be reached?!\n self.cache[0] = input;\n self.cache_size = 1;\n self.squeeze_mode = false;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n if self.squeeze_mode & (self.cache_size == 0) {\n // If we're in squeze mode and the cache is empty, there is nothing left to squeeze out of the sponge!\n // Switch to absorb mode.\n self.squeeze_mode = false;\n self.cache_size = 0;\n }\n if !self.squeeze_mode {\n // If we're in absorb mode, apply sponge permutation to compress the cache, populate cache with compressed\n // state and switch to squeeze mode. Note: this code block will execute if the previous `if` condition was\n // matched\n let new_output_elements = self.perform_duplex();\n self.squeeze_mode = true;\n for i in 0..RATE {\n self.cache[i] = new_output_elements[i];\n }\n self.cache_size = RATE;\n }\n // By this point, we should have a non-empty cache. Pop one item off the top of the cache and return it.\n let result = self.cache[0];\n for i in 1..RATE {\n if i < self.cache_size {\n self.cache[i - 1] = self.cache[i];\n }\n }\n self.cache_size -= 1;\n self.cache[self.cache_size] = 0;\n result\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\nstruct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field)*18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field){\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher {\n _state: &[],\n }\n }\n}\n"},"368":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_k_account_contract/src/main.nr","source":"// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\ncontract EcdsaKAccount {\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteGetterOptions, PrivateContext, PrivateImmutable};\n use dep::aztec::{\n encrypted_logs::encrypted_note_emission::encode_and_encrypt_note_with_keys,\n keys::getters::get_current_public_keys\n };\n\n use dep::aztec::protocol_types::abis::call_context::CallContext;\n use dep::std;\n\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness\n };\n\n use dep::ecdsa_public_key_note::EcdsaPublicKeyNote;\n\n #[aztec(storage)]\n struct Storage {\n public_key: PrivateImmutable<EcdsaPublicKeyNote>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: [u8; 32], signing_pub_key_y: [u8; 32]) {\n let this = context.this_address();\n let this_keys = get_current_public_keys(&mut context, this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note_with_keys(&mut context, this_keys.ovpk_m, this_keys.ivpk_m, this));\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update default_entrypoint.ts\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload);\n }\n\n #[aztec(private)]\n #[aztec(noinitcheck)]\n #[aztec(view)]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(outer_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let outer_hash_bytes: [u8; 32] = outer_hash.to_be_bytes(32).as_array();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\n assert(verification == true);\n\n true\n }\n}\n"},"369":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr","source":"use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteInterface, NoteGetterOptions, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator}\n};\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: Field = 5;\n// ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN: Field = 5 * 32 + 64;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[aztec(note)]\nstruct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN, ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = npk_m_hash\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n \n [x, last_x, y, last_y, self.npk_m_hash]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x = serialized_note[0].to_be_bytes(32);\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes(32)[31];\n\n let part_y = serialized_note[2].to_be_bytes(32);\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes(32)[31];\n\n EcdsaPublicKeyNote { x, y, npk_m_hash: serialized_note[4], header: NoteHeader::empty() }\n }\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let secret = context.request_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n\n fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let secret = get_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret,\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], npk_m_hash: Field) -> Self {\n EcdsaPublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\n }\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"50":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n"},"64":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr","source":"#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n * \n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\nunconstrained pub fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"},"65":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr","source":"use dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{\n GENERATOR_INDEX__AUTHWIT_INNER, GENERATOR_INDEX__AUTHWIT_OUTER, GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n CANONICAL_AUTH_REGISTRY_ADDRESS\n},\n hash::poseidon2_hash_with_separator\n};\nuse dep::aztec::{prelude::Deserialize, context::{PrivateContext, PublicContext, gas::GasOpts}, hash::hash_args_array};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties \n * (e.g. protocols or other users) to execute an action on their behalf.\n * \n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be \n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few \n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can \n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be \n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n * \n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer. \n * \n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is \n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n * \n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline \n * how this would look in private, and then in public later. \n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX). \n * `Alice` would make a `deposit` transaction, that she is executing using her account contract. \n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token` \n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to \n * convince the `Token` contract that it is allowed to do so. \n * \n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the \n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to \n * execute that call.\n * \n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her \n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n * \n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n * \n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts. \n * \n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n * \n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store \n * the messages that we have approved. \n * \n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `keccak256(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a colission and we return \n * a success flag.\n * \n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be \n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the \n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n * \n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains. \n */\n\nglobal IS_VALID_SELECTOR = 0xabf64ad4; // 4 first bytes of keccak256(\"IS_VALID()\")\n\n/** \n * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([context.msg_sender().to_field(), context.selector().to_field(), context.args_hash]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/** \n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n * \n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n * \n * @param on_behalf_of The address that have authorized the current call\n * @param inner_hash The hash of the message to authorize \n */\npub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context.static_call_private_function(\n on_behalf_of,\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\"),\n [inner_hash]\n ).unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allow same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/** \n * Assert that `on_behalf_of` have authorized the current call in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub fn assert_current_call_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash(\n [(*context).msg_sender().to_field(), (*context).selector().to_field(), (*context).get_args_hash()]\n );\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/** \n * Assert that `on_behalf_of` have authorized a speicifc `inner_hash` in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n */\npub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n let result: Field = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"consume((Field),Field)\"),\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default()\n ).deserialize_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness \n * \n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n * \n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N]\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash = compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n * \n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n * \n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/** \n * Computs the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n * \n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n * \n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, version: Field, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n consumer.to_field(),\n chain_id,\n version,\n inner_hash\n ],\n GENERATOR_INDEX__AUTHWIT_OUTER\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n * \n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n * \n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\"),\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n\n/**\n * Helper function to reject all authwits\n * \n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise \n */\npub fn set_reject_all(context: &mut PublicContext, reject: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_reject_all(bool)\"),\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"66":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::{\n context::PrivateContext, protocol_types::constants::GENERATOR_INDEX__COMBINED_PAYLOAD,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\nuse crate::auth::{IS_VALID_SELECTOR, compute_authwit_message_hash};\n\nstruct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n *\n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /**\n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n *\n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n *\n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload) {\n let valid_fn = self.is_valid_impl;\n\n let combined_payload_hash = poseidon2_hash_with_separator(\n [app_payload.hash(), fee_payload.hash()],\n GENERATOR_INDEX__COMBINED_PAYLOAD\n );\n assert(valid_fn(self.context, combined_payload_hash));\n\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n app_payload.execute_calls(self.context);\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n *\n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n *\n * Will revert if the message is not authorized.\n *\n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can\n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\n}\n"},"67":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"69":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\nuse crate::entrypoint::function_call::FunctionCall;\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: Field = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: Field = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS = 2;\n\n// docs:start:fee-payload-struct\nstruct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__FEE_PAYLOAD\n )\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n bytes.push(self.is_fee_payer as u8);\n\n bytes.storage\n }\n\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"},"75":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nfn test_point_to_symmetric_key_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158, 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159\n ];\n assert_eq(key, key_from_typescript);\n}\n"},"76":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/stored_keys.nr","source":"use crate::keys::public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH};\nuse dep::protocol_types::traits::{Serialize, Deserialize};\n\n// This struct represents how public keys are stored in the key registry. We store not just the keys themselves but also\n// their hash, so that when reading in private we can perform a historical read for the hash and then show that it\n// corresponds to a preimage obtained from an unconstrained hint. We do store the keys keys regardless as they might be\n// needed during public execution, and since we need to broadcast and produce hints in some standardized way.\n// While it might seem odd to create a struct for what is effectively some data and a pure function called on it, state\n// variables rely on serializable structs in order to persist data to storage, so we must use this abstraction.\nstruct StoredKeys {\n public_keys: PublicKeys,\n hash: Field,\n}\n\nimpl StoredKeys {\n // Instances of StoredKeys are expected to only be created by calling this function so that we guarantee that the\n // hash field does indeed correspond to the hash of the keys. Ideally we'd forbid direct access to the struct, but \n // Noir doesn't yet support private members.\n fn new(public_keys: PublicKeys) -> Self {\n Self { public_keys, hash: public_keys.hash().inner }\n }\n}\n\n// Our serialization is the concatenation of the public keys serialization plush the hash, so we need one extra field.\nglobal STORED_KEYS_LENGTH: u32 = PUBLIC_KEYS_LENGTH + 1;\n\nimpl Serialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn serialize(self) -> [Field; STORED_KEYS_LENGTH] {\n // The code below is equivalent to:\n // [ ...self.public_keys.serialize(), self.hash ]\n\n let mut array = [0; STORED_KEYS_LENGTH];\n\n let serialized_keys = self.public_keys.serialize();\n for i in 0..serialized_keys.len() {\n array[i] = serialized_keys[i];\n }\n\n array[PUBLIC_KEYS_LENGTH] = self.hash;\n\n array\n }\n}\n\nimpl Deserialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn deserialize(array: [Field; STORED_KEYS_LENGTH]) -> Self {\n // The code below is equivalent to:\n // Self { public_keys: PublicKeys::deserialize(array[0 : PUBLIC_KEYS_LENGTH]), hash: array[PUBLIC_KEYS_LENGTH] }\n\n let mut serialized_keys = [0; PUBLIC_KEYS_LENGTH];\n for i in 0..serialized_keys.len() {\n serialized_keys[i] = array[i];\n }\n\n let hash = array[PUBLIC_KEYS_LENGTH];\n\n Self { public_keys: PublicKeys::deserialize(serialized_keys), hash }\n }\n}\n"},"77":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/public_keys.nr","source":"use dep::protocol_types::{\n address::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::{Point, POINT_LENGTH},\n traits::{Deserialize, Serialize, Empty, is_empty, Hash}\n};\nuse crate::keys::constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\nstruct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\ntrait ToPoint {\n fn to_point(self) -> Point;\n}\n\nstruct NpkM {\n inner: Point\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nstruct IvpkM {\n inner: Point\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct OvpkM {\n inner: Point\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct TpkM {\n inner: Point\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m : NpkM { inner: Point::empty() },\n ivpk_m : IvpkM { inner: Point::empty() },\n ovpk_m : OvpkM { inner: Point::empty() },\n tpk_m : TpkM { inner: Point::empty() }\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n ( self.npk_m.inner == other.npk_m.inner ) &\n ( self.ivpk_m.inner == other.ivpk_m.inner ) &\n ( self.ovpk_m.inner == other.ovpk_m.inner ) &\n ( self.tpk_m.inner == other.tpk_m.inner )\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field)\n }\n )\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM { inner: Point { x:serialized[0], y:serialized[1], is_infinite: serialized[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x:serialized[3], y: serialized[4], is_infinite: serialized[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x:serialized[6], y: serialized[7], is_infinite: serialized[8] as bool } },\n tpk_m: TpkM { inner: Point { x:serialized[9], y: serialized[10], is_infinite: serialized[11] as bool } }\n }\n }\n}\n\n#[test]\nfn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nfn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nfn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"79":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::{\n header::Header, abis::validation_requests::KeyValidationRequest, address::AztecAddress,\n constants::CANONICAL_KEY_REGISTRY_ADDRESS, point::Point, storage::map::derive_storage_slot_in_map,\n traits::is_empty\n};\nuse crate::{\n context::{PrivateContext, UnconstrainedContext},\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{\n public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH}, stored_keys::StoredKeys,\n constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX, TAGGING_INDEX}\n},\n state_vars::{\n shared_mutable::shared_mutable_private_getter::SharedMutablePrivateGetter,\n public_mutable::PublicMutable, map::Map\n}\n};\n\nmod test;\n\n// This is the number of blocks that must pass after a key rotation event until the old keys are fully phased out and\n// become invalid.\nglobal KEY_REGISTRY_UPDATE_BLOCKS = 5;\n\nglobal KEY_REGISTRY_STORAGE_SLOT = 1;\n\n// A helper function since requesting nsk_app is very common\n// TODO(#6543)\npub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// Returns all current public keys for a given account, applying proper constraints to the context. We read all\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_current_public_keys(context: &mut PrivateContext, account: AztecAddress) -> PublicKeys {\n // We're going to perform historical reads from public storage, and so need to constrain the caller so that they\n // cannot use very old blocks when constructing proofs, and hence e.g. read very old keys. We are lax and allow\n // _any_ recent block number to be used, regardless of whether there may have been a recent key rotation. This means\n // that multiple sets of keys are valid for a while immediately after rotation, until the old keys become phased\n // out. We *must* be lax to prevent denial of service and transaction fingerprinting attacks by accounts that rotate\n // their keys frequently.\n // Note that we constrain the max block number even if the registry ends up being empty: this ensures that proof of\n // an empty registry is also fresh.\n let current_header = context.get_header();\n context.set_tx_max_block_number(current_header.global_variables.block_number as u32 + KEY_REGISTRY_UPDATE_BLOCKS);\n\n get_historical_public_keys(current_header, account)\n}\n\n// Returns historical public keys for a given account at some block determined by a block header. We read all keys at\n// once since the constraints for reading them all are actually fewer than if we read them one at a time - any read keys\n// that are not required by the caller can simply be discarded.\n// WARNING: if called with a historical header created from a fixed block this function will explicitly ignore key\n// rotation! This means that callers of this may force a user to use old keys, potentially leaking privacy (e.g. if the\n// old keys were leaked). Only call this function with a header from a fixed block if you understand the implications of\n// breaking key rotation very well.\npub fn get_historical_public_keys(historical_header: Header, account: AztecAddress) -> PublicKeys {\n // TODO: improve this so that we always hint the correct set of keys (either registry or canonical) and hash them\n // once instead of having two different hints and twice as many constraints due to the double hashing.\n\n // The key registry is the primary source of information for keys, as that's where accounts store their new keys\n // when they perform rotation. The key registry conveniently stores a hash of each user's keys, so we can read that\n // single field and then prove that we know its preimage (i.e. the current set of keys).\n let key_registry_hash = key_registry_hash_public_historical_read(historical_header, account);\n if key_registry_hash != 0 {\n let hinted_registry_public_keys = key_registry_get_stored_keys_hint(\n account,\n historical_header.global_variables.block_number as u32\n );\n assert_eq(hinted_registry_public_keys.hash().to_field(), key_registry_hash);\n\n hinted_registry_public_keys\n } else {\n // If nothing was written to the registry, we may still be able to produce the correct keys if we happen to know\n // the canonical set (i.e. the ones that are part of the account's preimage).\n let (hinted_canonical_public_keys, partial_address) = get_public_keys_and_partial_address(account);\n assert_eq(\n account, AztecAddress::compute(hinted_canonical_public_keys.hash(), partial_address), \"Invalid public keys hint for address\"\n );\n\n hinted_canonical_public_keys\n }\n}\n\nfn key_registry_hash_public_historical_read(historical_header: Header, account: AztecAddress) -> Field {\n // The keys are stored in a Map that is keyed with the address of each account, so we first derive the corresponding\n // slot for this account.\n let keys_storage_slot = derive_storage_slot_in_map(KEY_REGISTRY_STORAGE_SLOT, account);\n\n // The keys are stored as [ ...serialized_keys, hash ], and since arrays get allocated sequential storage slots\n // (prior to siloing!), we simply add the length to the base slot to get the last element.\n let hash_storage_slot = keys_storage_slot + PUBLIC_KEYS_LENGTH as Field;\n\n historical_header.public_storage_historical_read(hash_storage_slot, CANONICAL_KEY_REGISTRY_ADDRESS)\n}\n\nunconstrained fn key_registry_get_stored_keys_hint(account: AztecAddress, block_number: u32) -> PublicKeys {\n // This is equivalent to the key registry contract having an unconstrained getter that we call from an oracle, but\n // PXE does not yet support that functionality so we do this manually instad. Note that this would be a *historical*\n // call!\n\n // TODO (#7524): call the unconstrained KeyRegistry.get_current_keys() function instead\n\n let context = UnconstrainedContext::at_historical(CANONICAL_KEY_REGISTRY_ADDRESS, block_number);\n let keys_storage = Map::new(\n context,\n KEY_REGISTRY_STORAGE_SLOT,\n |context, slot| { PublicMutable::new(context, slot) }\n );\n\n let stored_keys: StoredKeys = keys_storage.at(account).read();\n stored_keys.public_keys\n}\n"},"93":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/history/public_storage.nr","source":"use dep::protocol_types::{\n constants::GENERATOR_INDEX__PUBLIC_LEAF_INDEX, hash::poseidon2_hash_with_separator,\n address::AztecAddress, header::Header, utils::field::full_field_less_than\n};\nuse dep::protocol_types::merkle_tree::root::root_from_sibling_path;\n\nuse crate::{context::PrivateContext, oracle::get_public_data_witness::get_public_data_witness};\n\ntrait PublicStorageHistoricalRead {\n fn public_storage_historical_read(header: Header, storage_slot: Field, contract_address: AztecAddress) -> Field;\n}\n\nimpl PublicStorageHistoricalRead for Header {\n fn public_storage_historical_read(self, storage_slot: Field, contract_address: AztecAddress) -> Field {\n // 1) Compute the leaf slot by siloing the storage slot with the contract address\n let public_data_tree_index = poseidon2_hash_with_separator(\n [contract_address.to_field(), storage_slot],\n GENERATOR_INDEX__PUBLIC_LEAF_INDEX\n );\n\n // 2) Get the membership witness of the slot\n let witness = get_public_data_witness(\n self.global_variables.block_number as u32,\n public_data_tree_index\n );\n\n // 3) Extract the value from the witness leaf and check that the storage slot is correct\n let preimage = witness.leaf_preimage;\n\n // Here we have two cases. Code based on same checks in `validate_public_data_reads` in `base_rollup_inputs`\n // 1. The value is the same as the one in the witness\n // 2. The value was never initialized and is zero\n let is_less_than_slot = full_field_less_than(preimage.slot, public_data_tree_index);\n let is_next_greater_than = full_field_less_than(public_data_tree_index, preimage.next_slot);\n let is_max = ((preimage.next_index == 0) & (preimage.next_slot == 0));\n let is_in_range = is_less_than_slot & (is_next_greater_than | is_max);\n\n let value = if is_in_range {\n 0\n } else {\n assert_eq(preimage.slot, public_data_tree_index, \"Public data tree index doesn't match witness\");\n preimage.value\n };\n\n // 4) Prove that the leaf exists in the public data tree. Note that `hash` returns not just the hash of the value\n // but also the metadata (slot, next index and next slot).\n assert(\n self.state.partial.public_data_tree.root\n == root_from_sibling_path(preimage.hash(), witness.index, witness.path), \"Proving public value inclusion failed\"\n );\n\n value\n }\n}\n"}}}
1
+ {"transpiled":true,"noir_version":"0.33.0+47457412d9534885d98ff5ca22e9ec4f4b72f9c4","name":"EcdsaKAccount","functions":[{"name":"constructor","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(initializer)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["aztec(private)","aztec(noinitcheck)","aztec(view)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"inner_hash","type":{"kind":"field"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"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"},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["aztec(private)"],"abi":{"error_types":{},"parameters":[{"name":"inputs","type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"aztec::context::inputs::private_context_inputs::PrivateContextInputs"},"visibility":"private"},{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"},"visibility":"private"},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"},"visibility":"private"},{"name":"cancellable","type":{"kind":"boolean"},"visibility":"private"}],"return_type":{"abi_type":{"fields":[{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"min_revertible_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"is_fee_payer","type":{"kind":"boolean"}},{"name":"max_block_number","type":{"fields":[{"name":"_opt","type":{"fields":[{"name":"_is_some","type":{"kind":"boolean"}},{"name":"_value","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"std::option::Option"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::max_block_number::MaxBlockNumber"}},{"name":"note_hash_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"nullifier_read_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::read_request::ReadRequest"}}},{"name":"key_validation_requests_and_generators","type":{"kind":"array","length":16,"type":{"fields":[{"name":"request","type":{"fields":[{"name":"pk_m","type":{"fields":[{"name":"x","type":{"kind":"field"}},{"name":"y","type":{"kind":"field"}},{"name":"is_infinite","type":{"kind":"boolean"}}],"kind":"struct","path":"std::embedded_curve_ops::EmbeddedCurvePoint"}},{"name":"sk_app","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request::KeyValidationRequest"}},{"name":"sk_app_generator","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::validation_requests::key_validation_request_and_generator::KeyValidationRequestAndGenerator"}}},{"name":"note_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::note_hash::NoteHash"}}},{"name":"nullifiers","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::nullifier::Nullifier"}}},{"name":"private_call_requests","type":{"kind":"array","length":4,"type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_call_request::PrivateCallRequest"}}},{"name":"public_call_requests","type":{"kind":"array","length":16,"type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}}},{"name":"public_teardown_call_request","type":{"fields":[{"name":"item","type":{"fields":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"call_context","type":{"fields":[{"name":"msg_sender","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"storage_contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"is_delegate_call","type":{"kind":"boolean"}},{"name":"is_static_call","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::call_context::CallContext"}},{"name":"args_hash","type":{"kind":"field"}},{"name":"returns_hash","type":{"kind":"field"}},{"name":"revert_code","type":{"kind":"integer","sign":"unsigned","width":8}},{"name":"start_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"end_gas_left","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_stack_item_compressed::PublicCallStackItemCompressed"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::public_call_request::PublicCallRequest"}},{"name":"l2_to_l1_msgs","type":{"kind":"array","length":2,"type":{"fields":[{"name":"recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"content","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::messaging::l2_to_l1_message::L2ToL1Message"}}},{"name":"start_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"end_side_effect_counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"note_encrypted_logs_hashes","type":{"kind":"array","length":16,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"note_hash_counter","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::NoteLogHash"}}},{"name":"encrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}},{"name":"randomness","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::EncryptedLogHash"}}},{"name":"unencrypted_logs_hashes","type":{"kind":"array","length":4,"type":{"fields":[{"name":"value","type":{"kind":"field"}},{"name":"counter","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"length","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::log_hash::LogHash"}}},{"name":"historical_header","type":{"fields":[{"name":"last_archive","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"content_commitment","type":{"fields":[{"name":"num_txs","type":{"kind":"field"}},{"name":"txs_effects_hash","type":{"kind":"field"}},{"name":"in_hash","type":{"kind":"field"}},{"name":"out_hash","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::content_commitment::ContentCommitment"}},{"name":"state","type":{"fields":[{"name":"l1_to_l2_message_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"partial","type":{"fields":[{"name":"note_hash_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"nullifier_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}},{"name":"public_data_tree","type":{"fields":[{"name":"root","type":{"kind":"field"}},{"name":"next_available_leaf_index","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::append_only_tree_snapshot::AppendOnlyTreeSnapshot"}}],"kind":"struct","path":"authwit::aztec::protocol_types::partial_state_reference::PartialStateReference"}}],"kind":"struct","path":"authwit::aztec::protocol_types::state_reference::StateReference"}},{"name":"global_variables","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"block_number","type":{"kind":"field"}},{"name":"slot_number","type":{"kind":"field"}},{"name":"timestamp","type":{"kind":"integer","sign":"unsigned","width":64}},{"name":"coinbase","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::eth_address::EthAddress"}},{"name":"fee_recipient","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"gas_fees","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::global_variables::GlobalVariables"}},{"name":"total_fees","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::header::Header"}},{"name":"tx_context","type":{"fields":[{"name":"chain_id","type":{"kind":"field"}},{"name":"version","type":{"kind":"field"}},{"name":"gas_settings","type":{"fields":[{"name":"gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"teardown_gas_limits","type":{"fields":[{"name":"da_gas","type":{"kind":"integer","sign":"unsigned","width":32}},{"name":"l2_gas","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas::Gas"}},{"name":"max_fees_per_gas","type":{"fields":[{"name":"fee_per_da_gas","type":{"kind":"field"}},{"name":"fee_per_l2_gas","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_fees::GasFees"}},{"name":"inclusion_fee","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::gas_settings::GasSettings"}}],"kind":"struct","path":"authwit::aztec::protocol_types::transaction::tx_context::TxContext"}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::private_circuit_public_inputs::PrivateCircuitPublicInputs"},"visibility":"public"}},"bytecode":"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","debug_symbols":"7P3djmTZkp7r3Usf98G0fzPeiiAIlDa3QGCDFETqiOh718hVGRFZzKj0Wt2eEW+4+RGribkizYZnfm4+PR6b/+tf/o//8v/8//2//x//9b/9n//9f/zLf/q//a9/+b/++//rP//P//rf/9v5v/7Xv5j/4//vf/x//vN/+/Z//o//+Z//v//zX/7T9a//8l/+2/9x/t9/+9d/+T//6//1X/7lP1nNv/3rT9dpTX2/VFvm9WqxfudqG+vvV/ulcuNqudTi++Xnv71fr9e83rs+0l4uj9a3yvXdH16vF4v+6eL/+7/+i8XzUH4+lHweys+HUs9D+flQ+nkoPx/KPA/lp0Px63koPx+KPA/l50PR56H8fCj2PJSfD8Wfh/LzoTwn2ncO5TnRvnMoz4n2nUN5TrTvHMpzov35UOI50b5zKM+J9p1DeU607xwKeaItfTuUzhuHot3yUstc13/oUPx5KD8fCnmi/bRDeU607xzKc6J951CeE+07h/KcaH8+lHxOtO8cynOifedQnhPtO4fyvEf7zqH481B+PpTnPdp3DuU50b5zKM+J9p1DeU607xzKc6L9+VDqOdG+cyjPifadQ3lOtO8cyvMe7TuH4s9D+flQnvdo3zmUD5xoXSdfDuUfPw+bKfU8lJ8PpZ+H8vOhzPNQfjqUvp6H8vOhCPhQPuvdpz9wonWbeTkUrwD/TbHnofx8KP48lJ8PJZ6H8vOh5PNQfj6Ueh7Kz4fS4EP5tLfk/9BEa5Mvl56G38oWub798Ll+5w//D01YovYyM4nWj5/Y37t6XF9e/HH3P5XyzstjIi9Hfv7b9afS9euW/u60ole//P1VuW42EO6v/6bz7ep892LJ17zQfPtbUBcrXcafB/P+wcTzYN4/mHwezPsHU8+Def9g+nkw7x/MPA/m3YM5bT9P5i9ORp4n8xcno8+T+YuTeU6/f3Uy/jyZvziZ5/z7VyfzHID/6mSeE/BfncxzBP6rk3nOwH9xMvKcgf/qZJ4z8F+dzHMG/quTec7Af3Uy/jyZvziZ5wz8VyfznIH/6mSeM/BfncxzBv6rk3nOwH9xMkqfgT/rFyBE6TPw553MXWbgfDuZvnkyUq8nI2/1lNL+NdnzZP7iZPx5Mn9xMvE8mb84mXyezF+cTD1P5i9Opp8n8xcnM8+Tef9k7HqezF+cjDxP5i9O5jkD/9XJPGfgvzoZf57MX5zMcwb+q5N5zsB/dTL0GfjT7s8YfQb+vJO5ywx8vYgcSb91Mp/YrF+bmpVNzd5j+Mx4/Tdbl/66WU192WOjGXHjR2vLG4kMe71a/oLz6cvB2MRbIef2zx/N2qZmfVOzsanZ3NRsbWq2NzU7i5qNa1OzsqnZTRNUbJqgYtMEFZsmqNg0QcWmCSo2TVCxaYLKTRNUbpqgctMElZsmqNw0QeWmCSo3TVC5aYLKTRNUbpqgatMEVZsmqNo0QdWmCao2TVC1aYKqTRNUbZqgatMEVZsmqN40QfWmCao3TVC9aYLqTRNUb5qgetME1ZsmqN40QfWmCWo2TVCzaYKaTRPUbJqg7vLckS/T7KYJajZNULNpgppNE9QsmqD0WjRB6bVogtJr0QSl16IJSi/f1OyiCUqvRROUXosmKL0ea4KK14fFXlf+qdl3yo550+vmPx/NY81b/9TR5NvRlMZPRyOPNJ355fl6NH3zaK63oxG9frj6vQcSW7z86/Nvf/ZL1f3urpfL+nWJweW3d8PI6wNp5XyN+XZ1/fEaPdJQ+aiv0SPNwo/6Gj3SCP+or5E/XyP8a/RIH5ge9TV6pM95j/oaPdLH00d9jR7pU/WjvkaP9PH+QV8jfd5n4L9Gz/sM/NfoeZ+B/xo97zPwXyN/vkb41+h5n4H/Gj3vM/Bfo+d9Bv5r9LzPwH+NnvcZ8K+RPe8z8F+j530G/mv0vM/Af42e9xn4r5E/XyP8a/S8z8B/jZ73Gfiv0fM+A/81et5n4L9Gz/sM+NfIn/cZ+K/R8z4D4TWalx9+CvGfXqPnfQb+a/S8z8B/jfz5Gn3+a6TXvL5GPzy7+OU1et5n4L9Gz/sM/NfoeZ8B8BqZvT4D3n54YvzLa/S8z/D3XqOQl4vzihuvkYm/roCQrrcz1z/O/Hnf4Dec+ens5cz15zN/qOckf5Uzf36u//gzf35O//gzf37u/vgz9+eZf/iZPz8Xf/yZPz/nfvyZPz+3fvyZPz+HfvyZPz+H/r0zT3m5zZU/1PFX92ck327P/OnM3ynaX2/O+I+3fr6/QA/1aPqHfIGen3DhL9Dz4zD8BVr82Vnt9QVS1z+9QP84Gn8ezV8dzeJPoreOZvEHRm1/Kds0bySezGslMv1DML3/Ndql9fo92qU/1PL+9dr98hWQzo8Hru/+8LK3qNYfL/7HS7r48+ijvqSP9XF3Xnr1f7wwv3xJ53T5/erRHzedy7uHbiIvP/z894+Bd67/x1E+1qfYzzzK+vDPm6Uv/7y1fnhWwrcf/Y+CPvzz1XmJXl+tnJ8LUlpBRivIaQUFraCkFVS0gppW0MAK6otWEC2pm5bUTUvqpiV105K6aUndtKRuWlI3LamHltRDS+qhJfXQknpoST20pB5aUg8tqYeW1ANLartgSW0XLKntgiW1XbCktguW1HbBktouWFLbBUtqu2BJbRctqYWW1EJLaqEltdCSWmhJLbSkFlpSCy2phZbUQktqpSW10pJaaUmttKRWWlIrLamVltRKS2qlJbXSktpoSW20pDZaUhstqY2W1EZLaqMltdGS2mhJbbSkdlpSOy2pnZbUTktqpyW105LaaUnttKR2WlI7LamDltRBS+qgJXXQkjpoSR20pA5aUgctqYOW1EFL6qQlddKSOmlJnbSkTlpSJy2pk5bUSUvqpCV10pK6aElNM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pGM4pOM4pOM4pOM4pOM4p+wZLaaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUbRaUYxaEYxaEYxaEYxaEYxLlhSB80oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oBs0oJs0oJs0oJs0oJs0o5gVL6qQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaQZxaIZxaIZxaIZxaIZxbpgSV00o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o1g0o9g0o9g0o9g0o9g0o9gXLKmbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSbZhSb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TVAfvov7U5t9sAnqV3t91R9sgvp1sw82Qf26WfQubpmafL26xW40e+5FyMs/2vPfrn+6/o+G0fu4f0PDgX6qye9oGP1kk9/RMPrpJr+jYfQTTn5Hw76tYfSTTn5Hw+innfyOhtFPPPkdDW+btD58f/kZdV+fjlE/PMrkNPyPgj58x/jNgoRWkNIKMlpBTivow98py94+UIb8XFDSCipaQU0raGAF1UUrSGgFKa0goxXktIIC9tZRSSuoaAU1rSD2d8Dxw83maO2fPxTAd6z+jQbgTwi83QD7+9e/0QD7O9W/0YDDUqVp70xNe2dq2jtT096Zmna35y67KDPq9c+49EZMpL7cbzufyuPGjz5vJK8P3u344Xbbu1f7NS9321x+zBTNd66e0+X3q0f11jfEf+NW3l1WXT7P8o+z1OdZ3u0s7XmWdztLf57l3c4ynmd5t7PM51ne7SzreZZ3O8t+nuXdznKeZ3mns7QL9i23XbBvuQ2+iTUmXsvP8+e88xLD74DdbsC/egPs3/7/Gw2wf6P/bzTA/i39v9EA2y7+jQbg30XdbAC+KfRvNAD/Lup2A7DfNzOB/b6ZffhmzJsFwb4rMoF9V2QC+67IBPZdkQnsuyJT2mcmpX1mUlpSKy2plZbUSktqpSW10pJaaUmttKQ2WlIbLamNltRGS2qjJbXRktpoSW20pDZaUhstqZ2W1E5LaqcltdOS2mlJ7bSkdlpSOy2pnZbUTkvqoCV10JI6aEkdtKQOWlIHLamDltRBS+qgJTVtg4XRNlgYbYOF0TZYGG2DhdE2WFjSkjppSZ20pE5aUictqYuW1EVL6qIlddGSumhJTdtgYbQNFkbbYGG0DRZWtKRuWlI3LambltRNS2raRgejbXQw2kYHo210MNpGB6NtdLChJfXQknpoST20pB5aUg8tqYeW1ENL6qEl9TzUMy2iXL5fHpU/qxG/HuqJFrfbfajnWdxu96GeZnG73Yd6lsXtdn1Xuw/1HIvb7T7UUyxut/tQz7C43e5DPcHidru7piqBfbp2gX26dppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppWdppW9oElddCemBu0J+bGBUvquGBJHRcsqeOCJXVcsKSOC5bUccGSOi5aUtOMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtKMYtKMYtKMYtKMYl6wpE6aUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUSyaUSyaUSyaUSyaUawLltRFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pF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RWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapRWmbWpS2qUVpm1qUtqlFaZtalLapxWibWux6KKEV5fL98qj8+S64XQ/ls263+1A663a7vqtdtHm/f7to9X7/dmHv7nbB3t3tor27C+3dXWCfw0xgn8NMYJ/D7OO3ttwqCPY5zAT2OcyEltRCS2qhJbXSklppSa20pFZaUistqZWW1EpLaqUlNW1Tg9E2NRhtU4MZLamNltRGS2qjJbXRktpoSW20pDZaUtM2NZjTktppSe20pHZaUjstqZ2W1E5LaqcltdOS2mlJHbSkDlpSBy2pg5bUQUvqoCV10JI6aEkdtKQOWlInLamTltQ012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o012o01+o01+oXLKn9giW1X7Ck9guW1H7BktovWFI7zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSg6zSgGzSgGzSgGzSgGzSjGBUvqoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnFoBnF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mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlF0mlEMmlEMmlEMmlEMmlGMC5bUQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKQTOKSTOKSTOKSTOKSTOKecGSOmlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGMWlGsWhGsWhGsWhGsWhGsS5YUhfNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKBbNKDbNKDbNKDbNKDbNKPYFS+qmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWmGcWhGcWhGcWhGcWhGcW5YEk9NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4NKM4MKPoF8wonoJYSX0KYiX1KYiV1KcgVlKfglhJfQpiJfUpiJXUpyBWUp+CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFhSC80oCs0oCs0oCs0oygVLaqEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaEZRaUZRaUZRaUZRaUZRb1gSa00o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o6g0o2g0o2g0o2g0o2g0o2gXLKmNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSNZhSdZhSdZhSdZhSdZhT9giW104yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04yi04xi0Ixi0Ixi0Ixi0IxiXLCkDppRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRDJpRTJpRTJpRTJpRTJpRzAuW1EkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikkzikUzikUzikUzikUzinXBkrpoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFoRrFpRrFpRrFpRrFpRrEvWFI3zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSg2zSgOzSgOzSgOzSgOzSjOBUvqoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFgRnFuGBG8RTESupTECupT0GspD4FsZL6FMRK6lMQK6lPQaykPgWxkvoUREtqmFE8BdGSGmYUT0G0pP5wo6iX+cuPvr79uLeC3rs4s16vzqnXy0Wudyupl7qlOl6vju/NxqZmc1OztanZ3tTsLGr2wy3rpzYrm5rVTc3apmad3OwZ+uZtAGyxG82qidjLTzdx/dP1fzSMnqJ+R8PoSep3NIyepn5Hw+iJ6nc0jJ6qfkPD97Hn4q9vBDY3PniXvb1rhLw1rN8LElpBSivIPrygul4v/mEseC3IaQUFraCk/R0qWkFNK2hgBTktqZ2W1E5LajdaQU4riJbUnrSCilZQ0wr66KRWmZeCVC1/LOidnxw/3CaJ1v55Bo/rqzcgX70B/eoN0N5p7mPn71lQ0ApK9t+5idfUzfPnvPN3rr56A/3VG7jHO1/G692qum7drUrtlx+dETd+tLa8fp/Q8cPNqnev9mte7lW5/Jhxmu9cPafL71ePavzbf/hG2F3WEDzP8o+zlOdZ3u0s9XmWdztLe57l3c7Sn2d5t7OMLz6I5FefZfOrz7L51WfZhN/FudlAwe/i3G5AYDf2SmkF0b55vc82lXsWRLufX7T7+UW7n1+0+/k1sIL6ohVES+qmJXXTkrppSd20pG5aUjctqZuW1E1L6qEl9dCSemhJPbSkHlpSDy2ph5bUQ0vqoSX1wJJaLlhSywVLarlgSS0XLKnlgiW1XLCklguW1HLBklouWFLLRUtqoSW10JJaaEkttKQWWlILLamFltRCS2qhJbXQklppSa20pFZaUistqZWW1EpLaqUltdKSWmlJrbSkNlpSGy2pjZbUNHUvNHUvNHUvRktqoyW10ZLaaEnttKR2WlI7LamdltROS2qauheauheauheauhenJXXQkjpoSR20pA5aUgctqYOW1EFL6qAlddCSOmhJnbSkTlpSJy2pk5bUSUvqpCV10pI6aUmdtKROWlIXLalpRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlHuYxTTXv+MHx7f9H5BmW/bY+qH5VvS3ysKXEWJq6hwFTWuooFVpLTnvivtue9Ke+670p77rpfTCoI9911pz31X2nPflfbcd6U9911pz31X2nPflfbcd6U9912FltRCS2qhJbXQklpoSS20pFZaUistqZWW1EpLaqUltdKSWmlJrbSkVlpSKy2pjZbURktqoyW10ZLaaElttKQ2WlIbLamNltRGS2qnJbXTktppSe20pHZaUjstqZ2W1E5LaqcltdOSOmhJHbSkDlpSBy2pg5bUQUvqoCV10JI6aEkdtKROWlInLamTltRJS+qkJXXSkjppSZ20pE5aUictqYuW1EVL6qIlddGSumhJXbSkLlpSFy2pi5bURUvqpiV105K6aUndtKRuWlI3LambltRNS+qmJXXTknpoST20pB5aUg8tqYeW1ENL6qEl9dCSemhJPbCkNppRNJpRNJpRNJpRtAuW1EYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzik4zik4zik4zik4zin7BktppRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRjFoRjFoRjFoRjFoRjEuWFIHzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgmzSgmzSgmzSgmzSjmBUvqpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFohnFohnFohnFohnFumBJXTSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSj2DSj2DSj2DSj2DSj2BcsqZtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFIdmFIdmFIdmFIdmFOeCJfXQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLAjGJeMKN4CmIl9SmIldSnIFZSn4JYSX0KYiX1KYiV1KcgVlKfglhJfQqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqi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aUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUbRaEbRaEbRaEbRaEbRLlhSG80oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oOs0oOs0oOs0oOs0o+gVLaqcZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZxaAZxaAZxaAZxaAZxbhgSR00oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0o5g0o5g0o5g0o5g0o5gXLKmTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSLZhSLZhSLZhSLZhTrgiV10Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi04xi04xi04xi04xiX7CkbppRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRHJpRHJpRHJpRHJpRnAuW1EMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzigMzin3BjOIpiJXUpyBWUp+CWEl9CmIl9SmIldSnIFZSn4JYSX0KYiX1KYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqCJbXQjKLQjKLQjKLQjKJcsKQWmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlEUmlFUmlFUmlFUmlFUmlHUC5bUSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKSjOKRjOKRjOKRjOKRjOKdsGS2mhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WlG0WlG0WlG0WlG0S9YUjvNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKAbNKAbNKAbNKAbNKMYFS+qgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWkGcWkGcWkGcWkGcW8YEmdNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOY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M4pCM4pCM4pKM4pKM4pKM4pKM4p6wZJaaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUbRaEbRaEbRaEbRaEbRLlhSG80oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oOs0oOs0oOs0oOs0o+gVLaqcZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZxaAZxaAZxaAZxaAZxbhgSR00oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0o5g0o5g0o5g0o5g0o5gXLKmTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSLZhSLZhSLZhSLZhTrgiV10Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi04xi04xi04xi04xiX7CkbppRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRHJpRHJpRHJpRHJpRnAuW1EMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzikMzivPhRlEv85cffX37cW8FvXdxZr1enVOvl4tc71ZSL3VLdbxeHd+bzU3N1qZme1Ozs6jZD/emn9os6B39nYszr5eLs96KN+nv5YPe//895YOmhX9P+U7+lyLfFpq/NttiN/6lqInYy083cf3T9X80jJ5dfkfD6PnldzSMnmF+R8PoOUa+fRf4erVovdPAY80m+Vq35Mz//nadjzWb3GhWNjWrm5q1Tc36Y32eMHv9PBE/fZ7IB7u78+tmH+zuzq+bfbC7O79u9sHu7vy62Qe7u/PLZuvB7u78utnHmqBuNPtYE9SNZh9rgrrRrG9qdtMEVZsmqNo0QdWmCao2TVC9aYLqTRNUb5qgetME9eEbYD612U0TVG+aoHrTBNWbJqjeNEHNpglqNk1Qs2mCmk0T1IdvZvrUZjdNULNpgppNE9RsmqBmzwR1Grn2jFDfut0zQ33rds8Q9a3bPVPUt259Vbd75qhv3e4ZpL51u2eS+tbtnlHqW7erZilZNUvJqllKVs1SsmqW+vDFhp/b7apZSlbNUrJqlpJVs5SsmqV01Sylq2YpXTVL6apZ6sNXj35ut6tmKV01S+mqWUpXzVK6apayVbOUrZqlbNUsZatmqQ9fDvy53a6apWzVLGWrZilbNUvZqlnKV81SvmqW8lWzlK+apT58fffndrtqlnq05eA3ul01Sz3aevAb3a6apR5tQfiNblfNUrFqlopVsxR7Xfndu101S7EXld+921WzFHtF+d27XTVLPdhC81vdrpqlHmyl+a1uV81Si5aaf+t21Sy1aK35t25XzVKLFpt/63bVLLVotfm3blfNUouWm3/rdtUstWi9+bduV81Sixacf+t21Sy1aMX5t25XzVKLlpx/63bVLLVozfm3blfNUosWnX/rdtUstWjV+bduV81Si5adf+t21Sy1aN35t25XzVKLFp5/63bVLLVo5fm3blfNUouWnn/rdtUstWjt+bduN81Ssmrvuazaey6r9p7Lqr3ncvmqbjfNUrJq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nsuq/aey6q957Jq77ms2nuuq/ae66q957pq77mu2nuul6/qdtMspav2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee6au+5rtp7rqv2nuuqvee2au+5rdp7bqv2ntuj7T0vfe223+nWV3X74bOUZb78aBf9dbcSE9fLj04p+VO33zvIL99BoTtIvea1g/M/fa+D/vIdzFfv4ON3g9+9A0F3UFf7a5SKxK3kzde6JWd+St6P3/f9qd3aqm59VbfsGeLe3bLnjX+22xuzv7Bnk3t3y55j7t0te+a5c7fKno/u3e1jzVK3un2sWepWt481S93q1ld1+1iz1K1uV81SumqW0lWzlK6apWzVLGWrZilbNUvZqlnq4/d9f2q3q2YpWzVL2apZylbNUrZqlvJVs5SvmqV81Szlq2apj9/3/andrpqlfNUs5atmKV81S/mqWSpWzVKxapaKVbNUrJqlPn7f96d2u2qWilWzVKyapWLVLBWrZqlcNUvlqlkqV81SuWqW+vh935/a7apZKlfNUrlqlspVs1SumqVq1SxVq2apWjVL1apZ6uP3fX9qt6tmqVo1S9WqWapWzVK1apbqVbNUr5qletUs1atmqY/f9/2p3a6apXrVLNWrZqleNUv1qllqVs1Ss2qWmlWz1KyapT5+3/endrtqlppVs9SsmqVm1Sw1m2YpvzbNUn5tmqX82jRL+bVplvLLV3W7aZZy+G7we3e7aZZy+M7xe3e7apaC7zK/d7erZqkH23t+q9tVs9SD7T2/1e2qWWrV3nNftffcV+0991V7z33V3nNftffcV+0991V7z33V3nNftffcV+0991V7z33V3nNftffcV+0991V7z33V3nNftffcV+0991V7z33V3nNftffcV+0991V7z33V3nNftffcV+0991V7z33V3nNftffcV+0991V7z33V3nNftffcV+0991V7z33V3nNftffcH23veenr5f1Otw82S93o9sNnqcte6tfr24/7ZbdT83I2Mi12o1s1kZe/yue/Xf90/feOa13Hva7j2dbxx+9B//SOZV3Huq5jW9exr+s41nW8bub68B3pMv7WQ9mPHX+vqHEVDa2iD98Hfruiu7zny9sHKJsbFZW9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FecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgFecgDecgDecgDecgDecg7aJltuEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOEcpOMcpOMcpOMcpOMcpF+0zHacg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scg3Scgwycgwycgwycgwycg4yLltmBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CBc5CJc5CJc5CJc5CJc5B50TI7cQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ4ycQ6ycA6ycA6ycA6ycA6yLlpmF85BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BFs5BNs5BNs5BNs5BNs5B9kXL7MY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5yMY5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DlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDlJxDtJwDtJwDtJwDtJwDtIuWmYbzkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkEazkE6zkE6zkE6zkE6zkH6RctsxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxzlIxznIwDnIwDnIwDnIwDnIuGiZHTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHGTgHmTgHmTgHmTgHmTgHmRctsxPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIBPnIPPDHaRe5i8/+vr2494qeu/izHq9OqdeLxe53q2kXuqW6ni9Ol66lVXd6qpubVW3vqrbWNUt6L39nYszr5eLs96qN+mX+kGTwL+rftDc8O+qf8j/Wk6H89Zti93416ImYi8/3cT1T9f/0XGip5jf0jF6kvktHaOnmd/SMXqikRl5e9cTrfc68Id6387XuiVnfnrfzseaUm51m6u6rVXd9qpu0fPSP//pwuz100X8/OmiHuyOz41uH+yOz41uH+yOz41uH+yOz41ufVW3D3bH50a3jzVL3er2sWapW90+1ix1q9tVs1SvmqV61SzVq2apXjVLffhmks/tdtUs1atmqV41S/WqWapXzVKzapaaVbPUrJqlZtUs9eEbgz6321Wz1KyapWbVLDWrZqnZNEvVtWmWqmvTLFXXplmqrk2zVF2+qttNs1Rdm2apujbNUnVtmqXqWjVLyapZSlbNUrJqlpJVs9SHb9j73G5XzVKyapaSVbOUrJqlZNUspatmKV01S+mqWUpXzVIfvvnyc7tdNUvpqllKV81SumqW0lWzlK2apWzVLGWrZilbNUt9+Ebaz+121Sxlq2YpWzVL2apZylbNUr5qlvJVs5SvmqV81Sz14ZuiP7fbVbOUr5qlfNUs5atmKV81Sz3aRvEb3a6apR5to/iNblfNUo+2UfxGt6tmqVg1S8WqWSpWzVLs3eb37pa91/zu3a6apdj7zO/e7apZ6sH2nt/qdtUs9WB7z291u2qWerC957e6XTVLrdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nteqvee1au95rdp7Xqv2nveqvee9au95r9p73qv2nvflq7rdNEv1qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrvea/ae96r9p73qr3nvWrv+azaez6r9p7Pqr3ns2rv+Vy+qttNs9Ss2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2ns+q/aez6q957Nq7/ms2nv+/2/v3nYkSbLrDL+S7/PeTyOQhCAMMCAFkhKgC707rXoqD83MqeyKibD8s61uBl2YiLBlUW6rLD39c5+j7ns+R933fI667/kcdd/zOeq+53PUfc/nqPuez1H3PZ+j7ns+R933fI667/kcdd/zOeq+53PUfc/nqPuez1H3PZ+j7ns+R933fI667/kcdd/zOeq+53PUfc/nqPue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MnEOMnEOMnEOMnEOMnEOsnAOsnAOsnAOsnAOsi5aZxfOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQRbOQTbOQTbOQTbOQTbOQfZF6+zGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjGOcjBOcjBOcjBOcjBOci5aJ09OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5OAc5NAcZF81BrkSwzl6JYJ29EsE6eyWCdfZKBOvslQjW2SsRrLNXIlhnr0S4zqY5yJUI19k0B7kS4Tqb5iBXIlxn0xzkSoTrbJqDXIlwnU1zkCsRrrNpDnIlwnU2zUGuRLjOpjnIlQjX2TQHuRLhOpvmIFciXGfTHORKhOtsmoNciXCdTXOQKxGus2kOciXCdTbNQa5EuM6mOciVCNfZNAe5EuE6m+YgVyJcZ9Mc5EqE62yag1yJcJ1Nc5ArEa6zaQ5yJcJ1Ns1BrkS4zqY5yJUI19k0B7kS4Tqb5iBXIlxn0xzkSoTrbJqDXIlwnU1zkCsRrrNpDnIlwnU2zUGuRLjOpjnIlQjX2TQHuRLhOpvmIFciXGfTHORKhOtsmoNciXCdTXOQKxGus2kOciXCdTbNQa5EuM6mOciVCNfZNAe5EuE6m+YgVyJcZ9Mc5EqE62yag1yJaJ0tOAcpOAcpOAcpOAcpF62zBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgFecgFecgFecgFecg9aJ1tuIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOEcpOEcpOEcpOEcpF20zjacgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScg3Scg3Scg3Scg3Scg/SL1tmOc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5CBc5CBc5CBc5CBc5Bx0To7cA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycQ4ycQ4ycQ4ycQ4yL1pnJ85BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BFs5BFs5BFs5BFs5B1kXr7MI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMI5yMY5yMY5yMY5yMY5yL5ond04B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4B9k4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0nEO0i9aZzvOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQTrOQQbOQQbOQQbOQQbOQcZF6+zAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjAOcjEOcjEOcjEOcjEOci8aJ2dOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAeZOAdZOAdZOAdZOAdZOAdZF62zC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgC+cgG+cgG+cgG+cgG+cg+6J1duMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMcZOMc5OAc5OAc5OAc5OAc5Fy0zh6cgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxycgxyag6yL5iBX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"},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{},"parameters":[{"name":"contract_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"},"visibility":"private"},{"name":"nonce","type":{"kind":"field"},"visibility":"private"},{"name":"storage_slot","type":{"kind":"field"},"visibility":"private"},{"name":"note_type_id","type":{"kind":"field"},"visibility":"private"},{"name":"compute_nullifier","type":{"kind":"boolean"},"visibility":"private"},{"name":"serialized_note","type":{"kind":"array","length":5,"type":{"kind":"field"}},"visibility":"private"}],"return_type":{"abi_type":{"kind":"array","length":4,"type":{"kind":"field"}},"visibility":"public"}},"bytecode":"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","debug_symbols":"7b3RruxIk533Lv+1LshkkEzqVQzDGNmyMcBgZEhjA4agd/fu3k3WPs3KirM1WTsiMr4b44zFrpPxrf8w11qsSv73f/wf//k//T//1//2z//6f/6X//aP//i//Pd//Mt/+d//6d/++b/868f/9d//x3/4x3/6r//8L//yz//X//b1//c/pj/+P6X+ef1/+7//6V//+D//27/903/9t3/8x3Xa/8M//vO//h8ff6rHx3//f/7zv/znf/zHZT/+x//6H/5Rjm//J0t59p9UqX/9J3Vdbv/J8v3/RL7/n6zf/0+27/8n+/f/k/r9/+T49n8i0/f/k/n7/8n31Zfvqy/fV1++r758X335vvryffXl++qv31d//b766/fVX7+v/vp99dfvq79+X/31++qv31d//b762/fV376v/vZ99bfvq799X/3t++pv31d/+7762/fV376v/v599ffvq79/X/39++rv31d//776+/fV37+v/v599ffvq1+/r379vvr1++rX76tfv69+/b769fvq1++rX7+vfv2++sf31T++r/7xffWP76s/T0/n36bjr/9mP+Zf/pv/cL92Xue/Lt7m4/E3zKU+uXqe6/bX1XOZ5Lq6yJ/LmSdfy5l9Laf4Ws7iazniazmrr+Vsvpaz+1pO9bUcX3fl4uuuXHzdlYuvu3LxdVcuvu7Kxdddufi6Kxdfd+Xi665cfN2VF1935eWH/6Gv+9MnJtP2uZrV1Wp++H/I2zSdF3+s4Laaw9NqZHK1mtnVaoqr1XRwFsuX1Yh2wznqefXHH8vjs+v0uR5xtp7V2Xo2Z+vZna2nOlvP4Ws96+RsPbOz9RRn63F2f16d3Z9XZ/fn1dn9eXV2f16d3Z9XZ/fnzdn9eXN2f96c3Z83Z/fnzdn9efvh+3OZyhl3Pv4439ezOVvP7mw91dl6Dl/r2Sdn65mdrac4W8/ibD3ibD3O7s+7s/vz7uz+vDu7P+/O7s/V2f25Ors/V2f35+rs/lyd3Z+rs/tz/fH78/pYz1bv69mdrac6W8/haz3H5Gw9s7P1FGfrWQzX87GGr+u5X/0oH45jv64t8qyoWI7rmw4y377pcEiSOdckc25J5tyTzFmTzHmkmLNMU5I55yRzFj9z/rmen97n5unE8/HHel/P5mw9P32fmctyrafst/XMk7P1zM7WU5yt56dzwceTjms9X7+N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"}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"00000000000000000000000000000000000000000000000000000000906cb9c3"},{"kind":"string","value":"EcdsaPublicKeyNote"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}]},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaKAccount::verify_private_authwit_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"signing_pub_key_x","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}},{"name":"signing_pub_key_y","type":{"kind":"array","length":32,"type":{"kind":"integer","sign":"unsigned","width":8}}}],"kind":"struct","path":"EcdsaKAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaKAccount::constructor_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"app_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":4,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}}],"kind":"struct","path":"authwit::entrypoint::app::AppPayload"}},{"name":"fee_payload","type":{"fields":[{"name":"function_calls","type":{"kind":"array","length":2,"type":{"fields":[{"name":"args_hash","type":{"kind":"field"}},{"name":"function_selector","type":{"fields":[{"name":"inner","type":{"kind":"integer","sign":"unsigned","width":32}}],"kind":"struct","path":"authwit::aztec::protocol_types::abis::function_selector::FunctionSelector"}},{"name":"target_address","type":{"fields":[{"name":"inner","type":{"kind":"field"}}],"kind":"struct","path":"authwit::aztec::protocol_types::address::aztec_address::AztecAddress"}},{"name":"is_public","type":{"kind":"boolean"}},{"name":"is_static","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::function_call::FunctionCall"}}},{"name":"nonce","type":{"kind":"field"}},{"name":"is_fee_payer","type":{"kind":"boolean"}}],"kind":"struct","path":"authwit::entrypoint::fee::FeePayload"}},{"name":"cancellable","type":{"kind":"boolean"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaKAccount::entrypoint_abi"}]}},"file_map":{"104":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/unconstrained_context.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\nuse crate::oracle::{\n execution::{get_chain_id, get_version, get_contract_address, get_block_number},\n storage::{raw_storage_read, storage_read}\n};\n\nstruct UnconstrainedContext {\n block_number: u32,\n contract_address: AztecAddress,\n version: Field,\n chain_id: Field,\n}\n\nimpl UnconstrainedContext {\n unconstrained fn new() -> Self {\n // We could call these oracles on the getters instead of at creation, which makes sense given that they might\n // not even be accessed. However any performance gains are minimal, and we'd rather fail early if a user\n // incorrectly attempts to create an UnconstrainedContext in an environment in which these oracles are not\n // available.\n let block_number = get_block_number();\n let contract_address = get_contract_address();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at(contract_address: AztecAddress) -> Self {\n let block_number = get_block_number();\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n unconstrained fn at_historical(contract_address: AztecAddress, block_number: u32) -> Self {\n let chain_id = get_chain_id();\n let version = get_version();\n Self { block_number, contract_address, version, chain_id }\n }\n\n fn block_number(self) -> u32 {\n self.block_number\n }\n\n fn this_address(self) -> AztecAddress {\n self.contract_address\n }\n\n fn version(self) -> Field {\n self.version\n }\n\n fn chain_id(self) -> Field {\n self.chain_id\n }\n\n unconstrained fn raw_storage_read<let N: u32>(self: Self, storage_slot: Field) -> [Field; N] {\n storage_read(self.this_address(), storage_slot, self.block_number())\n }\n\n unconstrained fn storage_read<T, let N: u32>(\n self,\n storage_slot: Field\n ) -> T where T: Deserialize<N> {\n T::deserialize(self.raw_storage_read(storage_slot))\n }\n}\n"},"110":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr","source":"use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n messaging::process_l1_to_l2_message, hash::{hash_args_array, ArgsHasher},\n keys::constants::{NULLIFIER_INDEX, OUTGOING_INDEX, NUM_KEY_TYPES, sk_generators},\n oracle::{\n key_validation_request::get_key_validation_request, arguments, returns::pack_returns,\n call_private_function::call_private_function_internal, header::get_header_at,\n logs::{emit_encrypted_note_log, emit_encrypted_event_log},\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal\n}\n}\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext, function_selector::FunctionSelector, gas::Gas,\n max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, public_call_stack_item::PublicCallStackItem,\n public_call_stack_item_compressed::PublicCallStackItemCompressed, read_request::ReadRequest,\n note_hash::NoteHash, nullifier::Nullifier, log_hash::{LogHash, NoteLogHash, EncryptedLogHash}\n},\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_NOTE_HASHES_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL,\n MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_UNENCRYPTED_LOGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, utils::reader::Reader, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\nstruct PrivateContext {\n // docs:start:private-context\n inputs: PrivateContextInputs,\n side_effect_counter: u32,\n\n min_revertible_side_effect_counter: u32,\n is_fee_payer: bool,\n\n args_hash: Field,\n return_hash: Field,\n\n max_block_number: MaxBlockNumber,\n\n note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n private_call_requests : BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n public_call_requests : BoundedVec<PublicCallRequest, MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL>,\n public_teardown_call_request: PublicCallRequest,\n l2_to_l1_msgs : BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n historical_header: Header,\n\n note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n unencrypted_logs_hashes: BoundedVec<LogHash, MAX_UNENCRYPTED_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n\n fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n fn this_address(self) -> AztecAddress {\n self.inputs.call_context.storage_contract_address\n }\n\n fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() });\n }\n\n fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(Nullifier { value: nullifier, note_hash: nullified_note_hash, counter: self.next_counter() });\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage,\n nullifier_read_requests: self.nullifier_read_requests.storage,\n key_validation_requests_and_generators: self.key_validation_requests_and_generators.storage,\n note_hashes: self.note_hashes.storage,\n nullifiers: self.nullifiers.storage,\n private_call_requests: self.private_call_requests.storage,\n public_call_requests: self.public_call_requests.storage,\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage,\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage,\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage,\n unencrypted_logs_hashes: self.unencrypted_logs_hashes.storage,\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\"Setting {0} as fee payer\", [self.this_address().to_field()]);\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number = MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request = self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one \n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale. We fetch new values from oracle and instruct\n // protocol circuits to validate them by storing the validation request in context.\n let request = get_key_validation_request(pk_m_hash, key_index);\n let request_and_generator = KeyValidationRequestAndGenerator { request, sk_app_generator: sk_generators[key_index] };\n // We constrain that the pk_m_hash matches the one in the request (otherwise we could get an arbitrary\n // valid key request and not the one corresponding to pk_m_hash).\n assert(request.pk_m.hash() == pk_m_hash);\n self.key_validation_requests_and_generators.push(request_and_generator);\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(&mut self, content: Field, secret: Field, sender: EthAddress) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(&mut self, note_hash_counter: u32, log: [u8; M], log_hash: Field) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_private_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_private_function_no_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_private_function_no_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_private_function_with_packed_args<RETURNS_COUNT>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n let (end_side_effect_counter, returns_hash) = call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n self.side_effect_counter = end_side_effect_counter + 1;\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n self.private_call_requests.push(\n PrivateCallRequest {\n contract_address,\n call_context,\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter\n }\n );\n\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, true, false)\n }\n\n pub fn delegate_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.call_public_function_with_packed_args(contract_address, function_selector, args_hash, false, true)\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true, false)\n }\n\n pub fn delegate_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n let call_request = PublicCallRequest { item, counter };\n self.public_call_requests.push(call_request);\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT]\n ) {\n let args_hash = hash_args_array(args);\n assert(args_hash == arguments::pack_arguments_array(args));\n self.set_public_teardown_function_with_packed_args(contract_address, function_selector, args_hash, false, false)\n }\n\n pub fn set_public_teardown_function_with_packed_args<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n is_delegate_call: bool\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n is_delegate_call\n );\n\n let call_context = self.generate_call_context(\n contract_address,\n function_selector,\n is_static_call,\n is_delegate_call\n );\n\n let item = PublicCallStackItemCompressed {\n contract_address,\n call_context,\n args_hash,\n returns_hash: 0,\n revert_code: 0,\n start_gas_left: Gas::empty(),\n end_gas_left: Gas::empty()\n };\n\n self.public_teardown_call_request = PublicCallRequest {\n item,\n counter,\n };\n }\n\n fn generate_call_context(\n self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n is_static_call: bool,\n is_delegate_call: bool\n ) -> CallContext {\n let msg_sender = if is_delegate_call {\n self.msg_sender()\n } else {\n self.this_address()\n };\n let storage_contract_address = if is_delegate_call {\n self.this_address()\n } else {\n contract_address\n };\n CallContext { msg_sender, storage_contract_address, function_selector, is_static_call, is_delegate_call }\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n unencrypted_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES]\n }\n }\n}\n"},"118":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\nuse std::{\n embedded_curve_ops::fixed_base_scalar_mul as derive_public_key,\n hash::from_field_unsafe as fr_to_fq_unsafe, field::bn254::decompose\n};\n\nuse crate::{\n event::event_interface::EventInterface, oracle::unsafe_rand::unsafe_rand,\n utils::point::point_to_bytes, note::note_interface::NoteInterface,\n encrypted_logs::{\n header::EncryptedLogHeader, incoming_body::EncryptedLogIncomingBody,\n outgoing_body::EncryptedLogOutgoingBody\n},\n keys::public_keys::{OvpkM, IvpkM}\n};\n\npub fn compute_encrypted_event_log<Event, let NB: u32, let MB: u32, let OB: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n event: Event\n) -> [u8; OB] where Event: EventInterface<NB, MB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_event(event, randomness).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; OB] = [0; OB];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = OB - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\npub fn compute_encrypted_note_log<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> [u8; M] where Note: NoteInterface<N, NB> {\n let (eph_sk, eph_pk) = generate_ephemeral_key_pair();\n\n let header = EncryptedLogHeader::new(contract_address);\n\n let incoming_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ivpk);\n let outgoing_header_ciphertext: [u8; 48] = header.compute_ciphertext(eph_sk, ovpk);\n let incoming_body_ciphertext = EncryptedLogIncomingBody::from_note(note, storage_slot).compute_ciphertext(eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = EncryptedLogOutgoingBody::new(eph_sk, recipient, ivpk).compute_ciphertext(fr_to_fq(ovsk_app), eph_pk);\n\n let mut encrypted_bytes: [u8; M] = [0; M];\n // @todo We ignore the tags for now\n\n let eph_pk_bytes = point_to_bytes(eph_pk);\n for i in 0..32 {\n encrypted_bytes[64 + i] = eph_pk_bytes[i];\n }\n for i in 0..48 {\n encrypted_bytes[96 + i] = incoming_header_ciphertext[i];\n encrypted_bytes[144 + i] = outgoing_header_ciphertext[i];\n }\n for i in 0..144 {\n encrypted_bytes[192 + i] = outgoing_body_ciphertext[i];\n }\n // Then we fill in the rest as the incoming body ciphertext\n let size = M - 336;\n assert_eq(size, incoming_body_ciphertext.len(), \"ciphertext length mismatch\");\n for i in 0..size {\n encrypted_bytes[336 + i] = incoming_body_ciphertext[i];\n }\n\n // Current unoptimized size of the encrypted log\n // incoming_tag (32 bytes)\n // outgoing_tag (32 bytes)\n // eph_pk (32 bytes)\n // incoming_header (48 bytes)\n // outgoing_header (48 bytes)\n // outgoing_body (144 bytes)\n // incoming_body_fixed (64 bytes)\n // incoming_body_variable (N * 32 bytes + 16 bytes padding)\n encrypted_bytes\n}\n\n/// Converts a base field element to scalar field element.\n/// This is fine because modulus of the base field is smaller than the modulus of the scalar field.\nfn fr_to_fq(r: Field) -> Scalar {\n let (lo, hi) = decompose(r);\n\n Scalar { lo, hi }\n}\n\nfn generate_ephemeral_key_pair() -> (Scalar, Point) {\n // @todo Need to draw randomness from the full domain of Fq not only Fr\n // We use the unsafe version of `fr_to_fq` because multi_scalar_mul (called by derive_public_key) will constrain\n // the scalars.\n let eph_sk = fr_to_fq_unsafe(unsafe_rand());\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\nmod test {\n use crate::{\n encrypted_logs::payload::compute_encrypted_note_log, keys::public_keys::{OvpkM, IvpkM},\n test::mocks::mock_note::MockNoteBuilder\n };\n use dep::protocol_types::{address::AztecAddress, point::Point};\n use std::test::OracleMock;\n\n #[test]\n fn test_encrypted_note_log_matches_typescript() {\n // All the values in this test were copied over from `tagged_log.test.ts`\n let contract_address = AztecAddress::from_field(0x10f48cd9eff7ae5b209c557c70de2e657ee79166868676b787e9417e19260e04);\n let storage_slot = 0x0fe46be583b71f4ab5b70c2657ff1d05cccf1d292a9369628d1a194f944e6599;\n let ovsk_app = 0x03a6513d6def49f41d20373d2cec894c23e7492794b08fc50c0e8a1bd2512612;\n let ovpk_m = OvpkM {\n inner: Point {\n x: 0x1961448682803198631f299340e4206bb12809d4bebbf012b30f59af73ba1a15,\n y: 0x133674060c3925142aceb4f1dcd9f9137d0217d37ff8729ee5ceaa6e2790353d,\n is_infinite: false\n }\n };\n let ivpk_m = IvpkM {\n inner: Point {\n x: 0x260cd3904f6df16e974c29944fdc839e40fb5cf293f03df2eb370851d3a527bc,\n y: 0x0eef2964fe6640e84c82b5d2915892409b38e9e25d39f68dd79edb725c55387f,\n is_infinite: false\n }\n };\n\n let note_value = 0x301640ceea758391b2e161c92c0513f129020f4125256afdae2646ce31099f5c;\n let note = MockNoteBuilder::new(note_value).contract_address(contract_address).storage_slot(storage_slot).build();\n\n let eph_sk = 0x1358d15019d4639393d62b97e1588c095957ce74a1c32d6ec7d62fe6705d9538;\n let _ = OracleMock::mock(\"getRandomField\").returns(eph_sk);\n\n let recipient = AztecAddress::from_field(0x10ee41ee4b62703b16f61e03cb0d88c4b306a9eb4a6ceeb2aff13428541689a2);\n\n let log: [u8; 448] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n note\n );\n\n // The following value was generated by `tagged_log.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let encrypted_note_log_from_typescript = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 70, 12, 14, 67, 77, 132, 110, 193, 234, 40, 110, 64, 144, 235, 86, 55, 111, 242, 123, 221, 193, 170, 202, 225, 216, 86, 84, 159, 112, 31, 167, 126, 79, 51, 186, 47, 71, 253, 172, 99, 112, 241, 59, 197, 241, 107, 186, 232, 87, 187, 230, 171, 62, 228, 234, 42, 51, 145, 146, 238, 242, 42, 71, 206, 13, 244, 66, 111, 195, 20, 203, 98, 148, 204, 242, 145, 183, 156, 29, 141, 54, 44, 220, 194, 35, 229, 16, 32, 204, 211, 49, 142, 112, 82, 202, 116, 241, 254, 146, 42, 217, 20, 189, 70, 228, 182, 171, 205, 104, 27, 99, 171, 28, 91, 244, 21, 30, 130, 240, 5, 72, 174, 124, 97, 197, 157, 248, 193, 23, 193, 76, 46, 141, 144, 70, 211, 45, 67, 167, 218, 129, 140, 104, 190, 41, 110, 249, 209, 68, 106, 135, 164, 80, 235, 63, 101, 80, 32, 13, 38, 99, 145, 91, 11, 173, 151, 231, 247, 65, 153, 117, 229, 167, 64, 239, 182, 126, 235, 83, 4, 169, 8, 8, 160, 4, 235, 252, 21, 96, 84, 161, 69, 145, 145, 215, 254, 161, 117, 246, 198, 65, 89, 179, 194, 90, 19, 121, 12, 202, 114, 80, 195, 14, 60, 128, 105, 142, 100, 86, 90, 108, 157, 219, 22, 172, 20, 121, 195, 25, 159, 236, 2, 70, 75, 42, 37, 34, 2, 17, 149, 20, 176, 32, 18, 204, 56, 117, 121, 34, 15, 3, 88, 123, 64, 68, 74, 233, 63, 59, 131, 222, 194, 192, 167, 110, 217, 10, 128, 73, 129, 172, 205, 103, 212, 60, 151, 141, 10, 151, 222, 151, 180, 43, 91, 148, 201, 110, 165, 10, 238, 32, 134, 235, 99, 216, 200, 182, 31, 22, 156, 18, 209, 222, 172, 239, 193, 212, 86, 99, 62, 70, 182, 45, 175, 241, 91, 202, 179, 225, 236, 95, 71, 66, 151, 225, 203, 53, 216, 85, 102, 130, 6, 8, 25, 180, 86, 58, 140, 198, 105, 102, 177, 42, 94, 115, 247, 145, 147, 24, 231, 39, 73, 27, 10, 219, 130, 115, 188, 74, 114, 5, 177, 199, 83, 183, 106, 87, 204, 238, 231, 72, 45, 240, 39, 174, 25, 98, 53, 187, 156, 159, 244, 38\n ];\n for i in 0..encrypted_note_log_from_typescript.len() {\n assert_eq(log[i], encrypted_note_log_from_typescript[i]);\n }\n assert_eq(encrypted_note_log_from_typescript.len(), log.len());\n }\n}\n"},"119":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/encrypted_note_emission.nr","source":"use crate::{\n context::PrivateContext, note::{note_emission::NoteEmission, note_interface::NoteInterface},\n keys::{getters::get_current_public_keys, public_keys::{OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{\n hash::sha256_to_field, address::AztecAddress, point::Point, abis::note_hash::NoteHash,\n constants::MAX_NOTE_HASHES_PER_CALL\n};\n\nunconstrained fn compute_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n )\n}\n\nfn compute<Note, let N: u32, let NB: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n note: Note\n) -> ([u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let encrypted_log: [u8; M] = compute_encrypted_note_log(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n let log_hash = sha256_to_field(encrypted_log);\n (encrypted_log, log_hash)\n}\n\nfn emit_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n inner_compute: fn(AztecAddress, Field, Field, OvpkM, IvpkM, AztecAddress, Note) -> ([u8; M], Field)\n) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let note_header = note.get_header();\n let note_hash_counter = note_header.note_hash_counter;\n let storage_slot = note_header.storage_slot;\n\n let note_exists = context.note_hashes.storage.any(|n: NoteHash| n.counter == note_hash_counter);\n assert(note_exists, \"Can only emit a note log for an existing note.\");\n\n let contract_address: AztecAddress = context.this_address();\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (encrypted_log, log_hash) = inner_compute(\n contract_address,\n storage_slot,\n ovsk_app,\n ovpk,\n ivpk,\n recipient,\n note\n );\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n\npub fn encode_and_encrypt_note<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ov: AztecAddress,\n iv: AztecAddress\n) -> fn[(&mut PrivateContext, AztecAddress, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n emit_with_keys(context, e.note, ovpk, ivpk, iv, compute_unconstrained);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute);\n }\n}\n\npub fn encode_and_encrypt_note_with_keys_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: &mut PrivateContext,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> fn[(&mut PrivateContext, OvpkM, IvpkM, AztecAddress)](NoteEmission<Note>) -> () where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n | e: NoteEmission<Note> | {\n emit_with_keys(context, e.note, ovpk, ivpk, recipient, compute_unconstrained);\n }\n}\n"},"120":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/outgoing_body.nr","source":"use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, constants::GENERATOR_INDEX__SYMMETRIC_KEY,\n hash::poseidon2_hash_with_separator\n};\nuse std::aes128::aes128_encrypt;\n\nuse crate::{keys::public_keys::IvpkM, utils::point::point_to_bytes};\n\nstruct EncryptedLogOutgoingBody {\n eph_sk: Scalar,\n recipient: AztecAddress,\n recipient_ivpk: IvpkM,\n}\n\nimpl EncryptedLogOutgoingBody {\n pub fn new(eph_sk: Scalar, recipient: AztecAddress, recipient_ivpk: IvpkM) -> Self {\n Self { eph_sk, recipient, recipient_ivpk }\n }\n\n /// Encrypts ephemeral secret key and recipient's ivpk --> with this information the recipient of outgoing will\n /// be able to derive the key with which the incoming log can be decrypted.\n pub fn compute_ciphertext(self, ovsk_app: Scalar, eph_pk: Point) -> [u8; 144] {\n // Again, we could compute `eph_pk` here, but we keep the interface more similar\n // and also make it easier to optimise it later as we just pass it along\n\n let mut buffer = [0 as u8; 128];\n\n let serialized_eph_sk_high = self.eph_sk.hi.to_be_bytes(32);\n let serialized_eph_sk_low = self.eph_sk.lo.to_be_bytes(32);\n\n let address_bytes = self.recipient.to_field().to_be_bytes(32);\n let serialized_recipient_ivpk = point_to_bytes(self.recipient_ivpk.to_point());\n\n for i in 0..32 {\n buffer[i] = serialized_eph_sk_high[i];\n buffer[i + 32] = serialized_eph_sk_low[i];\n buffer[i + 64] = address_bytes[i];\n }\n for i in 0..32 {\n buffer[i + 96] = serialized_recipient_ivpk[i];\n }\n\n // We compute the symmetric key using poseidon.\n let full_key: [u8; 32] = poseidon2_hash_with_separator(\n [ovsk_app.hi, ovsk_app.lo, eph_pk.x, eph_pk.y],\n GENERATOR_INDEX__SYMMETRIC_KEY as Field\n ).to_be_bytes(32).as_array();\n\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(buffer, iv, sym_key).as_array()\n }\n}\n\nmod test {\n use crate::{encrypted_logs::outgoing_body::EncryptedLogOutgoingBody, keys::public_keys::IvpkM};\n use dep::protocol_types::{\n address::AztecAddress, traits::Empty, constants::GENERATOR_INDEX__NOTE_NULLIFIER,\n scalar::Scalar, point::Point, hash::poseidon2_hash_with_separator\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n\n use crate::context::PrivateContext;\n\n #[test]\n fn test_encrypted_log_outgoing_body_matches_typescript() {\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000d0d302ee245dfaf2807e604eec4715fe,\n hi: 0x000000000000000000000000000000000f096b423017226a18461115fa8d34bb\n };\n let recipient_ivsk = Scalar {\n lo: 0x000000000000000000000000000000004828f8f95676ebb481df163f87fd4022,\n hi: 0x000000000000000000000000000000000f4d97c25d578f9348251a71ca17ae31\n };\n let sender_ovsk_app = Scalar {\n lo: 0x0000000000000000000000000000000074d2e28c6bc5176ac02cf7c7d36a444e,\n hi: 0x00000000000000000000000000000000089c6887cb1446d86c64e81afc78048b\n };\n\n let eph_pk = derive_public_key(eph_sk);\n let recipient_ivpk = IvpkM { inner: derive_public_key(recipient_ivsk) };\n\n let recipient = AztecAddress::from_field(0xdeadbeef);\n\n let body = EncryptedLogOutgoingBody::new(eph_sk, recipient, recipient_ivpk);\n\n let ciphertext = body.compute_ciphertext(sender_ovsk_app, eph_pk);\n\n // The following value was generated by `encrypted_log_outgoing_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let outgoing_body_ciphertext_from_typescript = [\n 127, 182, 227, 75, 192, 197, 54, 47, 168, 134, 233, 148, 251, 46, 86, 12, 73, 50, 238, 50, 31, 174, 27, 202, 110, 77, 161, 197, 244, 124, 17, 100, 143, 150, 232, 14, 156, 248, 43, 177, 16, 82, 244, 103, 88, 74, 84, 200, 15, 65, 187, 14, 163, 60, 91, 22, 104, 31, 211, 190, 124, 121, 79, 92, 239, 65, 185, 106, 51, 178, 168, 137, 84, 43, 79, 158, 151, 152, 83, 42, 170, 13, 106, 209, 254, 74, 39, 145, 73, 215, 17, 234, 196, 89, 30, 58, 120, 127, 88, 69, 121, 61, 18, 206, 89, 118, 243, 238, 177, 71, 73, 47, 147, 4, 155, 25, 173, 248, 206, 52, 17, 180, 122, 186, 106, 191, 252, 102, 197, 91, 16, 39, 94, 91, 224, 30, 168, 177, 26, 144, 5, 124, 128, 6\n ];\n\n for i in 0..outgoing_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], outgoing_body_ciphertext_from_typescript[i]);\n }\n assert_eq(outgoing_body_ciphertext_from_typescript.len(), ciphertext.len());\n }\n}\n"},"121":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/header.nr","source":"use dep::protocol_types::{address::AztecAddress, scalar::Scalar, point::Point};\n\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::ToPoint};\n\nuse std::aes128::aes128_encrypt;\n\nstruct EncryptedLogHeader {\n address: AztecAddress,\n}\n\nimpl EncryptedLogHeader {\n fn new(address: AztecAddress) -> Self {\n EncryptedLogHeader { address }\n }\n\n fn compute_ciphertext<T>(self, secret: Scalar, pk: T) -> [u8; 48] where T: ToPoint {\n let full_key = point_to_symmetric_key(secret, pk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n\n let input: [u8; 32] = self.address.to_field().to_be_bytes(32).as_array();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nfn test_encrypted_log_header_matches_noir() {\n let address = AztecAddress::from_field(0xdeadbeef);\n let header = EncryptedLogHeader::new(address);\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = crate::keys::public_keys::IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let ciphertext = header.compute_ciphertext(secret, point);\n\n // The following value was generated by `encrypted_log_header.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_header_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 194, 44, 7, 131, 160, 83, 64, 181, 98, 38, 153, 214, 62, 171, 253, 161, 111, 191, 28, 247, 216, 26, 222, 171, 176, 218, 48, 209, 73, 89, 200, 209\n ];\n\n assert_eq(ciphertext, expected_header_ciphertext_from_typescript);\n}\n"},"122":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/incoming_body.nr","source":"use crate::note::note_interface::NoteInterface;\nuse crate::event::event_interface::EventInterface;\nuse dep::protocol_types::{scalar::Scalar, point::Point};\n\nuse std::aes128::aes128_encrypt;\nuse crate::keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::IvpkM};\n\nstruct EncryptedLogIncomingBody<let M: u32> {\n plaintext: [u8; M]\n}\n\nimpl<let M: u32> EncryptedLogIncomingBody<M> {\n pub fn from_note<T, let N: u32>(note: T, storage_slot: Field) -> Self where T: NoteInterface<N, M> {\n let mut plaintext = note.to_be_bytes(storage_slot);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn from_event<T, let MR: u32>(\n event: T,\n randomness: Field\n ) -> Self where T: EventInterface<M, MR> {\n let mut plaintext = event.private_to_be_bytes(randomness);\n EncryptedLogIncomingBody { plaintext }\n }\n\n pub fn compute_ciphertext(self, eph_sk: Scalar, ivpk: IvpkM) -> [u8] {\n let full_key = point_to_symmetric_key(eph_sk, ivpk.to_point());\n let mut sym_key = [0; 16];\n let mut iv = [0; 16];\n\n for i in 0..16 {\n sym_key[i] = full_key[i];\n iv[i] = full_key[i + 16];\n }\n aes128_encrypt(self.plaintext, iv, sym_key)\n }\n}\n\nmod test {\n use dep::protocol_types::{\n address::AztecAddress, scalar::Scalar, point::Point, traits::Serialize,\n abis::event_selector::EventSelector\n };\n\n use crate::{\n note::{note_header::NoteHeader, note_interface::NoteInterface},\n encrypted_logs::incoming_body::EncryptedLogIncomingBody, event::event_interface::EventInterface,\n context::PrivateContext, keys::public_keys::IvpkM\n };\n\n struct AddressNote {\n address: AztecAddress,\n owner: AztecAddress,\n randomness: Field,\n header: NoteHeader,\n }\n\n global ADDRESS_NOTE_LEN: Field = 3;\n global ADDRESS_NOTE_BYTES_LEN = 32 * 3 + 64;\n\n impl NoteInterface<ADDRESS_NOTE_LEN, ADDRESS_NOTE_BYTES_LEN> for AddressNote {\n fn compute_note_hiding_point(_self: Self) -> Point {\n crate::generators::Ga1\n }\n\n fn get_note_type_id() -> Field {\n 1\n }\n\n fn get_header(self) -> NoteHeader { self.header}\n\n fn set_header(&mut self, header: NoteHeader) {self.header = header; }\n\n fn compute_nullifier(_self: Self, _context: &mut PrivateContext, _note_hash_for_nullify: Field) -> Field {\n 1\n }\n\n fn compute_nullifier_without_context(_self: Self) -> Field {\n 1\n }\n\n fn serialize_content(self) -> [Field; ADDRESS_NOTE_LEN] { [self.address.to_field(), self.owner.to_field(), self.randomness]}\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote { address: AztecAddress::from_field(fields[0]), owner: AztecAddress::from_field(fields[1]), randomness: fields[2], header: NoteHeader::empty() }\n }\n\n fn to_be_bytes(self, storage_slot: Field) -> [u8; ADDRESS_NOTE_BYTES_LEN] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ADDRESS_NOTE_BYTES_LEN] = [0; ADDRESS_NOTE_BYTES_LEN];\n\n let storage_slot_bytes = storage_slot.to_be_bytes(32);\n let note_type_id_bytes = AddressNote::get_note_type_id().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = storage_slot_bytes[i];\n buffer[32 + i] = note_type_id_bytes[i];\n }\n\n for i in 0..serialized_note.len() {\n let bytes = serialized_note[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n }\n\n impl AddressNote {\n pub fn new(address: AztecAddress, owner: AztecAddress, randomness: Field) -> Self {\n AddressNote { address, owner, randomness, header: NoteHeader::empty() }\n }\n }\n\n #[test]\n fn test_encrypted_note_log_incoming_body_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\n let note = AddressNote::new(\n AztecAddress::from_field(0x1),\n AztecAddress::from_field(0x2),\n 3\n );\n\n let storage_slot = 2;\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n /// 1. `EncryptedLogIncomingBody::from_note` calls `note.to_be_bytes(storage_slot)` function which serializes\n /// the note to bytes - note that in the case of `AddressNote` the `to_be_bytes` function was automatically\n /// implemented by Aztec macros.\n let body = EncryptedLogIncomingBody::from_note(note, storage_slot);\n\n /// 2. `body.compute_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_note_log_incoming_body.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let note_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 27, 176, 228, 74, 242, 190, 138, 48, 33, 93, 46, 37, 223, 130, 25, 245, 188, 163, 159, 223, 187, 24, 139, 206, 131, 154, 159, 130, 37, 17, 158, 114, 242, 141, 124, 193, 232, 54, 146, 96, 145, 100, 125, 234, 57, 43, 95, 115, 183, 39, 121, 232, 134, 229, 148, 25, 46, 77, 87, 127, 95, 7, 77, 188, 37, 234, 245, 142, 232, 87, 252, 28, 67, 67, 90, 214, 254, 89, 47, 68, 66, 187, 227, 8, 59, 162, 25, 141, 97, 141, 217, 197, 115, 15, 212, 202, 157, 41, 150, 62, 219, 57, 224, 92, 185, 212, 142, 94, 146, 41, 178, 145, 68, 169, 23, 185, 206, 138, 70, 47, 176, 210, 165, 236, 23, 206, 229, 108\n ];\n\n assert_eq(note_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..note_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], note_body_ciphertext_from_typescript[i]);\n }\n }\n\n struct TestEvent {\n value0: Field,\n value1: Field,\n value2: Field,\n }\n\n impl Serialize<3> for TestEvent {\n fn serialize(self) -> [Field; 3] {\n [self.value0, self.value1, self.value2]\n }\n }\n\n global TEST_EVENT_LEN: Field = 3;\n global TEST_EVENT_BYTES_LEN = 32 * 3 + 64;\n global TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS = 32 * 3 + 32;\n\n impl EventInterface<TEST_EVENT_BYTES_LEN, TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS> for TestEvent {\n fn get_event_type_id() -> EventSelector {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\n\n fn private_to_be_bytes(self, randomness: Field) -> [u8; TEST_EVENT_BYTES_LEN] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN] = [0; TEST_EVENT_BYTES_LEN];\n\n let randomness_bytes = randomness.to_be_bytes(32);\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = randomness_bytes[i];\n buffer[32 + i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn to_be_bytes(self) -> [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] {\n let mut buffer: [u8; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS] = [0; TEST_EVENT_BYTES_LEN_WITHOUT_RANDOMNESS];\n\n let event_type_id_bytes = TestEvent::get_event_type_id().to_field().to_be_bytes(32);\n\n for i in 0..32 {\n buffer[i] = event_type_id_bytes[i];\n }\n\n let serialized_event = self.serialize();\n\n for i in 0..serialized_event.len() {\n let bytes = serialized_event[i].to_be_bytes(32);\n for j in 0..32 {\n buffer[32 + i * 32 + j] = bytes[j];\n }\n }\n\n buffer\n }\n\n fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n }\n\n #[test]\n fn test_encrypted_log_event_incoming_body() {\n let test_event = TestEvent { value0: 1, value1: 2, value2: 3 };\n\n let eph_sk = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n\n let ivpk = IvpkM {\n inner: Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n }\n };\n\n let randomness = 2;\n\n let body = EncryptedLogIncomingBody::from_event(test_event, randomness);\n\n let ciphertext = body.compute_ciphertext(eph_sk, ivpk);\n\n // The following value was generated by `encrypted_event_log_incoming_body.test.ts`\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let event_body_ciphertext_from_typescript = [\n 226, 240, 253, 6, 28, 52, 19, 131, 33, 132, 178, 212, 245, 62, 14, 190, 147, 228, 160, 190, 146, 61, 95, 203, 124, 153, 68, 168, 17, 150, 92, 0, 99, 214, 85, 64, 191, 78, 157, 131, 149, 96, 236, 253, 96, 172, 157, 30, 185, 29, 14, 152, 216, 130, 219, 151, 80, 185, 43, 223, 167, 8, 89, 189, 88, 188, 101, 137, 255, 136, 84, 252, 79, 18, 52, 3, 110, 54, 54, 206, 244, 209, 246, 226, 207, 247, 143, 253, 211, 75, 160, 224, 172, 41, 45, 7, 208, 137, 90, 56, 59, 4, 234, 48, 53, 23, 130, 230, 49, 249, 142, 243, 170, 72, 183, 242, 49, 124, 46, 52, 198, 75, 55, 102, 56, 89, 254, 67, 59, 157, 249, 120, 184, 67, 154, 16, 148, 227, 93, 37, 120, 199, 93, 166, 80, 127, 173, 52, 80, 135, 87, 1, 168, 164, 51, 48, 126, 120, 47, 102, 211, 227, 234, 170, 208, 99, 111, 198, 170, 226, 156, 244, 241, 174, 206, 30\n ];\n\n assert_eq(event_body_ciphertext_from_typescript.len(), ciphertext.len());\n\n for i in 0..event_body_ciphertext_from_typescript.len() {\n assert_eq(ciphertext[i], event_body_ciphertext_from_typescript[i]);\n }\n }\n}\n"},"126":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_getter/mod.nr","source":"use dep::protocol_types::{constants::{MAX_NOTE_HASH_READ_REQUESTS_PER_CALL, GET_NOTES_ORACLE_RETURN_LENGTH}};\nuse crate::context::PrivateContext;\nuse crate::note::{\n constants::{GET_NOTE_ORACLE_RETURN_LENGTH, MAX_NOTES_PER_PAGE, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, Comparator, NoteStatus, PropertySelector},\n note_interface::NoteInterface, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\n\nmod test;\n\nfn extract_property_value_from_selector<let N: u32>(\n serialized_note: [Field; N],\n selector: PropertySelector\n) -> Field {\n // Selectors use PropertySelectors in order to locate note properties inside the serialized note. \n // This allows easier packing and custom (de)serialization schemas. A note property is located\n // inside the serialized note using the index inside the array, a byte offset and a length.\n let value = serialized_note[selector.index].to_be_bytes(32);\n let offset = selector.offset;\n let length = selector.length;\n let mut value_field = 0 as Field;\n let mut acc: Field = 1;\n for i in 0..32 {\n if i < length {\n value_field += value[31 + offset - i] as Field * acc;\n acc = acc * 256;\n }\n }\n value_field\n}\n\nfn check_note_header<Note, let N: u32, let M: u32>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N, M> {\n let header = note.get_header();\n let contract_address = context.this_address();\n assert(header.contract_address.eq(contract_address), \"Mismatch note header contract address.\");\n assert(header.storage_slot == storage_slot, \"Mismatch note header storage slot.\");\n}\n\nfn check_note_fields<let N: u32>(\n serialized_note: [Field; N],\n selects: BoundedVec<Option<Select>, N>\n) {\n for i in 0..selects.len {\n let select = selects.get_unchecked(i).unwrap_unchecked();\n let value_field = extract_property_value_from_selector(serialized_note, select.property_selector);\n\n // Values are computed ahead of time because circuits evaluate all branches\n let is_equal = value_field == select.value.to_field();\n let is_lt = value_field.lt(select.value.to_field());\n\n if (select.comparator == Comparator.EQ) {\n assert(is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.NEQ) {\n assert(!is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LT) {\n assert(is_lt, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.LTE) {\n assert(is_lt | is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GT) {\n assert(!is_lt & !is_equal, \"Mismatch return note field.\");\n } else if (select.comparator == Comparator.GTE) {\n assert(!is_lt, \"Mismatch return note field.\");\n }\n }\n}\n\nfn check_notes_order<let N: u32>(\n fields_0: [Field; N],\n fields_1: [Field; N],\n sorts: BoundedVec<Option<Sort>, N>\n) {\n for i in 0..sorts.len {\n let sort = sorts.get_unchecked(i).unwrap_unchecked();\n let field_0 = extract_property_value_from_selector(fields_0, sort.property_selector);\n let field_1 = extract_property_value_from_selector(fields_1, sort.property_selector);\n let eq = field_0 == field_1;\n let lt = field_0.lt(field_1);\n if sort.order == SortOrder.ASC {\n assert(eq | lt, \"Return notes not sorted in ascending order.\");\n } else if !eq {\n assert(!lt, \"Return notes not sorted in descending order.\");\n }\n }\n}\n\npub fn get_note<Note, let N: u32, let M: u32>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N, M> {\n let note = get_note_internal(storage_slot);\n\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n context.push_note_hash_read_request(note_hash_for_read_request);\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n let opt_notes = get_notes_internal(storage_slot, options);\n\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS>(\n notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor: fn([Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL], PREPROCESSOR_ARGS) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n preprocessor_args: PREPROCESSOR_ARGS\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] {\n preprocessor(notes, preprocessor_args)\n}\n\nfn constrain_get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n opt_notes: [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL],\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> (BoundedVec<Note, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>, BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>) where Note: NoteInterface<N, M> + Eq {\n // The filter is applied first to avoid pushing note read requests for notes we're not interested in. Note that\n // while the filter function can technically mutate the contents of the notes (as opposed to simply removing some),\n // the private kernel will later validate that these note actually exist, so transformations would cause for that\n // check to fail.\n let filter_fn = options.filter;\n let filter_args = options.filter_args;\n let filtered_notes = filter_fn(opt_notes, filter_args);\n\n let notes = crate::utils::collapse(filtered_notes);\n let mut note_hashes: BoundedVec<Field, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL> = BoundedVec::new();\n\n // We have now collapsed the sparse array of Options into a BoundedVec. This is a more ergonomic type and also\n // results in reduced gate counts when setting a limit value, since we guarantee that the limit is an upper bound\n // for the runtime length, and can therefore have fewer loop iterations.\n assert(notes.len() <= options.limit, \"Got more notes than limit.\");\n\n let mut prev_fields = [0; N];\n for i in 0..options.limit {\n if i < notes.len() {\n let note = notes.get_unchecked(i);\n let fields = note.serialize_content();\n check_note_header(*context, storage_slot, note);\n check_note_fields(fields, options.selects);\n if i != 0 {\n check_notes_order(prev_fields, fields, options.sorts);\n }\n prev_fields = fields;\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/1410): test to ensure\n // failure if malicious oracle injects 0 nonce here for a \"pre-existing\" note.\n context.push_note_hash_read_request(note_hash_for_read_request);\n note_hashes.push(note_hash_for_read_request);\n };\n }\n\n (notes, note_hashes)\n}\n\nunconstrained fn get_note_internal<Note, let N: u32, let M: u32>(storage_slot: Field) -> Note where Note: NoteInterface<N, M> {\n let placeholder_note = [Option::none()];\n let placeholder_fields = [0; GET_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n oracle::notes::get_notes(\n storage_slot,\n 0,\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n [],\n 1, // limit\n 0, // offset\n NoteStatus.ACTIVE,\n placeholder_note,\n placeholder_fields,\n placeholder_note_length\n )[0].unwrap() // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, let M: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, M, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N, M> {\n // This function simply performs some transformations from NoteGetterOptions into the types required by the oracle.\n\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTE_HASH_READ_REQUESTS_PER_CALL];\n let placeholder_fields = [0; GET_NOTES_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let opt_notes = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n apply_preprocessor(opt_notes, options.preprocessor, options.preprocessor_args)\n}\n\nunconstrained pub fn view_notes<Note, let N: u32, let M: u32>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N, M>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<N, M> {\n let (num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order) = flatten_options(options.selects, options.sorts);\n let placeholder_opt_notes = [Option::none(); MAX_NOTES_PER_PAGE];\n let placeholder_fields = [0; VIEW_NOTE_ORACLE_RETURN_LENGTH];\n let placeholder_note_length = [0; N];\n\n let notes_array = oracle::notes::get_notes(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n options.limit,\n options.offset,\n options.status,\n placeholder_opt_notes,\n placeholder_fields,\n placeholder_note_length\n );\n\n let mut notes = BoundedVec::new();\n for i in 0..notes_array.len() {\n if notes_array[i].is_some() {\n notes.push(notes_array[i].unwrap_unchecked());\n }\n }\n\n notes\n}\n\nunconstrained fn flatten_options<Note, let N: u32>(\n selects: BoundedVec<Option<Select>, N>,\n sorts: BoundedVec<Option<Sort>, N>\n) -> (u8, [u8; N], [u8; N], [u8; N], [Field; N], [u8; N], [u8; N], [u8; N], [u8; N], [u8; N]) {\n let mut num_selects = 0;\n let mut select_by_indexes = [0; N];\n let mut select_by_offsets = [0; N];\n let mut select_by_lengths = [0; N];\n let mut select_values = [0; N];\n let mut select_comparators = [0; N];\n\n for i in 0..selects.len {\n let select = selects.get(i);\n if select.is_some() {\n select_by_indexes[num_selects] = select.unwrap_unchecked().property_selector.index;\n select_by_offsets[num_selects] = select.unwrap_unchecked().property_selector.offset;\n select_by_lengths[num_selects] = select.unwrap_unchecked().property_selector.length;\n select_values[num_selects] = select.unwrap_unchecked().value;\n select_comparators[num_selects] = select.unwrap_unchecked().comparator;\n num_selects += 1;\n };\n }\n\n let mut sort_by_indexes = [0; N];\n let mut sort_by_offsets = [0; N];\n let mut sort_by_lengths = [0; N];\n let mut sort_order = [0; N];\n for i in 0..sorts.len {\n let sort = sorts.get(i);\n if sort.is_some() {\n sort_by_indexes[i] = sort.unwrap_unchecked().property_selector.index;\n sort_by_offsets[i] = sort.unwrap_unchecked().property_selector.offset;\n sort_by_lengths[i] = sort.unwrap_unchecked().property_selector.length;\n sort_order[i] = sort.unwrap_unchecked().order;\n };\n }\n\n (\n num_selects, select_by_indexes, select_by_offsets, select_by_lengths, select_values, select_comparators, sort_by_indexes, sort_by_offsets, sort_by_lengths, sort_order\n )\n}\n"},"128":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{context::PrivateContext, note::{note_header::NoteHeader, note_interface::NoteInterface}};\n\nuse dep::protocol_types::{\n hash::{\n compute_unique_note_hash, compute_siloed_note_hash as compute_siloed_note_hash,\n compute_siloed_nullifier as compute_siloed_nullifier_from_preimage\n},\n utils::arr_copy_slice\n};\n\npub fn compute_siloed_nullifier<Note, let N: u32, let M: u32>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N, M> {\n let header = note_with_header.get_header();\n let note_hash_for_nullify = compute_note_hash_for_nullify(note_with_header);\n let inner_nullifier = note_with_header.compute_nullifier(context, note_hash_for_nullify);\n\n compute_siloed_nullifier_from_preimage(header.contract_address, inner_nullifier)\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_read_request<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let nonce = note.get_header().nonce;\n let counter = note.get_header().note_hash_counter;\n\n if counter != 0 {\n note_hash\n } else {\n compute_unique_note_hash(nonce, note_hash)\n }\n}\n\n// TODO(#7775): make this not impossible to understand\npub fn compute_note_hash_for_nullify_internal<Note, let N: u32, let M: u32>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N, M> {\n let header = note.get_header();\n\n if header.note_hash_counter != 0 {\n if header.nonce == 0 {\n // Case 1: Transient note\n note_hash_for_read_request\n } else {\n // Case 2: Non-revertible note, nullified by a revertible nullifier\n let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash_for_read_request);\n compute_siloed_note_hash(header.contract_address, unique_note_hash)\n }\n } else {\n // Case 3: Note from a previous transaction\n // note_hash_for_read_request is already the unique_note_hash in this case\n compute_siloed_note_hash(header.contract_address, note_hash_for_read_request)\n }\n}\n\n// TODO(#7775): nuke this commented out code - kept it around as it contains comments which might be helpful when tackling #7775\n// pub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n// let header = note.get_header();\n// // There are 3 cases for reading a note intended for consumption:\n// // 1. The note was inserted in this transaction, is revertible, or is not nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce == 0)\n// // 2. The note was inserted in this transaction, is non-revertible, and is nullified by a revertible nullifier in \n// // the same transaction: (note_hash_counter != 0) & (nonce != 0)\n// // 3. The note was inserted in a previous transaction: (note_hash_counter == 0) & (nonce != 0)\n\n// // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n// let note_hash = note.compute_note_hiding_point().x;\n\n// if header.nonce == 0 {\n// // Case 1.\n// // If a note is transient, we just read the note_hash (kernel will hash it with nonce and silo by contract address).\n// note_hash\n// } else {\n// // Case 2: If a note is non-revertible, and is nullified by a revertible nullifier, we cannot squash them in the \n// // private reset circuit. Because if the tx reverts, we will have to keep the note hash and throw away the \n// // nullifier.\n// // And if the tx does not revert, both will be emitted. In which case, the nullifier must be created in the app\n// // from the siloed note hash.\n// // The kernel circuit will check that a nullifier with non-zero note_nonce is linked to a note hash, whose\n// // siloed note hash matches the note hash specified in the nullifier.\n\n// // Case 3: If a note is not from the current transaction, that means we are reading a settled note (from \n// // tree) created in a previous TX. So we need the siloed_note_hash which has already been hashed with\n// // nonce and then contract address. This hash will match the existing leaf in the note hash\n// // tree, so the kernel can just perform a membership check directly on this hash/leaf.\n// let unique_note_hash = compute_unique_note_hash(header.nonce, note_hash);\n// compute_siloed_note_hash(header.contract_address, unique_note_hash)\n// // IMPORTANT NOTE ON REDUNDANT SILOING BY CONTRACT ADDRESS: The note hash computed above is\n// // \"siloed\" by contract address. When a note hash is computed solely for the purpose of\n// // nullification, it is not strictly necessary to silo the note hash before computing\n// // its nullifier. In other words, it is NOT NECESSARY for protocol security that a nullifier\n// // be computed from a siloed note hash. After all, persistable note hashes and nullifiers are\n// // siloed by the kernel circuit. That being said, the siloed note hash computed above CAN be\n// // used for nullifier computation, and this achieves the (arguably unnecessary) property that\n// // nullifiers are computed from a note hash's fully-computed note hash tree leaf.\n// }\n// }\n\npub fn compute_note_hash_for_nullify<Note, let N: u32, let M: u32>(note: Note) -> Field where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n compute_note_hash_for_nullify_internal(note, note_hash_for_read_request)\n}\n\npub fn compute_note_hash_and_optionally_a_nullifier<T, let N: u32, let M: u32, let S: u32>(\n deserialize_content: fn([Field; N]) -> T,\n note_header: NoteHeader,\n compute_nullifier: bool,\n serialized_note: [Field; S]\n) -> [Field; 4] where T: NoteInterface<N, M> {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n let unique_note_hash = compute_unique_note_hash(note_header.nonce, note_hash);\n let siloed_note_hash = compute_siloed_note_hash(note_header.contract_address, unique_note_hash);\n\n let inner_nullifier = if compute_nullifier {\n note.compute_nullifier_without_context()\n } else {\n 0\n };\n // docs:start:compute_note_hash_and_optionally_a_nullifier_returns\n [note_hash, unique_note_hash, siloed_note_hash, inner_nullifier]\n // docs:end:compute_note_hash_and_optionally_a_nullifier_returns\n}\n"},"129":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/lifecycle.nr","source":"use crate::context::{PrivateContext, PublicContext};\nuse crate::note::{\n note_header::NoteHeader, note_interface::NoteInterface,\n utils::{compute_note_hash_for_read_request, compute_note_hash_for_nullify_internal},\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::{notify_created_note, notify_nullified_note};\n\npub fn create_note<Note, N, M>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n let note_hash_counter = context.side_effect_counter;\n\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n let serialized_note = Note::serialize_content(*note);\n assert(\n notify_created_note(\n storage_slot,\n Note::get_note_type_id(),\n serialized_note,\n note_hash,\n note_hash_counter\n )\n == 0\n );\n\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, N, M>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N, M> {\n let contract_address = (*context).this_address();\n // Public note hashes are transient, but have no side effect counters, so we just need note_hash_counter != 0\n let header = NoteHeader { contract_address, storage_slot, nonce: 0, note_hash_counter: 1 };\n note.set_header(header);\n // TODO(#7771): inject compute_note_hash(...) func to notes with macros.\n let note_hash = note.compute_note_hiding_point().x;\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, N, M>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N, M> {\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n\n destroy_note_unsafe(context, note, note_hash_for_read_request)\n}\n\npub fn destroy_note_unsafe<Note, N, M>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N, M> {\n let note_hash_for_nullify = compute_note_hash_for_nullify_internal(note, note_hash_for_read_request);\n let nullifier = note.compute_nullifier(context, note_hash_for_nullify);\n\n let note_hash_counter = note.get_header().note_hash_counter;\n let notification_note_hash = if (note_hash_counter == 0) {\n // Counter is zero, so we're nullifying a settled note and we don't populate the note_hash with real value.\n 0\n } else {\n // A non-zero note hash counter implies that we're nullifying a pending note (i.e. one that has not yet been\n // persisted in the trees and is instead in the pending new note hashes array). In such a case we populate its\n // hash with real value to inform the kernel which note we're nullifyng so that it can either squash both\n // the note and the nullifier if it's an inner note hash, or check that the it matches a pending note if it's\n // a siloed note hash.\n note_hash_for_nullify\n };\n\n let nullifier_counter = context.side_effect_counter;\n assert(notify_nullified_note(nullifier, notification_note_hash, nullifier_counter) == 0);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n\n"},"130":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/note_emission.nr","source":"/**\n * A note emission struct containing the information required for emitting a note.\n * The exact `emit` logic is passed in by the application code\n */\nstruct NoteEmission<Note> {\n note: Note\n}\n\nimpl<Note> NoteEmission<Note> {\n pub fn new(note: Note) -> Self {\n Self { note }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](Self) -> ()) {\n _emit(self);\n }\n\n pub fn discard(_self: Self) {}\n}\n\n/**\n * A struct wrapping note emission in `Option<T>`.\n * This is the struct provided to application codes, which can be used to emit\n * only when a note was actually inserted.\n * It is fairly common to have cases where a function conditionally inserts,\n * and this allows us to keep the same API for emission in both cases (e.g. inserting \n * a change note in a token's transfer function only when there is \"change\" left).\n */\nstruct OuterNoteEmission<Note> {\n emission: Option<NoteEmission<Note>>,\n}\n\nimpl<Note> OuterNoteEmission<Note> {\n pub fn new(emission: Option<NoteEmission<Note>>) -> Self {\n Self { emission }\n }\n\n pub fn emit<Env>(self, _emit: fn[Env](NoteEmission<Note>) -> ()) {\n if self.emission.is_some() {\n _emit(self.emission.unwrap());\n }\n }\n\n pub fn discard(_self: Self) {}\n}\n"},"138":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, ARGS_HASH_CHUNK_COUNT,\n GENERATOR_INDEX__FUNCTION_ARGS, ARGS_HASH_CHUNK_LENGTH, MAX_ARGS_LENGTH\n},\n traits::Hash,\n hash::{\n pedersen_hash, compute_siloed_nullifier, sha256_to_field, pedersen_commitment,\n poseidon2_hash_with_separator\n}\n};\n// Note: pedersen_commitment is used only as a re-export here\nuse crate::oracle::logs_traits::{LensForEncryptedLog, ToBytesForUnencryptedLog};\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<T, let N: u32, let M: u32>(\n contract_address: AztecAddress,\n log: T\n) -> Field where T: ToBytesForUnencryptedLog<N, M> {\n let message_bytes: [u8; N] = log.to_be_bytes_arr();\n // can't use N - not in scope error\n let n = message_bytes.len();\n let mut hash_bytes = [0; M];\n // Address is converted to 32 bytes in ts\n let address_bytes = contract_address.to_be_bytes_arr();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes = (n as Field).to_be_bytes(4);\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..n {\n hash_bytes[36 + i] = message_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field\n) -> Field {\n let mut hash_bytes = [0 as u8; 192];\n let sender_bytes = sender.to_field().to_be_bytes(32);\n let chain_id_bytes = chain_id.to_be_bytes(32);\n let recipient_bytes = recipient.to_field().to_be_bytes(32);\n let version_bytes = version.to_be_bytes(32);\n let content_bytes = content.to_be_bytes(32);\n let secret_hash_bytes = secret_hash.to_be_bytes(32);\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret and index of the message hash\n// in the L1 to L2 message tree\npub fn compute_message_nullifier(message_hash: Field, secret: Field, leaf_index: Field) -> Field {\n poseidon2_hash_with_separator(\n [message_hash, secret, leaf_index],\n GENERATOR_INDEX__MESSAGE_NULLIFIER\n )\n}\n\nstruct ArgsHasher {\n fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n hash_args(args.as_slice())\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n assert(args.len() <= MAX_ARGS_LENGTH, \"Args length exceeds maximum\");\n let mut chunks_hashes = [0; ARGS_HASH_CHUNK_COUNT];\n let mut current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n\n let mut current_chunk_index = 0;\n let mut index_inside_current_chunk = 0;\n for i in 0..args.len() {\n current_chunk_values[index_inside_current_chunk] = args[i];\n index_inside_current_chunk+=1;\n if index_inside_current_chunk == ARGS_HASH_CHUNK_LENGTH {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n current_chunk_values = [0; ARGS_HASH_CHUNK_LENGTH];\n current_chunk_index+=1;\n index_inside_current_chunk = 0;\n }\n }\n if index_inside_current_chunk > 0 {\n chunks_hashes[current_chunk_index] = poseidon2_hash_with_separator(current_chunk_values, GENERATOR_INDEX__FUNCTION_ARGS);\n }\n poseidon2_hash_with_separator(chunks_hashes, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nfn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..MAX_ARGS_LENGTH {\n input.add(i as Field);\n }\n let hash = input.hash();\n assert(hash == 0x1cce4dbf69f14c44865919991ee1057922e34d7310ba237d71759aa422621ca9);\n}\n\n#[test]\nfn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd\n ];\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nfn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nfn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nfn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let hash = compute_unencrypted_log_hash(contract_address, log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"139":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/initializer.nr","source":"use dep::protocol_types::{\n address::AztecAddress, hash::poseidon2_hash_with_separator, constants::GENERATOR_INDEX__CONSTRUCTOR,\n abis::function_selector::FunctionSelector\n};\n\nuse crate::{\n context::{PrivateContext, PublicContext}, oracle::get_contract_instance::get_contract_instance,\n oracle::get_contract_instance::get_contract_instance_avm\n};\n\npub fn mark_as_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn mark_as_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier((*context).this_address());\n context.push_nullifier(init_nullifier);\n}\n\npub fn assert_is_initialized_public(context: &mut PublicContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n assert(context.nullifier_exists(init_nullifier, context.this_address()), \"Not initialized\");\n}\n\npub fn assert_is_initialized_private(context: &mut PrivateContext) {\n let init_nullifier = compute_unsiloed_contract_initialization_nullifier(context.this_address());\n context.push_nullifier_read_request(init_nullifier);\n}\n\nfn compute_unsiloed_contract_initialization_nullifier(address: AztecAddress) -> Field {\n address.to_field()\n}\n\npub fn assert_initialization_matches_address_preimage_public(context: PublicContext) {\n let address = context.this_address();\n let instance = get_contract_instance_avm(address).unwrap();\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn assert_initialization_matches_address_preimage_private(context: PrivateContext) {\n let address = context.this_address();\n let instance = get_contract_instance(address);\n let expected_init = compute_initialization_hash(context.selector(), context.get_args_hash());\n assert(instance.initialization_hash == expected_init, \"Initialization hash does not match\");\n assert(\n (instance.deployer.is_zero()) | (instance.deployer == context.msg_sender()), \"Initializer address is not the contract deployer\"\n );\n}\n\npub fn compute_initialization_hash(init_selector: FunctionSelector, init_args_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [init_selector.to_field(), init_args_hash],\n GENERATOR_INDEX__CONSTRUCTOR\n )\n}\n"},"141":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::{address::AztecAddress, point::Point};\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(_note_hash_counter: u32, _encrypted_note: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(_contract_address: AztecAddress, _randomness: Field, _encrypted_event: [u8; M], _counter: u32) {}\n\nunconstrained pub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedNoteLog)]\nunconstrained fn compute_encrypted_note_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _storage_slot: Field,\n _note_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_note_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n storage_slot: Field,\n note_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_note_log_oracle(\n contract_address,\n storage_slot,\n note_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n// = 480 + 32 * N bytes\n#[oracle(computeEncryptedEventLog)]\nunconstrained fn compute_encrypted_event_log_oracle<let N: u32, let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _event_type_id: Field,\n _ovsk_app: Field,\n _ovpk_m: Point,\n _ivpk_m: Point,\n _recipient: AztecAddress,\n _preimage: [Field; N]\n) -> [u8; M] {}\n\nunconstrained pub fn compute_encrypted_event_log<let N: u32, let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n event_type_id: Field,\n ovsk_app: Field,\n ovpk_m: Point,\n ivpk_m: Point,\n recipient: AztecAddress,\n preimage: [Field; N]\n) -> [u8; M] {\n compute_encrypted_event_log_oracle(\n contract_address,\n randomness,\n event_type_id,\n ovsk_app,\n ovpk_m,\n ivpk_m,\n recipient,\n preimage\n )\n}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_oracle_private<T>(_contract_address: AztecAddress, _message: T, _counter: u32) -> Field {}\n\nunconstrained pub fn emit_unencrypted_log_private_internal<T>(\n contract_address: AztecAddress,\n message: T,\n counter: u32\n) -> Field {\n emit_unencrypted_log_oracle_private(contract_address, message, counter)\n}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n\nunconstrained pub fn emit_contract_class_unencrypted_log_private_internal<let N: u32>(contract_address: AztecAddress, message: [Field; N], counter: u32) -> Field {\n emit_contract_class_unencrypted_log_private(contract_address, message, counter)\n}\n"},"143":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle<let N: u32>(_returns: [Field]) -> Field {}\n\nunconstrained pub fn pack_returns(returns: [Field]) {\n let _unused = pack_returns_oracle(returns);\n}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n"},"144":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_public_data_witness.nr","source":"use dep::protocol_types::{\n constants::PUBLIC_DATA_TREE_HEIGHT, public_data_tree_leaf_preimage::PublicDataTreeLeafPreimage,\n utils::arr_copy_slice\n};\n\nglobal LEAF_PREIMAGE_LENGTH: u32 = 4;\nglobal PUBLIC_DATA_WITNESS: Field = 45;\n\nstruct PublicDataWitness {\n index: Field,\n leaf_preimage: PublicDataTreeLeafPreimage,\n path: [Field; PUBLIC_DATA_TREE_HEIGHT],\n}\n\n#[oracle(getPublicDataTreeWitness)]\nunconstrained fn get_public_data_witness_oracle(\n _block_number: u32,\n _public_data_tree_index: Field\n) -> [Field; PUBLIC_DATA_WITNESS] {}\n\nunconstrained pub fn get_public_data_witness(block_number: u32, public_data_tree_index: Field) -> PublicDataWitness {\n let fields = get_public_data_witness_oracle(block_number, public_data_tree_index);\n PublicDataWitness {\n index: fields[0],\n leaf_preimage: PublicDataTreeLeafPreimage { slot: fields[1], value: fields[2], next_index: fields[3] as u32, next_slot: fields[4] },\n path: arr_copy_slice(fields, [0; PUBLIC_DATA_TREE_HEIGHT], 1 + LEAF_PREIMAGE_LENGTH)\n }\n}\n"},"145":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/key_validation_request.nr","source":"use dep::protocol_types::abis::validation_requests::{KeyValidationRequest, key_validation_request::KEY_VALIDATION_REQUEST_LENGTH};\n\n#[oracle(getKeyValidationRequest)]\nunconstrained fn get_key_validation_request_oracle(\n _pk_m_hash: Field,\n _key_index: Field\n) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {}\n\nunconstrained fn get_key_validation_request_internal(\n npk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n let result = get_key_validation_request_oracle(npk_m_hash, key_index);\n KeyValidationRequest::deserialize(result)\n}\n\npub fn get_key_validation_request(pk_m_hash: Field, key_index: Field) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n\n"},"148":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/storage.nr","source":"use dep::protocol_types::{address::AztecAddress, traits::Deserialize};\n\n#[oracle(storageRead)]\nunconstrained fn storage_read_oracle<let N: u32>(address: Field, storage_slot: Field, block_number: Field, length: Field) -> [Field; N] {}\n\nunconstrained pub fn raw_storage_read<let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> [Field; N] {\n storage_read_oracle(\n address.to_field(),\n storage_slot,\n block_number as Field,\n N as Field\n )\n}\n\nunconstrained pub fn storage_read<T, let N: u32>(\n address: AztecAddress,\n storage_slot: Field,\n block_number: u32\n) -> T where T: Deserialize<N> {\n T::deserialize(raw_storage_read(address, storage_slot, block_number))\n}\n\nmod tests {\n use crate::oracle::storage::{raw_storage_read, storage_read};\n use dep::protocol_types::address::AztecAddress;\n\n use std::test::OracleMock;\n use crate::test::mocks::mock_struct::MockStruct;\n\n global address = AztecAddress::from_field(29);\n global slot = 7;\n global block_number = 17;\n\n #[test]\n fn test_raw_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: [Field; 2] = raw_storage_read(address, slot, block_number);\n assert_eq(read[0], 13);\n assert_eq(read[1], 42);\n }\n\n #[test]\n fn test_storage_read() {\n let written = MockStruct { a: 13, b: 42 };\n\n let _ = OracleMock::mock(\"storageRead\").returns(written.serialize());\n\n let read: MockStruct = storage_read(address, slot, block_number);\n assert_eq(read.a, 13);\n assert_eq(read.b, 42);\n }\n}\n"},"149":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/unsafe_rand.nr","source":"#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n\n// Called `unsafe_rand` because we do not constrain in circuit that we are dealing with an actual random value.\n// Instead we just trust our PXE.\nunconstrained pub fn unsafe_rand() -> Field {\n rand_oracle()\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/call_private_function.nr","source":"use dep::protocol_types::{abis::function_selector::FunctionSelector, address::AztecAddress, utils::reader::Reader};\n\n#[oracle(callPrivateFunction)]\nunconstrained fn call_private_function_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _start_side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) -> [Field; 2] {}\n\nunconstrained pub fn call_private_function_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n start_side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) -> (u32, Field) {\n let fields = call_private_function_oracle(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n\n let mut reader = Reader::new(fields);\n let end_side_effect_counter = reader.read_u32();\n let returns_hash = reader.read();\n\n (end_side_effect_counter, returns_hash)\n}\n"},"152":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/keys.nr","source":"use crate::keys::{PublicKeys, public_keys::{NpkM, IvpkM, OvpkM, TpkM}};\nuse dep::protocol_types::{address::{AztecAddress, PartialAddress}, point::Point};\n\n#[oracle(getPublicKeysAndPartialAddress)]\nunconstrained fn get_public_keys_and_partial_address_oracle(_address: AztecAddress) -> [Field; 13] {}\n\nunconstrained fn get_public_keys_and_partial_address_oracle_wrapper(address: AztecAddress) -> [Field; 13] {\n get_public_keys_and_partial_address_oracle(address)\n}\n\npub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle_wrapper(address);\n\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: result[0], y: result[1], is_infinite: result[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x: result[3], y: result[4], is_infinite: result[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x: result[6], y: result[7], is_infinite: result[8] as bool } },\n tpk_m: TpkM { inner: Point { x: result[9], y: result[10], is_infinite: result[11] as bool } }\n };\n\n let partial_address = PartialAddress::from_field(result[12]);\n\n (keys, partial_address)\n}\n"},"154":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr","source":"use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{address::AztecAddress, utils::arr_copy_slice};\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32\n) -> Field {}\n\nunconstrained pub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter)\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle<let N: u32>(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note<let N: u32>(\n nullifier: Field,\n note_hash: Field,\n counter: u32\n) -> Field {\n notify_nullified_note_oracle(nullifier, note_hash, counter)\n}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S]\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S]\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields\n )\n}\n\nunconstrained pub fn get_notes<Note, let N: u32, let NB: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N] // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S] where Note: NoteInterface<N, NB> {\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n// Only ever use this in private!\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n// Only ever use this in private!\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n"},"155":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr","source":"use dep::protocol_types::{\n address::AztecAddress, contract_instance::ContractInstance, utils::arr_copy_slice,\n constants::CONTRACT_INSTANCE_LENGTH, utils::reader::Reader\n};\n\n#[oracle(getContractInstance)]\nunconstrained fn get_contract_instance_oracle(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {}\n\n// Returns a ContractInstance plus a boolean indicating whether the instance was found.\n#[oracle(avmOpcodeGetContractInstance)]\nunconstrained fn get_contract_instance_oracle_avm(_address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {}\n\nunconstrained fn get_contract_instance_internal(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n get_contract_instance_oracle(address)\n}\n\nunconstrained pub fn get_contract_instance_internal_avm(address: AztecAddress) -> [Field; CONTRACT_INSTANCE_LENGTH + 1] {\n get_contract_instance_oracle_avm(address)\n}\n\npub fn get_contract_instance(address: AztecAddress) -> ContractInstance {\n let instance = ContractInstance::deserialize(get_contract_instance_internal(address));\n assert(instance.to_address().eq(address));\n instance\n}\n\npub fn get_contract_instance_avm(address: AztecAddress) -> Option<ContractInstance> {\n let mut reader = Reader::new(get_contract_instance_internal_avm(address));\n let found = reader.read();\n if found == 0 {\n Option::none()\n } else {\n Option::some(reader.read_struct(ContractInstance::deserialize))\n }\n}\n"},"156":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/enqueue_public_function_call.nr","source":"use dep::protocol_types::{abis::{function_selector::FunctionSelector}, address::AztecAddress};\n\n#[oracle(enqueuePublicFunctionCall)]\nunconstrained fn enqueue_public_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn enqueue_public_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n enqueue_public_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(setPublicTeardownFunctionCall)]\nunconstrained fn set_public_teardown_function_call_oracle(\n _contract_address: AztecAddress,\n _function_selector: FunctionSelector,\n _args_hash: Field,\n _side_effect_counter: u32,\n _is_static_call: bool,\n _is_delegate_call: bool\n) {}\n\nunconstrained pub fn set_public_teardown_function_call_internal(\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n side_effect_counter: u32,\n is_static_call: bool,\n is_delegate_call: bool\n) {\n set_public_teardown_function_call_oracle(\n contract_address,\n function_selector,\n args_hash,\n side_effect_counter,\n is_static_call,\n is_delegate_call\n );\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n"},"158":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/execution.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n#[oracle(getContractAddress)]\nunconstrained fn get_contract_address_oracle() -> AztecAddress {}\n\n#[oracle(getBlockNumber)]\nunconstrained fn get_block_number_oracle() -> u32 {}\n\n#[oracle(getChainId)]\nunconstrained fn get_chain_id_oracle() -> Field {}\n\n#[oracle(getVersion)]\nunconstrained fn get_version_oracle() -> Field {}\n\nunconstrained pub fn get_contract_address() -> AztecAddress {\n get_contract_address_oracle()\n}\n\nunconstrained pub fn get_block_number() -> u32 {\n get_block_number_oracle()\n}\n\nunconstrained pub fn get_chain_id() -> Field {\n get_chain_id_oracle()\n}\n\nunconstrained pub fn get_version() -> Field {\n get_version_oracle()\n}\n"},"161":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/map.nr","source":"use dep::protocol_types::{storage::map::derive_storage_slot_in_map, traits::ToField};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:map\nstruct Map<K, V, Context> {\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V,\n}\n// docs:end:map\n\nimpl<K, T, Context> Storage<T> for Map<K, T, Context> {}\n\nimpl<K, V, Context> Map<K, V, Context> {\n // docs:start:new\n pub fn new(\n context: Context,\n storage_slot: Field,\n state_var_constructor: fn(Context, Field) -> V\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Map { context, storage_slot, state_var_constructor }\n }\n // docs:end:new\n\n // docs:start:at\n pub fn at(self, key: K) -> V where K: ToField {\n // TODO(#1204): use a generator index for the storage slot\n let derived_storage_slot = derive_storage_slot_in_map(self.storage_slot, key);\n\n let state_var_constructor = self.state_var_constructor;\n state_var_constructor(self.context, derived_storage_slot)\n }\n // docs:end:at\n}\n"},"163":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr","source":"use crate::context::{PublicContext, UnconstrainedContext};\nuse crate::oracle::storage::storage_read;\nuse dep::protocol_types::traits::{Deserialize, Serialize};\nuse crate::state_vars::storage::Storage;\n\n// docs:start:public_mutable_struct\nstruct PublicMutable<T, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:public_mutable_struct\n\nimpl<T, Context> Storage<T> for PublicMutable<T, Context> {}\n\nimpl<T, Context> PublicMutable<T, Context> {\n // docs:start:public_mutable_struct_new\n pub fn new(\n // Note: Passing the contexts to new(...) just to have an interface compatible with a Map.\n context: Context,\n storage_slot: Field\n ) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n // docs:end:public_mutable_struct_new\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, &mut PublicContext> where T: Serialize<T_SERIALIZED_LEN> + Deserialize<T_SERIALIZED_LEN> {\n // docs:start:public_mutable_struct_read\n pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n // docs:end:public_mutable_struct_read\n\n // docs:start:public_mutable_struct_write\n pub fn write(self, value: T) {\n self.context.storage_write(self.storage_slot, value);\n }\n // docs:end:public_mutable_struct_write\n}\n\nimpl<T, T_SERIALIZED_LEN> PublicMutable<T, UnconstrainedContext> where T: Deserialize<T_SERIALIZED_LEN> {\n unconstrained pub fn read(self) -> T {\n self.context.storage_read(self.storage_slot)\n }\n}\n"},"179":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{\n address::AztecAddress, constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER,\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes}, note_interface::NoteInterface,\n note_viewer_options::NoteViewerOptions, note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\nstruct PrivateImmutable<Note, Context> {\n context: Context,\n storage_slot: Field,\n}\n// docs:end:struct\n\nimpl<T, Context> Storage<T> for PrivateImmutable<T, Context> {}\n\nimpl<Note, Context> PrivateImmutable<Note, Context> {\n // docs:start:new\n pub fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n Self { context, storage_slot }\n }\n // docs:end:new\n\n // The following computation is leaky, in that it doesn't hide the storage slot that has been initialized, nor does it hide the contract address of this contract.\n // When this initialization nullifier is emitted, an observer could do a dictionary or rainbow attack to learn the preimage of this nullifier to deduce the storage slot and contract address.\n // For some applications, leaking the details that a particular state variable of a particular contract has been initialized will be unacceptable.\n // Under such circumstances, such application developers might wish to _not_ use this state variable type.\n // This is especially dangerous for initial assignment to elements of a `Map<AztecAddress, PrivateImmutable>` type (for example), because the storage slot often also identifies an actor. \n // e.g. the initial assignment to `my_map.at(msg.sender)` will leak: `msg.sender`, the fact that an element of `my_map` was assigned-to for the first time, and the contract_address.\n pub fn compute_initialization_nullifier(self) -> Field {\n poseidon2_hash_with_separator(\n [self.storage_slot],\n GENERATOR_INDEX__INITIALIZATION_NULLIFIER\n )\n }\n}\n\nimpl<Note> PrivateImmutable<Note, &mut PrivateContext> {\n // docs:start:initialize\n pub fn initialize<N, M>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N, M> {\n // Nullify the storage slot.\n let nullifier = self.compute_initialization_nullifier();\n self.context.push_nullifier(nullifier);\n\n create_note(self.context, self.storage_slot, note)\n }\n // docs:end:initialize\n\n // docs:start:get_note\n pub fn get_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let storage_slot = self.storage_slot;\n get_note(self.context, storage_slot).0\n }\n // docs:end:get_note\n}\n\nimpl<Note> PrivateImmutable<Note, UnconstrainedContext> {\n // docs:start:is_initialized\n unconstrained pub fn is_initialized(self) -> bool {\n let nullifier = self.compute_initialization_nullifier();\n check_nullifier_exists(nullifier)\n }\n // docs:end:is_initialized\n\n // view_note does not actually use the context, but it calls oracles that are only available in private\n // docs:start:view_note\n unconstrained pub fn view_note<N, M>(self) -> Note where Note: NoteInterface<N, M> {\n let mut options = NoteViewerOptions::new();\n view_notes(self.storage_slot, options.set_limit(1)).get(0)\n }\n // docs:end:view_note\n}\n"},"181":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/utils/point.nr","source":"use dep::protocol_types::point::Point;\n\n// I am storing the modulus divided by 2 plus 1 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field = 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a public key to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(pk: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!pk.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result = pk.x.to_be_bytes(32);\n\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n if !BN254_FR_MODULUS_DIV_2.lt(pk.y) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result.as_array()\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122, 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115\n ];\n\n assert_eq(expected_compressed_point_positive_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_positive_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_positive_sign[i]);\n }\n }\n\n #[test]\n fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169, 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181\n ];\n\n assert_eq(expected_compressed_point_negative_sign.len(), compressed_point.len());\n for i in 0..expected_compressed_point_negative_sign.len() {\n assert_eq(compressed_point[i], expected_compressed_point_negative_sign[i]);\n }\n }\n}\n"},"198":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{constants::KEY_VALIDATION_REQUEST_LENGTH, traits::{Empty, Serialize, Deserialize}, point::Point};\n\nstruct KeyValidationRequest {\n pk_m: Point,\n sk_app: Field, // not a grumpkin scalar because it's output of poseidon2\n}\n\nimpl Eq for KeyValidationRequest {\n fn eq(self, request: KeyValidationRequest) -> bool {\n (request.pk_m.eq(self.pk_m))\n & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest {\n pk_m: Point::empty(),\n sk_app: 0,\n }\n }\n}\n\nimpl Serialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn serialize(self) -> [Field; KEY_VALIDATION_REQUEST_LENGTH] {\n [\n self.pk_m.x,\n self.pk_m.y,\n self.pk_m.is_infinite as Field,\n self.sk_app,\n ]\n }\n}\n\nimpl Deserialize<KEY_VALIDATION_REQUEST_LENGTH> for KeyValidationRequest {\n fn deserialize(fields: [Field; KEY_VALIDATION_REQUEST_LENGTH]) -> Self {\n Self {\n pk_m: Point { x:fields[0], y: fields[1], is_infinite: fields[2] as bool},\n sk_app: fields[3],\n }\n }\n}\n\n"},"2":{"path":"std/array.nr","source":"use crate::cmp::Ord;\nuse crate::option::Option;\nuse crate::convert::From;\n\nimpl<T, let N: u32> [T; N] {\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n pub fn sort(self) -> Self where T: Ord {\n self.sort_via(|a: T, b: T| a <= b)\n }\n\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n let sorted_index = unsafe {\n // Safety: These indices are asserted to be the sorted element indices via `find_index`\n let sorted_index: [u32; N] = self.get_sorting_index(ordering);\n\n for i in 0..N {\n let pos = find_index(sorted_index, i);\n assert(sorted_index[pos] == i);\n }\n\n sorted_index\n };\n\n // Sort the array using the indexes\n let mut result = self;\n for i in 0..N {\n result[i] = self[sorted_index[i]];\n }\n // Ensure the array is sorted\n for i in 0..N - 1 {\n assert(ordering(result[i], result[i + 1]));\n }\n\n result\n }\n\n /// Returns the index of the elements in the array that would sort it, using the provided custom sorting function.\n unconstrained fn get_sorting_index<Env>(self, ordering: fn[Env](T, T) -> bool) -> [u32; N] {\n let mut result = [0; N];\n let mut a = self;\n for i in 0..N {\n result[i] = i;\n }\n for i in 1..N {\n for j in 0..i {\n if ordering(a[i], a[j]) {\n let old_a_j = a[j];\n a[j] = a[i];\n a[i] = old_a_j;\n let old_j = result[j];\n result[j] = result[i];\n result[i] = old_j;\n }\n }\n }\n result\n }\n\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n // Apply a function to each element of an array, returning a new array\n // containing the mapped elements.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let first_elem = f(self[0]);\n let mut ret = [first_elem; N];\n\n for i in 1..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. This function is also sometimes\n // called `foldl`, `fold_left`, `reduce`, or `inject`.\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n // Apply a function to each element of the array and an accumulator value,\n // returning the final accumulated value. Unlike fold, reduce uses the first\n // element of the given array as its starting accumulator value.\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n // Returns true if all elements in the array satisfy the predicate\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n // Returns true if any element in the array satisfies the predicate\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Convert a sequence of bytes as-is into a string.\n /// This function performs no UTF-8 validation or similar.\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\n// helper function used to look up the position of a value in an array of Field\n// Note that function returns 0 if the value is not found\nunconstrained fn find_index<let N: u32>(a: [u32; N], find: u32) -> u32 {\n let mut result = 0;\n for i in 0..a.len() {\n if a[i] == find {\n result = i;\n }\n }\n result\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"22":{"path":"std/embedded_curve_ops.nr","source":"use crate::ops::arith::{Add, Sub, Neg};\nuse crate::cmp::Eq;\n\n/// A point on the embedded elliptic curve\n/// By definition, the base field of the embedded curve is the scalar field of the proof system curve, i.e the Noir Field.\n/// x and y denotes the Weierstrass coordinates of the point, if is_infinite is false.\nstruct EmbeddedCurvePoint {\n x: Field,\n y: Field,\n is_infinite: bool\n}\n\nimpl EmbeddedCurvePoint {\n /// Elliptic curve point doubling operation\n /// returns the doubled point of a point P, i.e P+P\n fn double(self) -> EmbeddedCurvePoint {\n embedded_curve_add(self, self)\n }\n\n /// Returns the null element of the curve; 'the point at infinity'\n fn point_at_infinity() -> EmbeddedCurvePoint {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n }\n}\n\nimpl Add for EmbeddedCurvePoint {\n /// Adds two points P+Q, using the curve addition formula, and also handles point at infinity\n fn add(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n embedded_curve_add(self, other)\n }\n}\n\nimpl Sub for EmbeddedCurvePoint {\n /// Points subtraction operation, using addition and negation\n fn sub(self, other: EmbeddedCurvePoint) -> EmbeddedCurvePoint { \n self + other.neg()\n }\n}\n\nimpl Neg for EmbeddedCurvePoint {\n /// Negates a point P, i.e returns -P, by negating the y coordinate.\n /// If the point is at infinity, then the result is also at infinity.\n fn neg(self) -> EmbeddedCurvePoint { \n EmbeddedCurvePoint {\n x: self.x,\n y: -self.y,\n is_infinite: self.is_infinite\n }\n }\n}\n\nimpl Eq for EmbeddedCurvePoint {\n /// Checks whether two points are equal\n fn eq(self: Self, b: EmbeddedCurvePoint) -> bool {\n (self.is_infinite & b.is_infinite) | ((self.is_infinite == b.is_infinite) & (self.x == b.x) & (self.y == b.y))\n }\n}\n\n/// Scalar for the embedded curve represented as low and high limbs\n/// By definition, the scalar field of the embedded curve is base field of the proving system curve.\n/// It may not fit into a Field element, so it is represented with two Field elements; its low and high limbs.\nstruct EmbeddedCurveScalar {\n lo: Field,\n hi: Field,\n}\n\nimpl EmbeddedCurveScalar {\n pub fn new(lo: Field, hi: Field) -> Self {\n EmbeddedCurveScalar { lo, hi }\n }\n\n #[field(bn254)]\n fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n}\n\nimpl Eq for EmbeddedCurveScalar {\n fn eq(self, other: Self) -> bool {\n (other.hi == self.hi) & (other.lo == self.lo)\n }\n}\n\n// Computes a multi scalar multiplication over the embedded curve.\n// For bn254, We have Grumpkin and Baby JubJub.\n// For bls12-381, we have JubJub and Bandersnatch.\n//\n// The embedded curve being used is decided by the \n// underlying proof system.\n// docs:start:multi_scalar_mul\npub fn multi_scalar_mul<let N: u32>(\n points: [EmbeddedCurvePoint; N],\n scalars: [EmbeddedCurveScalar; N]\n) -> EmbeddedCurvePoint\n// docs:end:multi_scalar_mul\n{\n let point_array = multi_scalar_mul_array_return(points, scalars);\n EmbeddedCurvePoint { x: point_array[0], y: point_array[1], is_infinite: point_array[2] as bool }\n}\n\n#[foreign(multi_scalar_mul)]\nfn multi_scalar_mul_array_return<let N: u32>(points: [EmbeddedCurvePoint; N], scalars: [EmbeddedCurveScalar; N]) -> [Field; 3] {}\n\n#[foreign(multi_scalar_mul)]\npub(crate) fn multi_scalar_mul_slice(points: [EmbeddedCurvePoint], scalars: [EmbeddedCurveScalar]) -> [Field; 3] {}\n\n// docs:start:fixed_base_scalar_mul\npub fn fixed_base_scalar_mul(scalar: EmbeddedCurveScalar) -> EmbeddedCurvePoint\n// docs:end:fixed_base_scalar_mul\n{\n let g1 = EmbeddedCurvePoint { x: 1, y: 17631683881184975370165255887551781615748388533673675138860, is_infinite: false };\n multi_scalar_mul([g1], [scalar])\n}\n\n// This is a hack as returning an `EmbeddedCurvePoint` from a foreign function in brillig returns a [BrilligVariable::SingleAddr; 2] rather than BrilligVariable::BrilligArray\n// as is defined in the brillig bytecode format. This is a workaround which allows us to fix this without modifying the serialization format.\n// docs:start:embedded_curve_add\nfn embedded_curve_add(\n point1: EmbeddedCurvePoint,\n point2: EmbeddedCurvePoint\n) -> EmbeddedCurvePoint\n// docs:end:embedded_curve_add\n{\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n EmbeddedCurvePoint { x, y, is_infinite: point_array[2] == 1 }\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n"},"23":{"path":"std/field/bn254.nr","source":"use crate::runtime::is_unconstrained;\n\n// The low and high decomposition of the field modulus\nglobal PLO: Field = 53438638232309528389504892708671455233;\nglobal PHI: Field = 64323764613183177041862057485226039389;\n\nglobal TWO_POW_128: Field = 0x100000000000000000000000000000000;\n\n// Decomposes a single field into two 16 byte fields.\nfn compute_decomposition(x: Field) -> (Field, Field) {\n let x_bytes = x.to_le_bytes(32);\n\n let mut low: Field = 0;\n let mut high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n low += (x_bytes[i] as Field) * offset;\n high += (x_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n\n (low, high)\n}\n\nunconstrained pub(crate) fn decompose_hint(x: Field) -> (Field, Field) {\n compute_decomposition(x)\n}\n\nfn compute_lt(x: Field, y: Field, num_bytes: u32) -> bool {\n let x_bytes = x.to_le_radix(256, num_bytes);\n let y_bytes = y.to_le_radix(256, num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i];\n let y_byte = y_bytes[num_bytes - 1 - i];\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\nfn compute_lte(x: Field, y: Field, num_bytes: u32) -> bool {\n if x == y {\n true\n } else {\n compute_lt(x, y, num_bytes)\n }\n}\n\nunconstrained fn lt_32_hint(x: Field, y: Field) -> bool {\n compute_lt(x, y, 32)\n}\n\nunconstrained fn lte_16_hint(x: Field, y: Field) -> bool {\n compute_lte(x, y, 16)\n}\n\n// Assert that (alo > blo && ahi >= bhi) || (alo <= blo && ahi > bhi)\nfn assert_gt_limbs(a: (Field, Field), b: (Field, Field)) {\n let (alo, ahi) = a;\n let (blo, bhi) = b;\n unsafe {\n let borrow = lte_16_hint(alo, blo);\n\n let rlo = alo - blo - 1 + (borrow as Field) * TWO_POW_128;\n let rhi = ahi - bhi - (borrow as Field);\n\n rlo.assert_max_bit_size(128);\n rhi.assert_max_bit_size(128);\n }\n}\n\n/// Decompose a single field into two 16 byte fields.\npub fn decompose(x: Field) -> (Field, Field) {\n if is_unconstrained() {\n compute_decomposition(x)\n } else {\n unsafe {\n // Take hints of the decomposition\n let (xlo, xhi) = decompose_hint(x);\n\n // Range check the limbs\n xlo.assert_max_bit_size(128);\n xhi.assert_max_bit_size(128);\n\n // Check that the decomposition is correct\n assert_eq(x, xlo + TWO_POW_128 * xhi);\n\n // Assert that the decomposition of P is greater than the decomposition of x\n assert_gt_limbs((PLO, PHI), (xlo, xhi));\n (xlo, xhi)\n }\n }\n}\n\npub fn assert_gt(a: Field, b: Field) {\n if is_unconstrained() {\n assert(compute_lt(b, a, 32));\n } else {\n // Decompose a and b\n let a_limbs = decompose(a);\n let b_limbs = decompose(b);\n\n // Assert that a_limbs is greater than b_limbs\n assert_gt_limbs(a_limbs, b_limbs)\n }\n}\n\npub fn assert_lt(a: Field, b: Field) {\n assert_gt(b, a);\n}\n\npub fn gt(a: Field, b: Field) -> bool {\n if is_unconstrained() {\n compute_lt(b, a, 32)\n } else if a == b {\n false\n } else {\n // Take a hint of the comparison and verify it\n unsafe {\n if lt_32_hint(a, b) {\n assert_gt(b, a);\n false\n } else {\n assert_gt(a, b);\n true\n }\n }\n }\n}\n\npub fn lt(a: Field, b: Field) -> bool {\n gt(b, a)\n}\n\nmod tests {\n // TODO: Allow imports from \"super\"\n use crate::field::bn254::{decompose_hint, decompose, compute_lt, assert_gt, gt, lt, TWO_POW_128, compute_lte, PLO, PHI};\n\n #[test]\n fn check_decompose() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n unconstrained fn check_decompose_unconstrained() {\n assert_eq(decompose(TWO_POW_128), (0, 1));\n assert_eq(decompose(TWO_POW_128 + 0x1234567890), (0x1234567890, 1));\n assert_eq(decompose(0x1234567890), (0x1234567890, 0));\n }\n\n #[test]\n fn check_compute_lt() {\n assert(compute_lt(0, 1, 16));\n assert(compute_lt(0, 0x100, 16));\n assert(compute_lt(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lt(0, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_compute_lte() {\n assert(compute_lte(0, 1, 16));\n assert(compute_lte(0, 0x100, 16));\n assert(compute_lte(0x100, TWO_POW_128 - 1, 16));\n assert(!compute_lte(0, TWO_POW_128, 16));\n\n assert(compute_lte(0, 0, 16));\n assert(compute_lte(0x100, 0x100, 16));\n assert(compute_lte(TWO_POW_128 - 1, TWO_POW_128 - 1, 16));\n assert(compute_lte(TWO_POW_128, TWO_POW_128, 16));\n }\n\n #[test]\n fn check_assert_gt() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n unconstrained fn check_assert_gt_unconstrained() {\n assert_gt(1, 0);\n assert_gt(0x100, 0);\n assert_gt((0 - 1), (0 - 2));\n assert_gt(TWO_POW_128, 0);\n assert_gt(0 - 1, 0);\n }\n\n #[test]\n fn check_gt() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n unconstrained fn check_gt_unconstrained() {\n assert(gt(1, 0));\n assert(gt(0x100, 0));\n assert(gt((0 - 1), (0 - 2)));\n assert(gt(TWO_POW_128, 0));\n assert(!gt(0, 0));\n assert(!gt(0, 0x100));\n assert(gt(0 - 1, 0 - 2));\n assert(!gt(0 - 2, 0 - 1));\n }\n\n #[test]\n fn check_plo_phi() {\n assert_eq(PLO + PHI * TWO_POW_128, 0);\n let p_bytes = crate::field::modulus_le_bytes();\n let mut p_low: Field = 0;\n let mut p_high: Field = 0;\n\n let mut offset = 1;\n for i in 0..16 {\n p_low += (p_bytes[i] as Field) * offset;\n p_high += (p_bytes[i + 16] as Field) * offset;\n offset *= 256;\n }\n assert_eq(p_low, PLO);\n assert_eq(p_high, PHI);\n }\n}\n"},"24":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n pub fn to_le_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_le_bits(bit_size)\n }\n\n pub fn to_be_bits(self: Self, bit_size: u32) -> [u1] {\n crate::assert_constant(bit_size);\n self.__to_be_bits(bit_size)\n }\n\n #[builtin(to_le_bits)]\n fn __to_le_bits(self, _bit_size: u32) -> [u1] {}\n\n #[builtin(to_be_bits)]\n fn __to_be_bits(self, bit_size: u32) -> [u1] {}\n\n #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n pub fn assert_max_bit_size(self: Self, bit_size: u32) {\n crate::assert_constant(bit_size);\n assert(bit_size < modulus_num_bits() as u32);\n self.__assert_max_bit_size(bit_size);\n }\n\n pub fn to_le_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_le_radix(256, byte_size)\n }\n\n pub fn to_be_bytes(self: Self, byte_size: u32) -> [u8] {\n self.to_be_radix(256, byte_size)\n }\n\n pub fn to_le_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_le_radix(radix, result_len)\n }\n\n pub fn to_be_radix(self: Self, radix: u32, result_len: u32) -> [u8] {\n crate::assert_constant(radix);\n crate::assert_constant(result_len);\n self.__to_be_radix(radix, result_len)\n }\n\n // decompose `_self` into a `_result_len` vector over the `_radix` basis\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix(self, radix: u32, result_len: u32) -> [u8] {}\n\n // Returns self to the power of the given exponent value.\n // Caution: we assume the exponent fits into 32 bits\n // using a bigger bit size impacts negatively the performance and should be done only if the exponent does not fit in 32 bits\n pub fn pow_32(self, exponent: Field) -> Field {\n let mut r: Field = 1;\n let b = exponent.to_le_bits(32);\n\n for i in 1..33 {\n r *= r;\n r = (b[32-i] as Field) * (r * self) + (1 - b[32-i] as Field) * r;\n }\n r\n }\n\n // Parity of (prime) Field element, i.e. sgn0(x mod p) = 0 if x ∈ {0, ..., p-1} is even, otherwise sgn0(x mod p) = 1.\n pub fn sgn0(self) -> u1 {\n self as u1\n }\n\n pub fn lt(self, another: Field) -> bool {\n if crate::compat::is_bn254() {\n bn254_lt(self, another)\n } else {\n lt_fallback(self, another)\n }\n }\n}\n\n#[builtin(modulus_num_bits)]\npub comptime fn modulus_num_bits() -> u64 {}\n\n#[builtin(modulus_be_bits)]\npub comptime fn modulus_be_bits() -> [u1] {}\n\n#[builtin(modulus_le_bits)]\npub comptime fn modulus_le_bits() -> [u1] {}\n\n#[builtin(modulus_be_bytes)]\npub comptime fn modulus_be_bytes() -> [u8] {}\n\n#[builtin(modulus_le_bytes)]\npub comptime fn modulus_le_bytes() -> [u8] {}\n\n// Convert a 32 byte array to a field element by modding\npub fn bytes32_to_field(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..16 {\n high = high + (bytes32[15 - i] as Field) * v;\n low = low + (bytes32[16 + 15 - i] as Field) * v;\n v = v * 256;\n }\n // Abuse that a % p + b % p = (a + b) % p and that low < p\n low + high * v\n}\n\nfn lt_fallback(x: Field, y: Field) -> bool {\n let num_bytes = (modulus_num_bits() as u32 + 7) / 8;\n let x_bytes = x.to_le_bytes(num_bytes);\n let y_bytes = y.to_le_bytes(num_bytes);\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..num_bytes {\n if (!done) {\n let x_byte = x_bytes[num_bytes - 1 - i] as u8;\n let y_byte = y_bytes[num_bytes - 1 - i] as u8;\n let bytes_match = x_byte == y_byte;\n if !bytes_match {\n x_is_lt = x_byte < y_byte;\n done = true;\n }\n }\n }\n x_is_lt\n}\n\n"},"248":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr","source":"use crate::{hash::pedersen_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field where K: ToField {\n pedersen_hash([storage_slot, key.to_field()], 0)\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f);\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript = 0x2499880e2b1b831785c17286f99a0d5122fee784ce7b1c04e380c4a991da819a;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"},"254":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic \n// if a value can actually be zero. In a future refactor, we can \n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\ntrait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field { fn empty() -> Self {0} }\n\nimpl Empty for u1 { fn empty() -> Self {0} }\nimpl Empty for u8 { fn empty() -> Self {0} }\nimpl Empty for u32 { fn empty() -> Self {0} }\nimpl Empty for u64 { fn empty() -> Self {0} }\nimpl Empty for U128 { fn empty() -> Self {U128::from_integer(0)} }\n\npub fn is_empty<T>(item: T) -> bool where T: Empty + Eq {\n item.eq(T::empty())\n}\n\npub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool where T: Empty + Eq {\n array.all(|elem| is_empty(elem))\n}\n\ntrait Hash {\n fn hash(self) -> Field;\n}\n\ntrait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u1 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u8 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u32 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for u64 { fn to_field(self) -> Field { self as Field } }\nimpl ToField for U128 {\n fn to_field(self) -> Field {\n self.to_integer()\n }\n}\nimpl<let N: u32> ToField for str<N> {\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\ntrait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool { fn from_field(value: Field) -> Self { value as bool } }\nimpl FromField for u1 { fn from_field(value: Field) -> Self { value as u1 } }\nimpl FromField for u8 { fn from_field(value: Field) -> Self { value as u8 } }\nimpl FromField for u32 { fn from_field(value: Field) -> Self { value as u32 } }\nimpl FromField for u64 { fn from_field(value: Field) -> Self { value as u64 } }\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\ntrait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for [Field; N] {\n fn serialize(self) -> [Field; N] {\n self\n }\n}\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let mut result = [0; N];\n let bytes: [u8; N] = self.as_bytes();\n for i in 0..N {\n result[i] = field_from_bytes([bytes[i];1], true);\n }\n result\n }\n}\n\n// docs:start:deserialize\ntrait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let N: u32> Deserialize<N> for [Field; N] {\n fn deserialize(fields: [Field; N]) -> Self {\n fields\n }\n}\n"},"255":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr","source":"// Utility function to console.log data in the acir simulator\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n\n/// NOTE: call this with a str<N> msg of form\n/// \"some string with {0} and {1} ... {N}\"\n/// and an array of N field which will be formatted\n/// into the string in the simulator.\n/// Example:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\nunconstrained pub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n/// NOTE: call this with a str<N> msg of length > 1\n/// Example:\n/// `debug_log(\"blah blah this is a debug string\");`\nunconstrained pub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n"},"258":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_data_tree_leaf_preimage.nr","source":"use crate::{merkle_tree::leaf_preimage::IndexedTreeLeafPreimage, traits::{Empty, Hash}};\n\nstruct PublicDataTreeLeafPreimage {\n slot : Field,\n value: Field,\n next_slot :Field,\n next_index : u32,\n}\n\nimpl Empty for PublicDataTreeLeafPreimage {\n fn empty() -> Self {\n Self {\n slot: 0,\n value: 0,\n next_slot: 0,\n next_index: 0,\n }\n }\n}\n\nimpl Hash for PublicDataTreeLeafPreimage {\n fn hash(self) -> Field {\n if self.is_empty() {\n 0\n } else {\n crate::hash::poseidon2_hash([self.slot, self.value, (self.next_index as Field), self.next_slot])\n }\n }\n}\n\nimpl IndexedTreeLeafPreimage for PublicDataTreeLeafPreimage {\n fn get_key(self) -> Field {\n self.slot\n }\n\n fn get_next_key(self) -> Field {\n self.next_slot\n }\n\n fn as_leaf(self) -> Field {\n self.hash()\n }\n}\n\nimpl PublicDataTreeLeafPreimage {\n pub fn is_empty(self) -> bool {\n (self.slot == 0) & (self.value == 0) & (self.next_slot == 0) & (self.next_index == 0)\n }\n}\n"},"260":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr","source":"use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector, log_hash::{LogHash, ScopedLogHash, ScopedEncryptedLogHash},\n note_hash::ScopedNoteHash, nullifier::ScopedNullifier\n},\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__VK, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n MAX_ENCRYPTED_LOGS_PER_TX, MAX_NOTE_ENCRYPTED_LOGS_PER_TX\n},\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n recursion::verification_key::VerificationKey, traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc, point::Point\n};\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT]\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(function_leaf, function_leaf_index, function_leaf_sibling_path)\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [\n tx_hash,\n note_index_in_tx as Field\n ],\n GENERATOR_INDEX__NOTE_HASH_NONCE\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n unique_note_hash\n ],\n GENERATOR_INDEX__SILOED_NOTE_HASH\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n app.to_field(),\n nullifier\n ],\n GENERATOR_INDEX__OUTER_NULLIFIER\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256([log_hash.contract_address.to_field(), log_hash.log_hash.value])\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0\n )\n )\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn stdlib_recursion_verification_key_compress_native_vk(_vk: VerificationKey) -> Field {\n // Original cpp code\n // stdlib::recursion::verification_key<CT::bn254>::compress_native(private_call.vk, GeneratorIndex::VK);\n // The above cpp method is only ever called on verification key, so it has been special cased here\n let _hash_index = GENERATOR_INDEX__VK;\n 0\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs = [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes = inputs[i].to_be_bytes(32);\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage)\n}\n\npub fn silo_l2_to_l1_message(msg: ScopedL2ToL1Message, rollup_version_id: Field, chain_id: Field) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes = input[offset].to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\n// NB: this assumes MAX_ENCRYPTED_LOGS_PER_TX == MAX_UNENCRYPTED_LOGS_PER_TX\n// to avoid doubling code, since we can't define the byte len to be 32*N directly.\npub fn compute_tx_logs_hash(logs: [LogHash; MAX_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn compute_tx_note_logs_hash(logs: [LogHash; MAX_NOTE_ENCRYPTED_LOGS_PER_TX]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; MAX_NOTE_ENCRYPTED_LOGS_PER_TX * 32];\n for offset in 0..MAX_NOTE_ENCRYPTED_LOGS_PER_TX {\n let input_as_bytes = logs[offset].value.to_be_bytes(32);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(\n inputs: [Field; N],\n separator: T\n) -> Field where T: ToField {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,\n 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\n 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,\n 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\n 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,\n 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(AztecAddress::from_field(1), EthAddress::from_field(3), 5, 2, 4);\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3)\n },\n version,\n chainId\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"},"266":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: Field = 3;\n\nimpl Serialize<POINT_LENGTH> for Point {\n fn serialize(self: Self) -> [Field; POINT_LENGTH] {\n [self.x, self.y, self.is_infinite as Field]\n }\n}\n\nimpl Hash for Point {\n fn hash(self) -> Field {\n poseidon2_hash(self.serialize())\n }\n}\n\nimpl Empty for Point {\n /// Note: Does not return a valid point on curve - instead represents an empty/\"unpopulated\" point struct (e.g.\n /// empty/unpopulated value in an array of points).\n fn empty() -> Self {\n Point {\n x: 0,\n y: 0,\n is_infinite: false\n }\n }\n}\n"},"267":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{\n aztec_address::AztecAddress, eth_address::EthAddress, partial_address::PartialAddress,\n public_keys_hash::PublicKeysHash\n},\n contract_class_id::ContractClassId,\n constants::{GENERATOR_INDEX__CONTRACT_DEPLOYMENT_DATA, CONTRACT_INSTANCE_LENGTH},\n traits::{Deserialize, Hash, Serialize}\n};\n\nstruct ContractInstance {\n salt : Field,\n deployer: AztecAddress,\n contract_class_id : ContractClassId,\n initialization_hash : Field,\n public_keys_hash : PublicKeysHash,\n}\n\nimpl Eq for ContractInstance {\n fn eq(self, other: Self) -> bool {\n self.public_keys_hash.eq(other.public_keys_hash) &\n self.initialization_hash.eq(other.initialization_hash) &\n self.contract_class_id.eq(other.contract_class_id) &\n self.salt.eq(other.salt)\n }\n}\n\nimpl Serialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn serialize(self) -> [Field; CONTRACT_INSTANCE_LENGTH] {\n [\n self.salt,\n self.deployer.to_field(),\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys_hash.to_field()\n ]\n }\n}\n\nimpl Deserialize<CONTRACT_INSTANCE_LENGTH> for ContractInstance {\n fn deserialize(serialized: [Field; CONTRACT_INSTANCE_LENGTH]) -> Self {\n Self {\n salt: serialized[0],\n deployer: AztecAddress::from_field(serialized[1]),\n contract_class_id: ContractClassId::from_field(serialized[2]),\n initialization_hash: serialized[3],\n public_keys_hash: PublicKeysHash::from_field(serialized[4]),\n }\n }\n}\n\nimpl Hash for ContractInstance {\n fn hash(self) -> Field {\n self.to_address().to_field()\n }\n}\n\nimpl ContractInstance {\n fn to_address(self) -> AztecAddress {\n AztecAddress::compute(\n self.public_keys_hash,\n PartialAddress::compute(\n self.contract_class_id,\n self.salt,\n self.initialization_hash,\n self.deployer\n )\n )\n }\n}\n"},"27":{"path":"std/hash/mod.nr","source":"mod poseidon;\nmod mimc;\nmod poseidon2;\nmod keccak;\nmod sha256;\nmod sha512;\n\nuse crate::default::Default;\nuse crate::uint128::U128;\nuse crate::collections::vec::Vec;\nuse crate::embedded_curve_ops::{EmbeddedCurvePoint, EmbeddedCurveScalar, multi_scalar_mul, multi_scalar_mul_slice};\nuse crate::meta::derive_via;\n\n// Kept for backwards compatibility\nuse sha256::{digest, sha256, sha256_compression, sha256_var};\n\n#[foreign(blake2s)]\n// docs:start:blake2s\npub fn blake2s<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake2s\n{}\n\n#[foreign(blake3)]\n// docs:start:blake3\npub fn blake3<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:blake3\n{}\n\n// docs:start:pedersen_commitment\npub fn pedersen_commitment<let N: u32>(input: [Field; N]) -> EmbeddedCurvePoint {\n // docs:end:pedersen_commitment\n pedersen_commitment_with_separator(input, 0)\n}\n\npub fn pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {\n __pedersen_hash_with_separator(input, separator)\n}\n\nfn pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let value = __pedersen_commitment_with_separator(input, separator);\n if (value[0] == 0) & (value[1] == 0) {\n EmbeddedCurvePoint { x: 0, y: 0, is_infinite: true }\n } else {\n EmbeddedCurvePoint { x: value[0], y: value[1], is_infinite: false }\n }\n}\n\n#[no_predicates]\nfn pedersen_commitment_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> EmbeddedCurvePoint {\n let mut points = [EmbeddedCurveScalar { lo: 0, hi: 0 }; N];\n for i in 0..N {\n // we use the unsafe version because the multi_scalar_mul will constrain the scalars.\n points[i] = from_field_unsafe(input[i]);\n }\n let generators = derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n multi_scalar_mul(generators, points)\n}\n\n#[no_predicates]\nfn pedersen_hash_with_separator_noir<let N: u32>(input: [Field; N], separator: u32) -> Field {\n let mut scalars: Vec<EmbeddedCurveScalar> = Vec::from_slice([EmbeddedCurveScalar { lo: 0, hi: 0 }; N].as_slice()); //Vec::new();\n\n for i in 0..N {\n scalars.set(i, from_field_unsafe(input[i]));\n }\n scalars.push(EmbeddedCurveScalar { lo: N as Field, hi: 0 as Field });\n let domain_generators :[EmbeddedCurvePoint; N]= derive_generators(\"DEFAULT_DOMAIN_SEPARATOR\".as_bytes(), separator);\n let mut vec_generators = Vec::new();\n for i in 0..N {\n vec_generators.push(domain_generators[i]);\n }\n let length_generator : [EmbeddedCurvePoint; 1] = derive_generators(\"pedersen_hash_length\".as_bytes(), 0);\n vec_generators.push(length_generator[0]);\n multi_scalar_mul_slice(vec_generators.slice, scalars.slice)[0]\n}\n\n// docs:start:pedersen_hash\npub fn pedersen_hash<let N: u32>(input: [Field; N]) -> Field\n// docs:end:pedersen_hash\n{\n __pedersen_hash_with_separator(input, 0)\n}\n\n#[foreign(pedersen_hash)]\nfn __pedersen_hash_with_separator<let N: u32>(input: [Field; N], separator: u32) -> Field {}\n\n#[foreign(pedersen_commitment)]\nfn __pedersen_commitment_with_separator<let N: u32>(input: [Field; N], separator: u32) -> [Field; 2] {}\n\n#[field(bn254)]\nfn derive_generators<let N: u32, let M: u32>(domain_separator_bytes: [u8; M], starting_index: u32) -> [EmbeddedCurvePoint; N] {\n crate::assert_constant(domain_separator_bytes);\n // TODO(https://github.com/noir-lang/noir/issues/5672): Add back assert_constant on starting_index\n __derive_generators(domain_separator_bytes, starting_index)\n}\n\n#[builtin(derive_pedersen_generators)]\n#[field(bn254)]\nfn __derive_generators<let N: u32, let M: u32>(\n domain_separator_bytes: [u8; M],\n starting_index: u32\n) -> [EmbeddedCurvePoint; N] {}\n\n#[field(bn254)]\n // Same as from_field but:\n // does not assert the limbs are 128 bits\n // does not assert the decomposition does not overflow the EmbeddedCurveScalar\n fn from_field_unsafe(scalar: Field) -> EmbeddedCurveScalar {\n let (xlo, xhi) = unsafe {\n crate::field::bn254::decompose_hint(scalar)\n };\n // Check that the decomposition is correct\n assert_eq(scalar, xlo + crate::field::bn254::TWO_POW_128 * xhi);\n EmbeddedCurveScalar { lo: xlo, hi: xhi }\n}\n\npub fn hash_to_field(inputs: [Field]) -> Field {\n let mut sum = 0;\n\n for input in inputs {\n let input_bytes: [u8; 32] = input.to_le_bytes(32).as_array();\n sum += crate::field::bytes32_to_field(blake2s(input_bytes));\n }\n\n sum\n}\n\n// docs:start:keccak256\npub fn keccak256<let N: u32>(input: [u8; N], message_size: u32) -> [u8; 32]\n// docs:end:keccak256\n{\n crate::hash::keccak::keccak256(input, message_size)\n}\n\n#[foreign(poseidon2_permutation)]\npub fn poseidon2_permutation<let N: u32>(_input: [Field; N], _state_length: u32) -> [Field; N] {}\n\n// Generic hashing support. \n// Partially ported and impacted by rust.\n\n// Hash trait shall be implemented per type.\n#[derive_via(derive_hash)]\ntrait Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher;\n}\n\n// docs:start:derive_hash\ncomptime fn derive_hash(s: StructDefinition) -> Quoted {\n let name = quote { Hash };\n let signature = quote { fn hash<H>(_self: Self, _state: &mut H) where H: std::hash::Hasher };\n let for_each_field = |name| quote { _self.$name.hash(_state); };\n crate::meta::make_trait_impl(s, name, signature, for_each_field, quote {}, |fields| fields)\n}\n// docs:end:derive_hash\n\n// Hasher trait shall be implemented by algorithms to provide hash-agnostic means.\n// TODO: consider making the types generic here ([u8], [Field], etc.)\ntrait Hasher{\n fn finish(self) -> Field;\n \n fn write(&mut self, input: Field);\n}\n\n// BuildHasher is a factory trait, responsible for production of specific Hasher.\ntrait BuildHasher<H> where H: Hasher{\n fn build_hasher(self) -> H;\n}\n\nstruct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn build_hasher(_self: Self) -> H{\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default\n{\n fn default() -> Self{\n BuildHasherDefault{}\n } \n}\n\nimpl Hash for Field {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self);\n }\n}\n\nimpl Hash for u1 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for u64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i8 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i16 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i32 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for i64 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for bool {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self as Field);\n }\n}\n\nimpl Hash for () {\n fn hash<H>(_self: Self, _state: &mut H) where H: Hasher {}\n}\n\nimpl Hash for U128 {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n H::write(state, self.lo as Field);\n H::write(state, self.hi as Field);\n }\n}\n\nimpl<T, let N: u32> Hash for [T; N] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<T> Hash for [T] where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.len().hash(state);\n for elem in self {\n elem.hash(state);\n }\n }\n}\n\nimpl<A, B> Hash for (A, B) where A: Hash, B: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n }\n}\n\nimpl<A, B, C> Hash for (A, B, C) where A: Hash, B: Hash, C: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n }\n}\n\nimpl<A, B, C, D> Hash for (A, B, C, D) where A: Hash, B: Hash, C: Hash, D: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n }\n}\n\nimpl<A, B, C, D, E> Hash for (A, B, C, D, E) where A: Hash, B: Hash, C: Hash, D: Hash, E: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher{\n self.0.hash(state);\n self.1.hash(state);\n self.2.hash(state);\n self.3.hash(state);\n self.4.hash(state);\n }\n}\n\n// Some test vectors for Pedersen hash and Pedersen Commitment.\n// They have been generated using the same functions so the tests are for now useless\n// but they will be useful when we switch to Noir implementation.\n#[test]\nfn assert_pedersen() {\n assert_eq(\n pedersen_hash_with_separator([1], 1), 0x1b3f4b1a83092a13d8d1a59f7acb62aba15e7002f4440f2275edb99ebbc2305f\n );\n assert_eq(\n pedersen_commitment_with_separator([1], 1), EmbeddedCurvePoint {\n x: 0x054aa86a73cb8a34525e5bbed6e43ba1198e860f5f3950268f71df4591bde402,\n y: 0x209dcfbf2cfb57f9f6046f44d71ac6faf87254afc7407c04eb621a6287cac126,\n is_infinite: false\n }\n );\n\n assert_eq(\n pedersen_hash_with_separator([1, 2], 2), 0x26691c129448e9ace0c66d11f0a16d9014a9e8498ee78f4d69f0083168188255\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2], 2), EmbeddedCurvePoint {\n x: 0x2e2b3b191e49541fe468ec6877721d445dcaffe41728df0a0eafeb15e87b0753,\n y: 0x2ff4482400ad3a6228be17a2af33e2bcdf41be04795f9782bd96efe7e24f8778,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3], 3), 0x0bc694b7a1f8d10d2d8987d07433f26bd616a2d351bc79a3c540d85b6206dbe4\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3], 3), EmbeddedCurvePoint {\n x: 0x1fee4e8cf8d2f527caa2684236b07c4b1bad7342c01b0f75e9a877a71827dc85,\n y: 0x2f9fedb9a090697ab69bf04c8bc15f7385b3e4b68c849c1536e5ae15ff138fd1,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4], 4), 0xdae10fb32a8408521803905981a2b300d6a35e40e798743e9322b223a5eddc\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4], 4), EmbeddedCurvePoint {\n x: 0x07ae3e202811e1fca39c2d81eabe6f79183978e6f12be0d3b8eda095b79bdbc9,\n y: 0x0afc6f892593db6fbba60f2da558517e279e0ae04f95758587760ba193145014,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5], 5), 0xfc375b062c4f4f0150f7100dfb8d9b72a6d28582dd9512390b0497cdad9c22\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5], 5), EmbeddedCurvePoint {\n x: 0x1754b12bd475a6984a1094b5109eeca9838f4f81ac89c5f0a41dbce53189bb29,\n y: 0x2da030e3cfcdc7ddad80eaf2599df6692cae0717d4e9f7bfbee8d073d5d278f7,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6], 6), 0x1696ed13dc2730062a98ac9d8f9de0661bb98829c7582f699d0273b18c86a572\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6], 6), EmbeddedCurvePoint {\n x: 0x190f6c0e97ad83e1e28da22a98aae156da083c5a4100e929b77e750d3106a697,\n y: 0x1f4b60f34ef91221a0b49756fa0705da93311a61af73d37a0c458877706616fb,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7], 7), 0x128c0ff144fc66b6cb60eeac8a38e23da52992fc427b92397a7dffd71c45ede3\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7], 7), EmbeddedCurvePoint {\n x: 0x015441e9d29491b06563fac16fc76abf7a9534c715421d0de85d20dbe2965939,\n y: 0x1d2575b0276f4e9087e6e07c2cb75aa1baafad127af4be5918ef8a2ef2fea8fc,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), 0x2f960e117482044dfc99d12fece2ef6862fba9242be4846c7c9a3e854325a55c\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8], 8), EmbeddedCurvePoint {\n x: 0x1657737676968887fceb6dd516382ea13b3a2c557f509811cd86d5d1199bc443,\n y: 0x1f39f0cb569040105fa1e2f156521e8b8e08261e635a2b210bdc94e8d6d65f77,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), 0x0c96db0790602dcb166cc4699e2d306c479a76926b81c2cb2aaa92d249ec7be7\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9], 9), EmbeddedCurvePoint {\n x: 0x0a3ceae42d14914a432aa60ec7fded4af7dad7dd4acdbf2908452675ec67e06d,\n y: 0xfc19761eaaf621ad4aec9a8b2e84a4eceffdba78f60f8b9391b0bd9345a2f2,\n is_infinite: false\n }\n );\n assert_eq(\n pedersen_hash_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), 0x2cd37505871bc460a62ea1e63c7fe51149df5d0801302cf1cbc48beb8dff7e94\n );\n assert_eq(\n pedersen_commitment_with_separator([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10), EmbeddedCurvePoint {\n x: 0x2fb3f8b3d41ddde007c8c3c62550f9a9380ee546fcc639ffbb3fd30c8d8de30c,\n y: 0x300783be23c446b11a4c0fabf6c91af148937cea15fcf5fb054abf7f752ee245,\n is_infinite: false\n }\n );\n}\n\n"},"279":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/root.nr","source":"use crate::{hash::merkle_hash, merkle_tree::merkle_tree::MerkleTree};\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like \n// this because it means we never even need to consider cases where \n// the index is greater than p.\npub fn root_from_sibling_path<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N]\n) -> Field {\n let mut node = leaf;\n let indices = leaf_index.to_le_bits(N);\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\npub fn calculate_subtree_root<let N: u32>(leaves: [Field; N]) -> Field {\n MerkleTree::new(leaves).get_root()\n}\n\n// These values are precomputed and we run tests to ensure that they\n// are correct. The values themselves were computed from the cpp code.\n//\n// Would be good if we could use width since the compute_subtree\n// algorithm uses depth.\npub fn calculate_empty_tree_root(depth: u32) -> Field {\n if depth == 0 {\n 0\n } else if depth == 1 {\n 0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1\n } else if depth == 2 {\n 0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290\n } else if depth == 3 {\n 0x21f9172d72fdcdafc312eee05cf5092980dda821da5b760a9fb8dbdf607c8a20\n } else if depth == 4 {\n 0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e\n } else if depth == 5 {\n 0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf\n } else if depth == 6 {\n 0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76\n } else if depth == 7 {\n 0x2d78ed82f93b61ba718b17c2dfe5b52375b4d37cbbed6f1fc98b47614b0cf21b\n } else if depth == 8 {\n 0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1\n } else if depth == 9 {\n 0x1849b85f3c693693e732dfc4577217acc18295193bede09ce8b97ad910310972\n } else if depth == 10 {\n 0x2a775ea761d20435b31fa2c33ff07663e24542ffb9e7b293dfce3042eb104686\n } else {\n assert(false, \"depth should be between 0 and 10\");\n 0\n }\n}\n\n#[test]\nfn test_merkle_root_interop_test() {\n // This is a test to ensure that we match the cpp implementation.\n // You can grep for `TEST_F(root_rollup_tests, noir_interop_test)`\n // to find the test that matches this.\n let root = calculate_subtree_root([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]);\n assert(0x1a09d935ae110b4c861fcec8f9099ec30b4485022aeb3d3cf9d7168e38fdc231 == root);\n\n let empty_root = calculate_subtree_root([0; 16]);\n assert(0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e == empty_root);\n}\n\n#[test]\nfn test_empty_subroot() {\n assert(calculate_empty_tree_root(0) == 0);\n\n let expected_empty_root_2 = calculate_subtree_root([0; 2]);\n assert(calculate_empty_tree_root(1) == expected_empty_root_2);\n\n let expected_empty_root_4 = calculate_subtree_root([0; 4]);\n assert(calculate_empty_tree_root(2) == expected_empty_root_4);\n\n let expected_empty_root_8 = calculate_subtree_root([0; 8]);\n assert(calculate_empty_tree_root(3) == expected_empty_root_8);\n\n let expected_empty_root_16 = calculate_subtree_root([0; 16]);\n assert(calculate_empty_tree_root(4) == expected_empty_root_16);\n\n let expected_empty_root_32 = calculate_subtree_root([0; 32]);\n assert(calculate_empty_tree_root(5) == expected_empty_root_32);\n\n let expected_empty_root_64 = calculate_subtree_root([0; 64]);\n assert(calculate_empty_tree_root(6) == expected_empty_root_64);\n\n let expected_empty_root_128 = calculate_subtree_root([0; 128]);\n assert(calculate_empty_tree_root(7) == expected_empty_root_128);\n\n let expected_empty_root_256 = calculate_subtree_root([0; 256]);\n assert(calculate_empty_tree_root(8) == expected_empty_root_256);\n\n let expected_empty_root_512 = calculate_subtree_root([0; 512]);\n assert(calculate_empty_tree_root(9) == expected_empty_root_512);\n\n let expected_empty_root_1024 = calculate_subtree_root([0; 1024]);\n assert(calculate_empty_tree_root(10) == expected_empty_root_1024);\n}\n"},"283":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() as bool\n }\n\n pub fn read_array<let K: u32>(&mut self, mut result: [Field; K]) -> [Field; K] {\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n // TODO(#4394)\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array([0; K]));\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(&mut self, deserialise: fn([Field; K]) -> T, mut result: [T; C]) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert(self.offset == self.data.len(), \"Reader did not read all data\");\n }\n}\n"},"304":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr","source":"pub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes = field.to_be_bytes(31);\n for i in 0..31 {\n assert_eq(inputs[i], return_bytes[i]);\n }\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28, 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2 = field.to_be_bytes(31);\n\n for i in 0..31 {\n assert_eq(return_bytes2[i], return_bytes[i]);\n }\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes = max_value.to_be_bytes(32);\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n"},"306":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/mod.nr","source":"// general util packages/modules are usually bad practice\n// because there is no criteria for what we should not put in here.\n// Reducing the size of this package would be welcome.\n\nmod arrays;\nmod field;\nmod reader;\nmod uint256;\n\n// if predicate == true then return lhs, else return rhs\npub fn conditional_assign(predicate: bool, lhs: Field, rhs: Field) -> Field {\n if predicate { lhs } else { rhs }\n}\n\npub fn arr_copy_slice<T, let N: u32, let M: u32>(src: [T; N], mut dst: [T; M], offset: u32) -> [T; M] {\n let iterator_len = if N > M { M } else { N };\n for i in 0..iterator_len {\n dst[i] = src[i + offset];\n }\n dst\n}\n"},"318":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{eth_address::EthAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n contract_class_id::ContractClassId, hash::poseidon2_hash_with_separator,\n traits::{Empty, FromField, ToField, Serialize, Deserialize}, utils\n};\n\n// Aztec address\nstruct AztecAddress {\n inner : Field\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other : Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self {\n inner : 0\n }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn compute(pub_keys_hash: PublicKeysHash, partial_address: PartialAddress) -> AztecAddress {\n AztecAddress::from_field(\n poseidon2_hash_with_separator(\n [pub_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1\n )\n )\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys_hash() {\n let pub_keys_hash = PublicKeysHash::from_field(1);\n let partial_address = PartialAddress::from_field(2);\n\n let address = AztecAddress::compute(pub_keys_hash, partial_address);\n let expected_computed_address_from_partial_and_pubkey = 0x23ce9be3fa3c846b0f9245cc796902e731d04f086e8a42473bb29e405fc98075;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkey);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"},"32":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\nstruct Poseidon2 {\n cache: [Field;3],\n state: [Field;4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n if message_size == N {\n Poseidon2::hash_internal(input, N, false)\n } else {\n Poseidon2::hash_internal(input, message_size, true)\n }\n }\n\n fn new(iv: Field) -> Poseidon2 {\n let mut result = Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) -> [Field; RATE] {\n // zero-pad the cache\n for i in 0..RATE {\n if i >= self.cache_size {\n self.cache[i] = 0;\n }\n }\n // add the cache into sponge state\n for i in 0..RATE {\n self.state[i] += self.cache[i];\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n // return `RATE` number of field elements from the sponge state.\n let mut result = [0; RATE];\n for i in 0..RATE {\n result[i] = self.state[i];\n }\n result\n }\n\n fn absorb(&mut self, input: Field) {\n if (!self.squeeze_mode) & (self.cache_size == RATE) {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n let _ = self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else if (!self.squeeze_mode) & (self.cache_size != RATE) {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n } else if self.squeeze_mode {\n // If we're in squeeze mode, switch to absorb mode and add the input into the cache.\n // N.B. I don't think this code path can be reached?!\n self.cache[0] = input;\n self.cache_size = 1;\n self.squeeze_mode = false;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n if self.squeeze_mode & (self.cache_size == 0) {\n // If we're in squeze mode and the cache is empty, there is nothing left to squeeze out of the sponge!\n // Switch to absorb mode.\n self.squeeze_mode = false;\n self.cache_size = 0;\n }\n if !self.squeeze_mode {\n // If we're in absorb mode, apply sponge permutation to compress the cache, populate cache with compressed\n // state and switch to squeeze mode. Note: this code block will execute if the previous `if` condition was\n // matched\n let new_output_elements = self.perform_duplex();\n self.squeeze_mode = true;\n for i in 0..RATE {\n self.cache[i] = new_output_elements[i];\n }\n self.cache_size = RATE;\n }\n // By this point, we should have a non-empty cache. Pop one item off the top of the cache and return it.\n let result = self.cache[0];\n for i in 1..RATE {\n if i < self.cache_size {\n self.cache[i - 1] = self.cache[i];\n }\n }\n self.cache_size -= 1;\n self.cache[self.cache_size] = 0;\n result\n }\n\n fn hash_internal<let N: u32>(input: [Field; N], in_len: u32, is_variable_length: bool) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv : Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\nstruct Poseidon2Hasher{\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv : Field = (self._state.len() as Field)*18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field){\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher {\n _state: &[],\n }\n }\n}\n"},"320":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{\n eth_address::EthAddress, salted_initialization_hash::SaltedInitializationHash,\n aztec_address::AztecAddress\n},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, FromField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH = 1;\n\n// Partial address\nstruct PartialAddress {\n inner : Field\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer)\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash\n ) -> Self {\n PartialAddress::from_field(\n poseidon2_hash_with_separator(\n [\n contract_class_id.to_field(),\n salted_initialization_hash.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"321":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{eth_address::EthAddress, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\nstruct SaltedInitializationHash {\n inner: Field\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(\n poseidon2_hash_with_separator(\n [\n salt,\n initialization_hash,\n deployer.to_field()\n ],\n GENERATOR_INDEX__PARTIAL_ADDRESS\n )\n )\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"},"379":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_k_account_contract/src/main.nr","source":"// Account contract that uses ECDSA signatures for authentication on the same curve as Ethereum.\n// The signing key is stored in an immutable private note and should be different from the signing key.\ncontract EcdsaKAccount {\n use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteGetterOptions, PrivateContext, PrivateImmutable};\n use dep::aztec::{\n encrypted_logs::encrypted_note_emission::encode_and_encrypt_note_with_keys,\n keys::getters::get_current_public_keys\n };\n\n use dep::aztec::protocol_types::abis::call_context::CallContext;\n use dep::std;\n\n use dep::authwit::{\n entrypoint::{app::AppPayload, fee::FeePayload}, account::AccountActions,\n auth_witness::get_auth_witness\n };\n\n use dep::ecdsa_public_key_note::EcdsaPublicKeyNote;\n\n #[aztec(storage)]\n struct Storage {\n public_key: PrivateImmutable<EcdsaPublicKeyNote>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[aztec(private)]\n #[aztec(initializer)]\n fn constructor(signing_pub_key_x: [u8; 32], signing_pub_key_y: [u8; 32]) {\n let this = context.this_address();\n let this_keys = get_current_public_keys(&mut context, this);\n // Not emitting outgoing for msg_sender here to not have to register keys for the contract through which we\n // deploy this (typically MultiCallEntrypoint). I think it's ok here as I feel the outgoing here is not that\n // important.\n\n let mut pub_key_note = EcdsaPublicKeyNote::new(signing_pub_key_x, signing_pub_key_y, this_keys.npk_m.hash());\n storage.public_key.initialize(&mut pub_key_note).emit(encode_and_encrypt_note_with_keys(&mut context, this_keys.ovpk_m, this_keys.ivpk_m, this));\n }\n\n // Note: If you globally change the entrypoint signature don't forget to update account_entrypoint.ts\n #[aztec(private)]\n fn entrypoint(app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.entrypoint(app_payload, fee_payload, cancellable);\n }\n\n #[aztec(private)]\n #[aztec(noinitcheck)]\n #[aztec(view)]\n fn verify_private_authwit(inner_hash: Field) -> Field {\n let actions = AccountActions::init(&mut context, is_valid_impl);\n actions.verify_private_authwit(inner_hash)\n }\n\n #[contract_library_method]\n fn is_valid_impl(context: &mut PrivateContext, outer_hash: Field) -> bool {\n // Load public key from storage\n let storage = Storage::init(context);\n let public_key = storage.public_key.get_note();\n\n // Load auth witness\n let witness: [Field; 64] = get_auth_witness(outer_hash);\n let mut signature: [u8; 64] = [0; 64];\n for i in 0..64 {\n signature[i] = witness[i] as u8;\n }\n\n // Verify payload signature using Ethereum's signing scheme\n // Note that noir expects the hash of the message/challenge as input to the ECDSA verification.\n let outer_hash_bytes: [u8; 32] = outer_hash.to_be_bytes(32).as_array();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n let verification = std::ecdsa_secp256k1::verify_signature(public_key.x, public_key.y, signature, hashed_message);\n assert(verification == true);\n\n true\n }\n}\n"},"380":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr","source":"use dep::aztec::prelude::{AztecAddress, FunctionSelector, NoteHeader, NoteInterface, NoteGetterOptions, PrivateContext};\n\nuse dep::aztec::{\n note::utils::compute_note_hash_for_nullify, keys::getters::get_nsk_app,\n protocol_types::{constants::GENERATOR_INDEX__NOTE_NULLIFIER, hash::poseidon2_hash_with_separator}\n};\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: Field = 5;\n// ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 32(storage_slot as bytes) + 32(note_type_id as bytes)\nglobal ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN: Field = 5 * 32 + 64;\n\n// Stores an ECDSA public key composed of two 32-byte elements\n// TODO: Do we need to include a nonce, in case we want to read/nullify/recreate with the same pubkey value?\n#[aztec(note)]\nstruct EcdsaPublicKeyNote {\n x: [u8; 32],\n y: [u8; 32],\n // We store the npk_m_hash only to get the secret key to compute the nullifier\n npk_m_hash: Field,\n}\n\nimpl NoteInterface<ECDSA_PUBLIC_KEY_NOTE_LEN, ECDSA_PUBLIC_KEY_NOTE_BYTES_LEN> for EcdsaPublicKeyNote {\n // Cannot use the automatic serialization since x and y don't fit. Serialize the note as 5 fields where:\n // [0] = x[0..31] (upper bound excluded)\n // [1] = x[31]\n // [2] = y[0..31]\n // [3] = y[31]\n // [4] = npk_m_hash\n fn serialize_content(self) -> [Field; ECDSA_PUBLIC_KEY_NOTE_LEN] {\n let mut x: Field = 0;\n let mut y: Field = 0;\n let mut mul: Field = 1;\n\n for i in 1..32 {\n let byte_x: Field = self.x[31 - i] as Field;\n x = x + (byte_x * mul);\n let byte_y: Field = self.y[31 - i] as Field;\n y = y + (byte_y * mul);\n mul *= 256;\n }\n\n let last_x = self.x[31] as Field;\n let last_y = self.y[31] as Field;\n \n [x, last_x, y, last_y, self.npk_m_hash]\n }\n\n // Cannot use the automatic deserialization for the aforementioned reasons\n fn deserialize_content(serialized_note: [Field; ECDSA_PUBLIC_KEY_NOTE_LEN]) -> EcdsaPublicKeyNote {\n let mut x: [u8; 32] = [0; 32];\n let mut y: [u8; 32] = [0; 32];\n\n let part_x = serialized_note[0].to_be_bytes(32);\n for i in 0..31 {\n x[i] = part_x[i + 1];\n }\n x[31] = serialized_note[1].to_be_bytes(32)[31];\n\n let part_y = serialized_note[2].to_be_bytes(32);\n for i in 0..31 {\n y[i] = part_y[i + 1];\n }\n y[31] = serialized_note[3].to_be_bytes(32)[31];\n\n EcdsaPublicKeyNote { x, y, npk_m_hash: serialized_note[4], header: NoteHeader::empty() }\n }\n\n fn compute_nullifier(self, context: &mut PrivateContext, note_hash_for_nullify: Field) -> Field {\n let secret = context.request_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n\n fn compute_nullifier_without_context(self) -> Field {\n let note_hash_for_nullify = compute_note_hash_for_nullify(self);\n let secret = get_nsk_app(self.npk_m_hash);\n poseidon2_hash_with_separator([\n note_hash_for_nullify,\n secret,\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field,\n )\n }\n}\n\nimpl EcdsaPublicKeyNote {\n pub fn new(x: [u8; 32], y: [u8; 32], npk_m_hash: Field) -> Self {\n EcdsaPublicKeyNote { x, y, npk_m_hash, header: NoteHeader::empty() }\n }\n}\n"},"5":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\nstruct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Get an element from the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn get(self, index: u32) -> T {\n assert(index < self.len, \"Attempted to read past end of BoundedVec\");\n self.get_unchecked(index)\n }\n\n /// Get an element from the vector at the given index.\n /// Responds with undefined data for `index` where `self.len < index < self.max_len()`.\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Write an element to the vector at the given index.\n /// Panics if the given index points beyond the end of the vector (`self.len()`).\n pub fn set(&mut self, index: u32, value: T) {\n assert(index < self.len, \"Attempted to write past end of BoundedVec\");\n self.set_unchecked(index, value)\n }\n\n /// Write an element to the vector at the given index.\n /// Does not check whether the passed `index` is a valid index within the vector.\n ///\n /// Silently writes past the end of the vector for `index` where `self.len < index < self.max_len()`\n /// Panics if the given index points beyond the maximum length of the vector (`self.max_len()`).\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n pub fn push(&mut self, elem: T) {\n assert(self.len < MaxLen, \"push out of bounds\");\n\n self.storage[self.len] = elem;\n self.len += 1;\n }\n\n pub fn len(self) -> u32 {\n self.len\n }\n\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n // This is a intermediate method, while we don't have an\n // .extend method\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n pub fn extend_from_array<let Len: u32>(&mut self, array: [T; Len]) {\n let new_len = self.len + array.len();\n assert(new_len <= MaxLen, \"extend_from_array out of bounds\");\n for i in 0..array.len() {\n self.storage[self.len + i] = array[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_slice(&mut self, slice: [T]) {\n let new_len = self.len + slice.len();\n assert(new_len <= MaxLen, \"extend_from_slice out of bounds\");\n for i in 0..slice.len() {\n self.storage[self.len + i] = slice[i];\n }\n self.len = new_len;\n }\n\n pub fn extend_from_bounded_vec<let Len: u32>(&mut self, vec: BoundedVec<T, Len>) {\n let append_len = vec.len();\n let new_len = self.len + append_len;\n assert(new_len <= MaxLen, \"extend_from_bounded_vec out of bounds\");\n\n let mut exceeded_len = false;\n for i in 0..Len {\n exceeded_len |= i == append_len;\n if !exceeded_len {\n self.storage[self.len + i] = vec.get_unchecked(i);\n }\n }\n self.len = new_len;\n }\n\n pub fn from_array<let Len: u32>(array: [T; Len]) -> Self {\n assert(Len <= MaxLen, \"from array out of bounds\");\n let mut vec: BoundedVec<T, MaxLen> = BoundedVec::new();\n vec.extend_from_array(array);\n vec\n }\n\n pub fn pop(&mut self) -> T {\n assert(self.len > 0);\n self.len -= 1;\n\n let elem = self.storage[self.len];\n self.storage[self.len] = crate::mem::zeroed();\n elem\n }\n\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n let mut exceeded_len = false;\n for i in 0..MaxLen {\n exceeded_len |= i == self.len;\n if !exceeded_len {\n ret |= predicate(self.storage[i]);\n }\n }\n ret\n }\n\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> BoundedVec<U, MaxLen> {\n let mut ret = BoundedVec::new();\n ret.len = self.len();\n for i in 0..MaxLen {\n if i < self.len() {\n ret.storage[i] = f(self.get_unchecked(i));\n }\n }\n ret\n }\n}\n\nimpl<T, let MaxLen: u32> Eq for BoundedVec<T, MaxLen> where T: Eq {\n fn eq(self, other: BoundedVec<T, MaxLen>) -> bool {\n // TODO: https://github.com/noir-lang/noir/issues/4837\n //\n // We make the assumption that the user has used the proper interface for working with `BoundedVec`s\n // rather than directly manipulating the internal fields as this can result in an inconsistent internal state.\n \n (self.len == other.len) & (self.storage == other.storage)\n }\n}\n\nimpl<T, let MaxLen: u32, let Len: u32> From<[T; Len]> for BoundedVec<T, MaxLen> {\n fn from(array: [T; Len]) -> BoundedVec<T, MaxLen> {\n BoundedVec::from_array(array)\n }\n}\n\nmod bounded_vec_tests {\n\n mod get {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test(should_fail_with = \"Attempted to read past end of BoundedVec\")]\n fn panics_when_reading_elements_past_end_of_vec() {\n let vec: BoundedVec<Field, 5> = BoundedVec::new();\n\n crate::println(vec.get(0));\n }\n }\n\n mod set {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn set_updates_values_properly() {\n let mut vec = BoundedVec::from_array([0, 0, 0, 0, 0]);\n\n vec.set(0, 42);\n assert_eq(vec.storage, [42, 0, 0, 0, 0]);\n\n vec.set(1, 43);\n assert_eq(vec.storage, [42, 43, 0, 0, 0]);\n\n vec.set(2, 44);\n assert_eq(vec.storage, [42, 43, 44, 0, 0]);\n\n vec.set(1, 10);\n assert_eq(vec.storage, [42, 10, 44, 0, 0]);\n\n vec.set(0, 0);\n assert_eq(vec.storage, [0, 10, 44, 0, 0]);\n }\n\n #[test(should_fail_with = \"Attempted to write past end of BoundedVec\")]\n fn panics_when_writing_elements_past_end_of_vec() {\n let mut vec: BoundedVec<Field, 5> = BoundedVec::new();\n vec.set(0, 42);\n\n // Need to use println to avoid DIE removing the write operation.\n crate::println(vec.get(0));\n }\n }\n\n mod map {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn applies_function_correctly() {\n // docs:start:bounded-vec-map-example\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| value * 2);\n // docs:end:bounded-vec-map-example\n let expected = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn applies_function_that_changes_return_type() {\n let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n let result = vec.map(|value| (value * 2) as Field);\n let expected: BoundedVec<Field, 4> = BoundedVec::from_array([2, 4, 6, 8]);\n\n assert_eq(result, expected);\n }\n\n #[test]\n fn does_not_apply_function_past_len() {\n let vec: BoundedVec<u32, 3> = BoundedVec::from_array([0, 1]);\n let result = vec.map(|value| if value == 0 { 5 } else { value });\n let expected = BoundedVec::from_array([5, 1]);\n\n assert_eq(result, expected);\n assert_eq(result.storage()[2], 0);\n }\n }\n\n mod from_array {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty() {\n let empty_array: [Field; 0] = [];\n let bounded_vec = BoundedVec::from_array([]);\n\n assert_eq(bounded_vec.max_len(), 0);\n assert_eq(bounded_vec.len(), 0);\n assert_eq(bounded_vec.storage(), empty_array);\n }\n\n #[test]\n fn equal_len() {\n let array = [1, 2, 3];\n let bounded_vec = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 3);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage(), array);\n }\n\n #[test]\n fn max_len_greater_then_array_len() {\n let array = [1, 2, 3];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 3);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n assert_eq(bounded_vec.storage()[2], 3);\n }\n\n #[test(should_fail_with=\"from array out of bounds\")]\n fn max_len_lower_then_array_len() {\n let _: BoundedVec<Field, 2> = BoundedVec::from_array([0; 3]);\n }\n }\n\n mod trait_from {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn simple() {\n let array = [1, 2];\n let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from(array);\n\n assert_eq(bounded_vec.max_len(), 10);\n assert_eq(bounded_vec.len(), 2);\n assert_eq(bounded_vec.storage()[0], 1);\n assert_eq(bounded_vec.storage()[1], 2);\n }\n }\n\n mod trait_eq {\n use crate::collections::bounded_vec::BoundedVec;\n\n #[test]\n fn empty_equality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n\n assert_eq(bounded_vec1, bounded_vec2);\n }\n\n #[test]\n fn inequality() {\n let mut bounded_vec1: BoundedVec<Field, 3> = BoundedVec::new();\n let mut bounded_vec2: BoundedVec<Field, 3> = BoundedVec::new();\n bounded_vec1.push(1);\n bounded_vec2.push(2);\n\n assert(bounded_vec1 != bounded_vec2);\n }\n }\n}\n"},"53":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\nstruct Option<T> {\n _is_some: bool,\n _value: T,\n}\n\nimpl<T> Option<T> {\n /// Constructs a None value\n pub fn none() -> Self {\n Self { _is_some: false, _value: crate::mem::zeroed() }\n }\n\n /// Constructs a Some wrapper around the given value\n pub fn some(_value: T) -> Self {\n Self { _is_some: true, _value }\n }\n\n /// True if this Option is None\n pub fn is_none(self) -> bool {\n !self._is_some\n }\n\n /// True if this Option is Some\n pub fn is_some(self) -> bool {\n self._is_some\n }\n\n /// Asserts `self.is_some()` and returns the wrapped value.\n pub fn unwrap(self) -> T {\n assert(self._is_some);\n self._value\n }\n\n /// Returns the inner value without asserting `self.is_some()`\n /// Note that if `self` is `None`, there is no guarantee what value will be returned,\n /// only that it will be of type `T`.\n pub fn unwrap_unchecked(self) -> T {\n self._value\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, returns the given default value.\n pub fn unwrap_or(self, default: T) -> T {\n if self._is_some { self._value } else { default }\n }\n\n /// Returns the wrapped value if `self.is_some()`. Otherwise, calls the given function to return\n /// a default value.\n pub fn unwrap_or_else<Env>(self, default: fn[Env]() -> T) -> T {\n if self._is_some {\n self._value\n } else {\n default()\n }\n }\n\n /// Asserts `self.is_some()` with a provided custom message and returns the contained `Some` value\n fn expect<let N: u32, MessageTypes>(self, message: fmtstr<N, MessageTypes>) -> T {\n assert(self.is_some(), message);\n self._value\n }\n\n /// If self is `Some(x)`, this returns `Some(f(x))`. Otherwise, this returns `None`.\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> Option<U> {\n if self._is_some {\n Option::some(f(self._value))\n } else {\n Option::none()\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns the given default value.\n pub fn map_or<U, Env>(self, default: U, f: fn[Env](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default\n }\n }\n\n /// If self is `Some(x)`, this returns `f(x)`. Otherwise, this returns `default()`.\n pub fn map_or_else<U, Env1, Env2>(self, default: fn[Env1]() -> U, f: fn[Env2](T) -> U) -> U {\n if self._is_some {\n f(self._value)\n } else {\n default()\n }\n }\n\n /// Returns None if self is None. Otherwise, this returns `other`.\n pub fn and(self, other: Self) -> Self {\n if self.is_none() {\n Option::none()\n } else {\n other\n }\n }\n\n /// If self is None, this returns None. Otherwise, this calls the given function\n /// with the Some value contained within self, and returns the result of that call.\n ///\n /// In some languages this function is called `flat_map` or `bind`.\n pub fn and_then<U, Env>(self, f: fn[Env](T) -> Option<U>) -> Option<U> {\n if self._is_some {\n f(self._value)\n } else {\n Option::none()\n }\n }\n\n /// If self is Some, return self. Otherwise, return `other`.\n pub fn or(self, other: Self) -> Self {\n if self._is_some { self } else { other }\n }\n\n /// If self is Some, return self. Otherwise, return `default()`.\n pub fn or_else<U, Env>(self, default: fn[Env]() -> Self) -> Self {\n if self._is_some { self } else { default() }\n }\n\n // If only one of the two Options is Some, return that option.\n // Otherwise, if both options are Some or both are None, None is returned.\n pub fn xor(self, other: Self) -> Self {\n if self._is_some {\n if other._is_some { Option::none() } else { self }\n } else if other._is_some {\n other\n } else {\n Option::none()\n }\n }\n\n /// Returns `Some(x)` if self is `Some(x)` and `predicate(x)` is true.\n /// Otherwise, this returns `None`\n pub fn filter<Env>(self, predicate: fn[Env](T) -> bool) -> Self {\n if self._is_some {\n if predicate(self._value) {\n self\n } else {\n Option::none()\n }\n } else {\n Option::none()\n }\n }\n\n /// Flattens an Option<Option<T>> into a Option<T>.\n /// This returns None if the outer Option is None. Otherwise, this returns the inner Option.\n pub fn flatten(option: Option<Option<T>>) -> Option<T> {\n if option._is_some {\n option._value\n } else {\n Option::none()\n }\n }\n}\n\nimpl<T> Default for Option<T> {\n fn default() -> Self {\n Option::none()\n }\n}\n\nimpl<T> Eq for Option<T> where T: Eq {\n fn eq(self, other: Self) -> bool {\n if self._is_some == other._is_some {\n if self._is_some {\n self._value == other._value\n } else {\n true\n }\n } else {\n false\n }\n }\n}\n\nimpl<T> Hash for Option<T> where T: Hash {\n fn hash<H>(self, state: &mut H) where H: Hasher {\n self._is_some.hash(state);\n if self._is_some {\n self._value.hash(state);\n }\n }\n}\n\n// For this impl we're declaring Option::none < Option::some\nimpl<T> Ord for Option<T> where T: Ord {\n fn cmp(self, other: Self) -> Ordering {\n if self._is_some {\n if other._is_some {\n self._value.cmp(other._value)\n } else {\n Ordering::greater()\n }\n } else {\n if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n }\n}\n"},"67":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth_witness.nr","source":"#[oracle(getAuthWitness)]\nunconstrained fn get_auth_witness_oracle<let N: u32>(_message_hash: Field) -> [Field; N] {}\n\n/**\n * Oracle wrapper to fetch an `auth_witness` for a given `message_hash` from the PXE.\n * \n * @param message_hash The hash of the message for which the `auth_witness` is to be fetched.\n * @return The `auth_witness` for the given `message_hash` as Field array.\n */\nunconstrained pub fn get_auth_witness<let N: u32>(message_hash: Field) -> [Field; N] {\n get_auth_witness_oracle(message_hash)\n}\n"},"68":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/auth.nr","source":"use dep::aztec::protocol_types::{\n abis::function_selector::FunctionSelector, address::AztecAddress,\n constants::{\n GENERATOR_INDEX__AUTHWIT_INNER, GENERATOR_INDEX__AUTHWIT_OUTER, GENERATOR_INDEX__AUTHWIT_NULLIFIER,\n CANONICAL_AUTH_REGISTRY_ADDRESS\n},\n hash::poseidon2_hash_with_separator\n};\nuse dep::aztec::{prelude::Deserialize, context::{PrivateContext, PublicContext, gas::GasOpts}, hash::hash_args_array};\n\n/**\n * Authenticaion witness helper library\n *\n * Authentication Witness is a scheme for authenticating actions on Aztec, so users can allow third-parties \n * (e.g. protocols or other users) to execute an action on their behalf.\n * \n * This library provides helper functions to manage such witnesses.\n * The authentication witness, is some \"witness\" (data) that authenticates a `message_hash`.\n * The simplest example of an authentication witness, is a signature. The signature is the \"evidence\",\n * that the signer has seen the message, agrees with it, and has allowed it.\n * It does not need to be a signature. It could be any kind of \"proof\" that the message is allowed.\n * Another proof could be knowing some kind of secret, or having some kind of \"token\" that allows the message.\n *\n * The `message_hash` is a hash of the following structure:\n * hash(consumer, chain_id, version, inner_hash)\n * - consumer: the address of the contract that is \"consuming\" the message,\n * - chain_id: the chain id of the chain that the message is being consumed on,\n * - version: the version of the chain that the message is being consumed on,\n * - inner_hash: the hash of the \"inner\" message that is being consumed, this is the \"actual\" message or action.\n *\n * While the `inner_hash` could be anything, such as showing you signed a specific message, it will often be \n * a hash of the \"action\" to approve, along with who made the call. As part of this library, we provide a few \n * helper functions to deal with such messages.\n *\n * For example, we provide helper function that is used for checking that the message is an encoding of the current call.\n * This can be used to let some contract \"allow\" another contract to act on its behalf, as long as it can \n * show that it is acting on behalf of the contract.\n *\n * If we take a case of allowing a contract to transfer tokens on behalf of an account, the `inner_hash` can be \n * derived as:\n * inner_hash = hash(caller, \"transfer\", hash(to, amount))\n * \n * Where the `caller` would be the address of the contract that is trying to transfer the tokens, and `to` and `amount`\n * the arguments for the transfer. \n * \n * Note that we have both a `caller` and a `consumer`, the `consumer` will be the contract that is consuming the message,\n * in the case of the transfer, it would be the `Token` contract itself, while the caller, will be the actor that is \n * allowed to transfer the tokens.\n *\n *\n * The authentication mechanism works differently in public and private contexts. In private, we recall that everything\n * is executed on the user's device, so we can use `oracles` to \"ask\" the user (not contract) for information. In public\n * we cannot do this, since it is executed by the sequencer (someone else). Therefore we can instead use a \"registry\"\n * to store the messages that we have approved.\n * \n * A simple example would be a \"token\" that is being \"pulled\" from one account into another. We will first outline \n * how this would look in private, and then in public later. \n *\n * Say that a user `Alice` wants to deposit some tokens into a DeFi protocol (say a DEX). \n * `Alice` would make a `deposit` transaction, that she is executing using her account contract. \n * The account would call the `DeFi` contract to execute `deposit`, which would try to pull funds from the `Token` \n * contract. Since the `DeFi` contract is trying to pull funds from an account that is not its own, it needs to \n * convince the `Token` contract that it is allowed to do so. \n * \n * This is where the authentication witness comes in The `Token` contract computes a `message_hash` from the \n * `transfer` call, and then asks `Alice Account` contract to verify that the `DeFi` contract is allowed to \n * execute that call.\n * \n * `Alice Account` contract can then ask `Alice` if she wants to allow the `DeFi` contract to pull funds from her \n * account. If she does, she will sign the `message_hash` and return the signature to the `Alice Account` which\n * will validate it and return success to the `Token` contract which will then allow the `DeFi` contract to pull\n * funds from `Alice`.\n * \n * To ensure that the same \"approval\" cannot be used multiple times, we also compute a `nullifier` for the\n * authentication witness, and emit it from the `Token` contract (consumer).\n * \n * Note that we can do this flow as we are in private were we can do oracle calls out from contracts. \n * \n *\n * Person Contract Contract Contract\n * Alice Alice Account Token DeFi\n * | | | |\n * | Defi.deposit(Token, 1000) | |\n * |----------------->| | |\n * | | deposit(Token, 1000) |\n * | |---------------------------------------->|\n * | | | |\n * | | | transfer(Alice, Defi, 1000)\n * | | |<---------------------|\n * | | | |\n * | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | |<-----------------| |\n * | | | |\n * | Please give me AuthWit for DeFi | |\n * | calling transfer(Alice, Defi, 1000) | |\n * |<-----------------| | |\n * | | | |\n * | | | |\n * | AuthWit for transfer(Alice, Defi, 1000) |\n * |----------------->| | |\n * | | AuthWit validity | |\n * | |----------------->| |\n * | | | |\n * | | throw if invalid AuthWit |\n * | | | |\n * | | emit AuthWit nullifier |\n * | | | |\n * | | transfer(Alice, Defi, 1000) |\n * | | | |\n * | | | |\n * | | | success |\n * | | |--------------------->|\n * | | | |\n * | | | |\n * | | | deposit(Token, 1000)\n * | | | |\n * | | | |\n *\n * \n * If we instead were in public, we cannot do the same flow. Instead we would use an authentication registry to store \n * the messages that we have approved. \n * \n * To approve a message, `Alice Account` can make a `set_authorized` call to the registry, to set a `message_hash`\n * as authorized. This is essentially a mapping from `message_hash` to `true` for `Alice Contract`. Every account\n * has its own map in the registry, so `Alice` cannot approve a message for `Bob`.\n *\n * The `Token` contract can then try to \"spend\" the approval by calling `consume` on the registry. If the message\n * was approved, the value is updated to `false`, and we return the success flag. For more information on the\n * registry, see `main.nr` in `auth_registry_contract`.\n *\n * Person Contract Contract Contract Contract\n * Alice Alice Account Registry Token DeFi\n * | | | | |\n * | Registry.set_authorized(..., true) | | |\n * |----------------->| | | |\n * | | set_authorized(..., true) | |\n * | |------------------->| | |\n * | | | | |\n * | | set authorized to true | |\n * | | | | |\n * | | | | |\n * | Defi.deposit(Token, 1000) | | |\n * |----------------->| | | |\n * | | deposit(Token, 1000) | |\n * | |-------------------------------------------------------------->|\n * | | | | |\n * | | | transfer(Alice, Defi, 1000) |\n * | | | |<---------------------|\n * | | | | |\n * | | | Check if Defi may call transfer(Alice, Defi, 1000)\n * | | |<------------------| |\n * | | | | |\n * | | throw if invalid AuthWit | |\n * | | | | |\n * | | | | |\n * | | set authorized to false | |\n * | | | | |\n * | | | | |\n * | | | AuthWit validity | |\n * | | |------------------>| |\n * | | | | |\n * | | | | transfer(Alice, Defi, 1000)\n * | | | |<-------------------->|\n * | | | | |\n * | | | | success |\n * | | | |--------------------->|\n * | | | | |\n * | | | | deposit(Token, 1000)\n * | | | | |\n *\n *\n * --- FAQ ---\n * Q: Why are we using a success flag of `keccak256(\"IS_VALID()\")` instead of just returning a boolean?\n * A: We want to make sure that we don't accidentally return `true` if there is a collision in the function selector.\n * By returning a hash of `IS_VALID()`, it becomes very unlikely that there is both a colission and we return \n * a success flag.\n * \n * Q: Why are we using static calls?\n * A: We are using static calls to ensure that the account contract cannot re-enter. If it was a normal call, it\n * could make a new call and do a re-entry attack. Using a static ensures that it cannot update any state.\n *\n * Q: Would it not be cheaper to use a nullifier instead of updating state in public?\n * A: At a quick glance, a public state update + nullifier is 96 bytes, but two state updates are 128, so it would be \n * cheaper to use a nullifier, if this is the way it would always be done. However, if both the approval and the \n * consumption is done in the same transaction, then we will be able to squash the updates (only final tx state diff is posted to DA), and now it is cheaper.\n * \n * Q: Why is the chain id and the version part of the message hash?\n * A: The chain id and the version is part of the message hash to ensure that the message is only valid on a specific\n * chain to avoid a case where the same message could be used across multiple chains. \n */\n\nglobal IS_VALID_SELECTOR = 0xabf64ad4; // 4 first bytes of keccak256(\"IS_VALID()\")\n\n/** \n * Assert that `on_behalf_of` have authorized the current call with a valid authentication witness\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit\npub fn assert_current_call_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash([context.msg_sender().to_field(), context.selector().to_field(), context.args_hash]);\n assert_inner_hash_valid_authwit(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit\n\n/** \n * Assert that a specific `inner_hash` is valid for the `on_behalf_of` address\n * \n * Used as an internal function for `assert_current_call_valid_authwit` and can be used as a standalone function when\n * the `inner_hash` is from a different source, e.g., say a block of text etc.\n * \n * @param on_behalf_of The address that have authorized the current call\n * @param inner_hash The hash of the message to authorize \n */\npub fn assert_inner_hash_valid_authwit(context: &mut PrivateContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n // We perform a static call here and not a standard one to ensure that the account contract cannot re-enter.\n let result: Field = context.static_call_private_function(\n on_behalf_of,\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\"),\n [inner_hash]\n ).unpack_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n // Compute the nullifier, similar computation to the outer hash, but without the chain_id and version.\n // Those should already be handled in the verification, so we just need something to nullify, that allow same inner_hash for multiple actors.\n let nullifier = compute_authwit_nullifier(on_behalf_of, inner_hash);\n context.push_nullifier(nullifier);\n}\n\n/** \n * Assert that `on_behalf_of` have authorized the current call in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n * \n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the current call\n */\n// docs:start:assert_current_call_valid_authwit_public\npub fn assert_current_call_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress) {\n let inner_hash = compute_inner_authwit_hash(\n [(*context).msg_sender().to_field(), (*context).selector().to_field(), (*context).get_args_hash()]\n );\n assert_inner_hash_valid_authwit_public(context, on_behalf_of, inner_hash);\n}\n// docs:end:assert_current_call_valid_authwit_public\n\n/** \n * Assert that `on_behalf_of` have authorized a speicifc `inner_hash` in the authentication registry\n * \n * Computing the `inner_hash` using the `msg_sender`, `selector` and `args_hash` and then making a call out to the \n * `on_behalf_of` contract to verify that the `inner_hash` is valid.\n *\n * Note that the authentication registry will take the `msg_sender` into account as the consumer, so this will only\n * work if the `msg_sender` is the same as the `consumer` when the `message_hash` was inserted into the registry.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n */\npub fn assert_inner_hash_valid_authwit_public(context: &mut PublicContext, on_behalf_of: AztecAddress, inner_hash: Field) {\n let result: Field = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"consume((Field),Field)\"),\n [on_behalf_of.to_field(), inner_hash].as_slice(),\n GasOpts::default()\n ).deserialize_into();\n assert(result == IS_VALID_SELECTOR, \"Message not authorized by account\");\n}\n\n/**\n * Compute the `message_hash` from a function call to be used by an authentication witness \n * \n * Useful for when you need a non-account contract to approve during execution. For example if you need a contract\n * to make a call to nested contract, e.g., contract A wants to exit token T to L1 using bridge B, so it needs to allow\n * B to transfer T on its behalf.\n * \n * @param caller The address of the contract that is calling the function, in the example above, this would be B\n * @param consumer The address of the contract that is consuming the message, in the example above, this would be T\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param selector The function selector of the function that is being called\n * @param args The arguments of the function that is being called\n */\n// docs:start:compute_authwit_message_hash_from_call\npub fn compute_authwit_message_hash_from_call<let N: u32>(\n caller: AztecAddress,\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n selector: FunctionSelector,\n args: [Field; N]\n) -> Field {\n let args_hash = hash_args_array(args);\n let inner_hash = compute_inner_authwit_hash([caller.to_field(), selector.to_field(), args_hash]);\n compute_authwit_message_hash(consumer, chain_id, version, inner_hash)\n}\n// docs:end:compute_authwit_message_hash_from_call\n\n/**\n * Computes the `inner_hash` of the authentication witness\n * \n * This is used internally, but also useful in cases where you want to compute the `inner_hash` for a specific message\n * that is not necessarily a call, but just some \"bytes\" or text.\n * \n * @param args The arguments to hash\n */\npub fn compute_inner_authwit_hash<let N: u32>(args: [Field; N]) -> Field {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__AUTHWIT_INNER)\n}\n\n/** \n * Computs the `authwit_nullifier` for a specific `on_behalf_of` and `inner_hash`\n * \n * Using the `on_behalf_of` and the `inner_hash` to ensure that the nullifier is siloed for a specific `on_behalf_of`.\n * \n * @param on_behalf_of The address that have authorized the `inner_hash`\n * @param inner_hash The hash of the message to authorize\n */\npub fn compute_authwit_nullifier(on_behalf_of: AztecAddress, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [on_behalf_of.to_field(), inner_hash],\n GENERATOR_INDEX__AUTHWIT_NULLIFIER\n )\n}\n\n/**\n * Computes the `message_hash` for the authentication witness\n * \n * @param consumer The address of the contract that is consuming the message\n * @param chain_id The chain id of the chain that the message is being consumed on\n * @param version The version of the chain that the message is being consumed on\n * @param inner_hash The hash of the \"inner\" message that is being consumed\n */\npub fn compute_authwit_message_hash(consumer: AztecAddress, chain_id: Field, version: Field, inner_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [\n consumer.to_field(),\n chain_id,\n version,\n inner_hash\n ],\n GENERATOR_INDEX__AUTHWIT_OUTER\n )\n}\n\n/**\n * Helper function to set the authorization status of a message hash\n * \n * Wraps a public call to the authentication registry to set the authorization status of a `message_hash`\n * \n * @param message_hash The hash of the message to authorize\n * @param authorize True if the message should be authorized, false if it should be revoked\n */\npub fn set_authorized(context: &mut PublicContext, message_hash: Field, authorize: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\"),\n [message_hash, authorize as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n\n/**\n * Helper function to reject all authwits\n * \n * Wraps a public call to the authentication registry to set the `reject_all` flag\n *\n * @param reject True if all authwits should be rejected, false otherwise \n */\npub fn set_reject_all(context: &mut PublicContext, reject: bool) {\n context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n FunctionSelector::from_signature(\"set_reject_all(bool)\"),\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"69":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/account.nr","source":"use dep::aztec::{\n context::PrivateContext,\n protocol_types::constants::{GENERATOR_INDEX__COMBINED_PAYLOAD, GENERATOR_INDEX__TX_NULLIFIER},\n hash::poseidon2_hash_with_separator\n};\n\nuse crate::entrypoint::{app::AppPayload, fee::FeePayload};\nuse crate::auth::{IS_VALID_SELECTOR, compute_authwit_message_hash};\n\nstruct AccountActions<Context> {\n context: Context,\n is_valid_impl: fn(&mut PrivateContext, Field) -> bool,\n}\n\nimpl<Context> AccountActions<Context> {\n pub fn init(context: Context, is_valid_impl: fn(&mut PrivateContext, Field) -> bool) -> Self {\n AccountActions { context, is_valid_impl }\n }\n}\n\n/**\n * An implementation of the Account Action struct for the private context.\n *\n * Implements logic to verify authorization and execute payloads.\n */\nimpl AccountActions<&mut PrivateContext> {\n\n /**\n * Verifies that the `app_hash` and `fee_hash` are authorized and then executes them.\n *\n * Executes the `fee_payload` and `app_payload` in sequence.\n * Will execute the `fee_payload` as part of the setup, and then enter the app phase.\n *\n * @param app_payload The payload that contains the calls to be executed in the app phase.\n * @param fee_payload The payload that contains the calls to be executed in the setup phase.\n */\n // docs:start:entrypoint\n pub fn entrypoint(self, app_payload: AppPayload, fee_payload: FeePayload, cancellable: bool) {\n let valid_fn = self.is_valid_impl;\n\n let combined_payload_hash = poseidon2_hash_with_separator(\n [app_payload.hash(), fee_payload.hash()],\n GENERATOR_INDEX__COMBINED_PAYLOAD\n );\n assert(valid_fn(self.context, combined_payload_hash));\n\n fee_payload.execute_calls(self.context);\n self.context.end_setup();\n app_payload.execute_calls(self.context);\n if cancellable {\n let tx_nullifier = poseidon2_hash_with_separator([app_payload.nonce], GENERATOR_INDEX__TX_NULLIFIER);\n self.context.push_nullifier(tx_nullifier);\n }\n }\n // docs:end:entrypoint\n\n /**\n * Verifies that the `msg_sender` is authorized to consume `inner_hash` by the account.\n *\n * Computes the `message_hash` using the `msg_sender`, `chain_id`, `version` and `inner_hash`.\n * Then executes the `is_valid_impl` function to verify that the message is authorized.\n *\n * Will revert if the message is not authorized.\n *\n * @param inner_hash The hash of the message that the `msg_sender` is trying to consume.\n */\n // docs:start:verify_private_authwit\n pub fn verify_private_authwit(self, inner_hash: Field) -> Field {\n // The `inner_hash` is \"siloed\" with the `msg_sender` to ensure that only it can\n // consume the message.\n // This ensures that contracts cannot consume messages that are not intended for them.\n let message_hash = compute_authwit_message_hash(\n self.context.msg_sender(),\n self.context.chain_id(),\n self.context.version(),\n inner_hash\n );\n let valid_fn = self.is_valid_impl;\n assert(valid_fn(self.context, message_hash) == true, \"Message not authorized by account\");\n IS_VALID_SELECTOR\n }\n // docs:end:verify_private_authwit\n}\n"},"70":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/app.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__SIGNATURE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\n\nuse crate::entrypoint::function_call::{FunctionCall, FUNCTION_CALL_SIZE_IN_BYTES};\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u64 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u64 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u64 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\nstruct AppPayload {\n function_calls: [FunctionCall; ACCOUNT_MAX_CALLS],\n nonce: Field,\n}\n// docs:end:app-payload-struct\n\nimpl Serialize<APP_PAYLOAD_SIZE> for AppPayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; APP_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, APP_PAYLOAD_SIZE> = BoundedVec::new();\n for call in self.function_calls {\n fields.extend_from_array(call.serialize());\n }\n fields.push(self.nonce);\n fields.storage\n }\n}\n\nimpl Hash for AppPayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__SIGNATURE_PAYLOAD\n )\n }\n}\n\nimpl AppPayload {\n // Serializes the payload as an array of bytes. Useful for hashing with sha256.\n fn to_be_bytes(self) -> [u8; APP_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, APP_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..ACCOUNT_MAX_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n\n bytes.storage\n }\n\n // Executes all private and public calls\n // docs:start:entrypoint-execute-calls\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n }\n // docs:end:entrypoint-execute-calls\n}\n"},"72":{"path":"/usr/src/noir-projects/aztec-nr/authwit/src/entrypoint/fee.nr","source":"use dep::aztec::prelude::PrivateContext;\nuse dep::aztec::protocol_types::{\n constants::GENERATOR_INDEX__FEE_PAYLOAD, hash::poseidon2_hash_with_separator,\n traits::{Hash, Serialize}\n};\nuse crate::entrypoint::function_call::FunctionCall;\n\n// 2 * 5 (FUNCTION_CALL_SIZE) + 2\nglobal FEE_PAYLOAD_SIZE: Field = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: Field = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS = 2;\n\n// docs:start:fee-payload-struct\nstruct FeePayload {\n function_calls: [FunctionCall; MAX_FEE_FUNCTION_CALLS],\n nonce: Field,\n is_fee_payer: bool,\n}\n// docs:end:fee-payload-struct\n\nimpl Serialize<FEE_PAYLOAD_SIZE> for FeePayload {\n // Serializes the entrypoint struct\n fn serialize(self) -> [Field; FEE_PAYLOAD_SIZE] {\n let mut fields: BoundedVec<Field, FEE_PAYLOAD_SIZE> = BoundedVec::new();\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n fields.extend_from_array(self.function_calls[i].serialize());\n }\n fields.push(self.nonce);\n fields.push(self.is_fee_payer as Field);\n fields.storage\n }\n}\n\nimpl Hash for FeePayload {\n fn hash(self) -> Field {\n poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__FEE_PAYLOAD\n )\n }\n}\n\nimpl FeePayload {\n fn to_be_bytes(self) -> [u8; FEE_PAYLOAD_SIZE_IN_BYTES] {\n let mut bytes: BoundedVec<u8, FEE_PAYLOAD_SIZE_IN_BYTES> = BoundedVec::new();\n\n for i in 0..MAX_FEE_FUNCTION_CALLS {\n bytes.extend_from_array(self.function_calls[i].to_be_bytes());\n }\n bytes.extend_from_slice(self.nonce.to_be_bytes(32));\n bytes.push(self.is_fee_payer as u8);\n\n bytes.storage\n }\n\n fn execute_calls(self, context: &mut PrivateContext) {\n for call in self.function_calls {\n if !call.target_address.is_zero() {\n if call.is_public {\n context.call_public_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n } else {\n let _result = context.call_private_function_with_packed_args(\n call.target_address,\n call.function_selector,\n call.args_hash,\n call.is_static,\n false\n );\n }\n }\n }\n if self.is_fee_payer {\n context.set_as_fee_payer();\n }\n }\n}\n"},"78":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/point_to_symmetric_key.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__SYMMETRIC_KEY, scalar::Scalar, point::Point, utils::arr_copy_slice};\nuse crate::utils::point::point_to_bytes;\nuse std::{hash::sha256, embedded_curve_ops::multi_scalar_mul};\n\n// TODO(#5726): This function is called deriveAESSecret in TS. I don't like point_to_symmetric_key name much since\n// point is not the only input of the function. Unify naming with TS once we have a better name.\npub fn point_to_symmetric_key(secret: Scalar, point: Point) -> [u8; 32] {\n let shared_secret: Point = multi_scalar_mul([point], [secret]);\n let shared_secret = point_to_bytes(shared_secret);\n let mut shared_secret_bytes_with_separator = [0 as u8; 33];\n shared_secret_bytes_with_separator = arr_copy_slice(shared_secret, shared_secret_bytes_with_separator, 0);\n shared_secret_bytes_with_separator[32] = GENERATOR_INDEX__SYMMETRIC_KEY;\n sha256(shared_secret_bytes_with_separator)\n}\n\n#[test]\nfn test_point_to_symmetric_key_matches_noir() {\n // Value taken from \"derive shared secret\" test in encrypt_buffer.test.ts\n let secret = Scalar {\n lo: 0x00000000000000000000000000000000649e7ca01d9de27b21624098b897babd,\n hi: 0x0000000000000000000000000000000023b3127c127b1f29a7adff5cccf8fb06\n };\n let point = Point {\n x: 0x2688431c705a5ff3e6c6f2573c9e3ba1c1026d2251d0dbbf2d810aa53fd1d186,\n y: 0x1e96887b117afca01c00468264f4f80b5bb16d94c1808a448595f115556e5c8e,\n is_infinite: false\n };\n\n let key = point_to_symmetric_key(secret, point);\n\n // The following value was generated by `encrypt_buffer.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let key_from_typescript = [\n 251, 232, 177, 34, 2, 174, 35, 92, 165, 118, 168, 3, 153, 140, 46, 210, 203, 154, 184, 158, 236, 33, 95, 77, 93, 120, 72, 88, 190, 209, 64, 159\n ];\n assert_eq(key, key_from_typescript);\n}\n"},"79":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/stored_keys.nr","source":"use crate::keys::public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH};\nuse dep::protocol_types::traits::{Serialize, Deserialize};\n\n// This struct represents how public keys are stored in the key registry. We store not just the keys themselves but also\n// their hash, so that when reading in private we can perform a historical read for the hash and then show that it\n// corresponds to a preimage obtained from an unconstrained hint. We do store the keys keys regardless as they might be\n// needed during public execution, and since we need to broadcast and produce hints in some standardized way.\n// While it might seem odd to create a struct for what is effectively some data and a pure function called on it, state\n// variables rely on serializable structs in order to persist data to storage, so we must use this abstraction.\nstruct StoredKeys {\n public_keys: PublicKeys,\n hash: Field,\n}\n\nimpl StoredKeys {\n // Instances of StoredKeys are expected to only be created by calling this function so that we guarantee that the\n // hash field does indeed correspond to the hash of the keys. Ideally we'd forbid direct access to the struct, but \n // Noir doesn't yet support private members.\n fn new(public_keys: PublicKeys) -> Self {\n Self { public_keys, hash: public_keys.hash().inner }\n }\n}\n\n// Our serialization is the concatenation of the public keys serialization plush the hash, so we need one extra field.\nglobal STORED_KEYS_LENGTH: u32 = PUBLIC_KEYS_LENGTH + 1;\n\nimpl Serialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn serialize(self) -> [Field; STORED_KEYS_LENGTH] {\n // The code below is equivalent to:\n // [ ...self.public_keys.serialize(), self.hash ]\n\n let mut array = [0; STORED_KEYS_LENGTH];\n\n let serialized_keys = self.public_keys.serialize();\n for i in 0..serialized_keys.len() {\n array[i] = serialized_keys[i];\n }\n\n array[PUBLIC_KEYS_LENGTH] = self.hash;\n\n array\n }\n}\n\nimpl Deserialize<STORED_KEYS_LENGTH> for StoredKeys {\n fn deserialize(array: [Field; STORED_KEYS_LENGTH]) -> Self {\n // The code below is equivalent to:\n // Self { public_keys: PublicKeys::deserialize(array[0 : PUBLIC_KEYS_LENGTH]), hash: array[PUBLIC_KEYS_LENGTH] }\n\n let mut serialized_keys = [0; PUBLIC_KEYS_LENGTH];\n for i in 0..serialized_keys.len() {\n serialized_keys[i] = array[i];\n }\n\n let hash = array[PUBLIC_KEYS_LENGTH];\n\n Self { public_keys: PublicKeys::deserialize(serialized_keys), hash }\n }\n}\n"},"80":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/public_keys.nr","source":"use dep::protocol_types::{\n address::PublicKeysHash, constants::GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n hash::poseidon2_hash_with_separator, point::{Point, POINT_LENGTH},\n traits::{Deserialize, Serialize, Empty, is_empty, Hash}\n};\nuse crate::keys::constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\nstruct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\ntrait ToPoint {\n fn to_point(self) -> Point;\n}\n\nstruct NpkM {\n inner: Point\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nstruct IvpkM {\n inner: Point\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct OvpkM {\n inner: Point\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nstruct TpkM {\n inner: Point\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Empty for PublicKeys {\n fn empty() -> Self {\n PublicKeys {\n npk_m : NpkM { inner: Point::empty() },\n ivpk_m : IvpkM { inner: Point::empty() },\n ovpk_m : OvpkM { inner: Point::empty() },\n tpk_m : TpkM { inner: Point::empty() }\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n ( self.npk_m.inner == other.npk_m.inner ) &\n ( self.ivpk_m.inner == other.ivpk_m.inner ) &\n ( self.ovpk_m.inner == other.ovpk_m.inner ) &\n ( self.tpk_m.inner == other.tpk_m.inner )\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(\n if is_empty(self) {\n 0\n } else {\n poseidon2_hash_with_separator(self.serialize(), GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field)\n }\n )\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM { inner: Point { x:serialized[0], y:serialized[1], is_infinite: serialized[2] as bool } },\n ivpk_m: IvpkM { inner: Point { x:serialized[3], y: serialized[4], is_infinite: serialized[5] as bool } },\n ovpk_m: OvpkM { inner: Point { x:serialized[6], y: serialized[7], is_infinite: serialized[8] as bool } },\n tpk_m: TpkM { inner: Point { x:serialized[9], y: serialized[10], is_infinite: serialized[11] as bool } }\n }\n }\n}\n\n#[test]\nfn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash = 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nfn compute_empty_hash() {\n let keys = PublicKeys::empty();\n\n let actual = keys.hash();\n let test_data_empty_hash = 0x0000000000000000000000000000000000000000000000000000000000000000;\n\n assert(actual.to_field() == test_data_empty_hash);\n}\n\n#[test]\nfn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } }\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"},"82":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::{\n header::Header, abis::validation_requests::KeyValidationRequest, address::AztecAddress,\n constants::CANONICAL_KEY_REGISTRY_ADDRESS, point::Point, storage::map::derive_storage_slot_in_map,\n traits::is_empty\n};\nuse crate::{\n context::{PrivateContext, UnconstrainedContext},\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{\n public_keys::{PublicKeys, PUBLIC_KEYS_LENGTH}, stored_keys::StoredKeys,\n constants::{NULLIFIER_INDEX, INCOMING_INDEX, OUTGOING_INDEX, TAGGING_INDEX}\n},\n state_vars::{\n shared_mutable::shared_mutable_private_getter::SharedMutablePrivateGetter,\n public_mutable::PublicMutable, map::Map\n}\n};\n\nmod test;\n\n// This is the number of blocks that must pass after a key rotation event until the old keys are fully phased out and\n// become invalid.\nglobal KEY_REGISTRY_UPDATE_BLOCKS = 5;\n\nglobal KEY_REGISTRY_STORAGE_SLOT = 1;\n\n// A helper function since requesting nsk_app is very common\n// TODO(#6543)\npub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// Returns all current public keys for a given account, applying proper constraints to the context. We read all\n// keys at once since the constraints for reading them all are actually fewer than if we read them one at a time - any\n// read keys that are not required by the caller can simply be discarded.\npub fn get_current_public_keys(context: &mut PrivateContext, account: AztecAddress) -> PublicKeys {\n // We're going to perform historical reads from public storage, and so need to constrain the caller so that they\n // cannot use very old blocks when constructing proofs, and hence e.g. read very old keys. We are lax and allow\n // _any_ recent block number to be used, regardless of whether there may have been a recent key rotation. This means\n // that multiple sets of keys are valid for a while immediately after rotation, until the old keys become phased\n // out. We *must* be lax to prevent denial of service and transaction fingerprinting attacks by accounts that rotate\n // their keys frequently.\n // Note that we constrain the max block number even if the registry ends up being empty: this ensures that proof of\n // an empty registry is also fresh.\n let current_header = context.get_header();\n context.set_tx_max_block_number(current_header.global_variables.block_number as u32 + KEY_REGISTRY_UPDATE_BLOCKS);\n\n get_historical_public_keys(current_header, account)\n}\n\n// Returns historical public keys for a given account at some block determined by a block header. We read all keys at\n// once since the constraints for reading them all are actually fewer than if we read them one at a time - any read keys\n// that are not required by the caller can simply be discarded.\n// WARNING: if called with a historical header created from a fixed block this function will explicitly ignore key\n// rotation! This means that callers of this may force a user to use old keys, potentially leaking privacy (e.g. if the\n// old keys were leaked). Only call this function with a header from a fixed block if you understand the implications of\n// breaking key rotation very well.\npub fn get_historical_public_keys(historical_header: Header, account: AztecAddress) -> PublicKeys {\n // TODO: improve this so that we always hint the correct set of keys (either registry or canonical) and hash them\n // once instead of having two different hints and twice as many constraints due to the double hashing.\n\n // The key registry is the primary source of information for keys, as that's where accounts store their new keys\n // when they perform rotation. The key registry conveniently stores a hash of each user's keys, so we can read that\n // single field and then prove that we know its preimage (i.e. the current set of keys).\n let key_registry_hash = key_registry_hash_public_historical_read(historical_header, account);\n if key_registry_hash != 0 {\n let hinted_registry_public_keys = key_registry_get_stored_keys_hint(\n account,\n historical_header.global_variables.block_number as u32\n );\n assert_eq(hinted_registry_public_keys.hash().to_field(), key_registry_hash);\n\n hinted_registry_public_keys\n } else {\n // If nothing was written to the registry, we may still be able to produce the correct keys if we happen to know\n // the canonical set (i.e. the ones that are part of the account's preimage).\n let (hinted_canonical_public_keys, partial_address) = get_public_keys_and_partial_address(account);\n assert_eq(\n account, AztecAddress::compute(hinted_canonical_public_keys.hash(), partial_address), \"Invalid public keys hint for address\"\n );\n\n hinted_canonical_public_keys\n }\n}\n\nfn key_registry_hash_public_historical_read(historical_header: Header, account: AztecAddress) -> Field {\n // The keys are stored in a Map that is keyed with the address of each account, so we first derive the corresponding\n // slot for this account.\n let keys_storage_slot = derive_storage_slot_in_map(KEY_REGISTRY_STORAGE_SLOT, account);\n\n // The keys are stored as [ ...serialized_keys, hash ], and since arrays get allocated sequential storage slots\n // (prior to siloing!), we simply add the length to the base slot to get the last element.\n let hash_storage_slot = keys_storage_slot + PUBLIC_KEYS_LENGTH as Field;\n\n historical_header.public_storage_historical_read(hash_storage_slot, CANONICAL_KEY_REGISTRY_ADDRESS)\n}\n\nunconstrained fn key_registry_get_stored_keys_hint(account: AztecAddress, block_number: u32) -> PublicKeys {\n // This is equivalent to the key registry contract having an unconstrained getter that we call from an oracle, but\n // PXE does not yet support that functionality so we do this manually instad. Note that this would be a *historical*\n // call!\n\n // TODO (#7524): call the unconstrained KeyRegistry.get_current_keys() function instead\n\n let context = UnconstrainedContext::at_historical(CANONICAL_KEY_REGISTRY_ADDRESS, block_number);\n let keys_storage = Map::new(\n context,\n KEY_REGISTRY_STORAGE_SLOT,\n |context, slot| { PublicMutable::new(context, slot) }\n );\n\n let stored_keys: StoredKeys = keys_storage.at(account).read();\n stored_keys.public_keys\n}\n"},"96":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/history/public_storage.nr","source":"use dep::protocol_types::{\n constants::GENERATOR_INDEX__PUBLIC_LEAF_INDEX, hash::poseidon2_hash_with_separator,\n address::AztecAddress, header::Header, utils::field::full_field_less_than\n};\nuse dep::protocol_types::merkle_tree::root::root_from_sibling_path;\n\nuse crate::{context::PrivateContext, oracle::get_public_data_witness::get_public_data_witness};\n\ntrait PublicStorageHistoricalRead {\n fn public_storage_historical_read(header: Header, storage_slot: Field, contract_address: AztecAddress) -> Field;\n}\n\nimpl PublicStorageHistoricalRead for Header {\n fn public_storage_historical_read(self, storage_slot: Field, contract_address: AztecAddress) -> Field {\n // 1) Compute the leaf slot by siloing the storage slot with the contract address\n let public_data_tree_index = poseidon2_hash_with_separator(\n [contract_address.to_field(), storage_slot],\n GENERATOR_INDEX__PUBLIC_LEAF_INDEX\n );\n\n // 2) Get the membership witness of the slot\n let witness = get_public_data_witness(\n self.global_variables.block_number as u32,\n public_data_tree_index\n );\n\n // 3) Extract the value from the witness leaf and check that the storage slot is correct\n let preimage = witness.leaf_preimage;\n\n // Here we have two cases. Code based on same checks in `validate_public_data_reads` in `base_rollup_inputs`\n // 1. The value is the same as the one in the witness\n // 2. The value was never initialized and is zero\n let is_less_than_slot = full_field_less_than(preimage.slot, public_data_tree_index);\n let is_next_greater_than = full_field_less_than(public_data_tree_index, preimage.next_slot);\n let is_max = ((preimage.next_index == 0) & (preimage.next_slot == 0));\n let is_in_range = is_less_than_slot & (is_next_greater_than | is_max);\n\n let value = if is_in_range {\n 0\n } else {\n assert_eq(preimage.slot, public_data_tree_index, \"Public data tree index doesn't match witness\");\n preimage.value\n };\n\n // 4) Prove that the leaf exists in the public data tree. Note that `hash` returns not just the hash of the value\n // but also the metadata (slot, next index and next slot).\n assert(\n self.state.partial.public_data_tree.root\n == root_from_sibling_path(preimage.hash(), witness.index, witness.path), \"Proving public value inclusion failed\"\n );\n\n value\n }\n}\n"}}}