@aztec/accounts 0.55.1 → 0.57.0

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.34.0+e0185e75e65df08b5334856f8bf63fa3aed7049a","name":"EcdsaRAccount","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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684i0s7WurOJtHO07hwi7VytO5dIO0/rziPSzte684m0C7TuAiLtQq27kEi7SOsuItLWad06Iu1irbuYSLtE6y4h0i7VukuJtMu07jIibb3WrSfSLte6y4m0K7TuCiLtSq27kki7SuuuItKu1rqribRrtO4aIu1arbuWSLtO664j0q7XuuuJtBu07gYibYPWbSDSbtS6G4m0m7TuJiLtZq27mUi7RetuIdJu1bpbibTbtO42Iu12rbudSLtD6+4g0u7UujuJtLu07i4i7W6tu5tIu0fr7iHS7tW6e4m0+7TuPiLtfq27n0jbqHUbibQHtO4BIu1BrXuQSNukdZuItM1at5lIe0jrHiLSHta6h4m0R7TuESLtUa17lEh7TOseI9K2aN0WIu1xrXucSHtC654g0p7UuieJtKe07iki7Wmte5pIe0brniHSntW6Z4m057TuOSLtea17nkh7QeteINK2at1WIu1FrXuRSHtJ614i0l7WupeJtFe07hUi7VWte5VIe03rXiPStmndNiLtda17nUh7Q+veINLe1Lo3ibTtWredSHtL694i0t7WureJtHe07h0i7V2te5dIe0/r3iPS3te694m0D7TuAyLtQ637kEj7SOs+ItI+1rqPibRPtO4TIu1TrfuUSPtM6z4j0j7Xus+JtC+07gsi7Uut+5JI+0rrviLSvta6r4m0b7TuGyLtW637lkj7Tuu+I9K+17rvibQftO4HIu1HrfuRSPtJ634i0n7Wup+JtF+07hci7Vet+5VI+03rfiPSfte634m0P7TuDyJth9btINJ2at1OIu1PrfuTSPtL6/4i0v7Wur+JtL2ebRmVVsnREWlpWpdGpKVrXTqRlqF1GURaptZlEmlZWpdFpGVrXTaRlqN1OURaZa2rTKRV0boqRFpVratKpOVqXS6RVk3rqhFp1bWuOpFWQ+tqEGk1ta4mkVZL62oRabW1rjaRVkfr6hBpdbWuLpFWT+vqEWn7ad1+RFp9ratPpDXQugZE2v5atz+R1lDrGhJpjbSuEZF2gNYdQKQ11rrGRNqBWncgkXaQ1h1EpOVpXR6R1kTrmhBpTbWuKZF2sNYdTKQ107pmRFpzrWtOpB2idYcQaS20rgWRdqjWHUqkHaZ1hxFph2vd4URaS61rSaS10rpWRFprrWtNpLXRujZEWluta0ukWVpnEWnO5pki0rxa5yXSfFrnI9L8Wucn0vK1Lp9IK9C6AiItoHUBIi2odUEirVDrCom0I7TuCCKtnda1I9Laa117Iq2D1nUg0jpqXUcirZPWdSLSOmtdZyKti9Z1IdK6al1XIq2b1nUj0rprXXcirYfW9SDSempdTyKtl9b1ItJ6a11vIq2P1vUh0vpqXV8irZ/W9SPS+mtdfyJtgNYNINIGat1AIm2Q1g0i0gZr3WAibYjWDSHShmrdUCJtmNYNI9KGa91wIm2E1o0g0kZq3UgibZTWjSLSRmvdaCJtjNaNIdLGat1YIm2c1o0j0sZr3XgibYLWTSDSJmrdRCJtktZNItIma91kIi2kdSEirUjrioi0Yq0rJtLCWhcm0kq0roRIi2hdhEibonVTiLSpWjeVSJumddOItOlaN51Im6F1M4i0mVo3k0ibpXWziLTZWjebSJujdXOItLlaN5dIm6d184i0+Vo3n0hboHULiLSFWreQSFukdYuItMVat5hIW6J1S4i0I7XuSCJtqdYtJdKO0rqjiLSjte5oIu0YrTuGSFumdcuItGO17lgibbnWLSfSVmjdCiLtOK07jkg7XuuOJ9JWat1KIu0ErTuBSDtR604k0k7SupOItFVat4pIO1nrTibSVmvdaiLtFK07hUhbo3VriLRTte5UIu00rTuNSDtd604n0tZq3Voi7QytO4NIO1PrziTSztK6s4i0s7XubCLtHK07h0g7V+vOJdLO07rziLTzte58Iu0CrbuASLtQ6y4k0i7SuouItHVat45Iu1jrLibSLtG6S4i0S7XuUiLtMq27jEhbr3XribTLte5yIu0KrbuCSLtS664k0q7SuquItKu17moi7Rqtu4ZIu1brriXSrtO664i067XueiLtBq27gUjboHUbiLQbte5GIu0mrbuJSLtZ624m0m7RuluItFu17lYi7Tatu41Iu13rbifS7tC6O4i0O7XuTiLtLq27i0i7W+vuJtLu0bp7iLR7te5eIu0+rbuPSLtf6+4n0jZq3UYi7QGte4BIe1DrHiTSNmndJiJts9ZtJtIe0rqHiLSHte5hIu0RrXuESHtU6x4l0h7TuseItC1at4VIe1zrHifSntC6J4i0J7XuSSLtKa17ikh7WuueJtKe0bpniLRnte5ZIu05rXuOSHte654n0l7QuheItK1at5VIe1HrXiTSXtK6l4i0l7XuZSLtFa17hUh7VeteJdJe07rXiLRtWreNSHtd614n0t7QujeItDe17k0ibbvWbSfS3tK6t4i0t7XubSLtHa17h0h7V+veJdLe07r3iLT3te59Iu0DrfuASPtQ6z4k0j7Suo+ItI+17mMi7ROt+4RI+1TrPiXSPtO6z4i0z7XucyLtC637gkj7Uuu+JNK+0rqviLSvte5rIu0brfuGSPtW674l0r7Tuu+ItO+17nsi7Qet+4FI+1HrfiTSftK6n4i0n7XuZyLtF637hUj7Vet+JdJ+07rfiLTfte53Iu0PrfuDSNuhdTuItJ1at5NI+1Pr/iTS/tK6v4i0v7XubyJtr8cGRKVVcnREWprWpRFp6VqXTqRlaF0GkZapdZlEWpbWZRFp2VqXTaTlaF0OkVZZ6yoTaVW0rgqRVlXrqhJpuVqXS6RV07pqRFp1ratOpNXQuhpEWk2tq0mk1dK6WkRaba2rTaTV0bo6RFpdratLpNXTunpE2n5atx+RVl/r6hNpDbSuAZG2v9btT6Q11LqGRFojrWtEpB2gdQcQaY21rjGRdqDWHUikHaR1BxFpeVqXR6Q10bomRFpTrWtKpB2sdQcTac20rhmR1lzrmhNph2jdIURaC61rQaQdqnWHEmmHad1hRNrhWnc4kdZS61oSaa20rhWR1lrrWhNpbbSuDZHWVuvaEmmW1llEmtI6RaR5tc5LpPm0zkek+bXOT6Tla10+kVagdQVEWkDrAkRaUOuCRFqh1hUSaUdo3RFEWjuta0ektde69kRaB63rQKR11LqORFonretEpHXWus5EWhet60KkddW6rkRaN63rRqR117ruRFoPretBpPXUup5EWi+t60Wk9da63kRaH63rQ6T11bq+RFo/retHpPXXuv5E2gCtG0CkDdS6gUTaIK0bRKQN1rrBRNoQrRtCpA3VuqFE2jCtG0akDde64UTaCK0bQaSN1LqRRNoorRtFpI3WutFE2hitG0OkjdW6sUTaOK0bR6SN17rxRNoErZtApE3UuolE2iStm0SkTda6yURaSOtCRFqR1hURacVaV0ykhbUuTKSVaF0JkRbRugiRNkXrphBpU7VuKpE2TeumEWnTtW46kTZD62YQaTO1biaRNkvrZhFps7VuNpE2R+vmEGlztW4ukTZP6+YRafO1bj6RtkDrFhBpC7VuIZG2SOsWEWmLtW4xkbZE65YQaUdq3ZFE2lKtW0qkHaV1RxFpR2vd0UTaMVp3DJG2TOuWEWnHat2xRNpyrVtOpK3QuhVE2nFadxyRdrzWHU+krdS6lUTaCVp3Akor7UmBlT2GngKhn15h6NkDFn4inXPZn5dj5vN2PQkHX/gJQ85nVvEYex7Crs/Pifr86N8Wwk8FxA+0cp4+l4N0zhPx8FN5RqWhe7Se+u0fp17Z9xTpe+yndpyo9c5l+8PtT/sLpe3Ru/Fpf6P1P87T/sr7hQf7SSnOU2lLZk1b2GN28fylc/XT/vrPmeKJutIJGX9O57Q96ZnEPY5fK2lgfVrU/c57bVv0Mtmu17pR6Z31/1Zy164jofXM5G3h2OPwr4dsQmazfSYue/yQujSkc9JzEJdK/FwUynLXZ0bHR/wU6koEpyoojfuBhlXN5L2Xzx3+VQk/ZBC2YzkNvZdKp3TViM+pQ+j+B+oaD7ToiQwA","debug_symbols":"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","brillig_names":["get_contract_instance_internal","get_public_data_witness","lt_32_hint","decompose_hint","lte_16_hint","key_registry_get_stored_keys_hint","get_public_keys_and_partial_address","notify_created_note","get_key_validation_request","unsafe_rand","emit_encrypted_note_log","directive_invert","directive_integer_quotient"]},{"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":"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8NJ/K8hoBTmtoKAVlLSCilZQ0woaWEF10QoSWkG0pC5aUhctqYuW1EVL6qIlddGSumhJ3bSkblpSNy2pm5bUTUvqpiV105K6aUndtKRuWlIPLamHltRDS+qhJfXQknpoST20pB5aUg8tqQeW1HbBktouWFLbBUtqu2BJbRcsqe2CJbVdsKS2C5bUdsGS2i5aUgstqYWW1EJLaqEltdCSWmhJLbSkFlpSCy2phZbUSktqpSW10pJaaUmttKRWWlIrLamVltRKS2qlJbXRktpoSW20pDZaUhstqY2W1EZLaqMltdGS2mhJ7bSkdlpSOy2pnZbUTktqpyW105LaaUnttKR2WlIHLamDltRBS+qgJXXQkjpoSR20pA5aUgctqYOW1ElL6qQlNc0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oOs0oOs0oOs0oOs0o+gVLaqcZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZxaAZxaAZxaAZxaAZxbhgSR00oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0o5g0o5g0o5g0o5g0o5gXLKmTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSLZhSLZhSLZhSLZhTrgiV10Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi0Yxi04xi04xi04xi04xiX7CkbppRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpRbJpR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p7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkp7lkH1pS056N67Rn4/rQknpoST20pB5aUg8tqYeW1ANL6rhgSR00oxg0oxg0oxgXLKmDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSDZhSTZhSTZhSTZhSTZhTzgiV10oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0oxi0Yxi0Yxi0Yxi0YxiXbCkLppRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRLJpRbJpRbJpRbJpRbJpR7AuW1E0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zik0zikMzikMzikMzikMzinPBknpoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFoRnFgRlEvmFE8BbGS+hTESupTECupT0GspD4FsZL6FMRK6lMQK6lPQaykPgXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BtKSGGcVTEC2pYUbxFERLaphRPAXRkhpmFE9BsKQWmlEUmlEUmlEUmlGUC5bUQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOKQjOK8glGsfvl4jF7X9DPF//YF/lSyI9FhPF6uUh+cH2OvlyeY/324n9rVj/BP35is7KpWd3UrG1q1jc1G5uazU3N1qZme1OzmyYoQU9Q5wtIv7701CU3mlWdfpmO1a5r/nD9bw2jp6i/omH0JPVXNIyepv6Khn1bw+ip6q9o+OGTVaW+XtzyH+8y6ONd+62CmlYQ7I650ly70ly7Pt613/gZerxrv1WQ0woKWkG0pFZaUistqR/v2m8URHPt+nDX/uPT6mUi0swb81ZkvpYfJfnz/PRwB3/3BuyrN+BfvQHaJ43RPmmM9knzcJf/D/7Mtb1+qcwrPvja93DHf+8GHu7+797APT75Muq1gUtvNOCXvDTg2jdeWqvt5eqWd/X3R1dbxEu7FvNWtph+cPVIvrz2nAHh3//lmxh3WXHwPMvfztKeZ3m3s/TnWd7tLON5lnc7y3ye5d3Osr76IPLVZ1n/6rNsfPVZNuB3cW43AL+Lc7sB2F/AK21Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2tShtU4vSNrUobVOL0ja1KG1Ti9I2teiw72vn1NufWV3Xu9/d/TPgcNh/yXjnZn1Ts7Gp2dzULPu353dulvaJPrBPdLtgn+h2wT7R7YJ997IL9t3LLqcVBPvuZRfsu5ddsO9edsGS2i5aUgstqYWW1EJLaqEltdCSWmhJLbSkFlpSCy2padsZjLadwWjbGUxpSa20pFZaUistqZWW1EpLaqUltdKSmradwYyW1EZLaqMltdGS2mhJbbSkNlpSGy2pjZbUTktqpyW105LaaUnttKR2WlI7LamdltROS2qnJXXQkjpoSR20pKZZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVqNZVhtaUg8tqYeW1ENL6qEl9dCSmmYUjWYUnWYUnWYUnWYUnWYU/YIltdOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMotOMYtCMYtCMYtCMYtCMYlywpA6aUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUQyaUUyaUUyaUUyaUUyaUcwLltRJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4pJM4r5CUax++XiMXtf0M8X6xWvhZz/7ni9XCQ/uD5HXy7PsX578d+btU3N+qZmY1OzuanZ2tTsoz/Rf/xl/Uv5ed1ottVe6mjzP7b6W/l3+fxPey3/3Xl+WH5nvbxXXek/V3Qf+jr19hGqN356pvT1p2fenf5HPw0S9frKMW+vbPpSvnzt8vVrl28PLl+vfBnWVK64Uf5kv/5Dn7rkRvSoTr++ul3XfPCvxbc1HNsazm0NF7vhvt7Gh0s++Ey9D5r+qxr4h+effh0hskP/4/xzH5D9RZqta1OzsqlZ3dQsekr6x5vtfP2Cdv30Be0+uP6rNIueju7dLHoyunez6Kno3s1+swnq181+swnql832N5ugft3sN5ugft3sN5ugft3spgnqPksvvkqzmyao3jRB9aYJqjdNUL1pgppNE9RsmqBm0wQ1myao+yyj+SrNbpqgZtMENZsmqNk0Qc2iCaquRRNUXYsmqLoWTVB1LZqg6vJNzS6aoOpaNEHVtWiCqmvRBFXXpglKNk1QsmmCkk0TlGyaoO6zvO2rNLtpgpJNE5RsmqBk0wQlmyYo3TRB6aYJSjdNULppgrrPUsWv0uymCUo3TVC6aYLSTROUbpqgbNMEZZsmKNs0QdmmCeo+y06/SrObJijbNEHZpgnKNk1QtmmC8k0TlG+aoHzTBOWbJqj7LCH+Ks1umqB80wTlmyYo3zRB+aYJKjZNULFpgopNE1RsmqDus2T7qzS7aYKKTRNUbJqgYtMEFZsmqNw0QeWmCSo3TVDsveP3btY3NbtpgmLvGr93s5smqO+2k/zXzW6aoL7bTvJfN7tpgvpuO8l/3eymCWrTTvLatJO8Nu0kr007yWvTTvLatJO8Nu0kr007yWvTTvLatJO8Nu0kr007yWvTTvLatJO8Nu0kr007yWvTTvLatJO8Nu0kr007yWvTTvLatJO8Nu0kr007yWvTTvLatJO8N+0k7007yXvTTvLetJO8L9/U7KIJqjftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvDftJO9NO8l7007y3rSTvL/ZTvLReG3Wfm72e01QN5p9+ARloy/l+/t6Pipeoq1fXjqvmD80+1sD9tUbcHQDeb29dIr6Bw3EV28gv3oD9dUbaHYDUy9XS12X3fwwtdfI7dCfInf2NDuP38X9mc3KpmbZk8Odm2VPGf9ws7+a9ufyTc3Cp5f7NgufdO7bLHwqum+z32yC+nWz32yC+mWz8s0mqF83+80mqF83+80mqF83u2mCevwu7s9sdtMEJZsmKNk0QcmmCUo2TVC6aYLSTROUbpqgdNME9fhd3J/Z7KYJSjdNULppgtJNE5RumqBs0wRlmyYo2zRB2aYJ6vG7uD+z2U0TlG2aoGzTBGWbJijbNEH5pgnKN01QvmmC8k0T1ON3cX9ms5smKN80QfmmCco3TVC+aYKKTRNUbJqgYtMEFZsmqMfv4v7MZjdNULFpgopNE1RsmqBi0wSVmyao3DRB5aYJKjdNUI/fxf2ZzW6aoHLTBJWbJqjcNEHlpgmqNk1QtWmCqk0TVG2aoB6/i/szm900QdWmCao2TVC1aYKqTRNUb5qgetME1ZsmqN40QT1+F/dnNrtpgupNE1RvmqB60wTVmyao2TRBzaYJCr6L+87Nbpqg6Du+79vspgmKvjv8vs1umqC+207yXze7Z4Ky67vtJP91s3smqNPsngnqNLtngjrN+qZm90xQp9k9E9Rpds8EdZrdM0GdZjdNUIt2kp9mN01Qi3aSn2Y3TVCLdpKfZjdNUIt2kp9mv9cE9aunc55mv9cEdaNZ9BN1ZbL95aWnLrnRrP74W6eXV/8xHv7h+r81rOin6v4VDaOfrPtXNKzbGrZtDfu2hmNbw7mt4drWcG9reNuk9fD95fJuMj6/XH3f8G8FCa0gpRVktILu8kkvrz/ZZXOjoMq3b1f99q+g+veCglZQ0goqWkFNK2hgBd1nT/I9CxJaQUoryGgFOeyjwx+e1H1db9XXzyeUtIKKVlDTChpYQUGbqYM2U8ejk1pVX78Iaeb7t+yDV458/VImUZI/f20K++oN+FdvIL56A/nVGyhaqjStoIEVlLRPpqR9MiXtbs9ddjpmvBZU1607kn7JS0y49o2X1mp7ubrl3Q3G/uhqi+jfr7aYd78VN/3g6pF8ee05M9e//8s3O++yMvJ5lr+dZTzP8m5nmc+zvNtZ1vMs73aW/TzLu53lPM/yXmd5l2Wjz7P87SzleZZ3O0t9nuXdzpL2W+6Hb0u9WRD8Dljby8+P5LkV8sFbDL8DdruB+uoN9FdvYL54A3199QbkqzcA/13U7Qbgv4u63YB/9QYCNho8fHvlzYJovytq2u+Kmva7oqH9rmhovysa2u+K5uF/b3bjL2HGaQXR/t5saH9vNrS/Nxva35sN7O/N5LpoBQmtIKUVBLu7JZfTCoIltVywpJYLltRywZJaLlpSC2ymFoHN1CK0pBbYTC332VZ0z4JoSS20pBbY3Q8R2N0PEdjdD1FaUistqRV290OUltRKS2qlJbXSklppM7XSZmqlzdRGu/thtLsfRpupaRss5D4bLO5ZEC2pjZbURktqoyW10ZLaaUnttKR2WlI7baa+zwaLexYE+9sPcdjffojT7n447e6H0+5+0DZYCG2DhQTt7kfQkjpoSR20mTpoM3XQZuqgzdRBm6mTNlMnbaZO2kydtLsfd1mLcNeCaEmdtKROWlInLamTltRFm6mLNlMXLamLNlPfx6DesyBaUhctqYt296Nodz+KdvejaUndtKRu2t2PpiV105K6aUndtKRu2kzdtJm6aTP10O5+DO3ux9Bm6qHd/biPUbxnQbSkphlFoRlFoRlFoRlFpRlFpRlFpRlFvWAztV6wmVov2N9+6AX72w+9YHc/9ILd/dALdvdDaUZRaUZRBXb3Q2lGUWlGUWlGUWlGUQU2U6vAZmoV2kyttJlaaTO10mZqhd390Ic/pf1mQbSkphlFpRlFpRlFpRlFpT1lW2lP2VaaUVSjzdSPf8r2rYJoSU0zimq0ux9Gu/thtLsfTktqpyW10+5+0Iyi0oyi0p6yrbSnbCvtKdtKe8q20p6yrUG7+xG0ux9Bm6mDdvfjPkbxngXRkppmFJVmFJVmFJVmFJVmFJVmFJVmFDVpM/V9jOI9C3r0336c78ovHx3nK0+//+j44JXz3QdNXddbJR8/kC9HX+rOef/ivzebm5qtTc32pmZnUbMP96af2qxsalY3NWubmvVNzdL+erZofz1Ls8NKs8NKs8NKs8NKs8NKs8PatLuS7bSCaElNe76p0p5vqrTnmyrt+aZKe76p0p5vqrTnmyrNDivNDuvQknpoST20pB5aUg8sqe2CJbVdsKS2C5bURnu+qV2wpDaaHTaaHTaaHTaaHTaaHTaaHTaaHTaaHTahJbXQklpoSS20pKY939Rozzc12vNNjfZ8U6M939Rozzc1mh02mh02pSW10pJaaUmttKRWWlLT7LDR7LAZLalpzzc12vNNzWhJbbSkptlho9lho9lho9lho9lho9lhc1pSOy2pac83NdrzTY32fFOjPd/UaM83NdrzTY32fFOjPd/UaHbYaHbYgpbUQUvqoCV10JI6aEmdtKROWlInLalpzzc12vNNLWlJnbSkTlpSJy2pk5bUtOebGu35pla0pC5aUhctqWlG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WhG0WlG0WlG0WlG0WlG0S9YUjvNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKDrNKAbNKAbNKAbNKAbNKMYFS+qgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWgGcWkGcWkGcWkGcWkGcW8YEmdNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKOYNKNYNKNYNKNYNKNYNKNYFyypi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUi2YUm2YUm2YUm2YUm2YU+4IlddOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOMYtOM4tCM4tCM4tCM4tCM4lywpB6aURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyaURyYUfQLZhRPQaykPgWxkvoUxErqUxArqU9BrKQ+BbGS+hTESupTECupT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLKmFZhSFZhSFZhSFZhTlgiW10Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0Iyi0oyi0oyi0oyi0oyiXrCkVppRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRVJpRNJpRNJpRNJpRNJpRtAuW1EYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzikYzik4zik4zik4zik4zin7BktppRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRtFpRjFoRjFoRjFoRjFoRjEuWFIHzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgGzSgmzSgmzSgmzSgmzSjmBUvqpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFpBnFohnFohnFohnFohnFumBJXTSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSjWDSj2DSj2DSj2DSj2DSj2BcsqZtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFJtmFIdmFIdmFIdmFIdmFOeCJfXQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOLQjOI83CjqldfvF6tc8b6gjy6O10LOf/fb5SIfXZ+jL5fn+d3k24v/3mxvanYWNftwt/mpzcqmZnVTs7apWd/UbGxqNjc1i56g5Nyk9NcBsC650azq+Sb48up2XfOH639rGD1F/RUNoyepuzcc14Wepv6KhtET1V/RMHqq+isavstkJa9Vlc2NL96Vr1+8q986qP69IKcVFLSC8tEF9XW9/UDXzwUVraCmFTSwn6H72PN7FiS0gpRWEC2phZbUQktqSVpBRSuIltQysIL0ohUktIIendSq+jpVa+b7gj545cjXCV+iJH+ewdW+egP+1RuIr94A7ZNGaZ802rSChv0z19YvL51XfHDrwK6v3oB89Qbu8cmX8Xq3qq5bd6v8kpcGXPvGS2u1vVzd8q7+/uhqi3hp12LeyhbTD64eyZfXnjMg/Pu/fCPsLmsInmf521n68yzvdpbxPMu7nWU+z/JuZ1nPs7zbWfZXH0S++izrX32W9a8+yzr8Ls7tBuB3cW434LAbex60gmi/eXXab16ddj/faffzg3Y/P2j380NpBRmtIFpSBy2pg5bUQUvqoCV10JI6aUmdtKROWlInLamTltRJS+qkJXXSkjppSZ20pC5aUhctqYuW1EVL6qIlddGSumhJXbSkLlpSFy2pm5bUTUvqpiV105K6aUndtKRuWlI3LambltRNS+qhJfXQknpoST20pB5aUg8tqYeW1ENL6qEl9cCSWi5YUssFS2q5YEktFyyp5YIltVywpBaauheauheaupeLltRCS2qhJbXQklpoSS20pBZaUgstqYWW1DR1LzR1LzR1LzR1L0pLaqUltdKSWmlJrbSkVlpSKy2plZbURktqoyW10ZLaaElttKQ2WlIbLamNltRGS2qjJbXTktppSe20pHZaUtOMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMotCMojz8ie9q87LMVP39s54+fExJvnu4Zl3XWyX/xIOkTrO9qdlZ1Gxdm5qVTc3qpmZZz5s+BTmtINbzpk9BrOdNn4KKVlDTChpYQX3RChJaQUoriJbUTUvqpiV105K6aUndtKRuWlIPLamHltRDS+qhJfXQknpoST20pB5aUg8tqQeW1HrBklovWFLrBUtqvWBJrRcsqfWCJbVesKTWC5bUesGSWi9aUgstqYWW1EJLaqEltdCSWmhJLbSkFlpSCy2phZbUSktqpSW10pJaaUmttKRWWlIrLamVltRKS2qlJbXRktpoSW20pDZaUhstqY2W1EZLaqMltdGS2mhJ7bSkdlpSOy2pnZbUTktqpyW105LaaUnttKR2WlIHLamDltRBS+qgJXXQkjpoSR20pA5aUgctqYOW1ElL6qQlddKSOmlJnbSkTlpSJy2pk5bUSUvqpCV10ZK6aEldtKSmGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWlGUWjGUWjGUWjGUWjGUW7YEltNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKNoNKPoNKPoNKPoNKPoNKPoFyypnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUnWYUg2YUg2YUg2YUg2YU44IlddCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtCMYtKMYtKMYtKMYtKMYl6wpE6aUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUUyaUSyaUSyaUSyaUSyaUawLltRFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pFM4pF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yi7f1OyiCcquRROUXYsmKLsWTVB2bZqgZNMEJZsmKNk0QX2zbd83mvVNzW6aoL7Ztu8bzW6aoL7Ztu8bzW6aoHTTBKWbJij23vF7N7tpgmLvG793s5smKPae8Xs3u2mC+m47yX/d7KYJ6rvtJP91s5smqE07yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0kt007yW3TTnLbtJPcNu0k9007yX3TTnLftJPcN+0k98s3NbtogvJNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9005y37ST3DftJPdNO8l9007y2LSTPDbtJI9NO8lj007yuHxTs4smqNi0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzw27SSPTTvJY9NO8ti0kzy+2U7y0Xht1n5u9ntNUDeaffgEZaMv5fv7ej4qXqKtX146r5g/NPtbA/7VGwh0A3m9vXSK+gcN5FdvoL56A/3VGxh2A1MvV0tdl938MLXXyO3Q/xi5j9/F/ZnNyqZmdVOz7Mnhzs3692r2l9N+wyeS+zYLn17u2yx80rlvs/Cp6L7NfrMJ6pfNzjeboH7d7DeboH7d7DeboH7d7DeboH7drG9qdtMENZsmqNk0Qc2mCWoWTVB5LZqg8lo0QeW1aILKa9EElZdvanbRBJXXogkqr0UTVF6LJqi8Nk1QsmmCkk0TlGyaoGTTBPX4Xdyf2eymCUo2TVCyaYKSTROUbJqgdNMEpZsmKN00QemmCerxu7g/s9lNE5RumqB00wSlmyYo3TRB2aYJyjZNULZpgrJNE9Tjd3F/ZrObJijbNEHZpgnKNk1QtmmC8k0TlG+aoHzTBOWbJqjH7+L+zGY3TVC+aYLyTROUb5qgfNMEFZsmqNg0QcWmCSo2TVCP38X9mc1umqBi0wQVmyao2DRBxaYJKjdNULlpgspNE1RumqAev4v7M5vdNEHlpgkqN01QuWmCyk0TVG2aoGrTBFWbJij4Lu47N+ubmt00QdH3gd+32U0TFH3P+H2b3TRBfbed5L9udtME9d12kv+62U0T1Kad5LlpJ3lu2kmem3aS56ad5LlpJ3lu2kmem3aS56ad5LlpJ3lu2kmem3aS56ad5LlpJ3lu2kmem3aS16ad5LVpJ3lt2klem3aS1+Wbml00QdWmneS1aSd5bdpJXpt2ktemneS1aSd5bdpJXpt2ktemneS1aSd5bdpJXpt2ktemneS1aSd5bdpJXpt2ktc320k+Gq/N2s/Nfq8J6kaz/uhmr7xempUrbjQ72f7y0nPu+95oVnX69dXtuuYP1//WcGxrOLc1XNsa7m0Nz7KGH7+r/LMblm0N67aGbVvDvq3hR09a8m4ynpn3Df9WUNIKKlpBTSvoLp/08vqTfV7wRkGVb9+u+u1fQfVvBd1n5/U9CxJaQUoryGgFOa2goBWUtIKKVlDTChrYR0c8PKn7ut6qr59OKIRWkNIKMlpBTiuINlMHbaaORye1qr5+EdLM92/ZB68c+fqlTKIkf/7aFP3VG5gv3kBeX70B+eoNKCxVHr6f82ZBTiuI9smUtE+mpN3tuctOx4zXguq6dUfSL3mJCde+8dJabS9Xt7y7wdgfXW0R/fvVFvPut+KmH1w9ki+vPWfm+vd/+WbnXVZGPs/yb2d5l42Uz7P87SzleZZ3O0t9nuXdztKeZ3m3s/TnWd7tLON5lnc7y3ye5d3Osp5nebezpP2Wu2i/O2n4HbC2l58fySs+eIsbfgfsdgP61Ruwr96Af/UG4qs3kF+9Afjvom43AP9d1O0G4L+LutnAwzdj3hoNHr698mZBtN8VDe13RQ/f1HizINrviob2u6Kh/a5oHv73Zjf+EmaGVVBfsL836wv292Z9wf7erC/Y35v15bSCglZQ0goqWkGwu1t9we5utdCSWmhJLbSkFlpSCy2pBTZTt8Bm6hZaUgtspm6hzdRKS2qlJbXC7n60wu5+9MM33NwsiJbUSktqhd39aKUltdKS2mhJbbSkNtpMbbSZ+j4bMu5ZEO3uh9HufhhtpqZtsGij3f1wWlI7LamdltROS2qnJbXTktppSe20pHbaTO20mTpgf/vRAfvbjw7a3Y+g3f24zwaLexZEu/tB22DRQbv7EbSkDlpSJ22mTtpMnbSZOmkz9X02OtyzINpMnbSZOmkzddLufiTt7kfRkrpoSV20pC5aUhctqYs2Uxdtpi5aUhdtpi7aTN20pG5aUjft7kfT7n7cx3DesyBaUjctqZt296NpSd20pB5aUg8tqYc2Uw9tpr6PUbxnQbS7H0O7+zG0mXpodz8GdvdjaEZxaEZxaEZxaEZxLlhSD80oDs0oDs0ozgWbqeeCzdQjsL/9GIH97ccI7O7HCOzux9zHKN6zINjdj6EZxRHY3Y+hGcWhGcWhGcWhGcVR2kyttJn6PkbxngXRZmqlzdRKm6kVdvdjlHb3g2YUh2YUh2YUh2YUh2YUh/aU7aE9ZXtoRnGMNlMbbaamGcWhGcVx2t0Pp939uI9RvGdBtKR2WlI77e4HzSgOzSgO7SnbQ3vK9tCesj20p2wP7SnbE7S7H0G7+xG0mTpodz+CdveDZhSHZhSHZhSHZhSHZhSHZhSHZhSHZhQnaTN10mbqevTffqjNy0eHuvX7j44PXjnffdDUdb1V8vED+X78Mun3y3/c+np78d+blU3N6qZmbVOzvqnZ2NRsbmq2NjXbm5qdRc027a9nm/bXszQ7PDQ7PDQ7PDQ7PDQ7PDQ7PE27K9m0u5K055sO7fmmQ3u+6dCebzq055sO7fmmQ3u+6dCebzo0OzwwO3xmclZSn4JYSX0KYiX1j69RtIJYSX0KYiX1KYiV1KcgVlKfglhJfQqiJTXMDp+CaEkNs8OnIFpSw+zwKYiW1DA7fAqiJbXQklpoSa20pFZaUsOeb3oKoiU17PmmpyBaUsOeb3oKoiU1zA6fgmhJbbSkNlpSGy2pjZbURktqmB0+BdGS2mhJDXu+6SmIltROS2qnJTXMDp+CaEkNs8OnIFpSw+zwKYiW1E5LaqclNez5pqcgWlLDnm96CqIlNez5pqcgWlLDnm96CqIlNcwOn4JoSZ20pE5aUictqZOW1ElL6qQlddKSOmlJDXu+6SmIltRFS+qiJXXRkrpoSV20pIY93/QUREvqoiV10ZK6aEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKYiW1DCjeAqiJTXMKJ6CaEkNM4qnIFpSw4ziKQiW1EIzikIzikIzikIzinLBklpoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFoRlFpRlFpRlFpRlFpRlEvWFIrzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgqzSgazSgazSgazSgazSjaBUtqoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFoxlFpxlFpxlFpxlFpxlFv2BJ7TSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSj6DSjGDSjGDSjGDSjGDSjGBcsqYNmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFINmFJNmFJNmFJNmFJNmFPOCJXXSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLSjGLRjGLRjGLRjGLRjGJdsKQumlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlEsmlFsmlFsmlFsmlFsmlHsC5bUTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKTTOKQzOKQzOKQzOKQzOKc8GSemhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWhGcWBGsS+YUTwFsZL6FMRK6lMQK6lPQaykPgWxkvoUxErqUxArqU9BrKQ+BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0G0pIYZxVMQLalhRvEUREtqmFE8BdGSGmYUT0GwpBaaURSaURSaURSaUZQLltRCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pCM4pKM4pKM4pKM4pKM4p6wZJaaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUZRaUbRaEbRaEbRaEbRaEbRLlhSG80oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oGs0oOs0oOs0oOs0oOs0o+gVLaqcZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZRacZxaAZxaAZxaAZxaAZxbhgSR00oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0oxg0o5g0o5g0o5g0o5g0o5gXLKmTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhSTZhTz4UZRr7x+v1jlivcFfXRxvBZy/rvfLhf56PrTzsvlOdZvL/57s7apWd/UbGxqNjc1W5ua7U3Nzp5m6+EG91OblU3NoicomfNV83UAPO/MjWZVp19f3a5r/nD9bw2jp6i/omHf1jB6mvorGkZP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ZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSVZhSNZhSNZhSNZhSNZhTtgiW10Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi0Yyi04yi04yi04yi04yiX7CkdppRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRdJpRDJpRDJpRDJpRDJpRjAuW1EEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikEzikkzikkzikkzikkzinnBkjppRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRjFpRrFoRrFoRrFoRrFoRrEuWFIXzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSgWzSg2zSg2zSg2zSg2zSj2BUvqphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFphnFoRnFoRnFoRnFoRnFuWBJPTSjODSjODSjODSjODSjODSjODSjODSjODSjODSjODSjODSjODSjOA83inrl9fvFKle8L+iji+O1kPPf/Xa5yEfX5+jL5TnWby/+e7OzqNmH28pPbVY2NaubmrVNzYI+0T+4OOr1lWPeXtn09w8Tknz9Z8oHTQv/TPlF/pcik+2vzdYlN/6lqE6/vrpd1/zh+t8aRs8uf0XD6PnlL2jY0DPMX9Eweo6RHwvDXj/tLokPGvhes0nb68d1h/7Hj2v7XrPJjWZ9U7Oxqdnc1Cx6SvrHm+18/T5x/fR9wr7X3Z0bzX6vuzu/bta/192dG81+r7s7N5r9ZhPUr5v9ZhPUr5v1Tc1+swnq181+swnq181umqB80wTlmyao2DRBxaYJKjZNULFpgnr4tpNPbXbTBBWbJqjYNEHFpgkqNk1QuWmCyk0TVG6aoHLTBPXwLUSf2uymCSo3TVC5aYLKTRNUbpqgatMEVZsmqNo0QdWmCerh28E+tdlNE1RtmqBq0wRVmyao2jRB9aYJqjdNUL1pgupNE9TDt/Z9arObJqjeNEH1pgmqN01QvWmCmk0T1GyaoGbTBDWbJqiHb9P81GY3TVCzaYKaTRPUbJqgZs8EJdd17RmhfnS7Z4b60e2eIepHt3umqB/d+qpu98xRP7rdM0j96HbPJPWj2z2j1I9uV81SsmqWklWzlKyapWTVLPXwZdSf2+2qWUpWzVKyapb6ZgvAb3W7apb6ZivAb3W7apb6ZkvAb3W7apZ6+Brwz+121Sylq2Yp9k7yu3e7apZibyO/d7fsVeR373bVLPXdlpbf6HbVLPXd1pbf6HbVLPXdFpff6HbVLLVodfmPblfNUouWl//odtUstWh9+Y9uV81SixaY/+h21Sy1aIX5j25XzVKLlpj/6HbVLLVojfmPblfNUosWmf/odtUstWiV+Y9uV81Si5aZ/+h21Sy1aJ35j25XzVKLFpr/6HbVLLVopfmPblfNUouWmv/odtUstWit+Y9uV81Sixab/+h21Sy1aLX5j25XzVKLlpv/6HbVLLVovfmPblfNUosWnP/odtUstWjF+Y9uV81Si5ac/+h21Sy1aM35j25XzVKLFp3/6HbVLLVo1fmPblfNUouWnf/odtUstWjd+Y9uV81Sixae/+h21Sy1aOX5j25XzVKLlp7/6HbVLLVo7fmPbjfNUrJq77ms2nsuq/aey6q953L5qm43zVKyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7Lqv2nsuqveeyau+5rNp7rqv2nuuqvee6au+5rtp7rpev6nbTLKWr9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3numrvua7ae66r9p7rqr3n+s32no/Ga7f2Qbffa5a61e3DZykbfanf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ZtdFy+y6cJktuMwWXGYLLrNxz2kt3HNaC+eTC+eTC+eTC+eTC+eTC+eTC+eTC+eTS3GZrbjMVlxmKy6zcc9pLdxzWgv3nNbCPae1cM9pLdxzWgvnkwvnk8twmW24zDZcZhsusw2X2TifXDifXI7LbNxzWgv3nNZyXGY7LrNxPrlwPrlwPrlwPrlwPrlwPrkCl9mBy2zcc1oL95zWwj2ntXDPaS3cc1oL95zWwj2ntXDPaS2cTy6cT67EZXbiMjtxmZ24zE5cZhcuswuX2YXLbNxzWgv3nNYqXGYXLrMLl9mFy+zCZTbuOa2Fe05rNS6zG5fZjctsnIMsnIMsnIMsnIMsnIMsnIMsnIMsnIMsnIMsnIMsnIMsnIMsnIMsnIMsnINsnINsnINsnINsnIPsi5bZjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQjXOQg3OQg3OQg3OQg3OQc9Eye3AOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcnAOcmgOUi6agzwVwTL7VATL7FMRLLNPRbDMPhXBMvtUBMvsUxEss09FsMw+FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvJUhMtsmoM8FeEym+YgT0W4zKY5yFMRLrNpDvLHA2pxFeEym+Ygfzw6B1cRLrNpDvLHUl9cRbjMpjnIH+uGcBXhMpvmIH9ASFhFgnOQgnOQgnOQgnOQ59fruIpomS04Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4Byk4B6k4B6k4B6k4B6k4B6kXLbMV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAV5yAN5yAN5yAN5yAN5yDtomW24Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4Ryk4xyk4xyk4xyk4xykX7TMdpyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDdJyDDJyDDJyDDJyDDJyDjIuW2YFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIFzkIlzkIlzkIlzkIlzkHnRMjtxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDjJxDrJwDrJwDrJwDrJwDrIuWmYXzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkEWzkE2zkE2zkE2zkE2zkH2RcvsxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIxjnIwTnIwTnIwTnIwTnIuWiZPTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTQHqRfNQZ6KYJl9KoJl9qkIltmnIlhmn4pgmX0qgmX2qQiW2aciWGafinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJcZtMc5KkIl9k0B3kqwmU2zUGeinCZTXOQpyJaZgvOQQrOQQrOQQrOQcpFy2zBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjBOUjFOUjFOUjFOUjFOUi9aJmtOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAepOAdpOAdpOAdpOAdpOAdpFy2zDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecgDecg7eEOUq+8fr9Y5Yr3FX10cbwWcv673y4X+ej6HH25PMf67cVfuu1V3c6ibv3hNvRzu5VV3eqqbm1Vt76q21jVba7qFj1LyWT76yxYl9zo9sdGitdXt+uaP1z/e8foeeov6Rg9U/0VHQt6rvpLOkbPVn9Jx+j56i/p+C4zlryWVTY3volXvn4Tr35rofqlIsdVFLiK8tEV9XW9/VDXBxUVrqLGVTS0n6P7+Pa7ViS4ihRXES6zFZfZistsTVxFhasIl9k6tIrswlUkuIoendmq+jppa+b7ij545cjXqV+iJD+Yy82+fAf+5TuIL98B7jPHcJ851riKhv1z19YvL51XfHRXwa8v34F8+Q7u8RmY8Xovq65b97LOL2NfOjiT3I2X1mp7ubrlXQP90dUW8dKvxbyVLaYfXD2SL689Z1b493/9NtldVh08D/P3w/TnYd7vMON5mPc7zHwe5v0Os56Heb/D7C8/j3z5qTa+/FQbX36qDfidnb+jA/idnb+jA6fd74vAVYT7DW3gfkMbuLv9gbvbn7i7/Ym725+Kq8hwFeEyO3GZnbjMTlxmJy6zE5fZhcvswmV24TK7cJlduMwuXGYXLrMLl9mFy+zCZXbjMrtxmd24zG5cZjcusxuX2Y3L7MZlduMyu3GZPbjMHlxmDy6zB5fZg8vswWX24DJ7cJk9uMweWmbHRcvsuGiZHRcts+OiZXZctMyOi5bZcdEyOy5aZsdFy+y4cJktuMwWXGYLLrMFl9mCy2zBZTZO9gdO9gdO9ofgMltxma24zFZcZisusxWX2YrLbMVltuIyGyf7Ayf7Ayf7Ayf7w3CZbbjMNlxmGy6zDZfZhstsw2W24TLbcZntuMx2XGY7LrMdl9mOy2zHZbbjMttxme24zA5cZgcuswOX2YHLbJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDDJyDjIc/uf7H42l/v/jHVte3iz98lkq+eyJoXddbJf/UM6+ielW3s6nbvlZ1K6u61VXd0p6WHffxsnetiPa07Gja07KjC1dR4yoaWkVz4SoSXEWKqwiX2YPL7MFl9uAye3CZPbjMHlpm50XL7LxomZ0XLbPzomV2XrTMzouW2XnRMjsvWmbnRcvsvHCZLbjMFlxmCy6zBZfZgstswWW24DJbcJktuMwWXGYrLrMVl9mKy2zFZbbiMltxma24zFZcZisusxWX2YbLbMNltuEy23CZbbjMNlxmGy6zDZfZhstsw2W24zLbcZntuMx2XGY7LrMdl9mOy2zHZbbjMttxmR24zA5cZgcuswOX2YHL7MBlduAyO3CZHbjMDlxmJy6zE5fZicvsxGV24jI7cZmduMxOXGYnLrMTl9mFy+zCZXbhMrtwmV24zC5cZhcuswuX2YXL7MJlduMyu3GZ3bjMxjnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIxDnIwjnIwjnIwjnIwjnIumiZXTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgHWTgH2TgH2TgH2TgH2TgH2RctsxvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIBvnIAfnIAfnIAfnIAfnIOeiZfbgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTgHOTQHKRdNAd5KoJl9qkIltmnIlhmn4pgmX0qgmX2qQiW2aciWGafimCZfSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KcJlNc5CnIlxm0xzkqQiX2TQHeSrCZTbNQZ6KaJktOAcpOAcpOAcpOAcpFy2zBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgBecgFecgFecgFecgFecg9aJltuIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOIcpOEcpOEcpOEcpOEcpF20zDacgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScgzScg3Scg3Scg3Scg3Scg/SLltmOc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5COc5CBc5CBc5CBc5CBc5Bx0TI7cA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycA4ycQ4ycQ4ycQ4ycQ4yL1pmJ85BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5BJs5B5sMdpF55/X6xyhXvK/ro4ngt5Px3v10u8tH1OfpyeY7124u/dOuruo1V3eaqbmtVt72qW9Bn+wcXR72+8rnZ/1aHvnymkHTtP1U/aG74p+pX8r8WmWx/7bYuufGvRXX69dXtuuYP1//eMXqK+Us69nUdo6eZv6Rj9EQjp4G3T71L4qMOvteU0vb6ud2hP31u2/eaUm51O5u6fbg+/9xuZVW36HnpH++28/XbxfXztwv/Xnd8bnXrq7r9Xnd8bnX7ve743Or2m81SN7r9ZrPUjW6/2Sz1627jm81SN7r9ZrPUjW5XzVKxapZ6+BaOz+121SwVq2apWDVLxapZKlbNUrlqlspVs1SumqVy1Sz18O04n9vtqlkqV81SuWqWylWzVK6apWrVLFWrZqlaNUvVqlnq4VurPrfbVbNUrZqlatUsVatmqVo1S/WqWapXzVK9apbqVbPUw7fJfW63q2apXjVL9apZqlfNUr1qlppVs9SsmqVm1Sw1q2aph295/NxuV81Ss2qWmlWz1KyapWbTLFXXplmqrk2zVF2bZqm6Ns1SdfmqbjfNUnVtmqXq2jRL1bVplqpr1Swlq2YpWTVLyapZSlbNUg/fivy53a6apWTVLCWrZilZNUvJqllKV81SumqW0lWz1DfbKH6rW1/V7apZ6pttFL/V7apZ6pttFL/V7apZylbNUrZqlmLvNr97t6tmKfZO87t3u2qWYu8yv3u3q2ap77b3/Ea3q2ap77b3/Ea3q2apVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe81q197xW7T2vVXvPa9Xe816197xX7T3vVXvPe9Xe8758VbebZqletfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+0971V7z3vV3vNetfe8V+09n1V7z2fV3vNZtfd8Vu09n8tXdbtplppVe89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve89n1d7zWbX3fFbtPZ9Ve8///+3d7W4kSXbe8VvK837O1RiSYBgLLHYNaW3AH/beHd3TLHaL3OawJiv452R/ETTYyoonqiseBpP5y5xL3fd8LnXf89l/33Mbfcrv1j+frURbP711HjE/zPbbDPTTz8DQM8jj+a1T1F+bgX/6GcSnn0F++hkUewbrV7Gnt67jsDeb155yZ4e+bN6+1GznSrPdf7/vD50tew9x9mzZ+413z/bn+8OB701Onq1farbwPc/Js4Xvj06e7Z9sL/XGbP9k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HGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGThHGTjHGTjHGTjHGTjHGQftM5unINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnINsnIMcnIMcnIMcnIMcnIOcg9bZg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQg3OQQ3OQcdAc5EoE6+yVCNbZKxGss1ciWGevRLDOXolgnb0SwTp7JYJ19kqE62yag1yJcJ1Nc5ArEa6zaQ5yJcJ1Ns1BrkS4zqY5yJUI19k0B7kS4Tqb5iBXIlxn0xzkSoTrbJqDXIlwnU1zkCsRrrNpDnIlwnU2zUGuRLjOpjnIlQjX2TQHuRLhOpvmIFciXGfTHORKhOtsmoNciXCdTXOQKxGus2kOciXCdTbNQa5EuM6mOciVCNfZNAe5EuE6m+YgVyJcZ9Mc5EqE62yag1yJcJ1Nc5ArEa6zaQ5yJcJ1Ns1BrkS4zqY5yJUI19k0B7kS4Tqb5iBXIlxn0xzkSoTrbJqDXIlwnU1zkCsRrrNpDnIlwnU2zUGuRLjOpjnIlQjX2TQHuRLhOpvmIFciXGfTHORKhOtsmoNciXCdTXOQKxGus2kOciXCdTbNQa5EuM6mOciViNbZgnOQgnOQgnOQgnOQctA6W3AOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnAOUnEOUnEOUnEOUnEOUg9aZyvOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQSrOQRrOQRrOQRrOQRrOQdpB62zDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjDOUjHOUjHOUjHOUjHOUg/aJ3tOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAcZOAcZOAcZOAcZOAcZB62zA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgE+cgE+cgE+cgE+cg86B1duIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOEcZOEcZOEcZOEcZB20zi6cgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycg2ycg2ycg2ycg2ycg+yD1tmNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CNc5CDc5CDc5CDc5CDc5Bz0Dp7cA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5ycA5y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OAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAfpOAcZOAcZOAcZOAcZOAcZB62zA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgA+cgE+cgE+cgE+cgE+cg86B1duIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOIcZOEcZOEcZOEcZOEcZB20zi6cgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyycgyyc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q+3p5br+beaH13+bgn7+Kdjnn4J//inE559Cfv4p1OefQn/+Kez+NVCPvGWSI77fdr324WR/9xP2kBNmvJ0Bf+SM13/9+3/+5a9//cv/+h9//ft//Ns//vL3v/3Xl6OPL//ndV5TcTzNrdqePwkxfWX8H17tP756fd6ve5lzh5iHD/G6aDl3CHn8EPr4IezxQ/jjh4jHD5GPH+Lxq9sev7rt8avbH7+6/fGr2x+/uv3xq9sfv7r98avbH7+6/fGr2x+/uv3xqzsev7rj8as7Hr+64/GrOx6/uuPxqzsev7rj8as7Hr+64/GrOx+/uvPxqzsfv7rz8as7H7+68/GrOx+/uvPxqzsfv7rz8au7Hr+66/Grux6/uuvxq7sev7rr8au7Hr+66/Grux6/uuvxq7sfv7r78au7H7+6+4TVbRb97dVW3786j1dPWdfT2XD1/PHVXwI5LVDQAiUtUNECNS3QwALNQQsktEBKC0Rr6qE19dCaemhNPbSmHlpTD62p5aBVtRy0rpaDVtZy0NpaDlpdy0HrazlohS0HrbHloFW2HLjOFlxnC66zBdfZgutswXW24DpbcJ0tuM4WXGcLrrMV19mK62zFdbbiOltxna24zlZcZyuusxXX2YrrbMN1tuE623CdbbjONlxnG66zDdfZhutsw3W24TrbcZ3tuM52XGc7rrMd19mO62zHdbbjOttxne24zg5cZweus+PBnf11DNswhm8Y44ymrJuqt0p/OUZuGKM2jNEnj1Hycox5/BhncJo3xzijFVpvY7S9/Pc4A9S8OYZtGOOM9dFhtzH6eDHGGVfde6p8e7Wnx8sxfsc88ocxvh5Vdx3Vdx019xz1ey5hf+Uouesovesou+sov+uouOuou74bfdd3o+/6bvRd342567sxd3035q7vxtz13Zi7vhtz13dj7vpuzF3fjbnruzH3fDf0OO46Su46Su86yu46yu86Ku46Ku86qu46qu866q7vhtz13ZC7vhty13dD7vpuyF3fDbnruyF3fTfkru+G3PXdkLu+G3rXd0Pv+m7oXd8Nveu7oXd9N/Su74be9d3Qu74betd3Q+/6bthd3w2767thd3037K7vht313fgdf5vzt36reeNskv6Ov7b98TFqwxi9YYx5/Bi/469Wf3wM+eNjVDzd8bNKb6+N/m0AffAAp5yrer7xtc1RLz6l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","brillig_names":["get_note_internal","decompose_hint","get_auth_witness","enqueue_public_function_call_internal","call_private_function_internal","debug_log_format","notify_set_min_revertible_side_effect_counter","directive_invert","directive_integer_quotient"]},{"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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","brillig_names":["get_note_internal","decompose_hint","get_auth_witness","pack_returns","directive_invert","directive_integer_quotient"]},{"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":"H4sIAAAAAAAA/+1dfYxcV3V/szuzu7PrXe9m11+xvX6za3s/nJDZL8duoDU0lEKKCpQPtVCajXeduIDtJJsEIgIBWmgR8AekJSItgRakgoQoqSq1oi2irRCUFqUCoiZqS1QJSIEmaSlFodDUb/f9dn7zm/Pue/Nm7qwd+Un2vL1zvu6555x77ucUgo1n8Py/Qvxeij97gsYHMCfiz2prz1wbaVV9ylm4SOTsukjk7L5I5Cy2Uc5ItlJQ/7Rb3pIHvbZbxp6LQMbei0DGvotAxnLQXv+BjMX4vf/8v4Hz/7YFG31Yw5dcsSg4dsffR44SGWLU0JEiywSbRPwc0cKzSO9j8ecrzrzuzNk7zoRnzq6thmtvOrcavvBaxtlPf1wTf/7S2tlblm9cDW99/dm18A233boW3nD+j9Xo49TZW1bDk2ffcO62tdNnbtygetPplej93NnTZ9aY9K93eSN9qrv2vif+fO4ttyy/KTx9ZmX1jeHZ29bCs6fCG87edmblVkY8kxfx9ryI7yDEffHn8tra6hvOrYVrZ8PllZXwjtNrN4Vnb1+95dTrz97BuO/Py/RjeRE/3YK0D7eA+828Av9HXsQf5EXsKuav5vXFnExvyot4Li/iXS1U8z15mX44L+InWpD2qy3gfiOvwN/Oi/hEXsQft1DNj5ZyMv1EXsTP5EX8q1L+av5DXqbfyIv4nRakHevJjxv25BR4Oi9iNS/ic1qo5gvzMn1pXsRfzot4qoVq3paX6bvyIr6/BWn/ogXcL+YV+MG8iP+UF/GbLVTz+t6cTG/Ki3guL+Jdvfmr+Z68TD+cF/ETLUj71RZwv5FX4G/nRXwiL+KPW6hmV1/tvdKIe+ttN6zdsnxyLZlAT19OqUfzIk725a/ubF6mV7fA9Jq8TF/UAtNX5mX62ryIp/Ii3tpCNd+el+k9eRHvb0HaL7WA+/W8Av9LXsRv5kX8rxaq+X95mfaUcyIO5UXcW85fzdm8TJ+dF/EFLUh7cwu4d+UV+DfzIr43L+KHWqjmRwg3V0f6sbxSfyYv4udbqO4X8zL9egtMH87L9LEWmD7RAu738wr8o7yI5f780g7252Q6lhdxMi/ibF7EpSb1s7lcsxwjRg2DZRIsF52I/6629szxMlJbaR9bWqdd9iP3ckS33w/tajS2+dm+mu4D4hUtCLwg/g6fhfjfYPx9QPiDQW157loqw5Te86kMcwE/R2UYZ72A5Onz0l6Lxzy219JgUL+8iboM+OF3tCC8aF57k2d/4M2G1vffDAh/8IIvr9tL3Jh9VFbsq5dz3V7EHqM/Q/q+j+qE749I3ViWbpElolvyoYtjiysR7R4ftKvVRdZh0dBhydBhj6HD0fP/Xix0Irl7+7zIvb43oI9kLBIvyNlFMH0kR4n+ng1q5WUaxxRJL6C7PajNnZT7kvGKgjdMMD2E1yt4vST3OmxQy0sHYn1yDDgRf1bzPosn5xbnlqugv667oNa+4KX2Vwja147aD7WR9nr/ua2d+oqfEunrWmqrearHALVrwdAp01iKPy8LGp+kuO8pHiy54j7XwWfc7xH+VtwfEJmGqWwbyaZ9yIDQuhDwovponhTV6+W9te8Hg/rH1U6spyGBi/hsJxqdyhm2U/2G/PBft53twn/I0MmwyDRMZdyWw0JrWGhdzHjR37Ap6Gg7vXOOPCT0hwz6fUKrHHhr5yr7P3hE/vIa4u3JxpdY38g7Bkh/nvmv7/cF/wP9tbovkwz4fpDK8M7tOigy4m+rXQfpk9KWTXx+rFhUFn7t3Lce0R0RGSJ+l0n92sNvfs5VX/DsJ5l8xLnLhP+Ioe9RP/Vfz71Hhf+o1D9qkzEpi/B2xO/wHcCMkvyA2UF4Jfr79vhzmPDZtlAWCA/Oq88RDdjzCNFSe8ra32oO57EdnHYInv2BLz/YsEO1g8tEJ1H9x/zUv+pq61Fqkx1SFuHtjN9hh4BhWwHMTsIr0d/vij+HCZ/tEGWB8GA7fBvRgM1xe6mfa9/uagPu1yEXYL3Fx7mNeMwygZ8nO3D6AXj2B778cMMP1A45nkVP1LY7qB0iIYATspJ2+FFSlSd6OGhisgJ8oz+Px4mFZTicOKCyVuLADohPK2m7j+o+6KXuc6e4gTRpG6TyTRhKrO4ParoYJR1BTnVyy0F3CswOoolP8N5JcjFt6GinFx25nQg8+wNf9rnhREl6UifadLZCDSdkJe3yImS9E3FDwYnAl50oS8UKhAsYph89bCS76DvIw5G96GXWdX79BNov9Nd4b2Zzfe2t6zDBjFEZHG8H1dWTQc5bUT2Lc4+JjBw4uJ5MG3XZauf200Pbzq1ZOZx7M3O4GJybG5eVlzQ84h7SSlWtHvLLBl1XLwaY75ZrNL4SNMqLdNPjMuKC5eyWE+0WGODw1AraZDfVmWmjLru91MXtRODZH/iyzw0nStKTOtGmsxVqOCEraY8XIeudiBsKTgS+2kOmVaxAuIBh+tHDRrKHvtvKHhL14B6yHXUdJpidVAan3kU6QVkflemcRyGon9cr0t9dBn2L1q4mae0SWt72Zpxf6bT0bgWiJL1zfWFHe6gMtFifWeblR+g9egYFD7QCoRUIre0kK7eD1nm3IQPg2cYYD7TSZIjw9uTEuzwn3t6cePty4u3PgRe1zXj8zvYxLnjjgsf2MW7Q2tUkrV1Ci9eF2A7VjjjWjFIZ2qybyvaSDCiDrktUBj0OGfWydFQI2qcjFy3VEb+XglodeP3tQPxeFD49hAeY8dhgktb6x6WsTLidTGjAsz9o1Ft7+G8kNAeEv7YJEprNI7yFGk6Isu1EiIVV4geE+DDB47tBwQOtQGgFBi3g8cJ+mJNWaNCq5KAVGdAElZ+IP6utPXPDJM8EyYhRDY9gFgo1WSZJ9jbO8a0vBhyMaeni0iTp4lC7dTG3sSEIvP+WRl3H4npvJ13BRthmQ5IvbF6+uTQRIxrsWKHIEgT10xGQNS0I8pwqvj+REuB02iOrPwCP/aGUk1bJoDWekxbw2AdgC5jfjWzhOvKBw8Sj3QtiUzEt+ABkOUzlgPl9stVfLNRkmg7q662LyxHMjMBMU/1Rd/ABbDfRmiL8bvqbp4l4QDdGZWx34Km2UCaZ2txxOTc6gWd/4GlDcNxxahuBFyerMyLTMJXxVKO25YzQYryRnHhjOfGmcuLxYN+PHSwcHRSZwG/WC7/qgsvuwLOfZPJhd7PCX+0uqv8RP/zXN19dIfzVBkakDSALbOAKgbfiFMdR8JkSvCQbHU2Rz5oKB86QIRPD8uwvvt/moGvxHhGYncRTeTPszhTerB/Wg4X3ztiQo37nzYXm5B9LkN/S3ZgDz6Ktbcd9Dj7Bj2ft0cdOURnyAl5JwOCyhz7fXWikY+Ul2ww6/QadclBvuyfiz+ri3Pz8wtzi1TccPVY9tlRdOXlsfvXY8tLS8vGl+ZXFlVPz1fmlo6dWq0vHF1aOLx4/X7w4d3K5Wj1VXb7h1NwSL0/V0V0+dvLq+dWj1ZXq+f9OLa0cqy4uLR5fWTx2aqG6uLhSPTq3WL3h+LHVlavnrl4+fsPSwvzyqaML1ZNzSwvVq4/PJS2FedqsseiKobxpyudSWJKdcd89IjLxRAfHG/VnzdUYb2dOvB6Sy9rY42mjo7O/A0/fG3tUT7qSx7knT6KhrEKylYSW9p2Mx/MR1uZWT7ml0z/A0/fmVtWT+kdUf085zoKV44wa/D3lOPNWjqO+Gf09QHqCLjTnAR1M0PLYidsvbcMsxwKOiwdS5LRiHXCGDJlGHXgW7YrAjBJNfIJfxYFn0dY2AI61rYP1XDHqUgjqx77MvztoXJEHTpLvc1065fvg6dv309om+jvKhZAr6UQ/bAntPirysy9Yes+yc0P7ZmsBxrIp9TPgDBky8R7NvJvR88xp5Z2j4/y1WTxrF4efRQ+3jfOih89dHBo3dxk60fniSCcck060R54Fnse/guqsflgRGRlvW4t41sYF3unVQn0XtMBa3/EYU5eyxlRP9m7GVF0Hi3RyRGQapjJu3yNC64jQ2ko8XrDWdT1eQ+CDn4hZPCb/Ho3JQZvXsx6nOQvkXCWRjw86AWac5tv/s1CTBd9DFp7rLAofXlQGzA9S1lysOvwwQx0GjDr8gC6B+BHVATjjxJfz6OjxmLc7/Qw8+wNvc7Nz3GZBYNuq79xN+5VZ4R/F2FGSU/sY6Iw3O6EOrLcsPqljkTRahSZosX/PUhn8hy8n0LxMdWLVx8rLDhr1GTfqk2WTyWY8iD8tX/Gd4x3JiZdnb4S1d8FjLFjMGgs8+aIZCyqGTsZEJp5LC9qoD+77mh3367p7Xjy2+wrpoIN2sXSx2kU726FTeFYuZuWWnIshtnAudnVMnNdaOY853lWTD/SRxwCeczHA3E55zLO7arJon8j1LgofzsUAcyKmlZSLWXV4XoY6DBh1eDHV4flUB6t/sdapt3rM43OdWsc82u/7O5C80f/oHLa1Tj1KcuqeFisXQx1Yb7Mp9eR16tmMtApN0GL/5njFcymgqbmYtQar9bFysQNGfcaN+mTJxQDP+9twaeT1MWDkX6+lOKTj1HX/663JwnpAGd53Uxne+SAB3i+nMrzvpTK876MyvPMm9f1Ur70iN/sJYtt+qhPwAPO6lNimm+P9xRj35mWOMfu98LdjDHjp5uXNQwqFGk6Isu2kUBZWb37QmzV4Fz3fuqKNkyVBHya8VjccWxN87d5gCcfnTvSt1InqYX/AT1I5YA5TJ/p26kQBC71wO7FeOIELBSegMuZv4bODhlSG7387xflCKcuqX+BxW+U5VcOnP9ppQ1a788bae6jdAavtzptfAfN0b43GB40EDLJZnZR2ZDyggXzgA9huojVB+BbP4TbyHDR4MmxIZXjfS7TVFsokX5uDqnNjLXj2k0w+gvqw8AcvazJjmD7VXq12rQgtxpvJiRfmxBvMicenBPWkosdBxULWDt+TbZodvtpGVH9Pp6WWODkDf40TI9IGkAWbXzVBsZJVa5LC2mgNeLbbiRT5CkHjxnXgDBkyMSzHdny/zUHX4h0KzDTxVN4MO53Cm/XDerDwHqRBxRe6mpN/IkF+S3cTDjyLttr2BNHEJ/hxDNGBZFSG/pYPhRyK33ly52tdjXS2GXS2GXT6E+iwHqOnHNTrolMTzRMkp6eDKHMum7D6K8ByPOfNpM30Aztz4vFmUpY9ei6E/sOTrcy5fIzbKhSZOEfnw5Oh0AqFFuPx+JBliB4+dNhJ/wBP3xPuofBX//DYZy9YffaEwd9TPmveYaW+ic2kYfw3dAG5IRvo8AY6Hc8WqAz8JoUfxwK256kUOa0+EjhDhkzTDjyLdlIctQ7GuPpWi7YebAEObyYFP8B2B415RCGobSbVmA4c7aOBk+T7W903+vT9tLbBZlKdJ0COAVtCu0+L/OwLwOH6HBL+h4Q/+8IhwptMkbsQNE6UA2fIkIkn9iuEE/3bJ3hdge3XJSovxY0Z9eUjsRJa2cQwnRNvKife4Zx4kwJ3IfiPnwsVbP+ZNHTiyi23ckOpzvl2uP2Wngnt12o7dAqPNxsglkxSGeIEbzZADODx6FGKZRpP1y/06K7Jp3PNgOfNBoB5Z3eNxjXdNVmAwxdCTFCduS/oMej+TEwraU3gkFGH51IdJqUOgOfNBoD5VarDtVQH+BmP9TUu88UrnfQzniuY8sN/zurnrc0Gnvx80fJzPayOzQaa17CtRY+12YD1lmWzAeBnM9IqNEGL/XuKyuA/vNkgaazgyqGs+bTDRn2mjfroHM+0oz7sK5g343jUW6zxmjR4aezRduUYsUx+e7cRe3ico+MN33MD4wn1CKkcMDc6Yh3TCgJ7nG3NBQDnEOmgIjKwXmb966VuzsClF8CcTdFL2vyDpZf9hl7GRYYgqI870BvgfG92T9JRhcoBc0dKP4kbYvmiMD83xFaX9IbYTR8gftpmunHJyo+0zaw1SY6ffEvh3UZOALpsA4CZINy0+PMbGXMUznOeS3nYpTnijSfrHPHlJFsotEKhxXhoB4+xbd6K+Wj3kMoB8wGPMR9802L+YYMfcnP2A5X9Qw7Zmf5UAn2uz4BB/0+oX/9wdyNdzldC4cXxHGUe56HX/Up/cQn891I5YD6eMV5PkOye4vWixuvNfsfxmxe6zl4I6vfRFAmHb+MFDMc3jQdh/M7xmGM5w3BfCJg/duiW5032U9mU0Iv4PGTEaB5n/in1KSHJkWTXgPlnsus/y2jXnE9bN+h62gTqHHuCp+8bdDVXCOP3DqwvLVq2b93gOxo0riftJJzo4bFnGL+z3sLAXU/eKxoatCYMWgUHrQkHrfEmaalcWx3DIIcrhmk9XDFsiOqqMYxjSkhlmoda83QcZ7i/Bf9Jged42SMwPGYGzCMp/Yzi8hyg1a9a+Y3aEcfiRynWPW3Q5bG57uXqlF9rPaz++lspeVpajHDZ1gTpQGOIdQjXdx4zlkEvgHk8RS9jOfQyZuhlp8gQBPX9IPQGOI994qJLRzxmB8z/ZMz1QpK9U2PzTR8gfkkXUHKbaZ+sbcZnNzj+6R4AjgtWH8g2ABjNBV3xpzvufJN0r7ic1/HcJe/tw9xlgerjWmtGGc+flqj8aVprHijWeF8sa8aHcuJdWmtu1ElFZOI5Lj7YXhFaFaHV7rVmXXNMurjNk/6c4xDw9H1xm84b6gVoHE94bXZC9GnZgs7rbCUerzXrRcm8FsVrzdbe5yrFMmuteb7YKF+Wtea7KV4uGetIvA7bzFrz8ZS+wjrYfg3VQdearYPtgHkV1eGnqQ564XbSfm8/P7Dg9jNeg/S53/uw8NezGZ1ea9Z1Toz3IWeWtWY971EIsp1BAfxMRlqFJmhZ67Xsy7zWrHtXVSdWfay9q4eM+kwZ9dG9DFOO+rCvYIzE8eh7PTVerv0o6rfWWs+ryW/vdKxhW/PfnV5r1nM+nBcvO2Id0wqC5tcduG0rIkOH1+DNtWZLL4A5naKXVtaaWS8X+lqzXqDGOro5pZ98Jq01c6y0cnP4No9J7zRyAtBlGwCMrjW74s9bMuYonOdcQ3nYhOBcWmtuXEviNWP+FeFQaIVCi/H4wrPQT/2aXmt+r8eYn3Wt+ZDBL8ta8z0O2bOsZSetyQHmU9Sv31tspMvz1KHw4niOsqjd95Es7fYrnovlduBfIgXM/Rnj9YWy1qzzwdZa8z6BAQ7PNQKG45vm9mH87lpfAYy1vvJJh245R+W15sNCL+LzoBGjeZz5aepTQpIjya4B8xDZ9QMZ7dr6kR88l9aavfn1omX7aWvNkEV/lfjSWvPWrjVrO2o9XDGM15o1hnFMCalM81Brno7jjBULW11r/lpKP2OtNc9TTArjcqsPz7LW/AjFuqcMuml7wzrh11oPq79+NCVPS4sRLtvi9TSNIUlr8D7zmMsz6AUwj6Xo5fKgeb1cbuhFLx4MAnutGXC+15qTdMRjdsA8mTHXC0n2To3NN32A+Gmb6X1DVp+sbZa01gzfBk2OC1YfyDYAmGbWmn+SontrrfnTlOTwDxujjtuoDN8/1lPD7yrV6F+s675Z8To4d5H5h6Iu5LkLPpscCq1QaFn3JObFY9+bIFn5x32i50I4m3yFH/7mer/+MO8z8WwyYskVVKbna6IyXYeNPqcolllj4JlSo3zaJ1oXoZ+meHlFqSYLcHgtsUJ15ja0LguuxrSaWS+epzokrTvxOB4wJ6gOS1QHPVt56WyyvV7sKc4sWr6SdjYZsrCtRY+1Xtzsj8PrD32n0So0QYv9m88m8/4b0NQ1fOtsstYHONZdR1yfw0Z9dD/EYUd9XL7iO2eayYlXyYln5UyeYsFi1ljgM2fSWODKmfgcKcp4/1gotEKh1Ymcydpjt9U5k889dpozWXvsNI5yjsHtkOVuqq3Cs3Im3mOn68TW/ZLR582UM1l3odzqyDcAb+2x+3ypRuN2yjese7MmqM6FwL3H7s6UnMmqw5upDs3c53Iv1eGtl3KmOj/LkjNdbPe5XEw5E88hgGa7cqaKUZ925kx6/2LkX98x9thZ92ar31p7XH6P/PazRuzhdQ1d9/d416nzTg5epwDMHzhiHdMKguT9Fronw7q3JBQZkvYe+rwDdl8GvQDmkyl62ZdDL/sMveiccBDUx50w/gSc7/2ZSToKqRwwD6T0k1u5x87as6FtZu3ZCAVG24zzYs7t4Nv8w02fNXIC0NX5Jp3HSYs/n8uYo3Ce82Zj7gqP7/2tgdQfD3j6HnOFwt8ac+maPa/j8x479WvrB810z5nH2DbfbMz/ygUQ8ysGP9d8JmC+7pCd6c8k0Of6DBj0H6d+/WFjHtZan+ccRvfk+j4Hreuuuu7L63SPZozXEyR7p/anbPY7jnVXwLAd6j4D4PBeNv09LysesI0ChmM5wwCX7ea7Dt1yjrqPynSP//o9zrHRJ60vPEl9StK+E2vv6C6am/9+RrvmfNr6UUFPey6cY0/w9P2jgporaIz3fe+D2r71o4ajQePeussJJ3p47Km/KZC1L9MclWlNGLQKDloTDlr7m6Slcm11DLPOdWTZ75MUw6z7XEIqc+2n4/in83QcZ7i/BX8rNw0Jl2F4zAyYHTHttNyU+/lbKSZpv2rlN2pHHIv3Uqz7qZ5Gujw23y9lnfJrrYfVX1cceswSI1y2NUE60BjCetmqe+ksvQBmJkUvrdwDx3rRH/wNgvp+EHoDnO/9mUk64jE7YOZSfBBxks/udWpsvukDjnuvAMNtpn2ythnvRbbOMoAmxwWrD2QbAIzmgq7489MpuldczuuSziFViA/P63L8Bcy1FP9O9jTS5fhXkbJOz03OiC5Yjy9K8XMdp6IuWcap3CeGIgPrZavmJi29AOZlKXrZl0Mv+wy9WHOTFXoP48+tmpu0zkgD5lcyxr8O5Ine5yZ5HQcwFSqz5iZPOvI/6/wvr6OkxZ8bU3SvuLznrMO/jZd5brLih785N6n+mjY3yXdNNzM3yXNUnZybdPWdt3uM+dyvhyIDx/xJgx/mJtkPVPa7HLIz/UMJ9Lk+1tzk71K//raeRrrWHI611oSyTuf01twkYH4rY7yukOxbOTep+WqWuUngpM1NVgTPmpsEvM5Ncp4ImA84dJs0N3lI6EUk/pzmJlHOc5P3Gjk12t6ya8B8juz6vox2fWlussa/03OTaePrpLlJ113TPuYmKwYt13xixUGrnXOTWxHDrLnJVu4DbtfcpM41cpyxYqE1Ng8Jl2GsWPiXGcfmHPdmjLlJqw/XWGflN39Dse7fLrC5yZ0J9bD66y95nIOrkA4uhLnJsQx6Acw/puhlLIdexgy9WHdNW3OTfNc0/1Z8u20nSUdsU4B5+AKem7RyPW0zK9dTe9c2Gw7s/A++DZocF6w+kG0AMDo36Yo/30rRveJyXsf7Kmfo++/Q9/o7lNFX36Pv9WxJOfB2T6czVwPP/qBxz2yb+K/natPCX/fjRnvzsc/+xtW161bf9Mrl159eWV47ffbMy1Zvvm311rUCiTctVeHvkqrbRWW76X2b8T0/2wmeVbRbeOwWOrzkuNuQHXiqiggm6QrPAUMmvgIo75Gli+H6ct7mHz0n4s9qS8/C0qXrzZu/3txakgEtnYpq9/Xmem1iUvtt9ZEQn+2nR0Ks9tPls4v9evNWfkp7vHfjPenYUthbky/p2BIfvQLM3b01GpO9NVmAw8c2JqnO3IY9Bt2pmFZSejJr1GGG6nBI6gB4nnYCzKuoDldQHayf0rbSFk9Hn5x+Bp6+0xbth62f0vYUZxbZZsBfcwVMMUFO3e5uTTHhnfXWJ3z6hA/H3ay0Ck3QSrryHP7DR6/wDlmt/ElzLOBYP6XN1yoOGfUZkvoMBcn1wXeRrxyJ3zkePZ/iEP/cd/SUA2+27PQl8OwPGn8GvU38131Jj8OpL1nDKraLUZJN21evuGe8gznxDuTEO0L1KcfvqGtkAy8nG4D9lwmnO37Hd1HM5j6F4632VXqlPvcpr6Y4f6fRV7Ef6M+x+76+KUyohzV1uezoG5lWENi5kZV7Aod/zlOnQK3jkh71ssDTHi69AOZ0il7Gc+hl3NBLKDIEQX0/Bb0Bzvd2mCQdhVQOmJtT8ipMufHScKem3Da3kBC/pC15ru0w2ma8HYZzZ/g2bz+508ghQZdtADB8rC4t/rwlY07LefEMxcoOjtEXngljdO7LmxlrY17JY2ybt2K+LrVzzH+vx5jPS2+umH/Y4IexnHWNBmDuccjO9KcS6HN9rGvDP0X9+r29jXR5G1tFeFlX7kbt7mnZ3tziCf68fAiY+zPG6w4crc60lJy2JaEQNG7dAk4Yf/KyOce3UPDYRgGj8bgitDkef9KhWx7TWNe0hsTnQSNG112HT30K+3aSXQPmIbLrBzLaNc9VhEH943F7n3N8BZ79gbc8aM7KFTTGe/TrRcv2Q+GPuQrdSrKPcKKH5xfUfrP2ZYCvGLSsKyQLDlqTDlphk7RCobXVMWzTHx0xTOvhimG8HUZjGMeUCpW5rsivuw7fmKMFf90+w/lTlmskvpbSzyguzxlb/aqV36gdcR/+CMW6pwy61k9/8Ni8E36t9bD660dT8rS0GOGyLf7JA40hrJcZ/3oxf9bH0gtgHkvRS5afoFC97DX0ose+gqC+H4TeAOf7mFOSjnjMDpgnM+Z6FZJ9K7fDaJtZ22G0T9Y2s34ihWMib4d5ysijQJdtADAh4abFn5+k6F5xNa/Tcfhg/DePQcdFnlmiD3kAg7a25PHn1/PViJ5u4ULd2K8B0+uQk2kFQfJahfo1cHiLp8a7boJjG2PYkMqAx3bTS7KMCX19HxcczmX42Bu+99EuSdd89FI5YMZS2kX9cph0AZhegdGrHlivgO0OGu1FYXkLp27RZlpdQeMRIeYfGPx5GzLLOWHw2W/w4b0CFYGzbNWaE9S8a1bocN510NFOgwZuRPOerhpP2C3wyzF9yNJuGyxSHbhuJSmPniMpNlikv4uBvQW2JDDAYb2z/UdPN8GxDTMs21OJ+Fp4/D4mOJGdXCZwzKfiqAvqwOMx0FfbYf0C5lhKH1Ekuu22g26Sp0jysX0A5tkpdtAd1OvFsgO1FeYfPewLgO2m77kfYli2g27ia+Fx+/UKDscLlqmUkQ/HnXGBs3RkxR3QUtthXQHmuoxxp5tovpXiDup6hPhr3qBjXbbdl/bV6J7ra6TLR2+0rfzZ9kbO3p1QD8u2X9WkbaMuWWyb5/fUv1gvs/71sj7euzJI1wtgfi1FL1cGzevlSkMv3fQ9HstnAeevf9ywnSQdcfwGzI0pPriV471NHyB+2mYcxwCjfZy22XDQGFutmMdxwRrvWVcTaN/pij9rKbpX3Ijm87pq31cEp0y0ffheIPXHA56+rybQcZzOiUY6sdpV/c+ykZLQYryD8adHv5238lrLbwHzjibzWmv+OCmvZbvWXJP7xwMGP6zFss2q7O92yJ7UrxdFTsAMGPT/kPr19xn9OuctJeG1neigLGr3Z4ksJ+K/q6096351ldQB/J9F5YD5nQsnXjesY2z2O8TvKpKPYzHb4bME5ip6j55hguH4pvGYbRQwGo8BY8Xjjzh0G8kAu7mSyo4IvYjPF2I6SVcTfJz0o75t2TVg/p7s+o8y2jUf+eaYED1lqku7+3JXfwGe/YG3XHHOyhU0xnv060XL9ovCH2uxkBOyqP3zWqzm4Fn7Mu5blJY1P1Bw0Ko4aBWbpKVybXUM2/RHRwzTerhiGK/FagzjmMJzOeNEB2XcP0UPxxkfuenf5chNj9PYXPtVK79RO+I+/EGKdU/0NdLlsXlRyjrl11oPq79+KCVPS4sRLtuqkA40hrBeZv3rZT2PqQbpegHMv6bopRo0r5eqoZerRIYgsPsiwJXp3YftJOmIbQow38qY65VI9k6Nza1cT9vMyvXU3rXNhgM7/4NvgybHBasPZBtgfQA3Lf58P0X3ist5HZ/b43x1RvggNnIfAJinKP7tLjfS5finewQjcB2bnYj/rrb2LFo5K+pxgMoB83SKn2u7WWuzBwTGGrPpmJT1MuJfLwtW/2bpBTC9Zbdeijn0UjT0UhIZgqD+DJjase8zRkk6qkj5uvwOHXH8q5t77lD8s/JEbTMrT9Q8TduM82uer+R19+jhuFAI6s8xsl45/vE1KWnxZ1+K7hU3ovnDQu37Dp6rdM5NXkjnKq12rYjMlo3o3B3j4Tym73MiGsMsvwXMkZTYpnFLdWXpYJN2/Mnxnft60Dpo8MPcJNusyj7vkD2pX2f6XJ8Bg/515Rrvo0a/PkK8KsJrO9FBmcc5nAXOsdHu4M9rTIB5zoUTrzON63VMYMVrnUMCDvQwHDSuL1nxwMpHQUPzUc4TAfPzDt1GMowQDsrGhF7E50xMJ+n+ihdTn6J9smXXgFkju35JRrvmuUmOCdHjca3FOTcJnv2Bt1xxzjVe4blJT369aNn+AeGPuUnIqfML1tyk5uBZ+zLAVwxa1vnJgoPWrIPWgSZpqVxbHcM2/dERw7QerhjGc5PWGvmI1J/zUI5/3D9FD8cZH7npLTly08cLNZ7ar1r5jXXGHzBvpFj3wXIjXR6bH5CyTvm11sPqr9+SkqelxQiXbVlrUVcaehnxrxdzjdXSC2DemaKXq3Lo5SpDL88SGYKgvh+E3gDne99Qko54vgcw78uY61VI9k6NzTd9wLGGAxjXfghtM94TwvEPvg2aHBesPtDaN6m5oCv+3Jeie8XVvO4w8S0GtbMfB6l8SuQ5SPQhD2A+6pAn+mpa+J2I/6629GzsAdY5Vb1PivuNj6f4tebsiE1sI3oHEXD4quwpkaGb4PguM4blPhR4vF+Xx8gzQl/fpwSH+2g+r+hnPmSjXSCDtgvHFMA8kNIuev/bLtIFYDTHAA63y7TI0B002ovC8hq3XiPPtLqIFst7mN6VP8cTlvOwwWfa4HOI6IwLnGWrB4kHYPheNIbh+gPmr1PijuJGNK+jvAvfI45F5PzcW7hhg1yHiDZ8gG0TMF9KsUHVpXWnRNJ9wezbaiPdBMe2wrDcf0wRXwuP3w8KDo9pLHsLg+S6oA58TgT0e4Jk/QLmoZQ+gvse33YwJfphO3ikDXZwUGCmRS98fwZgu+l7PlfPsGwHHA8sPCsGAYfPDbJMUxn5cNypCJylIx0fWvmF9k/cP/x7StxR3IjmAsUdzJGPEH+9Ip/v9AbMLpERMPwzAoB5MsW++e7xdtv3HpKnSPLtpnLA/HeKfe8J6vVinYnQO9f3iF62k152d0gH+lPGA4YOAPO/GccuvLbiZ+wyP6djl822JH7608qAcbUJcKCHYYLh+5zhE3uo/mrnkf1/OX7fHtTGAH3EX/fmW/60g+gxDO8xB0x/rJMkf/Lz8yEbtrSL5GEfsPx+yCEn04JeYFPcdhqLdoletpNe/P+EyoYOdosOrNgHmB0OHbA/DZLsnfKnzbYkfuor1nhC2wQ47E+A2UFl8IldVH+188j+74vftwe1c++sn8sCH/rZWPuADWrbXkblgDmYYt+j9HcxaLxnuiC47AMcI0ZEBt86GMugA8AcyWjfwyS7p7muo2rfm21J/DQWWzFH2wQ4bN+A4bxpRPCsOA89aJznNUrAHHXoNoKBT6AOgwa9iM9r4vdI9z1+dL++DwJ6xvl+tHMPxbi++B3fRTKV/ci0Hqv7aR9okXhB1i6C6Zc9k/j7uv5aeZ/I2kd0UD4AR49h4ANl2gMJnQz0peP1EV5vE3hl8j3A9DbBj/HYbsqCVxYdRDb3nFhnA1LfbqIDWbA3pEfolAjmJf012i/jvQtCN/r+euN7PIX6P+vWt7faJotN2ORrySaz2FtfBrspOeymr8n2f0UsX3/QuA/wRAxXbe2Z47aO7Oz/Ad2dHMutcQEA","debug_symbols":"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","brillig_names":["compute_note_hash_and_optionally_a_nullifier"]}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000004c141a0"},{"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":"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":"EcdsaRAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaRAccount::constructor_abi"},{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaRAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaRAccount::verify_private_authwit_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":"EcdsaRAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaRAccount::entrypoint_abi"}]}},"file_map":{"102":{"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::{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 index 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 for the tree index.\n let witness = unsafe {\n get_public_data_witness(\n self.global_variables.block_number as u32,\n public_data_tree_index\n )\n };\n\n // 3) The witness is made up of two parts: the preimage of the leaf and the proof that it exists in the tree.\n // We first prove that the witness is indeed valid for the public data tree, i.e. that the preimage is of a\n // value present in the tree. Note that `hash` returns not just the hash of the value but also the metadata\n // (slot, next index and next slot).\n assert(\n self.state.partial.public_data_tree.root\n == root_from_sibling_path(witness.leaf_preimage.hash(), witness.index, witness.path), \"Proving public value inclusion failed\"\n );\n\n // 4) Now that we know the preimage is valid, we determine the value that's represented by this tree entry. Here\n // we have two scenarios:\n // 1. The tree entry is initialized, and the value is the same as the one in the witness\n // 2. The entry was never initialized, and the value is default zero (the default)\n // The code below is based on the same checks in `validate_public_data_reads` in `base_rollup_inputs`.\n let preimage = witness.leaf_preimage;\n\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 value\n }\n}\n"},"110":{"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::{execution::{get_chain_id, get_version, get_contract_address, get_block_number}, storage::storage_read};\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"},"116":{"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,\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(\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(\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(\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(\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(\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"},"124":{"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"},"125":{"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, get_ovsk_app}, public_keys::{OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_note_log, oracle::logs_traits::LensForEncryptedLog\n};\nuse dep::protocol_types::{hash::sha256_to_field, address::AztecAddress, abis::note_hash::NoteHash};\n\nfn compute_raw_note_log<Note, let N: u32, let NB: u32, let M: u32>(\n context: PrivateContext,\n note: Note,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> (u32, [u8; M], Field) 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 // TODO(#8589): use typesystem to skip this check when not needed\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\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\n (note_hash_counter, encrypted_log, log_hash)\n}\n\nunconstrained fn compute_raw_note_log_unconstrained<Note, let N: u32, let NB: u32, let M: u32>(\n context: PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> (u32, [u8; M], Field) where Note: NoteInterface<N, NB>, [Field; N]: LensForEncryptedLog<N, M> {\n let ovsk_app = get_ovsk_app(ovpk.hash());\n compute_raw_note_log(context, note, ovsk_app, ovpk, ivpk, recipient)\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 let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (note_hash_counter, encrypted_log, log_hash) = compute_raw_note_log(*context, e.note, ovsk_app, ovpk, ivpk, iv);\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\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 // Note: We could save a lot of gates by obtaining the following keys in an unconstrained context but this\n // function is currently not used anywhere so we are not optimizing it.\n let ovpk = get_current_public_keys(context, ov).ovpk_m;\n let ivpk = get_current_public_keys(context, iv).ivpk_m;\n\n // See the comment in `encode_and_encrypt_note_with_keys_unconstrained` for why having note hash counter\n // and log hash unconstrained here is fine.\n let (note_hash_counter, encrypted_log, log_hash) = unsafe {\n compute_raw_note_log_unconstrained(*context, e.note, ovpk, ivpk, iv)\n };\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\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 let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (note_hash_counter, encrypted_log, log_hash) = compute_raw_note_log(*context, e.note, ovsk_app, ovpk, ivpk, recipient);\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\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 // Having the log hash be unconstrained here is fine because the way this works is we send the log hash\n // to the kernel, and it gets included as part of its public inputs. Then we send the tx to the sequencer,\n // which includes the kernel proof and the log preimages. The sequencer computes the hashes of the logs\n // and checks that they are the ones in the public inputs of the kernel, and drops the tx otherwise (proposing\n // the block on L1 would later fail if it didn't because of txs effects hash mismatch).\n // So if we don't constrain the log hash, then a malicious sender can compute the correct log, submit a bad\n // log hash to the kernel, and then submit the bad log preimage to the sequencer. All checks will pass, but\n // the submitted log will not be the one that was computed by the app.\n // In the unconstrained case, we don't care about the log at all because we don't do anything with it,\n // and because it's unconstrained: it could be anything. So if a sender chooses to broadcast the tx with a log\n // that is different from the one that was used in the circuit, then they'll be able to, but they were already\n // able to change the log before anyway, so the end result is the same. It's important here that we do not\n // return the log from this function to the app, otherwise it could try to do stuff with it and then that might\n // be wrong.\n // Regarding the note hash counter, this is used for squashing. The kernel assumes that a given note can have\n // more than one log and removes all of the matching ones, so all a malicious sender could do is either: cause\n // for the log to be deleted when it shouldn't have (which is fine - they can already make the content be\n // whatever), or cause for the log to not be deleted when it should have (which is also fine - it'll be a log\n // for a note that doesn't exist).\n let (note_hash_counter, encrypted_log, log_hash) = unsafe {\n compute_raw_note_log_unconstrained(*context, e.note, ovpk, ivpk, recipient)\n };\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n"},"126":{"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: [u8; 32] = self.eph_sk.hi.to_be_bytes();\n let serialized_eph_sk_low: [u8; 32] = self.eph_sk.lo.to_be_bytes();\n\n let address_bytes: [u8; 32] = self.recipient.to_field().to_be_bytes();\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();\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::{address::AztecAddress, scalar::Scalar};\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\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"},"127":{"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();\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"},"128":{"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};\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 {\n self.header\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn compute_nullifier(\n _self: Self,\n _context: &mut PrivateContext,\n _note_hash_for_nullify: Field\n ) -> 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] {\n [self.address.to_field(), self.owner.to_field(), self.randomness]\n }\n\n fn deserialize_content(fields: [Field; ADDRESS_NOTE_LEN]) -> Self {\n AddressNote {\n address: AztecAddress::from_field(fields[0]),\n owner: AztecAddress::from_field(fields[1]),\n randomness: fields[2],\n header: NoteHeader::empty()\n }\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: [u8; 32] = storage_slot.to_be_bytes();\n let note_type_id_bytes: [u8; 32] = AddressNote::get_note_type_id().to_be_bytes();\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: [u8; 32] = serialized_note[i].to_be_bytes();\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 comptime\n {\n EventSelector::from_signature(\"TestEvent(Field,Field,Field)\")\n }\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: [u8; 32] = randomness.to_be_bytes();\n let event_type_id_bytes: [u8; 32] = TestEvent::get_event_type_id().to_field().to_be_bytes();\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: [u8; 32] = serialized_event[i].to_be_bytes();\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: [u8; 32] = TestEvent::get_event_type_id().to_field().to_be_bytes();\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: [u8; 32] = serialized_event[i].to_be_bytes();\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, 201, 247, 40, 80, 60, 188, 158, 251, 242, 103, 197, 79, 165, 195, 10, 160, 255, 35, 167, 152, 25, 233, 77, 145, 214, 243, 210, 119, 0, 20, 29, 95, 15, 63, 33, 190, 184, 67, 254, 96, 128, 243, 220, 228, 201, 130, 86, 163, 52, 127, 111, 10, 212, 7, 160, 16, 87, 13, 39, 11, 5, 1, 164, 65, 8, 56, 82, 245, 13, 68, 176, 90, 100, 69, 243, 78, 117, 188, 221, 34, 178, 31, 155, 89, 143, 176, 129, 118, 36, 236, 64, 179, 52, 239, 184, 51, 51, 199, 221, 49, 81, 197, 17, 199, 192, 99, 49, 168, 157, 164, 190, 33, 240, 182, 214, 173, 7, 156, 102, 95, 65, 217, 225, 123, 42, 21, 124, 144\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"},"132":{"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, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, NoteStatus, PropertySelector},\n note_interface::NoteInterface, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\nuse crate::utils::comparison::compare;\n\npub use crate::note::constants::MAX_NOTES_PER_PAGE;\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: [u8; 32] = serialized_note[selector.index].to_be_bytes();\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 assert(\n compare(value_field, select.comparator, select.value.to_field()), \"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 = unsafe {\n get_note_internal(storage_slot)\n };\n\n // Constraining that we got a valid note from the oracle is fairly straightforward: all we need to do is check that\n // the metadata is correct, and that the note exists.\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n context.push_note_hash_read_request(note_hash_for_read_request);\n\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 = unsafe {\n get_notes_internal(storage_slot, options)\n };\n\n // We apply the constraints in a separate function instead of inlining them here to make it easier to test that\n // these checks correctly reject bad notes.\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, 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_array(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<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"},"134":{"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"},"135":{"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"},"136":{"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"},"144":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, GENERATOR_INDEX__FUNCTION_ARGS},\n point::Point, traits::Hash,\n hash::{sha256_to_field, poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice}\n};\nuse crate::oracle::logs_traits::ToBytesForUnencryptedLog;\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\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\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: [u8; 4] = (n as Field).to_be_bytes();\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: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\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 if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, 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..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\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"},"145":{"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"},"147":{"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"},"149":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle(_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"},"150":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/get_public_data_witness.nr","source":"use dep::protocol_types::{constants::PUBLIC_DATA_TREE_HEIGHT, data::PublicDataTreeLeafPreimage, utils::arr_copy_slice};\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(\n block_number: u32,\n public_data_tree_index: Field\n) -> 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"},"151":{"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\nunconstrained pub fn get_key_validation_request(\n pk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n"},"154":{"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"},"155":{"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"},"157":{"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"},"158":{"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 pub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle(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"},"160":{"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(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\n\nunconstrained pub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) -> 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"},"161":{"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, constants::CONTRACT_INSTANCE_LENGTH,\n 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 = unsafe {\n ContractInstance::deserialize(get_contract_instance_internal(address))\n };\n // The to_address function combines all values in the instance object to produce an address, so by checking that we\n // get the expected address we validate the entire struct.\n assert_eq(instance.to_address(), address);\n\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"},"162":{"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"},"164":{"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"},"167":{"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\n"},"169":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr","source":"use crate::context::{PublicContext, UnconstrainedContext};\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"},"185":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER, hash::poseidon2_hash_with_separator};\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"},"189":{"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: [u8; 32] = pk.x.to_be_bytes();\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\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"},"206":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{traits::{Empty, Serialize, Deserialize}, point::Point};\npub use crate::constants::KEY_VALIDATION_REQUEST_LENGTH;\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)) & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest { pk_m: Point::empty(), sk_app: 0 }\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 { pk_m: Point { x: fields[0], y: fields[1], is_infinite: fields[2] as bool }, sk_app: fields[3] }\n }\n}\n\n"},"24":{"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 { x: self.x, y: -self.y, is_infinite: self.is_infinite }\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)\n | ((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"},"25":{"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: [u8; 32] = x.to_le_bytes();\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: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_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, compute_lt, assert_gt, gt, 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"},"252":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/data/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 { slot: 0, value: 0, next_slot: 0, next_index: 0 }\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"},"259":{"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"},"26":{"path":"std/field/mod.nr","source":"mod bn254;\nuse bn254::lt as bn254_lt;\n\nimpl Field {\n /// Asserts that `self` can be represented in `bit_size` bits.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{bit_size}`.\n // docs:start:assert_max_bit_size\n pub fn assert_max_bit_size(self, bit_size: u32) {\n // docs:end:assert_max_bit_size\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 #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_le_bits)]\n // docs:start:to_le_bits\n pub fn to_le_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_le_bits\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_be_bits)]\n // docs:start:to_be_bits\n pub fn to_be_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_be_bits\n\n /// Decomposes `self` into its little endian byte decomposition as a `[u8]` slice of length `byte_size`.\n /// This slice will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{8*byte_size}` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `byte_size` equal to or greater than the number of bytes necessary to represent the `Field` modulus\n /// (e.g. 32 for the BN254 field) allow for multiple byte decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n // docs:start:to_le_bytes\n pub fn to_le_bytes<let N: u32>(self: Self) -> [u8; N] {\n self.to_le_radix(256)\n }\n // docs:end:to_le_bytes\n\n /// Decomposes `self` into its big endian byte decomposition as a `[u8]` slice of length `byte_size`.\n /// This slice will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{8*byte_size}` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `byte_size` equal to or greater than the number of bytes necessary to represent the `Field` modulus\n /// (e.g. 32 for the BN254 field) allow for multiple byte decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n // docs:start:to_be_bytes\n pub fn to_be_bytes<let N: u32>(self: Self) -> [u8; N] {\n self.to_be_radix(256)\n }\n // docs:end:to_be_bytes\n\n // docs:start:to_le_radix\n pub fn to_le_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n crate::assert_constant(radix);\n self.__to_le_radix(radix)\n }\n // docs:end:to_le_radix\n\n // docs:start:to_be_radix\n pub fn to_be_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n crate::assert_constant(radix);\n self.__to_be_radix(radix)\n }\n // docs:end:to_be_radix\n\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\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: [u1; 32] = exponent.to_le_bits();\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 x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..32 {\n if (!done) {\n let x_byte = x_bytes[32 - 1 - i] as u8;\n let y_byte = y_bytes[32 - 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\nmod tests {\n #[test]\n // docs:start:to_be_bits_example\n fn test_to_be_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_be_bits();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 1, 0]);\n }\n // docs:end:to_be_bits_example\n\n #[test]\n // docs:start:to_le_bits_example\n fn test_to_le_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_le_bits();\n assert_eq(bits, [0, 1, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bits_example\n\n #[test]\n // docs:start:to_be_bytes_example\n fn test_to_be_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_bytes();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n }\n // docs:end:to_be_bytes_example\n\n #[test]\n // docs:start:to_le_bytes_example\n fn test_to_le_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_bytes();\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bytes_example\n\n #[test]\n // docs:start:to_be_radix_example\n fn test_to_be_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_radix(256);\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n }\n // docs:end:to_be_radix_example\n\n #[test]\n // docs:start:to_le_radix_example\n fn test_to_le_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_radix(256);\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_radix_example\n}\n"},"265":{"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 {\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for u1 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for U128 {\n fn empty() -> Self {\n U128::from_integer(0)\n }\n}\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 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\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 {\n fn from_field(value: Field) -> Self {\n value as bool\n }\n}\nimpl FromField for u1 {\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u32 {\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\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"},"266":{"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"},"270":{"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\n};\nuse super::utils::field::field_from_bytes;\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: [u8; 32] = inputs[i].to_be_bytes();\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: [u8; 32] = input[offset].to_be_bytes();\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: [u8; 32] = logs[offset].value.to_be_bytes();\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: [u8; 32] = logs[offset].value.to_be_bytes();\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 poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field where T: ToField {\n let in_len = inputs.len() + 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\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of Math.ceil(N/31)\n let mut in_len = N / 31;\n let mut has_padding = false;\n if N % 31 != 0 {\n in_len += 1;\n has_padding = true;\n }\n\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\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n sponge.absorb(field_from_bytes(current_field, false));\n current_field = [0; 31];\n }\n }\n if has_padding {\n sponge.absorb(field_from_bytes(current_field, false));\n }\n\n sponge.squeeze()\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"},"276":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Deserialize, 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 { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n"},"277":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n contract_class_id::ContractClassId, constants::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"},"289":{"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: [u1; N] = leaf_index.to_le_bits();\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"},"29":{"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\npub use 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();\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 fn build_hasher(_self: Self) -> H {\n H::default()\n }\n}\n\nimpl<H> Default for BuildHasherDefault<H>\nwhere \n H: Hasher + Default {\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"},"293":{"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"},"3":{"path":"std/array/mod.nr","source":"use crate::cmp::{Eq, Ord};\nuse crate::convert::From;\nuse crate::runtime::is_unconstrained;\n\nmod check_shuffle;\nmod quicksort;\n\nimpl<T, let N: u32> [T; N] {\n /// Returns the length of the slice.\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\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<T, let N: u32> [T; N] where T: Ord + Eq {\n pub fn sort(self) -> Self {\n self.sort_via(|a: T, b: T| a <= b)\n }\n}\n\nimpl<T, let N: u32> [T; N] where T: Eq {\n\n /// Sorts the array using a custom predicate function `ordering`.\n ///\n /// The `ordering` function must be designed to return `true` for equal valued inputs\n /// If this is not done, `sort_via` will fail to sort inputs with duplicated elements.\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n unsafe {\n // Safety: `sorted` array is checked to be:\n // a. a permutation of `input`'s elements\n // b. satisfying the predicate `ordering`\n let sorted = quicksort::quicksort(self, ordering);\n\n if !is_unconstrained() {\n for i in 0..N - 1 {\n assert(\n ordering(sorted[i], sorted[i + 1]), \"Array has not been sorted correctly according to `ordering`.\"\n );\n }\n check_shuffle::check_shuffle(self, sorted);\n }\n sorted\n }\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\nimpl<let N: u32> From<str<N>> for [u8; N] {\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"311":{"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: [u8; 31] = field.to_be_bytes();\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: [u8; 31] = field.to_be_bytes();\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: [u8; 32] = max_value.to_be_bytes();\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"},"313":{"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"},"326":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n crate::address::{partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n hash::poseidon2_hash_with_separator, traits::{Empty, FromField, ToField, Serialize, Deserialize},\n 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 { inner: 0 }\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"},"328":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{salted_initialization_hash::SaltedInitializationHash, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, 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"},"329":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{aztec_address::AztecAddress}, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n 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"},"34":{"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) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\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 }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\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 { _state: &[] }\n }\n}\n"},"394":{"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:[u8; 32] = serialized_note[0].to_be_bytes();\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:[u8; 32] = serialized_note[2].to_be_bytes();\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"},"395":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_r_account_contract/src/main.nr","source":"// Account contract that uses ECDSA signatures for authentication on random version of the p256 curve (to use with touchID).\ncontract EcdsaRAccount {\n use dep::aztec::prelude::{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::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] = unsafe {\n get_auth_witness(outer_hash)\n };\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();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n std::ecdsa_secp256r1::verify_signature(public_key.x, public_key.y, signature, hashed_message)\n }\n}\n"},"58":{"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<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 if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n"},"7":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\n/// A `BoundedVec<T, MaxLen>` is a growable storage similar to a `Vec<T>` except that it\n/// is bounded with a maximum possible length. Unlike `Vec`, `BoundedVec` is not implemented\n/// via slices and thus is not subject to the same restrictions slices are (notably, nested\n/// slices - and thus nested vectors as well - are disallowed).\n/// \n/// Since a BoundedVec is backed by a normal array under the hood, growing the BoundedVec by\n/// pushing an additional element is also more efficient - the length only needs to be increased\n/// by one.\n/// \n/// For these reasons `BoundedVec<T, N>` should generally be preferred over `Vec<T>` when there\n/// is a reasonable maximum bound that can be placed on the vector.\n/// \n/// Example:\n/// \n/// ```noir\n/// let mut vector: BoundedVec<Field, 10> = BoundedVec::new();\n/// for i in 0..5 {\n/// vector.push(i);\n/// }\n/// assert(vector.len() == 5);\n/// assert(vector.max_len() == 10);\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 /// Creates a new, empty vector of length zero.\n ///\n /// Since this container is backed by an array internally, it still needs an initial value\n /// to give each element. To resolve this, each element is zeroed internally. This value\n /// is guaranteed to be inaccessible unless `get_unchecked` is used.\n ///\n /// Example:\n ///\n /// ```noir\n /// let empty_vector: BoundedVec<Field, 10> = BoundedVec::new();\n /// assert(empty_vector.len() == 0);\n /// ```\n ///\n /// Note that whenever calling `new` the maximum length of the vector should always be specified\n /// via a type signature:\n ///\n /// ```noir\n /// fn good() -> BoundedVec<Field, 10> {\n /// // Ok! MaxLen is specified with a type annotation\n /// let v1: BoundedVec<Field, 3> = BoundedVec::new();\n /// let v2 = BoundedVec::new();\n ///\n /// // Ok! MaxLen is known from the type of `good`'s return value\n /// v2\n /// }\n ///\n /// fn bad() {\n /// // Error: Type annotation needed\n /// // The compiler can't infer `MaxLen` from the following code:\n /// let mut v3 = BoundedVec::new();\n /// v3.push(5);\n /// }\n /// ```\n ///\n /// This defaulting of `MaxLen` (and numeric generics in general) to zero may change in future noir versions\n /// but for now make sure to use type annotations when using bounded vectors. Otherwise, you will receive a \n /// constraint failure at runtime when the vec is pushed to.\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this\n /// will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// let last = v.get(v.len() - 1);\n /// assert(first != last);\n /// }\n /// ```\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 /// Retrieves an element from the vector at the given index, starting from zero, without\n /// performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element,\n /// it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn sum_of_first_three<let N: u32>(v: BoundedVec<u32, N>) -> u32 {\n /// // Always ensure the length is larger than the largest\n /// // index passed to get_unchecked\n /// assert(v.len() > 2);\n /// let first = v.get_unchecked(0);\n /// let second = v.get_unchecked(1);\n /// let third = v.get_unchecked(2);\n /// first + second + third\n /// }\n /// ```\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Writes an element to the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// assert(first != 42);\n /// v.set(0, 42);\n /// let new_first = v.get(0);\n /// assert(new_first == 42);\n /// }\n /// ```\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 /// Writes an element to the vector at the given index, starting from zero, without performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element, it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn set_unchecked_example() {\n /// let mut vec: BoundedVec<u32, 5> = BoundedVec::new();\n /// vec.extend_from_array([1, 2]);\n /// \n /// // Here we're safely writing within the valid range of `vec`\n /// // `vec` now has the value [42, 2]\n /// vec.set_unchecked(0, 42);\n /// \n /// // We can then safely read this value back out of `vec`.\n /// // Notice that we use the checked version of `get` which would prevent reading unsafe values.\n /// assert_eq(vec.get(0), 42);\n /// \n /// // We've now written past the end of `vec`.\n /// // As this index is still within the maximum potential length of `v`,\n /// // it won't cause a constraint failure. \n /// vec.set_unchecked(2, 42);\n /// println(vec);\n /// \n /// // This will write past the end of the maximum potential length of `vec`,\n /// // it will then trigger a constraint failure.\n /// vec.set_unchecked(5, 42);\n /// println(vec);\n /// }\n /// ```\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n /// Pushes an element to the end of the vector. This increases the length\n /// of the vector by one.\n /// \n /// Panics if the new length of the vector will be greater than the max length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// \n /// v.push(1);\n /// v.push(2);\n /// \n /// // Panics with failed assertion \"push out of bounds\"\n /// v.push(3);\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 /// Returns the current length of this vector\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 4> = BoundedVec::new();\n /// assert(v.len() == 0);\n /// \n /// v.push(100);\n /// assert(v.len() == 1);\n /// \n /// v.push(200);\n /// v.push(300);\n /// v.push(400);\n /// assert(v.len() == 4);\n /// \n /// let _ = v.pop();\n /// let _ = v.pop();\n /// assert(v.len() == 2);\n /// ```\n pub fn len(self) -> u32 {\n self.len\n }\n\n /// Returns the maximum length of this vector. This is always\n /// equal to the `MaxLen` parameter this vector was initialized with.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.max_len() == 5);\n /// v.push(10);\n /// assert(v.max_len() == 5);\n /// ```\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n /// Returns the internal array within this vector.\n /// \n /// Since arrays in Noir are immutable, mutating the returned storage array will not mutate\n /// the storage held internally by this vector.\n /// \n /// Note that uninitialized elements may be zeroed out!\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.storage() == [0, 0, 0, 0, 0]);\n /// \n /// v.push(57);\n /// assert(v.storage() == [57, 0, 0, 0, 0]);\n /// ```\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n /// Pushes each element from the given array to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_array([2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\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 /// Pushes each element from the given slice to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_slice(&[2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\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 /// Pushes each element from the other vector to this vector. The length of\n /// the other vector is left unchanged.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// ```noir\n /// let mut v1: BoundedVec<Field, 5> = BoundedVec::new();\n /// let mut v2: BoundedVec<Field, 7> = BoundedVec::new();\n /// \n /// v2.extend_from_array([1, 2, 3]);\n /// v1.extend_from_bounded_vec(v2);\n /// \n /// assert(v1.storage() == [1, 2, 3, 0, 0]);\n /// assert(v2.storage() == [1, 2, 3, 0, 0, 0, 0]);\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 /// Creates a new vector, populating it with values derived from an array input. \n /// The maximum length of the vector is determined based on the type signature.\n /// \n /// Example:\n /// \n /// ```noir\n /// let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array([1, 2, 3])\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 /// Pops the element at the end of the vector. This will decrease the length\n /// of the vector by one.\n /// \n /// Panics if the vector is empty.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// v.push(1);\n /// v.push(2);\n /// \n /// let two = v.pop();\n /// let one = v.pop();\n /// \n /// assert(two == 2);\n /// assert(one == 1);\n ///\n /// // error: cannot pop from an empty vector\n /// let _ = v.pop();\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 /// Returns true if the given predicate returns true for any element\n /// in this vector.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<u32, 3> = BoundedVec::new();\n /// v.extend_from_array([2, 4, 6]);\n /// \n /// let all_even = !v.any(|elem: u32| elem % 2 != 0);\n /// assert(all_even);\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 /// Creates a new vector of equal size by calling a closure on each element in this vector. \n /// \n /// Example:\n /// \n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let result = vec.map(|value| value * 2);\n /// \n /// let expected = BoundedVec::from_array([2, 4, 6, 8]);\n /// assert_eq(result, expected);\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"},"73":{"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"},"74":{"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 `poseidon2_hash_bytes(\"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 collision 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 = 0x47dacd73; // 4 last bytes of poseidon2_hash_bytes(\"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(\n context: &mut PrivateContext,\n on_behalf_of: AztecAddress,\n inner_hash: Field\n) {\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 comptime {\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\")\n },\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(\n context: &mut PublicContext,\n on_behalf_of: AztecAddress,\n inner_hash: Field\n) {\n let result: Field = context.call_public_function(\n CANONICAL_AUTH_REGISTRY_ADDRESS,\n comptime {\n FunctionSelector::from_signature(\"consume((Field),Field)\")\n },\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(\n consumer: AztecAddress,\n chain_id: Field,\n version: Field,\n inner_hash: Field\n) -> 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 comptime {\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\")\n },\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 comptime {\n FunctionSelector::from_signature(\"set_reject_all(bool)\")\n },\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"75":{"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"},"76":{"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(self.serialize(), GENERATOR_INDEX__SIGNATURE_PAYLOAD)\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_array(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"},"78":{"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(self.serialize(), GENERATOR_INDEX__FEE_PAYLOAD)\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_array(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"},"84":{"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"},"85":{"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"},"86":{"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};\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"},"88":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::{\n header::Header, address::AztecAddress, constants::CANONICAL_KEY_REGISTRY_ADDRESS,\n storage::map::derive_storage_slot_in_map\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, OUTGOING_INDEX}\n},\n state_vars::{public_mutable::PublicMutable, map::Map}\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 that gets app-siloed nullifier secret key for a given `npk_m_hash`. This function is used\n// in unconstrained contexts only - in Note::compute_nullifier_without_context which in turn is called by\n// `compute_note_hash_and_optionally_a_nullifier` function that is used by the NoteProcessor. The safe alternative\n// is `request_nsk_app` function define on `PrivateContext`.\nunconstrained pub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// A helper function that gets app-siloed outgoing viewing key for a given `ovpk_m_hash`. This function is used\n// in unconstrained contexts only - when computing unconstrained note logs. The safe alternative is `request_ovsk_app`\n// function defined on `PrivateContext`.\nunconstrained pub fn get_ovsk_app(ovpk_m_hash: Field) -> Field {\n get_key_validation_request(ovpk_m_hash, OUTGOING_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"}}}
1
+ {"transpiled":true,"noir_version":"0.35.0+b848cc128d2dc2b461581f21a35509a1af9065a7-x8664","name":"EcdsaRAccount","functions":[{"name":"constructor","is_unconstrained":false,"custom_attributes":["private","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":"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":"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":"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":"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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","brillig_names":["get_contract_instance_internal","get_public_keys_and_partial_address","decompose_hint","notify_created_note_oracle_wrapper","get_key_validation_request","random","lt_32_hint","lte_16_hint","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","build_msg_block_iter","emit_encrypted_note_log_oracle_wrapper","directive_invert","directive_integer_quotient"]},{"name":"compute_note_hash_and_optionally_a_nullifier","is_unconstrained":true,"custom_attributes":[],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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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","brillig_names":["compute_note_hash_and_optionally_a_nullifier"]},{"name":"entrypoint","is_unconstrained":false,"custom_attributes":["private"],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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":"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":"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":"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":"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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vTXKWw9562FvjfbWGG894q1HvTXWW+O89Zi3HvfWeG9N8NYT3nrSWxO9NclbT3lrsremeGuqt5721jPemuat6d561lszvDXTW7O89Zy3nvfWbG/N8dYL3nrRW3O9Nc9bL3nrZW/N99YCby301iveWuStxd561VuveWuJt5Z663VvLfPWcm+t8NYb3lrprVXeWu2tN731lrfWeGutt9721jpvrffWBm+94613vbXRW5u89Z633vfWZm9t8dZWb33grW3e2u6tD731kbd2eGuntz721ife2uWt3d761FufeWuPt/Z663NvfeGtfd7a760vvfWVtw5466C3vvbWN9761luHvPWdt7731mFvHfHWD9760VtHvXXMWz9562dvHffWCW/94q1fvfWbt056yw8GqbyV2ltpvJXWW+m8ld5bGbyV0VuZvJXZW1m8dZa3snorm7eyeyuHt872Vk5v5fJWbm/l8VZeb+XzVn5vFfBWQW8V8tY53jrXW4W9VcRbRb1VzFvFvVXCWyW9dZ63SnmrtLfO99YF3irjrbLeutBbF3mrnLfKe8sPcs5bFbxV0VuVvFXZW1W8VdVb1bxV3Vs1vFXTWxd76xJv1fJWbW9d6q3LvHW5t+p46wpvXemtut6q562rvHW1t+p7q4G3rvHWtd5q6K1G3rrOW9d7q7G3mnjrBm/d6K2m3mrmrZu8dbO3mnurhbdu8dat3mrprVbeus1brb3VxlttvdXOW+291cFbHb11u7c6eauzt7p4q6u37vBWN29191YPb93prZ7e6uWt3t7q462+3urnrf7eustbA7w10Ft3e+sebw3y1mBv3eutId66z1tDvXW/t4Z5a7i3RnjrAW896K2R3hrlrYe89bC3RntrjLce8daj3hrrrXHeesxbj3trvLcmeOsJbz3prYnemuStp7w12VtTvDXVW0976xlvTfPWdG89660Z3prprVnees5bz3trtrfmeOsFb73orbnemuetl7z1srfme2uBtxZ66xVvLfLWYm+96q3XvLXEW0u99bq3lnlrubdWeOsNb6301ipvrfbWm956y1trvLXWW297a5231ntrg7fe8da73trorU3ees9b73trs7e2eMv/jnL/e5f975L1vw/V/35Q//sy/e8T9L8Tz/+OOP/71/zvNvO/N+xTb/nfd+V/l5T/PU3+dyD53y/kf3eP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","debug_symbols":"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uy49jGqv/GuvdelxVHvlX3ute+lAqrX8a991Lx1JtZZ/7bsuPZRqxzDTU6n2yoffdffKv/Za99LBVGv5177rXjqaai3/0ndduXY2lVw7m0ro2VR75V96rSsL/K67V/6l17py7WwquXY2lVw7m0qunU0l9Gyqrw2z0LOp9sq/9FpX6NlUe+Vf+6577WwquXY2lVw7m0qunU0l186mEno21V75117r0rOp9sq/9lr32tlUcu1sKrl2NpVcO5tK6NlUO4aZnk21Uz49m2qv/Guvda+dTSXXzqaSa2dTybWzqeTa2VRy7WwqoWdT7ZV/7bUuPZtqr/xrr3WvnU0l186mkmtnU8m1s6mEnk21Y5jp2VR75V97rUvPptop/9rZVHLtbCq5djaVXDubSq6dTSXXzqYSejbVXvnXXuvSs6n2yr/2Wvfa2VRy7WwquXY2lVw7m0ro2VQ7hpmeTbVX/rXXuvRsqr3yr33XvXY2lVw7m0qunU0l186mkmtnUwk9m2qv/GuvdenZVHvlX3ute+1sKrl2NpVcO5tKrp1NJfRsqh3DTM+m2isfftfdK//aa91rZ1PJtbOp5NrZVHLtbCq5djaVXDubSujZVHvlX3utS8+m2iv/2mvda2dTybWzqeTa2VRy7WwqpWdTfW2YlZ5NtVf+pde6Ss+m2iv/0nddvXY2lV47m0qvnU2l186m0mtnUyk9m2qv/EuvdZWeTbVX/qXXunrtbCq9djaVXjubSq+dTaX0bKodw0zPptopn55NtVf+tde6186m0mtnU+m1s6n02tlUeu1sKr12NpXSs6n2yr/2WpeeTbVX/rXXutfOptJrZ1PptbOp9NrZVErPptoxzPRsqr3yr73WpWdT7ZR/7WwqvXY2lV47m0qvnU2l186m0mtnUyk9m2qv/GuvdenZVHvlX3ute+1sKr12NpVeO5tKr51NpfRsqh3DTM+m2iv/2mtdejbVXvnXvuteO5tKr51NpdfOptJrZ1PptbOplJ5NtVf+tde69GyqvfKvvda9djaVXjubSq+dTaXXzqZSejbVjmGmZ1PtlQ+/6+6Vf+217rWzqfTa2VR67WwqvXY2lV47m0qvnU2l9GyqvfKvvdalZ1PtlX/tte61s6n02tlUeu1sKr12NpXSs6l2DDM9m2qv/GuvdenZVHvlX/uue+1sKr12NpVeO5tKr51NpdfO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","brillig_names":["get_note_internal","decompose_hint","get_auth_witness","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","enqueue_public_function_call_internal","call_private_function_internal","debug_log_oracle_wrapper","notify_set_min_revertible_side_effect_counter_oracle_wrapper","directive_invert","directive_integer_quotient"]},{"name":"verify_private_authwit","is_unconstrained":false,"custom_attributes":["private","noinitcheck","view"],"abi":{"error_types":{"12265343917440897559":{"error_kind":"fmtstring","item_types":[],"length":20}},"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":"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":"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":"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":"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":"H4sIAAAAAAAA/+19BZgUx/P2nnI4wQkBjkDcdlbudqPE3d0gu3d7QEJwdwsQCJAgEYi7+y/u7u7u7u75qqE71DV9tls1N/X/bp6nuKF2puet6u56q0bzQquXG5uFQlOar17PAynQf/NBSi2d+YvXix3btXLo2jh07Ry69g5dF5B+lq6XY7tSh663Q7e+Q7eh1uElT//tp/9Gw2WxWKY8kvGiXiocSaYT8XAsni5LeAkvnohXRhLRaCYRS5Qn08nycNKLRTNeVTwZrQqvXvbIX9NWOKclUsGJc08ynOEwJ869sscZsRUKW2eQQoRV9dc/en2j0Jr1PZF+L71u9tsb/r8PyL4g++Wv0Zsl3/JBOLfF25DQn/vT9buH55Zqt9TyQx6xHwoJ/RBiHLMH0MWADCfOA7PHGbcVrrl1AJpDajHrPdD6gdbcOgj+fzDIISCHOuZWAfGY6knY1kH5dH1zGFN8pvbfRoRtHUzov8MJ/eca24ehsX04Wj8ErR9qje0j4P9HghwFcrQe20WozZqWfkT+bYaOVarXjwEcx4L0BxkAchxICiQNUgFSCZIBqQIZCDIIZDDI8SAngAwBORFkKMgwkOEgI0BGgowCGQ0yBmQsyDiQ8SATQCaCTMqvjmUy/H8KyFSQaSDTQWaAzASZBTIb5CSQOSBzQeaBnAwyH2QByCkgC0EWgSwGORXkNJAlIEtBloEsBzkd5AyQM0HOAlkBsjJ/NYaz9d9z9N9z9d/z9N/z80PVk0rlwBJLd6xD19+hG+DQHefQpRy6tENX4dBVOnQZh67KoRvo0A1y6AY7dMc7dCc4dEMcuhMduqEO3TCHbrhDN8KhG+nQjXLoRjt0Yxy6sQ7dOIduvEM3waGb6NBNcugmO3RTHLqpDt00h266QzfDoZvp0M1y6GY7dCc5dHMcurkO3TyH7mSHbr5Dt8ChO8WhW+jQLXLoFjt0pzp0pzl0Sxy6pQ7dModuuUN3ukN3hkN3pkN3lkO3wqFb6dCpgFgaqr7oWBnqp//mSuZ5IToSVIGdqK1ai4hwbot3Xj6d/4o0vrzQ2kuvtXF74RyWY2z/5tDasWv3Vdat9Xf1e5atDXCPoaxaO66m8ZhFa6max3aDW0vXNk8a2FpF7XOuQa1V1jV/G9Bapu5YUO/WquoTV+rZ2sD6xah6tTaovvGuHq0Nrn/srLO14xsSh+to7YSGxfRaWxvSUH6opbUTG841NbY2NBveqqG1YdlxoLO14dnyqaO1Edm25WhtZPZtrdXaqFzaslobnVtb1Vobk2tbqLWxubf1X2vjKNrSrY2naWtVaxOo2oLWJhLmkSZfVssF+j8XYqVazFkkdND/84larolvtBlPsu/oi3AuVktIKHPti5jffRHOzmoJiW+ufRFvnL4IN9RqCQl6rn1R1ph9Ea6/1RIKiVz7orzx+yJcH6slFDy59kUiKH0Rrt1qCYVZrn2RDFZfhGuyWkIBmWtfbB3EvgivbbWEQjfXvtgmuH0RxlZLKMhz7Yttg94Xq5dqJw5ytfmC+rdVUUdb3oWEuLYT0heE5wc8wvrWw/VZrn2xvZC+IKyDPMI83ksQ9sUOQvqCMN/zCPMVbxvCvugnpC8Iec0jjMve9oR9sSNTX1Df7Uo4fz3C8edR+q+2m0Wob3KZlE+HOx/hvEj/52L7Igr1gJhEmDRdRJjMXZzvz4CgvntoMuFFqSn5dBelpubTXeyZlk93sWd6Pt3Fnhn5dBdRZubTXUSZlU93EWV2XfOiAa2dVPccq3drc+ozX+vZ2tz6zf16tTavvnGkHq2dXP+YVGdr8xsS3+pobUHDYmWtrZ3S0LhbS2sLGx7Da2xtUTZ8UENri7PjFmdrp2bLU47WTsu2LUdrS7Jva63WlubSltXastzaqtba8lzbQq2dnntb/7V2BkVburUzadpa1dpZVG1BayuYEt9L9H8utRNf6ruHJCRqOT8fK+TuIQkJZa59cZCQu4ckJL659sXBQu4ekpCg59oXhwi5e0hCIZFrXxwq5O4hCQVPzu9PEHL3kITCLOd3MQi5e0hCAZlrXxwh5O4hCYVurn1xpJC7hyQU5Ln2xVFCrgavILT5kvq3VecFp0sJcR0tpC8Izw94hPWtdzDhlfljhPQFYR3kEebx3mGEfXGskL4gzPc8wnzFO5KwL/oL6QtCXvMI47J3DGFfDBBy9xDh/PUIx583QOjdQyvz6XDnI5yX6f9cbl9EoR4QKwmTpssIk7nL82UOiLOZBsQV+j9Xcg+IswkHxBWEA+JKQseqTm8ZWv0W8JDlv2g4FinLlMVSmUw0nEkmExVetCJRkclUVKaiqfLyRLi8Mp1JVcYj6YpIVTRdFc6kMom4l46ly71whfeP1Z4H9sbLUuGyRFVZOBqORCOxcEWyLB2rTMVj5bGyMmgumk6Ue15FPOJVlMcSES+S8uLpinA0lkmV/UPbv2F7wEcSkXhFebKioiwVr0inM5mq8sqyVKLKS5elvEg6CmBS0WgiFgunMlWZdCyaLPNiiYoE9FB5RTiWXMte6NqqSk9Zly4Pl0Uqy9Jx1fGZaFk6GS6PlkXj4aqyqnQq7EUiiYoYmBwJJ5PxcLIqXh72Mtz2hjOVaS8TSUYrohWZpJeuAiMysJpKxcOVkYp4zKtKJSthAAIuMDcczVSlvYqqVKQiHY3Gy6vWsjca8yrLyuNVKejdTEUmCh0OoyNakYrGwA/RtJdMl2WS5WWRcKysHHQxcF8kVhEDL1dmonF+e8OVqcpIJB6OJ6JVkVSyKpyqSIPNlZnKKg88DhMxHY6CP1KZ8ni0CnrKi6UTiVRVwqtIxyNr4UuWR9NhcFRFKlURjSYzmRiYW5lKx71oJJmMhKvK06sGTxgaAnUmXllVVh6OhdPRcDhZFmEfz1XRaCySSYbDGRhdYEckkYSIk8qUJSCulEcTVZUVZWBdJYwBL1yZKU9HI+GKMMzJcCScKK9cq3/TVcl4AvaJgteSlfFkBCJZOAohrCwJE7+ssqwqGYklYTpHYjFoMRr3qmAIRCqrwBUV4QR7/8ZgHkVhMkIoDUNMraxIRDKJVDyeSsYjlTEFIxIvq8qEIZZWJmNJUMOcS4XDMA6go9Yef6mEGvll4cow/FMVr0xAmI4lK2OJKgiNscowTP9wOpnIVJZ75alkOh6NpKrKohD54tFwedLjsLeVbkutq+fNzNuNL0TrF6H1i9H6JWj9UrR+GVq/HK1fgdav1OuE9pD7R7V3FeC8GuSa/NVvc24W8ifZOT+fflyr5dp8RsCqcep2ryNMmrjsvg5ljkTtsn7C4Hq6wRXlxHlD9jijtkJhs1/zfj0KSOei9avQ+g351V/zfiP8/yaQm0H+l8//eZD9Ccf/LXT9Xu3zIKrd0tDqAJkf8idAHsEQIPGbiG+F9m8DuR3kDpA7Qe4CuRvkHpB7Qe4DuR/kAZAHQR4CeRjkEZBHQR4DeRzkCZAnQZ4CeRrkGZBnQZ4DeR7kBZAXQV4CeRnkFZBXQV4DeR3kDZA3Qd4CeRvkHZB3Qd4DeR/kA5APQT4C+RjkE5BPQT4D+RzkC5AvQb4C+RrkG5BvQb4D+R7kB5AfQX4C+Rnkl3zdmSVoQHN25q35PIEzRInTq37a4Ff9n9/MiDezQf3wi6VTG5VYoKhPL9xKECkyVWoJe78SRp3fmDqXOtJS2vx7tbZgWyhhyjLxcFkmAfl9slwV5BWpqqpKKN+g+EmnY1D4eNGqNFTs6UgSDpvMxCtWXVP3/Ew7f2eIqmr5I58R8B8MaeefhIOBy+4/UTgiateJlSIA/JlP3+5fxIPVBGvVrvqgop8MeJtABvxb/+cfmwH/djDgPz4w4G2EDPg3YQD4RwgDUtr8r1AG/JeJAf8b7ByAVePU7eYVBJsBld15BWv8S9QuCwP+o7FSt5tfwMOAql2/GfB2gQxYoMdfof2BZfWDzYBqI24GvJ2QAQsIA0BhgQwGpLS5qEAmAxYV8DBgcQEj4GIGBmwWcAZUdjcTwoCFGit1uyVMDFjSCAx4h0AGbK7HXwubAZs7GLCFDwx4ByEDNicMAC2EMCClzS2FMmBLJgZsVcAIuBUDA7YOOAMqu1sLYcAWGit1u22YGLBNIzDgnQIZsK0ef+1sBmzrYMB2PjDgnYQM2JYwALQTwoCUNq8jlAHXYWLA9gWMgNszMGCHgDOgsruDEAZsp7FSt9uRiQE7NgID3iWQATvp8dfZZsBODgbs7AMD3kXIgJ0IA0BnIQxIaXMXoQzYhYkBuxYwAu7KwIDdAs6Ayu5uQhiws8ZK3e66TAy4biMw4N0CGbC7Hn/r2QzY3cGA6/nAgHcTMmB3wgCwnhAGpLS5h1AG7MHEgD0LGAH3ZGDAXgFnQGV3LyEMuJ7GSt1uKRMDljYCA94jkAF76/G3vs2AvR0MuL4PDHgPIQP2JgwA6wthQEqb+whlwD5MDNi3gBFwXwYG3CDgDKjs3kAIA66vsVK3uyETA27YCAx4r0AG3EiPv41tBtzIwYAb+8CA9xIy4EaEAWBjIQxIafMmQhlwEyYG3LSAEfCmDAy4WcAZUNm9mRAG3FhjpW53cyYG3LwRGPA+gQy4hR5/W9oMuIWDAbf0gQHvI2TALQgDwJZCGJDS5q2EMuBWTAwYLmAEHGZgQC/gDKjs9oQw4JYaK3W7ESYGjDQCA94vkAGjevzFbAaMOhgw5gMD3k/IgFHCABATwoCUNseFMmCciQHLChgBlzEwYHnAGVDZXS6EAWMaK3W7CSYGTDQCAz4gkAGTevxtbTNg0sGAW/vAgA8QMmCSMABsLYQBKW3eRigDbsPEgNsWMALeloEBtws4Ayq7txPCgFtrrNTtbs/EgNs3AgM+KJABd9Djr5/NgDs4GLCfDwz4ICED7kAYAPoJYUBKm3cUyoA7MjHgTgWMgHdiYMCdA86Ayu6dhTBgP42Vut1dmBhwl0ZgwIcEMuCuevztZjPgrg4G3M0HBnyIkAF3JQwAuwlhQEqbdxfKgLszMeAeBYyA92BgwD0DzoDK7j2FMOBuGit1u3sxMeBejcCADwtkwL31+NvHZsC9HQy4jw8M+DAhA+5NGAD2EcKAlDbvK5QB92ViwP0KGAHvx8CA+wecAZXd+wthwH00Vup2D2BiwAMagQEfEciAB+rxd5DNgAc6GPAgHxjwEUIGPJAwABwkhAEpbT5YKAMezMSAhxQwAj6EgQEPDTgDKrsPFcKAB2ms1O0exsSAhzUCAz4qkAEP1+PvCJsBD3cw4BE+MOCjhAx4OGEAOEIIA1LafKRQBjySiQGPKmAEfBQDAx4dcAZUdh8thAGP0Fip2z2GiQGPaQQGfEwgAx6rx19/mwGPdTBgfx8Y8DFCBjyWMAD0F8KAlDYPEMqAA5gY8LgCRsDHMTBgKuAMqOxOCWHA/hordbtpJgZMNwIDPi6QASv0+Ku0GbDCwYCVPjDg44QMWEEYACqFMCClzRmhDJhhYsCqAkbAVQwMODDgDKjsHiiEASs1Vup2BzEx4KBGYMAnBDLgYD3+jrcZcLCDAY/3gQGfIGTAwYQB4HghDEhp8wlCGfAEJgYcUsAIeAgDA54YcAZUdp8ohAGP11ip2x3KxIBDG4EBnxTIgMP0+BtuM+AwBwMO94EBnyRkwGGEAWC4EAaktHmEUAYcwcSAIwsYAY9kYMBRAWdAZfcoIQw4XGOlbnc0EwOObgQGfEogA47R42+szYBjHAw41gcGfIqQAccQBoCxQhiQ0uZxQhlwHBMDji9gBDyegQEnBJwBld0ThDDgWI2Vut2JTAw4sREY8GmBDDhJj7/JNgNOcjDgZB8Y8GlCBpxEGAAmC2FASpunCGXAKUwMOLWAEfBUBgacFnAGVHZPE8KAkzVW6nanMzHg9EZgwGcEMuAMPf5m2gw4w8GAM31gwGcIGXAGYQCYKYQBKW2eJZQBZzEx4OwCRsCzGRjwpIAzoLL7JCEMOFNjpW53DhMDzmkEBnxWIAPO1eNvns2Acx0MOM8HBnyWkAHnEgaAeUIYkNLmk4Uy4MlMDDi/gBHwfAYGXBBwBlR2LxDCgPM0Vup2T2FiwFMagQGfE8iAC/X4W2Qz4EIHAy7ygQGfI2TAhYQBYJEQBqS0ebFQBlzMxICnFjACPpWBAU8LOAMqu08TwoCLNFbqdpcwMeCSRmDA5wUy4FI9/pbZDLjUwYDLfGDA5wkZcClhAFgmhAEpbV4ulAGXMzHg6QWMgE9nYMAzAs6Ayu4zhDDgMo2Vut0zmRjwzEZgwBcEMuBZevytsBnwLAcDrvCBAV8gZMCzCAPACiEMSGnzSqEMuJKJAc8uYAR8NgMDnhNwBlR2nyOEAVdorNTtnsvEgOc2AgO+KJABz9Pj73ybAc9zMOD5PjDgi4QMeB5hADhfCANS2nyBUAa8gIkBLyxgBHwhAwNeFHAGVHZfJIQBz9dYqdu9mIkBL24EBnxJIANeosffpTYDXuJgwEt9YMCXCBnwEsIAcKkQBqS0+TKhDHgZEwNeXsAI+HIGBrwi4Ayo7L5CCANeqrFSt3slEwNe2QgM+LJABrxKj7+rbQa8ysGAV/vAgC8TMuBVhAHgaiEMSGnzNUIZ8BomBry2gBHwtQwMeF3AGVDZfZ0QBrxaY6Vu93omBry+ERjwFYEMeIMefzfaDHiDgwFv9IEBXyFkwBsIA8CNQhiQ0uabhDLgTUwMeHMBI+CbGRjwfwFnQGX3/4Qw4I0aK3W7tzAx4C2NwICvCmTAW/X4u81mwFsdDHibDwz4KiED3koYAG4TwoCUNt8ulAFvZ2LAOwoYAd/BwIB3BpwBld13CmHA2zRW6nbvYmLAuxqBAV8TyIB36/F3j82AdzsY8B4fGPA1Qga8mzAA3COEASltvlcoA97LxID3FTACvo+BAe8POAMqu+8XwoD3aKzU7T7AxIAPNAIDvi6QAR/U4+8hmwEfdDDgQz4w4OuEDPggYQB4SAgDUtr8sFAGfJiJAR8pYAT8CAMDPhpwBlR2PyqEAR/SWKnbfYyJAR9rBAZ8QyADPq7H3xM2Az7uYMAnfGDANwgZ8HHCAPCEEAaktPlJoQz4JBMDPlXACPgpBgZ8OuAMqOx+WggDPqGxUrf7DBMDPtMIDPimQAZ8Vo+/52wGfNbBgM/5wIBvEjLgs4QB4DkhDEhp8/NCGfB5JgZ8oYAR8AsMDPhiwBlQ2f2iEAZ8TmOlbvclJgZ8qREY8C2BDPiyHn+v2Az4soMBX/GBAd8iZMCXCQPAK0IYkNLmV4Uy4KtMDPhaASPg1xgY8PWAM6Cy+3UhDPiKxkrd7htMDPhGIzDg2wIZ8E09/t6yGfBNBwO+5QMDvk3IgG8SBoC3hDAgpc1vC2XAt5kY8J0CRsDvMDDguwFnQGX3u0IY8C2Nlbrd95gY8L1GYMB3BDLg+3r8fWAz4PsOBvzABwZ8h5AB3ycMAB8IYUBKmz8UyoAfMjHgRwWMgD9iYMCPA86Ayu6PhTDgBxordbufMDHgJ43AgO8KZMBP9fj7zGbATx0M+JkPDPguIQN+ShgAPhPCgJQ2fy6UAT9nYsAvChgBf8HAgF8GnAGV3V8KYcDPNFbqdr9iYsCvGoEB3xPIgF/r8feNzYBfOxjwGx8Y8D1CBvyaMAB8I4QBKW3+VigDfsvEgN8VMAL+joEBvw84Ayq7vxfCgN9orNTt/sDEgD80AgO+L5ABf9Tj7yebAX90MOBPPjDg+4QM+CNhAPhJCANS2vyzUAb8mYkBfylgBPwLAwP+GnAGVHb/KoQBf9JYqdv9jYkBf2sEBvxAIAP+rsffHzYD/u5gwD98YMAPCBnwd8IA8IcQBqS0+U+hDPgnEwP+VcAI+C8GBvw74Ayo7P5bCAP+obFSt/sPEwP+0wgM+KFABvzXjL/CUHW2+9fBgGojbgb8kJAB/6UMAIUyGJDS5rxCmQyYV8jDgPmFjIBV49TtFhQGmwGV3QWFaxxM1C4LA4Y0Vup2Cwt5GFC16zcDfiSQAYv0+Cu2GVD9YDNgsQ8M+BEhAxYRBoBiIQxIaXMzoQzYjIkBSwoZAZcwMGDzgDOgsru5EAYs1lip223BxIAtGoEBPxbIgC31+GtlM2BLBwO28oEBPyZkwJaEAaCVEAaktLm1UAZszcSAbQoZAbdhYMC2AWdAZXdbIQzYSmOlbrcdEwO2awQG/EQgA66jx197mwHXcTBgex8Y8BNCBlyHMAC0F8KAlDZ3EMqAHZgYsGMhI+CODAzYKeAMqOzuJIQB22us1O12ZmLAzo3AgJ8KZMAuevx1tRmwi4MBu/rAgJ8SMmAXwgDQVQgDUtrcTSgDdmNiwHULGQGvy8CA3QPOgMru7kIYsKvGSt3uekwMuF4jMOBnAhmwhx5/PW0G7OFgwJ4+MOBnhAzYgzAA9BTCgJQ29xLKgL2YGLC0kBFwKQMD9g44Ayq7ewthwJ4aK3W76zMx4PqNwICfC2TAPnr89bUZsI+DAfv6wICfEzJgH8IA0FcIA1LavIFQBtyAiQE3LGQEvCEDA24UcAZUdm8khAH7aqzU7W7MxIAbNwIDfiGQATfR429TmwE3cTDgpj4w4BeEDLgJYQDYVAgDUtq8mVAG3IyJATcvZAS8OQMDbhFwBlR2byGEATfVWKnb3ZKJAbdsBAb8UiADbqXHX9hmwK0cDBj2gQG/JGTArQgDQFgIA1La7AllQI+JASOFjIAjDAwYDTgDKrujQhgwrLFStxtjYsBYIzDgVwIZMK7HX5nNgHEHA5b5wIBfETJgnDAAlAlhQEqby4UyYDkTAyYKGQEnGBgwGXAGVHYnhTBgmcZK3e7WTAy4dSMw4NcCGXAbPf62tRlwGwcDbusDA35NyIDbEAaAbYUwIKXN2wllwO2YGHD7QkbA2zMw4A4BZ0Bl9w5CGHBbjZW63X5MDNivERjwG4EMuKMefzvZDLijgwF38oEBvyFkwB0JA8BOQhiQ0uadhTLgzkwMuEshI+BdGBhw14AzoLJ7VyEMuJPGSt3ubkwMuFsjMOC3Ahlwdz3+9rAZcHcHA+7hAwN+S8iAuxMGgD2EMCClzXsKZcA9mRhwr0JGwHsxMODeAWdAZffeQhhwD42Vut19mBhwn0ZgwO8EMuC+evztZzPgvg4G3M8HBvyOkAH3JQwA+wlhQEqb9xfKgPszMeABhYyAD2BgwAMDzoDK7gOFMOB+Git1uwcxMeBBjcCA3wtkwIP1+DvEZsCDHQx4iA8M+D0hAx5MGAAOEcKAlDYfKpQBD2ViwMMKGQEfxsCAhwecAZXdhwthwEM0Vup2j2BiwCMagQF/EMiAR+rxd5TNgEc6GPAoHxjwB0IGPJIwABwlhAEpbT5aKAMezcSAxxQyAj6GgQGPDTgDKruPFcKAR2ms1O32Z2LA/o3AgD8KZMABevwdZzPgAAcDHucDA/5IyIADCAPAcUIYkNLmlFAGTDExYLqQEXCagQErAs6Ayu4KIQx4nMZK3W4lEwNWNgID/iSQATN6/FXZDJhxMGCVDwz4EyEDZggDQJUQBqS0eaBQBhzIxICDChkBD2JgwMEBZ0Bl92AhDFilsVK3ezwTAx7fCAz4s0AGPEGPvyE2A57gYMAhPjDgz4QMeAJhABgihAEpbT5RKAOeyMSAQwsZAQ9lYMBhAWdAZfcwIQw4RGOlbnc4EwMObwQG/EUgA47Q42+kzYAjHAw40gcG/IWQAUcQBoCRQhiQ0uZRQhlwFBMDji5kBDyagQHHBJwBld1jhDDgSI2Vut2xTAw4VjOgzXzUfXgEIeuV6nbGAfbxIBNAJoJMApkMMgVkKsg0kOkgM0BmgswCmQ1yEsgckLkg80BOBpkPsgDkFJCFIItAFoOcCnIayBKQpSDLQJaDnK6ZEPtynCY+rBvv0E1w6CY6dJMcuskO3RSHbqpDN82hm+7QzXDoZjp0sxy62Q7dSQ7dHIdurkM3z6E72aGb79AtcOhOcegWOnSLHLrFDt2pDt1pDt0Sh26pQ7fMoVvu0J3uSLJMiOyn/4ZzW6rN2Vzj17hCuoRtPCFfDWvGk7DZfZGLzaovJpD4b3W/Tsy9rYj2nzeJsC+GB7kvYv/h9CbnZnMY2exNyaWtSDX/eVMJ+2JEMPsibOH0pmVpc1nVWjZ707NrK+HwnzeDsqgMWl8knDi9mQ23ubwGm71ZDW2rvEb/ebMpi93g9EWkFpzeSQ2xubxWm7059W+rog7/eXMJ+2J0EPqivE6c3rz62Ryuh83eyfVpK1wv/3nzCftiTOP2RbyeOL0Fddkcq7fN3im1thWraoD/vIWEfTG2sfqivEE4vUU125xooM3e4hraSlY12H/eqYR9Mc7/vghngdM7zWVzOCubvSVrt+Vl6T9vKWFfjPezLyqzxuktq25zNAebveWorUhVTv7zTifsiwk+9UU4t8UjPD/gEda3Hq7Pcu2LiUL6grAO8gjzeG80YV9MEtIXhPmeR5iveOMI+2KykL4g5DWPMC57Ewn7YgpTX1DfmEA4fz3C8edx+c++MSHXfqbMMc4gu2YaDft5YwId7uo3JpxZyAj4TIYbE84K+I0Jyu6zCtc4mKjdsJ+3o51ONtgqfbsdbYX2+Up9Ef6/q6Ir9CDEupWF/LejUUQtc3VzBeGgX0ncuRwTfEUh/d0yKwplsN1ywr4+m8zmspifbHc2E9udU8gI+BwGtjs34Gyn7D5XONstJxtsyQoHXBa2O0/7/Hyb7c5zsN35PrDdckK2O49w0J/P1LnUUZ/S5gvooqcXCtEz8Vk6aOQTj0HK0uBC4myBOmipPr6QIUsKut1m7FDbfZGQ7JByjF/MHCfCuS2e6pOLGeLEhYQ+vETAfLmEYb5cSpyhm1zlUoSVyxfU4+liwvF0GZNfLytcu3Kjjk3LCP1wOZkfYhk/K9fLifvPLFcUMgK+gqFyvTLglauy+0rhlesyssGWjjjgslSuV2mfX21Xrlc5KterfahcKaKWqVyvIhz0VzN1LnXUp7T5moBnpJfpoFFA7MPLCH1IGXivDXh/qPFyLUN2S2g3yxPFZhxSZ7KUY+e6gFdGyofXMfjwWkIfXi/krARl/Loh4DFH9ckNDDHnRqbK70bGitr4gnoOUY6nm5j8epMPFTXlne43k/mhPOJnRX0zcf+Z5X+FjID/x1BR3xLwilrZfYvwinop2WBLZBxwWSrqW7XPb7Mr6lsdFfVtPlTUFFHLVNS3Eg7625g6lzrqU9p8e8CzqZt00KCuqG8i9CFl4L0j4P2hxssdDNktod0sFbUZh9SZLOXYuTPgFbXy4Z0MPryD0Id3CamoKePX3QGPOapP7maIOfcwVX73MFbUxhfUc4hyPN3L5Nd7faiolxD64T4yP2R8fcnpfcT9Z5b7CxkB389QUT8Q8Ipa2f2A8Ip6Cdlg86occFkq6ge1zx+yK+oHHRX1Qz5U1BRRy1TUDxIO+oeYOpc66lPa/HDAs6l7ddCgrqjvJfQhZeB9JOD9ocbLIwzZLaHdLBW1GYfUmSzl2Hk04BW18uGjDD58hNCHjwmpqCnj1+MBjzmqTx5niDlPMFV+TzBW1MYX1HOIcjw9yeTXJ32oqE8j9MNTZH6I+lpRP0Xcf2Z5upAR8NMMFfUzAa+old3PCK+oTyMbbBW+VdTPap8/Z1fUzzoq6ud8qKgpopapqJ8lHPTPMXUuddSntPn5gGdTT+qgQV1RP0noQ8rA+0LA+0ONlxcYsltCu1kqajMOqTNZyrHzYsArauXDFxl8+AKhD18SUlFTxq+XAx5zVJ+8zBBzXmGq/F5hrKiNL6jnEOV4epXJr6/6UFFTvmv+NTI/pHx93+VrxP1nltcLGQG/zlBRvxHwilrZ/YbwivpUssFW5tv7Lt/UPn/LrqjfdFTUb/lQUVNELVNRv0k46N9i6lzqqE9p89sBz6Ze1UGDuqJ+ldCHlIH3nYD3hxov7zBkt4R2s1TUZhxSZ7KUY+fdgFfUyofvMvjwHUIfviekoqaMX+8HPOaoPnmfIeZ8wFT5fcBYURtfUM8hyvH0IZNfP/Shol5M6IePyPwQSfpZUX9E3H9m+biQEfDHDBX1JwGvqJXdnwivqBeTDbbKcgdclor6U+3zz+yK+lNHRf2ZDxU1RdQyFfWnhIP+M6bOpY76lDZ/HvBs6kMdNKgr6g8JfUgZeL8IeH+o8fIFQ3ZLaDdLRW3GIXUmSzl2vgx4Ra18+CWDD78g9OFXQipqyvj1dcBjjuqTrxlizjdMld83jBW18QX1HKIcT98y+fVbHyrqRYR++I7MD+mEnxX1d8T9Z5bvCxkBf89QUf8Q8Ipa2f2D8Ip6EdlgiyUccFkq6h+1z3+yK+ofHRX1Tz5U1BRRy1TUPxIO+p+YOpc66lPa/HPAs6lvddCgrqi/JfQhZeD9JeD9ocbLLwzZLaHdLBW1GYfUmSzl2Pk14BW18uGvDD78hdCHvwmpqCnj1+8BjzmqT35niDl/MFV+fzBW1MYX1HOIcjz9yeTXP32oqBcS+uEvMj/Efb3r+y/i/jPL34WMgP9mqKj/CXhFrez+R3hFvZDutJNvd33/a3xeFKpePf/rqKjVRtwVNUXUMhX1v5SDvoinc6mjPqXNeUXBzqb+1EGDuqL+k9CHlIE3P+D9ocaLwkid3RLazVJRm3FInclSjp0CZh+Gc1tWzWWFkdqHeOzk6sNCYh+ahZoDKONXUcBjjuqTIoaYU0zY1ziHKi7iq6iNL6jnEOV4asbk12ZF/BX1KYR+KCHzQyzuZ0VdQtx/ZmlexAi4eRF9uy0IiYXL7hZFaxxM1K6vFfUpdBV12gGXpaJuqX3eyq6oWxatXVG38qGiPoWwom5JOOhbFfF0LnXUp7S5dcCzqWY6aFBX1M0IfUgZeNsEvD/UeGnDkN0S2s1SUZtxSJ3JUo6dtgGvqJUP2zL4sA2hD9sJqagp49c6AY85qk/WYYg57Zkqv/aMFbXxBfUcohxPHZj82sGHinoBYUXdkS6fLPOzou5I3H9m6VTECLgTQ0XdOeAVtbK7s/CKegHdjcEpB1yWirqL9nlXu6Lu4qiou/pQUS8grKi7EA76rkU8nUsd9Slt7hbwbKqDDhrUFXUHQh9SBt51A94farysy5DdEtrNUlGbcUidyVKOne4Br6iVD7sz+HBdQh+uJ6SipoxfPQIec1Sf9GCIOT2ZKr+ejBW18QX1HKIcT72Y/NrLh4p6PmFFXUrmh4SvX88qJe4/s/QuYgTcm6GiXj/gFbWye33hFfV8soq63LevZ/XRPu9rV9R9HBV1Xx8q6vmEFXUfwkHft4inc6mjPqXNGwQ8m+qlgwZ1Rd2L0IeUgXfDgPeHGi8bMmS3hHazVNRmHFJnspRjZ6OAV9TKhxsx+HBDQh9uLKSipoxfmwQ85qg+2YQh5mzKVPltylhRG19QzyHK8bQZk18386GiPpmwot5caEW9OXH/mWWLIkbAWzBU1FsGvKJWdm8pvKI+WWBFvZX2ediuqLdyVNRhHyrqkwkr6q0IB31YSEVNabMX8GxqMx00qCvqzQh9SBl4IwHvDzVeIgzZLaHdLBW1GYfUmSzl2IkGvKJWPowy+DBC6MOYkIqaMn7FAx5zVJ/EGWJOGVPlV8ZYURtfUM8hyvFUzuTXch8q6nmEFXWCzA9xX9/1nSDuP7MkixgBJxkq6q0DXlEru7cWXlHPI6uoU76963sb7fNt7Yp6G0dFva0PFfU8wop6G8JBv20RT+dSR31Km7cLeDZVroMGdUVdTuhDysC7fcD7Q42X7RmyW0K7WSpqMw6pM1nKsbNDwCtq5cMdGHy4PaEP+wmpqCnj144BjzmqT3ZkiDk7MVV+OzFW1MYX1HOIcjztzOTXnX2oqOcSVtS70FXUlX5W1LsQ959Zdi1iBLwrQ0W9W8AramX3bsIr6rl0FXXUAZelot5d+3wPu6Le3VFR7+FDRT2XsKLenXDQ71HE07nUUZ/S5j0Dnk3trIMGdUW9M6EPKQPvXgHvDzVe9mLIbgntZqmozTikzmQpx87eAa+olQ/3ZvDhXoQ+3EdIRU0Zv/YNeMxRfbIvQ8zZj6ny24+xoja+oJ5DlONpfya/7u9DRT2HsKI+gMwPEV+vUR9A3H9mObCIEfCBDBX1QQGvqJXdBwmvqOeQVdSVvl2jPlj7/BC7oj7YUVEf4kNFPYewoj6YcNAfUsTTudRRn9LmQwOeTe2vgwZ1Rb0/oQ8pA+9hAe8PNV4OY8huCe1mqajNOKTOZCnHzuEBr6iVDw9n8OFhhD48QkhFTRm/jgx4zFF9ciRDzDmKqfI7irGiNr6gnkOU4+loJr8e7UNFfRJhRX0MmR+iUT8r6mOI+88sxxYxAj6WoaLuH/CKWtndX3hFfRJZRV1R6YDLUlEP0D4/zq6oBzgq6uN8qKhPIqyoBxAO+uOKeDqXOupT2pwKeDZ1tA4a1BX10YQ+pAy86YD3hxovaYbsltBulorajEPqTJZy7FQEvKJWPqxg8GGa0IeVQipqyviVCXjMUX2SYYg5VUyVXxVjRW18QT2HKMfTQCa/DvShop5NWFEPIvNDxtdr1IOI+88sg4sYAQ9mqKiPD3hFrew+XnhFPZusovZ8u0Z9gvb5ELuiPsFRUQ/xoaKeTVhRn0A46IcU8XQuddSntPnEgGdTA3XQoK6oBxL6kDLwDg14f6jxMpQhuyW0m6WiNuOQOpOlHDvDAl5RKx8OY/DhUEIfDhdSUVPGrxEBjzmqT0YwxJyRTJXfSMaK2viCeg5RjqdRTH4d5UNFPYuwoh5N5oeYrxX1aOL+M8uYIkbAYxgq6rEBr6iV3WOFV9SzyCrqtG8V9Tjt8/F2RT3OUVGP96GinkVYUY8jHPTji3g6lzrqU9o8IeDZ1CgdNKgr6lGEPqQMvBMD3h9qvExkyG4J7WapqM04pM5kKcfOpIBX1MqHkxh8OJHQh5OFVNSU8WtKwGOO6pMpDDFnKlPlN5Wxoja+oJ5DlONpGpNfp/lQUc8krKink/mhPOlnRT2duP/MMqOIEfAMhop6ZsAramX3TOEV9UyyijpR7oDLUlHP0j6fbVfUsxwV9WwfKuqZhBX1LMJBP7uIp3PJz6MS2nxSwLOpaTpoUFfU0wh9SBl45wS8P9R4mcOQ3RLazVJRm3FInclSjp25Aa+olQ/nMvhwDqEP5wmpqCnj18kBjzmqT05miDnzmSq/+YwVtfEF9RyiHE8LmPy6wIeKegZhRX0K3RUaXyvqU4j7zywLixgBL2SoqBcFvKJWdi8SXlHPIKuoY75V1Iu1z0+1K+rFjor6VB8q6hmEFfViwkF/ahFP51JHfUqbTwt4NrVABw3qinoBoQ8pA++SgPeHGi9LGLJbQrtZKmozDqkzWcqxszTgFbXy4VIGHy4h9OEyIRU1ZfxaHvCYo/pkOUPMOZ2p8judsaI2vqCeQ5Tj6Qwmv57hQ0U9nbCiPpPuGnXYz4r6TOL+M8tZRYyAz2KoqFcEvKJWdq8QXlFPJ6uok2EHXJaKeqX2+dl2Rb3SUVGf7UNFPZ2wol5JOOjPLuLpXOqoT2nzOQHPps7QQYO6oj6D0IeUgffcgPeHGi/nMmS3hHazVNRmHFJnspRj57yAV9TKh+cx+PBcQh+eL6SipoxfFwQ85qg+uYAh5lzIVPldyFhRG19QzyHK8XQRk18v8qGinkZYUV9Ml096flbUFxP3n1kuKWIEfAlDRX1pwCtqZfelwivqaWQVdVmVAy5LRX2Z9vnldkV9maOivtyHinoaYUV9GeGgv7yIp3Opoz6lzVcEPJu6SAcN6or6IkIfUgbeKwPeH2q8XMmQ3RLazVJRm3FInclSjp2rAl5RKx9exeDDKwl9eLWQipoyfl0T8Jij+uQahphzLVPldy1jRW18QT2HKMfTdUx+vc6HinoqYUV9Pd09j75+Pet64v4zyw1FjIBvYKiobwx4Ra3svlF4RT2V7s1kvn096ybt85vtivomR0V9sw8V9VTCivomwkF/cxFP51JHfUqb/xfwbOo6HTSoK+rrCH1IGXhvCXh/qPFyC0N2S2g3S0VtxiF1Jks5dm4NeEWtfHgrgw9vIfThbUIqasr4dXvAY47qk9sZYs4dTJXfHYwVtfEF9RyiHE93Mvn1Th8q6imEFfVdZH7I+HqN+i7i/jPL3UWMgO9mqKjvCXhFrey+R3hFPYXu61m+XaO+V/v8PruivtdRUd/nQ0U9hbCivpdw0N9XxNO51FGf0ub7A55N3amDBnVFfSehDykD7wMB7w81Xh5gyG4J7WapqM04pM5kKcfOgwGvqJUPH2Tw4QOEPnxISEVNGb8eDnjMUX3yMEPMeYSp8nuEsaI2vqCeQ5Tj6VEmvz7qQ0U9mbCifozMD1VxPyvqx4j7zyyPFzECfpyhon4i4BW1svsJ4RX1ZLKKOpx2wGWpqJ/UPn/KrqifdFTUT/lQUU8mrKifJBz0TxXxdC511Ke0+emAZ1OP6qBBXVE/SuhDysD7TMD7Q42XZxiyW0K7WSpqMw6pM1nKsfNswCtq5cNnGXz4DKEPnxNSUVPGr+cDHnNUnzzPEHNeYKr8XmCsqI0vqOcQ5Xh6kcmvL/pQUU8irKhfIvND0te7vl8i7j+zvFzECPhlhor6lYBX1MruV4RX1JPonqP27a7vV7XPX7Mr6lcdFfVrPlTUkwgr6lcJB/1rRTydSx31KW1+PeDZ1Is6aFBX1C8S+pAy8L4R8P5Q4+UNhuyW0G6WitqMQ+pMlnLsvBnwilr58E0GH75B6MO3hFTUlPHr7YDHHNUnbzPEnHeYKr93GCtq4wvqOUQ5nt5l8uu7PlTUEwkr6vforlH7+q7v94j7zyzvFzECfp+hov4g4BW1svsD4RX1RLq7vn171/eH2ucf2RX1h46K+iMfKuqJhBX1h4SD/qMins6ljvqUNn8c8GzqXR00qCvqdwl9SBl4Pwl4f6jx8glDdktoN0tFbcYhdSZLOXY+DXhFrXz4KYMPPyH04WdCKmrK+PV5wGOO6pPPGWLOF0yV3xeMFbXxBfUcohxPXzL59UvtVz+rywmFtLaY5asiRsBfMVSXXwe8ulR2f81QXbqwUkyQrxkmMeHEY+/voPqQ0u5vhCQTXxLa/G3Akwll6zcMycR3AU++Vb98xxxzcvXh90yJw/eNkDiMZ0ocfihiBPwDQ+LwY8ATB2X3j0ISBzWQf2SYxIQTj72/g+pDSrt/EpI4fE9o888BTxyUrT8xJA6/BDxxUP3yC3PMydWHvzIlDr/6cA1/HOE1/N8I55CfydJvRTzJ0u9FjIB/Z0iW/gh4sqTs/sOnZCmc2+L9qrFSXzr8lbCPKPv7z4ATqAp0fzIQ6F8BJ1Bl818Mdv/NRHp/O24BofYJd59RzPE/GJIeyvn+T8DHvfLhPww+/JPQh/8KKbQoOSdUHGyeUH2iMFLP6bxinniZV8x3udf4gnoOUY6n/GKeOUTtS4wzV5uLdP8XIKyloeoLNf7TC+n9TI1xuQCMywRgXCoA4xIBGE8TgPFUARgXC8C4SADGhQIwniIA4wIBGOcLwHiyAIzzBGCcKwDjHAEYTxKAcbYAjLMEYJwpAOMMARinC8A4TQDGqQIwThGAcbIAjJMEYJwoAOMEARjHC8A4jgEjXmjajjC2veaZ9TzUZgGcsy0EKQIpBmkGUgLSHKQFSEuQViCtQdqAtAVpB7IOSHuQDiAdQTqBdAbpAtIVpBvIuiDdQdYD6QHSE6QXSClIb5D1QfqA9AXZAGRDkI1ANgbZBGRTkM1ANgfZAmRLkK1AwiAeSAQkChIDiYOUgZSDJECSIFuDbAOyLch2INuD7KDOUYPsCLJT8Wof7Fwcqv6MvnJKiaUrdOiKHLpih66ZQ1fi0DV36Fo4dC0dulYOXWuHro1D19aha+fQrePQtXfoOjh0HR26Tg5dZ4eui0PX1aHr5tCt69B1d+jWc+h6OHQ9HbpeDl2pQ9fboVvfoevj0PV16DZw6DZ06DZy6DZ26DZx6DZ16DZz6DZ36LZw6LZ06LZy6MIOnefQRRy6qEMXc+jiDl2ZQ1fu0CUcuqRDt7VDt41Dt61Dt51Dt71Dt4ND18+h29Gh28mhUwGxNFR9ob7gTnixzVPxmqgt1psMCC/eeYVCbCa8GOgVCbGZ8OKiVyzEZsKLlV4zITYTXvz0SoTYTHgx1WsuxGbCi7NeCyE2E17s9VoKsZnw4rHXSojNhBejvdZCbCa8uO21EWIz4cVyr60QmwkvvnvthNhMeDHfW0eIzYQ3B3jthdhMeLOB10GIzYQ3L3gdhdhMeDOE10mIzYQ3V3idhdhMeLOG10WIzYQ3f3hdhdhMeDOJ102IzYQ3p3jrCrGZ8GYXr7sQmwlvnvHWE2Iz4c04Xg8hNhPe3OP1FGIz4c1CXi8hNhPefOSVCrGZ8GYmr7cQmwlvjvLWJ7RZPQRaiOzNQzaHkA77Ipzb0vQQKBHGpodAaTA2PQRKg7HpIVAajE0PgdJgbHoIlAZj00OgNBibHgKlwdj0ECgNxqaHQGkwNj0ESoOx6SFQGoxND4HSYGx6CJQGY9NDoDQY/39/CJSm3QSb7X2Lg98/GwjAuKEAjBsJwLixAIybCMC4qQCMmwnAuLkAjFsIwLilAIxbCcAYFoDRE4AxIgBjVADGmACMcQEYywRgLBeAMSEAY1IAxq0FYNxGAMZtBWDcTgDG7QVg3EEAxn4CMO4oAONOTPdwhkhxRrx8ZL9pcxfAvivIbiC7g+wBsifIXiB7g+wDsi/IfiD7gxwAciDIQSAHgxwCcijIYSCHgxwBciTIUSBHgxwDcixIf5ABIMeBpEDSIBUglSAZkCqQgSCDQAaDHA9yAsgQkBNBhoIMAxkOMgJkJMgokNEgY0DGgowDGQ8yAWQiyCSQySBTQKaCTAOZDjIDZCbIrOLVPphdHKr+ciPlFPuFR7s6dLs5dLs7dHs4dHs6dHs5dHs7dPs4dPs6dPs5dPs7dAc4dAc6dAc5dAc7dIc4dIc6dIc5dIc7dEc4dEc6dEc5dEc7dMc4dMc6dP0dugEO3XEOXcqhSzt0FQ5dxqGrcugGOnSDHLrBDt3xDt0JDt0Qh+5Eh26oQzfMoRvu0I1w6EY6dKMcutEO3RiHbqxDN86hG+/QTXDoJjp0kxy6yQ7dFIduqkM3zaGb7tDNcOhmOnSzHDoV/EpD1RdDFP303yC9yE3FZqK2xLzIbVchNlO+yG03ITZTvshtdyE2U77IbQ8hNlO+yG1PITZTvshtLyE2U77IbW8hNlO+yG0fITZTvshtXyE2U77IbT8hNlO+yG1/ITZTvsjtACE2U77I7UAhNlO+yO0gITZTvsjtYCE2U77I7RAhNlO+yO1QITZTvsjtMCE2U77I7XAhNlO+yO0IITZTvsjtSCE2U77I7SghNlO+yO1oITZTvsjtGCE2U77I7VghNlO+yK2/EJspX+Q2QIjNlC9yO06IzZQvcksJsZnyRW5pITZTvsitgsnmPMvmcG6LV1mcu/8yVWpJeJx9Q/gAppcRMh4JH+j0qoTYTPiAqDdQiM2ED5x6g4TYTPgAqzdYiM2ED8R6xwuxmfABW+8EITYTPrDrDRFiM+EDwN6JQmwmfKDYGyrEZsIHlL1hQmwmfODZGy7EZsIHqL0RQmwmfCDbGynEZsIHvL1RQmwmfGDcGy3EZsIH0L0xQmwmfKDdGyvEZsIH5L1xQmwmfODeGy/EZsIH+L0JQmwmfCGAN1GIzYQvGPAmCbGZ8IUF3mQhNhO+AMGbIsRmwhcqeFOF2Ez4ggZvmhCbCV/44E0XYjPhCyS8GUJsJnwhhTdTiM2EL7jwZhHarD7+paRAt5eHbA4hHfZFOLel6eNfRBibPv5Fg7Hp4180GJs+/kWDsenjXzQYmz7+RYOx6eNfNBibPv5Fg7Hp4180GJs+/kWDsenjXzQYmz7+RYOx6eNfNBibPv5Fg7Hp4180GJs+/kXRbtPHv4KOsenjXzQYmz7+RYOx6eNfNBibPv5Fg7Hp4180GJs+/kWDsenjXzQYmz7+RYOx6eNfNBibPv5Fg7Hp4180GJs+/kWDsenjXzQYmz7+RYNRyse/GNsO5yHfmjZPAr/MAZkLMg/kZJD5IAtATgFZCLIIZDHIqSCngSwBWQqyDGQ5yOkgZ4CcCXIWyAqQlSBng5wDci7IeSDng1wAciHIRSAXg1wCcinIZSCXg1wBciXIVSBXg1wDci3IdSDXg9wAciPITSA3g/wP5BaQW0FuA7kd5A6QO0HuArkb5B6Qe0HuA7kf5AGQB0EeKg5V/8iOcob94Z05Dt1ch26eQ3eyQzffoVvg0J3i0C106BY5dIsdulMdutMcuiUO3VKHbplDt9yhO92hO8OhO9OhO8uhW+HQrXToznboznHoznXoznPoznfoLnDoLnToLnLoLnbo7nbo7nHo7nXo7nPo7nfoHnDoHnToHtI6vOTrv/303yB9cOokpgBPbTPlB6fmCLGZ8oNTc4XYTPnBqXlCbKb84NTJQmym/ODUfCE2U35waoEQmyk/OHWKEJspPzi1UIjNlB+cWiTEZsoPTi0WYjPlB6dOFWIz5QenThNiM+UHp5YIsZnyg1NLhdhM+cGpZUJspvzg1HIhNlN+cOp0ITZTfnDqDCE2U35w6kwhNlN+cOosITZTfnBqhRCbKT84tVKIzZQfnDpbiM2UH5w6R4jNlB+cOleIzZQfnDpPiM2UH5w6X4jNlB+cukCIzZQfnLpQiM2UH5y6SIjNlB+cupjJZuqbgi4pzt1/rg9OUeO8VIg/LxOC83IhOK8QgvNKITivEoLzaiE4rxGC81ohOK8TgvN6IThvEILzRiE4bxKC82YhOP8nBOctQnDeKgTnbUJw3i4E5x1CcN4pBOddTDgLc8XpVf/v3bnhrNbaPbnajFq7l+C8gjkvs7BZQPsiXN3q+yjGjG7tfprxt6q1Bwj7YlGw+yJsrH6Qbv56DxG2RTiWPdwXuZ27C3vq4wTqWZf80NoLWd8wj+1wLktwxwzHw5b/xSzc3w8Xr/77iP1QoPrhHUunNioNNQ2UnB+ekBBQrQGdpc0RbbP3MKH/HiGctFx9kU/cF5T+e9TRVjpcURn30mWV5V4mFU9UVCSjnhdJlaXK0pFEVSYd9xLxBLRZkYok4HCRVIWXCafKMopEwIX/JeN4oU7QHyUMsBjvY8WMgFXj1O0+TjgYuOx+vHiNg4nadWKlCCYKK9WENe1S9tETxAPfELpqt3do9Weq/MoE7yYk+HsICf5eQlK5r5iHVIjmkzMTfFLP16fsTPBJRyb4FGcmqEHeR5h9PEk4GZ9CbUUq45lwMpFORNKpaHk6Fk0nkylot8zzElWVkXBlLFIV98rKKpKZZJUXrUrHM6myeCpZVrmKPSsXCsk+KP33tNDs42mm7OOZYkbAzzBkH88GPPtQdj8rJPt4SmOlzj4o++g5puzjOT+zj9UL3Uv0PbL7JVexMcn9pprXOT4KgZcc23ZmH8/r+fqCnX0878g+XvAh+5AwUHJ+WUvQz0M5BnSumeDzhIHxBcKSYamQTJDSfy8KzQRfZMoEXypmBPwSQyb4csAzQWX3y0IywRc0VupMkLKPXmHKBF9phExwEiHBTyYk+CmEmeBUgZngq3q+vmZngq86MsHXfMgEJQyUnF/PKCQTnEqYCb5KGBhfI8wElwvJBCn997rQTPB1pkzwjWJGwG8wZIJvBjwTVHa/KSQTfE1jpc4EKfvoLaZM8K1GyASnERL8dEKCn0GYCc4UmAm+refrO3Ym+LYjE3zHh3vTZhJmH28TTsZ38GRMJyqTsbJUJpkoB7qMh+Pl5fF4DHZLVEQqK5LxykxFPJVIVmTKKyorK2JeGVy4jMfC4YqypOelYyOFZB+U/ntXaPbxLlP28V4xI+D3GLKP9wOefSi73xeSfbyjsVJnH5R99AFT9vFBI2Qfswizj9mE2cdJhNnHHIHZx4d6vn5kZx8fOrKPj3w4DyVhoOQ6sc8Qch5qDmEm+CFhYPyI8DzUGUIyQUr/fSw0E/yYKRP8pJgR8CcMmeCnAc8Eld2fCskEP9JYqTNByj76jCkT/KwRMsG5hAQ/j5DgTybMBOcLzAQ/1/P1CzsT/NyRCX7hQyYoYaDkOrHPEpIJzifMBD8nDIxfEGaCZwnJBCn996XQTPBLpkzwq2JGwF8xZIJfBzwTVHZ/LSQT/EJjpc4EKfvoG6ZM8JtGyAQXEBL8KYQEv5AwE1wkMBP8Vs/X7+xM8FtHJvidD1ckFxFmH98STsbvUFtetLw8GimvjFRFMol0MpaMxCrjicrKmJfOxNPhiBeOVKWiXjoBFymBOdOVVXGvoiITi0eTqWQikhwrJPug9N/3QrOP75myjx+KGQH/wJB9/Bjw7EPZ/aOQ7OM7jZU6+6Dso5+Yso+fGiH7WEyYfZxKmH2cRph9LBGYffys5+svdvbxsyP7+MWH81ASBkquE3ulkPNQSwgzwZ8JA+MvhOehVgrJBCn996vQTPBXpkzwt2JGwL8xZIK/BzwTVHb/LiQT/EVjpc4EKfvoD6ZM8I9GyASXEhL8MkKCX06YCZ4uMBP8U8/Xv+xM8E9HJviXD5mghIGS68Q+R0gmeDphJvgnYWD8izATPEdIJkjpv7+FZoJ/M2WC/xQzAv6HIRP8N+CZoLL7XyGZ4F8aK3UmSNpHzWgHviF01W7vUPWF2r95BNgT+i8nznwCnGWpcDJTVlbOibOAAGc6XVaeyiTinDgLCXBGK8oyVdHyCCfOIgKcqXisqioeTXHiLCbAGffCmXikvIoTZzMCnMl0OF6WSFRw4iwhwOlVJaKVyVSaE2dzin5PZyC985IKW5dQ9WIOn+LHNxvgW1Dxg0n4EWn84hy1/gJaV3HfrO+Zn/36U6jNR9B6Pmq/AK0XovUitF6M1puh9RK03lyvt4C/LUFagbQGaQPSFqQdyDrN1j5jQp0/rUPI96YobA9tdgDpCNJJZ+w4F1C/l4Sq6zo4dB0duk5ahxfqEwPrNKObU+0Jv33UgRDXeUzFaIHVF7nYrPqiI4n/VvdrJ8JvWlH6j3uOt2OY452hzS4gXUG6OeZ4Z8fc7eLQdXXouvkwx9sRzqXOhHO8CyGuC4TM8a6Ec7wb4Ry/QNAcb8swx9eFNruDrAfSwzHH13XM3e4O3XoOXQ8f5nhbwrm0LuEc706I6yIhc3w9wjneg3COXyRojrdhmOM9oc1eqhZR5+ccc7ynY+72cuhKHbrePszxNoRzqSfhHO9FiOsSIXO8lHCO9yac45cImuOtGeb4+tBmH5C+IBs45vj6jrnbx6Hr69Bt4MMcb004l9YnnON9CHFdJmSO9yWc4xsQzvHLBM3xVgxzfENocyOQjUE2cczxDR1zdyOHbmOHbhMf5ngrwrm0IeEc34gQ1xVC5vjGhHN8E8I5foWgOd6SYY5vCm1uBrI5yBaOOb6pY+5u5tBt7tBt4cMcb0k4lzYlnOObEeK6Ssgc35xwjm9BOMevEjTHWzDM8S2hza1AwiCeY45v6Zi7Wzl0YYfO82GOtyCcS1sSzvGtCHFdI2SOhwnnuEc4xyn9p8Z1Cz2+j8lfM+aPRev90foAtH4cWk+h9TRar0DrlWg9g9ar0PpAtD4IrQ9G68ej9RPQ+hC0fiJaH4rWh6H14Wh9BFofidZHofXRaH0MWh+L1seh9fFofQJan4jWJ6H1yWh9ClqfitanofXpaH0GWp+J1meh9dlo/SS0Pgetz0Xr89D6yWh9PlpfgNZPQesL0foitL4YrZ+K1k9D60vQ+lK0vgytL0frp6P1M9D6mWj9LLS+Aq2vROu/ofV/0HphwZr1Fmi9HVrvjNbXQ+vro/WN0fqWaD2G1rdG6/3Q+m5ofR+0fhBaPwKt90frlWj9eLQ+HK2PReuT0fpMtD4PrS9C68vQ+gq0fj5avxStX43Wb0Trt6H1e9D6Q2j9CbT+HFp/Ba2/hdY/QOufofVv0PpPaP0PtK7I3awXo/VWaL09Wu+K1nui9b5ofVO0HkbrZWh9W7S+E1rfA63vh9YPQetHofXj0HoVWh+C1keidQ/lPDj/wfkRzp+2QOu4JsI1E66pNkHr+DwJPo+Cz7NsgNbxuVN8bhWfe+2N1vH1FHy9BV+P6YHW8TVWfA0WX6PthtbxfRf4vgx830YntI7vxcL3apl7uSIqV0VLnv7bT/8N57Z4EcL8TT1Ioh4ZsOsDvFDhzkO+oD5GrLwyVVFZHnU2nm8dhOLhjVwBG6dsHOJJoKltziO0eRMhNucT2rypEJsLCG3ejMlm6oC6eYg2NtTUN+HcFm8LQpx758vomy1RW5F4Kl6RiZdXlEcTFalMNJGOlleWxVKJskw6WhkOV8bTVZlwNJUp88qikWgqWpmMhpOxeCZVlgknIylOnFuFZPgzLASnJwRnhBgnNb6rYJ5fl792u7nGj+ua8dqdMz6w+UYGu69nOuFJffI5SmjzVXRc4RGOG4+rL6h5O0bYF/sL4e14SAbOMiE4y4XgTAjBmRSCc2shOLcRgnNbITi3E4JzeyE4dxCCs58QnDsKwbmTEJw7C8G5ixCcuwrBuZsQnLsLwbmHEJx7CsG5lxCcewvBuY8QnPsKwbmfEJz7C8F5gBCcBwrBeZAQnAcLwXmIEJyHCsF5mBCchwvBeYQQnEcKwXmUEJxHC8F5jBCcxwrB2V8IzgFCcB4nBGdKCM60EJwVQnBWCsGZEYKzSgjOgUJwDhKCc7AQnMcLwXmCEJxDhOA8UQjOoUJwDhOCc7gQnCOE4BwpBOcoIThHC8E5RgjOsUJwjhOCc7wQnBOE4JwoBOckITgnC8E5RQjOqUJwThOCc7oQnDOE4JwpBOcsIThnC8F5khCcc4TgnCsE5zwhOE8WgnO+EJwLhOA8RQjOhUJwLhKCc7EQnKcKwXmaEJxLhOBcKgTnMiE4lwvBeboQnGcIwXmmEJxnCcG5QgjOlUJwni0E5zlCcJ4rBOd5QnCeLwTnBUJwXigE50VCcF4sBOclQnBeKgTnZUJwXi4E5xVCcF4pBOdVQnBeLQTnNUJwXisE53VCcF4vBOcNQnDeKATnTUJw3iwE5/+E4LxFCM5bheC8TQjO24XgvEMIzjuF4LxLCM67heC8RwjOe4XgvE8IzvuF4HxACM4HheB8SAjOh4XgfEQIzkeF4HxMCM7HheB8QgjOJ4XgfEoIzqeF4HxGCM5nheB8TgjO54XgfEEIzheF4HxJCM6XheB8RQjOV4XgfE0IzteF4HxDCM43heB8SwjOt4XgfEcIzneF4HxPCM73heD8QAjOD4Xg/EgIzo+F4PxECM5PheD8TAjOz4Xg/EIIzi+F4PxKCM6vheD8RgjOb4Xg/E4Izu+F4PxBCM4fheD8SQjOn4Xg/EUIzl+F4PxNCM7fheD8QwjOP4Xg/EsIzr+F4PxHCM5/heBUDUrAmScEZ74QnAVCcBYKwVkkBGexEJzNhOAsEYKzuRCcLYTgbCkEZyshOFsLwdlGCM62QnC2E4JzHSE42wvB2UEIzo5CcHYSgrOzEJxdhODsKgRnNyE41xWCs7sQnOsJwdlDCM6eQnD2EoKzVAjO3kJwri8EZx8hOPsKwbmBEJwbCsG5kRCcGwvBuYkQnJsKwbmZEJybC8G5hRCcWwrBuZUQnGEhOD0hOCNCcEaF4IwJwRkXgrNMCM5yITgTQnAmheDcWgjObYTg3FYIzu2E4NxeCM4dhODsJwTnjkJw7iQE585CcO4iBOeuQnDuJgTn7kJw7iEE555CcO4lBOfeQnDuIwTnvkJw7icE5/5CcB4gBOeBQnAeJATnwUJwHiIE56FCcB4mBOfhQnAeIQTnkUJwHiUE59FCcB4jBOexQnD2F4JzgBCcxwnBmRKCMy0EZ4UQnJVCcGaE4KwSgnOgEJyDhOAcLATn8UJwniAE5xAhOE8UgnOoEJzDhOAcLgTnCCE4RwrBOUoIztFCcI4RgnOsEJzjhOAcLwTnBCE4JwrBOUkIzslCcE4RgnOqEJzThOCcLgTnDCE4ZwrBOUsIztlCcJ4kBOccITjnCsE5TwjOk4XgnC8E5wIhOE8RgnOhEJyLhOBcLATnqUJwniYE5xIhOJcKwblMCM7lQnCeLgTnGUJwnikE51lCcK4QgnOlEJxnC8F5jhCc5wrBeZ4QnOcLwXmBEJwXCsF5kRCcFwvBeYkQnJcKwXmZEJyXC8F5hRCcVwrBeZUQnFcLwXmNEJzXCsF5nRCc1wvBeYMQnDcKwXmTEJw3C8H5PyE4bxGC81YhOG8TgvN2ITjvEILzTiE47xKC824hOO8RgvNeITjvE4LzfiE4HxCC80EhOB8SgvNhITgfEYLzUSE4H2PCmW/hjIbLYrFMeSTjRb1UOJJMJ+LhWDxdlvASXjwRr4wkotFMIpYoT6aT5eGkF4tmvKp4Mlql296Q0ObHfbI5nNviPZFH579b8mWMxyeFzJunhOB8WgjOZ4TgfFYIzueE4HxeCM4XhOB8UQjOl4TgfFkIzleE4HxVCM7XhOB8XQjON4TgfFMIzreE4HxbCM53hOB8VwjO94TgfF8Izg+E4PxQCM6PhOD8WAjOT4Tg/FQIzs+E4PxcCM4vhOD8UgjOr4Tg/FoIzm+E4PxWCM7vhOD8XgjOH4Tg/FEIzp+E4PxZCM5fhOD8VQjO34Tg/F0Izj+E4PxTCM6/hOD8WwjOf4Tg/FcIzpCQ+23yhODMF4KzQAjOQiE4i4TgLBaCs5kQnCVCcDYXgrOFEJwtheBsJQRnayE42wjB2VYIznZCcK4jBGd7ITg7CMHZUQjOTkJwdhaCs4sQnF2F4OwmBOe6QnB2F4JzPSE4ewjB2VMIzl5CcJYKwdlbCM71heDsIwRnXyE4NxCCc0MmnPkWzlyfgy4itHkjITYXE9q8sRCbmxHavIkQm0sIbd5UiM3NCW3eTIjNLQht3lyIzS0Jbd5CiM2tCG3eUojNrQlt3kqIzW0IbQ4Lsbktoc2eEJvbEdocEWLzOoQ2R4XY3J7Q5pgQmzsQ2hwXYnNHQpvLhNjcidDmciE2dya0OSHE5i6ENieF2NyV0OathdjcjdDmbYTYvC6hzdsKsbk7oc3bCbF5PUKbtxdicw9Cm3cQYnNPQpv7CbG5F6HNOwqxuZTQ5p2E2Nyb0Oadhdi8PqHNuwixuQ+hzbsKsbkvoc27CbF5A0Kbdye0Wd0PUKjb2hjZn6d9UKB/V9fP1fVkdX1VXW9U19/U9Sh1fUZdr1Dn79X5bHV+V53vVOf/1PkwdX5InS9R5w9UPa3qS1VvqfpD5eMqP1X5mspfFJ8rfisFUfFPxQM1P9R4Uf5T74LfCGEszV+DexOQTUE2A9kcZAuQLUG2Uj4C8UAiqh9BYiBxkDKQcpAESBJka5BtQLYF2Q5ke5AddL/tCLITyM4gu4DsCrIbyO4ge4DsCbIXyN4g+4DsC7IfyP4gB4AcCHIQyMEgh4AcCnIYyOEgR4AcCXIUyNEgx4AcC9IfZADIcSApkDRIBUglSAakCmQgyCCQwSDHg5wAMgTkRJChIMNAhoOMABkJMgpkNMgYkLEg40DGg0wAmQgyCWQyyBSQqSDTQKaDzACZCTILZDbISSBzQOaCzAM5GWQ+yAKQU0AWgiwCWQxyKshpIEtAloIsA1kOcjrIGSBngpwFsgJkJcjZIOeAnAtyHsj5IBeAXAhyEcjFIJeAXApyGcjlIFeAXAlyFcjVINeAXAtyHcj1IDeA3AhyE8jNIP8DuQXkVpDbQG4HuQPkTpC7QO4GuQfkXpD7QO4HeQDkQZCHQB4GeQTkUZDHQB4HeQLkSZCnQJ4GeQbkWZDnQJ4HeQHkRZCXQF4GeQXkVZDXQF4HeQPkTZC3QN4GeQfkXZD3QN4H+QDkQ5CPQD4G+QTkU5DPQD4H+QLkS5CvQL4G+QbkW5DvQL4H+QHkR5CfQH4G+QXkV5DfQH4H+QPkT5C/QP4G+QfkXxAVDPJA8kEKQApBikCKQZqBlIA0B2kB0hKkFUhrkDYgbUHagawD0h6kA0hHkE4gnUG6gHQF6QayLkh3kPVAeoD0BOkFUgrSG2R9kD4gfUE2ANkQZCOQjUE2AdkUZDOQzUG2ANkSZCsQFeQ8kAhIFCQGEgcpAykHSYAkQbYG2QZkW5DtQLYH2UE9dw6yI8hOIDuD7AKyK8huILuD7AGyJ8heIHuD7AOyL8h+IPuDHAByIMhBIAeDHAJyKMhhIIeDHAFyJMhRIEeDHANyLEh/kAEgx4GkQNIgFSCVIBmQKpCBIINABoMcD3ICyBCQE0GGggwDGQ4yAmQkyCiQ0SBjQMaCjAMZDzIBZCLIJJDJIFNApoJMA5kOMgNkJsgskNkgJ4HMAZkLMg/kZJD5IAtATgFZCLIIZDHIqSCngSwBWQqyDGQ5yOkgZ4CcCXIWyAqQlSBng5wDci7IeSDng6jvyKtvtKvvn6tvi6vvdqtvYqvvTatvOavvJKtvEKvv+6pv56rv0qpvvqrvqapvlarvgKpvbKrvV6pvQ6rvLqpvGqrvBapv8anv3KlvyKnvs6lvn6nviqlvdqnvYd0Hor7jpL6RpL4/pL7to76bo75Jo773or6lor4tor7bob5job4Rob6/oL5toL4boN7Jr953r94lr97Trt6Brt4vrt7drd6Lrd45rd7nrN6VrN5DrN7xq96fq95Nq977+h6Iel+peheoes+meoelej+keveieq+hemegeh+fetedeo+cekebev+ZereYem+XeieWet+UepeTek+SegeRer+PeneOei+NeueLep+KeleJeg+IeseGen+FejeEeu+CSgTU+wLUs/jqOXf1DLl6Pls9+6yeK1bP7KrnYdWzpuo5TvWMpHr+UD3bp56bU8+kqee91LNU6jkl9QyQer5GPbuingtRz1yo5xnUswLqPnx1j7u6f1zdm63ue1Y8r+7XVffCqvtM1T2c6v5Ide+huhdP3Zum7tVS9y6pe3nUvS3qXg9174O6F0BdG1fXitW1U3UtUV1bU9ea1LUXdS1CnZtX56rVuVt1LlOd21PnutS5n1XnQkBUraxqR1VLqdpC5doq91S5mOI6s7RH6+vpv6nRozMnDh9dOnpYaaqysnTc4NGDSoeNzYysGjJM0e+qHMks2+m/u40ZWjF68LChpbDd4KoJA4aPHDw2NTozIDVm9CBooLQiNbR02NAhE0rTGVgfMiRTWTpqdGr0YLWuuHxVEmGWDfXffQePOjE1umJQ6dBhozOlgzKpyszI0ophQ0ePTFWMVthGZkaNUlnTqvTDLOvXtveo0cNGpgZmSkcNGTZ61Z6LsnDAkQUN3+foLPY5IYt9TsxinylZ7DMti30WZ7HPaVnsc0EW+1yUxT43ZbHP/7LY5+Es9nk0i31ezWKf17PY5/Ms9vkyi33+zGKfv7PYp3Vhw/dpm8U+vbLYp3cW+3hZ7BPNYp+ds9hn1yz2OTSLfQ7PYp+BWewzOIt9JmSxz6Qs9lmQxT4Ls9jnnCz2OS+Lfa7LYp8bstjn/iz2eTCLfV7MYp+Xs9jn4yz2+TSLfX7NYp/fs9ineVHD92mZxT7ds9inRxb7bJHFPltlsc8OWeyzYxb77JXFPgdnsc/RaJ/ea+9z4pghowcPh5plrR1TWRzsyGZrH2xfqF9UNQIVSqmqlIaNHDwRKqP0hNJURcWwMUPVmY9Vp53VcvGa/Vedjl7l3ZEjUxNKBw+tzIwvHTZmdOmwqtI07Fc5Cu94VbY73pjtjrdnu+N92e74WLY7PpvtjupMnVnqPXhwA1HUQH0GEd63PC9L1NvncNCdsj3oPjkc9K1c3fxetqi/zAH1t9ke9NccDvpntgctyM/+oM3yszxo2xwO2iHbg3bP4aC9sj3oRjkcdLNsDxrN4aDl2R50xxwOukcO++6TLeCDs90xnQPaqmwPemK2O07OAe30bA86N9sdl2SBtr/ebstQAw9qdtwmlP1Bd8j2oPtlcdBh2Vo6LAdLh2Vr6bAcLB2RraUjcrB0RLaWjsjB0pnZWjozB0tnZmvpzBwsnZ2tpbNzsHR2tpbOzsHSSl0jVuSw73C0b++19x01Jr36UliNDZyUw8FPbqi3zI6nZrvjyizQPqL3PaWhBzU7npHFQXcvXr3dNLRvg4oT08DZORz8/IZabHa8LNsdb8oB7R3ZHvThBh501a1+anlcpxHq/yajUA2rE4b99P/DuS1ecwSOtO1EItk8tOZWRw7cRTxtr3qlzc4lq9sy+M2x1G2X5gKb2Ub96Y6wtEA+LUTbmz5U2Fuy+DwWU2234mg7HFn1yogCbXML5I9CrWuJdEVaZ7Co/56eX7OPCn3zUZkIH6nfZ+vf8dg7SeuKkW6O1jVDurlobBrdvJI1vlWLug1mF63bNbTmN3RumGxONUeY9R1OpG03Q21TxoLWyIch5KPmLMeLeHnWsQqt46qlBcJEHVfz0HHM8c2x8NxswWN/2BUbWlj2qz5paenUfmYeFen9WiJ/GfxmGzz/i9D/N9d/26H98bg1upB1jHy07YYIJ/alwcvju3CytrHTAv3lGburx47dd80t/+C+w/2K+yOPDlMY9yM+Rl39iPcr8Xm/ov/j+5lYrR5dsed2bfMft4VjoVpaW/uZtkJWWyFHWzaGtiF3fKmPjWZ7vD9LHhP2yltruxtqcwu0H0cMaGMdv7V1/NbWNsZPbXn8lKjNJ22RT9qwHH+1T9pax29j+UTZ347H/lWXWttZx29n2a/6ZB1Lp/Yzt1cbTjXbtEP4zTbt0X5F6P/90T7roPbMtkYXso6BOfWI0Bo/8YyT1TUl7gPCHNVrbdlpjhGybA9ZtrdA+3GMy/Z1+L6+23SoxzYd67FNJ2ub1o5tOtejnS712KZrPbbpVo9t1q3HNt2tbez5r+xcL1R9UeOxB2rDr5hojtkCYeIYez2s469n+UTlayaHGpgZvd+w0ZlReQiP2b8L0pm/tn1mGxwH0Y3S1XL89ta+9vg2uo4OXSeHrrND18Wh6+rQdXPo1g2tvWB+QfdpVbMX5yFmPLr8go+VH1rbn0aP/0/5e4ixberfja6whnX7vG1tY9PF0/accOVXZh+cV5sYZLYtQOs2nxSgNnDbBaG1+R7b0aYeWFtb27RBGM1f07bZtnmILRdLNA9Vz30Ja02PL9cPx/m4IBxRbXfnaNtbfW5uXR7c5artbjxtx9QYseOxOl4XnuOV1cbH5pgtECYOPrZzJnMsnKN0tjC1Qzqc09s5WmerLcn7MY6DaHN0POKcr6p1aM24Mlyh8p4z0PE6IV8UOrYvQttskLemjRVap+K54YEWSFfbeR5jZ33O8+SF1j4/7eKdYmub5pYdCpM5H1iMsBVbmPrp/4dzWxKmJg6F1tTSba3jF6FtLtF/7VzUYCvKwgdFyHbzt7nDB0zXVRN5lq2q7R7o/+av2ebqOnxQXA8f2H4y+/RAPmhrYfB7HJhY4hoHN9Xhg1zGQRfkgx4WBr/HQTf0f/PXbHNHHT7IZRx0Qz7oYmHwexzY15vwOLi/Dh/kMg5aIh90szAw5rRl3P4tQX6syb9mm8dDtfu3JNRw/5Y4/FsUWtu/TNdynfPM5OLYN2ab5+rwQX3mme0ns89/D02E1r4+VtO5L566wYvXlmubY3Kf+1q3Dl+2dvjOHit056djZe3Q8fAx7D4vtnDa17PpMJV5GFOLBmLqzoMpiTF1byCmrjyYKjCmrg3E1JkHUxxj6txATJ14MMUwpk4NxNSRBVMkjDF1bCCmDiyYyqv5qUMDMbVnwVRWhTG1bwCmXPy7Do8t5RjTOlna0jnL/TpkuV/HLPdrkeV+De0rnuu2ZRmMqV2WtmQ7XrPtK3y+ypzj6KGTHpVX2NeP+PJwr9bzmvgeVjvXaWFhyuVzsqlUtDzmxTKZKi/sRVbfD1GXP+tzfYPv/nYvhu8jboP8VOi4/7fIulcd30fMdy3Fi9XmR3NMPC7xPbp1+V/NGTMWOiNbcd3yn/16vQfSGV/g+1vMMbogncHUDenMdWF8v6l9X1fLUPXzpaa+MsfF97mYbTZG50u314YqlYl1+VYbOO/HMYSwFll1v62JM+bY7a3jF6FtwnlrcPTSOvPK6o7WfmqbnlbbvdD/Tds9rbZrqj/t+1BMf2OuMDiLrW3aO2yJ1XI8O78inDfl2Hdm3BgMHZDebJOowy+9QtX94qrL7ftzell+UfOko4XB1Tbe3m672NoG22i22aEOn/dE7VL7vBThwT7oifRmm53r8HlpqLpfXD7vaW1j9jHHVT7sYGEoQNvZ468A7VuK2i5A2/ay9qmtD3s47KmtD802+9bim9Yh9/0zIQuDWXD+YvYzNWxbdMyuDqymrVJHW2b7UoTLxGF87etQFM/wOChE2+P7nc024/PXtHFE3hq85nc8T9o7bLDjeftabHC1VeJoK1RLWyVWWxT9VIJw9XLgssddr1pw9UK48H6mrfrgcmHobe3X09pPbbO+tY3ZB18rLNXr6yOcuG21NEe/08av2p8LMsdsgTBxnLOsyU/Glyrn6Yh81d3CV4od1YfHUdUewMOdZRJnc1z13wvy1/zuCg7jUHAo1Xo7OOBiy2zTHwWHiSg4mN/x5Led6hqgfaxtzD74Qq7pDLNta6tttTD6vdYBao7ZIsQ1QVYP0Jr8ZA9Q46vuFr7SEHJUXx5HVRuguLPMADXHxQO0PsbloX3NNmYfM0jxQOmLjm3wlCL7DR7qgaKavRlNPGNHUQmtre3QNr2Rzkw+PBDrwxKl1jZmH3wngR3pamKJUtSuX5PQHJObJUpDbj/Zk9D4qruFrxQ7yg+WMAfMliUuzJIldkEscQliCbMPTuVzSWPwbR6ler0pjVnbT+LTmPoYV1t0xSxRGqp+HIynE7LfL5YwdmCWoLC1XWht+se1RG/kE9c5k/bWdvWtx3pbban97Gef6sNCZp9uDkylSNfTgbNnHcfDOHsyt4XvFe3kaN/2Tada2u8U8LbyrO3wOV9z3pwvCK8+51uKMON5YY6PieptRHAmoyqw7MXXGPpYbfdF/zdt97Harul8YCmPDxLYFpusS5HebPN+LThxbOyJsPPExnCyPhm0nR27MuhSaxuzj/FDu1D15MjsZ891PEfs4xdb2+BzbGabr+oYAzyV2OoxUIrw4LiFx4bZ5rtacLr8WZ+qxexjjourFnxOzPgPxwT7/BqOq2Ybs32xtQ0+r2u2+a2OfmCKR85+6GXZi/vhrwb2gx2TsV/MNmYfc9x2aBsTv1U/GP/hWN7baguf3zfbmO2LrW3+y2vQNoUaaE39gI/N3Q82d+F+KKkFp6sfXPmMzZ9mH3PcdmgbfO7avnbjyrtw7ma2MdsXW9vg64P/zcU6+oHnWpW7H9pb9uJ+6NjAfrDPw7tiutnHtNkuVD1GqQXn5bhYrc81w1K9Xp/rTevV0Q+lqF3qfrCvCdnX3/B4Ka2jH2wfu+qVUmsbO15jTjbXa/G1HJyb2u9bcMUls70dl8y+RWibjevoB3xs7n7oaNmL+2HzBvaDXZ+5YnpPyy84rzf3i+C4hOs6Oy6ZNmqLSx2tdrB9sUaMS9jfNcUls02ijn6oiTdri0t2vMZxyVwDV/1g/IfnjakxzW/2fTg2F5l6BfcT3hdvg/nRbLNTLfa3duyLn8XE52BwbLXzFlfu3cfCaOeOuP7as46x1Be1S3l+S7W3AcKD82Wce5tt9q1jLG0Qqu4XV2zta22zgeWXtsgvfX3ywYaWDzo5fGC2OaSO8dSYV3H+60t0vA0RPuzv2vrE7INrULNNH6Qzc2IDZL89zvHJ+fpefs11PlUImU8Dm+ZTaGjTfPpPZ3xQ13wah+aTfa9TbbW362KWPZ/MvjiHmFLHfOI5J7H6fsE+CA+uiVzzfkYd88m+DuG6X9CORfZ1CXz1fn3kA55rUOF4nmUr7ivsG7PNvHrOJx/OkZbZ86nU4K3l+pHZpj7Xj/B8Mtvg+qc+50hrmgeuXHppLb7F87dU/23taA/f77jqndk8vl8Vh0vQu8sL0bGM//PRNiUIRxH6//koN2+OHixW7ZmxZNpVfi027zcvqXm/Qmu/dmibYrRfM2u/Zgi38eUZ+j8ttT+LefwZWeUX3XaBZYc55qpnI8xzIOg9780Z+7iF1cfNHX1stmlh9bH5/02oj0ssrCWWz5W+ZQ3joLljHLQsqXu/ErRfswbs1xyNn5bWmKrP8fB+xbWM1+aOcXcJGnfY3gLH+DU1arHVThHa5rb8NW3fgWJmkdWu+v0xx+9myav+3//q21XrjTwmCxswJh9BY7I+462kHuOmqJZxU9LA/r9b/6dFqDqfEfrSw32txtmBul2Z36KJlfE9qxe8b9Hgd6LvgnjD6Ha12sPfAclH/cxik7f6mxr4+T9zPJ5veNR+05k5pv28KeX4yAtVfydrYWjt5x3NTWemn4osfKVmZ/zAYwgBrslA3KH4hbf9aIxb9QIDgwcPsmahhmNsh/bDbRVk0RZ+WQqhvateSmLwlDiORVyIhvk+NrP65ZwtqH2kX/rJ9NIoD584xy+vwycCjN5+KLcE6c02m6I2zMmPtqHqL04yOntSYiyuoGzaMIlac2tb+2W01CfD2tTgh9ZIb7bZSv+t6QSG/TC864H51tY2bdB6KFT9pYtmW/xi4lZof7wtnv/4hfCu/fB6c2sfHKtaOY7TrBZb7DGEx5l9MQj712yzrf5b04ksnof0V48D/ILDQoQPjw+zTb9acOK2QqGax4E9VvBD+KFQ9bmAX1CNXwAdcmxbYOnNcV374fVW1j6YZ5o34Dj2y0gxF+ATO7aPzLjAMbGmsYP7ymyzv/5b14VE/EJREw/xiUJ5iXsi9v9T4m5/2MQshSH3RyRZsOuPSPIkw7FqDzbgeFmICnejK0InHoyPzNMsuGjph9sJVV/4+jhWa2FhjtkixDd+80Jrv/jTHMuMExX7TIwdmBm945jRgw4fPHpoZlS1T2mYVvohnflrW2lvo5YCh04teKTjKCjh9HNvZFMQTz93Rf68Wa/LjPIpxlfBRiJ8pxaqR3n7NUcF6LedUd/m699M9NrF8Zs5RbOr47fdtG43x2+7a93ujt/20Lo9HL/tqXV7On7bS+v2cvy2t9bt7fhtH63bx/Hbvlq3r+O3/bRuP8dv+2vd/o7fDtC6Axy/Hah1Bzp+O0jrDnL8drDWHez47RCtO8Tx26Fad6jjt8O07jDHb4dr3eGO347QuiMcvx2pdUc6fjtK645y/Ha01h3t+O0YrTvG8duxWnes47f+Wtff8dsArRvg+O04rTvO8VtK61KO39Jal3b8VqF1FRbXqN8qta7S+g2fKSPOrKKMcS7sOuvGd2aq9tOq5pgtQmyxd9XxS6zjm2MZDsTZJj6jWFhSHWdN2eYOuB297jr7Y8YXPjtbiY6xF/KBnbG5MnuWMZIoi/NxYfXMvsjha9crC5vV4OtLHJcoMlq3I/JT0HPIPUNr9EHMIfvpdZVD+hs/YiLih332PZ/u+NXOvlPPxbxQzZ9RxjHP9alqis+oH6n/4s8+Yz/W5zPqB+v1VZfY9ToeC3bflVht4LN82Ga8n2krZLUVcrRlY+C7MrO6/+xLhviqgTmm6ZNiaxv8uSazTaX+W9OZ3RZoH3wmAdvLVUdhnMcjmwbpdXzJGJ85HVcP/EUOX4xCbZzoaCOvhjbw2LV9jrc124zQf2s6c2ufUVZtjnH83qyG32vzCeOVQ6+mT4lNRMfDYxD7El9ZM9vMQL9N0ettQ+75a7fjys1a1rC/Ky7a/VdbH+MxZraZo//WdGUHx0jqKzv4ShOO8TiGm23m14ITt2V8YeelmBvMNmYf/PqOlhYGvqucq+OkzVeuq3Bmm9Nq8QHOX3HM47lFObbqlv/z0LH/G1voeLa/7U/kufqtFVpXSzu0Db4CZXOwfVUdz2H7KhV+JarZ5mz9t6ZblHFOFwpVn8t4vpkYQnFr40Wo3UvQcV23Nt7k+N0steUIkm5tvAHZE8RbGy/X69y3Npq+VuPuer0u89x5RZzzChff+arq586L0BhQS9O589W6pnPnTefOg3Tu3PzmOndufjPn6TKO36q0rsrx20CtG+j4bZDWDXL8NljrBjt+O17rjnf8doLWneD4bYjWDXH8dqLWnej4bajWDXX8Nkzrhjl+G651wx2/jdC6EY7fRmrdSMdvo7RulOO30Vo32vHbGK0b4/htrNaNdfw2TuvGOX4br3XjHb9N0LoJjt8mat1Ex2+TtG6S47fJWjfZ8dsUrZvi+G2q1k11/DZN66Y5fpuuddMdv83QuhmO32Zq3UzHb7O0bhb6zY/rU0y5hM+3/cdE3PZf1/UpfK3J5MOmf9R/j8Xt6HV8XsTYbMaQ+jMI2dt416JW39kX1GtR2K8Plazxj1rUtajZWrcj8lPQr0UNDK3RB/FaVH+9XtO1qPqep7efIMHXD3DcLLHaKnG05d+THtFkXqjuJxfyLSwGRxHSj9V/lU/NeW58XRrHmWJkv9lnJmqf6/wx57Uv++kTymt2+PoR9tkky5ZQaE0fmu3t6xNqmYfamKrX8Z3o1eI/6hejK7baxv3XFh3Hzhfwun3HKB73+FxqAcJvdPa5+JbWcfF5VM5zwPaTLiUIo9GbbRbqv3WdA8bnQznPAa9Ex/7vXDY6nv00hdmmtnPAZh/jh5rOARda+7lii2mr2NoGj3OzzZn6b03ngM14wE8B1TafKM4Bn4favQAd13UO+DrH72b5v3IO+BpkTxDPAV+s17nPAZu+VvPhe70u+Rww0xMbTfdPh5rOATedA246B2z/1nQOuOkcsP1b0zlgf84Bq9/MOajZ1m8yn1+I+fz8goz7j3N9fqE/bkevu55fMOMLn2eYjY4x2PIBxuw6Z8zzZHIizj3+cnky2fhanR8+Sf/eD/kk6OeHB4XW6IN4fniAXv//9PxwQuazCKvvFXadZx5tHU8tZvwWW37F50xvQW3ge52ZruMlML78UHV8+Jwsz32+q+e3OWdnzne1so6P70eejnDgt6sUhqr72WzT2mobn+8z27a22nad3ysIrX0vtfFNIYdv9KvkWlk47PP/hH2RrC3G4OdkmMaCh8eCOb59Pti8Ss7uC/tZH8bXDoUTmEzNgTGZ4hPUjyM8LAMlvHqgNLccogb4YnQ8fFNzYaj6QxVGb7Y5E/22RK/j14Y1QzqbcPJCayeVduKHyQUnbPZFfnPBpaW1rSF3s9R0ch/7Am+DA4vZ5hz9t6YHHXgu8KwOwPYFHvvVXvgixAW14MRtGb805IIKfl0UThJ5fRBzvsarKLS2D8w2l9fiA9fc5L7I9RY69n99iY5nvzLLbFNbn2B/qAVf5CpEOjMncKyzx4D9IBaeP8XWNngsmm3MC1jqetALk6uJPTVdMOUhkZjzwSETT1wPDt1Zh21+XzDFY+m/mI2OZ48T++HSvFDNDzIZP7QLVX+ACduC97MvwOdZbeFtcPJltnlE/63rginm0NqS6VWJME+h+X/6PfRvhtbom95DX78LtU/rdar30L+H2v5Ar9d0of47x+9mqS1Jl3Sh/htkTxAv1H+s17kv1Ju+VuNsE70u80J9jPFhrXAkaA9rGV41NcvOaO6x1Hn61ZVM/vX4Tu6t5taaXviAT/LbN9DXFuuCcpM7zmPwCTM/fVns8GVtJ/vruvG+G95Hr+Nj9NXr6mLArhY/SbgY0Ce0Rh/EiwHr6vWWZp+QdaxQ9X1c52Zc50js8zCtQmty7+GpihMOyoweM3LoKDztcHN4yUfr+BqZHT7xdmY45DvaM+9NDem/Ha19+un/h3NbVoU5pk/Mh3E3GfydkE3YF1THxP7H3Y1TUNd1nDx6LB5qctUx7T7ugNbzHJiYrtFEGM+ZV+tzg7+lox8KHbbj9fxQ9ZTP/t2la+04TgeH7v8BDc8FXzMaCAA=","debug_symbols":"7X3briQ3duy/6HkekutGcn7l4MCYGY8NAYJkzMgHOBj4353drcq9peQudrMqWbGa68VW28lkZPAWK3dF5L9++Pe///W///Pffvz5P3755w9//j//+uGnX/72l19//OXn/V//+iHx5//bP//rLz9/+uc/f/3LP3794c8pk/zph7///O+f/pPlf/70w3/8+NPff/izbPt/n66mrLerKWc7rk5ijatZWH+7mnUrnavTlvN2g7Ll8oaFP7U9X18y3S4vNb1d3QKeUrpBScnk/cX/908/JAlqPqJGg5qPqLGg5iNq8uPUcOFye9iS364uX3ool/dQv7WHvRFtrUaUcr2NMm21Nyfqdhs23t7DSq2LNz0Ggjar23F5rs05QdWOOcHvsHwwJ2S7UZSE8iNzglJQ8xE1FNR8RA2jU8PMb9RInrfJkgQ1H1GjQc1H1Njj1HDi2yHIKW8dakTT7daSS4/1orcnpVLeSZzcBELpGCOSN17Svul8eta80LOWhZ61rvOsvC30rGmhZ6WFnpUXelZZ6Fl1oWddSDfxQrqJF9JNvJBukoV0kyykm2Qh3SQL6SaRhZ51Id0kC+kmWUg3yUK6SRbSTbqQbtKFdJMupJt0Id2kstCzLqSbdCHdpAvpJl1IN+lCuskW0k22kG6yhXSTLaSbTBZ61oV0ky2km2wh3WQL6SZbSDflhXRTXkg35YV0U15IN2VZ6FkX0k15Id2UF9JNeSHdlBfSTWUh3VQW0k1lId1UFtJNRRZ61oV0U1lIN5WFdFNZSDeVhXRTXUg31YV0U/2udJPw7WqWXH/3rOerk9kNyY5aT8x8Vyrr25jJ75ipdmJGvidmNN1gs2qXmU2OiI7tHezE2rhatnqLFJD0LtBDNm5eTfl29ft7U/1M+nclDnFIT1yPq99FRPxG+nelUr2Q/l3JZS+kf1e63Qvp31UB4YT0tH1XpYwb1r+rosoN699VeeeG9e+qdHTDugTrL2A96tJXsB6F6StYj8r0FaxHafoK1qM2fQHrKWrTV7AetelXsp4kHTxm7rF+9w8aKUVtegnrnbketenXsl6O2UupPjjXJVi/gvXOXI/a9BWsR236CtajNn0F61GbvoL1qE1fwDpFbfoK1qM2fQXrUZu+gvWoTV/BugTrL2A9atNXsB616StYj9r0FaxHbfoK1qM2fQHr39fn/q5knY4vqAqZ9li//1eN7+vDgzisd+Z61KZfy/pBiXBKD871qE0vYb0z1yVY/yrWudoxe7lKh3XOxy8KOJe3X8+QfGF94do05YP1VH/P+mdqFi4ge9QsXOX1qFm4FKMjeWC/QDrbWKpiNyRbekPCW2lukXzoqv2/JfeuL/nAUt4dNizNMU16jKnJ+4s/D+nCdd53OqTf17dPY0g/Den3VaHa7VnZtq0zpHUrt0GqaXv71WhpAmEttxOM2FJ+f/lnIr+vovOFRE6vI9UOQPouzOfTrT8DktmA8nYrVSgTnwEpGiBDA5TRABU0QBUM0Pzvg/YAJTRAhAaI0QCh7dSKtlMr2k6taDu1ou3UirZTG9pObWg7taHt1Ia2UxvaTm1oO7Wh7dSGtlMb2k5taDt1RtupM9pOndF26oy2U2e0nTqj7dQZbafOaDt1RtupM9pOXdB26oK2Uxe0nbqg7dQFbacuaDt1QdupC9pOXdB26oK2U1e0nbqi7dQVbaeuaDt1RdupK9pOXdF26oq2U1e0nbqC7dS0ge3UtIHt1LSB7dS0ge3UtIHt1LSB7dS0ge3UtIHt1LSB7dS0oe3UCW2nTmg7dULbqRPaTp3QduqEtlMntJ06oe3UCW2nTmg7NaHt1IS2UxPaTk1oOzWh7dSEtlMT2k5NaDs1oe3UhLZTM9pOzWg7NaPt1Iy2UzPaTs1oOzWj7dSMtlMz2k7NaDu1oO3UgrZTC9pOLWg7NZpHkdA8ioTmUSQ0jyKheRQJzaNIaB5FQvMoEppHkdA8ioTmUSQ0jyKheRQJzaNIaB5FQvMoEppHkdA8ioTmUSQ0jyKheRQJzaNIaB5FQvMoEppHkdA8ioTmUSQ0jyKheRQJzaNIaB5FQvMoEppHkdA8ioTmUSQ0jyKheRQJzaNIaB5FQvMoEppHkdA8ioTmUSQ0jyKheRQJzaNIaB5FQvMoEppHkdA8ioTmUSQ0jyKheRQJzaNIaB5FQvMoMppHkdE8iozmUWQ0jyJvYDs1o3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lFkNI8io3kUGc2jyGgeRUbzKDKaR5HRPIqM5lEUNI+ioHkUBc2jKGgexf1/oQEC26kFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmURQ0j6KgeRQFzaMoaB5FQfMoCppHUdA8ioLmUVQ0j6KieRQVzaOoaB5F3cB2akXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jqGgeRUXzKCqaR1HRPIqK5lFUNI+ionkUFc2jaGgeRUPzKBqaR9HQPIq2ge3UhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkfR0DyKhuZRNDSPoqF5FA3No2hoHkVD8ygamkcxo3kUM5pHMaN5FDOaRzFvYDt1RvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMoZjSPYkbzKGY0j2JG8yhmNI9iRvMo5vkexSrHrWtOnVsLb/zb1cLpDQhZ42Ilul2sJOn9xZ8fVdd5VFvnUfM6j1rWedS6zKPO96++7lHTOo9K6zwqr/Ooss6jrqOW6jpqqa6jluo6aqkuo5bKtoxaKtsyaqlsy6ilsi2jlsom6zzqMmqpbMuopbIto5bKtoxaKts6aimto5bSOmopraOW0jpqaX5exusedR21lNZRS2kdtZTWUUtpHbVE66glWkct0TpqidZRS/Mza173qOuoJVpHLdE6aonWUUu0jlriddQSr6OWeB21xOBqyTTdHtUsn9CLa/TgmqaDHlymdNCDK4+80Q19Tmf04GKigx5cH9xHL+BHfgc9+CneQQ9+MN/fc8T1WTs/zOup6F2ftQJ+1nZWreuzVlyfteL6rFXXZ626PmsV/KztoAc/azvowc/aDnrws7aD3vVZq67PWnV91qrrs9bAz9r7CtnAz9oOetd1rbmua+cH6j111bo+a831WWuuz1pzfdaa67M2u65rs+u6Nruua7PrunZ+JOJT0bs+a7Prsza7Pmsz+Fl7XyFn8LP2Pvriuq4truva4vqsLa7PWvRQyw5612ctevRkB73rsxY9ILKD3nVdix7j2EHvuq5FD1vsoHd91qJHInbQuz5r0YML7ytk9CzCDnrXdS16YuBd9BU9BPDuqq3ouX4d9J7P2oqevtdB7/msregZeR30nuvaip5k10Hvua6t6Hlz99GjR8h10Ls+a9GD3jroXZ+16HFs9xUyesJaB73nurai56B10Ls+a9HTyu6jRw8g66B3fdaix4R10Ls+a9HDvDroXde16JFbHfSu61r0YKwOetdnLXp8VQe967MWPWTqvkJ2nRtVXedGVde5URU9N6qzal2fta5zo6rr3KjqOjequs6Nqui5UR30ruta9NyoDnrXda3r3KjqOjequs6Nqq5zoyp6btR9hYyeG9VB77quRc+N6qB3fda6zo2qrnOjquvcqOo6N6q6zo2q6LlRHfSu61r03KgOetd1revcqOo6N6q6zo2qrnOjKnpu1H2FjJ4bdR89em5UB73rutZ1blR1nRtVXedGVde5UdV1blR1nRtV0XOjOuhd17XouVEd9K7rWte5UdV1blR1nRtVXedGVfTcqPsKGT03qoPedV2Lnht1H73r3KjqOjequs6Nqq5zo6rr3KjqOjeqoudGddC7rmvRc6M66D3XtWlzHRy1w/d82u7wPR+3O3zP5+0OH/zAvSuTd/ienT87fM/l7Q7fc327w/d86O7wfZ+6riOkdvi+T13XIVI7fN+nLnqMVA++5zp3h++50N3he650d/i+T13XWVJpcx0mtcP3feqix0l1BDN6nlQPPvip24Pvu9Z1HSm1w/d96roOldrh+z51XcdK7fB9n7rowVI9+L5rXfRoqR5837Wu63CpHb7vU9d1vNQO3/epix4w1RHM6AlTPfi+a130jKkefN+nruuUqR2+71PXdc7UDt/3qes6aSpt6FFTPfi+a130sKkefN+1ruu4qR2+71PXdeDUDt/3qYseOdURzOiZUx346KFTPfi+a13XsVM7fN+nruvgqR2+71PXdfTUDt/3qYsePtWD77vWRY+f6sH3Xeu6DqDa4fs+dV1H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","brillig_names":["get_note_internal","decompose_hint","get_auth_witness","build_msg_block_iter","pad_msg_block","attach_len_to_msg_block","pack_returns_oracle_wrapper","directive_invert","directive_integer_quotient"]}],"outputs":{"globals":{"notes":[{"fields":[{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000004c141a0"},{"kind":"string","value":"EcdsaPublicKeyNote"},{"fields":[{"name":"x","value":{"fields":[{"name":"index","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000000"}},{"name":"nullable","value":{"kind":"boolean","value":false}}],"kind":"struct"}},{"name":"y","value":{"fields":[{"name":"index","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000020"}},{"name":"nullable","value":{"kind":"boolean","value":false}}],"kind":"struct"}},{"name":"npk_m_hash","value":{"fields":[{"name":"index","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000040"}},{"name":"nullable","value":{"kind":"boolean","value":false}}],"kind":"struct"}}],"kind":"struct"}],"kind":"tuple"}],"storage":[{"fields":[{"name":"contract_name","value":{"kind":"string","value":"EcdsaRAccount"}},{"name":"fields","value":{"fields":[{"name":"public_key","value":{"fields":[{"name":"slot","value":{"kind":"integer","sign":false,"value":"0000000000000000000000000000000000000000000000000000000000000001"}}],"kind":"struct"}}],"kind":"struct"}}],"kind":"struct"}]},"structs":{"functions":[{"fields":[{"name":"parameters","type":{"fields":[{"name":"inner_hash","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaRAccount::verify_private_authwit_parameters"}},{"name":"return_type","type":{"kind":"field"}}],"kind":"struct","path":"EcdsaRAccount::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":"EcdsaRAccount::constructor_parameters"}}],"kind":"struct","path":"EcdsaRAccount::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":"EcdsaRAccount::entrypoint_parameters"}}],"kind":"struct","path":"EcdsaRAccount::entrypoint_abi"}]}},"file_map":{"104":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/encrypted_logs/payload.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::{\n aes128::aes128_encrypt, 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 oracle::random::random, utils::point::point_to_bytes, encrypted_logs::{header::EncryptedLogHeader},\n keys::{point_to_symmetric_key::point_to_symmetric_key, public_keys::{OvpkM, IvpkM}}\n};\n\npub fn compute_encrypted_log<let P: u32, let M: u32>(\n contract_address: AztecAddress,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress,\n plaintext: [u8; P]\n) -> [u8; M] {\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 = compute_incoming_body_ciphertext(plaintext, eph_sk, ivpk);\n let outgoing_body_ciphertext: [u8; 144] = compute_outgoing_body_ciphertext(recipient, ivpk, fr_to_fq(ovsk_app), eph_sk, 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 (P + 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\n // We use the randomness to preserve the privacy of both the sender and recipient via encryption, so a malicious\n // sender could use non-random values to reveal the plaintext. But they already know it themselves anyway, and so\n // the recipient already trusts them to not disclose this information. We can therefore assume that the sender will\n // cooperate in the random value generation.\n let randomness = unsafe {\n random()\n };\n\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(randomness);\n let eph_pk = derive_public_key(eph_sk);\n\n (eph_sk, eph_pk)\n}\n\npub fn compute_incoming_body_ciphertext<let P: u32>(plaintext: [u8; P], 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(plaintext, iv, sym_key)\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.\npub fn compute_outgoing_body_ciphertext(\n recipient: AztecAddress,\n recipient_ivpk: IvpkM,\n ovsk_app: Scalar,\n eph_sk: Scalar,\n eph_pk: Point\n) -> [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: [u8; 32] = eph_sk.hi.to_be_bytes();\n let serialized_eph_sk_low: [u8; 32] = eph_sk.lo.to_be_bytes();\n\n let address_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let serialized_recipient_ivpk = point_to_bytes(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();\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\nmod test {\n use crate::{\n encrypted_logs::payload::{compute_encrypted_log, compute_incoming_body_ciphertext, compute_outgoing_body_ciphertext},\n keys::public_keys::{OvpkM, IvpkM}\n };\n use std::embedded_curve_ops::fixed_base_scalar_mul as derive_public_key;\n use dep::protocol_types::{address::AztecAddress, point::Point, scalar::Scalar};\n use std::test::OracleMock;\n\n #[test]\n unconstrained fn test_encrypted_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 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 plaintext = [\n 0, 0, 0, 1, 48, 22, 64, 206, 234, 117, 131, 145, 178, 225, 97, 201, 44, 5, 19, 241, 41, 2, 15, 65, 37, 37, 106, 253, 174, 38, 70, 206, 49, 9, 159, 92, 16, 244, 140, 217, 239, 247, 174, 91, 32, 156, 85, 124, 112, 222, 46, 101, 126, 231, 145, 102, 134, 134, 118, 183, 135, 233, 65, 126, 25, 38, 14, 4, 15, 228, 107, 229, 131, 183, 31, 74, 181, 183, 12, 38, 87, 255, 29, 5, 204, 207, 29, 41, 42, 147, 105, 98, 141, 26, 25, 79, 148, 78, 101, 153, 0, 0, 16, 39\n ];\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_log(contract_address, ovsk_app, ovpk_m, ivpk_m, recipient, plaintext);\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_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, 61, 43, 12, 98, 165, 203, 191, 154, 161, 150, 4, 239, 95, 48, 60, 159, 33, 222, 142, 102, 73, 193, 236, 145, 197, 160, 216, 254, 113, 243, 25, 244, 251, 192, 222, 35, 7, 114, 101, 35, 152, 151, 112, 24, 32, 94, 138, 71, 160, 91, 68, 131, 217, 117, 140, 19, 147, 37, 197, 192, 21, 43, 172, 239, 239, 205, 15, 110, 76, 26, 211, 42, 117, 4, 15, 135, 145, 247, 37, 73, 84, 164, 149, 250, 35, 0, 205, 105, 178, 143, 104, 98, 100, 250, 193, 154, 136, 175, 177, 109, 225, 207, 252, 147, 250, 250, 189, 117, 147, 101, 230, 132\n ];\n assert_eq(encrypted_log_from_typescript, log);\n }\n\n #[test]\n fn test_incoming_body_ciphertext_matches_typescript() {\n // All the values in this test were copied over from `encrypted_note_log_incoming_body.test.ts`\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 let plaintext = [\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, 2, 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, 1, 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, 1, 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, 2, 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, 3\n ];\n\n // `compute_incoming_body_ciphertext(...)` function then derives symmetric key from `eph_sk` and `ivpk` and encrypts\n // the note plaintext using AES-128.\n let ciphertext = compute_incoming_body_ciphertext(plaintext, 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 #[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 ciphertext = compute_outgoing_body_ciphertext(recipient, recipient_ivpk, sender_ovsk_app, eph_sk, 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"},"106":{"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\npub struct 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();\n aes128_encrypt(input, iv, sym_key).as_array()\n }\n}\n\n#[test]\nunconstrained fn 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"},"107":{"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_ovsk_app, public_keys::{PublicKeys, OvpkM, IvpkM}},\n encrypted_logs::payload::compute_encrypted_log\n};\nuse dep::protocol_types::{hash::sha256_to_field, address::AztecAddress, abis::note_hash::NoteHash};\n\nfn compute_raw_note_log<Note, let N: u32>(\n context: PrivateContext,\n note: Note,\n ovsk_app: Field,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> (u32, [u8; 416 + N * 32], Field) where Note: NoteInterface<N> {\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 // TODO(#8589): use typesystem to skip this check when not needed\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\n let plaintext = note.to_be_bytes(storage_slot);\n let encrypted_log: [u8; 416 + N * 32] = compute_encrypted_log(contract_address, ovsk_app, ovpk, ivpk, recipient, plaintext);\n let log_hash = sha256_to_field(encrypted_log);\n\n (note_hash_counter, encrypted_log, log_hash)\n}\n\nunconstrained fn compute_raw_note_log_unconstrained<Note, let N: u32>(\n context: PrivateContext,\n note: Note,\n ovpk: OvpkM,\n ivpk: IvpkM,\n recipient: AztecAddress\n) -> (u32, [u8; 416 + N * 32], Field) where Note: NoteInterface<N> {\n let ovsk_app = get_ovsk_app(ovpk.hash());\n compute_raw_note_log(context, note, ovsk_app, ovpk, ivpk, recipient)\n}\n\n// This function seems to be affected by the following Noir bug:\n// https://github.com/noir-lang/noir/issues/5771\n// If you get weird behavior it might be because of it.\npub fn encode_and_encrypt_note<Note, let N: 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> {\n | e: NoteEmission<Note> | {\n let ovsk_app: Field = context.request_ovsk_app(ovpk.hash());\n\n let (note_hash_counter, encrypted_log, log_hash) = compute_raw_note_log(*context, e.note, ovsk_app, ovpk, ivpk, recipient);\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n\npub fn encode_and_encrypt_note_unconstrained<Note, let N: 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> {\n | e: NoteEmission<Note> | {\n // Having the log hash be unconstrained here is fine because the way this works is we send the log hash\n // to the kernel, and it gets included as part of its public inputs. Then we send the tx to the sequencer,\n // which includes the kernel proof and the log preimages. The sequencer computes the hashes of the logs\n // and checks that they are the ones in the public inputs of the kernel, and drops the tx otherwise (proposing\n // the block on L1 would later fail if it didn't because of txs effects hash mismatch).\n // So if we don't constrain the log hash, then a malicious sender can compute the correct log, submit a bad\n // log hash to the kernel, and then submit the bad log preimage to the sequencer. All checks will pass, but\n // the submitted log will not be the one that was computed by the app.\n // In the unconstrained case, we don't care about the log at all because we don't do anything with it,\n // and because it's unconstrained: it could be anything. So if a sender chooses to broadcast the tx with a log\n // that is different from the one that was used in the circuit, then they'll be able to, but they were already\n // able to change the log before anyway, so the end result is the same. It's important here that we do not\n // return the log from this function to the app, otherwise it could try to do stuff with it and then that might\n // be wrong.\n // Regarding the note hash counter, this is used for squashing. The kernel assumes that a given note can have\n // more than one log and removes all of the matching ones, so all a malicious sender could do is either: cause\n // for the log to be deleted when it shouldn't have (which is fine - they can already make the content be\n // whatever), or cause for the log to not be deleted when it should have (which is also fine - it'll be a log\n // for a note that doesn't exist).\n let (note_hash_counter, encrypted_log, log_hash) = unsafe {\n compute_raw_note_log_unconstrained(*context, e.note, ovpk, ivpk, recipient)\n };\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n }\n}\n\n/// Encrypts a partial log and emits it. Takes recipient keys on the input and encrypts both the outgoing and incoming\n/// logs for the recipient. This is necessary because in the partial notes flow the outgoing always has to be the same\n/// as the incoming to not leak any information (typically the `from` party finalizing the partial note in public does\n/// not know who the recipient is).\npub fn encrypt_and_emit_partial_log<let M: u32>(\n context: &mut PrivateContext,\n log_plaintext: [u8; M],\n recipient_keys: PublicKeys,\n recipient: AztecAddress\n) {\n let ovsk_app: Field = context.request_ovsk_app(recipient_keys.ovpk_m.hash());\n\n let encrypted_log: [u8; 352 + M] = compute_encrypted_log(\n context.this_address(),\n ovsk_app,\n recipient_keys.ovpk_m,\n recipient_keys.ivpk_m,\n recipient,\n log_plaintext\n );\n let log_hash = sha256_to_field(encrypted_log);\n\n // Unfortunately we need to push a dummy note hash to the context here because a note log requires having\n // a counter that corresponds to a note hash in the same call.\n let note_hash_counter = context.side_effect_counter;\n context.push_note_hash(5);\n\n context.emit_raw_note_log(note_hash_counter, encrypted_log, log_hash);\n}\n"},"110":{"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};\n\nglobal PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n npk_m: NpkM,\n ivpk_m: IvpkM,\n ovpk_m: OvpkM,\n tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct 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\npub struct 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\npub struct 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\npub struct 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]\nunconstrained fn 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]\nunconstrained fn 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]\nunconstrained fn 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"},"113":{"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]\nunconstrained fn 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"},"114":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/keys/getters/mod.nr","source":"use dep::protocol_types::address::AztecAddress;\nuse crate::{\n oracle::{keys::get_public_keys_and_partial_address, key_validation_request::get_key_validation_request},\n keys::{public_keys::PublicKeys, constants::{NULLIFIER_INDEX, OUTGOING_INDEX}}\n};\n\nmod test;\n\nunconstrained pub fn get_nsk_app(npk_m_hash: Field) -> Field {\n get_key_validation_request(npk_m_hash, NULLIFIER_INDEX).sk_app\n}\n\n// A helper function that gets app-siloed outgoing viewing key for a given `ovpk_m_hash`. This function is used\n// in unconstrained contexts only - when computing unconstrained note logs. The safe alternative is `request_ovsk_app`\n// function defined on `PrivateContext`.\nunconstrained pub fn get_ovsk_app(ovpk_m_hash: Field) -> Field {\n get_key_validation_request(ovpk_m_hash, OUTGOING_INDEX).sk_app\n}\n\n// Returns all 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_public_keys(account: AztecAddress) -> PublicKeys {\n let (hinted_canonical_public_keys, partial_address) = unsafe {\n get_public_keys_and_partial_address(account)\n };\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"},"125":{"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 */\npub struct 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 */\npub struct 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"},"127":{"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, VIEW_NOTE_ORACLE_RETURN_LENGTH},\n note_getter_options::{NoteGetterOptions, Select, Sort, SortOrder, NoteStatus, PropertySelector},\n note_interface::{NoteInterface, NullifiableNote}, note_viewer_options::NoteViewerOptions,\n utils::compute_note_hash_for_read_request\n};\nuse crate::oracle;\nuse crate::utils::comparison::compare;\n\npub use crate::note::constants::MAX_NOTES_PER_PAGE;\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: [u8; 32] = serialized_note[selector.index].to_be_bytes();\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>(\n context: PrivateContext,\n storage_slot: Field,\n note: Note\n) where Note: NoteInterface<N> {\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 assert(\n compare(value_field, select.comparator, select.value.to_field()), \"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>(\n context: &mut PrivateContext,\n storage_slot: Field\n) -> (Note, Field) where Note: NoteInterface<N> + NullifiableNote {\n let note = unsafe {\n get_note_internal(storage_slot)\n };\n\n // Constraining that we got a valid note from the oracle is fairly straightforward: all we need to do is check that\n // the metadata is correct, and that the note exists.\n check_note_header(*context, storage_slot, note);\n\n let note_hash_for_read_request = compute_note_hash_for_read_request(note);\n context.push_note_hash_read_request(note_hash_for_read_request);\n\n (note, note_hash_for_read_request)\n}\n\npub fn get_notes<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n context: &mut PrivateContext,\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, 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> + NullifiableNote + Eq {\n let opt_notes = unsafe {\n get_notes_internal(storage_slot, options)\n };\n\n // We apply the constraints in a separate function instead of inlining them here to make it easier to test that\n // these checks correctly reject bad notes.\n constrain_get_notes_internal(context, storage_slot, opt_notes, options)\n}\n\nunconstrained fn apply_preprocessor<Note, 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, 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, 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> + NullifiableNote + 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_array(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>(storage_slot: Field) -> Note where Note: NoteInterface<N> {\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].expect(f\"Failed to get a note\") // Notice: we don't allow dummies to be returned from get_note (singular).\n}\n\nunconstrained fn get_notes_internal<Note, let N: u32, PREPROCESSOR_ARGS, FILTER_ARGS>(\n storage_slot: Field,\n options: NoteGetterOptions<Note, N, PREPROCESSOR_ARGS, FILTER_ARGS>\n) -> [Option<Note>; MAX_NOTE_HASH_READ_REQUESTS_PER_CALL] where Note: NoteInterface<N> {\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>(\n storage_slot: Field,\n options: NoteViewerOptions<Note, N>\n) -> BoundedVec<Note, MAX_NOTES_PER_PAGE> where Note: NoteInterface<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_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<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"},"132":{"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, NullifiableNote},\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, let N: u32>(\n context: &mut PrivateContext,\n storage_slot: Field,\n note: &mut Note\n) -> NoteEmission<Note> where Note: NoteInterface<N> + NullifiableNote {\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 let note_hash = note.compute_note_hash();\n\n let serialized_note = Note::serialize_content(*note);\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\n context.push_note_hash(note_hash);\n\n NoteEmission::new(*note)\n}\n\npub fn create_note_hash_from_public<Note, let N: u32>(\n context: &mut PublicContext,\n storage_slot: Field,\n note: &mut Note\n) where Note: NoteInterface<N> + NullifiableNote {\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 let note_hash = note.compute_note_hash();\n\n context.push_note_hash(note_hash);\n}\n\n// Note: This function is currently totally unused.\npub fn destroy_note<Note, let N: u32>(\n context: &mut PrivateContext,\n note: Note\n) where Note: NoteInterface<N> + NullifiableNote {\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, let N: u32>(\n context: &mut PrivateContext,\n note: Note,\n note_hash_for_read_request: Field\n) where Note: NoteInterface<N> + NullifiableNote {\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 notify_nullified_note(nullifier, notification_note_hash, nullifier_counter);\n\n context.push_nullifier_for_note_hash(nullifier, notification_note_hash)\n}\n"},"135":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/note/utils.nr","source":"use crate::{\n context::PrivateContext,\n note::{note_header::NoteHeader, note_interface::{NullifiableNote, NoteInterface}}\n};\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>(\n note_with_header: Note,\n context: &mut PrivateContext\n) -> Field where Note: NoteInterface<N> + NullifiableNote {\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>(note: Note) -> Field where Note: NoteInterface<N> + NullifiableNote {\n let note_hash = note.compute_note_hash();\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>(\n note: Note,\n note_hash_for_read_request: Field\n) -> Field where Note: NoteInterface<N> + NullifiableNote {\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> {\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// 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>(note: Note) -> Field where Note: NoteInterface<N> + NullifiableNote {\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\nunconstrained pub fn compute_note_hash_and_optionally_a_nullifier<T, let N: 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> + NullifiableNote {\n let mut note = deserialize_content(arr_copy_slice(serialized_note, [0; N], 0));\n note.set_header(note_header);\n\n let note_hash = note.compute_note_hash();\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"},"137":{"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"},"146":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr","source":"use dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{GENERATOR_INDEX__SECRET_HASH, GENERATOR_INDEX__MESSAGE_NULLIFIER, GENERATOR_INDEX__FUNCTION_ARGS},\n point::Point, traits::Hash,\n hash::{sha256_to_field, poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice}\n};\nuse crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\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\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<let N: u32>(contract_address: AztecAddress, log: [u8; N]) -> Field {\n let mut hash_bytes = [0; N + 36];\n // Address is converted to 32 bytes in ts\n let address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (N as Field).to_be_bytes();\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] = log[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: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\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\npub struct 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 if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn 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 serialized_log = arr_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6);\n let log = AztecAddress::from_field(0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303);\n let serialized_log: [u8; 32] = log.to_field().to_be_bytes();\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"dummy\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8);\n let log = \"Hello this is a string\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"},"151":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/returns.nr","source":"/// Notifies the simulator that `returns` will be later fetched once the function return is processed, referenced by\n/// their hash. This allows the simulator to know how to respond to this future request.\n///\n/// This is only used during private execution, since in public it is the VM itself that keeps track of return values.\npub fn pack_returns(returns: [Field]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call. When\n // unpacking however the caller must check that the returned value is indeed the preimage.\n unsafe {\n pack_returns_oracle_wrapper(returns)\n };\n}\n\nunconstrained pub fn pack_returns_oracle_wrapper(returns: [Field]) {\n let _ = pack_returns_oracle(returns);\n}\n\nunconstrained pub fn unpack_returns<let N: u32>(return_hash: Field) -> [Field; N] {\n unpack_returns_oracle(return_hash)\n}\n\n#[oracle(packReturns)]\nunconstrained fn pack_returns_oracle(_returns: [Field]) -> Field {}\n\n#[oracle(unpackReturns)]\nunconstrained fn unpack_returns_oracle<let N: u32>(_return_hash: Field) -> [Field; N] {}\n"},"153":{"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, constants::CONTRACT_INSTANCE_LENGTH,\n 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 = unsafe {\n ContractInstance::deserialize(get_contract_instance_internal(address))\n };\n // The to_address function combines all values in the instance object to produce an address, so by checking that we\n // get the expected address we validate the entire struct.\n assert_eq(instance.to_address(), address);\n\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"},"154":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr","source":"use dep::protocol_types::address::AztecAddress;\n\n/// Informs the simulator that an encrypted note log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_note_log<let M: u32>(note_hash_counter: u32, encrypted_note: [u8; M], counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_note_log_oracle_wrapper(note_hash_counter, encrypted_note, counter)\n }\n}\n\n/// Informs the simulator that an encrypted event log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_event_log<let M: u32>(contract_address: AztecAddress, randomness: Field, encrypted_event: [u8; M], counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_event_log_oracle_wrapper(contract_address, randomness, encrypted_event, counter)\n }\n}\n\n/// Informs the simulator that an unencrypted log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_unencrypted_log_private<T>(contract_address: AztecAddress, message: T, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_unencrypted_log_private_oracle_wrapper(contract_address, message, counter)\n }\n}\n\nunconstrained fn emit_encrypted_note_log_oracle_wrapper<let M: u32>(note_hash_counter: u32, encrypted_note: [u8; M], counter: u32) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\nunconstrained fn emit_encrypted_event_log_oracle_wrapper<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\nunconstrained fn emit_unencrypted_log_private_oracle_wrapper<T>(contract_address: AztecAddress, message: T, counter: u32) {\n let _ = emit_unencrypted_log_private_oracle(contract_address, message, counter);\n}\n\n/// Temporary substitute for `emit_unencrypted_log_private` that is used for handling contract class registration. This\n/// variant returns the log hash, which would be too large to compute inside a circuit.\nunconstrained pub fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {\n emit_contract_class_unencrypted_log_private_oracle(contract_address, message, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(\n _note_hash_counter: u32,\n _encrypted_note: [u8; M],\n _counter: u32\n) {}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _encrypted_event: [u8; M],\n _counter: u32\n) {}\n\n#[oracle(emitUnencryptedLog)]\nunconstrained fn emit_unencrypted_log_private_oracle<T>(\n _contract_address: AztecAddress,\n _message: T,\n _counter: u32\n) -> Field {}\n\n#[oracle(emitContractClassUnencryptedLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32\n) -> Field {}\n"},"155":{"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 pub fn get_public_keys_and_partial_address(address: AztecAddress) -> (PublicKeys, PartialAddress) {\n let result = get_public_keys_and_partial_address_oracle(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"},"157":{"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) -> Field {}\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) -> Field {\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) -> Field {}\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) -> Field {\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\npub fn notify_set_min_revertible_side_effect_counter(counter: u32) {\n unsafe {\n notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter)\n };\n}\n\nunconstrained pub fn notify_set_min_revertible_side_effect_counter_oracle_wrapper(counter: u32) {\n notify_set_min_revertible_side_effect_counter_oracle(counter);\n}\n\n#[oracle(notifySetMinRevertibleSideEffectCounter)]\nunconstrained fn notify_set_min_revertible_side_effect_counter_oracle(_counter: u32) {}\n"},"161":{"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"},"163":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/oracle/random.nr","source":"/// Returns an unconstrained random value. Note that it is not possible to constrain this value to prove that it is\n/// truly random: we assume that the oracle is cooperating and returning random values.\n/// In some applications this behavior might not be acceptable and other techniques might be more suitable, such as\n/// producing pseudo-random values by hashing values outside of user control (like block hashes) or secrets.\nunconstrained pub fn random() -> Field {\n rand_oracle()\n}\n\n#[oracle(getRandomField)]\nunconstrained fn rand_oracle() -> Field {}\n"},"164":{"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\nunconstrained pub fn get_key_validation_request(\n pk_m_hash: Field,\n key_index: Field\n) -> KeyValidationRequest {\n get_key_validation_request_internal(pk_m_hash, key_index)\n}\n"},"165":{"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/// Notifies the simulator that a note has been created, so that it can be returned in future read requests in the same\n/// transaction. This note should only be added to the non-volatile database if found in an actual block.\npub 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) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n notify_created_note_oracle_wrapper(storage_slot, note_type_id, serialized_note, note_hash, counter)\n };\n}\n\n/// Notifies the simulator that a note has been nullified, so that it is no longer returned in future read requests in\n/// the same transaction. This note should only be removed to the non-volatile database if its nullifier is found in an\n/// actual block.\npub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n notify_nullified_note_oracle_wrapper(nullifier, note_hash, counter)\n };\n}\n\nunconstrained fn notify_created_note_oracle_wrapper<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) {\n let _ = notify_created_note_oracle(storage_slot, note_type_id, serialized_note, note_hash, counter);\n}\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 fn notify_nullified_note_oracle_wrapper(\n nullifier: Field,\n note_hash: Field,\n counter: u32\n) {\n let _ = notify_nullified_note_oracle(nullifier, note_hash, counter);\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(_nullifier: Field, _note_hash: Field, _counter: u32) -> Field {}\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 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> {\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/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before the\n/// current transaction is included in a block. While this might seem of little use at first, certain design patterns\n/// benefit from this abstraction (see e.g. `PrivateMutable`).\nunconstrained pub fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n"},"170":{"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: [u8; 32] = pk.x.to_be_bytes();\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\n}\n\nmod test {\n use dep::protocol_types::point::Point;\n use crate::utils::point::point_to_bytes;\n\n #[test]\n unconstrained 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 unconstrained 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"},"174":{"path":"/usr/src/noir-projects/aztec-nr/aztec/src/state_vars/private_immutable.nr","source":"use dep::protocol_types::{constants::GENERATOR_INDEX__INITIALIZATION_NULLIFIER, hash::poseidon2_hash_with_separator};\n\nuse crate::context::{PrivateContext, UnconstrainedContext};\nuse crate::note::{\n lifecycle::create_note, note_getter::{get_note, view_notes},\n note_interface::{NoteInterface, NullifiableNote}, note_viewer_options::NoteViewerOptions,\n note_emission::NoteEmission\n};\nuse crate::oracle::notes::check_nullifier_exists;\nuse crate::state_vars::storage::Storage;\n\n// docs:start:struct\npub struct 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<let N: u32>(\n self,\n note: &mut Note\n ) -> NoteEmission<Note> where Note: NoteInterface<N> + NullifiableNote {\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<let N: u32>(self) -> Note where Note: NoteInterface<N> + NullifiableNote {\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<let N: u32>(self) -> Note where Note: NoteInterface<N> + NullifiableNote {\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"},"217":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/abis/validation_requests/key_validation_request.nr","source":"use crate::{traits::{Empty, Serialize, Deserialize}, point::Point};\npub use crate::constants::KEY_VALIDATION_REQUEST_LENGTH;\n\npub struct 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)) & (request.sk_app.eq(self.sk_app))\n }\n}\n\nimpl Empty for KeyValidationRequest {\n fn empty() -> Self {\n KeyValidationRequest { pk_m: Point::empty(), sk_app: 0 }\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 { pk_m: Point { x: fields[0], y: fields[1], is_infinite: fields[2] as bool }, sk_app: fields[3] }\n }\n}\n"},"24":{"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.\npub struct 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 pub 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 pub 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 { x: self.x, y: -self.y, is_infinite: self.is_infinite }\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)\n | ((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.\npub struct 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 pub fn from_field(scalar: Field) -> EmbeddedCurveScalar {\n let (a,b) = crate::field::bn254::decompose(scalar);\n EmbeddedCurveScalar { lo: a, hi: b }\n }\n\n //Bytes to scalar: take the first (after the specified offset) 16 bytes of the input as the lo value, and the next 16 bytes as the hi value\n #[field(bn254)]\n pub(crate) fn from_bytes(bytes: [u8; 64], offset: u32) -> EmbeddedCurveScalar {\n let mut v = 1;\n let mut lo = 0 as Field;\n let mut hi = 0 as Field;\n for i in 0..16 {\n lo = lo + (bytes[offset+31 - i] as Field) * v;\n hi = hi + (bytes[offset+15 - i] as Field) * v;\n v = v * 256;\n }\n let sig_s = crate::embedded_curve_ops::EmbeddedCurveScalar { lo, hi };\n sig_s\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 function only assumes that the points are on the curve\n/// It handles corner cases around the infinity point causing some overhead compared to embedded_curve_add_not_nul and embedded_curve_add_unsafe\n// This is a hack because 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\npub fn embedded_curve_add(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n // docs:end:embedded_curve_add\n let x_coordinates_match = point1.x == point2.x;\n let y_coordinates_match = point1.y == point2.y;\n let double_predicate = (x_coordinates_match & y_coordinates_match);\n let infinity_predicate = (x_coordinates_match & !y_coordinates_match);\n let point1_1 = EmbeddedCurvePoint { x: point1.x + (x_coordinates_match as Field), y: point1.y, is_infinite: x_coordinates_match };\n // point1_1 is guaranteed to have a different abscissa than point2\n let mut result = embedded_curve_add_unsafe(point1_1, point2);\n result.is_infinite = x_coordinates_match;\n\n // dbl if x_match, y_match\n let double = embedded_curve_add_unsafe(point1, point1);\n result = if double_predicate { double } else { result };\n\n // infinity if x_match, !y_match\n if point1.is_infinite {\n result= point2;\n }\n if point2.is_infinite {\n result = point1;\n }\n let mut result_is_infinity = infinity_predicate & (!point1.is_infinite & !point2.is_infinite);\n result.is_infinite = result_is_infinity | (point1.is_infinite & point2.is_infinite);\n result\n}\n\n#[foreign(embedded_curve_add)]\nfn embedded_curve_add_array_return(_point1: EmbeddedCurvePoint, _point2: EmbeddedCurvePoint) -> [Field; 3] {}\n\n/// This function assumes that:\n/// The points are on the curve, and\n/// The points don't share an x-coordinate, and\n/// Neither point is the infinity point.\n/// If it is used with correct input, the function ensures the correct non-zero result is returned.\n/// Except for points on the curve, the other assumptions are checked by the function. It will cause assertion failure if they are not respected.\npub fn embedded_curve_add_not_nul(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n assert(point1.x != point2.x);\n assert(!point1.is_infinite);\n assert(!point2.is_infinite);\n embedded_curve_add_unsafe(point1, point2)\n}\n\n/// Unsafe ec addition\n/// If the inputs are the same, it will perform a doubling, but only if point1 and point2 are the same variable.\n/// If they have the same value but are different variables, the result will be incorrect because in this case\n/// it assumes (but does not check) that the points' x-coordinates are not equal.\n/// It also assumes neither point is the infinity point.\npub fn embedded_curve_add_unsafe(point1: EmbeddedCurvePoint, point2: EmbeddedCurvePoint) -> EmbeddedCurvePoint {\n let point_array = embedded_curve_add_array_return(point1, point2);\n let x = point_array[0];\n let y = point_array[1];\n\n EmbeddedCurvePoint { x, y, is_infinite: false }\n}\n"},"25":{"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\npub(crate) global 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: [u8; 32] = x.to_le_bytes();\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: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_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, compute_lt, assert_gt, gt, 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"},"26":{"path":"std/field/mod.nr","source":"pub mod bn254;\nuse bn254::lt as bn254_lt;\nuse crate::runtime::is_unconstrained;\n\nimpl Field {\n /// Asserts that `self` can be represented in `bit_size` bits.\n ///\n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^{bit_size}`.\n // docs:start:assert_max_bit_size\n pub fn assert_max_bit_size(self, bit_size: u32) {\n // docs:end:assert_max_bit_size\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 #[builtin(apply_range_constraint)]\n fn __assert_max_bit_size(self, bit_size: u32) {}\n\n /// Decomposes `self` into its little endian bit decomposition as a `[u1; N]` array.\n /// This slice will be zero padded should not all bits be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_le_bits)]\n // docs:start:to_le_bits\n pub fn to_le_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_le_bits\n\n /// Decomposes `self` into its big endian bit decomposition as a `[u1; N]` array.\n /// This array will be zero padded should not all bits be necessary to represent `self`.\n /// \n /// # Failures\n /// Causes a constraint failure for `Field` values exceeding `2^N` as the resulting slice will not\n /// be able to represent the original `Field`.\n ///\n /// # Safety\n /// Values of `N` equal to or greater than the number of bits necessary to represent the `Field` modulus\n /// (e.g. 254 for the BN254 field) allow for multiple bit decompositions. This is due to how the `Field` will\n /// wrap around due to overflow when verifying the decomposition.\n #[builtin(to_be_bits)]\n // docs:start:to_be_bits\n pub fn to_be_bits<let N: u32>(self: Self) -> [u1; N] {}\n // docs:end:to_be_bits\n\n /// Decomposes `self` into its little endian byte decomposition as a `[u8;N]` array\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self', \n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_le_bytes\n pub fn to_le_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_le_bytes\n // Compute the byte decomposition\n let bytes = self.to_le_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_le_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[N - 1 - i] != p[N - 1 - i]) {\n assert(bytes[N - 1 - i] < p[N - 1 - i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n /// Decomposes `self` into its big endian byte decomposition as a `[u8;N]` array of length required to represent the field modulus\n /// This array will be zero padded should not all bytes be necessary to represent `self`.\n /// \n /// # Failures\n /// The length N of the array must be big enough to contain all the bytes of the 'self', \n /// and no more than the number of bytes required to represent the field modulus\n ///\n /// # Safety\n /// The result is ensured to be the canonical decomposition of the field element\n // docs:start:to_be_bytes\n pub fn to_be_bytes<let N: u32>(self: Self) -> [u8; N] {\n // docs:end:to_be_bytes\n // Compute the byte decomposition\n let bytes = self.to_be_radix(256);\n\n if !is_unconstrained() {\n // Ensure that the byte decomposition does not overflow the modulus\n let p = modulus_be_bytes();\n assert(bytes.len() <= p.len());\n let mut ok = bytes.len() != p.len();\n for i in 0..N {\n if !ok {\n if (bytes[i] != p[i]) {\n assert(bytes[i] < p[i]);\n ok = true;\n }\n }\n }\n assert(ok);\n }\n bytes\n }\n\n // docs:start:to_le_radix\n pub fn to_le_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n crate::assert_constant(radix);\n self.__to_le_radix(radix)\n }\n // docs:end:to_le_radix\n\n // docs:start:to_be_radix\n pub fn to_be_radix<let N: u32>(self: Self, radix: u32) -> [u8; N] {\n crate::assert_constant(radix);\n self.__to_be_radix(radix)\n }\n // docs:end:to_be_radix\n\n // `_radix` must be less than 256\n #[builtin(to_le_radix)]\n fn __to_le_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\n\n #[builtin(to_be_radix)]\n fn __to_be_radix<let N: u32>(self, radix: u32) -> [u8; N] {}\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: [u1; 32] = exponent.to_le_bits();\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 `elem` {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 /// Convert a little endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_le_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[i] as Field) * v;\n v = v * 256;\n }\n result\n }\n\n /// Convert a big endian byte array to a field element.\n /// If the provided byte array overflows the field modulus then the Field will silently wrap around.\n pub fn from_be_bytes<let N: u32>(bytes: [u8; N]) -> Field {\n let mut v = 1;\n let mut result = 0;\n\n for i in 0..N {\n result += (bytes[N-1-i] as Field) * v;\n v = v * 256;\n }\n result\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 x_bytes: [u8; 32] = x.to_le_bytes();\n let y_bytes: [u8; 32] = y.to_le_bytes();\n let mut x_is_lt = false;\n let mut done = false;\n for i in 0..32 {\n if (!done) {\n let x_byte = x_bytes[32 - 1 - i] as u8;\n let y_byte = y_bytes[32 - 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\nmod tests {\n #[test]\n // docs:start:to_be_bits_example\n fn test_to_be_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_be_bits();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 1, 0]);\n }\n // docs:end:to_be_bits_example\n\n #[test]\n // docs:start:to_le_bits_example\n fn test_to_le_bits() {\n let field = 2;\n let bits: [u1; 8] = field.to_le_bits();\n assert_eq(bits, [0, 1, 0, 0, 0, 0, 0, 0]);\n }\n // docs:end:to_le_bits_example\n\n #[test]\n // docs:start:to_be_bytes_example\n fn test_to_be_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_bytes();\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bits), field);\n }\n // docs:end:to_be_bytes_example\n\n #[test]\n // docs:start:to_le_bytes_example\n fn test_to_le_bytes() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_bytes();\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bits), field);\n }\n // docs:end:to_le_bytes_example\n\n #[test]\n // docs:start:to_be_radix_example\n fn test_to_be_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_be_radix(256);\n assert_eq(bits, [0, 0, 0, 0, 0, 0, 0, 2]);\n assert_eq(Field::from_be_bytes::<8>(bits), field);\n }\n // docs:end:to_be_radix_example\n\n #[test]\n // docs:start:to_le_radix_example\n fn test_to_le_radix() {\n let field = 2;\n let bits: [u8; 8] = field.to_le_radix(256);\n assert_eq(bits, [2, 0, 0, 0, 0, 0, 0, 0]);\n assert_eq(Field::from_le_bytes::<8>(bits), field);\n }\n // docs:end:to_le_radix_example\n}\n"},"262":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr","source":"use crate::{\n address::{aztec_address::AztecAddress}, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct 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"},"264":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr","source":"use crate::{\n address::{partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n constants::{AZTEC_ADDRESS_LENGTH, GENERATOR_INDEX__CONTRACT_ADDRESS_V1},\n hash::poseidon2_hash_with_separator, traits::{Empty, FromField, ToField, Serialize, Deserialize},\n utils\n};\n\n// Aztec address\npub struct 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 { inner: 0 }\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"},"267":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr","source":"use crate::{\n address::{salted_initialization_hash::SaltedInitializationHash, aztec_address::AztecAddress},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS, contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator, traits::{ToField, Serialize, Deserialize}\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct 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"},"29":{"path":"std/hash/mod.nr","source":"pub mod poseidon;\npub mod mimc;\npub mod poseidon2;\npub mod keccak;\npub mod sha256;\npub mod 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\npub use 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_noir(input, separator)\n}\n\npub fn 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_noir(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)]\npub fn 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>(domain_separator_bytes: [u8; M], starting_index: u32) -> [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\nfn 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();\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)]\npub trait 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.)\npub trait 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.\npub trait BuildHasher<H> where H: Hasher {\n fn build_hasher(self) -> H;\n}\n\npub struct BuildHasherDefault<H>;\n\nimpl<H> BuildHasher<H> for BuildHasherDefault<H>\nwhere\n H: Hasher + Default {\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 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"},"295":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/point.nr","source":"pub use dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse crate::{traits::{Deserialize, Empty, Hash, Serialize}, hash::poseidon2_hash};\n\nglobal POINT_LENGTH: u32 = 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 { x: 0, y: 0, is_infinite: false }\n }\n}\n\nimpl Deserialize<POINT_LENGTH> for Point {\n fn deserialize(serialized: [Field; POINT_LENGTH]) -> Point {\n Point { x: serialized[0], y: serialized[1], is_infinite: serialized[2] as bool }\n }\n}\n"},"3":{"path":"std/array/mod.nr","source":"use crate::cmp::{Eq, Ord};\nuse crate::convert::From;\nuse crate::runtime::is_unconstrained;\n\nmod check_shuffle;\nmod quicksort;\n\nimpl<T, let N: u32> [T; N] {\n /// Returns the length of this array.\n /// \n /// ```noir\n /// fn len(self) -> Field\n /// ```\n /// \n /// example\n /// \n /// ```noir\n /// fn main() {\n /// let array = [42, 42];\n /// assert(array.len() == 2);\n /// }\n /// ```\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n /// Returns this array as a slice.\n /// \n /// ```noir\n /// let array = [1, 2];\n /// let slice = array.as_slice();\n /// assert_eq(slice, &[1, 2]);\n /// ```\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n /// Applies a function to each element of this array, returning a new array containing the mapped elements.\n /// \n /// Example:\n /// \n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.map(|a| a * 2);\n /// assert_eq(b, [2, 4, 6]);\n /// ```\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 /// Applies a function to each element of the array, returning the final accumulated value. The first\n /// parameter is the initial value.\n /// \n /// This is a left fold, so the given function will be applied to the accumulator and first element of\n /// the array, then the second, and so on. For a given call the expected result would be equivalent to:\n /// \n /// ```rust\n /// let a1 = [1];\n /// let a2 = [1, 2];\n /// let a3 = [1, 2, 3];\n /// \n /// let f = |a, b| a - b;\n /// a1.fold(10, f); //=> f(10, 1)\n /// a2.fold(10, f); //=> f(f(10, 1), 2)\n /// a3.fold(10, f); //=> f(f(f(10, 1), 2), 3)\n /// \n /// assert_eq(a3.fold(10, f), 10 - 1 - 2 - 3);\n /// ```\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 /// Same as fold, but uses the first element as the starting element.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [1, 2, 3, 4];\n /// let reduced = arr.reduce(|a, b| a + b);\n /// assert(reduced == 10);\n /// }\n /// ```\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 the elements in this array satisfy the given predicate.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 2];\n /// let all = arr.all(|a| a == 2);\n /// assert(all);\n /// }\n /// ```\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 of the elements in this array satisfy the given predicate.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 5];\n /// let any = arr.any(|a| a == 5);\n /// assert(any);\n /// }\n /// ```\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<T, let N: u32> [T; N] where T: Ord + Eq {\n /// Returns a new sorted array. The original array remains untouched. Notice that this function will\n /// only work for arrays of fields or integers, not for any arbitrary type. This is because the sorting\n /// logic it uses internally is optimized specifically for these values. If you need a sort function to\n /// sort any type, you should use the `sort_via` function.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let arr = [42, 32];\n /// let sorted = arr.sort();\n /// assert(sorted == [32, 42]);\n /// }\n /// ```\n pub fn sort(self) -> Self {\n self.sort_via(|a: T, b: T| a <= b)\n }\n}\n\nimpl<T, let N: u32> [T; N] where T: Eq {\n /// Returns a new sorted array by sorting it with a custom comparison function. \n /// The original array remains untouched. \n /// The ordering function must return true if the first argument should be sorted to be before the second argument or is equal to the second argument.\n /// \n /// Using this method with an operator like `<` that does not return `true` for equal values will result in an assertion failure for arrays with equal elements.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let arr = [42, 32]\n /// let sorted_ascending = arr.sort_via(|a, b| a <= b);\n /// assert(sorted_ascending == [32, 42]); // verifies\n /// \n /// let sorted_descending = arr.sort_via(|a, b| a >= b);\n /// assert(sorted_descending == [32, 42]); // does not verify\n /// }\n /// ```\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n unsafe {\n // Safety: `sorted` array is checked to be:\n // a. a permutation of `input`'s elements\n // b. satisfying the predicate `ordering`\n let sorted = quicksort::quicksort(self, ordering);\n\n if !is_unconstrained() {\n for i in 0..N - 1 {\n assert(\n ordering(sorted[i], sorted[i + 1]), \"Array has not been sorted correctly according to `ordering`.\"\n );\n }\n check_shuffle::check_shuffle(self, sorted);\n }\n sorted\n }\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Converts a byte array of type `[u8; N]` to a string. Note that this performs no UTF-8 validation -\n /// the given array is interpreted as-is as a string.\n /// \n /// Example:\n /// \n /// ```rust\n /// fn main() {\n /// let hi = [104, 105].as_str_unchecked();\n /// assert_eq(hi, \"hi\");\n /// }\n /// ```\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n /// Returns an array of the string bytes.\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n"},"308":{"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\n};\nuse super::utils::field::field_from_bytes;\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: [u8; 32] = inputs[i].to_be_bytes();\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: [u8; 32] = input[offset].to_be_bytes();\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: [u8; 32] = logs[offset].value.to_be_bytes();\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: [u8; 32] = logs[offset].value.to_be_bytes();\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 poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field where T: ToField {\n let in_len = inputs.len() + 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\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of Math.ceil(N/31)\n let mut in_len = N / 31;\n let mut has_padding = false;\n if N % 31 != 0 {\n in_len += 1;\n has_padding = true;\n }\n\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\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n sponge.absorb(field_from_bytes(current_field, false));\n current_field = [0; 31];\n }\n }\n if has_padding {\n sponge.absorb(field_from_bytes(current_field, false));\n }\n\n sponge.squeeze()\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"},"311":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/contract_instance.nr","source":"use crate::{\n address::{aztec_address::AztecAddress, partial_address::PartialAddress, public_keys_hash::PublicKeysHash},\n contract_class_id::ContractClassId, constants::CONTRACT_INSTANCE_LENGTH,\n traits::{Deserialize, Hash, Serialize}\n};\n\npub struct 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"},"313":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr","source":"use crate::utils::field::field_from_bytes;\nuse crate::meta::{derive_deserialize, derive_serialize};\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.\npub trait Empty {\n fn empty() -> Self;\n}\n\nimpl Empty for Field {\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for u1 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for U128 {\n fn empty() -> Self {\n U128::from_integer(0)\n }\n}\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\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait 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 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\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\npub trait 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 {\n fn from_field(value: Field) -> Self {\n value as bool\n }\n}\nimpl FromField for u1 {\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u32 {\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for U128 {\n fn from_field(value: Field) -> Self {\n U128::from_integer(value)\n }\n}\n\n// docs:start:serialize\n#[derive_via(derive_serialize)]\npub trait Serialize<let N: u32> {\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let N: u32> Serialize<N> for str<N> {\n fn serialize(self) -> [Field; N] {\n let bytes = self.as_bytes();\n let mut fields = [0; N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n// docs:start:deserialize\n#[derive_via(derive_deserialize)]\npub trait Deserialize<let N: u32> {\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl <let N: u32> Deserialize<N> for str<N> {\n fn deserialize(fields: [Field; N]) -> Self {\n str<N>::from(fields.map(|value| value as u8))\n }\n}\n"},"314":{"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/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\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]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n debug_log_oracle_wrapper(msg, args)\n };\n}\n\nunconstrained pub fn debug_log_oracle_wrapper<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n debug_log_oracle(msg, args.as_slice());\n}\n\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#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"},"317":{"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"},"319":{"path":"/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr","source":"pub 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"},"34":{"path":"std/hash/poseidon2.nr","source":"use crate::hash::Hasher;\nuse crate::default::Default;\n\ncomptime global RATE: u32 = 3;\n\npub struct 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 pub(crate) 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) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::hash::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\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 }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\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\npub struct 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 { _state: &[] }\n }\n}\n"},"35":{"path":"std/hash/sha256.nr","source":"use crate::runtime::is_unconstrained;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> [u8; 32]\n// docs:end:sha256\n{\n digest(input)\n}\n\n#[foreign(sha256_compression)]\npub fn sha256_compression(_input: [u32; 16], _state: [u32; 8]) -> [u32; 8] {}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> [u8; 32] {\n sha256_var(msg, N as u64)\n}\n\n// Convert 64-byte array to array of 16 u32s\nfn msg_u8_to_u32(msg: [u8; 64]) -> [u32; 16] {\n let mut msg32: [u32; 16] = [0; 16];\n\n for i in 0..16 {\n let mut msg_field: Field = 0;\n for j in 0..4 {\n msg_field = msg_field * 256 + msg[64 - 4*(i + 1) + j] as Field;\n }\n msg32[15 - i] = msg_field as u32;\n }\n\n msg32\n}\n\nunconstrained fn build_msg_block_iter<let N: u32>(msg: [u8; N], message_size: u32, msg_start: u32) -> ([u8; 64], u32) {\n let mut msg_block: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if msg_start + BLOCK_SIZE > message_size {\n if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else {\n message_size - msg_start\n }\n } else {\n BLOCK_SIZE\n };\n for k in 0..block_input {\n msg_block[k] = msg[msg_start + k];\n }\n (msg_block, block_input)\n}\n\n// Verify the block we are compressing was appropriately constructed\nfn verify_msg_block<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_block: [u8; 64],\n msg_start: u32\n) -> u32 {\n let mut msg_byte_ptr: u32 = 0; // Message byte pointer\n let mut msg_end = msg_start + BLOCK_SIZE;\n if msg_end > N {\n msg_end = N;\n }\n\n for k in msg_start..msg_end {\n if k < message_size {\n assert_eq(msg_block[msg_byte_ptr], msg[k]);\n msg_byte_ptr = msg_byte_ptr + 1;\n }\n }\n\n msg_byte_ptr\n}\n\nglobal BLOCK_SIZE = 64;\nglobal ZERO = 0;\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u64) -> [u8; 32] {\n let message_size = message_size as u32;\n let num_blocks = N / BLOCK_SIZE;\n let mut msg_block: [u8; BLOCK_SIZE] = [0; BLOCK_SIZE];\n let mut h: [u32; 8] = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]; // Intermediate hash, starting with the canonical initial value\n let mut msg_byte_ptr = 0; // Pointer into msg_block\n\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let (new_msg_block, new_msg_byte_ptr) = unsafe {\n build_msg_block_iter(msg, message_size, msg_start)\n };\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n // Verify the block we are compressing was appropriately constructed\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n\n // If the block is filled, compress it.\n // An un-filled block is handled after this loop.\n if (msg_start < message_size) & (msg_byte_ptr == BLOCK_SIZE) {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n }\n }\n\n let modulo = N % BLOCK_SIZE;\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n if modulo != 0 {\n let msg_start = BLOCK_SIZE * num_blocks;\n let (new_msg_block, new_msg_byte_ptr) = unsafe {\n build_msg_block_iter(msg, message_size, msg_start)\n };\n\n if msg_start < message_size {\n msg_block = new_msg_block;\n }\n\n if !is_unconstrained() {\n let new_msg_byte_ptr = verify_msg_block(msg, message_size, msg_block, msg_start);\n if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n } else if msg_start < message_size {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n if msg_byte_ptr == BLOCK_SIZE {\n msg_byte_ptr = 0;\n }\n\n // This variable is used to get around the compiler under-constrained check giving a warning.\n // We want to check against a constant zero, but if it does not come from the circuit inputs\n // or return values the compiler check will issue a warning.\n let zero = msg_block[0] - msg_block[0];\n\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n msg_block[msg_byte_ptr] = 1 << 7;\n let last_block = msg_block;\n msg_byte_ptr = msg_byte_ptr + 1;\n\n unsafe {\n let (new_msg_block, new_msg_byte_ptr) = pad_msg_block(msg_block, msg_byte_ptr);\n msg_block = new_msg_block;\n if crate::runtime::is_unconstrained() {\n msg_byte_ptr = new_msg_byte_ptr;\n }\n }\n\n if !crate::runtime::is_unconstrained() {\n for i in 0..BLOCK_SIZE {\n assert_eq(msg_block[i], last_block[i]);\n }\n\n // If i >= 57, there aren't enough bits in the current message block to accomplish this, so\n // the 1 and 0s fill up the current block, which we then compress accordingly.\n // Not enough bits (64) to store length. Fill up with zeros.\n for _i in 57..BLOCK_SIZE {\n if msg_byte_ptr <= 63 & msg_byte_ptr >= 57 {\n assert_eq(msg_block[msg_byte_ptr], zero);\n msg_byte_ptr += 1;\n }\n }\n }\n\n if msg_byte_ptr >= 57 {\n h = sha256_compression(msg_u8_to_u32(msg_block), h);\n\n msg_byte_ptr = 0;\n }\n\n msg_block = unsafe {\n attach_len_to_msg_block(msg_block, msg_byte_ptr, message_size)\n };\n\n if !crate::runtime::is_unconstrained() {\n for i in 0..56 {\n let predicate = (i < msg_byte_ptr) as u8;\n let expected_byte = predicate * last_block[i];\n assert_eq(msg_block[i], expected_byte);\n }\n\n // We verify the message length was inserted correctly by reversing the byte decomposition.\n let len = 8 * message_size;\n let mut reconstructed_len: Field = 0;\n for i in 56..64 {\n reconstructed_len = 256 * reconstructed_len + msg_block[i] as Field;\n }\n assert_eq(reconstructed_len, len as Field);\n }\n\n hash_final_block(msg_block, h)\n}\n\nunconstrained fn pad_msg_block(\n mut msg_block: [u8; 64],\n mut msg_byte_ptr: u32\n) -> ([u8; BLOCK_SIZE], u32) {\n // If i >= 57, there aren't enough bits in the current message block to accomplish this, so\n // the 1 and 0s fill up the current block, which we then compress accordingly.\n if msg_byte_ptr >= 57 {\n // Not enough bits (64) to store length. Fill up with zeros.\n for i in msg_byte_ptr..BLOCK_SIZE {\n msg_block[i] = 0;\n }\n (msg_block, BLOCK_SIZE)\n } else {\n (msg_block, msg_byte_ptr)\n }\n}\n\nunconstrained fn attach_len_to_msg_block(mut msg_block: [u8; BLOCK_SIZE], msg_byte_ptr: u32, message_size: u32) -> [u8; BLOCK_SIZE] {\n // We assume that `msg_byte_ptr` is less than 57 because if not then it is reset to zero before calling this function.\n // In any case, fill blocks up with zeros until the last 64 (i.e. until msg_byte_ptr = 56).\n\n for i in msg_byte_ptr..56 {\n msg_block[i] = 0;\n }\n\n let len = 8 * message_size;\n let len_bytes: [u8; 8] = (len as Field).to_be_bytes();\n for i in 0..8 {\n msg_block[56 + i] = len_bytes[i];\n }\n msg_block\n}\n\nfn hash_final_block(msg_block: [u8; BLOCK_SIZE], mut state: [u32; 8]) -> [u8; 32] {\n let mut out_h: [u8; 32] = [0; 32]; // Digest as sequence of bytes\n\n // Hash final padded block\n state = sha256_compression(msg_u8_to_u32(msg_block), state);\n\n // Return final hash as byte array\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[7 - j] as Field).to_le_bytes();\n for k in 0..4 {\n out_h[31 - 4*j - k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\nmod tests {\n use super::sha256_var;\n\n #[test]\n fn smoke_test() {\n let input = [0xbd];\n let result = [\n 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d, 0x05, 0x70, 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0, 0x8f, 0xfe, 0x73, 0x2b\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116\n ];\n let result = [\n 91, 122, 146, 93, 52, 109, 133, 148, 171, 61, 156, 70, 189, 238, 153, 7, 222, 184, 94, 24, 65, 114, 192, 244, 207, 199, 87, 232, 192, 224, 171, 207\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_multiple_over_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115, 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49, 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46, 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115, 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97, 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45, 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55, 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32, 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32, 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103, 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115, 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101, 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56, 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48, 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75, 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101, 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99\n ];\n let result = [\n 116, 90, 151, 31, 78, 22, 138, 180, 211, 189, 69, 76, 227, 200, 155, 29, 59, 123, 154, 60, 47, 153, 203, 129, 157, 251, 48, 2, 79, 11, 65, 47\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_just_under_block() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59\n ];\n let result = [\n 143, 140, 76, 173, 222, 123, 102, 68, 70, 149, 207, 43, 39, 61, 34, 79, 216, 252, 213, 165, 74, 16, 110, 74, 29, 64, 138, 167, 30, 1, 9, 119\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_not_block_multiple() {\n let input = [\n 102, 114, 111, 109, 58, 114, 117, 110, 110, 105, 101, 114, 46, 108, 101, 97, 103, 117, 101, 115, 46, 48, 106, 64, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 13, 10, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121, 112, 101, 58, 116, 101, 120, 116, 47, 112, 108, 97, 105, 110, 59, 32, 99, 104, 97, 114, 115, 101, 116, 61, 117, 115, 45, 97, 115, 99, 105, 105, 13, 10, 109, 105, 109, 101, 45, 118, 101, 114, 115, 105, 111, 110, 58, 49, 46, 48, 32, 40, 77, 97, 99, 32, 79, 83, 32, 88, 32, 77, 97, 105, 108, 32, 49, 54, 46, 48, 32, 92, 40, 51, 55, 51, 49, 46, 53, 48, 48, 46, 50, 51, 49, 92, 41, 41, 13, 10, 115, 117, 98, 106, 101, 99, 116, 58, 72, 101, 108, 108, 111, 13, 10, 109, 101, 115, 115, 97, 103, 101, 45, 105, 100, 58, 60, 56, 70, 56, 49, 57, 68, 51, 50, 45, 66, 54, 65, 67, 45, 52, 56, 57, 68, 45, 57, 55, 55, 70, 45, 52, 51, 56, 66, 66, 67, 52, 67, 65, 66, 50, 55, 64, 109, 101, 46, 99, 111, 109, 62, 13, 10, 100, 97, 116, 101, 58, 83, 97, 116, 44, 32, 50, 54, 32, 65, 117, 103, 32, 50, 48, 50, 51, 32, 49, 50, 58, 50, 53, 58, 50, 50, 32, 43, 48, 52, 48, 48, 13, 10, 116, 111, 58, 122, 107, 101, 119, 116, 101, 115, 116, 64, 103, 109, 97, 105, 108, 46, 99, 111, 109, 13, 10, 100, 107, 105, 109, 45, 115, 105, 103, 110, 97, 116, 117, 114, 101, 58, 118, 61, 49, 59, 32, 97, 61, 114, 115, 97, 45, 115, 104, 97, 50, 53, 54, 59, 32, 99, 61, 114, 101, 108, 97, 120, 101, 100, 47, 114, 101, 108, 97, 120, 101, 100, 59, 32, 100, 61, 105, 99, 108, 111, 117, 100, 46, 99, 111, 109, 59, 32, 115, 61, 49, 97, 49, 104, 97, 105, 59, 32, 116, 61, 49, 54, 57, 51, 48, 51, 56, 51, 51, 55, 59, 32, 98, 104, 61, 55, 120, 81, 77, 68, 117, 111, 86, 86, 85, 52, 109, 48, 87, 48, 87, 82, 86, 83, 114, 86, 88, 77, 101, 71, 83, 73, 65, 83, 115, 110, 117, 99, 75, 57, 100, 74, 115, 114, 99, 43, 118, 85, 61, 59, 32, 104, 61, 102, 114, 111, 109, 58, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 77, 105, 109, 101, 45, 86, 101, 114, 115, 105, 111, 110, 58, 83, 117, 98, 106, 101, 99, 116, 58, 77, 101, 115, 115, 97, 103, 101, 45, 73, 100, 58, 68, 97, 116, 101, 58, 116, 111, 59, 32, 98, 61\n ];\n let result = [\n 112, 144, 73, 182, 208, 98, 9, 238, 54, 229, 61, 145, 222, 17, 72, 62, 148, 222, 186, 55, 192, 82, 220, 35, 66, 47, 193, 200, 22, 38, 26, 186\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn msg_big_with_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17, 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12, 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48, 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6, 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2, 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89, 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2, 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75, 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1, 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189, 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4, 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45, 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4, 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188, 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38, 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, 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, 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212, 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53\n ];\n let message_size = 297;\n assert_eq(sha256_var(input, message_size), result);\n }\n\n #[test]\n fn msg_big_no_padding() {\n let input = [\n 48, 130, 1, 37, 2, 1, 0, 48, 11, 6, 9, 96, 134, 72, 1, 101, 3, 4, 2, 1, 48, 130, 1, 17, 48, 37, 2, 1, 1, 4, 32, 176, 223, 31, 133, 108, 84, 158, 102, 70, 11, 165, 175, 196, 12, 201, 130, 25, 131, 46, 125, 156, 194, 28, 23, 55, 133, 157, 164, 135, 136, 220, 78, 48, 37, 2, 1, 2, 4, 32, 190, 82, 180, 235, 222, 33, 79, 50, 152, 136, 142, 35, 116, 224, 6, 242, 156, 141, 128, 248, 10, 61, 98, 86, 248, 45, 207, 210, 90, 232, 175, 38, 48, 37, 2, 1, 3, 4, 32, 0, 194, 104, 108, 237, 246, 97, 230, 116, 198, 69, 110, 26, 87, 17, 89, 110, 199, 108, 250, 36, 21, 39, 87, 110, 102, 250, 213, 174, 131, 171, 174, 48, 37, 2, 1, 11, 4, 32, 136, 155, 87, 144, 111, 15, 152, 127, 85, 25, 154, 81, 20, 58, 51, 75, 193, 116, 234, 0, 60, 30, 29, 30, 183, 141, 72, 247, 255, 203, 100, 124, 48, 37, 2, 1, 12, 4, 32, 41, 234, 106, 78, 31, 11, 114, 137, 237, 17, 92, 71, 134, 47, 62, 78, 189, 233, 201, 214, 53, 4, 47, 189, 201, 133, 6, 121, 34, 131, 64, 142, 48, 37, 2, 1, 13, 4, 32, 91, 222, 210, 193, 62, 222, 104, 82, 36, 41, 138, 253, 70, 15, 148, 208, 156, 45, 105, 171, 241, 195, 185, 43, 217, 162, 146, 201, 222, 89, 238, 38, 48, 37, 2, 1, 14, 4, 32, 76, 123, 216, 13, 51, 227, 72, 245, 59, 193, 238, 166, 103, 49, 23, 164, 171, 188, 194, 197, 156, 187, 249, 28, 198, 95, 69, 15, 182, 56, 54, 38\n ];\n let result = [\n 32, 85, 108, 174, 127, 112, 178, 182, 8, 43, 134, 123, 192, 211, 131, 66, 184, 240, 212, 181, 240, 180, 106, 195, 24, 117, 54, 129, 19, 10, 250, 53\n ];\n assert_eq(sha256_var(input, input.len() as u64), result);\n }\n\n #[test]\n fn same_msg_len_variable_padding() {\n let input = [\n 29, 81, 165, 84, 243, 114, 101, 37, 242, 146, 127, 99, 69, 145, 39, 72, 213, 39, 253, 179, 218, 37, 217, 201, 172, 93, 198, 50, 249, 70, 15, 30, 162, 112, 187, 40, 140, 9, 236, 53, 32, 44, 38, 163, 113, 254, 192, 197, 44, 89, 71, 130, 169, 242, 17, 211, 214, 72, 19, 178, 186, 168, 147, 127, 99, 101, 252, 227, 8, 147, 150, 85, 97, 158, 17, 107, 218, 244, 82, 113, 247, 91, 208, 214, 60, 244, 87, 137, 173, 201, 130, 18, 66, 56, 198, 149, 207, 189, 175, 120, 123, 224, 177, 167, 251, 159, 143, 110, 68, 183, 189, 70, 126, 32, 35, 164, 44, 30, 44, 12, 65, 18, 62, 239, 242, 2, 248, 104, 2, 178, 64, 28, 126, 36, 137, 24, 14, 116, 91, 98, 90, 159, 218, 102, 45, 11, 110, 223, 245, 184, 52, 99, 59, 245, 136, 175, 3, 72, 164, 146, 145, 116, 22, 66, 24, 49, 193, 121, 3, 60, 37, 41, 97, 3, 190, 66, 195, 225, 63, 46, 3, 118, 4, 208, 15, 1, 40, 254, 235, 151, 123, 70, 180, 170, 44, 172, 90, 4, 254, 53, 239, 116, 246, 67, 56, 129, 61, 22, 169, 213, 65, 27, 216, 116, 162, 239, 214, 207, 126, 177, 20, 100, 25, 48, 143, 84, 215, 70, 197, 53, 65, 70, 86, 172, 61, 62, 9, 212, 167, 169, 133, 41, 126, 213, 196, 33, 192, 238, 0, 63, 246, 215, 58, 128, 110, 101, 92, 3, 170, 214, 130, 149, 52, 81, 125, 118, 233, 3, 118, 193, 104, 207, 120, 115, 77, 253, 191, 122, 0, 107, 164, 207, 113, 81, 169, 36, 201, 228, 74, 134, 131, 218, 178, 35, 30, 216, 101, 2, 103, 174, 87, 95, 50, 50, 215, 157, 5, 210, 188, 54, 211, 78, 45, 199, 96, 121, 241, 241, 176, 226, 194, 134, 130, 89, 217, 210, 186, 32, 140, 39, 91, 103, 212, 26, 87, 32, 72, 144, 228, 230, 117, 99, 188, 50, 15, 69, 79, 179, 50, 12, 106, 86, 218, 101, 73, 142, 243, 29, 250, 122, 228, 233, 29, 255, 22, 121, 114, 125, 103, 41, 250, 241, 179, 126, 158, 198, 116, 209, 65, 94, 98, 228, 175, 169, 96, 3, 9, 233, 133, 214, 55, 161, 164, 103, 80, 85, 24, 186, 64, 167, 92, 131, 53, 101, 202, 47, 25, 104, 118, 155, 14, 12, 12, 25, 116, 45, 221, 249, 28, 246, 212, 200, 157, 167, 169, 56, 197, 181, 4, 245, 146, 1, 140, 234, 191, 212, 228, 125, 87, 81, 86, 119, 30, 63, 129, 143, 32, 96\n ];\n\n // Prepare inputs of different lengths\n let mut input_511 = [0; 511];\n let mut input_512 = [0; 512]; // Next block\n let mut input_575 = [0; 575];\n let mut input_576 = [0; 576]; // Next block\n for i in 0..input.len() {\n input_511[i] = input[i];\n input_512[i] = input[i];\n input_575[i] = input[i];\n input_576[i] = input[i];\n }\n\n // Compute hashes of all inputs (with same message length)\n let fixed_length_hash = super::sha256(input);\n let var_full_length_hash = sha256_var(input, input.len() as u64);\n let var_length_hash_511 = sha256_var(input_511, input.len() as u64);\n let var_length_hash_512 = sha256_var(input_512, input.len() as u64);\n let var_length_hash_575 = sha256_var(input_575, input.len() as u64);\n let var_length_hash_576 = sha256_var(input_576, input.len() as u64);\n\n // All of the above should have produced the same hash\n assert_eq(var_full_length_hash, fixed_length_hash);\n assert_eq(var_length_hash_511, fixed_length_hash);\n assert_eq(var_length_hash_512, fixed_length_hash);\n assert_eq(var_length_hash_575, fixed_length_hash);\n assert_eq(var_length_hash_576, fixed_length_hash);\n }\n}\n"},"403":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_public_key_note/src/lib.nr","source":"use dep::aztec::prelude::{NoteHeader, NoteInterface, NullifiableNote, 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 macros::notes::note_custom_interface, generators::Ga1 as Gx_1, generators::Ga2 as Gx_2,\n generators::Ga3 as Gy_1, generators::Ga4 as Gy_2, generators::Ga5 as Gnpk_m_hash, generators::G_slot\n};\n\nuse std::hash::from_field_unsafe;\n\nglobal ECDSA_PUBLIC_KEY_NOTE_LEN: u32 = 5;\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#[note_custom_interface]\npub struct 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> 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:[u8; 32] = serialized_note[0].to_be_bytes();\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:[u8; 32] = serialized_note[2].to_be_bytes();\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 to_be_bytes(self, storage_slot: Field) -> [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] {\n let serialized_note = self.serialize_content();\n\n let mut buffer: [u8; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64] = [0; ECDSA_PUBLIC_KEY_NOTE_LEN * 32 + 64];\n\n let storage_slot_bytes: [u8; 32] = storage_slot.to_be_bytes();\n let note_type_id_bytes: [u8; 32] = EcdsaPublicKeyNote::get_note_type_id().to_be_bytes();\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: [u8; 32] = serialized_note[i].to_be_bytes();\n for j in 0..32 {\n buffer[64 + i * 32 + j] = bytes[j];\n }\n }\n buffer\n }\n\n fn get_note_type_id() -> Field {\n comptime\n {\n let bytes = \"EcdsaPublicKeyNote\".as_bytes();\n let hash = aztec::protocol_types::hash::poseidon2_hash_bytes(bytes);\n let hash_bytes = hash.to_be_bytes::<4>();\n aztec::protocol_types::utils::field::field_from_bytes(hash_bytes, true)\n }\n }\n\n fn get_header(self) -> NoteHeader {\n self.header\n }\n\n fn set_header(&mut self, header: NoteHeader) {\n self.header = header;\n }\n\n fn compute_note_hash(self) -> Field {\n let serialized = self.serialize_content();\n std::embedded_curve_ops::multi_scalar_mul(\n [Gx_1, Gx_2, Gy_1, Gy_2, Gnpk_m_hash, G_slot],\n [\n from_field_unsafe(serialized[0]),\n from_field_unsafe(serialized[1]),\n from_field_unsafe(serialized[2]),\n from_field_unsafe(serialized[3]),\n from_field_unsafe(serialized[4]),\n from_field_unsafe(self.get_header().storage_slot)\n ]\n ).x\n }\n}\n\nimpl NullifiableNote for EcdsaPublicKeyNote {\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 [\n note_hash_for_nullify,\n secret\n ],\n GENERATOR_INDEX__NOTE_NULLIFIER as Field\n )\n }\n\n unconstrained 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 [\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"},"404":{"path":"/usr/src/noir-projects/noir-contracts/contracts/ecdsa_r_account_contract/src/main.nr","source":"// Account contract that uses ECDSA signatures for authentication on random version of the p256 curve (to use with touchID).\nuse dep::aztec::macros::aztec;\n\n#[aztec]\ncontract EcdsaRAccount {\n use dep::aztec::prelude::{PrivateContext, PrivateImmutable};\n use dep::aztec::{\n encrypted_logs::encrypted_note_emission::encode_and_encrypt_note,\n keys::getters::get_public_keys,\n macros::{storage::storage, functions::{private, initializer, view, noinitcheck}}\n };\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 #[storage]\n struct Storage<Context> {\n public_key: PrivateImmutable<EcdsaPublicKeyNote, Context>,\n }\n\n // Creates a new account out of an ECDSA public key to use for signature verification\n #[private]\n #[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_public_keys(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(&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 #[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 #[private]\n #[noinitcheck]\n #[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] = unsafe {\n get_auth_witness(outer_hash)\n };\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();\n let hashed_message: [u8; 32] = std::hash::sha256(outer_hash_bytes);\n std::ecdsa_secp256r1::verify_signature(public_key.x, public_key.y, signature, hashed_message)\n }\n}\n"},"58":{"path":"std/option.nr","source":"use crate::hash::{Hash, Hasher};\nuse crate::cmp::{Ordering, Ord, Eq};\nuse crate::default::Default;\n\npub struct 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<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 if other._is_some {\n Ordering::less()\n } else {\n Ordering::equal()\n }\n }\n}\n"},"59":{"path":"std/panic.nr","source":"pub fn panic<T, U, let N: u32>(message: fmtstr<N, T>) -> U {\n assert(false, message);\n crate::mem::zeroed()\n}\n"},"7":{"path":"std/collections/bounded_vec.nr","source":"use crate::{cmp::Eq, convert::From};\n\n/// A `BoundedVec<T, MaxLen>` is a growable storage similar to a `Vec<T>` except that it\n/// is bounded with a maximum possible length. Unlike `Vec`, `BoundedVec` is not implemented\n/// via slices and thus is not subject to the same restrictions slices are (notably, nested\n/// slices - and thus nested vectors as well - are disallowed).\n/// \n/// Since a BoundedVec is backed by a normal array under the hood, growing the BoundedVec by\n/// pushing an additional element is also more efficient - the length only needs to be increased\n/// by one.\n/// \n/// For these reasons `BoundedVec<T, N>` should generally be preferred over `Vec<T>` when there\n/// is a reasonable maximum bound that can be placed on the vector.\n/// \n/// Example:\n/// \n/// ```noir\n/// let mut vector: BoundedVec<Field, 10> = BoundedVec::new();\n/// for i in 0..5 {\n/// vector.push(i);\n/// }\n/// assert(vector.len() == 5);\n/// assert(vector.max_len() == 10);\n/// ```\npub struct BoundedVec<T, let MaxLen: u32> {\n storage: [T; MaxLen],\n len: u32,\n}\n\nimpl<T, let MaxLen: u32> BoundedVec<T, MaxLen> {\n /// Creates a new, empty vector of length zero.\n ///\n /// Since this container is backed by an array internally, it still needs an initial value\n /// to give each element. To resolve this, each element is zeroed internally. This value\n /// is guaranteed to be inaccessible unless `get_unchecked` is used.\n ///\n /// Example:\n ///\n /// ```noir\n /// let empty_vector: BoundedVec<Field, 10> = BoundedVec::new();\n /// assert(empty_vector.len() == 0);\n /// ```\n ///\n /// Note that whenever calling `new` the maximum length of the vector should always be specified\n /// via a type signature:\n ///\n /// ```noir\n /// fn good() -> BoundedVec<Field, 10> {\n /// // Ok! MaxLen is specified with a type annotation\n /// let v1: BoundedVec<Field, 3> = BoundedVec::new();\n /// let v2 = BoundedVec::new();\n ///\n /// // Ok! MaxLen is known from the type of `good`'s return value\n /// v2\n /// }\n ///\n /// fn bad() {\n /// // Error: Type annotation needed\n /// // The compiler can't infer `MaxLen` from the following code:\n /// let mut v3 = BoundedVec::new();\n /// v3.push(5);\n /// }\n /// ```\n ///\n /// This defaulting of `MaxLen` (and numeric generics in general) to zero may change in future noir versions\n /// but for now make sure to use type annotations when using bounded vectors. Otherwise, you will receive a \n /// constraint failure at runtime when the vec is pushed to.\n pub fn new() -> Self {\n let zeroed = crate::mem::zeroed();\n BoundedVec { storage: [zeroed; MaxLen], len: 0 }\n }\n\n /// Retrieves an element from the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this\n /// will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// let last = v.get(v.len() - 1);\n /// assert(first != last);\n /// }\n /// ```\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 /// Retrieves an element from the vector at the given index, starting from zero, without\n /// performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element,\n /// it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn sum_of_first_three<let N: u32>(v: BoundedVec<u32, N>) -> u32 {\n /// // Always ensure the length is larger than the largest\n /// // index passed to get_unchecked\n /// assert(v.len() > 2);\n /// let first = v.get_unchecked(0);\n /// let second = v.get_unchecked(1);\n /// let third = v.get_unchecked(2);\n /// first + second + third\n /// }\n /// ```\n pub fn get_unchecked(self, index: u32) -> T {\n self.storage[index]\n }\n\n /// Writes an element to the vector at the given index, starting from zero.\n /// \n /// If the given index is equal to or greater than the length of the vector, this will issue a constraint failure.\n /// \n /// Example:\n /// \n /// ```noir\n /// fn foo<let N: u32>(v: BoundedVec<u32, N>) {\n /// let first = v.get(0);\n /// assert(first != 42);\n /// v.set(0, 42);\n /// let new_first = v.get(0);\n /// assert(new_first == 42);\n /// }\n /// ```\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 /// Writes an element to the vector at the given index, starting from zero, without performing a bounds check.\n /// \n /// Since this function does not perform a bounds check on length before accessing the element, it is unsafe! Use at your own risk!\n /// \n /// Example:\n /// \n /// ```noir\n /// fn set_unchecked_example() {\n /// let mut vec: BoundedVec<u32, 5> = BoundedVec::new();\n /// vec.extend_from_array([1, 2]);\n /// \n /// // Here we're safely writing within the valid range of `vec`\n /// // `vec` now has the value [42, 2]\n /// vec.set_unchecked(0, 42);\n /// \n /// // We can then safely read this value back out of `vec`.\n /// // Notice that we use the checked version of `get` which would prevent reading unsafe values.\n /// assert_eq(vec.get(0), 42);\n /// \n /// // We've now written past the end of `vec`.\n /// // As this index is still within the maximum potential length of `v`,\n /// // it won't cause a constraint failure. \n /// vec.set_unchecked(2, 42);\n /// println(vec);\n /// \n /// // This will write past the end of the maximum potential length of `vec`,\n /// // it will then trigger a constraint failure.\n /// vec.set_unchecked(5, 42);\n /// println(vec);\n /// }\n /// ```\n pub fn set_unchecked(&mut self, index: u32, value: T) {\n self.storage[index] = value;\n }\n\n /// Pushes an element to the end of the vector. This increases the length\n /// of the vector by one.\n /// \n /// Panics if the new length of the vector will be greater than the max length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// \n /// v.push(1);\n /// v.push(2);\n /// \n /// // Panics with failed assertion \"push out of bounds\"\n /// v.push(3);\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 /// Returns the current length of this vector\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 4> = BoundedVec::new();\n /// assert(v.len() == 0);\n /// \n /// v.push(100);\n /// assert(v.len() == 1);\n /// \n /// v.push(200);\n /// v.push(300);\n /// v.push(400);\n /// assert(v.len() == 4);\n /// \n /// let _ = v.pop();\n /// let _ = v.pop();\n /// assert(v.len() == 2);\n /// ```\n pub fn len(self) -> u32 {\n self.len\n }\n\n /// Returns the maximum length of this vector. This is always\n /// equal to the `MaxLen` parameter this vector was initialized with.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.max_len() == 5);\n /// v.push(10);\n /// assert(v.max_len() == 5);\n /// ```\n pub fn max_len(_self: BoundedVec<T, MaxLen>) -> u32 {\n MaxLen\n }\n\n /// Returns the internal array within this vector.\n /// \n /// Since arrays in Noir are immutable, mutating the returned storage array will not mutate\n /// the storage held internally by this vector.\n /// \n /// Note that uninitialized elements may be zeroed out!\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 5> = BoundedVec::new();\n /// \n /// assert(v.storage() == [0, 0, 0, 0, 0]);\n /// \n /// v.push(57);\n /// assert(v.storage() == [57, 0, 0, 0, 0]);\n /// ```\n pub fn storage(self) -> [T; MaxLen] {\n self.storage\n }\n\n /// Pushes each element from the given array to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_array([2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\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 /// Pushes each element from the given slice to this vector.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut vec: BoundedVec<Field, 3> = BoundedVec::new();\n /// vec.extend_from_slice(&[2, 4]);\n /// \n /// assert(vec.len == 2);\n /// assert(vec.get(0) == 2);\n /// assert(vec.get(1) == 4);\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 /// Pushes each element from the other vector to this vector. The length of\n /// the other vector is left unchanged.\n /// \n /// Panics if pushing each element would cause the length of this vector\n /// to exceed the maximum length.\n /// \n /// ```noir\n /// let mut v1: BoundedVec<Field, 5> = BoundedVec::new();\n /// let mut v2: BoundedVec<Field, 7> = BoundedVec::new();\n /// \n /// v2.extend_from_array([1, 2, 3]);\n /// v1.extend_from_bounded_vec(v2);\n /// \n /// assert(v1.storage() == [1, 2, 3, 0, 0]);\n /// assert(v2.storage() == [1, 2, 3, 0, 0, 0, 0]);\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 /// Creates a new vector, populating it with values derived from an array input. \n /// The maximum length of the vector is determined based on the type signature.\n /// \n /// Example:\n /// \n /// ```noir\n /// let bounded_vec: BoundedVec<Field, 10> = BoundedVec::from_array([1, 2, 3])\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 /// Pops the element at the end of the vector. This will decrease the length\n /// of the vector by one.\n /// \n /// Panics if the vector is empty.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<Field, 2> = BoundedVec::new();\n /// v.push(1);\n /// v.push(2);\n /// \n /// let two = v.pop();\n /// let one = v.pop();\n /// \n /// assert(two == 2);\n /// assert(one == 1);\n ///\n /// // error: cannot pop from an empty vector\n /// let _ = v.pop();\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 /// Returns true if the given predicate returns true for any element\n /// in this vector.\n /// \n /// Example:\n /// \n /// ```noir\n /// let mut v: BoundedVec<u32, 3> = BoundedVec::new();\n /// v.extend_from_array([2, 4, 6]);\n /// \n /// let all_even = !v.any(|elem: u32| elem % 2 != 0);\n /// assert(all_even);\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 /// Creates a new vector of equal size by calling a closure on each element in this vector. \n /// \n /// Example:\n /// \n /// ```noir\n /// let vec: BoundedVec<u32, 4> = BoundedVec::from_array([1, 2, 3, 4]);\n /// let result = vec.map(|value| value * 2);\n /// \n /// let expected = BoundedVec::from_array([2, 4, 6, 8]);\n /// assert_eq(result, expected);\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"},"75":{"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;\n\n// FUNCTION_CALL_SIZE * ACCOUNT_MAX_CALLS + 1\nglobal APP_PAYLOAD_SIZE: u32 = 21;\n// FUNCTION_CALL_SIZE_IN_BYTES * ACCOUNT_MAX_CALLS + 32\nglobal APP_PAYLOAD_SIZE_IN_BYTES: u32 = 424;\n\nglobal ACCOUNT_MAX_CALLS: u32 = 4;\n\n// Note: If you change the following struct you have to update default_entrypoint.ts\n// docs:start:app-payload-struct\npub struct 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(self.serialize(), GENERATOR_INDEX__SIGNATURE_PAYLOAD)\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_array(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"},"76":{"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: u32 = 12;\n\n// 2 * 98 (FUNCTION_CALL_SIZE_IN_BYTES) + 32\nglobal FEE_PAYLOAD_SIZE_IN_BYTES: u32 = 228;\n\nglobal MAX_FEE_FUNCTION_CALLS: u32 = 2;\n\n// docs:start:fee-payload-struct\npub struct 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(self.serialize(), GENERATOR_INDEX__FEE_PAYLOAD)\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_array(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"},"79":{"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::{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 `poseidon2_hash_bytes(\"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 collision 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 = 0x47dacd73; // 4 last bytes of poseidon2_hash_bytes(\"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 comptime {\n FunctionSelector::from_signature(\"verify_private_authwit(Field)\")\n },\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(\n context: &mut PublicContext,\n on_behalf_of: AztecAddress\n) {\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 comptime {\n FunctionSelector::from_signature(\"consume((Field),Field)\")\n },\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 comptime {\n FunctionSelector::from_signature(\"set_authorized(Field,bool)\")\n },\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 comptime {\n FunctionSelector::from_signature(\"set_reject_all(bool)\")\n },\n [context.this_address().to_field(), reject as Field].as_slice(),\n GasOpts::default()\n ).assert_empty();\n}\n"},"80":{"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"},"81":{"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\npub struct 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"},"84":{"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, max_block_number::MaxBlockNumber,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n private_call_request::PrivateCallRequest, private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest, read_request::ReadRequest, note_hash::NoteHash,\n 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, PUBLIC_DISPATCH_SELECTOR\n},\n header::Header, messaging::l2_to_l1_message::L2ToL1Message, traits::Empty\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct 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 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 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 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(\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(\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(\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(\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 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 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 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 // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = 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 // Public calls are rerouted through the dispatch function.\n let function_selector = comptime {\n FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR)\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 call_request = PublicCallRequest { contract_address, call_context, args_hash, 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 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(\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 // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = 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 function_selector = comptime {\n FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR)\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.public_teardown_call_request = PublicCallRequest {\n contract_address,\n call_context,\n args_hash,\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"}}}