From 319c98599a2b37cb10f076e46dde90c50a0a1a0a Mon Sep 17 00:00:00 2001 From: 0xevolve Date: Thu, 4 Jan 2024 06:37:35 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Cairo=201=20Account=20support=20(#1?= =?UTF-8?q?176)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ✨ cairo 1 account * ✨ no_validate option * udpate execution encoding to new * update * remove files and cleanup * fix class hash with compiled one for generated accounts * rename SierraClass to FlattenedSierraClass * fix starknet test by adding more delay on tx watcher * fix account class hash in state * standardize the naming * add validate flag to estimate_fee * update Scarb.lock files with new main version * fix addr * fix addr * Update Scarb.lock --------- Co-authored-by: Kariy Co-authored-by: glihm Co-authored-by: Ammar Arif --- .../compiler_cairo_v240/Scarb.lock | 2 +- crates/dojo-test-utils/src/sequencer.rs | 2 +- .../account_without_validation.cairo | 67 - .../compiled/account_without_validation.json | 2226 ----------------- .../contracts/compiled/oz_account_080.json | 1 + .../core/contracts/messaging/cairo/Makefile | 2 +- .../contracts/messaging/cairo/account_l2.json | 2 +- .../contracts/messaging/solidity/Makefile | 4 +- crates/katana/core/src/accounts.rs | 6 +- crates/katana/core/src/backend/config.rs | 2 + crates/katana/core/src/constants.rs | 13 +- crates/katana/core/src/sequencer.rs | 1 + .../katana/core/src/service/block_producer.rs | 2 + .../core/src/service/messaging/starknet.rs | 2 +- crates/katana/core/src/utils/mod.rs | 15 +- crates/katana/executor/src/blockifier/mod.rs | 15 +- .../katana/executor/src/blockifier/state.rs | 10 +- .../katana/executor/src/blockifier/utils.rs | 3 +- crates/katana/primitives/src/contract.rs | 3 +- .../katana/primitives/src/conversion/rpc.rs | 19 +- crates/katana/primitives/src/state.rs | 6 +- crates/katana/primitives/src/transaction.rs | 7 +- crates/katana/primitives/src/utils/class.rs | 9 +- .../katana/rpc/rpc-types/src/transaction.rs | 7 +- crates/katana/rpc/tests/starknet.rs | 10 +- crates/katana/src/args.rs | 7 +- crates/katana/storage/db/src/codecs/mod.rs | 6 +- crates/katana/storage/db/src/tables.rs | 5 +- crates/katana/storage/provider/src/lib.rs | 8 +- .../provider/src/providers/db/state.rs | 10 +- .../provider/src/providers/fork/backend.rs | 12 +- .../provider/src/providers/fork/mod.rs | 4 +- .../provider/src/providers/fork/state.rs | 10 +- .../provider/src/providers/in_memory/cache.rs | 6 +- .../provider/src/providers/in_memory/mod.rs | 4 +- .../provider/src/providers/in_memory/state.rs | 8 +- .../storage/provider/src/traits/contract.rs | 8 +- crates/katana/storage/provider/tests/class.rs | 10 +- .../katana/storage/provider/tests/fixtures.rs | 8 +- crates/sozo/src/commands/options/account.rs | 6 +- .../sozo/src/ops/migration/migration_test.rs | 4 +- crates/torii/types-test/Scarb.lock | 2 +- crates/torii/types-test/Scarb.toml | 6 +- examples/rpc/starknet/starknet_getClass.hurl | 2 +- .../rpc/starknet/starknet_getClassAt.hurl | 2 +- .../rpc/starknet/starknet_getClassHashAt.hurl | 2 +- examples/rpc/starknet/starknet_getNonce.hurl | 2 +- examples/spawn-and-move/Scarb.lock | 2 +- examples/spawn-and-move/Scarb.toml | 2 +- 49 files changed, 157 insertions(+), 2415 deletions(-) delete mode 100644 crates/katana/core/contracts/account_without_validation.cairo delete mode 100644 crates/katana/core/contracts/compiled/account_without_validation.json create mode 100644 crates/katana/core/contracts/compiled/oz_account_080.json diff --git a/crates/dojo-lang/src/manifest_test_data/compiler_cairo_v240/Scarb.lock b/crates/dojo-lang/src/manifest_test_data/compiler_cairo_v240/Scarb.lock index b0e7da2d12..6f0435b5b6 100644 --- a/crates/dojo-lang/src/manifest_test_data/compiler_cairo_v240/Scarb.lock +++ b/crates/dojo-lang/src/manifest_test_data/compiler_cairo_v240/Scarb.lock @@ -10,7 +10,7 @@ dependencies = [ [[package]] name = "dojo" -version = "0.4.2" +version = "0.4.4" dependencies = [ "dojo_plugin", ] diff --git a/crates/dojo-test-utils/src/sequencer.rs b/crates/dojo-test-utils/src/sequencer.rs index 1ed8704c05..29e1b97c96 100644 --- a/crates/dojo-test-utils/src/sequencer.rs +++ b/crates/dojo-test-utils/src/sequencer.rs @@ -59,7 +59,7 @@ impl TestSequencer { LocalWallet::from_signing_key(SigningKey::from_secret_scalar(self.account.private_key)), self.account.account_address, chain_id::TESTNET, - ExecutionEncoding::Legacy, + ExecutionEncoding::New, ) } diff --git a/crates/katana/core/contracts/account_without_validation.cairo b/crates/katana/core/contracts/account_without_validation.cairo deleted file mode 100644 index 893a21a5a5..0000000000 --- a/crates/katana/core/contracts/account_without_validation.cairo +++ /dev/null @@ -1,67 +0,0 @@ -// A dummy account contract without any validations. - -%lang starknet - -from starkware.cairo.common.bool import FALSE -from starkware.cairo.common.cairo_builtins import HashBuiltin -from starkware.starknet.common.syscalls import ( - call_contract, - deploy, - get_caller_address, - get_contract_address, -) - -@view -func assert_only_self{syscall_ptr: felt*}() { - let (self) = get_contract_address(); - let (caller) = get_caller_address(); - assert self = caller; - return (); -} - -@external -func __validate_declare__(class_hash: felt) { - return (); -} - -@external -func __validate_deploy__(class_hash: felt, contract_address_salt: felt) { - return (); -} - -@external -func __validate__(contract_address, selector: felt, calldata_len: felt, calldata: felt*) { - return (); -} - -@external -@raw_output -func __execute__{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - contract_address, selector: felt, calldata_len: felt, calldata: felt* -) -> (retdata_size: felt, retdata: felt*) { - let (retdata_size: felt, retdata: felt*) = call_contract( - contract_address=contract_address, - function_selector=selector, - calldata_size=calldata_len, - calldata=calldata, - ); - return (retdata_size=retdata_size, retdata=retdata); -} - -@external -func deploy_contract{syscall_ptr: felt*}( - class_hash: felt, - contract_address_salt: felt, - constructor_calldata_len: felt, - constructor_calldata: felt*, -) -> (contract_address: felt) { - assert_only_self(); - let (contract_address) = deploy( - class_hash=class_hash, - contract_address_salt=contract_address_salt, - constructor_calldata_size=constructor_calldata_len, - constructor_calldata=constructor_calldata, - deploy_from_zero=FALSE, - ); - return (contract_address=contract_address); -} diff --git a/crates/katana/core/contracts/compiled/account_without_validation.json b/crates/katana/core/contracts/compiled/account_without_validation.json deleted file mode 100644 index 46524b792c..0000000000 --- a/crates/katana/core/contracts/compiled/account_without_validation.json +++ /dev/null @@ -1,2226 +0,0 @@ -{ - "abi": [ - { - "inputs": [], - "name": "assert_only_self", - "outputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "class_hash", - "type": "felt" - } - ], - "name": "__validate_declare__", - "outputs": [], - "type": "function" - }, - { - "inputs": [ - { - "name": "class_hash", - "type": "felt" - }, - { - "name": "contract_address_salt", - "type": "felt" - } - ], - "name": "__validate_deploy__", - "outputs": [], - "type": "function" - }, - { - "inputs": [ - { - "name": "contract_address", - "type": "felt" - }, - { - "name": "selector", - "type": "felt" - }, - { - "name": "calldata_len", - "type": "felt" - }, - { - "name": "calldata", - "type": "felt*" - } - ], - "name": "__validate__", - "outputs": [], - "type": "function" - }, - { - "inputs": [ - { - "name": "contract_address", - "type": "felt" - }, - { - "name": "selector", - "type": "felt" - }, - { - "name": "calldata_len", - "type": "felt" - }, - { - "name": "calldata", - "type": "felt*" - } - ], - "name": "__execute__", - "outputs": [ - { - "name": "retdata_size", - "type": "felt" - }, - { - "name": "retdata", - "type": "felt*" - } - ], - "type": "function" - }, - { - "inputs": [ - { - "name": "class_hash", - "type": "felt" - }, - { - "name": "contract_address_salt", - "type": "felt" - }, - { - "name": "constructor_calldata_len", - "type": "felt" - }, - { - "name": "constructor_calldata", - "type": "felt*" - } - ], - "name": "deploy_contract", - "outputs": [ - { - "name": "contract_address", - "type": "felt" - } - ], - "type": "function" - } - ], - "entry_points_by_type": { - "CONSTRUCTOR": [], - "EXTERNAL": [ - { - "offset": 133, - "selector": "0x15d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad" - }, - { - "offset": 94, - "selector": "0x162da33a4585851fe8d3af3c2a9c60b557814e221e0d4f30ff0b2189d9c7775" - }, - { - "offset": 175, - "selector": "0x2730079d734ee55315f4f141eaed376bddd8c2133523d223a344c5604e0f7f8" - }, - { - "offset": 61, - "selector": "0x289da278a8dc833409cabfdad1581e8e7d40e42dcaed693fa4008dcdb4963b3" - }, - { - "offset": 47, - "selector": "0x2de154d8a89be65c1724e962dc4c65637c05532a6c2825d0a7b7d774169dbba" - }, - { - "offset": 77, - "selector": "0x36fcbf06cd96843058359e1a75928beacfac10727dab22a3972f0af8aa92895" - } - ], - "L1_HANDLER": [] - }, - "program": { - "attributes": [], - "builtins": ["pedersen", "range_check"], - "compiler_version": "0.11.0.2", - "data": [ - "0x480680017fff8000", - "0x43616c6c436f6e7472616374", - "0x400280007ff97fff", - "0x400380017ff97ffa", - "0x400380027ff97ffb", - "0x400380037ff97ffc", - "0x400380047ff97ffd", - "0x482680017ff98000", - "0x7", - "0x480280057ff98000", - "0x480280067ff98000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x4465706c6f79", - "0x400280007ff87fff", - "0x400380017ff87ff9", - "0x400380027ff87ffa", - "0x400380037ff87ffb", - "0x400380047ff87ffc", - "0x400380057ff87ffd", - "0x482680017ff88000", - "0x9", - "0x480280067ff88000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x47657443616c6c657241646472657373", - "0x400280007ffd7fff", - "0x482680017ffd8000", - "0x2", - "0x480280017ffd8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x476574436f6e747261637441646472657373", - "0x400280007ffd7fff", - "0x482680017ffd8000", - "0x2", - "0x480280017ffd8000", - "0x208b7fff7fff7ffe", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff9", - "0x48127ffe7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffef", - "0x40127fff7fff7ff9", - "0x48127ffe7fff8000", - "0x208b7fff7fff7ffe", - "0x402b7ffd7ffc7ffd", - "0x480280007ffb8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff6", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x1", - "0x402a7ffd7ffc7fff", - "0x480280007ffd8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffc", - "0x40780017fff7fff", - "0x1", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x2", - "0x402a7ffd7ffc7fff", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffb", - "0x40780017fff7fff", - "0x1", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x208b7fff7fff7ffe", - "0x480280027ffb8000", - "0x480280027ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x3", - "0x480280027ffd8000", - "0x48307fff7ffe8000", - "0x402a7ffd7ffc7fff", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480280027ffd8000", - "0x482680017ffd8000", - "0x3", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff3", - "0x40780017fff7fff", - "0x1", - "0x480280027ffb8000", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x482480017ffd8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ff77fff8000", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff84", - "0x48127ffd7fff8000", - "0x480a7ff87fff8000", - "0x480a7ff97fff8000", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x480280027ffb8000", - "0x480280027ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x3", - "0x480280027ffd8000", - "0x48307fff7ffe8000", - "0x402a7ffd7ffc7fff", - "0x480280027ffb8000", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x482480017ffd8000", - "0x1", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480280027ffd8000", - "0x482680017ffd8000", - "0x3", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe2", - "0x208b7fff7fff7ffe", - "0x480a7ff97fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff8c", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x0", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff6a", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x4003800080007ffc", - "0x4826800180008000", - "0x1", - "0x480a7ffd7fff8000", - "0x4828800080007ffe", - "0x480a80007fff8000", - "0x208b7fff7fff7ffe", - "0x480280027ffb8000", - "0x480280027ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x3", - "0x480280027ffd8000", - "0x48307fff7ffe8000", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480280027ffd8000", - "0x482680017ffd8000", - "0x3", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffde", - "0x480280027ffb8000", - "0x48127ffe7fff8000", - "0x482480017ffe8000", - "0x1", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe4", - "0x48127ff47fff8000", - "0x480280017ffb8000", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe" - ], - "debug_info": null, - "hints": { - "7": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.call_contract" - ], - "code": "syscall_handler.call_contract(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 0, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.call_contract.syscall_ptr": 0 - } - } - } - ], - "20": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.deploy" - ], - "code": "syscall_handler.deploy(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 1, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.deploy.syscall_ptr": 1 - } - } - } - ], - "27": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.get_caller_address" - ], - "code": "syscall_handler.get_caller_address(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 2, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.get_caller_address.syscall_ptr": 2 - } - } - } - ], - "34": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.get_contract_address" - ], - "code": "syscall_handler.get_contract_address(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 3, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.get_contract_address.syscall_ptr": 3 - } - } - } - ], - "51": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.assert_only_self" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 5, - "offset": 16 - }, - "reference_ids": {} - } - } - ], - "67": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.__validate_declare__" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 7, - "offset": 4 - }, - "reference_ids": {} - } - } - ], - "84": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.__validate_deploy__" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 9, - "offset": 5 - }, - "reference_ids": {} - } - } - ], - "109": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.__validate__" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 11, - "offset": 11 - }, - "reference_ids": {} - } - } - ], - "166": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.deploy_contract_encode_return" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 15, - "offset": 0 - }, - "reference_ids": {} - } - } - ] - }, - "identifiers": { - "__main__.FALSE": { - "destination": "starkware.cairo.common.bool.FALSE", - "type": "alias" - }, - "__main__.HashBuiltin": { - "destination": "starkware.cairo.common.cairo_builtins.HashBuiltin", - "type": "alias" - }, - "__main__.__execute__": { - "decorators": ["external", "raw_output"], - "pc": 120, - "type": "function" - }, - "__main__.__execute__.Args": { - "full_name": "__main__.__execute__.Args", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "calldata_len": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address": { - "cairo_type": "felt", - "offset": 0 - }, - "selector": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "__main__.__execute__.ImplicitArgs": { - "full_name": "__main__.__execute__.ImplicitArgs", - "members": { - "pedersen_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 1 - }, - "range_check_ptr": { - "cairo_type": "felt", - "offset": 2 - }, - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "__main__.__execute__.Return": { - "cairo_type": "(retdata_size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__main__.__execute__.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.__validate__": { - "decorators": ["external"], - "pc": 93, - "type": "function" - }, - "__main__.__validate__.Args": { - "full_name": "__main__.__validate__.Args", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "calldata_len": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address": { - "cairo_type": "felt", - "offset": 0 - }, - "selector": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "__main__.__validate__.ImplicitArgs": { - "full_name": "__main__.__validate__.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.__validate__.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.__validate__.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.__validate_declare__": { - "decorators": ["external"], - "pc": 60, - "type": "function" - }, - "__main__.__validate_declare__.Args": { - "full_name": "__main__.__validate_declare__.Args", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.__validate_declare__.ImplicitArgs": { - "full_name": "__main__.__validate_declare__.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.__validate_declare__.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.__validate_declare__.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.__validate_deploy__": { - "decorators": ["external"], - "pc": 76, - "type": "function" - }, - "__main__.__validate_deploy__.Args": { - "full_name": "__main__.__validate_deploy__.Args", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "contract_address_salt": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.__validate_deploy__.ImplicitArgs": { - "full_name": "__main__.__validate_deploy__.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.__validate_deploy__.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.__validate_deploy__.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.assert_only_self": { - "decorators": ["view"], - "pc": 38, - "type": "function" - }, - "__main__.assert_only_self.Args": { - "full_name": "__main__.assert_only_self.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.assert_only_self.ImplicitArgs": { - "full_name": "__main__.assert_only_self.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.assert_only_self.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.assert_only_self.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.call_contract": { - "destination": "starkware.starknet.common.syscalls.call_contract", - "type": "alias" - }, - "__main__.deploy": { - "destination": "starkware.starknet.common.syscalls.deploy", - "type": "alias" - }, - "__main__.deploy_contract": { - "decorators": ["external"], - "pc": 154, - "type": "function" - }, - "__main__.deploy_contract.Args": { - "full_name": "__main__.deploy_contract.Args", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "constructor_calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "constructor_calldata_len": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address_salt": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "__main__.deploy_contract.ImplicitArgs": { - "full_name": "__main__.deploy_contract.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.deploy_contract.Return": { - "cairo_type": "(contract_address: felt)", - "type": "type_definition" - }, - "__main__.deploy_contract.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.get_caller_address": { - "destination": "starkware.starknet.common.syscalls.get_caller_address", - "type": "alias" - }, - "__main__.get_contract_address": { - "destination": "starkware.starknet.common.syscalls.get_contract_address", - "type": "alias" - }, - "__wrappers__.__execute__": { - "decorators": ["external", "raw_output"], - "pc": 133, - "type": "function" - }, - "__wrappers__.__execute__.Args": { - "full_name": "__wrappers__.__execute__.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.__execute__.ImplicitArgs": { - "full_name": "__wrappers__.__execute__.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.__execute__.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: starkware.cairo.common.cairo_builtins.HashBuiltin*, range_check_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.__execute__.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.__execute__.__wrapped_func": { - "destination": "__main__.__execute__", - "type": "alias" - }, - "__wrappers__.__execute___encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.__validate__": { - "decorators": ["external"], - "pc": 94, - "type": "function" - }, - "__wrappers__.__validate__.Args": { - "full_name": "__wrappers__.__validate__.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.__validate__.ImplicitArgs": { - "full_name": "__wrappers__.__validate__.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.__validate__.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: felt, range_check_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.__validate__.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.__validate__.__wrapped_func": { - "destination": "__main__.__validate__", - "type": "alias" - }, - "__wrappers__.__validate___encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.__validate_declare__": { - "decorators": ["external"], - "pc": 61, - "type": "function" - }, - "__wrappers__.__validate_declare__.Args": { - "full_name": "__wrappers__.__validate_declare__.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.__validate_declare__.ImplicitArgs": { - "full_name": "__wrappers__.__validate_declare__.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.__validate_declare__.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: felt, range_check_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.__validate_declare__.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.__validate_declare__.__wrapped_func": { - "destination": "__main__.__validate_declare__", - "type": "alias" - }, - "__wrappers__.__validate_declare___encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.__validate_deploy__": { - "decorators": ["external"], - "pc": 77, - "type": "function" - }, - "__wrappers__.__validate_deploy__.Args": { - "full_name": "__wrappers__.__validate_deploy__.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.__validate_deploy__.ImplicitArgs": { - "full_name": "__wrappers__.__validate_deploy__.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.__validate_deploy__.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: felt, range_check_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.__validate_deploy__.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.__validate_deploy__.__wrapped_func": { - "destination": "__main__.__validate_deploy__", - "type": "alias" - }, - "__wrappers__.__validate_deploy___encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.assert_only_self": { - "decorators": ["view"], - "pc": 47, - "type": "function" - }, - "__wrappers__.assert_only_self.Args": { - "full_name": "__wrappers__.assert_only_self.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.assert_only_self.ImplicitArgs": { - "full_name": "__wrappers__.assert_only_self.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.assert_only_self.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.assert_only_self.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.assert_only_self.__wrapped_func": { - "destination": "__main__.assert_only_self", - "type": "alias" - }, - "__wrappers__.assert_only_self_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.deploy_contract": { - "decorators": ["external"], - "pc": 175, - "type": "function" - }, - "__wrappers__.deploy_contract.Args": { - "full_name": "__wrappers__.deploy_contract.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.deploy_contract.ImplicitArgs": { - "full_name": "__wrappers__.deploy_contract.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.deploy_contract.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.deploy_contract.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.deploy_contract.__wrapped_func": { - "destination": "__main__.deploy_contract", - "type": "alias" - }, - "__wrappers__.deploy_contract_encode_return": { - "decorators": [], - "pc": 166, - "type": "function" - }, - "__wrappers__.deploy_contract_encode_return.Args": { - "full_name": "__wrappers__.deploy_contract_encode_return.Args", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - }, - "ret_value": { - "cairo_type": "(contract_address: felt)", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "__wrappers__.deploy_contract_encode_return.ImplicitArgs": { - "full_name": "__wrappers__.deploy_contract_encode_return.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.deploy_contract_encode_return.Return": { - "cairo_type": "(range_check_ptr: felt, data_len: felt, data: felt*)", - "type": "type_definition" - }, - "__wrappers__.deploy_contract_encode_return.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "__wrappers__.deploy_contract_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "starkware.cairo.common.bool.FALSE": { - "type": "const", - "value": 0 - }, - "starkware.cairo.common.bool.TRUE": { - "type": "const", - "value": 1 - }, - "starkware.cairo.common.cairo_builtins.BitwiseBuiltin": { - "full_name": "starkware.cairo.common.cairo_builtins.BitwiseBuiltin", - "members": { - "x": { - "cairo_type": "felt", - "offset": 0 - }, - "x_and_y": { - "cairo_type": "felt", - "offset": 2 - }, - "x_or_y": { - "cairo_type": "felt", - "offset": 4 - }, - "x_xor_y": { - "cairo_type": "felt", - "offset": 3 - }, - "y": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 5, - "type": "struct" - }, - "starkware.cairo.common.cairo_builtins.EcOpBuiltin": { - "full_name": "starkware.cairo.common.cairo_builtins.EcOpBuiltin", - "members": { - "m": { - "cairo_type": "felt", - "offset": 4 - }, - "p": { - "cairo_type": "starkware.cairo.common.ec_point.EcPoint", - "offset": 0 - }, - "q": { - "cairo_type": "starkware.cairo.common.ec_point.EcPoint", - "offset": 2 - }, - "r": { - "cairo_type": "starkware.cairo.common.ec_point.EcPoint", - "offset": 5 - } - }, - "size": 7, - "type": "struct" - }, - "starkware.cairo.common.cairo_builtins.EcPoint": { - "destination": "starkware.cairo.common.ec_point.EcPoint", - "type": "alias" - }, - "starkware.cairo.common.cairo_builtins.HashBuiltin": { - "full_name": "starkware.cairo.common.cairo_builtins.HashBuiltin", - "members": { - "result": { - "cairo_type": "felt", - "offset": 2 - }, - "x": { - "cairo_type": "felt", - "offset": 0 - }, - "y": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.cairo.common.cairo_builtins.KeccakBuiltin": { - "full_name": "starkware.cairo.common.cairo_builtins.KeccakBuiltin", - "members": { - "input": { - "cairo_type": "starkware.cairo.common.keccak_state.KeccakBuiltinState", - "offset": 0 - }, - "output": { - "cairo_type": "starkware.cairo.common.keccak_state.KeccakBuiltinState", - "offset": 8 - } - }, - "size": 16, - "type": "struct" - }, - "starkware.cairo.common.cairo_builtins.KeccakBuiltinState": { - "destination": "starkware.cairo.common.keccak_state.KeccakBuiltinState", - "type": "alias" - }, - "starkware.cairo.common.cairo_builtins.PoseidonBuiltin": { - "full_name": "starkware.cairo.common.cairo_builtins.PoseidonBuiltin", - "members": { - "input": { - "cairo_type": "starkware.cairo.common.poseidon_state.PoseidonBuiltinState", - "offset": 0 - }, - "output": { - "cairo_type": "starkware.cairo.common.poseidon_state.PoseidonBuiltinState", - "offset": 3 - } - }, - "size": 6, - "type": "struct" - }, - "starkware.cairo.common.cairo_builtins.PoseidonBuiltinState": { - "destination": "starkware.cairo.common.poseidon_state.PoseidonBuiltinState", - "type": "alias" - }, - "starkware.cairo.common.cairo_builtins.SignatureBuiltin": { - "full_name": "starkware.cairo.common.cairo_builtins.SignatureBuiltin", - "members": { - "message": { - "cairo_type": "felt", - "offset": 1 - }, - "pub_key": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.cairo.common.dict_access.DictAccess": { - "full_name": "starkware.cairo.common.dict_access.DictAccess", - "members": { - "key": { - "cairo_type": "felt", - "offset": 0 - }, - "new_value": { - "cairo_type": "felt", - "offset": 2 - }, - "prev_value": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.cairo.common.ec_point.EcPoint": { - "full_name": "starkware.cairo.common.ec_point.EcPoint", - "members": { - "x": { - "cairo_type": "felt", - "offset": 0 - }, - "y": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.cairo.common.hash.HashBuiltin": { - "destination": "starkware.cairo.common.cairo_builtins.HashBuiltin", - "type": "alias" - }, - "starkware.cairo.common.keccak_state.KeccakBuiltinState": { - "full_name": "starkware.cairo.common.keccak_state.KeccakBuiltinState", - "members": { - "s0": { - "cairo_type": "felt", - "offset": 0 - }, - "s1": { - "cairo_type": "felt", - "offset": 1 - }, - "s2": { - "cairo_type": "felt", - "offset": 2 - }, - "s3": { - "cairo_type": "felt", - "offset": 3 - }, - "s4": { - "cairo_type": "felt", - "offset": 4 - }, - "s5": { - "cairo_type": "felt", - "offset": 5 - }, - "s6": { - "cairo_type": "felt", - "offset": 6 - }, - "s7": { - "cairo_type": "felt", - "offset": 7 - } - }, - "size": 8, - "type": "struct" - }, - "starkware.cairo.common.math.FALSE": { - "destination": "starkware.cairo.common.bool.FALSE", - "type": "alias" - }, - "starkware.cairo.common.math.TRUE": { - "destination": "starkware.cairo.common.bool.TRUE", - "type": "alias" - }, - "starkware.cairo.common.poseidon_state.PoseidonBuiltinState": { - "full_name": "starkware.cairo.common.poseidon_state.PoseidonBuiltinState", - "members": { - "s0": { - "cairo_type": "felt", - "offset": 0 - }, - "s1": { - "cairo_type": "felt", - "offset": 1 - }, - "s2": { - "cairo_type": "felt", - "offset": 2 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.starknet.common.storage.ADDR_BOUND": { - "type": "const", - "value": -106710729501573572985208420194530329073740042555888586719489 - }, - "starkware.starknet.common.storage.MAX_STORAGE_ITEM_SIZE": { - "type": "const", - "value": 256 - }, - "starkware.starknet.common.storage.assert_250_bit": { - "destination": "starkware.cairo.common.math.assert_250_bit", - "type": "alias" - }, - "starkware.starknet.common.syscalls.CALL_CONTRACT_SELECTOR": { - "type": "const", - "value": 20853273475220472486191784820 - }, - "starkware.starknet.common.syscalls.CallContract": { - "full_name": "starkware.starknet.common.syscalls.CallContract", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.CallContractRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.CallContractResponse", - "offset": 5 - } - }, - "size": 7, - "type": "struct" - }, - "starkware.starknet.common.syscalls.CallContractRequest": { - "full_name": "starkware.starknet.common.syscalls.CallContractRequest", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 4 - }, - "calldata_size": { - "cairo_type": "felt", - "offset": 3 - }, - "contract_address": { - "cairo_type": "felt", - "offset": 1 - }, - "function_selector": { - "cairo_type": "felt", - "offset": 2 - }, - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 5, - "type": "struct" - }, - "starkware.starknet.common.syscalls.CallContractResponse": { - "full_name": "starkware.starknet.common.syscalls.CallContractResponse", - "members": { - "retdata": { - "cairo_type": "felt*", - "offset": 1 - }, - "retdata_size": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.DELEGATE_CALL_SELECTOR": { - "type": "const", - "value": 21167594061783206823196716140 - }, - "starkware.starknet.common.syscalls.DELEGATE_L1_HANDLER_SELECTOR": { - "type": "const", - "value": 23274015802972845247556842986379118667122 - }, - "starkware.starknet.common.syscalls.DEPLOY_SELECTOR": { - "type": "const", - "value": 75202468540281 - }, - "starkware.starknet.common.syscalls.Deploy": { - "full_name": "starkware.starknet.common.syscalls.Deploy", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.DeployRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.DeployResponse", - "offset": 6 - } - }, - "size": 9, - "type": "struct" - }, - "starkware.starknet.common.syscalls.DeployRequest": { - "full_name": "starkware.starknet.common.syscalls.DeployRequest", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 1 - }, - "constructor_calldata": { - "cairo_type": "felt*", - "offset": 4 - }, - "constructor_calldata_size": { - "cairo_type": "felt", - "offset": 3 - }, - "contract_address_salt": { - "cairo_type": "felt", - "offset": 2 - }, - "deploy_from_zero": { - "cairo_type": "felt", - "offset": 5 - }, - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 6, - "type": "struct" - }, - "starkware.starknet.common.syscalls.DeployResponse": { - "full_name": "starkware.starknet.common.syscalls.DeployResponse", - "members": { - "constructor_retdata": { - "cairo_type": "felt*", - "offset": 2 - }, - "constructor_retdata_size": { - "cairo_type": "felt", - "offset": 1 - }, - "contract_address": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.starknet.common.syscalls.DictAccess": { - "destination": "starkware.cairo.common.dict_access.DictAccess", - "type": "alias" - }, - "starkware.starknet.common.syscalls.EMIT_EVENT_SELECTOR": { - "type": "const", - "value": 1280709301550335749748 - }, - "starkware.starknet.common.syscalls.EmitEvent": { - "full_name": "starkware.starknet.common.syscalls.EmitEvent", - "members": { - "data": { - "cairo_type": "felt*", - "offset": 4 - }, - "data_len": { - "cairo_type": "felt", - "offset": 3 - }, - "keys": { - "cairo_type": "felt*", - "offset": 2 - }, - "keys_len": { - "cairo_type": "felt", - "offset": 1 - }, - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 5, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GET_BLOCK_NUMBER_SELECTOR": { - "type": "const", - "value": 1448089106835523001438702345020786 - }, - "starkware.starknet.common.syscalls.GET_BLOCK_TIMESTAMP_SELECTOR": { - "type": "const", - "value": 24294903732626645868215235778792757751152 - }, - "starkware.starknet.common.syscalls.GET_CALLER_ADDRESS_SELECTOR": { - "type": "const", - "value": 94901967781393078444254803017658102643 - }, - "starkware.starknet.common.syscalls.GET_CONTRACT_ADDRESS_SELECTOR": { - "type": "const", - "value": 6219495360805491471215297013070624192820083 - }, - "starkware.starknet.common.syscalls.GET_SEQUENCER_ADDRESS_SELECTOR": { - "type": "const", - "value": 1592190833581991703053805829594610833820054387 - }, - "starkware.starknet.common.syscalls.GET_TX_INFO_SELECTOR": { - "type": "const", - "value": 1317029390204112103023 - }, - "starkware.starknet.common.syscalls.GET_TX_SIGNATURE_SELECTOR": { - "type": "const", - "value": 1448089128652340074717162277007973 - }, - "starkware.starknet.common.syscalls.GetBlockNumber": { - "full_name": "starkware.starknet.common.syscalls.GetBlockNumber", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.GetBlockNumberRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.GetBlockNumberResponse", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetBlockNumberRequest": { - "full_name": "starkware.starknet.common.syscalls.GetBlockNumberRequest", - "members": { - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetBlockNumberResponse": { - "full_name": "starkware.starknet.common.syscalls.GetBlockNumberResponse", - "members": { - "block_number": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetBlockTimestamp": { - "full_name": "starkware.starknet.common.syscalls.GetBlockTimestamp", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.GetBlockTimestampRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.GetBlockTimestampResponse", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetBlockTimestampRequest": { - "full_name": "starkware.starknet.common.syscalls.GetBlockTimestampRequest", - "members": { - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetBlockTimestampResponse": { - "full_name": "starkware.starknet.common.syscalls.GetBlockTimestampResponse", - "members": { - "block_timestamp": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetCallerAddress": { - "full_name": "starkware.starknet.common.syscalls.GetCallerAddress", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.GetCallerAddressRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.GetCallerAddressResponse", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetCallerAddressRequest": { - "full_name": "starkware.starknet.common.syscalls.GetCallerAddressRequest", - "members": { - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetCallerAddressResponse": { - "full_name": "starkware.starknet.common.syscalls.GetCallerAddressResponse", - "members": { - "caller_address": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetContractAddress": { - "full_name": "starkware.starknet.common.syscalls.GetContractAddress", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.GetContractAddressRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.GetContractAddressResponse", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetContractAddressRequest": { - "full_name": "starkware.starknet.common.syscalls.GetContractAddressRequest", - "members": { - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetContractAddressResponse": { - "full_name": "starkware.starknet.common.syscalls.GetContractAddressResponse", - "members": { - "contract_address": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetSequencerAddress": { - "full_name": "starkware.starknet.common.syscalls.GetSequencerAddress", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.GetSequencerAddressRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.GetSequencerAddressResponse", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetSequencerAddressRequest": { - "full_name": "starkware.starknet.common.syscalls.GetSequencerAddressRequest", - "members": { - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetSequencerAddressResponse": { - "full_name": "starkware.starknet.common.syscalls.GetSequencerAddressResponse", - "members": { - "sequencer_address": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetTxInfo": { - "full_name": "starkware.starknet.common.syscalls.GetTxInfo", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.GetTxInfoRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.GetTxInfoResponse", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetTxInfoRequest": { - "full_name": "starkware.starknet.common.syscalls.GetTxInfoRequest", - "members": { - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetTxInfoResponse": { - "full_name": "starkware.starknet.common.syscalls.GetTxInfoResponse", - "members": { - "tx_info": { - "cairo_type": "starkware.starknet.common.syscalls.TxInfo*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetTxSignature": { - "full_name": "starkware.starknet.common.syscalls.GetTxSignature", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.GetTxSignatureRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.GetTxSignatureResponse", - "offset": 1 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetTxSignatureRequest": { - "full_name": "starkware.starknet.common.syscalls.GetTxSignatureRequest", - "members": { - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.GetTxSignatureResponse": { - "full_name": "starkware.starknet.common.syscalls.GetTxSignatureResponse", - "members": { - "signature": { - "cairo_type": "felt*", - "offset": 1 - }, - "signature_len": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.LIBRARY_CALL_L1_HANDLER_SELECTOR": { - "type": "const", - "value": 436233452754198157705746250789557519228244616562 - }, - "starkware.starknet.common.syscalls.LIBRARY_CALL_SELECTOR": { - "type": "const", - "value": 92376026794327011772951660 - }, - "starkware.starknet.common.syscalls.LibraryCall": { - "full_name": "starkware.starknet.common.syscalls.LibraryCall", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.LibraryCallRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.CallContractResponse", - "offset": 5 - } - }, - "size": 7, - "type": "struct" - }, - "starkware.starknet.common.syscalls.LibraryCallRequest": { - "full_name": "starkware.starknet.common.syscalls.LibraryCallRequest", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 4 - }, - "calldata_size": { - "cairo_type": "felt", - "offset": 3 - }, - "class_hash": { - "cairo_type": "felt", - "offset": 1 - }, - "function_selector": { - "cairo_type": "felt", - "offset": 2 - }, - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 5, - "type": "struct" - }, - "starkware.starknet.common.syscalls.REPLACE_CLASS_SELECTOR": { - "type": "const", - "value": 25500403217443378527601783667 - }, - "starkware.starknet.common.syscalls.ReplaceClass": { - "full_name": "starkware.starknet.common.syscalls.ReplaceClass", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 1 - }, - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.SEND_MESSAGE_TO_L1_SELECTOR": { - "type": "const", - "value": 433017908768303439907196859243777073 - }, - "starkware.starknet.common.syscalls.STORAGE_READ_SELECTOR": { - "type": "const", - "value": 100890693370601760042082660 - }, - "starkware.starknet.common.syscalls.STORAGE_WRITE_SELECTOR": { - "type": "const", - "value": 25828017502874050592466629733 - }, - "starkware.starknet.common.syscalls.SendMessageToL1SysCall": { - "full_name": "starkware.starknet.common.syscalls.SendMessageToL1SysCall", - "members": { - "payload_ptr": { - "cairo_type": "felt*", - "offset": 3 - }, - "payload_size": { - "cairo_type": "felt", - "offset": 2 - }, - "selector": { - "cairo_type": "felt", - "offset": 0 - }, - "to_address": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "starkware.starknet.common.syscalls.StorageRead": { - "full_name": "starkware.starknet.common.syscalls.StorageRead", - "members": { - "request": { - "cairo_type": "starkware.starknet.common.syscalls.StorageReadRequest", - "offset": 0 - }, - "response": { - "cairo_type": "starkware.starknet.common.syscalls.StorageReadResponse", - "offset": 2 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.starknet.common.syscalls.StorageReadRequest": { - "full_name": "starkware.starknet.common.syscalls.StorageReadRequest", - "members": { - "address": { - "cairo_type": "felt", - "offset": 1 - }, - "selector": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.StorageReadResponse": { - "full_name": "starkware.starknet.common.syscalls.StorageReadResponse", - "members": { - "value": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.StorageWrite": { - "full_name": "starkware.starknet.common.syscalls.StorageWrite", - "members": { - "address": { - "cairo_type": "felt", - "offset": 1 - }, - "selector": { - "cairo_type": "felt", - "offset": 0 - }, - "value": { - "cairo_type": "felt", - "offset": 2 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.starknet.common.syscalls.TxInfo": { - "full_name": "starkware.starknet.common.syscalls.TxInfo", - "members": { - "account_contract_address": { - "cairo_type": "felt", - "offset": 1 - }, - "chain_id": { - "cairo_type": "felt", - "offset": 6 - }, - "max_fee": { - "cairo_type": "felt", - "offset": 2 - }, - "nonce": { - "cairo_type": "felt", - "offset": 7 - }, - "signature": { - "cairo_type": "felt*", - "offset": 4 - }, - "signature_len": { - "cairo_type": "felt", - "offset": 3 - }, - "transaction_hash": { - "cairo_type": "felt", - "offset": 5 - }, - "version": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 8, - "type": "struct" - }, - "starkware.starknet.common.syscalls.call_contract": { - "decorators": [], - "pc": 0, - "type": "function" - }, - "starkware.starknet.common.syscalls.call_contract.Args": { - "full_name": "starkware.starknet.common.syscalls.call_contract.Args", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "calldata_size": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address": { - "cairo_type": "felt", - "offset": 0 - }, - "function_selector": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "starkware.starknet.common.syscalls.call_contract.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.call_contract.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.call_contract.Return": { - "cairo_type": "(retdata_size: felt, retdata: felt*)", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.call_contract.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.call_contract.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.call_contract.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 0, - "offset": 0 - }, - "pc": 0, - "value": "[cast(fp + (-7), felt**)]" - }, - { - "ap_tracking_data": { - "group": 0, - "offset": 1 - }, - "pc": 7, - "value": "cast([fp + (-7)] + 7, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.common.syscalls.deploy": { - "decorators": [], - "pc": 12, - "type": "function" - }, - "starkware.starknet.common.syscalls.deploy.Args": { - "full_name": "starkware.starknet.common.syscalls.deploy.Args", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "constructor_calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "constructor_calldata_size": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address_salt": { - "cairo_type": "felt", - "offset": 1 - }, - "deploy_from_zero": { - "cairo_type": "felt", - "offset": 4 - } - }, - "size": 5, - "type": "struct" - }, - "starkware.starknet.common.syscalls.deploy.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.deploy.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.deploy.Return": { - "cairo_type": "(contract_address: felt)", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.deploy.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.deploy.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.deploy.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 1, - "offset": 0 - }, - "pc": 12, - "value": "[cast(fp + (-8), felt**)]" - }, - { - "ap_tracking_data": { - "group": 1, - "offset": 1 - }, - "pc": 20, - "value": "cast([fp + (-8)] + 9, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.common.syscalls.get_caller_address": { - "decorators": [], - "pc": 24, - "type": "function" - }, - "starkware.starknet.common.syscalls.get_caller_address.Args": { - "full_name": "starkware.starknet.common.syscalls.get_caller_address.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.starknet.common.syscalls.get_caller_address.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.get_caller_address.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.get_caller_address.Return": { - "cairo_type": "(caller_address: felt)", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.get_caller_address.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.get_caller_address.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.get_caller_address.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 2, - "offset": 0 - }, - "pc": 24, - "value": "[cast(fp + (-3), felt**)]" - }, - { - "ap_tracking_data": { - "group": 2, - "offset": 1 - }, - "pc": 27, - "value": "cast([fp + (-3)] + 2, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.common.syscalls.get_contract_address": { - "decorators": [], - "pc": 31, - "type": "function" - }, - "starkware.starknet.common.syscalls.get_contract_address.Args": { - "full_name": "starkware.starknet.common.syscalls.get_contract_address.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.starknet.common.syscalls.get_contract_address.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.get_contract_address.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.get_contract_address.Return": { - "cairo_type": "(contract_address: felt)", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.get_contract_address.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.get_contract_address.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.get_contract_address.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 3, - "offset": 0 - }, - "pc": 31, - "value": "[cast(fp + (-3), felt**)]" - }, - { - "ap_tracking_data": { - "group": 3, - "offset": 1 - }, - "pc": 34, - "value": "cast([fp + (-3)] + 2, felt*)" - } - ], - "type": "reference" - } - }, - "main_scope": "__main__", - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "reference_manager": { - "references": [ - { - "ap_tracking_data": { - "group": 0, - "offset": 0 - }, - "pc": 0, - "value": "[cast(fp + (-7), felt**)]" - }, - { - "ap_tracking_data": { - "group": 1, - "offset": 0 - }, - "pc": 12, - "value": "[cast(fp + (-8), felt**)]" - }, - { - "ap_tracking_data": { - "group": 2, - "offset": 0 - }, - "pc": 24, - "value": "[cast(fp + (-3), felt**)]" - }, - { - "ap_tracking_data": { - "group": 3, - "offset": 0 - }, - "pc": 31, - "value": "[cast(fp + (-3), felt**)]" - } - ] - } - } -} diff --git a/crates/katana/core/contracts/compiled/oz_account_080.json b/crates/katana/core/contracts/compiled/oz_account_080.json new file mode 100644 index 0000000000..580b8acd45 --- /dev/null +++ b/crates/katana/core/contracts/compiled/oz_account_080.json @@ -0,0 +1 @@ +{"sierra_program":["0x1","0x3","0x0","0x2","0x3","0x1","0x38d","0x73","0x67","0x53797374656d","0x800000000000000100000000000000000000000000000000","0x556e696e697469616c697a6564","0x800000000000000200000000000000000000000000000001","0x1","0x0","0x456e756d","0x800000000000000700000000000000000000000000000001","0x4abc19acf2110f55bbd81ec736d91bfa4d6bab076c94cfdf3127449061193d","0x45635374617465","0x800000000000000700000000000000000000000000000000","0x4172726179","0x800000000000000300000000000000000000000000000001","0x8","0x536e617073686f74","0x4","0x537472756374","0x800000000000000700000000000000000000000000000002","0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62","0x5","0x800000000000000300000000000000000000000000000003","0x161ee0e6962e56453b5d68e09d1cabe5633858c1ba3a7e73fee8c70867eced0","0x6","0x66656c74323532","0x1166fe35572d4e7764dac0caf1fd7fc591901fd01156db2561a07b68ab8dca2","0x800000000000000f00000000000000000000000000000001","0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3","0x101dc0399934cc08fa0d6f6f2daead4e4a38cabeea1c743e1fc28d2d6e58e99","0xa","0x4563506f696e74","0x4e6f6e5a65726f","0xc","0x426f78","0x42","0x2c","0x2c7badf5cd070e89531ef781330a9554b04ce4ea21304b67a30ac3d43df84a2","0xf","0x381e8d33523eda2efdaa30d501b6dfe83db6bdd909086fb338103738444ec23","0x800000000000000f00000000000000000000000000000003","0x11","0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672","0x13","0x3cca7a30d12b22cfcf3842f0061708aabfc598c01f49a4529e51e7916aa5784","0x12","0x14","0x800000000000000700000000000000000000000000000003","0x3288d594b9a45d15bb2fcb7903f06cdb06b27f0ba88186ec4cfaa98307cb972","0x248e8fae2f16a35027771ffd74d6a6f3c379424b55843563a18f566bba3d905","0x16","0x28266f0414c0de3e9d181ad39a5c73a16c7514519fab3e64e293fe4c79a9fbe","0x14be226ed4a8370e9a1024f06dd500f119e3e7f909013eaaf51e63d2eca6712","0x19","0x34fbf7999a7a80ee576a7639d4a2ab5eff961e5aae01064a147a4e7193b88f7","0x1a","0x39d1bb6485850462fcfa1e5c499cd211a145258949ebe8aadd304a999165dc6","0x231d4965fc11a34a5dbf5760a6aa96609aa0166be90582301f5102b7f7eae9d","0x18","0x1c","0x32f0b6749e5a61f7f6bc38eae942ce592ae56233e8349466b243151ab3b637","0x1d","0x2","0x90d0203c41ad646d024845257a6eceb2f8b59b29ce7420dd518053d2edeedc","0x53746f7261676541646472657373","0x53746f726167654261736541646472657373","0x22","0x3ae40d407f8074730e48241717c3dd78b7128d346cf81094e31806a3a5bdf","0x23","0x800000000000000300000000000000000000000000000004","0x25","0x26","0x32cb17bdb0d0d053909169ec443a25462b7e27237007511f772a7d957ce924c","0x27","0x2e","0x3d","0x436f6e747261637441646472657373","0x800000000000000700000000000000000000000000000006","0x19367431bdedfe09ea99eed9ade3de00f195dd97087ed511b8942ebb45dbc5a","0x29","0x2a","0x2b","0x753634","0x800000000000000700000000000000000000000000000004","0x3808c701a5d13e100ab11b6c02f91f752ecae7e420d21b56c90ec0a475cc7e5","0x2d","0x38f4af6e44b2e0a6ad228a4874672855e693db590abc7105a5a9819dbbf5ba6","0x2f","0x3d37ad6eafb32512d2dd95a2917f6bf14858de22c27a1114392429f2e5c15d7","0x800000000000000f00000000000000000000000000000002","0x2c92579c09cc1c79d950a243b853521e6cc14629970e7763fb138c03a479139","0x33","0x220d0098370bbaab338f4e82fb69720a761536f00e15d656ddc9d3385b16e3","0x34","0xcc5e86243f861d2d64b08c35db21013e773ac5cf10097946fe0011304886d5","0x36","0x1f5d91ca543c7f9a0585a1c8beffc7a207d4af73ee640223a154b1da196a40d","0x38","0x3a","0x75313238","0x800000000000000700000000000000000000000000000008","0x2e655a7513158873ca2e5e659a9e175d23bf69a2325cdd0397ca3b8d864b967","0x3c","0x3508bb43f8880f8a37030d78eb1ac52d3a1abcccd991bf0258bdf64f81014ed","0x3e","0x3e1934b18d91949ab9afdbdd1866a30ccca06c2b1e6581582c6b27f8b4f6555","0x40","0x3693aea200ee3080885d21614d01b9532a8670f69e658a94addaadd72e9aca","0x18508a22cd4cf1437b721f596cd2277fc0a5e4dcd247b107ef2ef5fd2752cf7","0x43","0x8416421239ce8805ed9d27e6ddae62a97ab5d01883bb8f5246b4742a44b429","0x44","0x215692769bef4dad4fa84993f233ef2b9084a6d947d83521a5e257dae5d5e1b","0x47","0x3ce5192f5a34fd44f3cea940ff0f4e47518da9ada5aede3b732eb001439f046","0x48","0x28f8d296e28032baef1f420f78ea9d933102ba47a50b1c5f80fc8a3a1041da","0x29d7d57c04a880978e7b3689f6218e507f3be17588744b58dc17762447ad0e7","0xa853c166304d20fb0711becf2cbdf482dee3cac4e9717d040b7a7ab1df7eec","0x4c","0x506564657273656e","0x265bdceca7ea9a7f2bd04272ca0fae2a6498e935c71d3ef73237e17187023ec","0x4f","0xe12da67791025850b8b89abc616bc4269dff27cfc5aa224bf8f0762470ea51","0x50","0x17b6ecc31946835b0d9d92c2dd7a9c14f29af0371571ae74a1b228828b2242","0x52","0x34f9bd7c6cb2dd4263175964ad75f1ff1461ddc332fbfb274e0fb2a5d7ab968","0x53","0x11c6d8087e00642489f92d2821ad6ebd6532ad1a3b6d12833da6d6810391511","0x10203be321c62a7bd4c060d69539c1fbe065baa9e253c74d2cc48be163e259","0x57","0x45634f70","0x74584e9f10ffb1a40aa5a3582e203f6758defc4a497d1a2d5a89f274a320e9","0x5b","0x800000000000000300000000000000000000000000000002","0x25abf8fd76a01c7e2544d26b0a2e29212b05a36781e0330b46d878e43b307d1","0x5d","0x4275696c74696e436f737473","0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6","0x5a","0x753332","0x28f184fd9e4406cc4475e4faaa80e83b54a57026386ee7d5fc4fa8f347e327d","0x62","0xc1f0cb41289e2f6a79051e9af1ead07112b46ff17a492a90b3944dc53a51c8","0x63","0x4761734275696c74696e","0x52616e6765436865636b","0x1c0","0x616c6c6f635f6c6f63616c","0x66696e616c697a655f6c6f63616c73","0x7265766f6b655f61705f747261636b696e67","0x77697468647261775f676173","0x6272616e63685f616c69676e","0x73746f72655f74656d70","0x66","0x65","0x66756e6374696f6e5f63616c6c","0x3","0x656e756d5f6d61746368","0x64","0x7374727563745f6465636f6e737472756374","0x61727261795f6c656e","0x736e617073686f745f74616b65","0x61","0x64726f70","0x7533325f636f6e7374","0x72656e616d65","0x7533325f6571","0x61727261795f6e6577","0x66656c743235325f636f6e7374","0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473","0x61727261795f617070656e64","0x7374727563745f636f6e737472756374","0x656e756d5f696e6974","0x60","0x6765745f6275696c74696e5f636f737473","0x5f","0x77697468647261775f6761735f616c6c","0xd","0x73746f72655f6c6f63616c","0x5e","0xe","0x5c","0x4f7574206f6620676173","0x4661696c656420746f20646573657269616c697a6520706172616d202331","0x59","0x58","0x10","0x55","0x54","0x4661696c656420746f20646573657269616c697a6520706172616d202332","0x56","0x15","0x51","0x17","0x4661696c656420746f20646573657269616c697a6520706172616d202333","0x4e","0x1b","0x4d","0x64697361626c655f61705f747261636b696e67","0x61727261795f736e617073686f745f706f705f66726f6e74","0x4b","0x6a756d70","0x756e626f78","0x1e","0x1f","0x20","0x647570","0x7533325f746f5f66656c74323532","0x4a","0x21","0x24","0x49","0x28","0x66656c743235325f69735f7a65726f","0x46","0x45","0x66656c743235325f737562","0x41","0x636f6e74726163745f616464726573735f746f5f66656c74323532","0x3f","0x656e61626c655f61705f747261636b696e67","0x100000000000000000000000000000001","0x4163636f756e743a20696e76616c69642074782076657273696f6e","0x4163636f756e743a20696e76616c69642063616c6c6572","0x39","0x30","0x3b","0x31","0x4163636f756e743a20696e76616c6964207369676e6174757265","0x56414c4944","0x32","0x37","0x35","0x3f918d17e5ee77373b56385708f855659a07f75997f365cf87748628532a055","0x2ceccef7f994940b3962a6c67e0ba4fcd37df7d131417c604f91e03caecc1cd","0x73746f726167655f626173655f616464726573735f636f6e7374","0x1379ac0624b939ceb9dede92211d7db5ee174fe28be72245b0a1a2abd81c98f","0x73746f726167655f616464726573735f66726f6d5f62617365","0x73746f726167655f726561645f73797363616c6c","0x4163636f756e743a20756e617574686f72697a6564","0x21adb5788e32c84f69a1863d85ef9394b7bf761a0ce1190f826984e5075c371","0x6765745f657865637574696f6e5f696e666f5f73797363616c6c","0x61727261795f706f705f66726f6e74","0x61727261795f676574","0x496e646578206f7574206f6620626f756e6473","0x800000000000010ffffffffffffffffb781126dcae7b2321e66a241adc64d2f","0x65635f706f696e745f66726f6d5f785f6e7a","0x756e777261705f6e6f6e5f7a65726f","0x1ef15c18599971b7beced415a40f0c7deacfd9b0d1819e03d723d8bc943cfca","0x5668060aa49730b7be4801df46ec62de53ecd11abe43a32873000c36e8dc1f","0x65635f706f696e745f7472795f6e65775f6e7a","0x65635f706f696e745f69735f7a65726f","0x65635f706f696e745f756e77726170","0x656d69745f6576656e745f73797363616c6c","0xb","0x73746f726167655f77726974655f73797363616c6c","0x10e5fcd68658d0cf6ed280e34d0d0da9a510b7a6779230c9912806a2c939b9","0x9","0x706564657273656e","0xad292db4ff05a993c318438c1b6c8a8303266af2da151aa28ccece6726f1f1","0x626f6f6c5f6e6f745f696d706c","0x63616c6c5f636f6e74726163745f73797363616c6c","0x7","0x65635f73746174655f696e6974","0x65635f73746174655f6164645f6d756c","0x65635f73746174655f7472795f66696e616c697a655f6e7a","0x65635f706f696e745f7a65726f","0x65635f73746174655f616464","0x65635f6e6567","0x526573756c743a3a756e77726170206661696c65642e","0x38f6a5b87c23cee6e7294bcc3302e95019f70f81586ff3cac38581f5ca96381","0xca58956845fecb30a8cb3efe23582630dbe8b80cc1fb8fd5d5e866b1356ad","0x10d9","0xffffffffffffffff","0x89","0x81","0x71","0x68","0x69","0x6a","0x6b","0x6c","0x6d","0x6e","0x6f","0x70","0x72","0x73","0x74","0x75","0x76","0x77","0x78","0x79","0x7a","0x7b","0x7c","0x7d","0x7e","0x7f","0x80","0x82","0x83","0x115","0x10d","0xfd","0xbe","0xee","0xe6","0x1bf","0x1ae","0x1a5","0x194","0x153","0x184","0x17c","0x84","0x85","0x86","0x87","0x88","0x8a","0x8b","0x8c","0x8d","0x8e","0x8f","0x90","0x91","0x92","0x26a","0x259","0x250","0x23f","0x1fe","0x22f","0x227","0x2cf","0x296","0x2c2","0x2bb","0x340","0x331","0x2fe","0x323","0x31c","0x3a3","0x36a","0x396","0x38f","0x414","0x405","0x3d2","0x3f7","0x3f0","0x493","0x483","0x444","0x474","0x46c","0x544","0x534","0x523","0x511","0x4ce","0x500","0x4f8","0x93","0x94","0x95","0x5c4","0x5b4","0x575","0x5a5","0x59d","0x63c","0x62c","0x5f5","0x61d","0x615","0x653","0x658","0x674","0x66e","0x691","0x6b2","0x6cc","0x6e1","0x6e6","0x6f0","0x6ff","0x704","0x720","0x71a","0x96","0x73f","0x75c","0x97","0x773","0x98","0x99","0x78a","0x9a","0x9b","0x9c","0x9d","0x9e","0x9f","0xa0","0x7a0","0xa1","0x7b7","0x7d2","0x7f0","0xa2","0xa3","0xa4","0x80c","0xa5","0xa6","0xa7","0xa8","0xa9","0xaa","0x81b","0xab","0x81f","0xac","0xad","0xae","0x83f","0xaf","0x88e","0xb0","0xb1","0x859","0xb2","0xb3","0xb4","0xb5","0x886","0xb6","0xb7","0x87c","0xb8","0xb9","0x876","0xba","0xbb","0x923","0xbc","0xbd","0x914","0xbf","0x90c","0xc0","0xc1","0xc2","0xc3","0xc4","0xc5","0x8d8","0x8e5","0xc6","0x8fc","0xc7","0x8f5","0xc8","0xc9","0xca","0x977","0xcb","0xcc","0x93b","0xcd","0xce","0x940","0xcf","0xd0","0xd1","0x969","0xd2","0xd3","0x962","0x95c","0x970","0xd4","0xd5","0xd6","0x9c1","0xd7","0x9b9","0x9ae","0xd8","0xd9","0xa03","0x9db","0xda","0x9f9","0x9f3","0xa32","0xa26","0xa2a","0xdb","0xdc","0xdd","0xa48","0xde","0xdf","0xe0","0xa8f","0xe1","0xe2","0xa87","0xe3","0xe4","0xe5","0xa80","0xa7a","0xe7","0xe8","0xe9","0xea","0xeb","0xaa5","0xabb","0xec","0xad7","0xed","0xef","0xf0","0xaec","0xf1","0xf2","0xf3","0xb1b","0xf4","0xb13","0xf5","0xf6","0xf7","0xb61","0xf8","0xb57","0xb4f","0xb45","0xf9","0xfa","0xfb","0xfc","0xfe","0xff","0x100","0x101","0x102","0xb7d","0x103","0x104","0x105","0x106","0x107","0x108","0x109","0x10a","0x10b","0xb95","0x10c","0x10e","0x10f","0x110","0x111","0x112","0x113","0xbaf","0x114","0x116","0x117","0xbd0","0x118","0xbee","0x119","0xc1b","0xc39","0x11a","0x11b","0xc2e","0x11c","0x11d","0xc23","0x11e","0x11f","0x120","0x121","0x122","0x123","0xc50","0x124","0x125","0xc55","0x126","0x127","0x128","0xc60","0xca0","0x129","0xc99","0x12a","0x12b","0xc8c","0x12c","0x12d","0x12e","0x12f","0x130","0x131","0x132","0x133","0x134","0x135","0xcbd","0x136","0x137","0xce7","0x138","0x139","0x13a","0x13b","0xce1","0x13c","0x13d","0x13e","0x13f","0x140","0xd06","0x141","0x142","0xd27","0x143","0x144","0x145","0x146","0x147","0xd41","0x148","0xd3a","0x149","0x14a","0x14b","0x14c","0xd4e","0x14d","0x14e","0xd53","0x14f","0x150","0x151","0xd5e","0x152","0x154","0x155","0xdae","0x156","0xd72","0x157","0x158","0xd77","0xda3","0x159","0x15a","0x15b","0xd99","0x15c","0x15d","0xd92","0x15e","0x15f","0x160","0x161","0xdfa","0xdcb","0xdd0","0xdec","0xde6","0xdf3","0x162","0x163","0xe0f","0x164","0x165","0x166","0x167","0x168","0xe27","0x169","0xe39","0xe4b","0x16a","0xec8","0x16b","0x16c","0xebd","0x16d","0x16e","0x16f","0xeb1","0x170","0x171","0x172","0xe6f","0x173","0x174","0x175","0x176","0xe82","0xe95","0xe93","0x177","0xe9c","0xeab","0xea9","0x178","0xed8","0xef0","0x179","0x17a","0x17b","0x17d","0x17e","0x17f","0xf14","0x180","0x181","0xf19","0x182","0x183","0xf24","0x185","0x186","0xf3a","0xf3f","0xf4a","0x187","0x188","0x189","0x18a","0x18b","0xf68","0x18c","0x18d","0x18e","0x18f","0x190","0x191","0xfa3","0xf98","0xf9d","0x192","0x193","0x195","0x196","0xfaf","0x197","0xfc2","0xfc6","0xfd0","0xfd5","0xfe2","0x198","0x199","0x19a","0x19b","0x19c","0xff1","0x19d","0x19e","0x1003","0x19f","0x1a0","0x1008","0x1a1","0x1a2","0x1a3","0x1013","0x1020","0x1030","0x1a4","0x1a6","0x1a7","0x102b","0x102e","0x1a8","0x1a9","0x1aa","0x1039","0x103f","0x1ab","0x1ac","0x104b","0x104e","0x1056","0x1ad","0x106a","0x1af","0x1072","0x1b0","0x1b1","0x1b2","0x1b3","0x107d","0x1b4","0x1b5","0x1b6","0x1091","0x1b7","0x10a2","0x1b8","0x1b9","0x10ad","0x1ba","0x1bb","0x1bc","0x1bd","0x10bc","0x1be","0x1cf","0x27a","0x2dd","0x34e","0x3b1","0x422","0x4a2","0x553","0x5d3","0x64b","0x67e","0x698","0x6b8","0x6d4","0x6da","0x6f7","0x72a","0x747","0x764","0x779","0x791","0x7a6","0x7be","0x7da","0x7f8","0x814","0x829","0x848","0x89d","0x8a1","0x92b","0x986","0x9ca","0xa12","0xa3a","0xa4e","0xa97","0xaab","0xac1","0xac5","0xaf4","0xb25","0xb6b","0xb83","0xb9b","0xbb6","0xbd6","0xc43","0xc66","0xca6","0xcc4","0xcee","0xd0e","0xd2f","0xd47","0xd64","0xdbd","0xe08","0xe1a","0xed2","0xede","0xef6","0xef9","0xf2b","0xf51","0xf6f","0xf7d","0xfa9","0xfb5","0xfeb","0xff7","0x1019","0x1033","0x1050","0x105e","0x1060","0x1077","0x1083","0x1086","0x1095","0x10b2","0x10b5","0x10c5","0x10cf","0x92a4","0x1301812044100140803c0e0140d0300b028090180801c060140400c0200400","0x60540706c060681103805064060481102c180400505c05058060540705005","0x25014240181501c2301408084220140d084200140807c0b078100141d0141c","0x50a80506c06054110a40606811074050a00506c0609c11098060681104005","0x1001431014300181501c1d0141d0142f0182e01c2d0142c0142b0181501c10","0x50d8050d40605407074050d00506c0609c110cc0606811038050c80604811","0x1501c3d0143c0143b0182e01c3a01439014380182e01c0e01437018120442d","0x510806054071040506c0604811038050202102c4002c3f04005038050f806","0x470181501c1d01446014450141b01844044170140d030220140d0302d01443","0x51400513c0513805134061301102c4b128050202112405020210b40512005","0x550181501c250141b0181204450014540145401453018520440b1440e01450","0x609c110a00516406160111400501003074051400515c060b8070b40515805","0x5e0145d0181501c1d0141b018580442d0145c0145b0181501c1d0145a0141b","0x1102c621840501003118050200f074051800517c060b80705c05020210b405","0x1501c4f0141b018120440e0140e0140e0141701465014500140e0146401863","0x51a806110110b4051a4051a006054071400506c06048110b40519c0519806","0x6d0181501c6c014170141b018150441d014220146b0181501c100140e01450","0x605407074051c00506c0609c110d0051bc0616011038050201f0b4051b805","0x310141b018120441d01441014740182e01c6101473018120442d0147201471","0x51e40506c0609c11168051c0051e00609c11008770b4051d8051d40605407","0x7d014170141b018150441d014100147c0181501c2d0147b0147a0181501c1d","0x506c060481103805010030740503805200060b8070b4051fc051f80605407","0x1d014100141b01815044170141b018120440220c2d01482014810181501c0e","0x702c890b4052200521c06054071180506c06218110b405214052100605407","0x8e014170141b018150441d014450148d0181501c0b2302d0148b0148a01815","0x62600625c062580625406014052509300892008910b4052400523c0605407","0x9e24005014a027c050149e0809d0149c05c050149926c05014992680501499","0x5298060f405294a301405290a3014052880e0140528417014052808e01405","0x992a83d014a903805014a811405014a401405014a4018a728c050149928c05","0x601405264050f4ae0143d2b42d014052b02a014052b00e014052ac0e01405","0xac0a005014ac1c005014ac0d005014ac018b12c00501499018af2b80501499","0x5270450140526479014052647901405290790140528879014052b05a01405","0x50149911805014a411805014a222005014a02d0050149e01805014b32c89d","0x10014052881d014052908501405280b601405278b527405270100140526461","0x5014a42dc3d014a90183d2b8050f4ad22c05014ac05c05014ac04005014a4","0xe014052888201405280ba014052782527405270b901405264b80f4052a417","0x9c03805014b32f0050149e0a09d0149c03805014942ec9d0149c03805014a4","0x5290be0f4052a42a274052707d014052787f01405280bd014052782c27405","0x9d0149c1ec05014a4304050149e0c49d0149c3009d0149c0b49d0149c2fc05","0xc527405270c401405264c30f4052a4362740527034274052703927405270c2","0x9c0e89d0149c0c405014990c405014a40c405014a21d805014a0318050149e","0x6328c9014052641401405264060f4c90143d2b40e014053200631c3c27405","0x5014a608805014a803805014cb324050149e0143d324050f4ad07405014ac","0x50f49f0143d2b49f01405264060f49f0143d2b490014052b0cc274052700e","0x50f4ad22005014ac3389d0149c1c005014993349d0149c0143d238050f4ad","0x52b0063401701405284610140533c050f4b40143d2b4b401405264060f4b4","0xad2d805014990183d2d8050f4ad21405014ac3489d0149c344050149934405","0x3d2b4ba01405264060f4ba0143d2b482014052b04127405270050f4b60143d","0x9c0143d2f0050f4ad2f005014990183d2f0050f4ad07405014990143d2e805","0x3d2b4050f4bd0143d2b4bd01405264060f4bd0143d2b47f014052b04327405","0xa41c805014a0350050149e1189d0149c1149d0149c34c9d0149c0143d1f405","0x5270050f4c10143d2b4c101405264060f4c10143d2b47b014052b07001405","0x50f4ad1d805014ac13c9d0149c16805014991389d0149c3549d0149c1209d","0x60f4052a431014052783101405298050f4c60143d2b4c601405264060f4c6","0x50f4ad018d603805014cf16805014a41409d0149c1e405014a00143d014a9","0x52ac6c014052786e01405280d8014052782327405270d701405290060f48e","0x50149e1249d0149c018db1a405014a0368050149e1509d0149c018d908805","0x52a406374650140529050014052904a014052804a0140532c6701405280dc","0x5014c834405014a018405014943803d014a937c3d014a91589d0149c3783d","0xe10140527861014052cc050f4e10143d2b4e101405264060f4e10143d2b417","0xa93909d0149c34405014a438c05014a418405014a43889d0149c05c05014cb","0xe72740527034014052647001405280060f47d0143d2b4e60f4052a4e50f405","0x990e805014ac0d005014a217805014a43a0050149e1689d0149c1c005014a2","0xd401405264060f4d40143d2b472014052b0e9274052705c274052703a01405","0x9916805014a00143d0c4050f4ad3a83d014a90d005014a40143d350050f4ad","0x52505c01405290e901405278e827405270eb0f4052a45e274052702801405","0xac0183d1b0050f4ad08805014ac14005014b3390050149e1809d0149c14005","0x50f4d80143d2b4050f46c0143d2b4d801405264060f4d80143d2b46e01405","0xa408c05014a008c05014cb15805014a0388050149e3849d0149c39c05014a4","0xda0143d2b4da01405264060f4da0143d2b469014052b04f014052904e01405","0x5014a80143d370050f4ad37005014990183d370050f4ad19c05014ac0143d","0x1701405298170140533c4801405280d5014052786127405270460140526417","0x5014a034c050149e1949d0149c0183d0c4050f4ad0f43d014a538c9d0149c","0x63bcce01405264063b8ed0f4053b082014052904a27405270050f40529443","0x9c19c9d0149c33405014a60143d334050f4ad33405014990183d334050f4ad","0xe801405264060f4e80143d2b45e014052b050014052985001405288dc27405","0x990183d330050f4ad1a49d0149c1a405014a40143d3a0050f4ad3c03d014a9","0x526439014052b03601405280c5014052782227405270da27405270cc01405","0x9d0149c30805014a63609d0149c34805014991b89d0149c1b09d0149c0e405","0x5264060f4e90143d2b45c014052b02c01405280c0014052787027405270d7","0x3d390050f4ad39005014990183d390050f4ad018f10143d3a4050f4ad3a405","0x5270bb01405298050f4bb0143d2b4bb01405264060f4bb0143d2b4063c805","0x5014f30143d388050f4ad38805014990183d388050f4ad15805014ac1c89d","0x8b01405280ae01405278d42740527022014052646c01405264220140532c22","0xa40143d354050f4ad35405014990183d354050f4ad12005014ac05c05014ab","0xf50f4052a4d301405264060f4d30143d2b443014052b00e014053d01401405","0xa93e43d014a908005014f82c80501499018f73d83d014a90143d34c050f4ad","0x200140533c063f42001405290063f0d1274052702001405264063ecfa0f405","0x9d0149c0f005014990143d0f0050f4ad334050149e1d89d0149c3249d0149c","0xff01405264060f4ff0143d2b4063f8c427405270cc01405290cc01405288c6","0xad0d805014ac0190017805014a01e49d0149c3fc05014a60143d3fc050f4ad","0x52a428014052907b27405270050f4c50143d2b4c501405264060f4c50143d","0x5014990183d308050f4ad01905019040190340805014a040805014ac4043d","0x60f4c00143d2b42c014052b02801405288c201405278050f4c20143d2b4c2","0x3d41c050f4ad0190608805014a02ec050149e0143d300050f4ad3000501499","0x52640642406420c1274052710701405298050f5070143d2b5070140526406","0x50149e0190d0190c2c805014a408005014a62e405014a60190b0190a27405","0x3c0143d2b4ff0140527810014052987f274052703d014052647d27405270cc","0x3d014a92f09d0149c43c3d014a90f0050149e2f49d0149c4383d014a90183d","0x6018064443a01405280390140528107014052783d01405278bf2740527110","0x170f5120f4050183d2740601912014060f4060191201406014060500544805","0x1120150701417018b2015120141701414018064480501810019020383d44d07","0x540806080ff0749d44805094b52c89d0380609405448052740541c062d405","0xff0182a0b03d448052ec05074060191201406040060a005450bb015120f420","0xb201831015120142c01420018064480501810018c0015150b4054483d0a805","0x62ec06019120143901425018340e43d44805308052d40630805448050c405","0x50d0050a00601912014c5014250183a3143d448050d8052d4060d80544805","0x3d3303c0f42a0183c015120143c0142c018cc015120143a014280183c01512","0x6019120142d014c00180644805050050b406019120140604006018d501912","0xcd0f434018ce01512014ce01439018ce015120140630806334054480501831","0x430143a0184301512014d21043d31406104054480501836018d201512014ce","0x50f4050f00611805448053fc0505c061140544805074050500634c0544805","0xcd018064480501810018d51204611410014d501512014d3014cc0184801512","0x8e1404f0f5120f44e3fc1d274d20184e015120144e014ce0184e0151201406","0x615805448051240510c061240544805018410180644805018100185408c3d","0x48018e701512014e41583d11806390054480538805114063880544805018d3","0x505c06180054480513c0505006019120145a014d50185c1683d4480539c05","0x2d0144f018e3015120145c0144e01861015120143d0143c018e10151201450","0x5040140f423018e80405e3a41044805194e3184e118014140061940544805","0x112014060c40601912014060400619c052144a015120f4e8014540181001512","0x112014da014e2018223683d448051a405158061a40544805128051240637005","0x720151201422014e401870015120145e01417018d701512014e90141401806","0xd80145c018d81b86c27512014d41c87035c101680635005448053700539c06","0x517806318760f512014d1014e9018064480501810018c9014bd344054483d","0x51e4053840601912014c401460018793103d448051d8053a00601912014c6","0x1120146c014140187d01512014c1014e3018c1015120147b014610187b01512","0x5448051f405330062f00544805040050f0062f405448051b80505c061fc05","0x6c014140188201512014c90143a018064480501810018bf2f0bd1fc10014bf","0x5208053300622c0544805040050f0062e405448051b80505c062e80544805","0x14018b601512014670143a0180644805018100188522cb92e8100148501512","0x5330062c00544805040050f0062d005448051780505c0622005448053a405","0x601912014140142d018064480501810018ae2c0b422010014ae01512014b6","0x5238050e406238054480501865018a301512014060c406019120142d014c0","0x52409f0f4c50189f01512014060d8062400544805238a30f4340188e01512","0x1120145401417018000151201423014140189a015120149b0143a0189b01512","0x64611745800040054600544805268053300645c05448050f4050f00645805","0x1120142c0144a0180644805050050b40601912014c00145e018064480501810","0x340191a015120151a014390191a015120140619c0646405448050183101806","0x3a0191d015120151b4703d314064700544805018360191b015120151a4643d","0x50f00647c05448053fc0505c0645405448050740505006478054480547405","0x64480501810019214811f4541001521015120151e014cc01920015120143d","0x1701923015120141d014140192201512014280143a0180644805050050b406","0x123040054980544805488053300649405448050f4050f00649005448053fc05","0x310180644805274051280601912014140142d0180644805018100192649524","0x12849c3d0d0064a005448054a0050e4064a0054480501865019270151201406","0x54ac050e8064ac05448054a52a0f4c50192a01512014060d8064a40544805","0x1120143d0143c019140151201502014170192d015120140e014140192c01512","0x3d2740601912014060f4064bd2e4512d040054bc05448054b005330064b805","0x200151201414014140180644805018100180e41c3d4c0170503d4483d0f406","0x9d448052d4b20809d038062d405448050400541c062c8054480505c0505c06","0x509405074060191201406040062ec054c425015120f4ff01502018ff07502","0x28014200180644805018100182d015320a8054483d0b0053fc060b0280f512","0xc201425018393083d448050c4052d4060c40544805300052c8063000544805","0x1120143601425018c50d83d448050d0052d4060d00544805018bb0180644805","0x3a015120143a0142c0183c01512014c5014280183a01512014390142801806","0x3101806448050a8053000601912014060400601933019120f43c0e83d0a806","0xcd3303d0d0063340544805334050e4063340544805018c2018cc0151201406","0x5104050e8061040544805338d20f4c5018d201512014060d8063380544805","0x1120141d01417018450151201405014dc018d30151201502014140184301512","0xd512046114d305005354054480510c05330061200544805274050f00611805","0x102274d20184e015120144e014ce0184e015120140633406019120140604006","0x61240544805018410180644805018100185408c3d4d05013c3d4483d1381d","0x3d11806390054480538805114063880544805018d301856015120144901443","0x505006019120145a014d50185c1683d4480539c051200639c054480539056","0x9d0143c01865015120145001417018e30151201405014dc01861015120144f","0xe3184171a40637005448050a80513c0619c054480517005138061280544805","0x10018da015351a4054483d3840536806384603a05e3a414448053706712865","0x1120146c0146c0186c0151201469014220182201512014060c4060191201406","0x5448050880539c061c80544805360050e406019120146e0146e018d81b83d","0x3d4480535c053a00601912014700145e0187035c3d44805350720f4d8018d4","0xc60151201476014610187601512014c9014e101806448053440518006324d1","0x61ec054480517805370061e405448053a4050500631005448053180538c06","0x140147f01512014c4014cc0187d01512014600143c018c101512014e801417","0x112014e901414018bd01512014da0143a0180644805018100187f1f4c11ec79","0x544805180050f00620805448053a00505c062fc054480517805370062f005","0x5300060191201406040062e4ba208bf2f014014b901512014bd014cc018ba","0x544805214050e4062140544805018650188b01512014060c406019120142a","0x5448052d8880f4c50188801512014060d8062d805448052148b0f43401885","0xa30151201405014dc018ae015120142301414018b001512014b40143a018b4","0x527c05448052c005330062400544805274050f00623805448051500505c06","0x112014280144a01806448050b4051780601912014060400627c90238a32b814","0x340189a015120149a014390189a015120140619c0626c05448050183101806","0x3a0191701512014004583d3140645805448050183601800015120149a26c3d","0x505c064680544805014053700646405448054080505006460054480545c05","0x11a464140151d0151201518014cc0191c015120149d0143c0191b015120141d","0x1150151201502014140191e01512014bb0143a0180644805018100191d4711b","0x64840544805274050f00648005448050740505c0647c05448050140537006","0x50400512806019120140604006489214811f4541401522015120151e014cc","0x64900544805490050e4064900544805018650192301512014060c40601912","0x649c0544805495260f4c50192601512014060d8064940544805491230f434","0x170192a0151201405014dc019290151201507014140192801512015270143a","0x129050054b405448054a005330064b00544805274050f0064ac054480503805","0x9d01806448050183d01806448050180501817015120140635c064b52c4ad2a","0x5448050400541c06019120140604006075020f536039070f5120f43d0183d","0x54483d080051c80641c054480541c0505006080ff0f512014b201470018b2","0x5448050380505c060b0054480541c05050060191201406040062d4054dc14","0x50b42a0b09d344060500544805050170f4d40182d01512014ff015070182a","0x51d8060191201406040060c4054e0c0015120f428014c9018282ec2527512","0x2001806448050181001836015390d0054483d0e405318060e4c20f512014c0","0x25018cc0f03d448050e8052d4060e80544805314052c806314054480530805","0xce01425018d23383d44805334052d4063340544805018bb01806448050f005","0x112014410142c0184301512014d2014280184101512014cc014280180644805","0x6448050d005180060191201406040060193a019120f4431043d0a80610405","0x45014390184501512014063080634c0544805018310180644805050051b806","0x461203d3140612005448050183601846015120144534c3d0d0061140544805","0x5014053700613c054480509405050061380544805354050e8063540544805","0x1120144e014cc01854015120149d0143c0182301512014bb014170185001512","0x5338061580544805018cd01806448050181001849150231404f0500512405","0x1120140604006168e70f53b390e20f5120f4562ec25274d2018560151201456","0x450185e015120140634c063a405448051700510c0617005448050184101806","0x6184e10f51201460014480186001512014e83a43d118063a0054480517805","0x505c06368054480501405370061a40544805388050500601912014e1014d5","0x14014390186e01512014610144e0186c015120149d0143c0182201512014e4","0x144480535cd81b86c088da1a5073100635c05448050d00539c063600544805","0x60c4060191201406040061c8054f070015120f4dc014da018dc19c4a194e3","0xc90146e018763243d44805344051b00634405448051c005088063500544805","0x51ec790f4d80187b01512014d4014e7018790151201476014390180644805","0x530405180061f4c10f512014c6014e801806448053100517806310c60f512","0x5448052f40538c062f405448051fc05184061fc05448051f4053840601912","0xba015120144a01417018820151201465014dc018bf01512014e301414018bc","0x100188b2e4ba208bf0500522c05448052f005330062e4054480519c050f006","0x519405370062d8054480538c050500621405448051c8050e8060191201406","0x11201485014cc018b001512014670143c018b4015120144a014170188801512","0x51b806019120143401460018064480501810018ae2c0b4220b6050052b805","0x544805238050e406238054480501865018a301512014060c4060191201414","0x5448052409f0f4c50189f01512014060d8062400544805238a30f4340188e","0x1160151201405014dc0180001512014e7014140189a015120149b0143a0189b","0x5464054480526805330064600544805274050f00645c05448051680505c06","0x112014c20144a01806448050d805178060191201406040064651845d1600014","0x50e40646c0544805018790191a01512014060c40601912014140146e01806","0x11d0f4c50191d01512014060d806470054480546d1a0f4340191b015120151b","0x5014dc0191f01512014250141401915015120151e0143a0191e015120151c","0x545405330064880544805274050f00648405448052ec0505c064800544805","0x3a0180644805050051b80601912014060400648d224852047c140152301512","0x505c06498054480501405370064940544805094050500649005448050c405","0x12649414015290151201524014cc01928015120149d0143c0192701512014bb","0x7b01806448053fc051280601912014b50145e018064480501810019294a127","0x1120152b014390192b015120140619c064a8054480501831018064480505c05","0x1120152c4b43d314064b40544805018360192c015120152b4a83d0d0064ac05","0x54480501405370064bc054480541c05050064b80544805450050e80645005","0x140015120152e014cc0193f015120149d0143c0193e015120140e014170193d","0x505c051ec0601912014100144a018064480501810019404fd3e4f52f05005","0x644c054480544c050e40644c0544805018650194101512014060c40601912","0x65100544805509430f4c50194301512014060d806508054480544d410f434","0x17019470151201405014dc019460151201502014140194501512015440143a","0x14605005528054480551405330065240544805274050f006520054480507405","0x9d01806448050183d01806448050180501817015120140635c065294952147","0x5448050400541c06019120140604006075020f54b039070f5120f43d0183d","0x54483d080051c80641c054480541c0505006080ff0f512014b201470018b2","0x5448050380505c060b0054480541c05050060191201406040062d40553014","0x50b42a0b09d344060500544805050170f4d40182d01512014ff015070182a","0x51d8060191201406040060c405534c0015120f428014c9018282ec2527512","0x20018064480501810018360154e0d0054483d0e405318060e4c20f512014c0","0x25018cc0f03d448050e8052d4060e80544805314052c806314054480530805","0xce01425018d23383d44805334052d4063340544805018bb01806448050f005","0x112014410142c0184301512014d2014280184101512014cc014280180644805","0x6448050d005180060191201406040060194f019120f4431043d0a80610405","0x45014390184501512014063080634c0544805018310180644805050051b806","0x461203d3140612005448050183601846015120144534c3d0d0061140544805","0x5014053700613c054480509405050061380544805354050e8063540544805","0x1120144e014cc01854015120149d0143c0182301512014bb014170185001512","0x5338061580544805018cd01806448050181001849150231404f0500512405","0x1120140604006168e70f550390e20f5120f4562ec25274d2018560151201456","0x450185e015120140634c063a405448051700510c0617005448050184101806","0x6184e10f51201460014480186001512014e83a43d118063a0054480517805","0x505c06368054480501405370061a40544805388050500601912014e1014d5","0x14014390186e01512014610144e0186c015120149d0143c0182201512014e4","0x144480535cd81b86c088da1a5073040635c05448050d00539c063600544805","0x60c4060191201406040061c80554470015120f4dc014da018dc19c4a194e3","0xc90146e018763243d44805344051b00634405448051c005088063500544805","0x51ec790f4d80187b01512014d4014e7018790151201476014390180644805","0x530405180061f4c10f512014c6014e801806448053100517806310c60f512","0x5448052f40538c062f405448051fc05184061fc05448051f4053840601912","0xba015120144a01417018820151201465014dc018bf01512014e301414018bc","0x100188b2e4ba208bf0500522c05448052f005330062e4054480519c050f006","0x519405370062d8054480538c050500621405448051c8050e8060191201406","0x11201485014cc018b001512014670143c018b4015120144a014170188801512","0x51b806019120143401460018064480501810018ae2c0b4220b6050052b805","0x544805238050e406238054480501865018a301512014060c4060191201414","0x5448052409f0f4c50189f01512014060d8062400544805238a30f4340188e","0x1160151201405014dc0180001512014e7014140189a015120149b0143a0189b","0x5464054480526805330064600544805274050f00645c05448051680505c06","0x112014c20144a01806448050d805178060191201406040064651845d1600014","0x50e40646c0544805018790191a01512014060c40601912014140146e01806","0x11d0f4c50191d01512014060d806470054480546d1a0f4340191b015120151b","0x5014dc0191f01512014250141401915015120151e0143a0191e015120151c","0x545405330064880544805274050f00648405448052ec0505c064800544805","0x3a0180644805050051b80601912014060400648d224852047c140152301512","0x505c06498054480501405370064940544805094050500649005448050c405","0x12649414015290151201524014cc01928015120149d0143c0192701512014bb","0x7b01806448053fc051280601912014b50145e018064480501810019294a127","0x1120152b014390192b015120140619c064a8054480501831018064480505c05","0x1120152c4b43d314064b40544805018360192c015120152b4a83d0d0064ac05","0x54480501405370064bc054480541c05050064b80544805450050e80645005","0x140015120152e014cc0193f015120149d0143c0193e015120140e014170193d","0x505c051ec0601912014100144a018064480501810019404fd3e4f52f05005","0x644c054480544c050e40644c0544805018650194101512014060c40601912","0x65100544805509430f4c50194301512014060d806508054480544d410f434","0x17019470151201405014dc019460151201502014140194501512015440143a","0x14605005528054480551405330065240544805274050f006520054480507405","0x641c170f552050100f5120f4050183d2740601912014060f4065294952147","0x102014b501902015120140e014b20180e015120149d01420018064480501810","0x11201420014b50182001512014062ec06019120141d01425018ff0743d44805","0x5448052d4050a00609405448053fc050a00601912014b201425018b52c83d","0x64483d2ec250f42a018100151201410014140182501512014250142c018bb","0x50e4060b00544805018c20182801512014060c40601912014060400601953","0x2d0f4c50182d01512014060d8060a805448050b0280f4340182c015120142c","0x1401417018c20151201410014140183101512014c00143a018c0015120142a","0x340e4c2040050d805448050c405330060d005448050f4050f0060e40544805","0x9d34806314054480531405338063140544805018cd01806448050181001836","0xce015120140610406019120140604006334cc0f5540f03a0f5120f4c505010","0x460184301512014410144501841015120140634c0634805448053380510c06","0x1701806448051140535406118450f512014d301448018d301512014433483d","0x9d1f40608c0544805118051380614005448050f4050f00613c05448050f005","0x54015120f44e014da0183a015120143a014140184e3544827512014231404f","0x6388054480515005088061580544805018310180644805018100184901555","0xe7018e901512014e7014390180644805390051b80639ce40f512014e20146c","0xe8018064480517005178061705a0f5120145e3a43d36006178054480515805","0x5184063840544805180053840601912014e801460018603a03d4480516805","0x480141701865015120143a01414018e30151201461014e30186101512014e1","0x671286504005370054480538c053300619c0544805354050f0061280544805","0x17018da015120143a014140186901512014490143a018064480501810018dc","0xda040051b805448051a405330061b00544805354050f006088054480512005","0x39018d70151201406194063600544805018310180644805018100186e1b022","0x3d314061c80544805018360187001512014d73603d0d00635c054480535c05","0x505c06324054480533005050063440544805350050e80635005448051c072","0x7632410014c401512014d1014cc018c6015120143d0143c0187601512014cd","0x6194061e405448050183101806448052740512806019120140604006310c6","0x501836018c1015120147b1e43d0d0061ec05448051ec050e4061ec0544805","0x505c05050062f405448051fc050e8061fc05448053047d0f4c50187d01512","0x112014bd014cc01882015120143d0143c018bf015120150701417018bc01512","0x156050100f5120f4050183d2740601912014060f4062e8822fcbc040052e805","0xe0f5120141d014700181d015120149d015070180644805018100190705c3d","0x11201406040060800555cff015120f502014720181001512014100141401902","0x250f512014b5014b5018b501512014b2014b2018b2015120140e0142001806","0x60a82c0f51201428014b50182801512014062ec06019120142501425018bb","0x50b00630005448050a8050a0060b405448052ec050a006019120142c01425","0xff0146e01806448050181001806560064483d3002d0f42a0182d015120142d","0xc201512014c201439018c20151201406308060c40544805018310180644805","0x3601512014390d03d314060d00544805018360183901512014c20c43d0d006","0x60f005448050500505c060e80544805040050500631405448050d8050e806","0x501810018cd3303c0e810014cd01512014c5014cc018cc015120143d0143c","0x1120f4ce05010274d2018ce01512014ce014ce018ce01512014063340601912","0x51140510c06114054480501841018064480501810018d310c3d564413483d","0x112014d51183d11806354054480512005114061200544805018d30184601512","0x544805138051380612405448050f4050f00615005448051040505c0613805","0x50500608c5013c9d4480538856124540407f018e201512014ff0143901856","0x52f00601912014060400639c05568e4015120f423014bd018d201512014d2","0x517005180063a45c0f5120145a014e80185a01512014060c40601912014e4","0x5448053a00538c063a00544805178051840617805448053a4053840601912","0xe301512014500143c01861015120144f01417018e101512014d20141401860","0x539c050e806019120140604006194e3184e10400519405448051800533006","0x112014500143c018dc015120144f014170186701512014d2014140184a01512","0x51b806019120140604006368693706704005368054480512805330061a405","0x5448051b0050e4061b00544805018650182201512014060c40601912014ff","0x5448051b8d80f4c5018d801512014060d8061b805448051b0220f4340186c","0xd401512014d301417018720151201443014140187001512014d70143a018d7","0x604006324d1350720400532405448051c0053300634405448050f4050f006","0x61d80544805018310180644805038051280601912014200145e0180644805","0x36018c401512014c61d83d0d0063180544805318050e406318054480501867","0x50500630405448051ec050e8061ec0544805310790f4c5018790151201406","0xc1014cc018bd015120143d0143c0187f0151201414014170187d0151201410","0x31018064480527405128060191201406040062f0bd1fc7d040052f00544805","0x822fc3d0d0062080544805208050e406208054480501865018bf0151201406","0x522c050e80622c05448052e8b90f4c5018b901512014060d8062e80544805","0x1120143d0143c01888015120150701417018b60151201417014140188501512","0x3d2740601912014060f4062c0b4220b6040052c0054480521405330062d005","0xe015120149d014200180644805018100190705c3d56c140403d4483d01406","0x6019120141d01425018ff0743d44805408052d4064080544805038052c806","0x50a00601912014b201425018b52c83d44805080052d4060800544805018bb","0x10014140182501512014250142c018bb01512014b5014280182501512014ff","0x112014060c4060191201406040060195c019120f4bb0943d0a8060400544805","0x5448050b0280f4340182c015120142c014390182c0151201406308060a005","0x3101512014c00143a018c0015120142a0b43d314060b40544805018360182a","0x60d005448050f4050f0060e405448050500505c0630805448050400505006","0x544805018cd018064480501810018360d03930810014360151201431014cc","0x6334cc0f55d0f03a0f5120f4c505010274d2018c501512014c5014ce018c5","0x1120140634c0634805448053380510c06338054480501841018064480501810","0x112014d301448018d301512014433483d1180610c0544805104051140610405","0x5448050f4050f00613c05448050f00505c060191201445014d5018461143d","0x3a014140184e3544827512014231404f274bf0182301512014460144e01850","0x501831018064480501810018490155e150054483d13805368060e80544805","0x5390051b80639ce40f512014e20146c018e20151201454014220185601512","0x1120145e3a43d3600617805448051580539c063a4054480539c050e40601912","0x112014e801460018603a03d44805168053a006019120145c0145e0185c1683d","0xe30151201461014e30186101512014e101461018e10151201460014e101806","0x619c0544805354050f00612805448051200505c0619405448050e80505006","0x112014490143a018064480501810018dc19c4a19410014dc01512014e3014cc","0x544805354050f00608805448051200505c0636805448050e805050061a405","0x5018310180644805018100186e1b022368100146e0151201469014cc0186c","0x112014d73603d0d00635c054480535c050e40635c054480501865018d801512","0x544805350050e80635005448051c0720f4c50187201512014060d8061c005","0xc6015120143d0143c0187601512014cd01417018c901512014cc01414018d1","0x52740512806019120140604006310c61d8c90400531005448053440533006","0x61ec05448051ec050e4061ec0544805018650187901512014060c40601912","0x61fc05448053047d0f4c50187d01512014060d80630405448051ec790f434","0x3c018bf015120150701417018bc015120141701414018bd015120147f0143a","0x112014060f4062e8822fcbc040052e805448052f4053300620805448050f405","0x9d015070180644805018100190705c3d57c140403d4483d014060f49d01806","0x1020147201810015120141001414019020383d44805074051c0060740544805","0xb2014b2018b2015120140e0142001806448050181001820015603fc054483d","0x112014062ec06019120142501425018bb0943d448052d4052d4062d40544805","0x5448052ec050a006019120142c014250182a0b03d448050a0052d4060a005","0x64483d3002d0f42a0182d015120142d0142c018c0015120142a014280182d","0x6308060c405448050183101806448053fc051b80601912014060400601961","0x5018360183901512014c20c43d0d0063080544805308050e4063080544805","0x5040050500631405448050d8050e8060d805448050e4340f4c50183401512","0x112014c5014cc018cc015120143d0143c0183c0151201414014170183a01512","0xce014ce018ce015120140633406019120140604006334cc0f03a0400533405","0x64480501810018d310c3d588413483d4483d338140409d348063380544805","0x5114061200544805018d30184601512014450144301845015120140610406","0x50f00615005448051040505c061380544805354460f446018d50151201448","0x5404082018e201512014ff0143901856015120144e0144e01849015120143d","0xe4015120f423014bd018d201512014d201414018231404f27512014e215849","0xe80185a01512014060c40601912014e4014bc018064480501810018e701563","0x51840617805448053a40538406019120145c01460018e91703d4480516805","0x4f01417018e101512014d2014140186001512014e8014e3018e8015120145e","0xe3184e1040051940544805180053300638c0544805140050f0061840544805","0x170186701512014d2014140184a01512014e70143a01806448050181001865","0x6704005368054480512805330061a40544805140050f006370054480513c05","0x650182201512014060c40601912014ff0146e018064480501810018da1a4dc","0x60d8061b805448051b0220f4340186c015120146c014390186c0151201406","0x43014140187001512014d70143a018d7015120146e3603d314063600544805","0x51c0053300634405448050f4050f006350054480534c0505c061c80544805","0x51280601912014200145e018064480501810018c9344d41c810014c901512","0x544805318050e4063180544805018670187601512014060c406019120140e","0x544805310790f4c50187901512014060d8063100544805318760f434018c6","0x7f0151201414014170187d015120141001414018c1015120147b0143a0187b","0x6040062f0bd1fc7d040052f0054480530405330062f405448050f4050f006","0x6208054480501865018bf01512014060c406019120149d0144a0180644805","0xc5018b901512014060d8062e80544805208bf0f43401882015120148201439","0x17018b601512014170141401885015120148b0143a0188b01512014ba2e43d","0xb6040052c0054480521405330062d005448050f4050f006220054480541c05","0x100180e41c3d590170503d4483d0f4060f49d01806448050183d018b02d088","0x14014140181d4083d448053fc051c0063fc05448050400541c060191201406","0x10201420018064480501810018b201565080054483d074051c8060500544805","0xbb01425018282ec3d44805094052d40609405448052d4052c8062d40544805","0x1120142a014250182d0a83d448050b0052d4060b00544805018bb0180644805","0xc001512014c00142c01831015120142d01428018c001512014280142801806","0x310180644805080051b80601912014060400601966019120f4313003d0a806","0x393083d0d0060e405448050e4050e4060e40544805018c2018c20151201406","0x5314050e80631405448050d0360f4c50183601512014060d8060d00544805","0x1120141701417018cc0151201405014dc0183c0151201414014140183a01512","0xd2338cd3303c0500534805448050e805330063380544805274050f00633405","0x14274d2018410151201441014ce01841015120140633406019120140604006","0x6120054480501841018064480501810018461143d59cd310c3d4483d10417","0x3d1180613c054480513805114061380544805018d3018d5015120144801443","0x5050060191201423014d50185408c3d448051400512006140054480513cd5","0x9d0143c018e901512014d3014170185c0151201405014dc0185a0151201443","0x5c168172e8061800544805080050e4063a0054480515005138061780544805","0x100186101568384054483d39c053680639ce4388561241444805180e8178e9","0x112014650146c0186501512014e101422018e301512014060c4060191201406","0x54480538c0539c06368054480519c050e406019120144a0146e018671283d","0x3d44805370053a00601912014690145e018693703d44805088da0f4d801822","0xd701512014d801461018d8015120146e014e101806448051b005180061b86c","0x6350054480515805370061c8054480512405050061c0054480535c0538c06","0x14014760151201470014cc018c901512014e40143c018d101512014e201417","0x1120144901414018c601512014610143a01806448050181001876324d135072","0x544805390050f0061ec05448053880505c061e40544805158053700631005","0x51b8060191201406040061f4c11ec79310140147d01512014c6014cc018c1","0x5448052f4050e4062f40544805018650187f01512014060c4060191201420","0x5448052f0bf0f4c5018bf01512014060d8062f005448052f47f0f434018bd","0x8b0151201405014dc018b9015120144501414018ba01512014820143a01882","0x522005448052e805330062d80544805274050f00621405448051180505c06","0x112015020144a01806448052c80517806019120140604006220b62148b2e414","0x34018b001512014b001439018b0015120140619c062d005448050183101806","0x3a0188e01512014ae28c3d3140628c054480501836018ae01512014b02d03d","0x505c0626c0544805014053700627c05448050500505006240054480523805","0x9b27c14015160151201490014cc01800015120149d0143c0189a0151201417","0x650191701512014060c40601912014100144a018064480501810019160009a","0x60d8064640544805461170f43401918015120151801439019180151201406","0x107014140191c015120151b0143a0191b01512015194683d314064680544805","0x5274050f00645405448050380505c06478054480501405370064740544805","0x601912014060f4064811f4551e4741401520015120151c014cc0191f01512","0x11201410015070180644805018100180e41c3d5a4170503d4483d0f4060f49d","0x1120f41d01472018140151201414014140181d4083d448053fc051c0063fc05","0x112014bb01470018bb015120150201507018064480501810018b20156a08005","0x52d40541c060191201406040060b0055ac28015120f42501472018252d43d","0x10018c20156c0c4054483d0b4051c8060b42a0f512014c001470018c001512","0x50d0052d4060d005448050e4052c8060e405448050a805080060191201406","0x3d448050e8052d4060e80544805018bb01806448050d80509406314360f512","0xce01512014cc01428018cd01512014c50142801806448050f005094063303c","0x60191201406040060196d019120f4ce3343d0a8063340544805334050b006","0x112014060c40601912014200146e01806448050a0051b80601912014310146e","0x544805104d20f434018410151201441014390184101512014063080634805","0x4601512014450143a01845015120144334c3d3140634c05448050183601843","0x6138054480505c0505c063540544805014053700612005448050500505006","0x6040061404f138d512014014500151201446014cc0184f015120149d0143c","0x3d08c170509d3480608c054480508c053380608c0544805018cd0180644805","0xe401443018e4015120140610406019120140604006388560f56e124540f512","0x5170e70f4460185c015120145a014450185a015120140634c0639c0544805","0x1120145401414018064480517805354063a05e0f512014e901448018e901512","0x544805274050f00637005448051240505c0619c0544805014053700612805","0x6c01512014280143901822015120142001439018da01512014e80144e01869","0x6138460051120146e1b02236869370671280e2e4061b805448050c4050e406","0x54480501831018064480501810018d70156f360054483d1940536806194e3","0x644805350051b806344d40f512014720146c0187201512014d80142201870","0xc90f512014c43183d3600631005448051c00539c063180544805344050e406","0x60191201479014600187b1e43d44805324053a00601912014760145e01876","0x140187f015120147d014e30187d01512014c101461018c1015120147b014e1","0x50f0062fc05448051840505c062f0054480538405370062f4054480518005","0x11201406040062e8822fcbc2f414014ba015120147f014cc0188201512014e3","0x8501512014e1014dc0188b015120146001414018b901512014d70143a01806","0x52d005448052e40533006220054480538c050f0062d805448051840505c06","0x112014280146e01806448050c4051b8060191201406040062d0882d88522c14","0x50e4062b8054480501865018b001512014060c40601912014200146e01806","0x8e0f4c50188e01512014060d80628c05448052b8b00f434018ae01512014ae","0x5014dc0189b0151201456014140189f01512014900143a0189001512014a3","0x527c05330064580544805274050f00600005448053880505c062680544805","0x4a0180644805308051780601912014060400645d160009a26c140151701512","0x544805018310180644805080051b80601912014280146e01806448050a805","0x11a01512015194603d0d0064640544805464050e40646405448050188b01918","0x64740544805470050e80647005448054691b0f4c50191b01512014060d806","0x3c0191f015120141701417019150151201405014dc0191e015120141401414","0x501810019214811f4551e0500548405448054740533006480054480527405","0x3101806448052d4051280601912014200146e01806448050b0051780601912","0x1234883d0d00648c054480548c050e40648c054480501879019220151201406","0x5498050e8064980544805491250f4c50192501512014060d8064900544805","0x1120141701417019290151201405014dc019280151201414014140192701512","0x12c4ad2a4a528050054b0054480549c05330064ac0544805274050f0064a805","0x112014060c40601912015020144a01806448052c80517806019120140604006","0x5448054512d0f4340191401512015140143901914015120140619c064b405","0x13e015120153d0143a0193d015120152e4bc3d314064bc0544805018360192e","0x6504054480505c0505c06500054480501405370064fc05448050500505006","0x60400650913505404fc1401542015120153e014cc01913015120149d0143c","0x65100544805018650194301512014060c40601912014100144a0180644805","0xc50194601512014060d8065140544805511430f43401944015120154401439","0xdc019490151201507014140194801512015470143a0194701512015455183d","0x5330065c40544805274050f0065c005448050380505c06528054480501405","0x1120f43d0143d2740601912014060f4065c9715c14a52414015720151201548","0xff01470018ff0151201410015070180644805018100180e41c3d5cc170503d","0x62c8055d020015120f41d01472018140151201414014140181d4083d44805","0x25014b50182501512014b5014b2018b5015120150201420018064480501810","0x1120142c014b50182c01512014062ec0601912014bb01425018282ec3d44805","0x5448050b4050a00630005448050a0050a006019120142a014250182d0a83d","0x64480501810018065d4064483d0c4c00f42a018c001512014c00142c01831","0x3901439018390151201406308063080544805018310180644805080051b806","0x340d83d314060d80544805018360183401512014393083d0d0060e40544805","0x505005050060f0054480501805214060e80544805314050e8063140544805","0x1120143a014cc018ce015120149d0143c018cd015120141701417018cc01512","0x5338061040544805018cd018064480501810018d2338cd3303c0500534805","0x1120140604006118450f57634c430f5120f44105c14274d2018410151201441","0x450184e015120140634c0635405448051200510c0612005448050184101806","0x6150230f512014500144801850015120144f3543d1180613c054480513805","0x521406170054480534c0505c06168054480510c05050060191201423014d5","0x2001439018e801512014540144e0185e015120149d0143c018e90151201406","0xe701488018e7390e21584905112014603a05e3a45c168172d8061800544805","0x5384052d00638c0544805018310180644805018100186101577384054483d","0x11201467014a30180644805128052b80619c4a0f51201465014b00186501512","0x51a405178061a4dc0f512014223683d23806088054480538c0539c0636805","0x5448051b80538406019120146c014600186e1b03d44805370053a00601912","0x7201512014e2014850187001512014d7014e3018d701512014d801461018d8","0x63240544805390050f00634405448051580505c0635005448051240505006","0x5184050e8060191201406040061d8c9344d41c814014760151201470014cc","0x112014560141701879015120144901414018c401512014e201485018c601512","0x7d3047b1e4c4050051f4054480531805330063040544805390050f0061ec05","0x11201406194061fc0544805018310180644805080051b806019120140604006","0x54480501836018bc01512014bd1fc3d0d0062f405448052f4050e4062f405","0x54480501805214062e80544805208050e80620805448052f0bf0f4c5018bf","0xb6015120149d0143c018850151201446014170188b015120144501414018b9","0xb20145e018064480501810018882d88522cb90500522005448052e80533006","0x62c0054480501867018b401512014060c40601912015020144a0180644805","0xc5018a301512014060d8062b805448052c0b40f434018b001512014b001439","0x140189f01512014060148501890015120148e0143a0188e01512014ae28c3d","0x5330060000544805274050f006268054480505c0505c0626c054480505005","0x6448050400512806019120140604006458002689b27c14015160151201490","0x3d0d0064600544805460050e4064600544805018650191701512014060c406","0x50e80646c05448054651a0f4c50191a01512014060d806464054480546117","0xe014170191e0151201507014140191d0151201406014850191c015120151b","0x1154791d050054800544805470053300647c0544805274050f0064540544805","0x604006039070f57805c140f5120f43d0143d2740601912014060f4064811f","0x50500505006075020f512014ff01470018ff0151201410015070180644805","0x540805080060191201406040062c8055e420015120f41d014720181401512","0x52ec05094060a0bb0f51201425014b50182501512014b5014b2018b501512","0x6448050a805094060b42a0f5120142c014b50182c01512014062ec0601912","0x63000544805300050b0060c405448050b4050a00630005448050a0050a006","0x60c40601912014200146e018064480501810018065e8064483d0c4c00f42a","0x50e4c20f43401839015120143901439018390151201406308063080544805","0x112014c50143a018c501512014340d83d314060d80544805018360183401512","0x54480505c0505c06330054480505005050060f0054480501805214060e805","0x6348ce334cc0f014014d2015120143a014cc018ce015120149d0143c018cd","0x170509d34806104054480510405338061040544805018cd018064480501810","0x4301848015120140610406019120140604006118450f57b34c430f5120f441","0xd50f4460184f015120144e014450184e015120140634c06354054480512005","0x601485018e701512014d301417018e401512014430141401850015120144f","0x5080050e4063a4054480514005138061700544805274050f0061680544805","0x3d388052f406388561245408c1444805178e91705a39ce405c900185e01512","0x5448050183101806448053a0052f006019120140604006180055f0e801512","0x6501512014e3014e10180644805184051800638c610f512014e1014e8018e1","0x63700544805124052140619c05448051280538c0612805448051940518406","0xcc0182201512014560143c018da01512014540141701869015120142301414","0x112014600143a0180644805018100186c088da1a4dc050051b0054480519c05","0x5448051500505c0635c054480508c0505006360054480512405214061b805","0x6350721c0d736014014d4015120146e014cc0187201512014560143c01870","0x54480501865018d101512014060c40601912014200146e018064480501810","0xc601512014060d8061d80544805324d10f434018c901512014c901439018c9","0x7b0151201406014850187901512014c40143a018c401512014763183d31406","0x61fc0544805274050f0061f405448051180505c0630405448051140505006","0x52c805178060191201406040062f47f1f4c11ec14014bd0151201479014cc","0x39018bf015120140619c062f00544805018310180644805408051280601912","0x3d314062e80544805018360188201512014bf2f03d0d0062fc05448052fc05","0x5050062140544805018052140622c05448052e4050e8062e40544805208ba","0x8b014cc018b4015120149d0143c01888015120141701417018b60151201414","0x601912014100144a018064480501810018b02d0882d885050052c00544805","0xae0f434018a301512014a301439018a30151201406194062b8054480501831","0x9f0143a0189f015120148e2403d314062400544805018360188e01512014a3","0x50380505c06000054480541c05050062680544805018052140626c0544805","0x117458002681401518015120149b014cc01917015120149d0143c0191601512","0x17d050100f5120f49d0149b0189d015120143d0142001806448050189f01918","0x60380544805040050000641c0544805050052680601912014060400605c05","0x54480501918018064480501810018065f8050191701902015120150701516","0x10201512014ff015160180e015120141701400018ff015120141d015190181d","0x17f2c8054483d408054680608005448050800541c0608005448050380538406","0x11d018bb01512014064700609405448052c80546c060191201406040062d405","0x541c060c405448050140505c06300054480501805050060a0054480509405","0xc00511e018340151201428014390183901512014bb0144f018c20151201420","0x501810018c5015800d8054483d0b405408060b42a0b09d448050d03930831","0x53300547c0633005448050f03a0f5150183c0e83d448050d8050740601912","0x112014cd01520018d2015120142a01417018ce015120142c01414018cd01512","0x2c014140184301512014c50152101806448050181001841348ce2740510405","0x46114d327405118054480510c054800611405448050a80505c0634c0544805","0x5120054880612005448050191801806448052d40517806019120140604006","0x5018050500613c05448051380547c061380544805354200f515018d501512","0x6150231409d01454015120144f01520018230151201405014170185001512","0x6014140181401512014170152301817015120149d0144e01806448050189f","0x505005490062c805448050f4050f00608005448050140505c063fc0544805","0x1020390704112014252d4b2080ff051250182501512014100144f018b501512","0x5448052ec05124060191201406040060a005604bb015120f41d014540181d","0xc00151201507014140182d015120142a015270182a015120142c015260182c","0x50e405448050b4054a0063080544805408050f0060c405448050380505c06","0x112015070141401834015120142801529018064480501810018393083130010","0x5448050d0054a0060e80544805408050f00631405448050380505c060d805","0x54ac060503d0f5120143d0152a01806448050189f0183c0e8c50d8100143c","0x10701428018064480505c050940641c170f51201410014b5018100151201414","0x1022743d0d0064080544805408050e4064080544805038054b0060380544805","0x50140505c06094054480501805050063fc05448050f4054b4060740544805","0x282ec250412e0182c015120141d014e70182801512014ff01514018bb01512","0x60191201406040060b4056082a015120f4b50145c018b52c820275120142c","0x3d4bc0630805448050191801806448050c405178060c4c00f5120142a014e9","0x505c060d8054480508005050060d005448050e4054f4060e40544805308c0","0x60191201406040060e8c50d89d0143a01512014340153e018c501512014b2","0x13e018cd01512014b201417018cc0151201420014140183c015120142d0153f","0x54480504005138060191201414014c0018ce334cc2740533805448050f005","0xb50151201405014dc018b20151201406014140181701512015070152301907","0x60a0054480505c05490062ec0544805274050f00609405448050f40505c06","0x560c2c015120f420014da018203fc1d4080e05112014282ec252d4b205140","0x113018c0015120142d015410182d015120142c014220180644805018100182a","0x505c060e405448054080537006308054480503805050060c4054480530005","0x3930814014c50151201431015420183601512014ff0143c01834015120141d","0x3c015120140e014140183a015120142a01543018064480501810018c50d834","0x633805448053fc050f00633405448050740505c0633005448054080537006","0x3d0d0060f405448050180547406348ce334cc0f014014d2015120143a01542","0x100154401814015120149d014e70181001512014064600627405448050f405","0x9d0f43d4483d0140526c060140544805018050800605c140f40505c0544805","0x17015120143d0140001814015120149d0149a0180644805018100181001584","0x1120140646006019120140604006019850140645c0641c05448050500545806","0x544805408054580605c054480504005000064080544805038054640603805","0xff015120f5070151a0181d015120141d015070181d0151201417014e101907","0xb501512014b20151d018b201512014ff0151b0180644805018100182001586","0x50a0054480509405518062ec05448050740541c0609405448052d40551406","0x1470182c01512014064600601912014200145e018064480501810018282ec3d","0x2d0f40530005448050a805518060b405448050740541c060a805448050b005","0x187050100f5120f49d0149b0189d015120143d0142001806448050189f018c0","0x60380544805040050000641c0544805050052680601912014060400605c05","0x5448050191801806448050181001806620050191701902015120150701516","0x10201512014ff015160180e015120141701400018ff015120141d015190181d","0x1892c8054483d408054680608005448050800541c0608005448050380538406","0x11d018bb01512014060c40609405448052c80546c060191201406040062d405","0x541c060c405448050140505c06300054480501805050060a0054480509405","0xc005148018340151201428014390183901512014bb014e7018c20151201420","0x501810018c50158a0d8054483d0b405324060b42a0b09d448050d03930831","0x5330055280633005448050f03a0f5490183c0e83d448050d8051d80601912","0x112014cd01570018d2015120142a01417018ce015120142c01414018cd01512","0x2c014140184301512014c50157101806448050181001841348ce2740510405","0x46114d327405118054480510c055c00611405448050a80505c0634c0544805","0x5120055c80612005448050191801806448052d40517806019120140604006","0x5018050500613c054480513805528061380544805354200f549018d501512","0x6150231409d01454015120144f01570018230151201405014170185001512","0xdc018b501512014060141401907015120140e015230180e01512014100144e","0x5490060a00544805274050f0062ec05448050f40505c06094054480501405","0xb541d8b0182d0151201417014e70182a0151201414014390182c0151201507","0x310158c300054483d2c805368062c8203fc1d40814448050b42a0b0282ec25","0x544c060e40544805308055040630805448053000508806019120140604006","0xff01417018c5015120141d014dc01836015120150201414018340151201439","0x3a314360500533005448050d005508060f00544805080050f0060e80544805","0x63380544805408050500633405448050c40550c060191201406040063303c","0x1420184301512014200143c0184101512014ff01417018d2015120141d014dc","0xe015230180e01512014100144e018d310c41348ce0500534c054480533405","0x50f40505c06094054480501405370062d40544805018050500641c0544805","0x11201414014390182c01512015070152401828015120149d0143c018bb01512","0x1d40814448050b42a0b0282ec252d50762c060b4054480505c0539c060a805","0x530005088060191201406040060c405634c0015120f4b2014da018b2080ff","0x1120150201414018340151201439015130183901512014c201541018c201512","0x544805080050f0060e805448053fc0505c06314054480507405370060d805","0x550c060191201406040063303c0e8c50d814014cc0151201434015420183c","0xff01417018d2015120141d014dc018ce015120150201414018cd0151201431","0x41348ce0500534c0544805334055080610c0544805080050f0061040544805","0x5448050180505c0627405448050400548c0604005448050f4051380634c43","0x1120141d4080e2758e0181d015120149d015240190201512014050143c0180e","0xff01422018064480501810018200158f3fc054483d41c053680641c170509d","0x50500505c0609405448052d40544c062d405448052c805504062c80544805","0x60b0282ec9d0142c0151201425015420182801512014170143c018bb01512","0x170143c0182d0151201414014170182a015120142001543018064480501810","0x6040054480501841018313002d274050c405448050a805508063000544805","0x1240181d01512014050143c0190201512014060141701814015120141001443","0x1727512014203fc1d40810640060800544805274050e4063fc054480505005","0x112014b201593018064480501810018b5015922c8054483d038056440603907","0x11201428015960182801512014bb0f43d65406019120142501594018bb0943d","0x5448050b00565c060b4054480541c050f0060a8054480505c0505c060b005","0x112014b50159801806448050f405354060191201406040063002d0a89d014c0","0x5448050c40565c060e4054480541c050f006308054480505c0505c060c405","0x505c0627405448050400548c0604005448050f405138060d0393089d01434","0xe275990181d015120149d015240190201512014050143c0180e0151201406","0x64480501810018200159a3fc054483d41c053680641c170509d4480507502","0x609405448052d40544c062d405448052c805504062c805448053fc0508806","0x9d0142c0151201425015420182801512014170143c018bb015120141401417","0x2d0151201414014170182a0151201420015430180644805018100182c0a0bb","0x501841018313002d274050c405448050a80550806300054480505c050f006","0x112014050143c01902015120140601417018140151201410014430181001512","0x203fc1d4081066c060800544805274050e4063fc0544805050054900607405","0x193018064480501810018b50159c2c8054483d03805644060390705c9d44805","0x1960182801512014bb0f43d65406019120142501594018bb0943d448052c805","0x565c060b4054480541c050f0060a8054480505c0505c060b005448050a005","0x19801806448050f405354060191201406040063002d0a89d014c0015120142c","0x565c060e4054480541c050f006308054480505c0505c060c405448052d405","0x10701512014100144e0180644805050051b8060d0393089d014340151201431","0x62d4054480501405370062c80544805018050500605c054480541c0548c06","0x14001828015120141701524018bb015120149d0143c01825015120143d01417","0x2a0159d0b0054483d0800536806080ff0750203814448050a0bb094b52c814","0x544c0630005448050b405504060b405448050b00508806019120140604006","0x1d01417018390151201502014dc018c2015120140e014140183101512014c0","0x340e4c20500531405448050c405508060d805448053fc050f0060d00544805","0x60f0054480503805050060e805448050a80550c0601912014060400631436","0x142018ce01512014ff0143c018cd015120141d01417018cc0151201502014dc","0x505c051b80601912014140146e018d2338cd3303c0500534805448050e805","0xe0151201502015230190201512014100144e018064480541c051b80601912","0x60a005448050f40505c062ec0544805014053700609405448050180505006","0x1120142a0b0282ec25051400182a015120140e015240182c015120149d0143c","0x22018064480501810018c00159e0b4054483d2d405368062d4b2080ff07414","0x5050060e405448053080544c0630805448050c405504060c405448050b405","0xb20143c018c50151201420014170183601512014ff014dc01834015120141d","0x644805018100183c0e8c50d834050050f005448050e405508060e80544805","0x633805448053fc05370063340544805074050500633005448053000550c06","0x140144301512014cc015420184101512014b20143c018d2015120142001417","0x6014140181701512015070159f0190701512014100144e01843104d2338cd","0x5274050f00609405448050f405214062d405448050140505c062c80544805","0x252d4b205da10182c015120141401439018280151201417015a0018bb01512","0x6040060b4056882a015120f42001488018203fc1d4080e051120142c0a0bb","0x11201431015a40183101512014c0015a3018c0015120142a014b40180644805","0x54480507405214060d005448054080505c060e40544805038050500630805","0x60e8c50d8340e4140143a01512014c2015a5018c501512014ff0143c01836","0x10201417018cc015120140e014140183c015120142d015a6018064480501810","0x50f0056940634805448053fc050f006338054480507405214063340544805","0x54483d0f4056a0060f405448050180569c06104d2338cd330140144101512","0x60500544805019aa01806448052740517806019120140604006040056a49d","0x112014100145e018064480501810018066ac050191701817015120141401439","0x1020383d4480505c051b00605c054480541c050e40641c0544805019ac01806","0xd8018b20151201405014e70182001512015020151d0180644805038051b806","0x539c062d405448050191801806448053fc05178063fc1d0f512014b20803d","0x170f51201410015ad018bb0943d014bb01512014b50154401825015120141d","0x25015120143d01485018b5015120140501417018b201512014060141401907","0x60b00544805050050e4060a0054480505c05490062ec0544805274050f006","0x1af0a8054483d0800564406080ff0750203814448050b0282ec252d4b205dae","0x601912014310145e018313003d448050a80564c060191201406040060b405","0x60d00544805308390f5950183901512015073003d11806308054480501918","0x850183a015120150201417018c5015120140e0141401836015120143401596","0xc50500533405448050d80565c0633005448053fc050f0060f0054480507405","0xce015120142d01598018064480541c056c006019120140604006334cc0f03a","0x610c0544805074052140610405448054080505c0634805448050380505006","0x627c06114d310c41348140144501512014ce01597018d301512014ff0143c","0x3d050050189d34806050054480505005338060500544805018cd0180644805","0x140181d0403d44805040056c8060191201406040064080e0f5b141c170f512","0x51b8060191201406040063fc056d0064483d074056cc0605c054480505c05","0xb20151f018b201512014200f43d454060800544805274056d4060191201410","0x52d405480062ec054480541c0505c06094054480505c05050062d40544805","0x170141401806448053fc056d8060191201406040060a0bb0949d0142801512","0x313009d6dc0630805448050f40541c060c4054480541c0505c063000544805","0x60191201406040060d0056e439015120f42d015b80182d0a82c27512014c2","0x644805018100183c015bc0e8054483d314056ec06314360f51201439015ba","0xce01512014cd0403d6f8063340544805019ac018cc015120143a2743d6f406","0x611805448050d80541c0611405448050a80505c0634c05448050b00505006","0x112014d512046114d30511e018d501512014ce014390184801512014cc0144f","0x4e0141d0180644805018100184f015bf138054483d10c054080610c413489d","0x50500612405448051500547c06150054480508c500f515018231403d44805","0xe21589d014e4015120144901520018e20151201441014170185601512014d2","0x170185a01512014d201414018e7015120144f01521018064480501810018e4","0x64480501810018e91705a274053a4054480539c0548006170054480510405","0x3d4540617805448050f00548806019120149d014c00180644805040051b806","0x505c0638405448050b0050500618005448053a00547c063a0054480517836","0x601912014060400638c613849d014e301512014600152001861015120142a","0x2c01414018650151201434015210180644805274053000601912014100146e","0xdc19c4a274053700544805194054800619c05448050a80505c061280544805","0x50f40512806019120149d014c00180644805040051b806019120140604006","0x63680544805368050e4063680544805018650186901512014060c40601912","0x61b805448050886c0f4c50186c01512014060d8060880544805368690f434","0x12001870015120150201417018d7015120140e01414018d8015120146e01521","0x50f4056c0060f4050f51201406015ad018721c0d7274051c8054480536005","0x1120149d0159401806448050189f0189d014052740544805014054900601912","0x9d448054080e0f5c001902015120143d0143c0180e01512014050141701806","0x50740570c060191201406040063fc057081d015120f507015c10190705c14","0x52d4051b806094b50f512014b20146c018b20151201420015c40182001512","0x6448050a0051b8060b0280f512014bb0146c018bb01512014066a80601912","0xc0015120142d0a83d6f8060b405448050b005474060a805448050940547406","0x60191201406040060c405714064483d300056cc063000544805300050e406","0x393089d44805314360f533018c501512014170143c01836015120141401417","0x5448050e805720060191201406040060f00571c3a015120f434015c601834","0x1cb01846114d310c41348ce41d12014cd015ca018cd01512014cc015c9018cc","0x112014d30146e018064480510c05128060191201441015cc018064480534805","0x6354480f512014ce0146c0180644805118051b80601912014450146e01806","0x547406019120144f0146e0185013c3d44805138051b0061380544805019ac","0x500151d0180644805150051b806124540f512014230146c0182301512014d5","0x5124054740601912014e20146e018e43883d44805158051b0061580544805","0x5168e70f5be018e701512014e7014390185a01512014e40151d018e701512","0x480151201448014390185c015120145c014390180644805019cd0185c01512","0x1170180644805120051b8060191201406040063a405738064483d170056cc06","0x5e0f512014480146c01806448053a4056d806019120140604006019cf01406","0x6184e10f512014600146c01860015120140674006019120145e0146e018e8","0x3d6f8061940544805184054740638c05448053a0054740601912014e10146e","0x619c05744064483d128056cc061280544805128050e4061280544805194e3","0x112014c2014170186c01512014060141401806448050189f018064480501810","0xd73606e1b0107480635c05448050400513c0636005448050e4050f0061b805","0x60191201406040061c80574c70015120f4220145401822368693701044805","0x14018c901512014d101527018d101512014d401526018d4015120147001449","0x54a0063100544805368050f00631805448051a40505c061d8054480537005","0x7b01512014720152901806448050181001879310c61d8100147901512014c9","0x61fc0544805368050f0061f405448051a40505c0630405448053700505006","0x6448050189f018064480501810018bd1fc7d30410014bd015120147b01528","0x5019d4018bc01512014060c4060191201410014c0018064480519c056d806","0x112014060d80620805448052fcbc0f434018bf01512014bf01439018bf01512","0x11201406014140188b01512014b901529018b901512014822e83d314062e805","0x54480522c054a00622005448050e4050f0062d805448053080505c0621405","0x50f0054a4060191201410014c0018064480501810018b4220b621410014b4","0x112014390143c018a301512014c201417018ae015120140601414018b001512","0x56d8060191201406040062408e28cae0400524005448052c0054a00623805","0x9b01512014067540627c054480501831018064480504005300060191201431","0x60000544805018360189a015120149b27c3d0d00626c054480526c050e406","0x64600544805018050500645c0544805458054a4064580544805268000f4c5","0x100151b0151201517015280191a01512014170143c01919015120141401417","0x11c01512014ff015290180644805040053000601912014060400646d1a46518","0x6454054480505c050f00647805448050500505c0647405448050180505006","0x11201406014060500544805019d60191f4551e474100151f015120151c01528","0x9d3480605c054480505c053380605c0544805018cd01806448050189f01806","0x5448050f40576006019120140604006075020f5d7039070f5120f41701406","0x1da2c8200f5120f4ff015d9019070151201507014140180644805019cd018ff","0x60400544805080053900609405448052c80576c060191201406040062d405","0x54480501918018064480501810018067740501917018bb0151201425015dc","0xbb015120142c015dc0181001512014b5014e40182c0151201428015de01828","0x11201406040060b4057842a015120f4bb015e00181001512014100503d77c06","0x1701834015120150701414018c0015120142a015e201806448050189f01806","0x1078c060e805448052740539c0631405448053000541c060d8054480503805","0x501810018cc015e40f0054483d0e405170060e4c20c49d448050e8c50d834","0x112014d20145e018d23383d448050f0053a4063340544805040054b40601912","0x4801512014cd015140184601512014c2014170184501512014310141401806","0xd30145c018d310c4127512014d512046114104b80635405448053380539c06","0x51780608c500f5120144e014e90180644805018100184f015e5138054483d","0x51400539c06124054480510c0505c06150054480510405050060191201423","0x14018e2015120144f0153f0180644805018100180679805019170185601512","0xe4274051680544805388054f80639c054480510c0505c06390054480510405","0x140185c01512014cc0153f01806448050400579c06019120140604006168e7","0xe9274053a00544805170054f80617805448053080505c063a405448050c405","0x10015e701806448050b40517806019120140627c060191201406040063a05e","0x1120149d014e701849015120140e01417018540151201507014140180644805","0x544805384054f4063840544805180560f52f0186001512014064600615805","0x4a01512014610153e01865015120144901417018e301512014540141401861","0x64480527405180060191201414015e80180644805018100184a194e327405","0xdc01439018dc01512014061940619c05448050183101806448050f4057a406","0x693683d314063680544805018360186901512014dc19c3d0d0063700544805","0x50740505c061b8054480540805050061b00544805088054fc060880544805","0x603805448050f40505c0635cd81b89d014d7015120146c0153e018d801512","0x54483d41c057180641c170509d448054080e0f53301902015120149d0143c","0x5448050800572406080054480507405720060191201406040063fc057a81d","0x572c0601912014b50146e0182d0a82c0a0bb094b541d12014b2015ca018b2","0x6448050b4051b806019120142a0146e01806448052ec05730060191201425","0x60e805448050500505c06314054480501405370060d805448050180505006","0x107018cd015120142c01439018cc0151201410015240183c01512014170143c","0x60d039308313001444805338cd3303c0e8c50d9077ac0633805448050a005","0x610c0544805348052d006019120140604006104057b0d2015120f43401488","0x31018064480534c0517806019120140604006114057b4d3015120f443015a8","0x481183d0d0061200544805120050e4061200544805019ee018460151201406","0x513c0550c0613c05448053544e0f4c50184e01512014060d8063540544805","0x112014c201417018540151201431014dc0182301512014c0014140185001512","0xe21584915023050053880544805140055080615805448050e4050f00612405","0x539005504063900544805019ef01806448051140517806019120140604006","0x11201431014dc0185c01512014c0014140185a01512014e701513018e701512","0x54480516805508063a005448050e4050f00617805448053080505c063a405","0x50500638405448051040550c06019120140604006180e8178e91701401460","0x390143c0186501512014c201417018e30151201431014dc0186101512014c0","0x64480501810018671286538c610500519c054480538405508061280544805","0xdc01869015120140601414018dc01512014ff0154301806448050400565006","0x5508061b0054480505c050f00608805448050500505c06368054480501405","0x14015120140633406019120140627c061b86c088da1a4140146e01512014dc","0x10019020383d7c10705c3d4483d050050189d3480605005448050500533806","0x1d015b3018170151201417014140181d0403d44805040056c8060191201406","0x1120149d015f20180644805040051b8060191201406040063fc057c4064483d","0x1120141701414018b501512014b20154a018b201512014200f43d5240608005","0x10018282ec25274050a005448052d4055c0062ec054480541c0505c0609405","0x1120142d014700182d015120143d0150701806448053fc056d8060191201406","0xc02743d0d0060191201406040060c4057ccc0015120f42a014720182a0b03d","0x505c05050060d005448050e4100f5be0183901512014066b0063080544805","0x112014c2014e7018cd015120142c01507018cc0151201507014170183c01512","0x60e8c50d89d44805348ce334cc0f0145200634805448050d0050e40633805","0x4534c3d44805104051d80601912014060400610c057d041015120f43a014c9","0xd50151201436014140184801512014460154a01846015120144534c3d52406","0x5018100184f138d52740513c0544805120055c00613805448053140505c06","0x5448053140505c0608c05448050d80505006140054480510c055c40601912","0x5040051b8060191201406040061245408c9d0144901512014500157001854","0x5448051582c0f549018560151201431015720180644805274051800601912","0x5a015120150701417018e7015120141701414018e401512014e20154a018e2","0x112014100146e0180644805018100185c168e7274051700544805390055c006","0x6194063a405448050183101806448050f40512806019120149d0146001806","0x501836018e8015120145e3a43d0d0061780544805178050e4061780544805","0x503805050061840544805384055c40638405448053a0600f4c50186001512","0x61286538c9d0144a01512014610157001865015120150201417018e301512","0x1401902015120140e014e1018064480541c0518006039070f51201417014e8","0x50f0060a005448050f40505c062ec05448050140537006094054480501805","0x102015070182d0151201414014390182a0151201410015240182c015120149d","0x5220062d4b2080ff07414448053002d0a82c0a0bb095077ac063000544805","0x56a0060e405448050c4052d006019120140604006308057d431015120f4b5","0x5019aa01806448050d005178060191201406040060d8057d834015120f439","0x5e018064480501810018067dc05019170183a01512014c501439018c501512","0x50e805504060e805448050f0050e4060f00544805019ef01806448050d805","0x112014ff014dc018ce015120141d01414018cd01512014cc01513018cc01512","0x544805334055080610c05448052c8050f00610405448050800505c0634805","0x50500611405448053080550c0601912014060400634c43104d233814014d3","0xb20143c018d50151201420014170184801512014ff014dc01846015120141d","0x1120143d015f80184f138d5120460500513c054480511405508061380544805","0x544805274057e4060380544805014050f00641c05448050180505c0627405","0x63fc057ec1d015120f417014da0181705010275120150203907275fa01902","0xb201513018b201512014200154101820015120141d01422018064480501810","0x52d405508062ec0544805050050f00609405448050400505c062d40544805","0x505c060b005448053fc0550c060191201406040060a0bb0949d0142801512","0x2d0a89d014c0015120142c015420182d01512014140143c0182a0151201410","0x544805014050f00640805448050180505c06050100f5120143d015fc018c0","0xe015fe0180e41c1727512014ff07502275fd018ff0151201414015240181d","0x5040057e006019120142001600018064480501810018b2015ff080054483d","0x541c050f0060b4054480505c0505c062ec250f512014b501601018b501512","0xda0182a0b02827512014313002d275fa0183101512014bb015f9018c001512","0x2030183401512014c2014220180644805018100183901602308054483d0a805","0x50f00633405448050a00505c0631405448050940510c060d805448050d005","0xcd0420501841015120143601604018d201512014c501524018ce015120142c","0x112014060400634c0581843015120f4cc01591018cc0f03a2751201441348ce","0x4f015120143a0141701806448051180517806118450f512014430159301806","0x61500544805274050e40608c0544805114054900614005448050f0050f006","0x100185601607124054483d1380564406138d51209d44805150231404f04135","0x112014064600601912014e40145e018e43883d448051240564c060191201406","0x11201448014170185c015120145a016090185a01512014e73883d8200639c05","0x10018e8178e9274053a0054480517005828061780544805354050f0063a405","0x5354050f00638405448051200505c0618005448051580582c060191201406","0x51b80601912014060400638c613849d014e301512014600160a0186101512","0x50f0050f00612805448050e80505c06194054480534c0582c06019120149d","0x51b806019120140604006370671289d014dc01512014650160a0186701512","0x11201428014170186901512014390160b01806448050940583006019120149d","0x100186c088da274051b005448051a4058280608805448050b0050f00636805","0x5448052c80582c060191201410015940180644805274051b8060191201406","0x70015120146e0160a018d701512015070143c018d80151201417014170186e","0x50143c019070151201406014170189d015120143d015f80187035cd827405","0x605c140409d448054080e41c9d7e8064080544805274057e4060380544805","0x6080054480507405088060191201406040063fc058341d015120f417014da","0x3c01825015120141001417018b501512014b201513018b2015120142001541","0x64480501810018282ec25274050a005448052d405508062ec054480505005","0x60b40544805050050f0060a805448050400505c060b005448053fc0550c06","0x5014050f00641c05448050180505c063002d0a89d014c0015120142c01542","0x10203907041900181d015120149d0143901902015120143d015240180e01512","0x601912014060400608005838ff015120f417015910181705010275120141d","0x3d8200609405448050191801806448052d405178062d4b20f512014ff01593","0x50f0060b005448050400505c060a005448052ec05824062ec0544805094b2","0x60191201406040060b42a0b09d0142d01512014280160a0182a0151201414","0x20a018c201512014140143c01831015120141001417018c001512014200160b","0x501405650060f4050f51201406015ad0183930831274050e4054480530005","0x5050056c80605c054480501a0f0189d0140527405448050f4056800601912","0x107015b3019070151201507014390190701512014170383d6f806038140f512","0x11201410015b00180644805050051b80601912014060400640805840064483d","0x608005448053fc0568c063fc0544805074058440607405448050191801806","0x8501825015120140501417018b5015120140601414018b20151201420015a4","0xb5050050b005448052c805694060a00544805274050f0062ec05448050f405","0x2a0151201410015340180644805408056d8060191201406040060b0282ec25","0x631405448050f405214060d805448050140505c060d005448050180505006","0x213018cc0151201414014390183c015120142a016120183a015120149d0143c","0x5850cd015120f4390148801839308313002d05112014cc0f03a314360d017","0x1a40184101512014d2015a3018d201512014cd014b4018064480501810018ce","0x52140611405448053000505c0634c05448050b4050500610c054480510405","0x4534c14014d50151201443015a50184801512014c20143c018460151201431","0x4f015120142d014140184e01512014ce015a6018064480501810018d512046","0x61500544805308050f00608c05448050c4052140614005448053000505c06","0x170144501817015120140634c061245408c5013c1401449015120144e015a5","0x1120140501417018b50151201406014140180e01512014068540641c0544805","0x54480541c05680060a00544805274050f0062ec05448050f4052140609405","0x203fc1d40814448050a82c0a0bb094b505e160182a015120140e014390182c","0x6448050b40586406019120140604006300058602d015120f4b201617018b2","0x6314054480504005490060d80544805080050f0060d005448050740505c06","0x3d0e405644060e4c20c49d448050e8c50d834041350183a015120141401439","0xce0145e018ce3343d448050f00564c06019120140604006330058683c01512","0x11201441016090184101512014d23343d820063480544805019180180644805","0x5448053fc052140611405448050c40505c0634c0544805408050500610c05","0x6354481184534c14014d501512014430160a0184801512014c20143c01846","0x31014170184f0151201502014140184e01512014cc0160b018064480501810","0x513805828061500544805308050f00608c05448053fc05214061400544805","0x1940180644805050051b8060191201406040061245408c5013c140144901512","0x1d01417018e20151201502014140185601512014c00160b018064480504005","0x515805828061680544805080050f00639c05448053fc05214063900544805","0x605c054480501a1b01810015120140635c061705a39ce4388140145c01512","0x1120143d015070181d01512014060141401806448050189f018064480501805","0x60800587814015120f5020161d019020390727512014ff0743d870063fc05","0x3d87c062d4b20f512014250147001825015120140e01507018064480501810","0x14018064480501810018bb01620274054483d2d4051c806050054480505017","0x3d350060c405448052c80541c0630005448050140505c060b4054480541c05","0x54483d0a805324060a82c0a09d448050c4c00b49d34406274054480527410","0x1120f436014c6018360d03d44805308051d8060191201406040060e405884c2","0x3c016240183c01512014c527414276230180644805018100183a0162231405","0x2801414018ce01512014cd01626018cd01512014cc0d03d894063300544805","0x43104d22740510c0544805338054c80610405448050b00505c063480544805","0x50e80589c06019120149d0146e01806448050500572c06019120140604006","0x50a0050500611805448051140589806114054480534c340f625018d301512","0x6138d51209d0144e015120144601532018d5015120142c014170184801512","0x112014390162801806448050500572c06019120149d0146e018064480501810","0x54480513c054c80608c05448050b00505c0614005448050a0050500613c05","0x112014100147b01806448050500572c06019120140604006150231409d01454","0x54480515805898061580544805124b20f6250184901512014bb0162701806","0x5a01512014e201532018e7015120140501417018e4015120150701414018e2","0x64480505c058a40601912014100147b0180644805018100185a39ce427405","0x5e01512014e901626018e9015120145c0383d8940617005448050800589c06","0x53840544805178054c80618005448050140505c063a0054480541c0505006","0x170503d8a80605c0544805014050f00605005448050180505c06384603a09d","0x22d0180644805018100180e0162c41c054483d040058ac060409d0f49d44805","0xb52c8203fc1444805074058bc060740544805408058b806408054480541c05","0x51b80601912014b5015cb0180644805080058c40601912014ff0163001825","0x50f40505c060a005448052ec058cc062ec05448052c8058c8060191201425","0x60b42a0b09d0142d0151201428016340182a015120149d0143c0182c01512","0x9d0143c01831015120143d01417018c0015120140e01635018064480501810","0x140151201406014170183930831274050e40544805300058d0063080544805","0x1120f4100162b018102743d27512014170503d8a80605c0544805014050f006","0x112015020162e0190201512015070162d0180644805018100180e0163641c05","0xb2015cb01806448053fc058c006094b52c8203fc1444805074058bc0607405","0xbb0151201420016370180644805094051b80601912014b5015cb0180644805","0x60a80544805274050f0060b005448050f40505c060a005448052ec054c406","0x544805038058e4060191201406040060b42a0b09d0142d015120142801638","0x3901512014c001638018c2015120149d0143c01831015120143d01417018c0","0x5448050180505006040054480501a3a01806448050189f018393083127405","0x20015120149d0144f018ff015120143d0143c0181d01512014050141701902","0x23d0180e41c1705010448052c8203fc1d408148f0062c80544805040058ec06","0x2c0a0bb27512014b50163f018064480501810018250163e2d4054483d03805","0x549c060a805448050a00549806019120142c0145e01806448052ec0530006","0x1070143c01831015120141701417018c00151201414014140182d015120142a","0x60191201406040060e4c20c4c0040050e405448050b4054a0063080544805","0x3c018c50151201417014170183601512014140141401834015120142501529","0x1120140627c060f03a31436040050f005448050d0054a0060e8054480541c05","0x5448050500508006050054480504005900060403d0f5120143d0153001806","0x64480503805094064080e0f51201507014b5019070151201417014b201817","0x63fc05448053fc050e4063fc0544805074054b0060740544805408050a006","0x60a0054480501805050062c805448050f4059000608005448053fc9d0f434","0x2410182d0151201420014e70182a01512014b2015070182c015120140501417","0x6040060c405908c0015120f4bb0145c018bb094b5275120142d0a82c0a010","0x340153d0183401512014393083d4bc060e4c20f512014c0014e90180644805","0x50d8054f8060e805448050940505c0631405448052d405050060d80544805","0x50500633005448050c4054fc060191201406040060f03a3149d0143c01512","0xce3349d014d201512014cc0153e018ce015120142501417018cd01512014b5","0x544805038052c806038054480541c050800641c170f5120141701530018d2","0x6080054480501a43018064480507405094063fc1d0f51201502014b501902","0x280182501512014ff0142801806448052c805094062d4b20f51201420014b5","0x601a44019120f4bb0943d0a8060940544805094050b0062ec05448052d405","0x11201410015940180644805050051b80601912014170144a018064480501810","0x60a8054480501805050060b005448050a005914060a005448050191801806","0xa301831015120149d0143c018c0015120143d014170182d0151201405014dc","0x544805040057e00601912014060400601a460140645c0630805448050b005","0xcc0151201439015f90183c015120149d0143c0183a015120143d0141701839","0x10018ce01647334054483d3140536806314360d09d448053303c0e89d7e806","0x51040508006104170f5120141701530018d201512014062ec060191201406","0x112014d20142c01848015120144301400018460151201406014140184301512","0x613c059284e015120f445016490184534c3d44805354481189d9200635405","0x501a4c0182301512014500151b01850015120144e0164b018064480501810","0x1120144901400018e401512014d301414018490151201417014200185401512","0x2301439018e21583d44805168e73909d920061680544805150050b00639c05","0x5c0164b018064480501810018e90164d170054483d388059240608c0544805","0x508c0547406180054480533405088063a005448051780546c061780544805","0x11201405014dc018670151201456014140186101512014e80151d018e101512","0x544805384050e4063680544805180050e4061a40544805050050e40637005","0x61286538c9d448051b022368693706705e4e0186c01512014610143901822","0x3c018c00151201434014170182d0151201465014dc0182a01512014e301414","0x5690061b805448053080568c0630805448051280528c060c405448050d805","0xc00141701870015120142d014dc018d7015120142a01414018d8015120146e","0x721c0d7050053440544805360056940635005448050c4050f0061c80544805","0x51b80601912014230146e01806448053340593c06019120140604006344d4","0x501405370061d80544805158050500632405448053a405698060191201414","0x112014c9015a50187901512014360143c018c4015120143401417018c601512","0x51b80601912014cd0164f0180644805018100187b1e4c431876050051ec05","0x112014d301414018c1015120144f015a6018064480505c05128060191201414","0x5448050d8050f0062f405448050d00505c061fc054480501405370061f405","0x5128060191201406040062fcbc2f47f1f414014bf01512014c1015a5018bc","0x11201406014140188201512014ce015a60180644805050051b8060191201417","0x5448050d8050f00622c05448050d00505c062e4054480501405370062e805","0x25001806448050f405830062d88522cb92e814014b60151201482015a501885","0x5050050b0060500544805018bb01810015120149d016510189d0151201406","0x2540390705c9d4483d040140140604253018100151201410016520181401512","0x54480505c0505c06080054480503805954060191201406040063fc1d4089d","0x100180695c050191701825015120142001656018b501512015070143c018b2","0x5074050f0062c805448054080505c062ec05448053fc05960060191201406","0x1120142c0165a0182c0151201425016590182501512014bb01656018b501512","0x1120142a014220180644805018100182d0165b0a8054483d0a005368060a005","0x5448052c80505c0630805448050c40544c060c40544805300055040630005","0x6040060d8340e49d0143601512014c2015420183401512014b50143c01839","0x112014b50143c0183a01512014b201417018c5015120142d015430180644805","0x505c06019120143d01594018cc0f03a27405330054480531405508060f005","0x6050102749d4480541c170f5c00190701512014050143c018170151201406","0x62c805448052740505c06019120140604006408059700e015120f414015c1","0x54483d0800570406080ff0749d448052d4b20f65d018b501512014100143c","0x3d448050a00597c060a005448050940570c060191201406040062ec0597825","0xc0015120142d015c40182d015120142a0166001806448050b00572c060a82c","0x601912014c2015cb018393083d448050c40597c060c405448050380570c06","0x60e8c50f512014c00146c018360151201434015c401834015120143901660","0x547406019120143c0146e018cc0f03d448050d8051b00601912014c50146e","0x50e4063480544805338cd0f5be018ce01512014cc0151d018cd015120143a","0x5019180180644805018100184101661019120f4d2015b3018d201512014d2","0x1120141d014170184501512014d301663018d30151201443016620184301512","0x10018d512046274053540544805114059900612005448053fc050f00611805","0x4f0151201406994061380544805018310180644805104056d8060191201406","0x608c05448050183601850015120144f1383d0d00613c054480513c050e406","0x615805448050740505c06124054480515005998061500544805140230f4c5","0x1120140604006390e21589d014e4015120144901664018e201512014ff0143c","0x616805448050740505c0639c05448052ec0599806019120140e0166701806","0x11201406040063a45c1689d014e901512014e7016640185c01512014ff0143c","0x6001512014100143c018e8015120149d014170185e01512015020166601806","0x140166801814015120149d01604018e1180e82740538405448051780599006","0x544805018d301907015120141701443018170151201406104060400544805","0x544805040059a4060740544805409070f44601902015120140e014450180e","0x28015120141d0144e018bb01512014050143c01825015120140601417018ff","0xb5014bd018b52c820275120142c0a0bb094109ac060b005448053fc059a806","0x1120140646006019120142a014bc0180644805018100182d0166c0a8054483d","0x1120142001417018c20151201431016090183101512014c00f43d8200630005","0x10018360d039274050d8054480530805828060d005448052c8050f0060e405","0x1120142001417018c5015120142d0160b01806448050f405650060191201406","0x1f8018cc0f03a27405330054480531405828060f005448052c8050f0060e805","0x57e4064080544805014050f00603805448050180505c0604005448050f405","0x109b4063fc05448053fc050e4063fc9d0f5120149d015b20181d0151201410","0x501810018b20166f080054483d41c059b80641c170509d448053fc1d4080e","0x544805274059c40601912014250145e018252d43d44805080059c00601912","0x3101512014170143c018c00151201414014170182801512014b501443018bb","0x1120143930831300109cc060e405448052ec059c80630805448050a00549006","0x340159301806448050181001836016740d0054483d0b405644060b42a0b09d","0x50f0c50f6080183c015120140646006019120143a0145e0183a3143d44805","0x1120142a0143c018ce015120142c01417018cd01512014cc01609018cc01512","0x360160b01806448050181001841348ce274051040544805334058280634805","0x510c058280611405448050a8050f00634c05448050b00505c0610c0544805","0xb20160b0180644805274051b8060191201406040061184534c9d0144601512","0x51200582806138054480505c050f00635405448050500505c061200544805","0x607405448050f405214064080544805018050500613c4e3549d0144f01512","0x9d44805080ff075020427501820015120141401439018ff015120141001612","0x544805274050f0060a005448050140505c062c80544805018bb0180e41c17","0x50b42a0b028042770182d015120140e016760182a01512014b20142c0182c","0xc001488018c00151201431016790183101512014bb01678018bb094b527512","0x34015a30183401512014c2014b4018064480501810018390167a308054483d","0x52d40505c060e8054480505c050500631405448050d805690060d80544805","0x112014c5015a5018cd01512014250143c018cc0151201507014850183c01512","0x14018d20151201439015a6018064480501810018ce334cc0f03a0500533805","0x50f00634c054480541c052140610c05448052d40505c06104054480505c05","0x11201406460061184534c43104140144601512014d2015a5018450151201425","0x54480501805050060380544805040054d00641c054480505c058440605c05","0x28015120149d0143c018bb015120143d0148501825015120140501417018b5","0x60b4054480541c0528c060a80544805050050e4060b005448050380584806","0xc0015120f4b20167c018b2080ff07502051120142d0a82c0a0bb094b541e7b","0x6448050e405178060e4c20f512014c00167e018064480501810018310167d","0x631405448050d0360f67f0183601512014c20144501834015120140646006","0x85018cc015120141d014170183c0151201502014140183a01512014c501680","0x3c0500534805448050e805a04063380544805080050f00633405448053fc05","0x544805408050500610405448050c405a0806019120140604006348ce334cc","0x4601512014200143c0184501512014ff01485018d3015120141d0141701843","0x7001810015120140501507018481184534c4305005120054480510405a0406","0x601912014060400605c05a0c14015120f49d014720189d0f43d4480504005","0x54480503805a180601912014060400640805a140e41c3d4483d050060f684","0xb2015120141d0168701820015120143d01507018ff0151201507014140181d","0x5448052d405a20062d4054480501918018064480501810018b2080ff27405","0x2c01512014250168701828015120143d01507018bb01512015020141401825","0x11201406014140182a0151201417016880180644805018100182c0a0bb27405","0x289018313002d274050c405448050a805a1c0630005448050f40541c060b405","0x504005a2c0601912014060400641c170509da28102743d275120f4050183d","0x1120140e0168c0181d015120149d0143c01902015120143d014170180e01512","0x505c06080054480541c05a380601912014060400601a8d0140645c063fc05","0xff0168f018ff01512014200168c0181d01512014170143c019020151201414","0x10018bb01691094054483d2c8058ac062c805448052d405a40062d40544805","0x50b0054e8060b005448050a005a48060a00544805094058b4060191201406","0x1120142a01693018c0015120141d0143c0182d0151201502014170182a01512","0x10201417018c201512014bb01694018064480501810018313002d274050c405","0x360d039274050d8054480530805a4c060d00544805074050f0060e40544805","0x6274d2018140151201414014ce01814015120140633406019120140627c06","0x140180644805019cd018064480501810019020383da550705c3d4483d05005","0x601912014060400608005a5cff0743d4483d27405a580605c054480505c05","0x29901825015120141d0144f018b501512014b201624018b201512014ff01698","0x2801512014064600601912014060400601a9a0140645c062ec05448052d405","0x62ec05448050b005a640609405448050800513c060b005448050a00589c06","0x60e4054480541c0505c060191201406040060b405a6c2a015120f4bb015bb","0xc027512014360d0392769d01836015120142a0169c01834015120143d0143c","0x6448050189f0180644805018100183a0169f314054483d30805a780630831","0x43015120141701414018cc015120143c0403da84060f0054480531405a8006","0x611805448050940513c0611405448050c4050f00634c05448053000505c06","0x58f406104d2338cd04112014481184534c430523c0184801512014cc0163b","0x608c5013c9d44805354058fc0601912014060400613805a88d5015120f441","0x5601512014cd01414018490151201454016a40185401512014231404f276a3","0x539c054480512405a94063900544805348050f00638805448053380505c06","0x112014cd014140185a015120144e016a6018064480501810018e7390e215810","0x54480516805a94061780544805348050f0063a405448053380505c0617005","0x11201425014c001806448050189f018064480501810018e8178e917010014e8","0x6384054480505c050500618005448050e805a98060191201410014e201806","0x10014650151201460016a5018e301512014310143c0186101512014c001417","0x11801806448050b40517806019120140627c06019120140604006194e3184e1","0x14018dc0151201467016a401867015120144a04025276a30184a0151201406","0x5a940608805448050f4050f006368054480541c0505c061a4054480505c05","0x6019120149d014c00180644805018100186c088da1a4100146c01512014dc","0x5360050e4063600544805018650186e01512014060c4060191201410014e2","0x535c700f4c50187001512014060d80635c05448053606e0f434018d801512","0x1120150201417018d1015120140e01414018d40151201472016a60187201512","0x631876324d104005318054480535005a94061d805448050f4050f00632405","0x50189d34806040054480504005338060400544805018cd01806448050189f","0x640805448050f40508006019120140604006039070f6a705c140f5120f410","0x20016a83fc1d0f5120f5020149b018140151201414014140180644805019cd","0x5458062d4054480507405000062c805448053fc0526806019120140604006","0x62ec05448050191801806448050181001806aa405019170182501512014b2","0x11a01825015120142801516018b50151201420014000182801512014bb01519","0x2c0151b01806448050189f0180644805018100182a016aa0b0054483d09405","0x393083d360060e405448052740539c0630805448050b4050e4060b40544805","0x505005050060d005448052d4053840601912014310145e018313003d44805","0x112014c0014e7018cd015120143401507018cc0151201417014170183c01512","0x5aacd2015120f43a0145c0183a3143627512014ce334cc0f0109040633805","0x14018064480534c051780634c430f512014d2014e901806448050181001841","0x645c06120054480510c0539c0611805448053140505c0611405448050d805","0x4e015120143601414018d501512014410153f01806448050181001806ab005","0x5018100185013c4e274051400544805354054f80613c05448053140505c06","0x50500601912014b5016ad01806448050a80517806019120140627c0601912","0x50191801848015120149d014e701846015120141701417018450151201414","0x511405050061240544805150054f406150054480508c480f52f0182301512","0x6390e21589d014e401512014490153e018e20151201446014170185601512","0x5448050183101806448050f40512806019120149d01460018064480501810","0x5c015120145a39c3d0d0061680544805168050e406168054480501865018e7","0x63a00544805178054fc061780544805170e90f4c5018e901512014060d806","0x9d0146101512014e80153e018e1015120140e0141701860015120150701414","0x2b001806448050181001814016af0409d0f5120f43d01406276ae0186138460","0x5ac8060380544805274050500641c054480505c05ac40605c054480504005","0x6acc06074054480501831018064480501810019020383d015020151201507","0x5018360182001512014ff0743d0d0063fc05448053fc050e4063fc0544805","0x5050050500609405448052d405ad0062d40544805080b20f4c5018b201512","0x605c140f51201414015b2018282ec3d014280151201425016b2018bb01512","0x51b80601912014140146e01806448050181001907016b5019120f417015b3","0xe015120140646006019120149d0146e0180644805040051b806019120143d","0x63fc054480501405370060740544805018050500640805448050380591406","0x64480541c056d806019120140604006080ff0749d014200151201502014a3","0xb501512014b20943d6f806094140f51201414015b2018b20151201406ad806","0x60191201406040062ec05adc064483d2d4056cc062d405448052d4050e406","0x5274051b80601912014100146e01806448050f4051b80601912014140146e","0x2a0151201406014140182c0151201428016450182801512014064600601912","0x501810018c00b42a2740530005448050b00528c060b405448050140537006","0x390403d44805040056c8060c4054480501ab601806448052ec056d80601912","0x2b8019120f4c2015b3018c201512014c201439018c201512014310e43d6f806","0x51b806019120143d0146e0180644805050051b8060191201406040060d005","0x5448050d805914060d80544805019180180644805274051b8060191201410","0xcc01512014c5014a30183c0151201405014dc0183a015120140601414018c5","0x1120f49d0183dae4060191201434015b6018064480501810018cc0f03a27405","0x533805af006338054480533805aec0601912014060400634805ae8ce3343d","0x46016bd114d30f5120f4433343dae40610c100f51201410015b20184101512","0x6af806120054480511405af006114054480511405aec06019120140604006","0x1120144e01439018d501512014d5014390184e0151201406afc063540544805","0x50181001806b044f015120f44e3543db000634c054480534c050500613805","0x5448050140537006140054480513c05af00613c054480513c05aec0601912","0x112014e215849276c3018e2015120141401439018560151201448016c201849","0x11201441016c6018064480501810018e4016c5019120f454016c40185408c3d","0x6460060191201450016c601806448050f4051b80601912014100146e01806","0x508c0537006170054480534c0505006168054480539c059140639c0544805","0x5b1c06019120140604006178e91709d0145e015120145a014a3018e901512","0x50016c2018e30151201423014dc0180644805180051b806180e80f512014e4","0xdc018613843d448051286538c9db0c0612805448050f4050e4061940544805","0x9db0c060880544805040050e406368054480510405b08061a4054480538405","0x6e015120146e016c20186e1843d4480518405b2006370670f5120142236869","0x5448053606e0f6c9018d801512014d8016c2018d83703d4480537005b2006","0x1001806b2c0501917018064480501810018d7016ca019120f46c016c40186c","0x53a0056c80601912014720146e018721c03d4480535c05b1c060191201406","0xd4015b3018d401512014d401439018d401512014d11c03d6f806344e80f512","0x112014dc016c601806448053a0051b80601912014060400632405b30064483d","0x14018c6015120147601611018760151201406460060191201461016c601806","0xc4274051ec05448053180528c061e4054480519c0537006310054480534c05","0x2c20187d0151201461016c20180644805324056d8060191201406040061ec79","0xbd016ce019120f4c1016c4018c1015120147f1f43db34061fc054480537005","0x6448050181001806b3c050191701806448053a0051b806019120140604006","0x8201512014e82f03d6f80601912014bf0146e018bf2f03d448052f405b1c06","0x60191201406040062e805b40064483d208056cc062080544805208050e406","0x537006214054480534c050500622c05448052e405844062e4054480501918","0x6019120140604006220b62149d01488015120148b014a3018b60151201467","0xd301414018b001512014b401645018b401512014064600601912014ba015b6","0x8e28cae2740523805448052c00528c0628c054480519c05370062b80544805","0x50f4051b80601912014100146e018064480510405b1806019120140604006","0x245018900151201406460060191201448016c60180644805050051b80601912","0x528c062680544805014053700626c054480534c050500627c054480524005","0x2c60180644805050051b8060191201406040060009a26c9d01400015120149f","0x5448050191801806448050f4051b80601912014100146e018064480510405","0x1190151201405014dc019180151201446014140191701512015160164501916","0x112014140146e0180644805018100191a4651827405468054480545c0528c06","0x59140646c0544805019180180644805040051b806019120143d0146e01806","0x11c014a30191e0151201405014dc0191d01512014d2014140191c015120151b","0x11201406040060f405b4805015120f406016d1019154791d274054540544805","0x1401512014100154201810015120149d015130189d01512014050154101806","0x107015120143d05c3d3140605c0544805018360180644805018100181401405","0x1120140601417019020140540805448050380550806038054480541c0550c06","0x100162b018102743d27512014170503d8a80605c0544805014050f00605005","0x1020162e0190201512015070162d0180644805018100180e016d341c054483d","0x23101806448053fc058c006094b52c8203fc1444805074058bc060740544805","0x112014b5016320180644805094051b80601912014b2015cb018064480508005","0x544805274050f0060b005448050f40505c060a005448052ec058cc062ec05","0x5038058d4060191201406040060b42a0b09d0142d0151201428016340182a","0x112014c001634018c2015120149d0143c01831015120143d01417018c001512","0x50143d0151201405016d5018050151201406016d40183930831274050e405","0x605c054480501831018100151201414016d601814015120149d0166a0183d","0x59a806019120140e016d7019020383d44805040054f00641c054480501831","0xb2276d8018250151201507014e7018b50151201417014e7018b20151201502","0x60a0bb0f5120141d014e801806448050800517806080ff0749d44805094b5","0x600182d0a83d448053fc053a0060b005448050a0053840601912014bb01460","0xc0015070182c015120142c01507018c0015120142d014e101806448050a805","0x501810018360d039276da308310f5120f4c00b00501810b64063000544805","0x3c0151201431014170183a01512014c5016db018c501512014064600601912","0x60400601add0140645c0633405448050e805b70063300544805308050f006","0x112014340143c0183c015120143901417018ce0151201436016de0180644805","0x544805104054ec06104054480533405b7c06334054480533805b700633005","0x54480510c05b840601912014060400634c05b8043015120f4d2015fe018d2","0x5448050f00505c061200544805118056580611805448051143d0f59501845","0x60400613c4e3549d0144f0151201448015970184e01512014cc0143c018d5","0x5448050f00505c06140054480534c0566006019120143d014d50180644805","0x6940061245408c9d014490151201450015970185401512014cc0143c01823","0x1120143d016010181701512014062ec06050054480504005944060400544805","0x544805050059480605c054480505c050b006019120140e0160c0180e41c3d","0x64480501810018b2080ff276e3075020f5120f49d0501701406052e201814","0x3c018bb0151201502014170182501512014b5016db018b5015120140646006","0x112014060400601ae40140645c060b0054480509405b70060a0054480507405","0x2801512014200143c018bb01512014ff014170182a01512014b2016de01806","0x60b40544805300054ec0630005448050b005b7c060b005448050a805b7006","0x60e405448050c405b840601912014060400630805b9431015120f42d015fe","0x631405448052ec0505c060d805448050d005b9c060d005448050e5070f6e6","0x11201406040060f03a3149d0143c0151201436016e80183a01512014280143c","0x633405448052ec0505c06330054480530805ba40601912015070160c01806","0x5274059c806348ce3349d014d201512014cc016e8018ce01512014280143c","0x54480505c0510c0605c054480501841018100151201414016ea0181401512","0x1d015120150241c3d11806408054480503805114060380544805018d301907","0x62ec0544805014050f00609405448050180505c063fc0544805040059a406","0x9d448050b0282ec250426b0182c01512014ff0166a01828015120141d0144e","0x50a8052f0060191201406040060b405bac2a015120f4b5014bd018b52c820","0x5448050c405824060c405448053003d0f608018c001512014064600601912","0x3601512014c20160a0183401512014b20143c01839015120142001417018c2","0x5448050b40582c06019120143d01594018064480501810018360d03927405","0xcc01512014c50160a0183c01512014b20143c0183a015120142001417018c5","0x11201410016ee018100151201406bb406019120143d016ec018cc0f03a27405","0x5274170149dbc00605c054480505c050e40605c054480505005bbc0605005","0x5074050e406074054480540805bbc06408054480503805bb806039070f512","0x10701485018b201512014ff01414018203fc3d44805074060f6f10181d01512","0x10015120149d01651018252d4b2274050940544805080059d8062d40544805","0x6019120140604006075020389dbc90705c14275120f4100f4050181094c06","0x51b0062c80544805019aa01806448053fc051b806080ff0f512015070146c","0xbb0146c018bb01512014200151d01806448052d4051b806094b50f512014b2","0x50a8051b0060a80544805094054740601912014280146e0182c0a03d44805","0x112014c00151d01831015120142c0151d01806448050b4051b8063002d0f512","0x11201439014390183901512014c20c43d6f8060c405448050c4050e40630805","0x64483d0e4056cc0605c054480505c050f00605005448050500505c060e405","0x631405448050d805844060d805448050191801806448050181001834016f3","0x11201434015b601806448050181001806bd005019170183a01512014c5014a3","0x60e805448053300528c0633005448050f005914060f005448050191801806","0x3c018d2015120141401417018ce01512014cd016f6018cd015120143a016f5","0x6448050181001843104d22740510c0544805338054e406104054480505c05","0x61180544805408050f00611405448050380505c0634c054480507405bdc06","0x100183d016f9014054483d01805be006120461149d0144801512014d301539","0x504005694060400544805274056900627405448050140568c060191201406","0x50f4170f4c50181701512014060d806019120140604006050050141401512","0x5be8064080501502015120140e015a50180e0151201507015a60190701512","0x5848062c805448050f4052140608005448050180505006039070f51201410","0x1d4089d44805094b52c8200427501825015120141401439018b5015120140e","0x644805018100182c016fb0a0054483d05c056a0062ec0544805018bb018ff","0x645c060b405448050a8050e4060a80544805019aa01806448050a00517806","0x39018c001512014066b006019120142c0145e01806448050181001806bf005","0x14b88062ec05448052ec050b0060c405448053fc05944060b4054480530005","0x501918018064480501810018c50d834276fd0e4c20f5120f42d0c4bb27405","0x112014390143c018cc01512014c2014170183c015120143a016db0183a01512","0x5b780601912014060400601afe0140645c0633805448050f005b700633405","0xd2016dc018cd01512014360143c018cc015120143401417018d201512014c5","0x3d104057f806104054480510c054ec0610c054480533805b7c063380544805","0x4641c3dc0006118054480534c05b840601912014060400611405bfcd301512","0x53300505c0613805448054080505006354054480512005c04061200544805","0x112014d5017020182301512014cd0143c01850015120141d014850184f01512","0x5c0c060191201507016ec0180644805018100185408c5013c4e0500515005","0x1d01485018e201512014cc0141701856015120150201414018490151201445","0xe43885605005168054480512405c080639c0544805334050f0063900544805","0x11201405016920180644805018100183d01705014054483d01805c1006168e7","0x5018100181401405050054480504005a4c060400544805274054e80627405","0x54480541c05a500641c05448050f4170f4c50181701512014060d80601912","0x53a006050102749d448050f405c18064080501502015120140e016930180e","0xe015070180e0151201507014e1018064480505c051800641c170f51201414","0x10018b52c820277083fc1d4089d4483d038102740501814c1c060380544805","0x5074050f0062ec05448054080505c0609405448053fc05c24060191201406","0x30c01806448050181001806c2c05019170182c01512014250170a0182801512","0x5c28060a005448052c8050f0062ec05448050800505c060a805448052d405","0x2d0169e0182d01512014c00170e018c0015120142c0170d0182c015120142a","0x3901461018390151201431016a0018064480501810018c20170f0c4054483d","0x50a0050f00631405448052ec0505c060d805448050d00538c060d00544805","0x50e8060191201406040060f03a3149d0143c0151201436014cc0183a01512","0xcc014cc018ce01512014280143c018cd01512014bb01417018cc01512014c2","0x64483d27405b1006274050f51201405016c8018d2338cd274053480544805","0x605005448050180537006019120143d0146e0180644805018100181001710","0x11201405016c601806448050181001806c440501917018170151201405016c2","0x540805c4c064080e0f512014100f507018104e00641c054480501b1201806","0x50181001806c541d015120f502017140180e015120140e014dc0190201512","0x601b160140645c0608005448053fc05b08063fc054480507405af00601912","0x5038053700608005448052c805b08062c8054480501b17018064480501810","0x1120141701719018b5015120141401718018170151201420016c20181401512","0x9d0171a019120f43d016c40183d0183d4480501805b2006094b50f40509405","0x604005014100151201405016c2018064480501805b1806019120140604006","0x9d0171c018064480501810018140171b019120f405016c4018064480501810","0x501805b180601912014060400605c05014170151201406016c20180644805","0x54480503805c4c060380544805275070f71d019070151201406c480601912","0x54483d40805c5006408054480540805c4c0640805448050500e0f71d0180e","0x2001512014ff016c2018ff015120141d016bc01806448050181001806c781d","0x112014b2016c2018b20151201406c5c0601912014060400601b1f0140645c06","0x5b10060f4050f51201405016c8018b5014052d4054480508005c640608005","0x501805b08060191201405016c60180644805018100189d01720019120f43d","0x1120140501721018064480527405c7006019120140604006040050141001512","0x1120140e41c3db2406038054480505005b080641c054480501805b080605005","0x6014050140501512014060166a0190201405408054480505c05c640605c05","0x6038054480527405b540601912014060400604005c889d015120f40601537","0x14275120141d4080e277230181d015120143d014e7019020151201405014e7","0x200151201417014e7018ff0151201414014e7018064480541c051780641c17","0x50140539c062ec054480504005c940601912014060400601b240140645c06","0x5e018252d4b2275120142c0a0bb277260182c015120143d014e70182801512","0x5019180182001512014b5014e7018ff01512014b2014e7018064480509405","0x1120142a01544018c00151201420017270182d01512014ff017270182a01512","0x60191201406040060f405ca405015120f40601728018313002d274050c405","0x50141401512014100166401810015120149d016630189d015120140501662","0x26601907015120143d05c3d3140605c05448050183601806448050181001814","0x501512014060172a019020140540805448050380599006038054480541c05","0x54480501805c2806014054480501b2b0183d014050f4054480501405b5406","0x54483d0f405a78060f405448050409d0f72c018100151201405014390189d","0x54480541c051840641c054480505005a800601912014060400605c05cb414","0x1120140604006074050141d0151201502014cc01902015120140e014e30180e","0x3d01805cb806080050142001512014ff014cc018ff01512014170143a01806","0x1120141401439018140151201406cc00601912014060400604005cbc9d01512","0x11201417014e70181d015120149d016720181701512014140143d0d00605005","0x5178064080e41c9d44805080ff0749dcc40608005448050f40539c063fc05","0x3320140645c062d405448050380539c062c8054480541c0539c060191201502","0x3d0d0060940544805094050e406094054480501b3301806448050181001806","0x539c0630005448052ec0539c060b4054480504005810062ec054480509405","0x6019120142a0145e0182a0b02827512014313002d2773401831015120143d","0x5c9c06308054480501918018b5015120142c014e7018b20151201428014e7","0x340e49d0143601512014c2015440183401512014b5017270183901512014b2","0x3d01805cd806018060173501806448050f4051800601912014050146001836","0x1120143d014610180644805014051b80601912014060400627405cdc3d01512","0x501810018170140505c0544805050053300605005448050400538c0604005","0xe015120140541c3d0d00641c0544805018310180644805274051800601912","0x63fc0544805074050e8060740544805039020f4c50190201512014060d806","0x544805274050e406274054480501805ce006080050142001512014ff014cc","0x112014140145e018140403d4480541c170f4d801907015120143d014e701817","0x607405448050400539c0640805448050140539c0603805448050191801806","0x5274050e4062740544805018054d8063fc1d4089d014ff015120140e01544","0x140145e018140403d4480541c170f4d801907015120143d014e70181701512","0x5448050400539c0640805448050140539c060380544805019180180644805","0xae0189b2681005c0626c9a040823fc1d4089d014ff015120140e015440181d","0x9a051900409d0f405018ae0189b2e49a050170189b2e49a050062743d01406","0xb92681405c0626cb926814954102743d014062b80626cb92681405c0626cb9","0x10ce89d0f405018ae0189b2681005c0626c9a043390409d0f405018ae0189b","0x62b80626c9a040170189b26810cec9d0f405018ae0189b2681005c0626c9a","0x170189b2e49a0533d2743d014062b80626c9a040170189b26810cf09d0f405","0x62b80626cb92681405c0626cb926814cf8102743d014062b80626cb926814","0xc4053400409d0f405018ae0189b268c4050170189b268c40533f0409d0f405","0x627c9b2689d05c9b2689dd04102743d014062b80626c9a3101405c0626c9a","0x101849b26810d0c102743d014062d00626c9a040451e40626c9a053420f405","0x3d014062e80626cb926814114790189b2e49a05f442743d014062d89b2689d","0x9d05c9b2689dd1c062f0170f4170174601406074100f4100383dd14140409d","0x9d0f405018ba0189b2e49a05010038790189b2e49a41f480f405018bd26c9a","0x17050102743d014062e80626cb9268140400e1e40626cb926907d241705010","0x3d014063040626c9d038790189b0434b0f405018ba0189b274790189b2774a","0x5018c10189b2740e1e40626c10d343d014062e80626c9d1e40626c9dd309d","0x9a03b4f050102743d014062e80626cb926814038790189b2e49a05f4e2743d","0x9b26817d410705c140409d0f405018ba0189b2e49a0500e0380e1e40626cb9","0x50181d0403d040310f751050102743d01406318063109b2681403879018c4","0x1726c9a05353050102743d01406304063109b2681403879018c426c9a05f52","0x10114700189b26814d54061c0051e405d50102743d0140627c9b2689d03845","0x14d5c9d0f405018b626c9a274103449b26810d58102743d014062d00626c9a","0x9a2740e0401726c9a053580409d0f405018ba0189b2e49a050700189b2e49a","0x3d014062e80626cb9268140400e1c00626cb926907d64102743d014062f49b","0x626c9d038700189b0435b0f405018ba0189b274700189b2775a05c140409d","0x9b2740e1c00626c10d743d014062e80626c9d1c00626c9dd709d0f405018d4","0x63109b268140385a018c426c9a05f5f0185a014790175e2743d0140635006","0x9d0f405018d4018c426c9a0500e1c0063109b26817d80140409d0f405018c6","0x363014063680626c9d0189b0f7620f405018d826c9a2741726c9a2776105010","0x3652743d014062d00626c9a040450189b26810d9005018dc0189b2740626c3d","0xb92681405c0e1c00626cb926907d989d0f405018b626c9a2741005c9b26810","0x9b277680f405018ba0189b274340189b2776705c140409d0f405018c60189b","0x10da89d0f405018d40189b2743a1c00626c10da43d014063a00626c9d1c006","0x63109b2681403828018c426c9a05f6b2743d014063500626c9d038700189b","0x9d0f405018e9018c426c9a0500e168063109b26817db0140409d0f405018c6","0x9a0536f014063880626c9d0189b0f76e01406390172689d05c9a0f76d05010","0x62d89b2689d0401726c9a043700409d0f405018d50189b26810118450189b","0xb92689d0380e0380e2e49a05f720f405018d32683d28c142689ddc49d0f405","0x5dd405018da0189b2740626c3ddd0062e80533405dcc140409d0f40501831","0x9d038340189b043772743d014063040626c9d330790189b043760183c0143a","0xc426810de49d0f405018d40189b274391c00626c10de09d0f405018c50189b","0x37b2743d014063080626c9d348a30189b0437a2743d01406348c42689d03828","0x102743d01406300063109b268140c40e0a0063109b26907df0063180530805","0xe080b92777f0f405018ae0189b274220189b2777e018e2014bb0177d05c14","0xcc017820140608005080200f7810140608005080200f7800f405018202e43d","0x50e405e14063a0053fc05e103d01406074100409d040103309de0c0633005","0x100403d277880f4050181d04010274100403c27787018ae01507017860183c","0x6074100409d040100e49de2805018ae0140e41c3de243d01406074100409d","0x38c0f4050181d04010274100403a2778b0f405"],"sierra_program_debug_info":{"type_names":[[0,"System"],[1,"Uninitialized"],[2,"openzeppelin::introspection::src5::SRC5Component::Event"],[3,"EcState"],[4,"Array"],[5,"Snapshot>"],[6,"core::array::Span::"],[7,"core::result::Result::, core::array::Array::>"],[8,"felt252"],[9,"core::pedersen::HashState"],[10,"Unit"],[11,"core::result::Result::<(), core::array::Array::>"],[12,"EcPoint"],[13,"NonZero"],[14,"Box"],[15,"Box"],[16,"core::result::Result::, core::array::Array::>"],[17,"openzeppelin::introspection::src5::SRC5Component::SRC5_supported_interfaces::ComponentMemberState"],[18,"Tuple"],[19,"core::panics::Panic"],[20,"Tuple>"],[21,"core::panics::PanicResult::<(openzeppelin::introspection::src5::SRC5Component::SRC5_supported_interfaces::ComponentMemberState, ())>"],[22,"core::bool"],[23,"core::result::Result::>"],[24,"openzeppelin::account::account::AccountComponent::OwnerAdded"],[25,"openzeppelin::account::account::AccountComponent::Account_public_key::ComponentMemberState"],[26,"Tuple"],[27,"core::panics::PanicResult::<(openzeppelin::account::account::AccountComponent::Account_public_key::ComponentMemberState, ())>"],[28,"openzeppelin::account::account::AccountComponent::OwnerRemoved"],[29,"openzeppelin::account::account::AccountComponent::Event"],[30,"openzeppelin::presets::account::Account::Event"],[31,"core::result::Result::>"],[32,"StorageAddress"],[33,"StorageBaseAddress"],[34,"Box"],[35,"Tuple>"],[36,"core::panics::PanicResult::<(core::box::Box::<@core::felt252>,)>"],[37,"Array"],[38,"Array>"],[39,"Tuple, Array>, Unit>"],[40,"core::panics::PanicResult::<(core::array::Array::, core::array::Array::>, ())>"],[41,"Box"],[42,"Box"],[43,"ContractAddress"],[44,"core::starknet::info::ExecutionInfo"],[45,"u64"],[46,"core::starknet::info::BlockInfo"],[47,"Tuple>"],[48,"core::panics::PanicResult::<(core::box::Box::,)>"],[49,"core::option::Option::"],[50,"Uninitialized"],[51,"openzeppelin::introspection::src5::SRC5Component::ComponentState::"],[52,"Tuple, Unit>"],[53,"core::panics::PanicResult::<(openzeppelin::introspection::src5::SRC5Component::ComponentState::, ())>"],[54,"Tuple"],[55,"core::panics::PanicResult::<((),)>"],[56,"Box>"],[57,"core::option::Option::>>"],[58,"Snapshot>>"],[59,"Uninitialized>>>"],[60,"u128"],[61,"core::starknet::info::TxInfo"],[62,"Tuple>"],[63,"core::panics::PanicResult::<(core::box::Box::,)>"],[64,"Tuple"],[65,"core::panics::PanicResult::<(core::starknet::contract_address::ContractAddress,)>"],[66,"core::starknet::account::Call"],[67,"core::option::Option::"],[68,"Tuple, core::option::Option::>"],[69,"core::panics::PanicResult::<(core::array::Span::, core::option::Option::)>"],[70,"NonZero"],[71,"openzeppelin::account::account::AccountComponent::ComponentState::"],[72,"Tuple, Unit>"],[73,"core::panics::PanicResult::<(openzeppelin::account::account::AccountComponent::ComponentState::, ())>"],[74,"core::array::Span::>"],[75,"core::option::Option::>"],[76,"Tuple"],[77,"core::panics::PanicResult::<(core::bool,)>"],[78,"Pedersen"],[79,"openzeppelin::presets::account::Account::ContractState"],[80,"Tuple"],[81,"core::panics::PanicResult::<(openzeppelin::presets::account::Account::ContractState, ())>"],[82,"core::option::Option::>"],[83,"Tuple, core::option::Option::>>"],[84,"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"],[85,"core::option::Option::"],[86,"Uninitialized"],[87,"Tuple"],[88,"core::panics::PanicResult::<(core::felt252,)>"],[89,"EcOp"],[90,"Tuple>"],[91,"Tuple, Unit>"],[92,"core::panics::PanicResult::<(core::array::Array::, ())>"],[93,"Tuple>>"],[94,"core::panics::PanicResult::<(core::array::Array::>,)>"],[95,"BuiltinCosts"],[96,"core::panics::PanicResult::<(core::array::Span::,)>"],[97,"u32"],[98,"core::option::Option::>"],[99,"Tuple, core::option::Option::>>"],[100,"core::panics::PanicResult::<(core::array::Span::, core::option::Option::>)>"],[101,"GasBuiltin"],[102,"RangeCheck"]],"libfunc_names":[[0,"alloc_local"],[1,"finalize_locals"],[2,"revoke_ap_tracking"],[3,"withdraw_gas"],[4,"branch_align"],[5,"store_temp"],[6,"store_temp"],[7,"store_temp>"],[8,"function_call::deserialize>"],[9,"enum_match, core::option::Option::>)>>"],[10,"struct_deconstruct, core::option::Option::>>>"],[11,"enum_match>>"],[12,"struct_deconstruct>"],[13,"array_len"],[14,"snapshot_take"],[15,"drop"],[16,"u32_const<0>"],[17,"rename"],[18,"store_temp"],[19,"u32_eq"],[20,"drop>"],[21,"drop>"],[22,"array_new"],[23,"felt252_const<7733229381460288120802334208475838166080759535023995805565484692595>"],[24,"store_temp"],[25,"array_append"],[26,"struct_construct"],[27,"struct_construct>>"],[28,"enum_init,)>, 1>"],[29,"store_temp"],[30,"store_temp,)>>"],[31,"get_builtin_costs"],[32,"store_temp"],[33,"withdraw_gas_all"],[34,"struct_construct"],[35,"struct_construct>"],[36,"struct_construct"],[37,"struct_construct>"],[38,"struct_construct"],[39,"snapshot_take"],[40,"drop"],[41,"store_temp"],[42,"store_temp>"],[43,"function_call::__execute__>"],[44,"store_local"],[45,"enum_match>,)>>"],[46,"struct_deconstruct>>>"],[47,"snapshot_take>>"],[48,"drop>>"],[49,"store_temp>>>"],[50,"store_temp>"],[51,"function_call, core::array::SpanSerde::, core::array::SpanDrop::>::serialize>"],[52,"enum_match, ())>>"],[53,"struct_deconstruct, Unit>>"],[54,"drop"],[55,"snapshot_take>"],[56,"drop>"],[57,"struct_construct>"],[58,"struct_construct>>"],[59,"enum_init,)>, 0>"],[60,"felt252_const<375233589013918064796019>"],[61,"drop>"],[62,"felt252_const<485748461484230571791265682659113160264223489397539653310998840191492913>"],[63,"store_temp"],[64,"function_call::__validate__>"],[65,"enum_match>"],[66,"struct_deconstruct>"],[67,"snapshot_take"],[68,"drop"],[69,"function_call"],[70,"alloc_local"],[71,"function_call"],[72,"enum_match>"],[73,"store_local"],[74,"function_call::deserialize>"],[75,"enum_match, core::option::Option::>)>>"],[76,"struct_deconstruct, core::option::Option::>>>"],[77,"enum_match>>"],[78,"function_call::is_valid_signature>"],[79,"felt252_const<485748461484230571791265682659113160264223489397539653310998840191492914>"],[80,"drop>"],[81,"function_call::isValidSignature>"],[82,"function_call::get_public_key>"],[83,"function_call::set_public_key>"],[84,"enum_match>"],[85,"drop>"],[86,"function_call::getPublicKey>"],[87,"function_call::setPublicKey>"],[88,"function_call::__validate_declare__>"],[89,"function_call::__validate_deploy__>"],[90,"felt252_const<485748461484230571791265682659113160264223489397539653310998840191492915>"],[91,"store_temp"],[92,"function_call::supports_interface>"],[93,"enum_match>"],[94,"struct_deconstruct>"],[95,"snapshot_take"],[96,"drop"],[97,"store_temp"],[98,"function_call"],[99,"function_call"],[100,"disable_ap_tracking"],[101,"array_snapshot_pop_front"],[102,"enum_init>, 0>"],[103,"store_temp>>"],[104,"store_temp>>"],[105,"jump"],[106,"struct_construct"],[107,"enum_init>, 1>"],[108,"enum_match>>"],[109,"unbox"],[110,"array_new"],[111,"rename"],[112,"function_call>"],[113,"struct_construct, core::option::Option::>>>"],[114,"enum_init, core::option::Option::>)>, 0>"],[115,"store_temp, core::option::Option::>)>>"],[116,"enum_init, core::option::Option::>)>, 1>"],[117,"enum_init>, 1>"],[118,"function_call"],[119,"store_temp>"],[120,"function_call::__execute__>"],[121,"struct_construct>>>"],[122,"enum_init>,)>, 0>"],[123,"store_temp>,)>>"],[124,"enum_init>,)>, 1>"],[125,"dup>>>"],[126,"array_len>"],[127,"u32_to_felt252"],[128,"struct_construct>>"],[129,"store_temp>>"],[130,"function_call, core::array::SpanSerde::, core::array::SpanDrop::>>"],[131,"struct_construct, Unit>>"],[132,"enum_init, ())>, 0>"],[133,"store_temp, ())>>"],[134,"enum_init, ())>, 1>"],[135,"function_call::validate_transaction>"],[136,"struct_construct>"],[137,"enum_init, 0>"],[138,"store_temp>"],[139,"enum_init, 1>"],[140,"store_temp"],[141,"enum_init, 0>"],[142,"store_temp>"],[143,"enum_init, 1>"],[144,"function_call>"],[145,"struct_construct, core::option::Option::>>>"],[146,"enum_init, core::option::Option::>)>, 0>"],[147,"store_temp, core::option::Option::>)>>"],[148,"enum_init, core::option::Option::>)>, 1>"],[149,"enum_init>, 1>"],[150,"function_call::is_valid_signature>"],[151,"function_call::get_public_key>"],[152,"function_call::set_public_key>"],[153,"enum_match, ())>>"],[154,"struct_deconstruct, Unit>>"],[155,"drop>"],[156,"struct_construct>"],[157,"enum_init, 0>"],[158,"store_temp>"],[159,"enum_init, 1>"],[160,"function_call::getPublicKey>"],[161,"function_call::setPublicKey>"],[162,"function_call"],[163,"store_temp>"],[164,"function_call::supports_interface>"],[165,"struct_construct>"],[166,"enum_init, 0>"],[167,"store_temp>"],[168,"enum_init, 1>"],[169,"rename"],[170,"enum_match"],[171,"felt252_const<0>"],[172,"felt252_const<1>"],[173,"struct_deconstruct"],[174,"function_call::initializer>"],[175,"drop>"],[176,"dup"],[177,"felt252_is_zero"],[178,"enum_init>, 0>"],[179,"drop>"],[180,"function_call"],[181,"enum_match, core::option::Option::)>>"],[182,"struct_deconstruct, core::option::Option::>>"],[183,"enum_match>"],[184,"array_append"],[185,"felt252_sub"],[186,"function_call"],[187,"enum_match>"],[188,"struct_deconstruct>"],[189,"contract_address_to_felt252"],[190,"function_call"],[191,"enum_match,)>>"],[192,"struct_deconstruct>>"],[193,"unbox"],[194,"struct_deconstruct"],[195,"drop"],[196,"drop"],[197,"enable_ap_tracking"],[198,"felt252_const<340282366920938463463374607431768211457>"],[199,"function_call"],[200,"felt252_const<26899160088882821476234389471510102233170292334138446031203430254>"],[201,"felt252_const<6262948757243068301173483364169975331325598907448976754>"],[202,"alloc_local>>>"],[203,"struct_deconstruct>>"],[204,"array_snapshot_pop_front>"],[205,"enum_init>>, 0>"],[206,"store_temp>>>"],[207,"enum_init>>, 1>"],[208,"store_local>>>"],[209,"enum_match>>>"],[210,"unbox>"],[211,"function_call::serialize>"],[212,"drop>>>"],[213,"drop>>>>"],[214,"drop>>"],[215,"function_call::_is_valid_signature>"],[216,"felt252_const<105074844097198521391540583873086336848321434922596230638170725>"],[217,"felt252_const<370462705988>"],[218,"enum_init>, 0>"],[219,"struct_deconstruct>"],[220,"store_temp"],[221,"function_call::read>"],[222,"snapshot_take>"],[223,"function_call::assert_only_self>"],[224,"enum_match>"],[225,"drop>"],[226,"snapshot_take"],[227,"struct_construct"],[228,"store_temp"],[229,"function_call>"],[230,"function_call::_set_public_key>"],[231,"struct_construct, Unit>>"],[232,"enum_init, ())>, 0>"],[233,"store_temp, ())>>"],[234,"enum_init, ())>, 1>"],[235,"drop"],[236,"felt252_const<1797054754729183305928171726271749999318198861813713898581160688510183841877>"],[237,"enum_init"],[238,"struct_deconstruct>"],[239,"store_temp"],[240,"function_call>>::read>"],[241,"felt252_const<1270010605630597976495846281167968799381097569185364931397797212080166453709>"],[242,"function_call::register_interface>"],[243,"enum_match, ())>>"],[244,"drop, Unit>>"],[245,"alloc_local"],[246,"function_call"],[247,"enum_match>"],[248,"store_local"],[249,"struct_construct"],[250,"enum_init, 0>"],[251,"struct_construct, core::option::Option::>>"],[252,"enum_init, core::option::Option::)>, 0>"],[253,"store_temp, core::option::Option::)>>"],[254,"enum_init, 1>"],[255,"enum_init, core::option::Option::)>, 1>"],[256,"drop>"],[257,"function_call"],[258,"enum_match,)>>"],[259,"struct_deconstruct>>"],[260,"unbox"],[261,"struct_deconstruct"],[262,"drop>"],[263,"drop>"],[264,"struct_construct>"],[265,"enum_init, 0>"],[266,"store_temp>"],[267,"enum_init, 1>"],[268,"struct_construct>>"],[269,"enum_init,)>, 0>"],[270,"store_temp,)>>"],[271,"enum_init,)>, 1>"],[272,"array_new>"],[273,"store_temp>>"],[274,"function_call"],[275,"enum_match, core::array::Array::>, ())>>"],[276,"struct_deconstruct, Array>, Unit>>"],[277,"dup>"],[278,"rename>"],[279,"function_call>"],[280,"u32_const<2>"],[281,"enum_init"],[282,"function_call>"],[283,"enum_match,)>>"],[284,"struct_deconstruct>>"],[285,"u32_const<1>"],[286,"function_call"],[287,"drop>"],[288,"storage_base_address_const<550557492744938365112574611882025123252567779123164597803728068558738016655>"],[289,"storage_address_from_base"],[290,"store_temp"],[291,"storage_read_syscall"],[292,"enum_init>, 0>"],[293,"store_temp>>"],[294,"enum_init>, 1>"],[295,"rename>>"],[296,"function_call::unwrap_syscall>"],[297,"function_call"],[298,"snapshot_take"],[299,"rename"],[300,"struct_construct>"],[301,"enum_init, 0>"],[302,"store_temp>"],[303,"felt252_const<95565013996018498247890117593540195050286445389156>"],[304,"enum_init, 1>"],[305,"drop>"],[306,"function_call"],[307,"enum_init"],[308,"store_temp"],[309,"function_call>>"],[310,"function_call::write>"],[311,"enum_match>"],[312,"struct_deconstruct>"],[313,"struct_construct"],[314,"store_temp"],[315,"function_call>"],[316,"function_call"],[317,"store_temp"],[318,"function_call"],[319,"rename>>"],[320,"function_call::unwrap_syscall>"],[321,"function_call>>::write>"],[322,"enum_match>"],[323,"struct_deconstruct>"],[324,"struct_construct, Unit>>"],[325,"enum_init, ())>, 0>"],[326,"store_temp, ())>>"],[327,"enum_init, ())>, 1>"],[328,"contract_address_try_from_felt252"],[329,"enum_init, 0>"],[330,"store_temp>"],[331,"enum_init, 1>"],[332,"get_execution_info_syscall"],[333,"enum_init, core::array::Array::>, 0>"],[334,"store_temp, core::array::Array::>>"],[335,"enum_init, core::array::Array::>, 1>"],[336,"rename, core::array::Array::>>"],[337,"function_call>::unwrap_syscall>"],[338,"struct_construct>>"],[339,"enum_init,)>, 0>"],[340,"store_temp,)>>"],[341,"enum_init,)>, 1>"],[342,"array_pop_front"],[343,"unbox"],[344,"store_temp>"],[345,"store_temp"],[346,"function_call"],[347,"enum_match,)>>"],[348,"struct_deconstruct>>"],[349,"array_append>"],[350,"struct_construct, Array>, Unit>>"],[351,"enum_init, core::array::Array::>, ())>, 0>"],[352,"store_temp, core::array::Array::>, ())>>"],[353,"enum_init, core::array::Array::>, ())>, 1>"],[354,"drop>>"],[355,"array_get"],[356,"struct_construct>>"],[357,"enum_init,)>, 0>"],[358,"store_temp,)>>"],[359,"felt252_const<1637570914057682275393755530660268060279989363>"],[360,"enum_init,)>, 1>"],[361,"felt252_const<3618502788666131213697322783095070105526743751716087489154079457884512865583>"],[362,"ec_point_from_x_nz"],[363,"store_temp>"],[364,"unwrap_non_zero"],[365,"felt252_const<874739451078007766457464989774322083649278607533249481151382481072868806602>"],[366,"felt252_const<152666792071518830868575557812948353041420400780739481342941381225525861407>"],[367,"ec_point_try_new_nz"],[368,"store_temp"],[369,"function_call"],[370,"ec_point_is_zero"],[371,"drop"],[372,"ec_point_unwrap"],[373,"dup"],[374,"function_call"],[375,"function_call"],[376,"enum_match>>"],[377,"enum_init"],[378,"store_temp"],[379,"function_call::into>"],[380,"snapshot_take"],[381,"drop"],[382,"function_call"],[383,"emit_event_syscall"],[384,"enum_init>, 0>"],[385,"store_temp>>"],[386,"enum_init>, 1>"],[387,"rename>>"],[388,"function_call::unwrap_syscall>"],[389,"struct_deconstruct>"],[390,"storage_write_syscall"],[391,"struct_construct>"],[392,"enum_init, 0>"],[393,"store_temp>"],[394,"enum_init, 1>"],[395,"function_call"],[396,"drop"],[397,"felt252_const<29856869448526851354677579421814598404948672607251612773571742675033995705>"],[398,"struct_construct"],[399,"struct_deconstruct"],[400,"pedersen"],[401,"storage_base_address_from_felt252"],[402,"bool_not_impl"],[403,"enum_init>, 0>"],[404,"store_temp>>"],[405,"enum_init>, 1>"],[406,"enum_match>>"],[407,"snapshot_take"],[408,"struct_construct>"],[409,"enum_init, 0>"],[410,"store_temp>"],[411,"enum_init, 1>"],[412,"enum_match, core::array::Array::>>"],[413,"struct_deconstruct"],[414,"call_contract_syscall"],[415,"enum_init, core::array::Array::>, 0>"],[416,"store_temp, core::array::Array::>>"],[417,"enum_init, core::array::Array::>, 1>"],[418,"rename, core::array::Array::>>"],[419,"function_call, core::array::Array::>::unwrap::>>"],[420,"ec_state_init"],[421,"ec_state_add_mul"],[422,"store_temp"],[423,"ec_state_try_finalize_nz"],[424,"ec_point_zero"],[425,"rename"],[426,"rename"],[427,"drop>"],[428,"ec_state_add"],[429,"ec_neg"],[430,"enum_match"],[431,"function_call"],[432,"store_temp"],[433,"function_call"],[434,"rename>"],[435,"enum_match>>"],[436,"enum_init"],[437,"felt252_const<30828113188794245257250221355944970489240709081949230>"],[438,"function_call, core::array::Array::>::expect::>>"],[439,"enum_match"],[440,"felt252_const<1610331728778078893946407512609881658931720321973668761376942902098853979009>"],[441,"function_call"],[442,"felt252_const<22344655548567333405387866802074085172395779041116519548464544628677498541>"],[443,"function_call"],[444,"enum_match"],[445,"enum_match, core::array::Array::>>"],[446,"struct_deconstruct"],[447,"struct_deconstruct"]],"user_func_names":[[0,"openzeppelin::account::account::AccountComponent::__wrapper__SRC6Impl____execute__::"],[1,"openzeppelin::account::account::AccountComponent::__wrapper__SRC6Impl____validate__::"],[2,"openzeppelin::account::account::AccountComponent::__wrapper__SRC6Impl__is_valid_signature::"],[3,"openzeppelin::account::account::AccountComponent::__wrapper__SRC6CamelOnlyImpl__isValidSignature::"],[4,"openzeppelin::account::account::AccountComponent::__wrapper__PublicKeyImpl__get_public_key::"],[5,"openzeppelin::account::account::AccountComponent::__wrapper__PublicKeyImpl__set_public_key::"],[6,"openzeppelin::account::account::AccountComponent::__wrapper__PublicKeyCamelImpl__getPublicKey::"],[7,"openzeppelin::account::account::AccountComponent::__wrapper__PublicKeyCamelImpl__setPublicKey::"],[8,"openzeppelin::account::account::AccountComponent::__wrapper__DeclarerImpl____validate_declare__::"],[9,"openzeppelin::account::account::AccountComponent::__wrapper__DeployableImpl____validate_deploy__::"],[10,"openzeppelin::introspection::src5::SRC5Component::__wrapper__SRC5Impl__supports_interface::"],[11,"openzeppelin::presets::account::Account::__wrapper__constructor"],[12,"core::array::ArraySerde::::deserialize"],[13,"openzeppelin::account::account::AccountComponent::SRC6Impl::::__execute__"],[14,"core::array::ArraySerde::, core::array::SpanSerde::, core::array::SpanDrop::>::serialize"],[15,"openzeppelin::account::account::AccountComponent::SRC6Impl::::__validate__"],[16,"core::Felt252Serde::serialize"],[17,"core::Felt252Serde::deserialize"],[18,"core::array::ArraySerde::::deserialize"],[19,"openzeppelin::account::account::AccountComponent::SRC6Impl::::is_valid_signature"],[20,"openzeppelin::account::account::AccountComponent::SRC6CamelOnlyImpl::::isValidSignature"],[21,"openzeppelin::account::account::AccountComponent::PublicKeyImpl::::get_public_key"],[22,"openzeppelin::account::account::AccountComponent::PublicKeyImpl::::set_public_key"],[23,"openzeppelin::account::account::AccountComponent::PublicKeyCamelImpl::::getPublicKey"],[24,"openzeppelin::account::account::AccountComponent::PublicKeyCamelImpl::::setPublicKey"],[25,"openzeppelin::account::account::AccountComponent::DeclarerImpl::::__validate_declare__"],[26,"openzeppelin::account::account::AccountComponent::DeployableImpl::::__validate_deploy__"],[27,"openzeppelin::introspection::src5::SRC5Component::SRC5Impl::::supports_interface"],[28,"core::BoolSerde::serialize"],[29,"openzeppelin::presets::account::Account::constructor"],[30,"core::array::deserialize_array_helper::"],[31,"openzeppelin::presets::account::Account::HasComponentImpl_AccountComponent::get_component"],[32,"openzeppelin::account::account::AccountComponent::SRC6::::__execute__"],[33,"core::array::serialize_array_helper::, core::array::SpanSerde::, core::array::SpanDrop::>"],[34,"openzeppelin::account::account::AccountComponent::InternalImpl::::validate_transaction"],[35,"core::array::deserialize_array_helper::"],[36,"openzeppelin::account::account::AccountComponent::SRC6::::is_valid_signature"],[37,"openzeppelin::account::account::AccountComponent::PublicKey::::get_public_key"],[38,"openzeppelin::account::account::AccountComponent::PublicKey::::set_public_key"],[39,"openzeppelin::account::account::AccountComponent::PublicKeyCamel::::getPublicKey"],[40,"openzeppelin::account::account::AccountComponent::PublicKeyCamel::::setPublicKey"],[41,"openzeppelin::presets::account::Account::HasComponentImpl_SRC5Component::get_component"],[42,"openzeppelin::introspection::src5::SRC5Component::SRC5::::supports_interface"],[43,"openzeppelin::account::account::AccountComponent::InternalImpl::::initializer"],[44,"core::starknet::account::CallSerde::deserialize"],[45,"core::starknet::info::get_caller_address"],[46,"core::starknet::info::get_tx_info"],[47,"openzeppelin::account::account::AccountComponent::_execute_calls"],[48,"core::array::SpanSerde::::serialize"],[49,"openzeppelin::account::account::AccountComponent::InternalImpl::::_is_valid_signature"],[50,"core::starknet::storage::StorageMemberAccessImpl::::read"],[51,"openzeppelin::account::account::AccountComponent::InternalImpl::::assert_only_self"],[52,"openzeppelin::presets::account::Account::HasComponentImpl_AccountComponent::emit::"],[53,"openzeppelin::account::account::AccountComponent::InternalImpl::::_set_public_key"],[54,"core::starknet::storage::StorageMapMemberAccessImpl::>>::read"],[55,"openzeppelin::introspection::src5::SRC5Component::InternalImpl::::register_interface"],[56,"core::starknet::contract_address::ContractAddressSerde::deserialize"],[57,"core::starknet::info::get_execution_info"],[58,"openzeppelin::account::account::AccountComponent::_execute_calls[expr12]"],[59,"core::array::serialize_array_helper::"],[60,"core::array::array_at::"],[61,"core::ecdsa::check_ecdsa_signature"],[62,"core::starknet::SyscallResultTraitImpl::::unwrap_syscall"],[63,"core::starknet::info::get_contract_address"],[64,"openzeppelin::account::account::AccountComponent::EventOwnerRemovedIntoEvent::into"],[65,"openzeppelin::presets::account::Account::ContractStateEventEmitter::emit::>"],[66,"core::starknet::storage::StorageMemberAccessImpl::::write"],[67,"openzeppelin::presets::account::Account::HasComponentImpl_AccountComponent::emit::"],[68,"openzeppelin::introspection::src5::SRC5Component::SRC5_supported_interfaces::StorageMapComponentMemberStateImpl::address"],[69,"core::starknet::storage_access::StoreBool::read"],[70,"core::starknet::SyscallResultTraitImpl::::unwrap_syscall"],[71,"core::starknet::storage::StorageMapMemberAccessImpl::>>::write"],[72,"core::starknet::SyscallResultTraitImpl::>::unwrap_syscall"],[73,"openzeppelin::account::account::AccountComponent::_execute_single_call"],[74,"core::ec::EcPointImpl::mul"],[75,"core::ec::EcPointAdd::add"],[76,"core::ec::EcPointSub::sub"],[77,"core::traits::TIntoT::::into"],[78,"openzeppelin::presets::account::Account::EventIsEvent::append_keys_and_data"],[79,"core::starknet::SyscallResultTraitImpl::<()>::unwrap_syscall"],[80,"openzeppelin::account::account::AccountComponent::EventOwnerAddedIntoEvent::into"],[81,"core::result::ResultTraitImpl::, core::array::Array::>::unwrap::>"],[82,"openzeppelin::account::account::AccountComponent::EventIsEvent::append_keys_and_data"],[83,"openzeppelin::introspection::src5::SRC5Component::EventIsEvent::append_keys_and_data"],[84,"core::result::ResultTraitImpl::, core::array::Array::>::expect::>"],[85,"openzeppelin::account::account::AccountComponent::OwnerAddedIsEvent::append_keys_and_data"],[86,"openzeppelin::account::account::AccountComponent::OwnerRemovedIsEvent::append_keys_and_data"]]},"contract_class_version":"0.1.0","entry_points_by_type":{"EXTERNAL":[{"selector":"0xbc0eb87884ab91e330445c3584a50d7ddf4b568f02fbeb456a6242cce3f5d9","function_idx":7},{"selector":"0xfe80f537b66d12a00b6d3c072b44afbb716e78dde5c3f0ef116ee93d3e3283","function_idx":10},{"selector":"0x15d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad","function_idx":0},{"selector":"0x162da33a4585851fe8d3af3c2a9c60b557814e221e0d4f30ff0b2189d9c7775","function_idx":1},{"selector":"0x1a35984e05126dbecb7c3bb9929e7dd9106d460c59b1633739a5c733a5fb13b","function_idx":4},{"selector":"0x1a6c6a0bdec86cc645c91997d8eea83e87148659e3e61122f72361fd5e94079","function_idx":6},{"selector":"0x213dfe25e2ca309c4d615a09cfc95fdb2fc7dc73fbcad12c450fe93b1f2ff9e","function_idx":3},{"selector":"0x28420862938116cb3bbdbedee07451ccc54d4e9412dbef71142ad1980a30941","function_idx":2},{"selector":"0x289da278a8dc833409cabfdad1581e8e7d40e42dcaed693fa4008dcdb4963b3","function_idx":8},{"selector":"0x2e3e21ff5952b2531241e37999d9c4c8b3034cccc89a202a6bf019bdf5294f9","function_idx":5},{"selector":"0x36fcbf06cd96843058359e1a75928beacfac10727dab22a3972f0af8aa92895","function_idx":9}],"L1_HANDLER":[],"CONSTRUCTOR":[{"selector":"0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194","function_idx":11}]},"abi":[{"type":"impl","name":"SRC6Impl","interface_name":"openzeppelin::account::interface::ISRC6"},{"type":"struct","name":"core::starknet::account::Call","members":[{"name":"to","type":"core::starknet::contract_address::ContractAddress"},{"name":"selector","type":"core::felt252"},{"name":"calldata","type":"core::array::Array::"}]},{"type":"struct","name":"core::array::Span::","members":[{"name":"snapshot","type":"@core::array::Array::"}]},{"type":"interface","name":"openzeppelin::account::interface::ISRC6","items":[{"type":"function","name":"__execute__","inputs":[{"name":"calls","type":"core::array::Array::"}],"outputs":[{"type":"core::array::Array::>"}],"state_mutability":"view"},{"type":"function","name":"__validate__","inputs":[{"name":"calls","type":"core::array::Array::"}],"outputs":[{"type":"core::felt252"}],"state_mutability":"view"},{"type":"function","name":"is_valid_signature","inputs":[{"name":"hash","type":"core::felt252"},{"name":"signature","type":"core::array::Array::"}],"outputs":[{"type":"core::felt252"}],"state_mutability":"view"}]},{"type":"impl","name":"SRC6CamelOnlyImpl","interface_name":"openzeppelin::account::interface::ISRC6CamelOnly"},{"type":"interface","name":"openzeppelin::account::interface::ISRC6CamelOnly","items":[{"type":"function","name":"isValidSignature","inputs":[{"name":"hash","type":"core::felt252"},{"name":"signature","type":"core::array::Array::"}],"outputs":[{"type":"core::felt252"}],"state_mutability":"view"}]},{"type":"impl","name":"PublicKeyImpl","interface_name":"openzeppelin::account::interface::IPublicKey"},{"type":"interface","name":"openzeppelin::account::interface::IPublicKey","items":[{"type":"function","name":"get_public_key","inputs":[],"outputs":[{"type":"core::felt252"}],"state_mutability":"view"},{"type":"function","name":"set_public_key","inputs":[{"name":"new_public_key","type":"core::felt252"}],"outputs":[],"state_mutability":"external"}]},{"type":"impl","name":"PublicKeyCamelImpl","interface_name":"openzeppelin::account::interface::IPublicKeyCamel"},{"type":"interface","name":"openzeppelin::account::interface::IPublicKeyCamel","items":[{"type":"function","name":"getPublicKey","inputs":[],"outputs":[{"type":"core::felt252"}],"state_mutability":"view"},{"type":"function","name":"setPublicKey","inputs":[{"name":"newPublicKey","type":"core::felt252"}],"outputs":[],"state_mutability":"external"}]},{"type":"impl","name":"DeclarerImpl","interface_name":"openzeppelin::account::interface::IDeclarer"},{"type":"interface","name":"openzeppelin::account::interface::IDeclarer","items":[{"type":"function","name":"__validate_declare__","inputs":[{"name":"class_hash","type":"core::felt252"}],"outputs":[{"type":"core::felt252"}],"state_mutability":"view"}]},{"type":"impl","name":"DeployableImpl","interface_name":"openzeppelin::account::interface::IDeployable"},{"type":"interface","name":"openzeppelin::account::interface::IDeployable","items":[{"type":"function","name":"__validate_deploy__","inputs":[{"name":"class_hash","type":"core::felt252"},{"name":"contract_address_salt","type":"core::felt252"},{"name":"public_key","type":"core::felt252"}],"outputs":[{"type":"core::felt252"}],"state_mutability":"view"}]},{"type":"impl","name":"SRC5Impl","interface_name":"openzeppelin::introspection::interface::ISRC5"},{"type":"enum","name":"core::bool","variants":[{"name":"False","type":"()"},{"name":"True","type":"()"}]},{"type":"interface","name":"openzeppelin::introspection::interface::ISRC5","items":[{"type":"function","name":"supports_interface","inputs":[{"name":"interface_id","type":"core::felt252"}],"outputs":[{"type":"core::bool"}],"state_mutability":"view"}]},{"type":"constructor","name":"constructor","inputs":[{"name":"public_key","type":"core::felt252"}]},{"type":"event","name":"openzeppelin::account::account::AccountComponent::OwnerAdded","kind":"struct","members":[{"name":"new_owner_guid","type":"core::felt252","kind":"data"}]},{"type":"event","name":"openzeppelin::account::account::AccountComponent::OwnerRemoved","kind":"struct","members":[{"name":"removed_owner_guid","type":"core::felt252","kind":"data"}]},{"type":"event","name":"openzeppelin::account::account::AccountComponent::Event","kind":"enum","variants":[{"name":"OwnerAdded","type":"openzeppelin::account::account::AccountComponent::OwnerAdded","kind":"nested"},{"name":"OwnerRemoved","type":"openzeppelin::account::account::AccountComponent::OwnerRemoved","kind":"nested"}]},{"type":"event","name":"openzeppelin::introspection::src5::SRC5Component::Event","kind":"enum","variants":[]},{"type":"event","name":"openzeppelin::presets::account::Account::Event","kind":"enum","variants":[{"name":"AccountEvent","type":"openzeppelin::account::account::AccountComponent::Event","kind":"flat"},{"name":"SRC5Event","type":"openzeppelin::introspection::src5::SRC5Component::Event","kind":"flat"}]}]} \ No newline at end of file diff --git a/crates/katana/core/contracts/messaging/cairo/Makefile b/crates/katana/core/contracts/messaging/cairo/Makefile index 42ba9b392e..48d76a402b 100644 --- a/crates/katana/core/contracts/messaging/cairo/Makefile +++ b/crates/katana/core/contracts/messaging/cairo/Makefile @@ -1,5 +1,5 @@ ACCOUNT_L2=./account_l2.json -ACCOUNT_L2_ADDR=0x517ececd29116499f4a1b64b094da79ba08dfd54a3edaa316134c41f8160973 +ACCOUNT_L2_ADDR=0x9238c8ca6b3c6ab45a793593b13d98797ccd3bda179d313553e51fee114624 L2_PRIVATE_KEY=0x1800000000300000180000000000030000000000003006001800006600 # Build files helpers. diff --git a/crates/katana/core/contracts/messaging/cairo/account_l2.json b/crates/katana/core/contracts/messaging/cairo/account_l2.json index f879c33766..32f05e685d 100644 --- a/crates/katana/core/contracts/messaging/cairo/account_l2.json +++ b/crates/katana/core/contracts/messaging/cairo/account_l2.json @@ -8,6 +8,6 @@ "deployment": { "status": "deployed", "class_hash": "0x4d07e40e93398ed3c76981e72dd1fd22557a78ce36c0515f679e27f0bb5bc5f", - "address": "0x517ececd29116499f4a1b64b094da79ba08dfd54a3edaa316134c41f8160973" + "address": "0x9238c8ca6b3c6ab45a793593b13d98797ccd3bda179d313553e51fee114624" } } diff --git a/crates/katana/core/contracts/messaging/solidity/Makefile b/crates/katana/core/contracts/messaging/solidity/Makefile index 1198b4d527..4baa800e98 100644 --- a/crates/katana/core/contracts/messaging/solidity/Makefile +++ b/crates/katana/core/contracts/messaging/solidity/Makefile @@ -9,8 +9,8 @@ export $(shell sed 's/=.*//' .env) # Addresses fixed here for easy testing. C_MSG_L2_ADDR=0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 -L2_ACCOUNT=0x517ececd29116499f4a1b64b094da79ba08dfd54a3edaa316134c41f8160973 -L2_CONTRACT_ADDR=0x04231f608ea4a233136f6cdfcd10eaad2e46362bbc4e5d5aa88d0d574ea120d8 +L2_ACCOUNT=0x9238c8ca6b3c6ab45a793593b13d98797ccd3bda179d313553e51fee114624 +L2_CONTRACT_ADDR=0x0429a64d97c1422a37a09fc7406f35c264be59b744aaff5a79d59393eb1bc7e1 deploy_messaging_contracts: forge script --broadcast --rpc-url ${ETH_RPC_URL} script/LocalTesting.s.sol:LocalSetup diff --git a/crates/katana/core/src/accounts.rs b/crates/katana/core/src/accounts.rs index 439afb85ff..25ff933c12 100644 --- a/crates/katana/core/src/accounts.rs +++ b/crates/katana/core/src/accounts.rs @@ -15,7 +15,7 @@ use starknet::core::utils::{get_contract_address, get_storage_var_address}; use starknet::signers::SigningKey; use crate::constants::{ - FEE_TOKEN_ADDRESS, OZ_V0_ACCOUNT_CONTRACT, OZ_V0_ACCOUNT_CONTRACT_CLASS_HASH, + FEE_TOKEN_ADDRESS, OZ_V1_ACCOUNT_CONTRACT_COMPILED, OZ_V1_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH, }; #[serde_as] @@ -114,8 +114,8 @@ impl DevAccountGenerator { total, seed: [0u8; 32], balance: FieldElement::ZERO, - class_hash: (*OZ_V0_ACCOUNT_CONTRACT_CLASS_HASH), - contract_class: Arc::new((*OZ_V0_ACCOUNT_CONTRACT).clone()), + class_hash: (*OZ_V1_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH), + contract_class: Arc::new((*OZ_V1_ACCOUNT_CONTRACT_COMPILED).clone()), } } diff --git a/crates/katana/core/src/backend/config.rs b/crates/katana/core/src/backend/config.rs index 54f1d4ba49..c466056286 100644 --- a/crates/katana/core/src/backend/config.rs +++ b/crates/katana/core/src/backend/config.rs @@ -17,6 +17,7 @@ pub struct StarknetConfig { pub env: Environment, pub fork_rpc_url: Option, pub fork_block_number: Option, + pub disable_validate: bool, } impl StarknetConfig { @@ -59,6 +60,7 @@ impl Default for StarknetConfig { fork_rpc_url: None, fork_block_number: None, env: Environment::default(), + disable_validate: false, } } } diff --git a/crates/katana/core/src/constants.rs b/crates/katana/core/src/constants.rs index b25be447dd..c983920202 100644 --- a/crates/katana/core/src/constants.rs +++ b/crates/katana/core/src/constants.rs @@ -1,5 +1,7 @@ -use katana_primitives::contract::{CompiledContractClass, ContractAddress, StorageKey}; -use katana_primitives::utils::class::parse_compiled_class; +use katana_primitives::contract::{ + CompiledContractClass, ContractAddress, SierraClass, StorageKey, +}; +use katana_primitives::utils::class::{parse_compiled_class, parse_sierra_class}; use katana_primitives::FieldElement; use lazy_static::lazy_static; use starknet::macros::felt; @@ -19,11 +21,11 @@ lazy_static! { // Predefined class hashes - pub static ref OZ_V0_ACCOUNT_CONTRACT_CLASS_HASH: FieldElement = felt!("0x04d07e40e93398ed3c76981e72dd1fd22557a78ce36c0515f679e27f0bb5bc5f"); + pub static ref OZ_V1_ACCOUNT_CONTRACT_CLASS_HASH: FieldElement = felt!("0x05400e90f7e0ae78bd02c77cd75527280470e2fe19c54970dd79dc37a9d3645c"); pub static ref ERC20_CONTRACT_CLASS_HASH: FieldElement = felt!("0x02a8846878b6ad1f54f6ba46f5f40e11cee755c677f130b2c4b60566c9003f1f"); pub static ref UDC_CLASS_HASH: FieldElement = felt!("0x07b3e05f48f0c69e4a65ce5e076a66271a527aff2c34ce1083ec6e1526997a69"); - pub static ref OZ_V0_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH: FieldElement = felt!("0x04d07e40e93398ed3c76981e72dd1fd22557a78ce36c0515f679e27f0bb5bc5f"); + pub static ref OZ_V1_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH: FieldElement = felt!("0x016c6081eb34ad1e0c5513234ed0c025b3c7f305902d291bad534cd6474c85bc"); pub static ref ERC20_CONTRACT_COMPILED_CLASS_HASH: FieldElement = felt!("0x02a8846878b6ad1f54f6ba46f5f40e11cee755c677f130b2c4b60566c9003f1f"); pub static ref UDC_COMPILED_CLASS_HASH: FieldElement = felt!("0x07b3e05f48f0c69e4a65ce5e076a66271a527aff2c34ce1083ec6e1526997a69"); @@ -31,7 +33,8 @@ lazy_static! { pub static ref ERC20_CONTRACT: CompiledContractClass = parse_compiled_class(include_str!("../contracts/compiled/erc20.json")).unwrap(); pub static ref UDC_CONTRACT: CompiledContractClass = parse_compiled_class(include_str!("../contracts/compiled/universal_deployer.json")).unwrap(); - pub static ref OZ_V0_ACCOUNT_CONTRACT: CompiledContractClass = parse_compiled_class(include_str!("../contracts/compiled/account.json")).unwrap(); + pub static ref OZ_V1_ACCOUNT_CONTRACT: SierraClass = parse_sierra_class(include_str!("../contracts/compiled/oz_account_080.json")).unwrap(); + pub static ref OZ_V1_ACCOUNT_CONTRACT_COMPILED: CompiledContractClass = parse_compiled_class(include_str!("../contracts/compiled/oz_account_080.json")).unwrap(); pub static ref DEFAULT_PREFUNDED_ACCOUNT_BALANCE: FieldElement = felt!("0x3635c9adc5dea00000"); // 10^21 diff --git a/crates/katana/core/src/sequencer.rs b/crates/katana/core/src/sequencer.rs index 73d7ffdab8..4a3e7a5610 100644 --- a/crates/katana/core/src/sequencer.rs +++ b/crates/katana/core/src/sequencer.rs @@ -154,6 +154,7 @@ impl KatanaSequencer { transactions.into_iter(), block_context, state, + !self.backend.config.read().disable_validate, ) .map_err(SequencerError::TransactionExecution) } diff --git a/crates/katana/core/src/service/block_producer.rs b/crates/katana/core/src/service/block_producer.rs index c87f8a0ff6..0cef6a3085 100644 --- a/crates/katana/core/src/service/block_producer.rs +++ b/crates/katana/core/src/service/block_producer.rs @@ -220,6 +220,7 @@ impl IntervalBlockProducer { &self.state.state, &self.backend.env.read().block, !self.backend.config.read().disable_fee, + !self.backend.config.read().disable_validate, transactions.clone().into_iter(), ) .with_error_log() @@ -330,6 +331,7 @@ impl InstantBlockProducer { &state, &block_context, !backend.config.read().disable_fee, + !backend.config.read().disable_validate, transactions.clone().into_iter(), ) .with_error_log() diff --git a/crates/katana/core/src/service/messaging/starknet.rs b/crates/katana/core/src/service/messaging/starknet.rs index 41b6b08313..2b7d2d3d8e 100644 --- a/crates/katana/core/src/service/messaging/starknet.rs +++ b/crates/katana/core/src/service/messaging/starknet.rs @@ -111,7 +111,7 @@ impl StarknetMessaging { signer, self.sender_account_address, self.chain_id, - ExecutionEncoding::Legacy, + ExecutionEncoding::New, ); account.set_block_id(BlockId::Tag(BlockTag::Latest)); diff --git a/crates/katana/core/src/utils/mod.rs b/crates/katana/core/src/utils/mod.rs index 820f5adfc7..26bae491be 100644 --- a/crates/katana/core/src/utils/mod.rs +++ b/crates/katana/core/src/utils/mod.rs @@ -6,9 +6,9 @@ use katana_primitives::state::{StateUpdates, StateUpdatesWithDeclaredClasses}; use crate::constants::{ ERC20_CONTRACT, ERC20_CONTRACT_CLASS_HASH, ERC20_CONTRACT_COMPILED_CLASS_HASH, ERC20_DECIMALS_STORAGE_SLOT, ERC20_NAME_STORAGE_SLOT, ERC20_SYMBOL_STORAGE_SLOT, - FEE_TOKEN_ADDRESS, OZ_V0_ACCOUNT_CONTRACT, OZ_V0_ACCOUNT_CONTRACT_CLASS_HASH, - OZ_V0_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH, UDC_ADDRESS, UDC_CLASS_HASH, - UDC_COMPILED_CLASS_HASH, UDC_CONTRACT, + FEE_TOKEN_ADDRESS, OZ_V1_ACCOUNT_CONTRACT, OZ_V1_ACCOUNT_CONTRACT_CLASS_HASH, + OZ_V1_ACCOUNT_CONTRACT_COMPILED, OZ_V1_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH, UDC_ADDRESS, + UDC_CLASS_HASH, UDC_COMPILED_CLASS_HASH, UDC_CONTRACT, }; pub(super) fn get_current_timestamp() -> std::time::Duration { @@ -38,15 +38,18 @@ pub(super) fn get_genesis_states_for_testing() -> StateUpdatesWithDeclaredClasse let declared_classes = HashMap::from([ (*UDC_CLASS_HASH, *UDC_COMPILED_CLASS_HASH), (*ERC20_CONTRACT_CLASS_HASH, *ERC20_CONTRACT_COMPILED_CLASS_HASH), - (*OZ_V0_ACCOUNT_CONTRACT_CLASS_HASH, *OZ_V0_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH), + (*OZ_V1_ACCOUNT_CONTRACT_CLASS_HASH, *OZ_V1_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH), ]); - let declared_sierra_classes = HashMap::from([]); + let declared_sierra_classes = HashMap::from([( + *OZ_V1_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH, + OZ_V1_ACCOUNT_CONTRACT.clone().flatten().unwrap(), + )]); let declared_compiled_classes = HashMap::from([ (*UDC_COMPILED_CLASS_HASH, (*UDC_CONTRACT).clone()), (*ERC20_CONTRACT_COMPILED_CLASS_HASH, (*ERC20_CONTRACT).clone()), - (*OZ_V0_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH, (*OZ_V0_ACCOUNT_CONTRACT).clone()), + (*OZ_V1_ACCOUNT_CONTRACT_COMPILED_CLASS_HASH, (*OZ_V1_ACCOUNT_CONTRACT_COMPILED).clone()), ]); StateUpdatesWithDeclaredClasses { diff --git a/crates/katana/executor/src/blockifier/mod.rs b/crates/katana/executor/src/blockifier/mod.rs index 16089d132c..e62e12728f 100644 --- a/crates/katana/executor/src/blockifier/mod.rs +++ b/crates/katana/executor/src/blockifier/mod.rs @@ -42,6 +42,8 @@ pub struct TransactionExecutor<'a, S: StateReader, T> { transactions: T, /// The state the transactions will be executed on. state: &'a CachedStateWrapper, + /// A flag to enable/disable transaction validation. + validate: bool, // logs flags error_log: bool, @@ -58,6 +60,7 @@ where state: &'a CachedStateWrapper, block_context: &'a BlockContext, charge_fee: bool, + validate: bool, transactions: T, ) -> Self { Self { @@ -65,6 +68,7 @@ where charge_fee, transactions, block_context, + validate, error_log: false, events_log: false, resources_log: false, @@ -97,10 +101,9 @@ where type Item = TxExecutionResult; fn next(&mut self) -> Option { - let res = self - .transactions - .next() - .map(|tx| execute_tx(tx, self.state, self.block_context, self.charge_fee))?; + let res = self.transactions.next().map(|tx| { + execute_tx(tx, self.state, self.block_context, self.charge_fee, self.validate) + })?; match res { Ok(ref info) => { @@ -142,10 +145,8 @@ fn execute_tx( state: &CachedStateWrapper, block_context: &BlockContext, charge_fee: bool, + validate: bool, ) -> TxExecutionResult { - // TODO: check how this value must be controlled. - let validate = true; - let sierra = if let ExecutableTx::Declare(DeclareTxWithClass { transaction, sierra_class: Some(sierra_class), diff --git a/crates/katana/executor/src/blockifier/state.rs b/crates/katana/executor/src/blockifier/state.rs index c2bda79e09..12c6456764 100644 --- a/crates/katana/executor/src/blockifier/state.rs +++ b/crates/katana/executor/src/blockifier/state.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use blockifier::state::cached_state::{CachedState, GlobalContractCache}; use blockifier::state::errors::StateError; use blockifier::state::state_api::StateReader; -use katana_primitives::contract::SierraClass; +use katana_primitives::contract::FlattenedSierraClass; use katana_primitives::FieldElement; use katana_provider::traits::contract::ContractClassProvider; use katana_provider::traits::state::StateProvider; @@ -94,7 +94,7 @@ impl StateReader for StateRefDb { pub struct CachedStateWrapper { inner: Mutex>, - sierra_class: RwLock>, + sierra_class: RwLock>, } impl CachedStateWrapper { @@ -118,7 +118,7 @@ impl CachedStateWrapper { &self, ) -> parking_lot::RwLockReadGuard< '_, - HashMap, + HashMap, > { self.sierra_class.read() } @@ -127,7 +127,7 @@ impl CachedStateWrapper { &self, ) -> parking_lot::RwLockWriteGuard< '_, - HashMap, + HashMap, > { self.sierra_class.write() } @@ -160,7 +160,7 @@ where fn sierra_class( &self, hash: katana_primitives::contract::ClassHash, - ) -> anyhow::Result> { + ) -> anyhow::Result> { let class @ Some(_) = self.sierra_class().get(&hash).cloned() else { return Ok(None); }; diff --git a/crates/katana/executor/src/blockifier/utils.rs b/crates/katana/executor/src/blockifier/utils.rs index fd6f994f19..85e000cec4 100644 --- a/crates/katana/executor/src/blockifier/utils.rs +++ b/crates/katana/executor/src/blockifier/utils.rs @@ -60,9 +60,10 @@ pub fn estimate_fee( transactions: impl Iterator, block_context: BlockContext, state: Box, + validate: bool, ) -> Result, TransactionExecutionError> { let state = CachedStateWrapper::new(StateRefDb::from(state)); - let results = TransactionExecutor::new(&state, &block_context, false, transactions) + let results = TransactionExecutor::new(&state, &block_context, false, validate, transactions) .with_error_log() .execute(); diff --git a/crates/katana/primitives/src/contract.rs b/crates/katana/primitives/src/contract.rs index d9d778bad8..eae4df0ab7 100644 --- a/crates/katana/primitives/src/contract.rs +++ b/crates/katana/primitives/src/contract.rs @@ -18,7 +18,8 @@ pub type CompiledClassHash = FieldElement; /// Represents the type for a contract nonce. pub type Nonce = FieldElement; -pub type SierraClass = starknet::core::types::FlattenedSierraClass; +pub type SierraClass = starknet::core::types::contract::SierraClass; +pub type FlattenedSierraClass = starknet::core::types::FlattenedSierraClass; /// Represents a contract address. #[derive(Default, Clone, Copy, Eq, PartialEq, PartialOrd, Ord, Hash, Debug, Deref)] diff --git a/crates/katana/primitives/src/conversion/rpc.rs b/crates/katana/primitives/src/conversion/rpc.rs index 728d07378a..653a30412c 100644 --- a/crates/katana/primitives/src/conversion/rpc.rs +++ b/crates/katana/primitives/src/conversion/rpc.rs @@ -14,7 +14,8 @@ use starknet::core::types::{ use starknet_api::deprecated_contract_class::{EntryPoint, EntryPointType}; use crate::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, CompiledContractClassV0, SierraClass, + ClassHash, CompiledClassHash, CompiledContractClass, CompiledContractClassV0, + FlattenedSierraClass, }; use crate::FieldElement; @@ -70,10 +71,10 @@ pub fn legacy_inner_to_rpc_class( })) } -/// Convert the given [`SierraClass`] into the inner compiled class type [`CompiledContractClass`] -/// along with its class hashes. -pub fn sierra_to_compiled_class( - contract_class: &SierraClass, +/// Convert the given [`FlattenedSierraClass`] into the inner compiled class type +/// [`CompiledContractClass`] along with its class hashes. +pub fn flattened_sierra_to_compiled_class( + contract_class: &FlattenedSierraClass, ) -> Result<(ClassHash, CompiledClassHash, CompiledContractClass)> { let class_hash = contract_class.class_hash(); @@ -91,9 +92,9 @@ pub fn sierra_to_compiled_class( )) } -/// Compute the compiled class hash from the given [`SierraClass`]. +/// Compute the compiled class hash from the given [`FlattenedSierraClass`]. pub fn compiled_class_hash_from_flattened_sierra_class( - contract_class: &SierraClass, + contract_class: &FlattenedSierraClass, ) -> Result { let contract_class = rpc_to_cairo_contract_class(contract_class)?; let casm = CasmContractClass::from_contract_class(contract_class, true)?; @@ -122,10 +123,10 @@ pub fn legacy_rpc_to_inner_compiled_class( Ok((class_hash, CompiledContractClass::V0(contract_class))) } -/// Converts `starknet-rs` RPC [SierraClass] type to Cairo's +/// Converts `starknet-rs` RPC [FlattenedSierraClass] type to Cairo's /// [ContractClass](cairo_lang_starknet::contract_class::ContractClass) type. fn rpc_to_cairo_contract_class( - contract_class: &SierraClass, + contract_class: &FlattenedSierraClass, ) -> Result { let value = serde_json::to_value(contract_class)?; diff --git a/crates/katana/primitives/src/state.rs b/crates/katana/primitives/src/state.rs index 65cfa8341a..2c67c062b9 100644 --- a/crates/katana/primitives/src/state.rs +++ b/crates/katana/primitives/src/state.rs @@ -1,8 +1,8 @@ use std::collections::HashMap; use crate::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, Nonce, SierraClass, - StorageKey, StorageValue, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + Nonce, StorageKey, StorageValue, }; /// State updates. @@ -27,7 +27,7 @@ pub struct StateUpdatesWithDeclaredClasses { /// State updates. pub state_updates: StateUpdates, /// A mapping of class hashes to their sierra classes definition. - pub declared_sierra_classes: HashMap, + pub declared_sierra_classes: HashMap, /// A mapping of class hashes to their compiled classes definition. pub declared_compiled_classes: HashMap, } diff --git a/crates/katana/primitives/src/transaction.rs b/crates/katana/primitives/src/transaction.rs index 9664105776..ab5665d844 100644 --- a/crates/katana/primitives/src/transaction.rs +++ b/crates/katana/primitives/src/transaction.rs @@ -2,7 +2,8 @@ use derive_more::{AsRef, Deref}; use ethers::types::H256; use crate::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, Nonce, SierraClass, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + Nonce, }; use crate::utils::transaction::{ compute_declare_v1_tx_hash, compute_declare_v2_tx_hash, compute_deploy_account_v1_tx_hash, @@ -97,7 +98,7 @@ impl ExecutableTxWithHash { #[derive(Debug, Clone, AsRef, Deref)] pub struct DeclareTxWithClass { /// The Sierra class, if any. - pub sierra_class: Option, + pub sierra_class: Option, /// The compiled contract class. pub compiled_class: CompiledContractClass, /// The raw transaction. @@ -109,7 +110,7 @@ pub struct DeclareTxWithClass { impl DeclareTxWithClass { pub fn new_with_classes( transaction: DeclareTx, - sierra_class: SierraClass, + sierra_class: FlattenedSierraClass, compiled_class: CompiledContractClass, ) -> Self { Self { sierra_class: Some(sierra_class), compiled_class, transaction } diff --git a/crates/katana/primitives/src/utils/class.rs b/crates/katana/primitives/src/utils/class.rs index 3f02812c5f..cfd3aa6c8d 100644 --- a/crates/katana/primitives/src/utils/class.rs +++ b/crates/katana/primitives/src/utils/class.rs @@ -2,7 +2,9 @@ use anyhow::Result; use cairo_lang_starknet::casm_contract_class::CasmContractClass; use cairo_lang_starknet::contract_class::ContractClass; -use crate::contract::{CompiledContractClass, CompiledContractClassV0, CompiledContractClassV1}; +use crate::contract::{ + CompiledContractClass, CompiledContractClassV0, CompiledContractClassV1, SierraClass, +}; /// Parse a [`str`] into a [`CompiledContractClass`]. pub fn parse_compiled_class(class: &str) -> Result { @@ -24,3 +26,8 @@ pub fn parse_compiled_class_v1(class: &str) -> Result { pub fn parse_compiled_class_v0(class: &str) -> Result { Ok(serde_json::from_str(class)?) } + +/// Parse a [`str`] into a [`SierraClass`]. +pub fn parse_sierra_class(class: &str) -> Result { + Ok(serde_json::from_str(class)?) +} diff --git a/crates/katana/rpc/rpc-types/src/transaction.rs b/crates/katana/rpc/rpc-types/src/transaction.rs index dfea42172f..69f4f1740c 100644 --- a/crates/katana/rpc/rpc-types/src/transaction.rs +++ b/crates/katana/rpc/rpc-types/src/transaction.rs @@ -4,8 +4,8 @@ use anyhow::Result; use derive_more::Deref; use katana_primitives::contract::{ClassHash, ContractAddress}; use katana_primitives::conversion::rpc::{ - compiled_class_hash_from_flattened_sierra_class, legacy_rpc_to_inner_compiled_class, - sierra_to_compiled_class, + compiled_class_hash_from_flattened_sierra_class, flattened_sierra_to_compiled_class, + legacy_rpc_to_inner_compiled_class, }; use katana_primitives::transaction::{ DeclareTx, DeclareTxV1, DeclareTxV2, DeclareTxWithClass, DeployAccountTx, InvokeTx, TxHash, @@ -79,7 +79,8 @@ impl BroadcastedDeclareTx { BroadcastedDeclareTransaction::V2(tx) => { // TODO: avoid computing the class hash again - let (class_hash, _, compiled_class) = sierra_to_compiled_class(&tx.contract_class)?; + let (class_hash, _, compiled_class) = + flattened_sierra_to_compiled_class(&tx.contract_class)?; Ok(DeclareTxWithClass { compiled_class, diff --git a/crates/katana/rpc/tests/starknet.rs b/crates/katana/rpc/tests/starknet.rs index a0ece05aa2..08d29ca2a7 100644 --- a/crates/katana/rpc/tests/starknet.rs +++ b/crates/katana/rpc/tests/starknet.rs @@ -18,6 +18,8 @@ use starknet::core::types::{ use starknet::core::utils::{get_contract_address, get_selector_from_name}; use starknet::providers::Provider; +const WAIT_TX_DELAY_MILLIS: u64 = 1000; + #[tokio::test(flavor = "multi_thread")] async fn test_send_declare_and_deploy_contract() { let sequencer = @@ -31,7 +33,7 @@ async fn test_send_declare_and_deploy_contract() { let res = account.declare(Arc::new(contract), compiled_class_hash).send().await.unwrap(); // wait for the tx to be mined - tokio::time::sleep(Duration::from_millis(250)).await; + tokio::time::sleep(Duration::from_millis(WAIT_TX_DELAY_MILLIS)).await; let receipt = account.provider().get_transaction_receipt(res.transaction_hash).await.unwrap(); @@ -81,7 +83,7 @@ async fn test_send_declare_and_deploy_contract() { .unwrap(); // wait for the tx to be mined - tokio::time::sleep(Duration::from_millis(250)).await; + tokio::time::sleep(Duration::from_millis(WAIT_TX_DELAY_MILLIS)).await; assert_eq!( account @@ -110,7 +112,7 @@ async fn test_send_declare_and_deploy_legacy_contract() { let class_hash = contract_class.class_hash().unwrap(); let res = account.declare_legacy(contract_class).send().await.unwrap(); // wait for the tx to be mined - tokio::time::sleep(Duration::from_millis(250)).await; + tokio::time::sleep(Duration::from_millis(WAIT_TX_DELAY_MILLIS)).await; let receipt = account.provider().get_transaction_receipt(res.transaction_hash).await.unwrap(); @@ -160,7 +162,7 @@ async fn test_send_declare_and_deploy_legacy_contract() { .unwrap(); // wait for the tx to be mined - tokio::time::sleep(Duration::from_millis(250)).await; + tokio::time::sleep(Duration::from_millis(WAIT_TX_DELAY_MILLIS)).await; assert_eq!( account diff --git a/crates/katana/src/args.rs b/crates/katana/src/args.rs index d4e155deab..9d23d947e3 100644 --- a/crates/katana/src/args.rs +++ b/crates/katana/src/args.rs @@ -135,9 +135,13 @@ pub struct StarknetOptions { pub total_accounts: u8, #[arg(long)] - #[arg(help = "Disable charging fee for transactions.")] + #[arg(help = "Disable charging fee when executing transactions.")] pub disable_fee: bool, + #[arg(long)] + #[arg(help = "Disable validation when executing transactions.")] + pub disable_validate: bool, + #[command(flatten)] #[command(next_help_heading = "Environment options")] pub environment: EnvironmentOptions, @@ -211,6 +215,7 @@ impl KatanaArgs { total_accounts: self.starknet.total_accounts, seed: parse_seed(&self.starknet.seed), disable_fee: self.starknet.disable_fee, + disable_validate: self.starknet.disable_validate, fork_rpc_url: self.rpc_url.clone(), fork_block_number: self.fork_block_number, env: Environment { diff --git a/crates/katana/storage/db/src/codecs/mod.rs b/crates/katana/storage/db/src/codecs/mod.rs index 346659e76b..622e96921b 100644 --- a/crates/katana/storage/db/src/codecs/mod.rs +++ b/crates/katana/storage/db/src/codecs/mod.rs @@ -2,7 +2,7 @@ pub mod postcard; use katana_primitives::block::FinalityStatus; -use katana_primitives::contract::{ContractAddress, SierraClass}; +use katana_primitives::contract::{ContractAddress, FlattenedSierraClass}; use katana_primitives::FieldElement; use crate::error::CodecError; @@ -72,14 +72,14 @@ macro_rules! impl_encode_and_decode_for_felts { impl_encode_and_decode_for_uints!(u64); impl_encode_and_decode_for_felts!(FieldElement, ContractAddress); -impl Compress for SierraClass { +impl Compress for FlattenedSierraClass { type Compressed = Vec; fn compress(self) -> Self::Compressed { serde_json::to_vec(&self).unwrap() } } -impl Decompress for SierraClass { +impl Decompress for FlattenedSierraClass { fn decompress>(bytes: B) -> Result { serde_json::from_slice(bytes.as_ref()).map_err(|e| CodecError::Decode(e.to_string())) } diff --git a/crates/katana/storage/db/src/tables.rs b/crates/katana/storage/db/src/tables.rs index df6facb002..4af836df20 100644 --- a/crates/katana/storage/db/src/tables.rs +++ b/crates/katana/storage/db/src/tables.rs @@ -1,6 +1,7 @@ use katana_primitives::block::{BlockHash, BlockNumber, FinalityStatus, Header}; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, ContractAddress, GenericContractInfo, SierraClass, StorageKey, + ClassHash, CompiledClassHash, ContractAddress, FlattenedSierraClass, GenericContractInfo, + StorageKey, }; use katana_primitives::receipt::Receipt; use katana_primitives::transaction::{Tx, TxHash, TxNumber}; @@ -198,7 +199,7 @@ tables! { /// Store compiled contract classes according to its compiled class hash CompiledContractClasses: (ClassHash) => StoredContractClass, /// Store Sierra classes according to its class hash - SierraClasses: (ClassHash) => SierraClass, + SierraClasses: (ClassHash) => FlattenedSierraClass, /// Store contract information according to its contract address ContractInfo: (ContractAddress) => GenericContractInfo, /// Store contract storage diff --git a/crates/katana/storage/provider/src/lib.rs b/crates/katana/storage/provider/src/lib.rs index ce11642b2d..351cdbd2d4 100644 --- a/crates/katana/storage/provider/src/lib.rs +++ b/crates/katana/storage/provider/src/lib.rs @@ -7,8 +7,8 @@ use katana_primitives::block::{ SealedBlockWithStatus, }; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, GenericContractInfo, - SierraClass, StorageKey, StorageValue, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + GenericContractInfo, StorageKey, StorageValue, }; use katana_primitives::receipt::Receipt; use katana_primitives::state::{StateUpdates, StateUpdatesWithDeclaredClasses}; @@ -228,7 +228,7 @@ where self.provider.class(hash) } - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { self.provider.sierra_class(hash) } } @@ -289,7 +289,7 @@ where self.provider.set_compiled_class_hash_of_class_hash(hash, compiled_hash) } - fn set_sierra_class(&self, hash: ClassHash, sierra: SierraClass) -> Result<()> { + fn set_sierra_class(&self, hash: ClassHash, sierra: FlattenedSierraClass) -> Result<()> { self.provider.set_sierra_class(hash, sierra) } } diff --git a/crates/katana/storage/provider/src/providers/db/state.rs b/crates/katana/storage/provider/src/providers/db/state.rs index 88ecb50144..e302a58c91 100644 --- a/crates/katana/storage/provider/src/providers/db/state.rs +++ b/crates/katana/storage/provider/src/providers/db/state.rs @@ -13,8 +13,8 @@ use katana_db::tables::{ }; use katana_primitives::block::BlockNumber; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, GenericContractInfo, - Nonce, SierraClass, StorageKey, StorageValue, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + GenericContractInfo, Nonce, StorageKey, StorageValue, }; use super::DbProvider; @@ -92,7 +92,7 @@ impl ContractClassWriter for DbProvider { })? } - fn set_sierra_class(&self, hash: ClassHash, sierra: SierraClass) -> Result<()> { + fn set_sierra_class(&self, hash: ClassHash, sierra: FlattenedSierraClass) -> Result<()> { self.0.update(move |db_tx| -> Result<()> { db_tx.put::(hash, sierra)?; Ok(()) @@ -123,7 +123,7 @@ impl ContractClassProvider for LatestStateProvider { Ok(hash) } - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { let class = self.0.get::(hash)?; Ok(class) } @@ -228,7 +228,7 @@ impl ContractClassProvider for HistoricalStateProvider { } } - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { if self.compiled_class_hash_of_class_hash(hash)?.is_some() { self.tx.get::(hash).map_err(|e| e.into()) } else { diff --git a/crates/katana/storage/provider/src/providers/fork/backend.rs b/crates/katana/storage/provider/src/providers/fork/backend.rs index 885974482f..d8c143ff65 100644 --- a/crates/katana/storage/provider/src/providers/fork/backend.rs +++ b/crates/katana/storage/provider/src/providers/fork/backend.rs @@ -12,12 +12,12 @@ use futures::stream::Stream; use futures::{Future, FutureExt}; use katana_primitives::block::BlockHashOrNumber; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, GenericContractInfo, - Nonce, SierraClass, StorageKey, StorageValue, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + GenericContractInfo, Nonce, StorageKey, StorageValue, }; use katana_primitives::conversion::rpc::{ - compiled_class_hash_from_flattened_sierra_class, legacy_rpc_to_inner_compiled_class, - sierra_to_compiled_class, + compiled_class_hash_from_flattened_sierra_class, flattened_sierra_to_compiled_class, + legacy_rpc_to_inner_compiled_class, }; use katana_primitives::FieldElement; use parking_lot::Mutex; @@ -389,7 +389,7 @@ impl StateProvider for SharedStateProvider { } impl ContractClassProvider for SharedStateProvider { - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { if let class @ Some(_) = self.0.shared_contract_classes.sierra_classes.read().get(&hash) { return Ok(class.cloned()); } @@ -463,7 +463,7 @@ impl ContractClassProvider for SharedStateProvider { } ContractClass::Sierra(sierra_class) => { - let (_, compiled_class_hash, compiled_class) = sierra_to_compiled_class(&sierra_class).map_err(|e|{ + let (_, compiled_class_hash, compiled_class) = flattened_sierra_to_compiled_class(&sierra_class).map_err(|e|{ error!(target: "forked_backend", "error while parsing sierra class {hash:#x}: {e}"); e })?; diff --git a/crates/katana/storage/provider/src/providers/fork/mod.rs b/crates/katana/storage/provider/src/providers/fork/mod.rs index 04e9a59c6e..a995c1513d 100644 --- a/crates/katana/storage/provider/src/providers/fork/mod.rs +++ b/crates/katana/storage/provider/src/providers/fork/mod.rs @@ -11,7 +11,7 @@ use katana_primitives::block::{ SealedBlockWithStatus, }; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, SierraClass, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, }; use katana_primitives::receipt::Receipt; use katana_primitives::state::{StateUpdates, StateUpdatesWithDeclaredClasses}; @@ -446,7 +446,7 @@ impl ContractClassWriter for ForkedProvider { Ok(()) } - fn set_sierra_class(&self, hash: ClassHash, sierra: SierraClass) -> Result<()> { + fn set_sierra_class(&self, hash: ClassHash, sierra: FlattenedSierraClass) -> Result<()> { self.state.shared_contract_classes.sierra_classes.write().insert(hash, sierra); Ok(()) } diff --git a/crates/katana/storage/provider/src/providers/fork/state.rs b/crates/katana/storage/provider/src/providers/fork/state.rs index bee548a930..5f9b5482f6 100644 --- a/crates/katana/storage/provider/src/providers/fork/state.rs +++ b/crates/katana/storage/provider/src/providers/fork/state.rs @@ -2,8 +2,8 @@ use std::sync::Arc; use anyhow::Result; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, GenericContractInfo, - Nonce, SierraClass, StorageKey, StorageValue, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + GenericContractInfo, Nonce, StorageKey, StorageValue, }; use super::backend::SharedStateProvider; @@ -63,7 +63,7 @@ impl StateProvider for ForkedStateDb { } impl ContractClassProvider for CacheStateDb { - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { if let class @ Some(_) = self.shared_contract_classes.sierra_classes.read().get(&hash) { return Ok(class.cloned()); } @@ -115,7 +115,7 @@ impl StateProvider for LatestStateProvider { } impl ContractClassProvider for LatestStateProvider { - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { ContractClassProvider::sierra_class(&self.0, hash) } @@ -172,7 +172,7 @@ impl StateProvider for ForkedSnapshot { } impl ContractClassProvider for ForkedSnapshot { - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { if self.inner.compiled_class_hashes.get(&hash).is_some() { Ok(self.classes.sierra_classes.read().get(&hash).cloned()) } else { diff --git a/crates/katana/storage/provider/src/providers/in_memory/cache.rs b/crates/katana/storage/provider/src/providers/in_memory/cache.rs index 960d5307be..43ad2a33e8 100644 --- a/crates/katana/storage/provider/src/providers/in_memory/cache.rs +++ b/crates/katana/storage/provider/src/providers/in_memory/cache.rs @@ -4,8 +4,8 @@ use std::sync::Arc; use katana_db::models::block::StoredBlockBodyIndices; use katana_primitives::block::{BlockHash, BlockNumber, FinalityStatus, Header}; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, GenericContractInfo, - SierraClass, StorageKey, StorageValue, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + GenericContractInfo, StorageKey, StorageValue, }; use katana_primitives::receipt::Receipt; use katana_primitives::state::{StateUpdates, StateUpdatesWithDeclaredClasses}; @@ -15,7 +15,7 @@ use parking_lot::RwLock; type ContractStorageMap = HashMap>; type ContractStateMap = HashMap; -type SierraClassesMap = HashMap; +type SierraClassesMap = HashMap; type CompiledClassesMap = HashMap; type CompiledClassHashesMap = HashMap; diff --git a/crates/katana/storage/provider/src/providers/in_memory/mod.rs b/crates/katana/storage/provider/src/providers/in_memory/mod.rs index 7cb6e77cc1..a0f0026086 100644 --- a/crates/katana/storage/provider/src/providers/in_memory/mod.rs +++ b/crates/katana/storage/provider/src/providers/in_memory/mod.rs @@ -11,7 +11,7 @@ use katana_primitives::block::{ SealedBlockWithStatus, }; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, SierraClass, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, }; use katana_primitives::receipt::Receipt; use katana_primitives::state::{StateUpdates, StateUpdatesWithDeclaredClasses}; @@ -443,7 +443,7 @@ impl ContractClassWriter for InMemoryProvider { Ok(()) } - fn set_sierra_class(&self, hash: ClassHash, sierra: SierraClass) -> Result<()> { + fn set_sierra_class(&self, hash: ClassHash, sierra: FlattenedSierraClass) -> Result<()> { self.state.shared_contract_classes.sierra_classes.write().insert(hash, sierra); Ok(()) } diff --git a/crates/katana/storage/provider/src/providers/in_memory/state.rs b/crates/katana/storage/provider/src/providers/in_memory/state.rs index dcce6de21a..c12c3bdfec 100644 --- a/crates/katana/storage/provider/src/providers/in_memory/state.rs +++ b/crates/katana/storage/provider/src/providers/in_memory/state.rs @@ -3,8 +3,8 @@ use std::sync::Arc; use katana_primitives::block::BlockNumber; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, GenericContractInfo, - Nonce, SierraClass, StorageKey, StorageValue, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + GenericContractInfo, Nonce, StorageKey, StorageValue, }; use super::cache::{CacheSnapshotWithoutClasses, CacheStateDb, SharedContractClasses}; @@ -146,7 +146,7 @@ impl StateProvider for InMemorySnapshot { } impl ContractClassProvider for InMemorySnapshot { - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { if self.compiled_class_hash_of_class_hash(hash)?.is_some() { Ok(self.classes.sierra_classes.read().get(&hash).cloned()) } else { @@ -202,7 +202,7 @@ impl StateProvider for LatestStateProvider { } impl ContractClassProvider for LatestStateProvider { - fn sierra_class(&self, hash: ClassHash) -> Result> { + fn sierra_class(&self, hash: ClassHash) -> Result> { let class = self.0.shared_contract_classes.sierra_classes.read().get(&hash).cloned(); Ok(class) } diff --git a/crates/katana/storage/provider/src/traits/contract.rs b/crates/katana/storage/provider/src/traits/contract.rs index 4645913ccb..deb172b627 100644 --- a/crates/katana/storage/provider/src/traits/contract.rs +++ b/crates/katana/storage/provider/src/traits/contract.rs @@ -1,7 +1,7 @@ use anyhow::Result; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, GenericContractInfo, - SierraClass, + ClassHash, CompiledClassHash, CompiledContractClass, ContractAddress, FlattenedSierraClass, + GenericContractInfo, }; #[auto_impl::auto_impl(&, Box, Arc)] @@ -23,7 +23,7 @@ pub trait ContractClassProvider: Send + Sync { fn class(&self, hash: ClassHash) -> Result>; /// Retrieves the Sierra class definition of a contract class given its class hash. - fn sierra_class(&self, hash: ClassHash) -> Result>; + fn sierra_class(&self, hash: ClassHash) -> Result>; } // TEMP: added mainly for compatibility reason. might be removed in the future. @@ -40,5 +40,5 @@ pub trait ContractClassWriter: Send + Sync { fn set_class(&self, hash: ClassHash, class: CompiledContractClass) -> Result<()>; /// Retrieves the Sierra class definition of a contract class given its class hash. - fn set_sierra_class(&self, hash: ClassHash, sierra: SierraClass) -> Result<()>; + fn set_sierra_class(&self, hash: ClassHash, sierra: FlattenedSierraClass) -> Result<()>; } diff --git a/crates/katana/storage/provider/tests/class.rs b/crates/katana/storage/provider/tests/class.rs index 2fb15a3cea..8ab6cbaf4a 100644 --- a/crates/katana/storage/provider/tests/class.rs +++ b/crates/katana/storage/provider/tests/class.rs @@ -8,7 +8,7 @@ use fixtures::{ use katana_core::constants::{ERC20_CONTRACT, UDC_CONTRACT}; use katana_primitives::block::{BlockHashOrNumber, BlockNumber}; use katana_primitives::contract::{ - ClassHash, CompiledClassHash, CompiledContractClass, SierraClass, + ClassHash, CompiledClassHash, CompiledContractClass, FlattenedSierraClass, }; use katana_provider::providers::fork::ForkedProvider; use katana_provider::providers::in_memory::InMemoryProvider; @@ -17,8 +17,12 @@ use katana_provider::BlockchainProvider; use rstest_reuse::{self, *}; use starknet::macros::felt; -type ClassHashAndClasses = - (ClassHash, Option, Option, Option); +type ClassHashAndClasses = ( + ClassHash, + Option, + Option, + Option, +); fn assert_state_provider_class( state_provider: Box, diff --git a/crates/katana/storage/provider/tests/fixtures.rs b/crates/katana/storage/provider/tests/fixtures.rs index 3dacb8735d..3c5c6af25a 100644 --- a/crates/katana/storage/provider/tests/fixtures.rs +++ b/crates/katana/storage/provider/tests/fixtures.rs @@ -6,7 +6,9 @@ use katana_db::mdbx; use katana_primitives::block::{ BlockHashOrNumber, FinalityStatus, Header, SealedBlock, SealedBlockWithStatus, SealedHeader, }; -use katana_primitives::contract::{CompiledContractClass, ContractAddress, SierraClass}; +use katana_primitives::contract::{ + CompiledContractClass, ContractAddress, FlattenedSierraClass, SierraClass, +}; use katana_primitives::state::{StateUpdates, StateUpdatesWithDeclaredClasses}; use katana_primitives::utils::class::parse_compiled_class; use katana_provider::providers::db::DbProvider; @@ -30,8 +32,8 @@ lazy_static! { pub static ref DOJO_WORLD_COMPILED_CLASS: CompiledContractClass = parse_compiled_class(include_str!("../../db/benches/artifacts/dojo_world_240.json")) .unwrap(); - pub static ref DOJO_WORLD_SIERRA_CLASS: SierraClass = { - let sierra_class: starknet::core::types::contract::SierraClass = + pub static ref DOJO_WORLD_SIERRA_CLASS: FlattenedSierraClass = { + let sierra_class: SierraClass = serde_json::from_str(include_str!("../../db/benches/artifacts/dojo_world_240.json")) .unwrap(); sierra_class.flatten().unwrap() diff --git a/crates/sozo/src/commands/options/account.rs b/crates/sozo/src/commands/options/account.rs index 7aa027a7bc..ad91c21ce8 100644 --- a/crates/sozo/src/commands/options/account.rs +++ b/crates/sozo/src/commands/options/account.rs @@ -55,11 +55,7 @@ impl AccountOptions { signer, account_address, chain_id, - // This is made under the assumption that the accounts used with `sozo` commands would - // be one of the `katana` dev accounts. The dev accounts deployed on `katana` are - // legacy accounts (Cairo 0). - // TODO: Make this configurable - ExecutionEncoding::Legacy, + ExecutionEncoding::New, )) } diff --git a/crates/sozo/src/ops/migration/migration_test.rs b/crates/sozo/src/ops/migration/migration_test.rs index 02742afd16..14e8a8b658 100644 --- a/crates/sozo/src/ops/migration/migration_test.rs +++ b/crates/sozo/src/ops/migration/migration_test.rs @@ -80,7 +80,7 @@ async fn migrate_with_small_fee_multiplier_will_fail() { )), sequencer.raw_account().account_address, chain_id::TESTNET, - ExecutionEncoding::Legacy, + ExecutionEncoding::New, ); assert!( @@ -125,7 +125,7 @@ async fn migration_from_remote() { )), sequencer.raw_account().account_address, chain_id::TESTNET, - ExecutionEncoding::Legacy, + ExecutionEncoding::New, ); let manifest = Manifest::load_from_path(target_dir.join("manifest.json")).unwrap(); diff --git a/crates/torii/types-test/Scarb.lock b/crates/torii/types-test/Scarb.lock index 49eb278bdc..554df2c397 100644 --- a/crates/torii/types-test/Scarb.lock +++ b/crates/torii/types-test/Scarb.lock @@ -15,7 +15,7 @@ source = "git+https://github.com/dojoengine/dojo?tag=v0.3.11#1e651b5d4d3b79b14a7 [[package]] name = "types_test" -version = "0.4.1" +version = "0.4.4" dependencies = [ "dojo", ] diff --git a/crates/torii/types-test/Scarb.toml b/crates/torii/types-test/Scarb.toml index c1c2085b08..261261212c 100644 --- a/crates/torii/types-test/Scarb.toml +++ b/crates/torii/types-test/Scarb.toml @@ -10,7 +10,7 @@ sierra-replace-ids = true dojo = { path = "../../dojo-core" } [[target.dojo]] -build-external-contracts = [] +build-external-contracts = [ ] #[tool.dojo.world] #name = "types-test" @@ -21,6 +21,6 @@ build-external-contracts = [] # socials.x = "https://twitter.com/dojostarknet" [tool.dojo.env] -rpc_url = "http://localhost:5050/" -account_address = "0x517ececd29116499f4a1b64b094da79ba08dfd54a3edaa316134c41f8160973" +account_address = "0x9238c8ca6b3c6ab45a793593b13d98797ccd3bda179d313553e51fee114624" private_key = "0x1800000000300000180000000000030000000000003006001800006600" +rpc_url = "http://localhost:5050/" diff --git a/examples/rpc/starknet/starknet_getClass.hurl b/examples/rpc/starknet/starknet_getClass.hurl index a52b0b27c6..1d76919b52 100644 --- a/examples/rpc/starknet/starknet_getClass.hurl +++ b/examples/rpc/starknet/starknet_getClass.hurl @@ -5,7 +5,7 @@ Content-Type: application/json "method": "starknet_getClass", "params": [ "latest", - "0x02a8846878b6ad1f54f6ba46f5f40e11cee755c677f130b2c4b60566c9003f1f" + "0x016c6081eb34ad1e0c5513234ed0c025b3c7f305902d291bad534cd6474c85bc" ], "id":1 } diff --git a/examples/rpc/starknet/starknet_getClassAt.hurl b/examples/rpc/starknet/starknet_getClassAt.hurl index c7ac14c1c0..fe0a0a4ff0 100644 --- a/examples/rpc/starknet/starknet_getClassAt.hurl +++ b/examples/rpc/starknet/starknet_getClassAt.hurl @@ -5,7 +5,7 @@ Content-Type: application/json "method": "starknet_getClassAt", "params": [ "latest", - "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" + "0x9238c8ca6b3c6ab45a793593b13d98797ccd3bda179d313553e51fee114624" ], "id":1 } diff --git a/examples/rpc/starknet/starknet_getClassHashAt.hurl b/examples/rpc/starknet/starknet_getClassHashAt.hurl index ecbfc0251f..83238f1469 100644 --- a/examples/rpc/starknet/starknet_getClassHashAt.hurl +++ b/examples/rpc/starknet/starknet_getClassHashAt.hurl @@ -5,7 +5,7 @@ Content-Type: application/json "method": "starknet_getClassHashAt", "params": [ "pending", - "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" + "0x9238c8ca6b3c6ab45a793593b13d98797ccd3bda179d313553e51fee114624" ], "id": 1 } diff --git a/examples/rpc/starknet/starknet_getNonce.hurl b/examples/rpc/starknet/starknet_getNonce.hurl index f95bee24e2..57a08672e8 100644 --- a/examples/rpc/starknet/starknet_getNonce.hurl +++ b/examples/rpc/starknet/starknet_getNonce.hurl @@ -5,7 +5,7 @@ Content-Type: application/json "method": "starknet_getNonce", "params": [ "latest", - "0x517ececd29116499f4a1b64b094da79ba08dfd54a3edaa316134c41f8160973" + "0x9238c8ca6b3c6ab45a793593b13d98797ccd3bda179d313553e51fee114624" ], "id":1 } diff --git a/examples/spawn-and-move/Scarb.lock b/examples/spawn-and-move/Scarb.lock index e2260b3142..ca51af1a48 100644 --- a/examples/spawn-and-move/Scarb.lock +++ b/examples/spawn-and-move/Scarb.lock @@ -10,7 +10,7 @@ dependencies = [ [[package]] name = "dojo_examples" -version = "0.4.2" +version = "0.4.4" dependencies = [ "dojo", ] diff --git a/examples/spawn-and-move/Scarb.toml b/examples/spawn-and-move/Scarb.toml index 7b95bad166..7662632bfb 100644 --- a/examples/spawn-and-move/Scarb.toml +++ b/examples/spawn-and-move/Scarb.toml @@ -23,6 +23,6 @@ name = "example" rpc_url = "http://localhost:5050/" # Default account for katana with seed = 0 -account_address = "0x517ececd29116499f4a1b64b094da79ba08dfd54a3edaa316134c41f8160973" +account_address = "0x9238c8ca6b3c6ab45a793593b13d98797ccd3bda179d313553e51fee114624" private_key = "0x1800000000300000180000000000030000000000003006001800006600" world_address = "0x5010c31f127114c6198df8a5239e2b7a5151e1156fb43791e37e7385faa8138"