diff --git a/avm-transpiler/src/transpile.rs b/avm-transpiler/src/transpile.rs index cd16bd6988d3..64cff970c263 100644 --- a/avm-transpiler/src/transpile.rs +++ b/avm-transpiler/src/transpile.rs @@ -1588,7 +1588,7 @@ fn handle_get_contract_instance( } assert!(inputs.len() == 1); - assert!(destinations.len() == 2); + assert!(destinations.len() == 1); let member_idx = match function { "avmOpcodeGetContractInstanceDeployer" => ContractInstanceMember::DEPLOYER, @@ -1604,30 +1604,27 @@ fn handle_get_contract_instance( }; let dest_offset_maybe = destinations[0]; - let dest_offset = match dest_offset_maybe { - ValueOrArray::MemoryAddress(offset) => offset, - _ => panic!("GETCONTRACTINSTANCE dst destination should be a single value"), + let (dest_offset, dest_size) = match dest_offset_maybe { + ValueOrArray::HeapArray(HeapArray { pointer, size }) => (pointer, size), + _ => panic!("GETCONTRACTINSTANCE dst destination should be a HeapArray"), }; - let exists_offset_maybe = destinations[1]; - let exists_offset = match exists_offset_maybe { - ValueOrArray::MemoryAddress(offset) => offset, - _ => panic!("GETCONTRACTINSTANCE exists destination should be a single value"), - }; + assert!( + dest_size == 2, + "GETCONTRACTINSTANCE destination should have length two: (exists: bool, member: Field)" + ); avm_instrs.push(AvmInstruction { opcode: AvmOpcode::GETCONTRACTINSTANCE, indirect: Some( AddressingModeBuilder::default() .direct_operand(&address_offset) - .direct_operand(&dest_offset) - .direct_operand(&exists_offset) + .indirect_operand(&dest_offset) .build(), ), operands: vec![ AvmOperand::U16 { value: address_offset.to_usize() as u16 }, AvmOperand::U16 { value: dest_offset.to_usize() as u16 }, - AvmOperand::U16 { value: exists_offset.to_usize() as u16 }, ], immediates: vec![AvmOperand::U8 { value: member_idx as u8 }], ..Default::default() diff --git a/barretenberg/cpp/pil/vm2/instr_fetching.pil b/barretenberg/cpp/pil/vm2/instr_fetching.pil index 0d019a90e44c..3138859e5f06 100644 --- a/barretenberg/cpp/pil/vm2/instr_fetching.pil +++ b/barretenberg/cpp/pil/vm2/instr_fetching.pil @@ -228,7 +228,6 @@ pol commit sel_op_dc_13; pol commit sel_op_dc_14; pol commit sel_op_dc_15; pol commit sel_op_dc_16; -pol commit sel_op_dc_17; #[WIRE_INSTRUCTION_INFO] sel_pc_in_range { @@ -242,7 +241,7 @@ sel_pc_in_range { sel_op_dc_4, sel_op_dc_5, sel_op_dc_6, sel_op_dc_7, sel_op_dc_8, sel_op_dc_9, sel_op_dc_10, sel_op_dc_11, sel_op_dc_12, sel_op_dc_13, sel_op_dc_14, sel_op_dc_15, - sel_op_dc_16, sel_op_dc_17 + sel_op_dc_16 } in precomputed.sel_range_8 { precomputed.clk, @@ -255,7 +254,7 @@ precomputed.sel_range_8 { precomputed.sel_op_dc_4, precomputed.sel_op_dc_5, precomputed.sel_op_dc_6, precomputed.sel_op_dc_7, precomputed.sel_op_dc_8, precomputed.sel_op_dc_9, precomputed.sel_op_dc_10, precomputed.sel_op_dc_11, precomputed.sel_op_dc_12, precomputed.sel_op_dc_13, precomputed.sel_op_dc_14, precomputed.sel_op_dc_15, - precomputed.sel_op_dc_16, precomputed.sel_op_dc_17 + precomputed.sel_op_dc_16 }; @@ -274,18 +273,18 @@ pol commit op1, op2, op3, op4, op5, op6, op7; // The following relations decomposing operands (indirect, op1, ...) into bytes were code-generated by // a cpp test in op_decomposition.test.cpp. // Remark: Upper-casing the alias needs to be edited manually (not code-generated)! -pol SEL_OP_DC_18 = sel_op_dc_2 + sel_op_dc_6; +pol SEL_OP_DC_17 = sel_op_dc_2 + sel_op_dc_6; #[INDIRECT_BYTES_DECOMPOSITION] -indirect = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd1 * 2**8 + bd2 * 2**0) + SEL_OP_DC_18 * (bd1 * 2**0)); +indirect = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd1 * 2**8 + bd2 * 2**0) + SEL_OP_DC_17 * (bd1 * 2**0)); #[OP1_BYTES_DECOMPOSITION] op1 = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd3 * 2**8 + bd4 * 2**0) + sel_op_dc_2 * (bd2 * 2**8 + bd3 * 2**0) + sel_op_dc_6 * (bd2 * 2**0) + sel_op_dc_15 * (bd1 * 2**24 + bd2 * 2**16 + bd3 * 2**8 + bd4 * 2**0)); #[OP2_BYTES_DECOMPOSITION] op2 = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd5 * 2**8 + bd6 * 2**0) + sel_op_dc_3 * (bd4 * 2**8 + bd5 * 2**0) + sel_op_dc_6 * (bd3 * 2**0) + sel_op_dc_8 * (bd4 * 2**0) + sel_op_dc_16 * (bd4 * 2**24 + bd5 * 2**16 + bd6 * 2**8 + bd7 * 2**0)); #[OP3_BYTES_DECOMPOSITION] -op3 = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd7 * 2**8 + bd8 * 2**0) + sel_op_dc_4 * (bd6 * 2**8 + bd7 * 2**0) + sel_op_dc_9 * (bd5 * 2**248 + bd6 * 2**240 + bd7 * 2**232 + bd8 * 2**224 + bd9 * 2**216 + bd10 * 2**208 + bd11 * 2**200 + bd12 * 2**192 + bd13 * 2**184 + bd14 * 2**176 + bd15 * 2**168 + bd16 * 2**160 + bd17 * 2**152 + bd18 * 2**144 + bd19 * 2**136 + bd20 * 2**128 + bd21 * 2**120 + bd22 * 2**112 + bd23 * 2**104 + bd24 * 2**96 + bd25 * 2**88 + bd26 * 2**80 + bd27 * 2**72 + bd28 * 2**64 + bd29 * 2**56 + bd30 * 2**48 + bd31 * 2**40 + bd32 * 2**32 + bd33 * 2**24 + bd34 * 2**16 + bd35 * 2**8 + bd36 * 2**0) + sel_op_dc_10 * (bd5 * 2**120 + bd6 * 2**112 + bd7 * 2**104 + bd8 * 2**96 + bd9 * 2**88 + bd10 * 2**80 + bd11 * 2**72 + bd12 * 2**64 + bd13 * 2**56 + bd14 * 2**48 + bd15 * 2**40 + bd16 * 2**32 + bd17 * 2**24 + bd18 * 2**16 + bd19 * 2**8 + bd20 * 2**0) + sel_op_dc_11 * (bd5 * 2**56 + bd6 * 2**48 + bd7 * 2**40 + bd8 * 2**32 + bd9 * 2**24 + bd10 * 2**16 + bd11 * 2**8 + bd12 * 2**0) + sel_op_dc_12 * (bd5 * 2**24 + bd6 * 2**16 + bd7 * 2**8 + bd8 * 2**0) + sel_op_dc_13 * (bd5 * 2**8 + bd6 * 2**0) + sel_op_dc_14 * (bd4 * 2**0) + sel_op_dc_17 * (bd6 * 2**0)); +op3 = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd7 * 2**8 + bd8 * 2**0) + sel_op_dc_4 * (bd6 * 2**8 + bd7 * 2**0) + sel_op_dc_7 * (bd6 * 2**0) + sel_op_dc_9 * (bd5 * 2**248 + bd6 * 2**240 + bd7 * 2**232 + bd8 * 2**224 + bd9 * 2**216 + bd10 * 2**208 + bd11 * 2**200 + bd12 * 2**192 + bd13 * 2**184 + bd14 * 2**176 + bd15 * 2**168 + bd16 * 2**160 + bd17 * 2**152 + bd18 * 2**144 + bd19 * 2**136 + bd20 * 2**128 + bd21 * 2**120 + bd22 * 2**112 + bd23 * 2**104 + bd24 * 2**96 + bd25 * 2**88 + bd26 * 2**80 + bd27 * 2**72 + bd28 * 2**64 + bd29 * 2**56 + bd30 * 2**48 + bd31 * 2**40 + bd32 * 2**32 + bd33 * 2**24 + bd34 * 2**16 + bd35 * 2**8 + bd36 * 2**0) + sel_op_dc_10 * (bd5 * 2**120 + bd6 * 2**112 + bd7 * 2**104 + bd8 * 2**96 + bd9 * 2**88 + bd10 * 2**80 + bd11 * 2**72 + bd12 * 2**64 + bd13 * 2**56 + bd14 * 2**48 + bd15 * 2**40 + bd16 * 2**32 + bd17 * 2**24 + bd18 * 2**16 + bd19 * 2**8 + bd20 * 2**0) + sel_op_dc_11 * (bd5 * 2**56 + bd6 * 2**48 + bd7 * 2**40 + bd8 * 2**32 + bd9 * 2**24 + bd10 * 2**16 + bd11 * 2**8 + bd12 * 2**0) + sel_op_dc_12 * (bd5 * 2**24 + bd6 * 2**16 + bd7 * 2**8 + bd8 * 2**0) + sel_op_dc_13 * (bd5 * 2**8 + bd6 * 2**0) + sel_op_dc_14 * (bd4 * 2**0)); #[OP4_BYTES_DECOMPOSITION] -op4 = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd9 * 2**8 + bd10 * 2**0) + sel_op_dc_5 * (bd8 * 2**8 + bd9 * 2**0) + sel_op_dc_7 * (bd8 * 2**0)); +op4 = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd9 * 2**8 + bd10 * 2**0) + sel_op_dc_5 * (bd8 * 2**8 + bd9 * 2**0)); #[OP5_BYTES_DECOMPOSITION] op5 = (1 - PARSING_ERROR_EXCEPT_TAG_ERROR) * (sel_op_dc_0 * (bd11 * 2**8 + bd12 * 2**0)); #[OP6_BYTES_DECOMPOSITION] diff --git a/barretenberg/cpp/src/barretenberg/vm2/common/instruction_spec.cpp b/barretenberg/cpp/src/barretenberg/vm2/common/instruction_spec.cpp index 49c65eca5567..8703eeef8484 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/common/instruction_spec.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/common/instruction_spec.cpp @@ -10,74 +10,74 @@ namespace bb::avm2 { namespace { // This structure is code-generated (but manually set) by the test: DecompositionSelectors.CodeGen const std::unordered_map> WireOpCode_DC_SELECTORS = { - { WireOpCode::ADD_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::ADD_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SUB_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::SUB_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::MUL_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::MUL_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::DIV_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::DIV_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::FDIV_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::FDIV_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::EQ_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::EQ_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::LT_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::LT_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::LTE_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::LTE_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::AND_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::AND_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::OR_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::OR_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::XOR_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::XOR_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::NOT_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::NOT_16, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SHL_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::SHL_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SHR_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::SHR_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::CAST_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::CAST_16, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } }, - { WireOpCode::GETENVVAR_16, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::CALLDATACOPY, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SUCCESSCOPY, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::RETURNDATASIZE, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::RETURNDATACOPY, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::JUMP_32, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, - { WireOpCode::JUMPI_32, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } }, - { WireOpCode::INTERNALCALL, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, - { WireOpCode::INTERNALRETURN, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SET_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, - { WireOpCode::SET_16, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } }, - { WireOpCode::SET_32, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }, - { WireOpCode::SET_64, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SET_128, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SET_FF, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::MOV_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::MOV_16, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SLOAD, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SSTORE, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::NOTEHASHEXISTS, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::EMITNOTEHASH, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::NULLIFIEREXISTS, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::EMITNULLIFIER, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::L1TOL2MSGEXISTS, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::GETCONTRACTINSTANCE, { 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::EMITUNENCRYPTEDLOG, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SENDL2TOL1MSG, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::CALL, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::STATICCALL, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::RETURN, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::REVERT_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::REVERT_16, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::DEBUGLOG, { 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::POSEIDON2PERM, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::SHA256COMPRESSION, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::KECCAKF1600, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::ECADD, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - { WireOpCode::TORADIXBE, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::ADD_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::ADD_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SUB_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::SUB_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::MUL_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::MUL_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::DIV_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::DIV_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::FDIV_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::FDIV_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::EQ_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::EQ_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::LT_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::LT_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::LTE_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::LTE_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::AND_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::AND_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::OR_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::OR_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::XOR_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::XOR_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::NOT_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::NOT_16, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SHL_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::SHL_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SHR_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::SHR_16, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::CAST_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::CAST_16, { 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::GETENVVAR_16, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::CALLDATACOPY, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SUCCESSCOPY, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::RETURNDATASIZE, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::RETURNDATACOPY, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::JUMP_32, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } }, + { WireOpCode::JUMPI_32, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 } }, + { WireOpCode::INTERNALCALL, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } }, + { WireOpCode::INTERNALRETURN, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SET_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 } }, + { WireOpCode::SET_16, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0 } }, + { WireOpCode::SET_32, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 } }, + { WireOpCode::SET_64, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0 } }, + { WireOpCode::SET_128, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SET_FF, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::MOV_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::MOV_16, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SLOAD, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SSTORE, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::NOTEHASHEXISTS, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::EMITNOTEHASH, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::NULLIFIEREXISTS, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::EMITNULLIFIER, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::L1TOL2MSGEXISTS, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::GETCONTRACTINSTANCE, { 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::EMITUNENCRYPTEDLOG, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SENDL2TOL1MSG, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::CALL, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::STATICCALL, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::RETURN, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::REVERT_8, { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::REVERT_16, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::DEBUGLOG, { 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::POSEIDON2PERM, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::SHA256COMPRESSION, { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::KECCAKF1600, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::ECADD, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, + { WireOpCode::TORADIXBE, { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, }; } // anonymous namespace @@ -325,7 +325,7 @@ const std::unordered_map WIRE_INSTRUCTION_SPEC .op_dc_selectors = WireOpCode_DC_SELECTORS.at(WireOpCode::L1TOL2MSGEXISTS) } }, { WireOpCode::GETCONTRACTINSTANCE, { .exec_opcode = ExecutionOpCode::GETCONTRACTINSTANCE, - .size_in_bytes = 9, + .size_in_bytes = 7, .op_dc_selectors = WireOpCode_DC_SELECTORS.at(WireOpCode::GETCONTRACTINSTANCE) } }, { WireOpCode::EMITUNENCRYPTEDLOG, { .exec_opcode = ExecutionOpCode::EMITUNENCRYPTEDLOG, diff --git a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/instr_fetching.test.cpp b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/instr_fetching.test.cpp index c49395b7c059..ab23cd7ef9b6 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/instr_fetching.test.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/constraining/relations/instr_fetching.test.cpp @@ -590,7 +590,6 @@ TEST(InstrFetchingConstrainingTest, DISABLED_NegativeWrongWireInstructionSpecInt C::instr_fetching_sel_op_dc_8, C::instr_fetching_sel_op_dc_9, C::instr_fetching_sel_op_dc_10, C::instr_fetching_sel_op_dc_11, C::instr_fetching_sel_op_dc_12, C::instr_fetching_sel_op_dc_13, C::instr_fetching_sel_op_dc_14, C::instr_fetching_sel_op_dc_15, C::instr_fetching_sel_op_dc_16, - C::instr_fetching_sel_op_dc_17, }; // Mutate execution opcode diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp index 600ee463b986..01b43f0914ee 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/columns.hpp @@ -9,7 +9,7 @@ namespace bb::avm2 { // clang-format off #define AVM2_PRECOMPUTED_ENTITIES_E(e) e precomputed_bitwise_input_a, e precomputed_bitwise_input_b, e precomputed_bitwise_op_id, e precomputed_bitwise_output, e precomputed_clk, e precomputed_exec_opcode, e precomputed_exec_opcode_base_da_gas, e precomputed_exec_opcode_base_l2_gas, e precomputed_exec_opcode_dynamic_da_gas, e precomputed_exec_opcode_dynamic_l2_gas, e precomputed_exec_opcode_value, e precomputed_first_row, e precomputed_instr_size, e precomputed_integral_tag_length, e precomputed_mem_op_reg1, e precomputed_mem_op_reg2, e precomputed_mem_op_reg3, e precomputed_mem_op_reg4, e precomputed_mem_op_reg5, e precomputed_mem_op_reg6, e precomputed_mem_op_reg7, e precomputed_opcode_out_of_range, e precomputed_p_decomposition_limb, e precomputed_p_decomposition_limb_index, e precomputed_p_decomposition_radix, e precomputed_power_of_2, e precomputed_rw_1, e precomputed_rw_2, e precomputed_rw_3, e precomputed_rw_4, e precomputed_rw_5, e precomputed_rw_6, e precomputed_rw_7, e precomputed_sel_bitwise, e precomputed_sel_dispatch_alu, e precomputed_sel_dispatch_bitwise, e precomputed_sel_dispatch_ecc, e precomputed_sel_dispatch_poseidon_perm, e precomputed_sel_dispatch_to_radix, e precomputed_sel_has_tag, e precomputed_sel_integral_tag, e precomputed_sel_mem_tag_out_of_range, e precomputed_sel_op_dc_0, e precomputed_sel_op_dc_1, e precomputed_sel_op_dc_10, e precomputed_sel_op_dc_11, e precomputed_sel_op_dc_12, e precomputed_sel_op_dc_13, e precomputed_sel_op_dc_14, e precomputed_sel_op_dc_15, e precomputed_sel_op_dc_16, e precomputed_sel_op_dc_17, e precomputed_sel_op_dc_2, e precomputed_sel_op_dc_3, e precomputed_sel_op_dc_4, e precomputed_sel_op_dc_5, e precomputed_sel_op_dc_6, e precomputed_sel_op_dc_7, e precomputed_sel_op_dc_8, e precomputed_sel_op_dc_9, e precomputed_sel_p_decomposition, e precomputed_sel_range_16, e precomputed_sel_range_8, e precomputed_sel_sha256_compression, e precomputed_sel_tag_is_op2, e precomputed_sel_to_radix_safe_limbs, e precomputed_sha256_compression_round_constant, e precomputed_subtrace_operation_id, e precomputed_to_radix_safe_limbs, e precomputed_zero -#define AVM2_WIRE_ENTITIES_E(e) e execution_input, e address_derivation_address, e address_derivation_address_y, e address_derivation_class_id, e address_derivation_deployer_addr, e address_derivation_g1_x, e address_derivation_g1_y, e address_derivation_incoming_viewing_key_x, e address_derivation_incoming_viewing_key_y, e address_derivation_init_hash, e address_derivation_nullifier_key_x, e address_derivation_nullifier_key_y, e address_derivation_outgoing_viewing_key_x, e address_derivation_outgoing_viewing_key_y, e address_derivation_partial_address, e address_derivation_partial_address_domain_separator, e address_derivation_preaddress, e address_derivation_preaddress_domain_separator, e address_derivation_preaddress_public_key_x, e address_derivation_preaddress_public_key_y, e address_derivation_public_keys_hash, e address_derivation_public_keys_hash_domain_separator, e address_derivation_salt, e address_derivation_salted_init_hash, e address_derivation_sel, e address_derivation_tagging_key_x, e address_derivation_tagging_key_y, e alu_ia, e alu_ib, e alu_ic, e alu_op, e alu_sel_op_add, e bc_decomposition_abs_diff, e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_36, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_rem_inv, e bc_decomposition_bytes_rem_min_one_inv, e bc_decomposition_bytes_remaining, e bc_decomposition_bytes_to_read, e bc_decomposition_id, e bc_decomposition_last_of_contract, e bc_decomposition_packed_field, e bc_decomposition_pc, e bc_decomposition_sel, e bc_decomposition_sel_overflow_correction_needed, e bc_decomposition_sel_packed, e bc_hashing_bytecode_id, e bc_hashing_incremental_hash, e bc_hashing_latch, e bc_hashing_output_hash, e bc_hashing_packed_field, e bc_hashing_pc_index, e bc_hashing_sel, e bc_hashing_start, e bc_retrieval_address, e bc_retrieval_artifact_hash, e bc_retrieval_block_number, e bc_retrieval_bytecode_id, e bc_retrieval_current_class_id, e bc_retrieval_deployer_addr, e bc_retrieval_deployer_protocol_contract_address, e bc_retrieval_err, e bc_retrieval_incoming_viewing_key_x, e bc_retrieval_incoming_viewing_key_y, e bc_retrieval_init_hash, e bc_retrieval_nullifier_exists, e bc_retrieval_nullifier_key_x, e bc_retrieval_nullifier_key_y, e bc_retrieval_nullifier_tree_root, e bc_retrieval_original_class_id, e bc_retrieval_outer_nullifier_domain_separator, e bc_retrieval_outgoing_viewing_key_x, e bc_retrieval_outgoing_viewing_key_y, e bc_retrieval_private_function_root, e bc_retrieval_public_bytecode_commitment, e bc_retrieval_public_data_tree_root, e bc_retrieval_salt, e bc_retrieval_sel, e bc_retrieval_siloed_address, e bc_retrieval_tagging_key_x, e bc_retrieval_tagging_key_y, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_ctr_inv, e bitwise_ctr_min_one_inv, e bitwise_ia_byte, e bitwise_ib_byte, e bitwise_ic_byte, e bitwise_last, e bitwise_op_id, e bitwise_sel, e bitwise_start, e bitwise_tag, e class_id_derivation_artifact_hash, e class_id_derivation_class_id, e class_id_derivation_private_function_root, e class_id_derivation_public_bytecode_commitment, e class_id_derivation_sel, e class_id_derivation_temp_constant_for_lookup, e context_stack_context_id, e context_stack_contract_address, e context_stack_is_static, e context_stack_msg_sender, e context_stack_next_pc, e context_stack_parent_calldata_offset_addr, e context_stack_parent_calldata_size_addr, e context_stack_parent_id, e ecc_add_op, e ecc_double_op, e ecc_inv_2_p_y, e ecc_inv_x_diff, e ecc_inv_y_diff, e ecc_lambda, e ecc_p_is_inf, e ecc_p_x, e ecc_p_y, e ecc_q_is_inf, e ecc_q_x, e ecc_q_y, e ecc_r_is_inf, e ecc_r_x, e ecc_r_y, e ecc_result_infinity, e ecc_sel, e ecc_x_match, e ecc_y_match, e execution_addressing_error_idx, e execution_addressing_error_kind, e execution_base_address_tag, e execution_base_address_val, e execution_bytecode_id, e execution_context_id, e execution_contract_address, e execution_ex_opcode, e execution_indirect, e execution_is_static, e execution_last, e execution_last_child_returndata_offset_addr, e execution_last_child_returndata_size_addr, e execution_last_child_success, e execution_mem_op1, e execution_mem_op2, e execution_mem_op3, e execution_mem_op4, e execution_mem_op5, e execution_mem_op6, e execution_mem_op7, e execution_mem_tag1, e execution_mem_tag2, e execution_mem_tag3, e execution_mem_tag4, e execution_mem_tag5, e execution_mem_tag6, e execution_mem_tag7, e execution_msg_sender, e execution_next_context_id, e execution_next_pc, e execution_op1, e execution_op1_after_relative, e execution_op2, e execution_op2_after_relative, e execution_op3, e execution_op3_after_relative, e execution_op4, e execution_op4_after_relative, e execution_op5, e execution_op5_after_relative, e execution_op6, e execution_op6_after_relative, e execution_op7, e execution_op7_after_relative, e execution_parent_calldata_offset_addr, e execution_parent_calldata_size_addr, e execution_parent_id, e execution_pc, e execution_reg1, e execution_reg2, e execution_reg3, e execution_reg4, e execution_reg5, e execution_reg6, e execution_reg7, e execution_rop1, e execution_rop2, e execution_rop3, e execution_rop4, e execution_rop5, e execution_rop6, e execution_rop7, e execution_rw1, e execution_rw2, e execution_rw3, e execution_rw4, e execution_rw5, e execution_rw6, e execution_rw7, e execution_sel, e execution_sel_addressing_error, e execution_sel_alu, e execution_sel_bitwise, e execution_sel_call, e execution_sel_ecc_add, e execution_sel_op1_is_address, e execution_sel_op2_is_address, e execution_sel_op3_is_address, e execution_sel_op4_is_address, e execution_sel_op5_is_address, e execution_sel_op6_is_address, e execution_sel_op7_is_address, e execution_sel_poseidon2_perm, e execution_sel_static_call, e execution_sel_to_radix, e execution_subtrace_operation_id, e ff_gt_a, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_borrow, e ff_gt_cmp_rng_ctr, e ff_gt_cmp_rng_ctr_inv, e ff_gt_constant_128, e ff_gt_p_a_borrow, e ff_gt_p_b_borrow, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_res_hi, e ff_gt_res_lo, e ff_gt_result, e ff_gt_sel, e ff_gt_sel_gt, e ff_gt_sel_shift_rng, e instr_fetching_bd0, e instr_fetching_bd1, e instr_fetching_bd10, e instr_fetching_bd11, e instr_fetching_bd12, e instr_fetching_bd13, e instr_fetching_bd14, e instr_fetching_bd15, e instr_fetching_bd16, e instr_fetching_bd17, e instr_fetching_bd18, e instr_fetching_bd19, e instr_fetching_bd2, e instr_fetching_bd20, e instr_fetching_bd21, e instr_fetching_bd22, e instr_fetching_bd23, e instr_fetching_bd24, e instr_fetching_bd25, e instr_fetching_bd26, e instr_fetching_bd27, e instr_fetching_bd28, e instr_fetching_bd29, e instr_fetching_bd3, e instr_fetching_bd30, e instr_fetching_bd31, e instr_fetching_bd32, e instr_fetching_bd33, e instr_fetching_bd34, e instr_fetching_bd35, e instr_fetching_bd36, e instr_fetching_bd4, e instr_fetching_bd5, e instr_fetching_bd6, e instr_fetching_bd7, e instr_fetching_bd8, e instr_fetching_bd9, e instr_fetching_bytecode_id, e instr_fetching_bytecode_size, e instr_fetching_bytes_to_read, e instr_fetching_exec_opcode, e instr_fetching_indirect, e instr_fetching_instr_abs_diff, e instr_fetching_instr_out_of_range, e instr_fetching_instr_size, e instr_fetching_op1, e instr_fetching_op2, e instr_fetching_op3, e instr_fetching_op4, e instr_fetching_op5, e instr_fetching_op6, e instr_fetching_op7, e instr_fetching_opcode_out_of_range, e instr_fetching_parsing_err, e instr_fetching_pc, e instr_fetching_pc_abs_diff, e instr_fetching_pc_out_of_range, e instr_fetching_pc_size_in_bits, e instr_fetching_sel, e instr_fetching_sel_has_tag, e instr_fetching_sel_op_dc_0, e instr_fetching_sel_op_dc_1, e instr_fetching_sel_op_dc_10, e instr_fetching_sel_op_dc_11, e instr_fetching_sel_op_dc_12, e instr_fetching_sel_op_dc_13, e instr_fetching_sel_op_dc_14, e instr_fetching_sel_op_dc_15, e instr_fetching_sel_op_dc_16, e instr_fetching_sel_op_dc_17, e instr_fetching_sel_op_dc_2, e instr_fetching_sel_op_dc_3, e instr_fetching_sel_op_dc_4, e instr_fetching_sel_op_dc_5, e instr_fetching_sel_op_dc_6, e instr_fetching_sel_op_dc_7, e instr_fetching_sel_op_dc_8, e instr_fetching_sel_op_dc_9, e instr_fetching_sel_pc_in_range, e instr_fetching_sel_tag_is_op2, e instr_fetching_tag_out_of_range, e instr_fetching_tag_value, e keccakf1600_keccak_0_, e keccakf1600_keccak_100_, e keccakf1600_keccak_101_, e keccakf1600_keccak_102_, e keccakf1600_keccak_103_, e keccakf1600_keccak_104_, e keccakf1600_keccak_105_, e keccakf1600_keccak_106_, e keccakf1600_keccak_107_, e keccakf1600_keccak_108_, e keccakf1600_keccak_109_, e keccakf1600_keccak_10_, e keccakf1600_keccak_110_, e keccakf1600_keccak_111_, e keccakf1600_keccak_112_, e keccakf1600_keccak_113_, e keccakf1600_keccak_114_, e keccakf1600_keccak_115_, e keccakf1600_keccak_116_, e keccakf1600_keccak_117_, e keccakf1600_keccak_118_, e keccakf1600_keccak_119_, e keccakf1600_keccak_11_, e keccakf1600_keccak_120_, e keccakf1600_keccak_121_, e keccakf1600_keccak_122_, e keccakf1600_keccak_123_, e keccakf1600_keccak_124_, e keccakf1600_keccak_125_, e keccakf1600_keccak_126_, e keccakf1600_keccak_127_, e keccakf1600_keccak_128_, e keccakf1600_keccak_129_, e keccakf1600_keccak_12_, e keccakf1600_keccak_130_, e keccakf1600_keccak_131_, e keccakf1600_keccak_132_, e keccakf1600_keccak_133_, e keccakf1600_keccak_134_, e keccakf1600_keccak_135_, e keccakf1600_keccak_136_, e keccakf1600_keccak_137_, e keccakf1600_keccak_138_, e keccakf1600_keccak_139_, e keccakf1600_keccak_13_, e keccakf1600_keccak_140_, e keccakf1600_keccak_141_, e keccakf1600_keccak_142_, e keccakf1600_keccak_143_, e keccakf1600_keccak_144_, e keccakf1600_keccak_145_, e keccakf1600_keccak_146_, e keccakf1600_keccak_147_, e keccakf1600_keccak_148_, e keccakf1600_keccak_149_, e keccakf1600_keccak_14_, e keccakf1600_keccak_150_, e keccakf1600_keccak_151_, e keccakf1600_keccak_152_, e keccakf1600_keccak_153_, e keccakf1600_keccak_154_, e keccakf1600_keccak_155_, e keccakf1600_keccak_156_, e keccakf1600_keccak_157_, e keccakf1600_keccak_158_, e keccakf1600_keccak_159_, e keccakf1600_keccak_15_, e keccakf1600_keccak_160_, e keccakf1600_keccak_161_, e keccakf1600_keccak_162_, e keccakf1600_keccak_163_, e keccakf1600_keccak_164_, e keccakf1600_keccak_165_, e keccakf1600_keccak_166_, e keccakf1600_keccak_167_, e keccakf1600_keccak_168_, e keccakf1600_keccak_169_, e keccakf1600_keccak_16_, e keccakf1600_keccak_170_, e keccakf1600_keccak_171_, e keccakf1600_keccak_172_, e keccakf1600_keccak_173_, e keccakf1600_keccak_174_, e keccakf1600_keccak_175_, e keccakf1600_keccak_176_, e keccakf1600_keccak_177_, e keccakf1600_keccak_178_, e keccakf1600_keccak_179_, e keccakf1600_keccak_17_, e keccakf1600_keccak_180_, e keccakf1600_keccak_181_, e keccakf1600_keccak_182_, e keccakf1600_keccak_183_, e keccakf1600_keccak_184_, e keccakf1600_keccak_185_, e keccakf1600_keccak_186_, e keccakf1600_keccak_187_, e keccakf1600_keccak_188_, e keccakf1600_keccak_189_, e keccakf1600_keccak_18_, e keccakf1600_keccak_190_, e keccakf1600_keccak_191_, e keccakf1600_keccak_192_, e keccakf1600_keccak_193_, e keccakf1600_keccak_194_, e keccakf1600_keccak_195_, e keccakf1600_keccak_196_, e keccakf1600_keccak_197_, e keccakf1600_keccak_198_, e keccakf1600_keccak_199_, e keccakf1600_keccak_19_, e keccakf1600_keccak_1_, e keccakf1600_keccak_200_, e keccakf1600_keccak_201_, e keccakf1600_keccak_202_, e keccakf1600_keccak_203_, e keccakf1600_keccak_204_, e keccakf1600_keccak_205_, e keccakf1600_keccak_206_, e keccakf1600_keccak_207_, e keccakf1600_keccak_208_, e keccakf1600_keccak_209_, e keccakf1600_keccak_20_, e keccakf1600_keccak_210_, e keccakf1600_keccak_211_, e keccakf1600_keccak_212_, e keccakf1600_keccak_213_, e keccakf1600_keccak_214_, e keccakf1600_keccak_215_, e keccakf1600_keccak_216_, e keccakf1600_keccak_217_, e keccakf1600_keccak_218_, e keccakf1600_keccak_219_, e keccakf1600_keccak_21_, e keccakf1600_keccak_220_, e keccakf1600_keccak_221_, e keccakf1600_keccak_222_, e keccakf1600_keccak_223_, e keccakf1600_keccak_224_, e keccakf1600_keccak_225_, e keccakf1600_keccak_226_, e keccakf1600_keccak_227_, e keccakf1600_keccak_228_, e keccakf1600_keccak_229_, e keccakf1600_keccak_22_, e keccakf1600_keccak_230_, e keccakf1600_keccak_231_, e keccakf1600_keccak_232_, e keccakf1600_keccak_233_, e keccakf1600_keccak_234_, e keccakf1600_keccak_235_, e keccakf1600_keccak_236_, e keccakf1600_keccak_237_, e keccakf1600_keccak_238_, e keccakf1600_keccak_239_, e keccakf1600_keccak_23_, e keccakf1600_keccak_240_, e keccakf1600_keccak_241_, e keccakf1600_keccak_242_, e keccakf1600_keccak_243_, e keccakf1600_keccak_244_, e keccakf1600_keccak_245_, e keccakf1600_keccak_246_, e keccakf1600_keccak_247_, e keccakf1600_keccak_248_, e keccakf1600_keccak_249_, e keccakf1600_keccak_24_, e keccakf1600_keccak_250_, e keccakf1600_keccak_251_, e keccakf1600_keccak_252_, e keccakf1600_keccak_253_, e keccakf1600_keccak_254_, e keccakf1600_keccak_255_, e keccakf1600_keccak_256_, e keccakf1600_keccak_257_, e keccakf1600_keccak_258_, e keccakf1600_keccak_259_, e keccakf1600_keccak_25_, e keccakf1600_keccak_260_, e keccakf1600_keccak_261_, e keccakf1600_keccak_262_, e keccakf1600_keccak_263_, e keccakf1600_keccak_264_, e keccakf1600_keccak_265_, e keccakf1600_keccak_266_, e keccakf1600_keccak_267_, e keccakf1600_keccak_268_, e keccakf1600_keccak_269_, e keccakf1600_keccak_26_, e keccakf1600_keccak_270_, e keccakf1600_keccak_271_, e keccakf1600_keccak_272_, e keccakf1600_keccak_273_, e keccakf1600_keccak_274_, e keccakf1600_keccak_275_, e keccakf1600_keccak_276_, e keccakf1600_keccak_277_, e keccakf1600_keccak_278_, e keccakf1600_keccak_279_, e keccakf1600_keccak_27_, e keccakf1600_keccak_280_, e keccakf1600_keccak_281_, e keccakf1600_keccak_282_, e keccakf1600_keccak_283_, e keccakf1600_keccak_284_, e keccakf1600_keccak_285_, e keccakf1600_keccak_286_, e keccakf1600_keccak_287_, e keccakf1600_keccak_288_, e keccakf1600_keccak_289_, e keccakf1600_keccak_28_, e keccakf1600_keccak_290_, e keccakf1600_keccak_291_, e keccakf1600_keccak_292_, e keccakf1600_keccak_293_, e keccakf1600_keccak_294_, e keccakf1600_keccak_295_, e keccakf1600_keccak_296_, e keccakf1600_keccak_297_, e keccakf1600_keccak_298_, e keccakf1600_keccak_299_, e keccakf1600_keccak_29_, e keccakf1600_keccak_2_, e keccakf1600_keccak_300_, e keccakf1600_keccak_301_, e keccakf1600_keccak_302_, e keccakf1600_keccak_303_, e keccakf1600_keccak_304_, e keccakf1600_keccak_305_, e keccakf1600_keccak_306_, e keccakf1600_keccak_307_, e keccakf1600_keccak_308_, e keccakf1600_keccak_309_, e keccakf1600_keccak_30_, e keccakf1600_keccak_310_, e keccakf1600_keccak_311_, e keccakf1600_keccak_312_, e keccakf1600_keccak_313_, e keccakf1600_keccak_314_, e keccakf1600_keccak_315_, e keccakf1600_keccak_316_, e keccakf1600_keccak_317_, e keccakf1600_keccak_318_, e keccakf1600_keccak_319_, e keccakf1600_keccak_31_, e keccakf1600_keccak_320_, e keccakf1600_keccak_321_, e keccakf1600_keccak_322_, e keccakf1600_keccak_323_, e keccakf1600_keccak_324_, e keccakf1600_keccak_325_, e keccakf1600_keccak_326_, e keccakf1600_keccak_327_, e keccakf1600_keccak_328_, e keccakf1600_keccak_329_, e keccakf1600_keccak_32_, e keccakf1600_keccak_330_, e keccakf1600_keccak_331_, e keccakf1600_keccak_332_, e keccakf1600_keccak_333_, e keccakf1600_keccak_334_, e keccakf1600_keccak_335_, e keccakf1600_keccak_336_, e keccakf1600_keccak_337_, e keccakf1600_keccak_338_, e keccakf1600_keccak_339_, e keccakf1600_keccak_33_, e keccakf1600_keccak_340_, e keccakf1600_keccak_341_, e keccakf1600_keccak_342_, e keccakf1600_keccak_343_, e keccakf1600_keccak_344_, e keccakf1600_keccak_345_, e keccakf1600_keccak_346_, e keccakf1600_keccak_347_, e keccakf1600_keccak_348_, e keccakf1600_keccak_349_, e keccakf1600_keccak_34_, e keccakf1600_keccak_350_, e keccakf1600_keccak_351_, e keccakf1600_keccak_352_, e keccakf1600_keccak_353_, e keccakf1600_keccak_354_, e keccakf1600_keccak_355_, e keccakf1600_keccak_356_, e keccakf1600_keccak_357_, e keccakf1600_keccak_358_, e keccakf1600_keccak_359_, e keccakf1600_keccak_35_, e keccakf1600_keccak_360_, e keccakf1600_keccak_361_, e keccakf1600_keccak_362_, e keccakf1600_keccak_363_, e keccakf1600_keccak_364_, e keccakf1600_keccak_365_, e keccakf1600_keccak_366_, e keccakf1600_keccak_367_, e keccakf1600_keccak_368_, e keccakf1600_keccak_369_, e keccakf1600_keccak_36_, e keccakf1600_keccak_370_, e keccakf1600_keccak_371_, e keccakf1600_keccak_372_, e keccakf1600_keccak_373_, e keccakf1600_keccak_374_, e keccakf1600_keccak_375_, e keccakf1600_keccak_376_, e keccakf1600_keccak_377_, e keccakf1600_keccak_378_, e keccakf1600_keccak_379_, e keccakf1600_keccak_37_, e keccakf1600_keccak_380_, e keccakf1600_keccak_381_, e keccakf1600_keccak_382_, e keccakf1600_keccak_383_, e keccakf1600_keccak_384_, e keccakf1600_keccak_385_, e keccakf1600_keccak_386_, e keccakf1600_keccak_387_, e keccakf1600_keccak_388_, e keccakf1600_keccak_389_, e keccakf1600_keccak_38_, e keccakf1600_keccak_390_, e keccakf1600_keccak_391_, e keccakf1600_keccak_392_, e keccakf1600_keccak_393_, e keccakf1600_keccak_394_, e keccakf1600_keccak_395_, e keccakf1600_keccak_396_, e keccakf1600_keccak_397_, e keccakf1600_keccak_398_, e keccakf1600_keccak_399_, e keccakf1600_keccak_39_, e keccakf1600_keccak_3_, e keccakf1600_keccak_400_, e keccakf1600_keccak_401_, e keccakf1600_keccak_402_, e keccakf1600_keccak_403_, e keccakf1600_keccak_404_, e keccakf1600_keccak_405_, e keccakf1600_keccak_406_, e keccakf1600_keccak_407_, e keccakf1600_keccak_408_, e keccakf1600_keccak_409_, e keccakf1600_keccak_40_, e keccakf1600_keccak_410_, e keccakf1600_keccak_411_, e keccakf1600_keccak_412_, e keccakf1600_keccak_413_, e keccakf1600_keccak_414_, e keccakf1600_keccak_415_, e keccakf1600_keccak_416_, e keccakf1600_keccak_417_, e keccakf1600_keccak_418_, e keccakf1600_keccak_419_, e keccakf1600_keccak_41_, e keccakf1600_keccak_420_, e keccakf1600_keccak_421_, e keccakf1600_keccak_422_, e keccakf1600_keccak_423_, e keccakf1600_keccak_424_, e keccakf1600_keccak_425_, e keccakf1600_keccak_426_, e keccakf1600_keccak_427_, e keccakf1600_keccak_428_, e keccakf1600_keccak_429_, e keccakf1600_keccak_42_, e keccakf1600_keccak_430_, e keccakf1600_keccak_431_, e keccakf1600_keccak_432_, e keccakf1600_keccak_433_, e keccakf1600_keccak_434_, e keccakf1600_keccak_435_, e keccakf1600_keccak_436_, e keccakf1600_keccak_437_, e keccakf1600_keccak_438_, e keccakf1600_keccak_439_, e keccakf1600_keccak_43_, e keccakf1600_keccak_440_, e keccakf1600_keccak_441_, e keccakf1600_keccak_442_, e keccakf1600_keccak_443_, e keccakf1600_keccak_444_, e keccakf1600_keccak_445_, e keccakf1600_keccak_446_, e keccakf1600_keccak_447_, e keccakf1600_keccak_448_, e keccakf1600_keccak_449_, e keccakf1600_keccak_44_, e keccakf1600_keccak_450_, e keccakf1600_keccak_451_, e keccakf1600_keccak_452_, e keccakf1600_keccak_453_, e keccakf1600_keccak_454_, e keccakf1600_keccak_455_, e keccakf1600_keccak_456_, e keccakf1600_keccak_457_, e keccakf1600_keccak_458_, e keccakf1600_keccak_459_, e keccakf1600_keccak_45_, e keccakf1600_keccak_460_, e keccakf1600_keccak_461_, e keccakf1600_keccak_462_, e keccakf1600_keccak_463_, e keccakf1600_keccak_464_, e keccakf1600_keccak_465_, e keccakf1600_keccak_466_, e keccakf1600_keccak_467_, e keccakf1600_keccak_468_, e keccakf1600_keccak_469_, e keccakf1600_keccak_46_, e keccakf1600_keccak_470_, e keccakf1600_keccak_471_, e keccakf1600_keccak_472_, e keccakf1600_keccak_473_, e keccakf1600_keccak_474_, e keccakf1600_keccak_475_, e keccakf1600_keccak_476_, e keccakf1600_keccak_477_, e keccakf1600_keccak_478_, e keccakf1600_keccak_479_, e keccakf1600_keccak_47_, e keccakf1600_keccak_480_, e keccakf1600_keccak_481_, e keccakf1600_keccak_482_, e keccakf1600_keccak_483_, e keccakf1600_keccak_484_, e keccakf1600_keccak_485_, e keccakf1600_keccak_486_, e keccakf1600_keccak_487_, e keccakf1600_keccak_488_, e keccakf1600_keccak_489_, e keccakf1600_keccak_48_, e keccakf1600_keccak_490_, e keccakf1600_keccak_491_, e keccakf1600_keccak_492_, e keccakf1600_keccak_493_, e keccakf1600_keccak_494_, e keccakf1600_keccak_495_, e keccakf1600_keccak_496_, e keccakf1600_keccak_497_, e keccakf1600_keccak_498_, e keccakf1600_keccak_499_, e keccakf1600_keccak_49_, e keccakf1600_keccak_4_, e keccakf1600_keccak_500_, e keccakf1600_keccak_501_, e keccakf1600_keccak_502_, e keccakf1600_keccak_503_, e keccakf1600_keccak_504_, e keccakf1600_keccak_505_, e keccakf1600_keccak_506_, e keccakf1600_keccak_507_, e keccakf1600_keccak_508_, e keccakf1600_keccak_509_, e keccakf1600_keccak_50_, e keccakf1600_keccak_510_, e keccakf1600_keccak_511_, e keccakf1600_keccak_512_, e keccakf1600_keccak_513_, e keccakf1600_keccak_514_, e keccakf1600_keccak_515_, e keccakf1600_keccak_516_, e keccakf1600_keccak_517_, e keccakf1600_keccak_518_, e keccakf1600_keccak_519_, e keccakf1600_keccak_51_, e keccakf1600_keccak_520_, e keccakf1600_keccak_521_, e keccakf1600_keccak_522_, e keccakf1600_keccak_523_, e keccakf1600_keccak_524_, e keccakf1600_keccak_525_, e keccakf1600_keccak_526_, e keccakf1600_keccak_527_, e keccakf1600_keccak_528_, e keccakf1600_keccak_529_, e keccakf1600_keccak_52_, e keccakf1600_keccak_530_, e keccakf1600_keccak_531_, e keccakf1600_keccak_532_, e keccakf1600_keccak_533_, e keccakf1600_keccak_534_, e keccakf1600_keccak_535_, e keccakf1600_keccak_536_, e keccakf1600_keccak_537_, e keccakf1600_keccak_538_, e keccakf1600_keccak_539_, e keccakf1600_keccak_53_, e keccakf1600_keccak_540_, e keccakf1600_keccak_541_, e keccakf1600_keccak_542_, e keccakf1600_keccak_543_, e keccakf1600_keccak_544_, e keccakf1600_keccak_545_, e keccakf1600_keccak_546_, e keccakf1600_keccak_547_, e keccakf1600_keccak_548_, e keccakf1600_keccak_549_, e keccakf1600_keccak_54_, e keccakf1600_keccak_550_, e keccakf1600_keccak_551_, e keccakf1600_keccak_552_, e keccakf1600_keccak_553_, e keccakf1600_keccak_554_, e keccakf1600_keccak_555_, e keccakf1600_keccak_556_, e keccakf1600_keccak_557_, e keccakf1600_keccak_558_, e keccakf1600_keccak_559_, e keccakf1600_keccak_55_, e keccakf1600_keccak_560_, e keccakf1600_keccak_561_, e keccakf1600_keccak_562_, e keccakf1600_keccak_563_, e keccakf1600_keccak_564_, e keccakf1600_keccak_565_, e keccakf1600_keccak_566_, e keccakf1600_keccak_567_, e keccakf1600_keccak_568_, e keccakf1600_keccak_569_, e keccakf1600_keccak_56_, e keccakf1600_keccak_570_, e keccakf1600_keccak_571_, e keccakf1600_keccak_572_, e keccakf1600_keccak_573_, e keccakf1600_keccak_574_, e keccakf1600_keccak_575_, e keccakf1600_keccak_576_, e keccakf1600_keccak_577_, e keccakf1600_keccak_578_, e keccakf1600_keccak_579_, e keccakf1600_keccak_57_, e keccakf1600_keccak_580_, e keccakf1600_keccak_581_, e keccakf1600_keccak_582_, e keccakf1600_keccak_583_, e keccakf1600_keccak_584_, e keccakf1600_keccak_585_, e keccakf1600_keccak_586_, e keccakf1600_keccak_587_, e keccakf1600_keccak_588_, e keccakf1600_keccak_589_, e keccakf1600_keccak_58_, e keccakf1600_keccak_590_, e keccakf1600_keccak_591_, e keccakf1600_keccak_592_, e keccakf1600_keccak_593_, e keccakf1600_keccak_594_, e keccakf1600_keccak_595_, e keccakf1600_keccak_596_, e keccakf1600_keccak_597_, e keccakf1600_keccak_598_, e keccakf1600_keccak_599_, e keccakf1600_keccak_59_, e keccakf1600_keccak_5_, e keccakf1600_keccak_600_, e keccakf1600_keccak_601_, e keccakf1600_keccak_602_, e keccakf1600_keccak_603_, e keccakf1600_keccak_604_, e keccakf1600_keccak_605_, e keccakf1600_keccak_606_, e keccakf1600_keccak_607_, e keccakf1600_keccak_608_, e keccakf1600_keccak_609_, e keccakf1600_keccak_60_, e keccakf1600_keccak_610_, e keccakf1600_keccak_611_, e keccakf1600_keccak_612_, e keccakf1600_keccak_613_, e keccakf1600_keccak_614_, e keccakf1600_keccak_615_, e keccakf1600_keccak_616_, e keccakf1600_keccak_617_, e keccakf1600_keccak_618_, e keccakf1600_keccak_619_, e keccakf1600_keccak_61_, e keccakf1600_keccak_620_, e keccakf1600_keccak_621_, e keccakf1600_keccak_622_, e keccakf1600_keccak_623_, e keccakf1600_keccak_624_, e keccakf1600_keccak_625_, e keccakf1600_keccak_626_, e keccakf1600_keccak_627_, e keccakf1600_keccak_628_, e keccakf1600_keccak_629_, e keccakf1600_keccak_62_, e keccakf1600_keccak_630_, e keccakf1600_keccak_631_, e keccakf1600_keccak_632_, e keccakf1600_keccak_633_, e keccakf1600_keccak_634_, e keccakf1600_keccak_635_, e keccakf1600_keccak_636_, e keccakf1600_keccak_637_, e keccakf1600_keccak_638_, e keccakf1600_keccak_639_, e keccakf1600_keccak_63_, e keccakf1600_keccak_640_, e keccakf1600_keccak_641_, e keccakf1600_keccak_642_, e keccakf1600_keccak_643_, e keccakf1600_keccak_644_, e keccakf1600_keccak_645_, e keccakf1600_keccak_646_, e keccakf1600_keccak_647_, e keccakf1600_keccak_648_, e keccakf1600_keccak_649_, e keccakf1600_keccak_64_, e keccakf1600_keccak_650_, e keccakf1600_keccak_651_, e keccakf1600_keccak_652_, e keccakf1600_keccak_653_, e keccakf1600_keccak_654_, e keccakf1600_keccak_655_, e keccakf1600_keccak_656_, e keccakf1600_keccak_657_, e keccakf1600_keccak_658_, e keccakf1600_keccak_659_, e keccakf1600_keccak_65_, e keccakf1600_keccak_660_, e keccakf1600_keccak_661_, e keccakf1600_keccak_662_, e keccakf1600_keccak_663_, e keccakf1600_keccak_664_, e keccakf1600_keccak_665_, e keccakf1600_keccak_666_, e keccakf1600_keccak_667_, e keccakf1600_keccak_668_, e keccakf1600_keccak_669_, e keccakf1600_keccak_66_, e keccakf1600_keccak_670_, e keccakf1600_keccak_671_, e keccakf1600_keccak_672_, e keccakf1600_keccak_673_, e keccakf1600_keccak_674_, e keccakf1600_keccak_675_, e keccakf1600_keccak_676_, e keccakf1600_keccak_677_, e keccakf1600_keccak_678_, e keccakf1600_keccak_679_, e keccakf1600_keccak_67_, e keccakf1600_keccak_680_, e keccakf1600_keccak_681_, e keccakf1600_keccak_682_, e keccakf1600_keccak_683_, e keccakf1600_keccak_684_, e keccakf1600_keccak_685_, e keccakf1600_keccak_686_, e keccakf1600_keccak_687_, e keccakf1600_keccak_688_, e keccakf1600_keccak_689_, e keccakf1600_keccak_68_, e keccakf1600_keccak_690_, e keccakf1600_keccak_691_, e keccakf1600_keccak_692_, e keccakf1600_keccak_693_, e keccakf1600_keccak_694_, e keccakf1600_keccak_695_, e keccakf1600_keccak_696_, e keccakf1600_keccak_697_, e keccakf1600_keccak_698_, e keccakf1600_keccak_699_, e keccakf1600_keccak_69_, e keccakf1600_keccak_6_, e keccakf1600_keccak_700_, e keccakf1600_keccak_701_, e keccakf1600_keccak_702_, e keccakf1600_keccak_703_, e keccakf1600_keccak_704_, e keccakf1600_keccak_705_, e keccakf1600_keccak_706_, e keccakf1600_keccak_707_, e keccakf1600_keccak_708_, e keccakf1600_keccak_709_, e keccakf1600_keccak_70_, e keccakf1600_keccak_710_, e keccakf1600_keccak_711_, e keccakf1600_keccak_712_, e keccakf1600_keccak_713_, e keccakf1600_keccak_714_, e keccakf1600_keccak_715_, e keccakf1600_keccak_716_, e keccakf1600_keccak_717_, e keccakf1600_keccak_718_, e keccakf1600_keccak_719_, e keccakf1600_keccak_71_, e keccakf1600_keccak_720_, e keccakf1600_keccak_721_, e keccakf1600_keccak_722_, e keccakf1600_keccak_723_, e keccakf1600_keccak_724_, e keccakf1600_keccak_725_, e keccakf1600_keccak_726_, e keccakf1600_keccak_727_, e keccakf1600_keccak_728_, e keccakf1600_keccak_729_, e keccakf1600_keccak_72_, e keccakf1600_keccak_730_, e keccakf1600_keccak_731_, e keccakf1600_keccak_732_, e keccakf1600_keccak_733_, e keccakf1600_keccak_734_, e keccakf1600_keccak_735_, e keccakf1600_keccak_736_, e keccakf1600_keccak_737_, e keccakf1600_keccak_738_, e keccakf1600_keccak_739_, e keccakf1600_keccak_73_, e keccakf1600_keccak_740_, e keccakf1600_keccak_741_, e keccakf1600_keccak_742_, e keccakf1600_keccak_743_, e keccakf1600_keccak_744_, e keccakf1600_keccak_745_, e keccakf1600_keccak_746_, e keccakf1600_keccak_747_, e keccakf1600_keccak_748_, e keccakf1600_keccak_749_, e keccakf1600_keccak_74_, e keccakf1600_keccak_750_, e keccakf1600_keccak_751_, e keccakf1600_keccak_752_, e keccakf1600_keccak_753_, e keccakf1600_keccak_754_, e keccakf1600_keccak_755_, e keccakf1600_keccak_756_, e keccakf1600_keccak_757_, e keccakf1600_keccak_758_, e keccakf1600_keccak_759_, e keccakf1600_keccak_75_, e keccakf1600_keccak_760_, e keccakf1600_keccak_761_, e keccakf1600_keccak_762_, e keccakf1600_keccak_763_, e keccakf1600_keccak_764_, e keccakf1600_keccak_765_, e keccakf1600_keccak_766_, e keccakf1600_keccak_767_, e keccakf1600_keccak_768_, e keccakf1600_keccak_769_, e keccakf1600_keccak_76_, e keccakf1600_keccak_770_, e keccakf1600_keccak_771_, e keccakf1600_keccak_772_, e keccakf1600_keccak_773_, e keccakf1600_keccak_774_, e keccakf1600_keccak_775_, e keccakf1600_keccak_776_, e keccakf1600_keccak_777_, e keccakf1600_keccak_778_, e keccakf1600_keccak_779_, e keccakf1600_keccak_77_, e keccakf1600_keccak_780_, e keccakf1600_keccak_781_, e keccakf1600_keccak_782_, e keccakf1600_keccak_783_, e keccakf1600_keccak_784_, e keccakf1600_keccak_785_, e keccakf1600_keccak_786_, e keccakf1600_keccak_787_, e keccakf1600_keccak_788_, e keccakf1600_keccak_789_, e keccakf1600_keccak_78_, e keccakf1600_keccak_790_, e keccakf1600_keccak_791_, e keccakf1600_keccak_792_, e keccakf1600_keccak_793_, e keccakf1600_keccak_794_, e keccakf1600_keccak_795_, e keccakf1600_keccak_796_, e keccakf1600_keccak_797_, e keccakf1600_keccak_798_, e keccakf1600_keccak_799_, e keccakf1600_keccak_79_, e keccakf1600_keccak_7_, e keccakf1600_keccak_800_, e keccakf1600_keccak_801_, e keccakf1600_keccak_802_, e keccakf1600_keccak_803_, e keccakf1600_keccak_804_, e keccakf1600_keccak_805_, e keccakf1600_keccak_806_, e keccakf1600_keccak_807_, e keccakf1600_keccak_808_, e keccakf1600_keccak_809_, e keccakf1600_keccak_80_, e keccakf1600_keccak_810_, e keccakf1600_keccak_811_, e keccakf1600_keccak_812_, e keccakf1600_keccak_813_, e keccakf1600_keccak_814_, e keccakf1600_keccak_815_, e keccakf1600_keccak_816_, e keccakf1600_keccak_817_, e keccakf1600_keccak_818_, e keccakf1600_keccak_819_, e keccakf1600_keccak_81_, e keccakf1600_keccak_820_, e keccakf1600_keccak_821_, e keccakf1600_keccak_822_, e keccakf1600_keccak_823_, e keccakf1600_keccak_824_, e keccakf1600_keccak_825_, e keccakf1600_keccak_826_, e keccakf1600_keccak_827_, e keccakf1600_keccak_828_, e keccakf1600_keccak_829_, e keccakf1600_keccak_82_, e keccakf1600_keccak_830_, e keccakf1600_keccak_831_, e keccakf1600_keccak_832_, e keccakf1600_keccak_833_, e keccakf1600_keccak_834_, e keccakf1600_keccak_835_, e keccakf1600_keccak_836_, e keccakf1600_keccak_837_, e keccakf1600_keccak_838_, e keccakf1600_keccak_839_, e keccakf1600_keccak_83_, e keccakf1600_keccak_840_, e keccakf1600_keccak_841_, e keccakf1600_keccak_842_, e keccakf1600_keccak_843_, e keccakf1600_keccak_844_, e keccakf1600_keccak_845_, e keccakf1600_keccak_846_, e keccakf1600_keccak_847_, e keccakf1600_keccak_848_, e keccakf1600_keccak_849_, e keccakf1600_keccak_84_, e keccakf1600_keccak_850_, e keccakf1600_keccak_851_, e keccakf1600_keccak_852_, e keccakf1600_keccak_853_, e keccakf1600_keccak_854_, e keccakf1600_keccak_855_, e keccakf1600_keccak_856_, e keccakf1600_keccak_857_, e keccakf1600_keccak_858_, e keccakf1600_keccak_859_, e keccakf1600_keccak_85_, e keccakf1600_keccak_860_, e keccakf1600_keccak_861_, e keccakf1600_keccak_862_, e keccakf1600_keccak_863_, e keccakf1600_keccak_864_, e keccakf1600_keccak_865_, e keccakf1600_keccak_866_, e keccakf1600_keccak_867_, e keccakf1600_keccak_868_, e keccakf1600_keccak_869_, e keccakf1600_keccak_86_, e keccakf1600_keccak_870_, e keccakf1600_keccak_871_, e keccakf1600_keccak_872_, e keccakf1600_keccak_873_, e keccakf1600_keccak_874_, e keccakf1600_keccak_875_, e keccakf1600_keccak_876_, e keccakf1600_keccak_877_, e keccakf1600_keccak_878_, e keccakf1600_keccak_879_, e keccakf1600_keccak_87_, e keccakf1600_keccak_880_, e keccakf1600_keccak_881_, e keccakf1600_keccak_882_, e keccakf1600_keccak_883_, e keccakf1600_keccak_884_, e keccakf1600_keccak_885_, e keccakf1600_keccak_886_, e keccakf1600_keccak_887_, e keccakf1600_keccak_888_, e keccakf1600_keccak_889_, e keccakf1600_keccak_88_, e keccakf1600_keccak_890_, e keccakf1600_keccak_891_, e keccakf1600_keccak_892_, e keccakf1600_keccak_893_, e keccakf1600_keccak_894_, e keccakf1600_keccak_895_, e keccakf1600_keccak_896_, e keccakf1600_keccak_897_, e keccakf1600_keccak_898_, e keccakf1600_keccak_899_, e keccakf1600_keccak_89_, e keccakf1600_keccak_8_, e keccakf1600_keccak_900_, e keccakf1600_keccak_901_, e keccakf1600_keccak_902_, e keccakf1600_keccak_903_, e keccakf1600_keccak_904_, e keccakf1600_keccak_905_, e keccakf1600_keccak_906_, e keccakf1600_keccak_907_, e keccakf1600_keccak_908_, e keccakf1600_keccak_909_, e keccakf1600_keccak_90_, e keccakf1600_keccak_910_, e keccakf1600_keccak_911_, e keccakf1600_keccak_912_, e keccakf1600_keccak_913_, e keccakf1600_keccak_914_, e keccakf1600_keccak_915_, e keccakf1600_keccak_916_, e keccakf1600_keccak_917_, e keccakf1600_keccak_918_, e keccakf1600_keccak_919_, e keccakf1600_keccak_91_, e keccakf1600_keccak_920_, e keccakf1600_keccak_921_, e keccakf1600_keccak_922_, e keccakf1600_keccak_923_, e keccakf1600_keccak_924_, e keccakf1600_keccak_925_, e keccakf1600_keccak_926_, e keccakf1600_keccak_927_, e keccakf1600_keccak_928_, e keccakf1600_keccak_929_, e keccakf1600_keccak_92_, e keccakf1600_keccak_930_, e keccakf1600_keccak_931_, e keccakf1600_keccak_932_, e keccakf1600_keccak_933_, e keccakf1600_keccak_934_, e keccakf1600_keccak_935_, e keccakf1600_keccak_936_, e keccakf1600_keccak_937_, e keccakf1600_keccak_938_, e keccakf1600_keccak_939_, e keccakf1600_keccak_93_, e keccakf1600_keccak_940_, e keccakf1600_keccak_941_, e keccakf1600_keccak_942_, e keccakf1600_keccak_943_, e keccakf1600_keccak_944_, e keccakf1600_keccak_945_, e keccakf1600_keccak_946_, e keccakf1600_keccak_947_, e keccakf1600_keccak_948_, e keccakf1600_keccak_949_, e keccakf1600_keccak_94_, e keccakf1600_keccak_950_, e keccakf1600_keccak_951_, e keccakf1600_keccak_952_, e keccakf1600_keccak_953_, e keccakf1600_keccak_954_, e keccakf1600_keccak_955_, e keccakf1600_keccak_956_, e keccakf1600_keccak_957_, e keccakf1600_keccak_958_, e keccakf1600_keccak_959_, e keccakf1600_keccak_95_, e keccakf1600_keccak_960_, e keccakf1600_keccak_961_, e keccakf1600_keccak_962_, e keccakf1600_keccak_963_, e keccakf1600_keccak_964_, e keccakf1600_keccak_965_, e keccakf1600_keccak_966_, e keccakf1600_keccak_967_, e keccakf1600_keccak_968_, e keccakf1600_keccak_969_, e keccakf1600_keccak_96_, e keccakf1600_keccak_970_, e keccakf1600_keccak_971_, e keccakf1600_keccak_972_, e keccakf1600_keccak_973_, e keccakf1600_keccak_974_, e keccakf1600_keccak_975_, e keccakf1600_keccak_976_, e keccakf1600_keccak_977_, e keccakf1600_keccak_978_, e keccakf1600_keccak_979_, e keccakf1600_keccak_97_, e keccakf1600_keccak_980_, e keccakf1600_keccak_981_, e keccakf1600_keccak_982_, e keccakf1600_keccak_983_, e keccakf1600_keccak_984_, e keccakf1600_keccak_985_, e keccakf1600_keccak_986_, e keccakf1600_keccak_987_, e keccakf1600_keccak_988_, e keccakf1600_keccak_989_, e keccakf1600_keccak_98_, e keccakf1600_keccak_990_, e keccakf1600_keccak_991_, e keccakf1600_keccak_992_, e keccakf1600_keccak_993_, e keccakf1600_keccak_994_, e keccakf1600_keccak_995_, e keccakf1600_keccak_996_, e keccakf1600_keccak_997_, e keccakf1600_keccak_998_, e keccakf1600_keccak_999_, e keccakf1600_keccak_99_, e keccakf1600_keccak_9_, e memory_address, e memory_rw, e memory_sel, e memory_space_id, e memory_tag, e memory_value, e merkle_check_constant_2, e merkle_check_end, e merkle_check_index, e merkle_check_index_is_even, e merkle_check_path_len, e merkle_check_read_left_node, e merkle_check_read_node, e merkle_check_read_output_hash, e merkle_check_read_right_node, e merkle_check_read_root, e merkle_check_remaining_path_len_inv, e merkle_check_sel, e merkle_check_sibling, e merkle_check_start, e merkle_check_write, e merkle_check_write_left_node, e merkle_check_write_node, e merkle_check_write_output_hash, e merkle_check_write_right_node, e merkle_check_write_root, e nullifier_check_exists, e nullifier_check_intermediate_root, e nullifier_check_leaf_not_exists, e nullifier_check_low_leaf_hash, e nullifier_check_low_leaf_index, e nullifier_check_low_leaf_next_index, e nullifier_check_low_leaf_next_nullifier, e nullifier_check_low_leaf_nullifier, e nullifier_check_new_leaf_hash, e nullifier_check_next_nullifier_inv, e nullifier_check_next_nullifier_is_nonzero, e nullifier_check_nullifier, e nullifier_check_nullifier_low_leaf_nullifier_diff_inv, e nullifier_check_one, e nullifier_check_root, e nullifier_check_sel, e nullifier_check_tree_height, e nullifier_check_tree_size_before_write, e nullifier_check_updated_low_leaf_hash, e nullifier_check_write, e nullifier_check_write_low_leaf_next_index, e nullifier_check_write_low_leaf_next_nullifier, e nullifier_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_b_0, e poseidon2_hash_b_1, e poseidon2_hash_b_2, e poseidon2_hash_b_3, e poseidon2_hash_end, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_input_len, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_num_perm_rounds_rem_inv, e poseidon2_hash_output, e poseidon2_hash_padding, e poseidon2_hash_sel, e poseidon2_hash_start, e poseidon2_perm_B_10_0, e poseidon2_perm_B_10_1, e poseidon2_perm_B_10_2, e poseidon2_perm_B_10_3, e poseidon2_perm_B_11_0, e poseidon2_perm_B_11_1, e poseidon2_perm_B_11_2, e poseidon2_perm_B_11_3, e poseidon2_perm_B_12_0, e poseidon2_perm_B_12_1, e poseidon2_perm_B_12_2, e poseidon2_perm_B_12_3, e poseidon2_perm_B_13_0, e poseidon2_perm_B_13_1, e poseidon2_perm_B_13_2, e poseidon2_perm_B_13_3, e poseidon2_perm_B_14_0, e poseidon2_perm_B_14_1, e poseidon2_perm_B_14_2, e poseidon2_perm_B_14_3, e poseidon2_perm_B_15_0, e poseidon2_perm_B_15_1, e poseidon2_perm_B_15_2, e poseidon2_perm_B_15_3, e poseidon2_perm_B_16_0, e poseidon2_perm_B_16_1, e poseidon2_perm_B_16_2, e poseidon2_perm_B_16_3, e poseidon2_perm_B_17_0, e poseidon2_perm_B_17_1, e poseidon2_perm_B_17_2, e poseidon2_perm_B_17_3, e poseidon2_perm_B_18_0, e poseidon2_perm_B_18_1, e poseidon2_perm_B_18_2, e poseidon2_perm_B_18_3, e poseidon2_perm_B_19_0, e poseidon2_perm_B_19_1, e poseidon2_perm_B_19_2, e poseidon2_perm_B_19_3, e poseidon2_perm_B_20_0, e poseidon2_perm_B_20_1, e poseidon2_perm_B_20_2, e poseidon2_perm_B_20_3, e poseidon2_perm_B_21_0, e poseidon2_perm_B_21_1, e poseidon2_perm_B_21_2, e poseidon2_perm_B_21_3, e poseidon2_perm_B_22_0, e poseidon2_perm_B_22_1, e poseidon2_perm_B_22_2, e poseidon2_perm_B_22_3, e poseidon2_perm_B_23_0, e poseidon2_perm_B_23_1, e poseidon2_perm_B_23_2, e poseidon2_perm_B_23_3, e poseidon2_perm_B_24_0, e poseidon2_perm_B_24_1, e poseidon2_perm_B_24_2, e poseidon2_perm_B_24_3, e poseidon2_perm_B_25_0, e poseidon2_perm_B_25_1, e poseidon2_perm_B_25_2, e poseidon2_perm_B_25_3, e poseidon2_perm_B_26_0, e poseidon2_perm_B_26_1, e poseidon2_perm_B_26_2, e poseidon2_perm_B_26_3, e poseidon2_perm_B_27_0, e poseidon2_perm_B_27_1, e poseidon2_perm_B_27_2, e poseidon2_perm_B_27_3, e poseidon2_perm_B_28_0, e poseidon2_perm_B_28_1, e poseidon2_perm_B_28_2, e poseidon2_perm_B_28_3, e poseidon2_perm_B_29_0, e poseidon2_perm_B_29_1, e poseidon2_perm_B_29_2, e poseidon2_perm_B_29_3, e poseidon2_perm_B_30_0, e poseidon2_perm_B_30_1, e poseidon2_perm_B_30_2, e poseidon2_perm_B_30_3, e poseidon2_perm_B_31_0, e poseidon2_perm_B_31_1, e poseidon2_perm_B_31_2, e poseidon2_perm_B_31_3, e poseidon2_perm_B_32_0, e poseidon2_perm_B_32_1, e poseidon2_perm_B_32_2, e poseidon2_perm_B_32_3, e poseidon2_perm_B_33_0, e poseidon2_perm_B_33_1, e poseidon2_perm_B_33_2, e poseidon2_perm_B_33_3, e poseidon2_perm_B_34_0, e poseidon2_perm_B_34_1, e poseidon2_perm_B_34_2, e poseidon2_perm_B_34_3, e poseidon2_perm_B_35_0, e poseidon2_perm_B_35_1, e poseidon2_perm_B_35_2, e poseidon2_perm_B_35_3, e poseidon2_perm_B_36_0, e poseidon2_perm_B_36_1, e poseidon2_perm_B_36_2, e poseidon2_perm_B_36_3, e poseidon2_perm_B_37_0, e poseidon2_perm_B_37_1, e poseidon2_perm_B_37_2, e poseidon2_perm_B_37_3, e poseidon2_perm_B_38_0, e poseidon2_perm_B_38_1, e poseidon2_perm_B_38_2, e poseidon2_perm_B_38_3, e poseidon2_perm_B_39_0, e poseidon2_perm_B_39_1, e poseidon2_perm_B_39_2, e poseidon2_perm_B_39_3, e poseidon2_perm_B_40_0, e poseidon2_perm_B_40_1, e poseidon2_perm_B_40_2, e poseidon2_perm_B_40_3, e poseidon2_perm_B_41_0, e poseidon2_perm_B_41_1, e poseidon2_perm_B_41_2, e poseidon2_perm_B_41_3, e poseidon2_perm_B_42_0, e poseidon2_perm_B_42_1, e poseidon2_perm_B_42_2, e poseidon2_perm_B_42_3, e poseidon2_perm_B_43_0, e poseidon2_perm_B_43_1, e poseidon2_perm_B_43_2, e poseidon2_perm_B_43_3, e poseidon2_perm_B_44_0, e poseidon2_perm_B_44_1, e poseidon2_perm_B_44_2, e poseidon2_perm_B_44_3, e poseidon2_perm_B_45_0, e poseidon2_perm_B_45_1, e poseidon2_perm_B_45_2, e poseidon2_perm_B_45_3, e poseidon2_perm_B_46_0, e poseidon2_perm_B_46_1, e poseidon2_perm_B_46_2, e poseidon2_perm_B_46_3, e poseidon2_perm_B_47_0, e poseidon2_perm_B_47_1, e poseidon2_perm_B_47_2, e poseidon2_perm_B_47_3, e poseidon2_perm_B_48_0, e poseidon2_perm_B_48_1, e poseidon2_perm_B_48_2, e poseidon2_perm_B_48_3, e poseidon2_perm_B_49_0, e poseidon2_perm_B_49_1, e poseidon2_perm_B_49_2, e poseidon2_perm_B_49_3, e poseidon2_perm_B_4_0, e poseidon2_perm_B_4_1, e poseidon2_perm_B_4_2, e poseidon2_perm_B_4_3, e poseidon2_perm_B_50_0, e poseidon2_perm_B_50_1, e poseidon2_perm_B_50_2, e poseidon2_perm_B_50_3, e poseidon2_perm_B_51_0, e poseidon2_perm_B_51_1, e poseidon2_perm_B_51_2, e poseidon2_perm_B_51_3, e poseidon2_perm_B_52_0, e poseidon2_perm_B_52_1, e poseidon2_perm_B_52_2, e poseidon2_perm_B_52_3, e poseidon2_perm_B_53_0, e poseidon2_perm_B_53_1, e poseidon2_perm_B_53_2, e poseidon2_perm_B_53_3, e poseidon2_perm_B_54_0, e poseidon2_perm_B_54_1, e poseidon2_perm_B_54_2, e poseidon2_perm_B_54_3, e poseidon2_perm_B_55_0, e poseidon2_perm_B_55_1, e poseidon2_perm_B_55_2, e poseidon2_perm_B_55_3, e poseidon2_perm_B_56_0, e poseidon2_perm_B_56_1, e poseidon2_perm_B_56_2, e poseidon2_perm_B_56_3, e poseidon2_perm_B_57_0, e poseidon2_perm_B_57_1, e poseidon2_perm_B_57_2, e poseidon2_perm_B_57_3, e poseidon2_perm_B_58_0, e poseidon2_perm_B_58_1, e poseidon2_perm_B_58_2, e poseidon2_perm_B_58_3, e poseidon2_perm_B_59_0, e poseidon2_perm_B_59_1, e poseidon2_perm_B_59_2, e poseidon2_perm_B_59_3, e poseidon2_perm_B_5_0, e poseidon2_perm_B_5_1, e poseidon2_perm_B_5_2, e poseidon2_perm_B_5_3, e poseidon2_perm_B_6_0, e poseidon2_perm_B_6_1, e poseidon2_perm_B_6_2, e poseidon2_perm_B_6_3, e poseidon2_perm_B_7_0, e poseidon2_perm_B_7_1, e poseidon2_perm_B_7_2, e poseidon2_perm_B_7_3, e poseidon2_perm_B_8_0, e poseidon2_perm_B_8_1, e poseidon2_perm_B_8_2, e poseidon2_perm_B_8_3, e poseidon2_perm_B_9_0, e poseidon2_perm_B_9_1, e poseidon2_perm_B_9_2, e poseidon2_perm_B_9_3, e poseidon2_perm_EXT_LAYER_4, e poseidon2_perm_EXT_LAYER_5, e poseidon2_perm_EXT_LAYER_6, e poseidon2_perm_EXT_LAYER_7, e poseidon2_perm_T_0_4, e poseidon2_perm_T_0_5, e poseidon2_perm_T_0_6, e poseidon2_perm_T_0_7, e poseidon2_perm_T_1_4, e poseidon2_perm_T_1_5, e poseidon2_perm_T_1_6, e poseidon2_perm_T_1_7, e poseidon2_perm_T_2_4, e poseidon2_perm_T_2_5, e poseidon2_perm_T_2_6, e poseidon2_perm_T_2_7, e poseidon2_perm_T_3_4, e poseidon2_perm_T_3_5, e poseidon2_perm_T_3_6, e poseidon2_perm_T_3_7, e poseidon2_perm_T_60_4, e poseidon2_perm_T_60_5, e poseidon2_perm_T_60_6, e poseidon2_perm_T_60_7, e poseidon2_perm_T_61_4, e poseidon2_perm_T_61_5, e poseidon2_perm_T_61_6, e poseidon2_perm_T_61_7, e poseidon2_perm_T_62_4, e poseidon2_perm_T_62_5, e poseidon2_perm_T_62_6, e poseidon2_perm_T_62_7, e poseidon2_perm_T_63_4, e poseidon2_perm_T_63_5, e poseidon2_perm_T_63_6, e poseidon2_perm_T_63_7, e poseidon2_perm_a_0, e poseidon2_perm_a_1, e poseidon2_perm_a_2, e poseidon2_perm_a_3, e poseidon2_perm_b_0, e poseidon2_perm_b_1, e poseidon2_perm_b_2, e poseidon2_perm_b_3, e poseidon2_perm_sel, e public_data_read_leaf_not_exists, e public_data_read_low_leaf_hash, e public_data_read_low_leaf_index, e public_data_read_low_leaf_next_index, e public_data_read_low_leaf_next_slot, e public_data_read_low_leaf_slot, e public_data_read_low_leaf_value, e public_data_read_next_slot_inv, e public_data_read_next_slot_is_nonzero, e public_data_read_one, e public_data_read_root, e public_data_read_sel, e public_data_read_slot, e public_data_read_slot_low_leaf_slot_diff_inv, e public_data_read_tree_height, e public_data_read_value, e range_check_dyn_diff, e range_check_dyn_rng_chk_bits, e range_check_dyn_rng_chk_pow_2, e range_check_is_lte_u112, e range_check_is_lte_u128, e range_check_is_lte_u16, e range_check_is_lte_u32, e range_check_is_lte_u48, e range_check_is_lte_u64, e range_check_is_lte_u80, e range_check_is_lte_u96, e range_check_rng_chk_bits, e range_check_sel, e range_check_sel_r0_16_bit_rng_lookup, e range_check_sel_r1_16_bit_rng_lookup, e range_check_sel_r2_16_bit_rng_lookup, e range_check_sel_r3_16_bit_rng_lookup, e range_check_sel_r4_16_bit_rng_lookup, e range_check_sel_r5_16_bit_rng_lookup, e range_check_sel_r6_16_bit_rng_lookup, e range_check_u16_r0, e range_check_u16_r1, e range_check_u16_r2, e range_check_u16_r3, e range_check_u16_r4, e range_check_u16_r5, e range_check_u16_r6, e range_check_u16_r7, e range_check_value, e scalar_mul_bit, e scalar_mul_bit_idx, e scalar_mul_bit_radix, e scalar_mul_end, e scalar_mul_not_end, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_should_add, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_a_and_b, e sha256_a_and_b_xor_a_and_c, e sha256_a_and_c, e sha256_a_rotr_13, e sha256_a_rotr_2, e sha256_a_rotr_22, e sha256_a_rotr_2_xor_a_rotr_13, e sha256_and_sel, e sha256_b, e sha256_b_and_c, e sha256_c, e sha256_ch, e sha256_clk, e sha256_computed_w_lhs, e sha256_computed_w_rhs, e sha256_d, e sha256_e, e sha256_e_and_f, e sha256_e_rotr_11, e sha256_e_rotr_25, e sha256_e_rotr_6, e sha256_e_rotr_6_xor_e_rotr_11, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_init_a, e sha256_init_b, e sha256_init_c, e sha256_init_d, e sha256_init_e, e sha256_init_f, e sha256_init_g, e sha256_init_h, e sha256_input_offset, e sha256_is_input_round, e sha256_latch, e sha256_lhs_a_13, e sha256_lhs_a_2, e sha256_lhs_a_22, e sha256_lhs_e_11, e sha256_lhs_e_25, e sha256_lhs_e_6, e sha256_lhs_w_10, e sha256_lhs_w_17, e sha256_lhs_w_18, e sha256_lhs_w_19, e sha256_lhs_w_3, e sha256_lhs_w_7, e sha256_maj, e sha256_next_a_lhs, e sha256_next_a_rhs, e sha256_next_e_lhs, e sha256_next_e_rhs, e sha256_not_e, e sha256_not_e_and_g, e sha256_output_a_lhs, e sha256_output_a_rhs, e sha256_output_b_lhs, e sha256_output_b_rhs, e sha256_output_c_lhs, e sha256_output_c_rhs, e sha256_output_d_lhs, e sha256_output_d_rhs, e sha256_output_e_lhs, e sha256_output_e_rhs, e sha256_output_f_lhs, e sha256_output_f_rhs, e sha256_output_g_lhs, e sha256_output_g_rhs, e sha256_output_h_lhs, e sha256_output_h_rhs, e sha256_output_offset, e sha256_perform_round, e sha256_rhs_a_13, e sha256_rhs_a_2, e sha256_rhs_a_22, e sha256_rhs_e_11, e sha256_rhs_e_25, e sha256_rhs_e_6, e sha256_rhs_w_10, e sha256_rhs_w_17, e sha256_rhs_w_18, e sha256_rhs_w_19, e sha256_rhs_w_3, e sha256_rhs_w_7, e sha256_round_constant, e sha256_round_count, e sha256_rounds_remaining, e sha256_rounds_remaining_inv, e sha256_s_0, e sha256_s_1, e sha256_sel, e sha256_start, e sha256_state_offset, e sha256_w, e sha256_w_15_rotr_18, e sha256_w_15_rotr_7, e sha256_w_15_rotr_7_xor_w_15_rotr_18, e sha256_w_15_rshift_3, e sha256_w_2_rotr_17, e sha256_w_2_rotr_17_xor_w_2_rotr_19, e sha256_w_2_rotr_19, e sha256_w_2_rshift_10, e sha256_w_s_0, e sha256_w_s_1, e sha256_xor_sel, e to_radix_acc, e to_radix_acc_under_p, e to_radix_end, e to_radix_exponent, e to_radix_found, e to_radix_is_unsafe_limb, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_limb_p_diff, e to_radix_limb_radix_diff, e to_radix_not_end, e to_radix_not_padding_limb, e to_radix_p_limb, e to_radix_radix, e to_radix_rem_inverse, e to_radix_safe_limbs, e to_radix_safety_diff_inverse, e to_radix_sel, e to_radix_start, e to_radix_value, e update_check_address, e update_check_block_number, e update_check_block_number_bit_size, e update_check_block_number_is_lt_block_of_change, e update_check_block_of_change_subtraction, e update_check_current_class_id, e update_check_deployer_protocol_contract_address, e update_check_hash_not_zero, e update_check_original_class_id, e update_check_public_data_tree_root, e update_check_public_leaf_index_domain_separator, e update_check_sel, e update_check_shared_mutable_hash_slot, e update_check_shared_mutable_leaf_slot, e update_check_shared_mutable_slot, e update_check_update_block_of_change, e update_check_update_hash, e update_check_update_hash_inv, e update_check_update_hi_metadata, e update_check_update_hi_metadata_bit_size, e update_check_update_post_class_id_is_zero, e update_check_update_post_class_inv, e update_check_update_pre_class_id_is_zero, e update_check_update_pre_class_inv, e update_check_update_preimage_metadata, e update_check_update_preimage_post_class_id, e update_check_update_preimage_pre_class_id, e update_check_updated_class_ids_slot, e lookup_poseidon2_hash_poseidon2_perm_counts, e lookup_to_radix_limb_range_counts, e lookup_to_radix_limb_less_than_radix_range_counts, e lookup_to_radix_fetch_safe_limbs_counts, e lookup_to_radix_fetch_p_limb_counts, e lookup_to_radix_limb_p_diff_range_counts, e lookup_scalar_mul_to_radix_counts, e lookup_scalar_mul_double_counts, e lookup_scalar_mul_add_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_counts, e lookup_address_derivation_partial_address_poseidon2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_0_counts, e lookup_address_derivation_public_keys_hash_poseidon2_1_counts, e lookup_address_derivation_public_keys_hash_poseidon2_2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_3_counts, e lookup_address_derivation_public_keys_hash_poseidon2_4_counts, e lookup_address_derivation_preaddress_poseidon2_counts, e lookup_address_derivation_preaddress_scalar_mul_counts, e lookup_address_derivation_address_ecadd_counts, e lookup_bc_decomposition_bytes_are_bytes_counts, e lookup_bc_decomposition_abs_diff_is_u16_counts, e lookup_bc_hashing_get_packed_field_counts, e lookup_bc_hashing_iv_is_len_counts, e lookup_bc_hashing_poseidon2_hash_counts, e lookup_range_check_dyn_rng_chk_pow_2_counts, e lookup_range_check_dyn_diff_is_u16_counts, e lookup_range_check_r0_is_u16_counts, e lookup_range_check_r1_is_u16_counts, e lookup_range_check_r2_is_u16_counts, e lookup_range_check_r3_is_u16_counts, e lookup_range_check_r4_is_u16_counts, e lookup_range_check_r5_is_u16_counts, e lookup_range_check_r6_is_u16_counts, e lookup_range_check_r7_is_u16_counts, e lookup_merkle_check_merkle_poseidon2_read_counts, e lookup_merkle_check_merkle_poseidon2_write_counts, e lookup_ff_gt_a_lo_range_counts, e lookup_ff_gt_a_hi_range_counts, e lookup_public_data_read_low_leaf_poseidon2_0_counts, e lookup_public_data_read_low_leaf_poseidon2_1_counts, e lookup_public_data_read_low_leaf_membership_counts, e lookup_public_data_read_low_leaf_slot_validation_counts, e lookup_public_data_read_low_leaf_next_slot_validation_counts, e lookup_update_check_shared_mutable_slot_poseidon2_counts, e lookup_update_check_shared_mutable_leaf_slot_poseidon2_counts, e lookup_update_check_update_hash_public_data_read_counts, e lookup_update_check_update_hash_poseidon2_counts, e lookup_update_check_update_hi_metadata_range_counts, e lookup_update_check_update_lo_metadata_range_counts, e lookup_update_check_block_of_change_cmp_range_counts, e lookup_nullifier_check_low_leaf_poseidon2_counts, e lookup_nullifier_check_updated_low_leaf_poseidon2_counts, e lookup_nullifier_check_low_leaf_merkle_check_counts, e lookup_nullifier_check_low_leaf_nullifier_validation_counts, e lookup_nullifier_check_low_leaf_next_nullifier_validation_counts, e lookup_nullifier_check_new_leaf_poseidon2_counts, e lookup_nullifier_check_new_leaf_merkle_check_counts, e lookup_bc_retrieval_silo_deployment_nullifier_poseidon2_counts, e lookup_bc_retrieval_deployment_nullifier_read_counts, e lookup_bc_retrieval_address_derivation_counts, e lookup_bc_retrieval_update_check_counts, e lookup_bc_retrieval_class_id_derivation_counts, e lookup_bc_retrieval_bytecode_hash_is_correct_counts, e lookup_instr_fetching_pc_abs_diff_positive_counts, e lookup_instr_fetching_instr_abs_diff_positive_counts, e lookup_instr_fetching_tag_value_validation_counts, e lookup_instr_fetching_bytecode_size_from_bc_dec_counts, e lookup_instr_fetching_bytes_from_bc_dec_counts, e lookup_instr_fetching_wire_instruction_info_counts, e lookup_class_id_derivation_class_id_poseidon2_0_counts, e lookup_class_id_derivation_class_id_poseidon2_1_counts, e lookup_bitwise_integral_tag_length_counts, e lookup_bitwise_byte_operations_counts, e lookup_sha256_round_constant_counts +#define AVM2_WIRE_ENTITIES_E(e) e execution_input, e address_derivation_address, e address_derivation_address_y, e address_derivation_class_id, e address_derivation_deployer_addr, e address_derivation_g1_x, e address_derivation_g1_y, e address_derivation_incoming_viewing_key_x, e address_derivation_incoming_viewing_key_y, e address_derivation_init_hash, e address_derivation_nullifier_key_x, e address_derivation_nullifier_key_y, e address_derivation_outgoing_viewing_key_x, e address_derivation_outgoing_viewing_key_y, e address_derivation_partial_address, e address_derivation_partial_address_domain_separator, e address_derivation_preaddress, e address_derivation_preaddress_domain_separator, e address_derivation_preaddress_public_key_x, e address_derivation_preaddress_public_key_y, e address_derivation_public_keys_hash, e address_derivation_public_keys_hash_domain_separator, e address_derivation_salt, e address_derivation_salted_init_hash, e address_derivation_sel, e address_derivation_tagging_key_x, e address_derivation_tagging_key_y, e alu_ia, e alu_ib, e alu_ic, e alu_op, e alu_sel_op_add, e bc_decomposition_abs_diff, e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_36, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_rem_inv, e bc_decomposition_bytes_rem_min_one_inv, e bc_decomposition_bytes_remaining, e bc_decomposition_bytes_to_read, e bc_decomposition_id, e bc_decomposition_last_of_contract, e bc_decomposition_packed_field, e bc_decomposition_pc, e bc_decomposition_sel, e bc_decomposition_sel_overflow_correction_needed, e bc_decomposition_sel_packed, e bc_hashing_bytecode_id, e bc_hashing_incremental_hash, e bc_hashing_latch, e bc_hashing_output_hash, e bc_hashing_packed_field, e bc_hashing_pc_index, e bc_hashing_sel, e bc_hashing_start, e bc_retrieval_address, e bc_retrieval_artifact_hash, e bc_retrieval_block_number, e bc_retrieval_bytecode_id, e bc_retrieval_current_class_id, e bc_retrieval_deployer_addr, e bc_retrieval_deployer_protocol_contract_address, e bc_retrieval_err, e bc_retrieval_incoming_viewing_key_x, e bc_retrieval_incoming_viewing_key_y, e bc_retrieval_init_hash, e bc_retrieval_nullifier_exists, e bc_retrieval_nullifier_key_x, e bc_retrieval_nullifier_key_y, e bc_retrieval_nullifier_tree_root, e bc_retrieval_original_class_id, e bc_retrieval_outer_nullifier_domain_separator, e bc_retrieval_outgoing_viewing_key_x, e bc_retrieval_outgoing_viewing_key_y, e bc_retrieval_private_function_root, e bc_retrieval_public_bytecode_commitment, e bc_retrieval_public_data_tree_root, e bc_retrieval_salt, e bc_retrieval_sel, e bc_retrieval_siloed_address, e bc_retrieval_tagging_key_x, e bc_retrieval_tagging_key_y, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_ctr_inv, e bitwise_ctr_min_one_inv, e bitwise_ia_byte, e bitwise_ib_byte, e bitwise_ic_byte, e bitwise_last, e bitwise_op_id, e bitwise_sel, e bitwise_start, e bitwise_tag, e class_id_derivation_artifact_hash, e class_id_derivation_class_id, e class_id_derivation_private_function_root, e class_id_derivation_public_bytecode_commitment, e class_id_derivation_sel, e class_id_derivation_temp_constant_for_lookup, e context_stack_context_id, e context_stack_contract_address, e context_stack_is_static, e context_stack_msg_sender, e context_stack_next_pc, e context_stack_parent_calldata_offset_addr, e context_stack_parent_calldata_size_addr, e context_stack_parent_id, e ecc_add_op, e ecc_double_op, e ecc_inv_2_p_y, e ecc_inv_x_diff, e ecc_inv_y_diff, e ecc_lambda, e ecc_p_is_inf, e ecc_p_x, e ecc_p_y, e ecc_q_is_inf, e ecc_q_x, e ecc_q_y, e ecc_r_is_inf, e ecc_r_x, e ecc_r_y, e ecc_result_infinity, e ecc_sel, e ecc_x_match, e ecc_y_match, e execution_addressing_error_idx, e execution_addressing_error_kind, e execution_base_address_tag, e execution_base_address_val, e execution_bytecode_id, e execution_context_id, e execution_contract_address, e execution_ex_opcode, e execution_indirect, e execution_is_static, e execution_last, e execution_last_child_returndata_offset_addr, e execution_last_child_returndata_size_addr, e execution_last_child_success, e execution_mem_op1, e execution_mem_op2, e execution_mem_op3, e execution_mem_op4, e execution_mem_op5, e execution_mem_op6, e execution_mem_op7, e execution_mem_tag1, e execution_mem_tag2, e execution_mem_tag3, e execution_mem_tag4, e execution_mem_tag5, e execution_mem_tag6, e execution_mem_tag7, e execution_msg_sender, e execution_next_context_id, e execution_next_pc, e execution_op1, e execution_op1_after_relative, e execution_op2, e execution_op2_after_relative, e execution_op3, e execution_op3_after_relative, e execution_op4, e execution_op4_after_relative, e execution_op5, e execution_op5_after_relative, e execution_op6, e execution_op6_after_relative, e execution_op7, e execution_op7_after_relative, e execution_parent_calldata_offset_addr, e execution_parent_calldata_size_addr, e execution_parent_id, e execution_pc, e execution_reg1, e execution_reg2, e execution_reg3, e execution_reg4, e execution_reg5, e execution_reg6, e execution_reg7, e execution_rop1, e execution_rop2, e execution_rop3, e execution_rop4, e execution_rop5, e execution_rop6, e execution_rop7, e execution_rw1, e execution_rw2, e execution_rw3, e execution_rw4, e execution_rw5, e execution_rw6, e execution_rw7, e execution_sel, e execution_sel_addressing_error, e execution_sel_alu, e execution_sel_bitwise, e execution_sel_call, e execution_sel_ecc_add, e execution_sel_op1_is_address, e execution_sel_op2_is_address, e execution_sel_op3_is_address, e execution_sel_op4_is_address, e execution_sel_op5_is_address, e execution_sel_op6_is_address, e execution_sel_op7_is_address, e execution_sel_poseidon2_perm, e execution_sel_static_call, e execution_sel_to_radix, e execution_subtrace_operation_id, e ff_gt_a, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_borrow, e ff_gt_cmp_rng_ctr, e ff_gt_cmp_rng_ctr_inv, e ff_gt_constant_128, e ff_gt_p_a_borrow, e ff_gt_p_b_borrow, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_res_hi, e ff_gt_res_lo, e ff_gt_result, e ff_gt_sel, e ff_gt_sel_gt, e ff_gt_sel_shift_rng, e instr_fetching_bd0, e instr_fetching_bd1, e instr_fetching_bd10, e instr_fetching_bd11, e instr_fetching_bd12, e instr_fetching_bd13, e instr_fetching_bd14, e instr_fetching_bd15, e instr_fetching_bd16, e instr_fetching_bd17, e instr_fetching_bd18, e instr_fetching_bd19, e instr_fetching_bd2, e instr_fetching_bd20, e instr_fetching_bd21, e instr_fetching_bd22, e instr_fetching_bd23, e instr_fetching_bd24, e instr_fetching_bd25, e instr_fetching_bd26, e instr_fetching_bd27, e instr_fetching_bd28, e instr_fetching_bd29, e instr_fetching_bd3, e instr_fetching_bd30, e instr_fetching_bd31, e instr_fetching_bd32, e instr_fetching_bd33, e instr_fetching_bd34, e instr_fetching_bd35, e instr_fetching_bd36, e instr_fetching_bd4, e instr_fetching_bd5, e instr_fetching_bd6, e instr_fetching_bd7, e instr_fetching_bd8, e instr_fetching_bd9, e instr_fetching_bytecode_id, e instr_fetching_bytecode_size, e instr_fetching_bytes_to_read, e instr_fetching_exec_opcode, e instr_fetching_indirect, e instr_fetching_instr_abs_diff, e instr_fetching_instr_out_of_range, e instr_fetching_instr_size, e instr_fetching_op1, e instr_fetching_op2, e instr_fetching_op3, e instr_fetching_op4, e instr_fetching_op5, e instr_fetching_op6, e instr_fetching_op7, e instr_fetching_opcode_out_of_range, e instr_fetching_parsing_err, e instr_fetching_pc, e instr_fetching_pc_abs_diff, e instr_fetching_pc_out_of_range, e instr_fetching_pc_size_in_bits, e instr_fetching_sel, e instr_fetching_sel_has_tag, e instr_fetching_sel_op_dc_0, e instr_fetching_sel_op_dc_1, e instr_fetching_sel_op_dc_10, e instr_fetching_sel_op_dc_11, e instr_fetching_sel_op_dc_12, e instr_fetching_sel_op_dc_13, e instr_fetching_sel_op_dc_14, e instr_fetching_sel_op_dc_15, e instr_fetching_sel_op_dc_16, e instr_fetching_sel_op_dc_2, e instr_fetching_sel_op_dc_3, e instr_fetching_sel_op_dc_4, e instr_fetching_sel_op_dc_5, e instr_fetching_sel_op_dc_6, e instr_fetching_sel_op_dc_7, e instr_fetching_sel_op_dc_8, e instr_fetching_sel_op_dc_9, e instr_fetching_sel_pc_in_range, e instr_fetching_sel_tag_is_op2, e instr_fetching_tag_out_of_range, e instr_fetching_tag_value, e keccakf1600_keccak_0_, e keccakf1600_keccak_100_, e keccakf1600_keccak_101_, e keccakf1600_keccak_102_, e keccakf1600_keccak_103_, e keccakf1600_keccak_104_, e keccakf1600_keccak_105_, e keccakf1600_keccak_106_, e keccakf1600_keccak_107_, e keccakf1600_keccak_108_, e keccakf1600_keccak_109_, e keccakf1600_keccak_10_, e keccakf1600_keccak_110_, e keccakf1600_keccak_111_, e keccakf1600_keccak_112_, e keccakf1600_keccak_113_, e keccakf1600_keccak_114_, e keccakf1600_keccak_115_, e keccakf1600_keccak_116_, e keccakf1600_keccak_117_, e keccakf1600_keccak_118_, e keccakf1600_keccak_119_, e keccakf1600_keccak_11_, e keccakf1600_keccak_120_, e keccakf1600_keccak_121_, e keccakf1600_keccak_122_, e keccakf1600_keccak_123_, e keccakf1600_keccak_124_, e keccakf1600_keccak_125_, e keccakf1600_keccak_126_, e keccakf1600_keccak_127_, e keccakf1600_keccak_128_, e keccakf1600_keccak_129_, e keccakf1600_keccak_12_, e keccakf1600_keccak_130_, e keccakf1600_keccak_131_, e keccakf1600_keccak_132_, e keccakf1600_keccak_133_, e keccakf1600_keccak_134_, e keccakf1600_keccak_135_, e keccakf1600_keccak_136_, e keccakf1600_keccak_137_, e keccakf1600_keccak_138_, e keccakf1600_keccak_139_, e keccakf1600_keccak_13_, e keccakf1600_keccak_140_, e keccakf1600_keccak_141_, e keccakf1600_keccak_142_, e keccakf1600_keccak_143_, e keccakf1600_keccak_144_, e keccakf1600_keccak_145_, e keccakf1600_keccak_146_, e keccakf1600_keccak_147_, e keccakf1600_keccak_148_, e keccakf1600_keccak_149_, e keccakf1600_keccak_14_, e keccakf1600_keccak_150_, e keccakf1600_keccak_151_, e keccakf1600_keccak_152_, e keccakf1600_keccak_153_, e keccakf1600_keccak_154_, e keccakf1600_keccak_155_, e keccakf1600_keccak_156_, e keccakf1600_keccak_157_, e keccakf1600_keccak_158_, e keccakf1600_keccak_159_, e keccakf1600_keccak_15_, e keccakf1600_keccak_160_, e keccakf1600_keccak_161_, e keccakf1600_keccak_162_, e keccakf1600_keccak_163_, e keccakf1600_keccak_164_, e keccakf1600_keccak_165_, e keccakf1600_keccak_166_, e keccakf1600_keccak_167_, e keccakf1600_keccak_168_, e keccakf1600_keccak_169_, e keccakf1600_keccak_16_, e keccakf1600_keccak_170_, e keccakf1600_keccak_171_, e keccakf1600_keccak_172_, e keccakf1600_keccak_173_, e keccakf1600_keccak_174_, e keccakf1600_keccak_175_, e keccakf1600_keccak_176_, e keccakf1600_keccak_177_, e keccakf1600_keccak_178_, e keccakf1600_keccak_179_, e keccakf1600_keccak_17_, e keccakf1600_keccak_180_, e keccakf1600_keccak_181_, e keccakf1600_keccak_182_, e keccakf1600_keccak_183_, e keccakf1600_keccak_184_, e keccakf1600_keccak_185_, e keccakf1600_keccak_186_, e keccakf1600_keccak_187_, e keccakf1600_keccak_188_, e keccakf1600_keccak_189_, e keccakf1600_keccak_18_, e keccakf1600_keccak_190_, e keccakf1600_keccak_191_, e keccakf1600_keccak_192_, e keccakf1600_keccak_193_, e keccakf1600_keccak_194_, e keccakf1600_keccak_195_, e keccakf1600_keccak_196_, e keccakf1600_keccak_197_, e keccakf1600_keccak_198_, e keccakf1600_keccak_199_, e keccakf1600_keccak_19_, e keccakf1600_keccak_1_, e keccakf1600_keccak_200_, e keccakf1600_keccak_201_, e keccakf1600_keccak_202_, e keccakf1600_keccak_203_, e keccakf1600_keccak_204_, e keccakf1600_keccak_205_, e keccakf1600_keccak_206_, e keccakf1600_keccak_207_, e keccakf1600_keccak_208_, e keccakf1600_keccak_209_, e keccakf1600_keccak_20_, e keccakf1600_keccak_210_, e keccakf1600_keccak_211_, e keccakf1600_keccak_212_, e keccakf1600_keccak_213_, e keccakf1600_keccak_214_, e keccakf1600_keccak_215_, e keccakf1600_keccak_216_, e keccakf1600_keccak_217_, e keccakf1600_keccak_218_, e keccakf1600_keccak_219_, e keccakf1600_keccak_21_, e keccakf1600_keccak_220_, e keccakf1600_keccak_221_, e keccakf1600_keccak_222_, e keccakf1600_keccak_223_, e keccakf1600_keccak_224_, e keccakf1600_keccak_225_, e keccakf1600_keccak_226_, e keccakf1600_keccak_227_, e keccakf1600_keccak_228_, e keccakf1600_keccak_229_, e keccakf1600_keccak_22_, e keccakf1600_keccak_230_, e keccakf1600_keccak_231_, e keccakf1600_keccak_232_, e keccakf1600_keccak_233_, e keccakf1600_keccak_234_, e keccakf1600_keccak_235_, e keccakf1600_keccak_236_, e keccakf1600_keccak_237_, e keccakf1600_keccak_238_, e keccakf1600_keccak_239_, e keccakf1600_keccak_23_, e keccakf1600_keccak_240_, e keccakf1600_keccak_241_, e keccakf1600_keccak_242_, e keccakf1600_keccak_243_, e keccakf1600_keccak_244_, e keccakf1600_keccak_245_, e keccakf1600_keccak_246_, e keccakf1600_keccak_247_, e keccakf1600_keccak_248_, e keccakf1600_keccak_249_, e keccakf1600_keccak_24_, e keccakf1600_keccak_250_, e keccakf1600_keccak_251_, e keccakf1600_keccak_252_, e keccakf1600_keccak_253_, e keccakf1600_keccak_254_, e keccakf1600_keccak_255_, e keccakf1600_keccak_256_, e keccakf1600_keccak_257_, e keccakf1600_keccak_258_, e keccakf1600_keccak_259_, e keccakf1600_keccak_25_, e keccakf1600_keccak_260_, e keccakf1600_keccak_261_, e keccakf1600_keccak_262_, e keccakf1600_keccak_263_, e keccakf1600_keccak_264_, e keccakf1600_keccak_265_, e keccakf1600_keccak_266_, e keccakf1600_keccak_267_, e keccakf1600_keccak_268_, e keccakf1600_keccak_269_, e keccakf1600_keccak_26_, e keccakf1600_keccak_270_, e keccakf1600_keccak_271_, e keccakf1600_keccak_272_, e keccakf1600_keccak_273_, e keccakf1600_keccak_274_, e keccakf1600_keccak_275_, e keccakf1600_keccak_276_, e keccakf1600_keccak_277_, e keccakf1600_keccak_278_, e keccakf1600_keccak_279_, e keccakf1600_keccak_27_, e keccakf1600_keccak_280_, e keccakf1600_keccak_281_, e keccakf1600_keccak_282_, e keccakf1600_keccak_283_, e keccakf1600_keccak_284_, e keccakf1600_keccak_285_, e keccakf1600_keccak_286_, e keccakf1600_keccak_287_, e keccakf1600_keccak_288_, e keccakf1600_keccak_289_, e keccakf1600_keccak_28_, e keccakf1600_keccak_290_, e keccakf1600_keccak_291_, e keccakf1600_keccak_292_, e keccakf1600_keccak_293_, e keccakf1600_keccak_294_, e keccakf1600_keccak_295_, e keccakf1600_keccak_296_, e keccakf1600_keccak_297_, e keccakf1600_keccak_298_, e keccakf1600_keccak_299_, e keccakf1600_keccak_29_, e keccakf1600_keccak_2_, e keccakf1600_keccak_300_, e keccakf1600_keccak_301_, e keccakf1600_keccak_302_, e keccakf1600_keccak_303_, e keccakf1600_keccak_304_, e keccakf1600_keccak_305_, e keccakf1600_keccak_306_, e keccakf1600_keccak_307_, e keccakf1600_keccak_308_, e keccakf1600_keccak_309_, e keccakf1600_keccak_30_, e keccakf1600_keccak_310_, e keccakf1600_keccak_311_, e keccakf1600_keccak_312_, e keccakf1600_keccak_313_, e keccakf1600_keccak_314_, e keccakf1600_keccak_315_, e keccakf1600_keccak_316_, e keccakf1600_keccak_317_, e keccakf1600_keccak_318_, e keccakf1600_keccak_319_, e keccakf1600_keccak_31_, e keccakf1600_keccak_320_, e keccakf1600_keccak_321_, e keccakf1600_keccak_322_, e keccakf1600_keccak_323_, e keccakf1600_keccak_324_, e keccakf1600_keccak_325_, e keccakf1600_keccak_326_, e keccakf1600_keccak_327_, e keccakf1600_keccak_328_, e keccakf1600_keccak_329_, e keccakf1600_keccak_32_, e keccakf1600_keccak_330_, e keccakf1600_keccak_331_, e keccakf1600_keccak_332_, e keccakf1600_keccak_333_, e keccakf1600_keccak_334_, e keccakf1600_keccak_335_, e keccakf1600_keccak_336_, e keccakf1600_keccak_337_, e keccakf1600_keccak_338_, e keccakf1600_keccak_339_, e keccakf1600_keccak_33_, e keccakf1600_keccak_340_, e keccakf1600_keccak_341_, e keccakf1600_keccak_342_, e keccakf1600_keccak_343_, e keccakf1600_keccak_344_, e keccakf1600_keccak_345_, e keccakf1600_keccak_346_, e keccakf1600_keccak_347_, e keccakf1600_keccak_348_, e keccakf1600_keccak_349_, e keccakf1600_keccak_34_, e keccakf1600_keccak_350_, e keccakf1600_keccak_351_, e keccakf1600_keccak_352_, e keccakf1600_keccak_353_, e keccakf1600_keccak_354_, e keccakf1600_keccak_355_, e keccakf1600_keccak_356_, e keccakf1600_keccak_357_, e keccakf1600_keccak_358_, e keccakf1600_keccak_359_, e keccakf1600_keccak_35_, e keccakf1600_keccak_360_, e keccakf1600_keccak_361_, e keccakf1600_keccak_362_, e keccakf1600_keccak_363_, e keccakf1600_keccak_364_, e keccakf1600_keccak_365_, e keccakf1600_keccak_366_, e keccakf1600_keccak_367_, e keccakf1600_keccak_368_, e keccakf1600_keccak_369_, e keccakf1600_keccak_36_, e keccakf1600_keccak_370_, e keccakf1600_keccak_371_, e keccakf1600_keccak_372_, e keccakf1600_keccak_373_, e keccakf1600_keccak_374_, e keccakf1600_keccak_375_, e keccakf1600_keccak_376_, e keccakf1600_keccak_377_, e keccakf1600_keccak_378_, e keccakf1600_keccak_379_, e keccakf1600_keccak_37_, e keccakf1600_keccak_380_, e keccakf1600_keccak_381_, e keccakf1600_keccak_382_, e keccakf1600_keccak_383_, e keccakf1600_keccak_384_, e keccakf1600_keccak_385_, e keccakf1600_keccak_386_, e keccakf1600_keccak_387_, e keccakf1600_keccak_388_, e keccakf1600_keccak_389_, e keccakf1600_keccak_38_, e keccakf1600_keccak_390_, e keccakf1600_keccak_391_, e keccakf1600_keccak_392_, e keccakf1600_keccak_393_, e keccakf1600_keccak_394_, e keccakf1600_keccak_395_, e keccakf1600_keccak_396_, e keccakf1600_keccak_397_, e keccakf1600_keccak_398_, e keccakf1600_keccak_399_, e keccakf1600_keccak_39_, e keccakf1600_keccak_3_, e keccakf1600_keccak_400_, e keccakf1600_keccak_401_, e keccakf1600_keccak_402_, e keccakf1600_keccak_403_, e keccakf1600_keccak_404_, e keccakf1600_keccak_405_, e keccakf1600_keccak_406_, e keccakf1600_keccak_407_, e keccakf1600_keccak_408_, e keccakf1600_keccak_409_, e keccakf1600_keccak_40_, e keccakf1600_keccak_410_, e keccakf1600_keccak_411_, e keccakf1600_keccak_412_, e keccakf1600_keccak_413_, e keccakf1600_keccak_414_, e keccakf1600_keccak_415_, e keccakf1600_keccak_416_, e keccakf1600_keccak_417_, e keccakf1600_keccak_418_, e keccakf1600_keccak_419_, e keccakf1600_keccak_41_, e keccakf1600_keccak_420_, e keccakf1600_keccak_421_, e keccakf1600_keccak_422_, e keccakf1600_keccak_423_, e keccakf1600_keccak_424_, e keccakf1600_keccak_425_, e keccakf1600_keccak_426_, e keccakf1600_keccak_427_, e keccakf1600_keccak_428_, e keccakf1600_keccak_429_, e keccakf1600_keccak_42_, e keccakf1600_keccak_430_, e keccakf1600_keccak_431_, e keccakf1600_keccak_432_, e keccakf1600_keccak_433_, e keccakf1600_keccak_434_, e keccakf1600_keccak_435_, e keccakf1600_keccak_436_, e keccakf1600_keccak_437_, e keccakf1600_keccak_438_, e keccakf1600_keccak_439_, e keccakf1600_keccak_43_, e keccakf1600_keccak_440_, e keccakf1600_keccak_441_, e keccakf1600_keccak_442_, e keccakf1600_keccak_443_, e keccakf1600_keccak_444_, e keccakf1600_keccak_445_, e keccakf1600_keccak_446_, e keccakf1600_keccak_447_, e keccakf1600_keccak_448_, e keccakf1600_keccak_449_, e keccakf1600_keccak_44_, e keccakf1600_keccak_450_, e keccakf1600_keccak_451_, e keccakf1600_keccak_452_, e keccakf1600_keccak_453_, e keccakf1600_keccak_454_, e keccakf1600_keccak_455_, e keccakf1600_keccak_456_, e keccakf1600_keccak_457_, e keccakf1600_keccak_458_, e keccakf1600_keccak_459_, e keccakf1600_keccak_45_, e keccakf1600_keccak_460_, e keccakf1600_keccak_461_, e keccakf1600_keccak_462_, e keccakf1600_keccak_463_, e keccakf1600_keccak_464_, e keccakf1600_keccak_465_, e keccakf1600_keccak_466_, e keccakf1600_keccak_467_, e keccakf1600_keccak_468_, e keccakf1600_keccak_469_, e keccakf1600_keccak_46_, e keccakf1600_keccak_470_, e keccakf1600_keccak_471_, e keccakf1600_keccak_472_, e keccakf1600_keccak_473_, e keccakf1600_keccak_474_, e keccakf1600_keccak_475_, e keccakf1600_keccak_476_, e keccakf1600_keccak_477_, e keccakf1600_keccak_478_, e keccakf1600_keccak_479_, e keccakf1600_keccak_47_, e keccakf1600_keccak_480_, e keccakf1600_keccak_481_, e keccakf1600_keccak_482_, e keccakf1600_keccak_483_, e keccakf1600_keccak_484_, e keccakf1600_keccak_485_, e keccakf1600_keccak_486_, e keccakf1600_keccak_487_, e keccakf1600_keccak_488_, e keccakf1600_keccak_489_, e keccakf1600_keccak_48_, e keccakf1600_keccak_490_, e keccakf1600_keccak_491_, e keccakf1600_keccak_492_, e keccakf1600_keccak_493_, e keccakf1600_keccak_494_, e keccakf1600_keccak_495_, e keccakf1600_keccak_496_, e keccakf1600_keccak_497_, e keccakf1600_keccak_498_, e keccakf1600_keccak_499_, e keccakf1600_keccak_49_, e keccakf1600_keccak_4_, e keccakf1600_keccak_500_, e keccakf1600_keccak_501_, e keccakf1600_keccak_502_, e keccakf1600_keccak_503_, e keccakf1600_keccak_504_, e keccakf1600_keccak_505_, e keccakf1600_keccak_506_, e keccakf1600_keccak_507_, e keccakf1600_keccak_508_, e keccakf1600_keccak_509_, e keccakf1600_keccak_50_, e keccakf1600_keccak_510_, e keccakf1600_keccak_511_, e keccakf1600_keccak_512_, e keccakf1600_keccak_513_, e keccakf1600_keccak_514_, e keccakf1600_keccak_515_, e keccakf1600_keccak_516_, e keccakf1600_keccak_517_, e keccakf1600_keccak_518_, e keccakf1600_keccak_519_, e keccakf1600_keccak_51_, e keccakf1600_keccak_520_, e keccakf1600_keccak_521_, e keccakf1600_keccak_522_, e keccakf1600_keccak_523_, e keccakf1600_keccak_524_, e keccakf1600_keccak_525_, e keccakf1600_keccak_526_, e keccakf1600_keccak_527_, e keccakf1600_keccak_528_, e keccakf1600_keccak_529_, e keccakf1600_keccak_52_, e keccakf1600_keccak_530_, e keccakf1600_keccak_531_, e keccakf1600_keccak_532_, e keccakf1600_keccak_533_, e keccakf1600_keccak_534_, e keccakf1600_keccak_535_, e keccakf1600_keccak_536_, e keccakf1600_keccak_537_, e keccakf1600_keccak_538_, e keccakf1600_keccak_539_, e keccakf1600_keccak_53_, e keccakf1600_keccak_540_, e keccakf1600_keccak_541_, e keccakf1600_keccak_542_, e keccakf1600_keccak_543_, e keccakf1600_keccak_544_, e keccakf1600_keccak_545_, e keccakf1600_keccak_546_, e keccakf1600_keccak_547_, e keccakf1600_keccak_548_, e keccakf1600_keccak_549_, e keccakf1600_keccak_54_, e keccakf1600_keccak_550_, e keccakf1600_keccak_551_, e keccakf1600_keccak_552_, e keccakf1600_keccak_553_, e keccakf1600_keccak_554_, e keccakf1600_keccak_555_, e keccakf1600_keccak_556_, e keccakf1600_keccak_557_, e keccakf1600_keccak_558_, e keccakf1600_keccak_559_, e keccakf1600_keccak_55_, e keccakf1600_keccak_560_, e keccakf1600_keccak_561_, e keccakf1600_keccak_562_, e keccakf1600_keccak_563_, e keccakf1600_keccak_564_, e keccakf1600_keccak_565_, e keccakf1600_keccak_566_, e keccakf1600_keccak_567_, e keccakf1600_keccak_568_, e keccakf1600_keccak_569_, e keccakf1600_keccak_56_, e keccakf1600_keccak_570_, e keccakf1600_keccak_571_, e keccakf1600_keccak_572_, e keccakf1600_keccak_573_, e keccakf1600_keccak_574_, e keccakf1600_keccak_575_, e keccakf1600_keccak_576_, e keccakf1600_keccak_577_, e keccakf1600_keccak_578_, e keccakf1600_keccak_579_, e keccakf1600_keccak_57_, e keccakf1600_keccak_580_, e keccakf1600_keccak_581_, e keccakf1600_keccak_582_, e keccakf1600_keccak_583_, e keccakf1600_keccak_584_, e keccakf1600_keccak_585_, e keccakf1600_keccak_586_, e keccakf1600_keccak_587_, e keccakf1600_keccak_588_, e keccakf1600_keccak_589_, e keccakf1600_keccak_58_, e keccakf1600_keccak_590_, e keccakf1600_keccak_591_, e keccakf1600_keccak_592_, e keccakf1600_keccak_593_, e keccakf1600_keccak_594_, e keccakf1600_keccak_595_, e keccakf1600_keccak_596_, e keccakf1600_keccak_597_, e keccakf1600_keccak_598_, e keccakf1600_keccak_599_, e keccakf1600_keccak_59_, e keccakf1600_keccak_5_, e keccakf1600_keccak_600_, e keccakf1600_keccak_601_, e keccakf1600_keccak_602_, e keccakf1600_keccak_603_, e keccakf1600_keccak_604_, e keccakf1600_keccak_605_, e keccakf1600_keccak_606_, e keccakf1600_keccak_607_, e keccakf1600_keccak_608_, e keccakf1600_keccak_609_, e keccakf1600_keccak_60_, e keccakf1600_keccak_610_, e keccakf1600_keccak_611_, e keccakf1600_keccak_612_, e keccakf1600_keccak_613_, e keccakf1600_keccak_614_, e keccakf1600_keccak_615_, e keccakf1600_keccak_616_, e keccakf1600_keccak_617_, e keccakf1600_keccak_618_, e keccakf1600_keccak_619_, e keccakf1600_keccak_61_, e keccakf1600_keccak_620_, e keccakf1600_keccak_621_, e keccakf1600_keccak_622_, e keccakf1600_keccak_623_, e keccakf1600_keccak_624_, e keccakf1600_keccak_625_, e keccakf1600_keccak_626_, e keccakf1600_keccak_627_, e keccakf1600_keccak_628_, e keccakf1600_keccak_629_, e keccakf1600_keccak_62_, e keccakf1600_keccak_630_, e keccakf1600_keccak_631_, e keccakf1600_keccak_632_, e keccakf1600_keccak_633_, e keccakf1600_keccak_634_, e keccakf1600_keccak_635_, e keccakf1600_keccak_636_, e keccakf1600_keccak_637_, e keccakf1600_keccak_638_, e keccakf1600_keccak_639_, e keccakf1600_keccak_63_, e keccakf1600_keccak_640_, e keccakf1600_keccak_641_, e keccakf1600_keccak_642_, e keccakf1600_keccak_643_, e keccakf1600_keccak_644_, e keccakf1600_keccak_645_, e keccakf1600_keccak_646_, e keccakf1600_keccak_647_, e keccakf1600_keccak_648_, e keccakf1600_keccak_649_, e keccakf1600_keccak_64_, e keccakf1600_keccak_650_, e keccakf1600_keccak_651_, e keccakf1600_keccak_652_, e keccakf1600_keccak_653_, e keccakf1600_keccak_654_, e keccakf1600_keccak_655_, e keccakf1600_keccak_656_, e keccakf1600_keccak_657_, e keccakf1600_keccak_658_, e keccakf1600_keccak_659_, e keccakf1600_keccak_65_, e keccakf1600_keccak_660_, e keccakf1600_keccak_661_, e keccakf1600_keccak_662_, e keccakf1600_keccak_663_, e keccakf1600_keccak_664_, e keccakf1600_keccak_665_, e keccakf1600_keccak_666_, e keccakf1600_keccak_667_, e keccakf1600_keccak_668_, e keccakf1600_keccak_669_, e keccakf1600_keccak_66_, e keccakf1600_keccak_670_, e keccakf1600_keccak_671_, e keccakf1600_keccak_672_, e keccakf1600_keccak_673_, e keccakf1600_keccak_674_, e keccakf1600_keccak_675_, e keccakf1600_keccak_676_, e keccakf1600_keccak_677_, e keccakf1600_keccak_678_, e keccakf1600_keccak_679_, e keccakf1600_keccak_67_, e keccakf1600_keccak_680_, e keccakf1600_keccak_681_, e keccakf1600_keccak_682_, e keccakf1600_keccak_683_, e keccakf1600_keccak_684_, e keccakf1600_keccak_685_, e keccakf1600_keccak_686_, e keccakf1600_keccak_687_, e keccakf1600_keccak_688_, e keccakf1600_keccak_689_, e keccakf1600_keccak_68_, e keccakf1600_keccak_690_, e keccakf1600_keccak_691_, e keccakf1600_keccak_692_, e keccakf1600_keccak_693_, e keccakf1600_keccak_694_, e keccakf1600_keccak_695_, e keccakf1600_keccak_696_, e keccakf1600_keccak_697_, e keccakf1600_keccak_698_, e keccakf1600_keccak_699_, e keccakf1600_keccak_69_, e keccakf1600_keccak_6_, e keccakf1600_keccak_700_, e keccakf1600_keccak_701_, e keccakf1600_keccak_702_, e keccakf1600_keccak_703_, e keccakf1600_keccak_704_, e keccakf1600_keccak_705_, e keccakf1600_keccak_706_, e keccakf1600_keccak_707_, e keccakf1600_keccak_708_, e keccakf1600_keccak_709_, e keccakf1600_keccak_70_, e keccakf1600_keccak_710_, e keccakf1600_keccak_711_, e keccakf1600_keccak_712_, e keccakf1600_keccak_713_, e keccakf1600_keccak_714_, e keccakf1600_keccak_715_, e keccakf1600_keccak_716_, e keccakf1600_keccak_717_, e keccakf1600_keccak_718_, e keccakf1600_keccak_719_, e keccakf1600_keccak_71_, e keccakf1600_keccak_720_, e keccakf1600_keccak_721_, e keccakf1600_keccak_722_, e keccakf1600_keccak_723_, e keccakf1600_keccak_724_, e keccakf1600_keccak_725_, e keccakf1600_keccak_726_, e keccakf1600_keccak_727_, e keccakf1600_keccak_728_, e keccakf1600_keccak_729_, e keccakf1600_keccak_72_, e keccakf1600_keccak_730_, e keccakf1600_keccak_731_, e keccakf1600_keccak_732_, e keccakf1600_keccak_733_, e keccakf1600_keccak_734_, e keccakf1600_keccak_735_, e keccakf1600_keccak_736_, e keccakf1600_keccak_737_, e keccakf1600_keccak_738_, e keccakf1600_keccak_739_, e keccakf1600_keccak_73_, e keccakf1600_keccak_740_, e keccakf1600_keccak_741_, e keccakf1600_keccak_742_, e keccakf1600_keccak_743_, e keccakf1600_keccak_744_, e keccakf1600_keccak_745_, e keccakf1600_keccak_746_, e keccakf1600_keccak_747_, e keccakf1600_keccak_748_, e keccakf1600_keccak_749_, e keccakf1600_keccak_74_, e keccakf1600_keccak_750_, e keccakf1600_keccak_751_, e keccakf1600_keccak_752_, e keccakf1600_keccak_753_, e keccakf1600_keccak_754_, e keccakf1600_keccak_755_, e keccakf1600_keccak_756_, e keccakf1600_keccak_757_, e keccakf1600_keccak_758_, e keccakf1600_keccak_759_, e keccakf1600_keccak_75_, e keccakf1600_keccak_760_, e keccakf1600_keccak_761_, e keccakf1600_keccak_762_, e keccakf1600_keccak_763_, e keccakf1600_keccak_764_, e keccakf1600_keccak_765_, e keccakf1600_keccak_766_, e keccakf1600_keccak_767_, e keccakf1600_keccak_768_, e keccakf1600_keccak_769_, e keccakf1600_keccak_76_, e keccakf1600_keccak_770_, e keccakf1600_keccak_771_, e keccakf1600_keccak_772_, e keccakf1600_keccak_773_, e keccakf1600_keccak_774_, e keccakf1600_keccak_775_, e keccakf1600_keccak_776_, e keccakf1600_keccak_777_, e keccakf1600_keccak_778_, e keccakf1600_keccak_779_, e keccakf1600_keccak_77_, e keccakf1600_keccak_780_, e keccakf1600_keccak_781_, e keccakf1600_keccak_782_, e keccakf1600_keccak_783_, e keccakf1600_keccak_784_, e keccakf1600_keccak_785_, e keccakf1600_keccak_786_, e keccakf1600_keccak_787_, e keccakf1600_keccak_788_, e keccakf1600_keccak_789_, e keccakf1600_keccak_78_, e keccakf1600_keccak_790_, e keccakf1600_keccak_791_, e keccakf1600_keccak_792_, e keccakf1600_keccak_793_, e keccakf1600_keccak_794_, e keccakf1600_keccak_795_, e keccakf1600_keccak_796_, e keccakf1600_keccak_797_, e keccakf1600_keccak_798_, e keccakf1600_keccak_799_, e keccakf1600_keccak_79_, e keccakf1600_keccak_7_, e keccakf1600_keccak_800_, e keccakf1600_keccak_801_, e keccakf1600_keccak_802_, e keccakf1600_keccak_803_, e keccakf1600_keccak_804_, e keccakf1600_keccak_805_, e keccakf1600_keccak_806_, e keccakf1600_keccak_807_, e keccakf1600_keccak_808_, e keccakf1600_keccak_809_, e keccakf1600_keccak_80_, e keccakf1600_keccak_810_, e keccakf1600_keccak_811_, e keccakf1600_keccak_812_, e keccakf1600_keccak_813_, e keccakf1600_keccak_814_, e keccakf1600_keccak_815_, e keccakf1600_keccak_816_, e keccakf1600_keccak_817_, e keccakf1600_keccak_818_, e keccakf1600_keccak_819_, e keccakf1600_keccak_81_, e keccakf1600_keccak_820_, e keccakf1600_keccak_821_, e keccakf1600_keccak_822_, e keccakf1600_keccak_823_, e keccakf1600_keccak_824_, e keccakf1600_keccak_825_, e keccakf1600_keccak_826_, e keccakf1600_keccak_827_, e keccakf1600_keccak_828_, e keccakf1600_keccak_829_, e keccakf1600_keccak_82_, e keccakf1600_keccak_830_, e keccakf1600_keccak_831_, e keccakf1600_keccak_832_, e keccakf1600_keccak_833_, e keccakf1600_keccak_834_, e keccakf1600_keccak_835_, e keccakf1600_keccak_836_, e keccakf1600_keccak_837_, e keccakf1600_keccak_838_, e keccakf1600_keccak_839_, e keccakf1600_keccak_83_, e keccakf1600_keccak_840_, e keccakf1600_keccak_841_, e keccakf1600_keccak_842_, e keccakf1600_keccak_843_, e keccakf1600_keccak_844_, e keccakf1600_keccak_845_, e keccakf1600_keccak_846_, e keccakf1600_keccak_847_, e keccakf1600_keccak_848_, e keccakf1600_keccak_849_, e keccakf1600_keccak_84_, e keccakf1600_keccak_850_, e keccakf1600_keccak_851_, e keccakf1600_keccak_852_, e keccakf1600_keccak_853_, e keccakf1600_keccak_854_, e keccakf1600_keccak_855_, e keccakf1600_keccak_856_, e keccakf1600_keccak_857_, e keccakf1600_keccak_858_, e keccakf1600_keccak_859_, e keccakf1600_keccak_85_, e keccakf1600_keccak_860_, e keccakf1600_keccak_861_, e keccakf1600_keccak_862_, e keccakf1600_keccak_863_, e keccakf1600_keccak_864_, e keccakf1600_keccak_865_, e keccakf1600_keccak_866_, e keccakf1600_keccak_867_, e keccakf1600_keccak_868_, e keccakf1600_keccak_869_, e keccakf1600_keccak_86_, e keccakf1600_keccak_870_, e keccakf1600_keccak_871_, e keccakf1600_keccak_872_, e keccakf1600_keccak_873_, e keccakf1600_keccak_874_, e keccakf1600_keccak_875_, e keccakf1600_keccak_876_, e keccakf1600_keccak_877_, e keccakf1600_keccak_878_, e keccakf1600_keccak_879_, e keccakf1600_keccak_87_, e keccakf1600_keccak_880_, e keccakf1600_keccak_881_, e keccakf1600_keccak_882_, e keccakf1600_keccak_883_, e keccakf1600_keccak_884_, e keccakf1600_keccak_885_, e keccakf1600_keccak_886_, e keccakf1600_keccak_887_, e keccakf1600_keccak_888_, e keccakf1600_keccak_889_, e keccakf1600_keccak_88_, e keccakf1600_keccak_890_, e keccakf1600_keccak_891_, e keccakf1600_keccak_892_, e keccakf1600_keccak_893_, e keccakf1600_keccak_894_, e keccakf1600_keccak_895_, e keccakf1600_keccak_896_, e keccakf1600_keccak_897_, e keccakf1600_keccak_898_, e keccakf1600_keccak_899_, e keccakf1600_keccak_89_, e keccakf1600_keccak_8_, e keccakf1600_keccak_900_, e keccakf1600_keccak_901_, e keccakf1600_keccak_902_, e keccakf1600_keccak_903_, e keccakf1600_keccak_904_, e keccakf1600_keccak_905_, e keccakf1600_keccak_906_, e keccakf1600_keccak_907_, e keccakf1600_keccak_908_, e keccakf1600_keccak_909_, e keccakf1600_keccak_90_, e keccakf1600_keccak_910_, e keccakf1600_keccak_911_, e keccakf1600_keccak_912_, e keccakf1600_keccak_913_, e keccakf1600_keccak_914_, e keccakf1600_keccak_915_, e keccakf1600_keccak_916_, e keccakf1600_keccak_917_, e keccakf1600_keccak_918_, e keccakf1600_keccak_919_, e keccakf1600_keccak_91_, e keccakf1600_keccak_920_, e keccakf1600_keccak_921_, e keccakf1600_keccak_922_, e keccakf1600_keccak_923_, e keccakf1600_keccak_924_, e keccakf1600_keccak_925_, e keccakf1600_keccak_926_, e keccakf1600_keccak_927_, e keccakf1600_keccak_928_, e keccakf1600_keccak_929_, e keccakf1600_keccak_92_, e keccakf1600_keccak_930_, e keccakf1600_keccak_931_, e keccakf1600_keccak_932_, e keccakf1600_keccak_933_, e keccakf1600_keccak_934_, e keccakf1600_keccak_935_, e keccakf1600_keccak_936_, e keccakf1600_keccak_937_, e keccakf1600_keccak_938_, e keccakf1600_keccak_939_, e keccakf1600_keccak_93_, e keccakf1600_keccak_940_, e keccakf1600_keccak_941_, e keccakf1600_keccak_942_, e keccakf1600_keccak_943_, e keccakf1600_keccak_944_, e keccakf1600_keccak_945_, e keccakf1600_keccak_946_, e keccakf1600_keccak_947_, e keccakf1600_keccak_948_, e keccakf1600_keccak_949_, e keccakf1600_keccak_94_, e keccakf1600_keccak_950_, e keccakf1600_keccak_951_, e keccakf1600_keccak_952_, e keccakf1600_keccak_953_, e keccakf1600_keccak_954_, e keccakf1600_keccak_955_, e keccakf1600_keccak_956_, e keccakf1600_keccak_957_, e keccakf1600_keccak_958_, e keccakf1600_keccak_959_, e keccakf1600_keccak_95_, e keccakf1600_keccak_960_, e keccakf1600_keccak_961_, e keccakf1600_keccak_962_, e keccakf1600_keccak_963_, e keccakf1600_keccak_964_, e keccakf1600_keccak_965_, e keccakf1600_keccak_966_, e keccakf1600_keccak_967_, e keccakf1600_keccak_968_, e keccakf1600_keccak_969_, e keccakf1600_keccak_96_, e keccakf1600_keccak_970_, e keccakf1600_keccak_971_, e keccakf1600_keccak_972_, e keccakf1600_keccak_973_, e keccakf1600_keccak_974_, e keccakf1600_keccak_975_, e keccakf1600_keccak_976_, e keccakf1600_keccak_977_, e keccakf1600_keccak_978_, e keccakf1600_keccak_979_, e keccakf1600_keccak_97_, e keccakf1600_keccak_980_, e keccakf1600_keccak_981_, e keccakf1600_keccak_982_, e keccakf1600_keccak_983_, e keccakf1600_keccak_984_, e keccakf1600_keccak_985_, e keccakf1600_keccak_986_, e keccakf1600_keccak_987_, e keccakf1600_keccak_988_, e keccakf1600_keccak_989_, e keccakf1600_keccak_98_, e keccakf1600_keccak_990_, e keccakf1600_keccak_991_, e keccakf1600_keccak_992_, e keccakf1600_keccak_993_, e keccakf1600_keccak_994_, e keccakf1600_keccak_995_, e keccakf1600_keccak_996_, e keccakf1600_keccak_997_, e keccakf1600_keccak_998_, e keccakf1600_keccak_999_, e keccakf1600_keccak_99_, e keccakf1600_keccak_9_, e memory_address, e memory_rw, e memory_sel, e memory_space_id, e memory_tag, e memory_value, e merkle_check_constant_2, e merkle_check_end, e merkle_check_index, e merkle_check_index_is_even, e merkle_check_path_len, e merkle_check_read_left_node, e merkle_check_read_node, e merkle_check_read_output_hash, e merkle_check_read_right_node, e merkle_check_read_root, e merkle_check_remaining_path_len_inv, e merkle_check_sel, e merkle_check_sibling, e merkle_check_start, e merkle_check_write, e merkle_check_write_left_node, e merkle_check_write_node, e merkle_check_write_output_hash, e merkle_check_write_right_node, e merkle_check_write_root, e nullifier_check_exists, e nullifier_check_intermediate_root, e nullifier_check_leaf_not_exists, e nullifier_check_low_leaf_hash, e nullifier_check_low_leaf_index, e nullifier_check_low_leaf_next_index, e nullifier_check_low_leaf_next_nullifier, e nullifier_check_low_leaf_nullifier, e nullifier_check_new_leaf_hash, e nullifier_check_next_nullifier_inv, e nullifier_check_next_nullifier_is_nonzero, e nullifier_check_nullifier, e nullifier_check_nullifier_low_leaf_nullifier_diff_inv, e nullifier_check_one, e nullifier_check_root, e nullifier_check_sel, e nullifier_check_tree_height, e nullifier_check_tree_size_before_write, e nullifier_check_updated_low_leaf_hash, e nullifier_check_write, e nullifier_check_write_low_leaf_next_index, e nullifier_check_write_low_leaf_next_nullifier, e nullifier_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_b_0, e poseidon2_hash_b_1, e poseidon2_hash_b_2, e poseidon2_hash_b_3, e poseidon2_hash_end, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_input_len, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_num_perm_rounds_rem_inv, e poseidon2_hash_output, e poseidon2_hash_padding, e poseidon2_hash_sel, e poseidon2_hash_start, e poseidon2_perm_B_10_0, e poseidon2_perm_B_10_1, e poseidon2_perm_B_10_2, e poseidon2_perm_B_10_3, e poseidon2_perm_B_11_0, e poseidon2_perm_B_11_1, e poseidon2_perm_B_11_2, e poseidon2_perm_B_11_3, e poseidon2_perm_B_12_0, e poseidon2_perm_B_12_1, e poseidon2_perm_B_12_2, e poseidon2_perm_B_12_3, e poseidon2_perm_B_13_0, e poseidon2_perm_B_13_1, e poseidon2_perm_B_13_2, e poseidon2_perm_B_13_3, e poseidon2_perm_B_14_0, e poseidon2_perm_B_14_1, e poseidon2_perm_B_14_2, e poseidon2_perm_B_14_3, e poseidon2_perm_B_15_0, e poseidon2_perm_B_15_1, e poseidon2_perm_B_15_2, e poseidon2_perm_B_15_3, e poseidon2_perm_B_16_0, e poseidon2_perm_B_16_1, e poseidon2_perm_B_16_2, e poseidon2_perm_B_16_3, e poseidon2_perm_B_17_0, e poseidon2_perm_B_17_1, e poseidon2_perm_B_17_2, e poseidon2_perm_B_17_3, e poseidon2_perm_B_18_0, e poseidon2_perm_B_18_1, e poseidon2_perm_B_18_2, e poseidon2_perm_B_18_3, e poseidon2_perm_B_19_0, e poseidon2_perm_B_19_1, e poseidon2_perm_B_19_2, e poseidon2_perm_B_19_3, e poseidon2_perm_B_20_0, e poseidon2_perm_B_20_1, e poseidon2_perm_B_20_2, e poseidon2_perm_B_20_3, e poseidon2_perm_B_21_0, e poseidon2_perm_B_21_1, e poseidon2_perm_B_21_2, e poseidon2_perm_B_21_3, e poseidon2_perm_B_22_0, e poseidon2_perm_B_22_1, e poseidon2_perm_B_22_2, e poseidon2_perm_B_22_3, e poseidon2_perm_B_23_0, e poseidon2_perm_B_23_1, e poseidon2_perm_B_23_2, e poseidon2_perm_B_23_3, e poseidon2_perm_B_24_0, e poseidon2_perm_B_24_1, e poseidon2_perm_B_24_2, e poseidon2_perm_B_24_3, e poseidon2_perm_B_25_0, e poseidon2_perm_B_25_1, e poseidon2_perm_B_25_2, e poseidon2_perm_B_25_3, e poseidon2_perm_B_26_0, e poseidon2_perm_B_26_1, e poseidon2_perm_B_26_2, e poseidon2_perm_B_26_3, e poseidon2_perm_B_27_0, e poseidon2_perm_B_27_1, e poseidon2_perm_B_27_2, e poseidon2_perm_B_27_3, e poseidon2_perm_B_28_0, e poseidon2_perm_B_28_1, e poseidon2_perm_B_28_2, e poseidon2_perm_B_28_3, e poseidon2_perm_B_29_0, e poseidon2_perm_B_29_1, e poseidon2_perm_B_29_2, e poseidon2_perm_B_29_3, e poseidon2_perm_B_30_0, e poseidon2_perm_B_30_1, e poseidon2_perm_B_30_2, e poseidon2_perm_B_30_3, e poseidon2_perm_B_31_0, e poseidon2_perm_B_31_1, e poseidon2_perm_B_31_2, e poseidon2_perm_B_31_3, e poseidon2_perm_B_32_0, e poseidon2_perm_B_32_1, e poseidon2_perm_B_32_2, e poseidon2_perm_B_32_3, e poseidon2_perm_B_33_0, e poseidon2_perm_B_33_1, e poseidon2_perm_B_33_2, e poseidon2_perm_B_33_3, e poseidon2_perm_B_34_0, e poseidon2_perm_B_34_1, e poseidon2_perm_B_34_2, e poseidon2_perm_B_34_3, e poseidon2_perm_B_35_0, e poseidon2_perm_B_35_1, e poseidon2_perm_B_35_2, e poseidon2_perm_B_35_3, e poseidon2_perm_B_36_0, e poseidon2_perm_B_36_1, e poseidon2_perm_B_36_2, e poseidon2_perm_B_36_3, e poseidon2_perm_B_37_0, e poseidon2_perm_B_37_1, e poseidon2_perm_B_37_2, e poseidon2_perm_B_37_3, e poseidon2_perm_B_38_0, e poseidon2_perm_B_38_1, e poseidon2_perm_B_38_2, e poseidon2_perm_B_38_3, e poseidon2_perm_B_39_0, e poseidon2_perm_B_39_1, e poseidon2_perm_B_39_2, e poseidon2_perm_B_39_3, e poseidon2_perm_B_40_0, e poseidon2_perm_B_40_1, e poseidon2_perm_B_40_2, e poseidon2_perm_B_40_3, e poseidon2_perm_B_41_0, e poseidon2_perm_B_41_1, e poseidon2_perm_B_41_2, e poseidon2_perm_B_41_3, e poseidon2_perm_B_42_0, e poseidon2_perm_B_42_1, e poseidon2_perm_B_42_2, e poseidon2_perm_B_42_3, e poseidon2_perm_B_43_0, e poseidon2_perm_B_43_1, e poseidon2_perm_B_43_2, e poseidon2_perm_B_43_3, e poseidon2_perm_B_44_0, e poseidon2_perm_B_44_1, e poseidon2_perm_B_44_2, e poseidon2_perm_B_44_3, e poseidon2_perm_B_45_0, e poseidon2_perm_B_45_1, e poseidon2_perm_B_45_2, e poseidon2_perm_B_45_3, e poseidon2_perm_B_46_0, e poseidon2_perm_B_46_1, e poseidon2_perm_B_46_2, e poseidon2_perm_B_46_3, e poseidon2_perm_B_47_0, e poseidon2_perm_B_47_1, e poseidon2_perm_B_47_2, e poseidon2_perm_B_47_3, e poseidon2_perm_B_48_0, e poseidon2_perm_B_48_1, e poseidon2_perm_B_48_2, e poseidon2_perm_B_48_3, e poseidon2_perm_B_49_0, e poseidon2_perm_B_49_1, e poseidon2_perm_B_49_2, e poseidon2_perm_B_49_3, e poseidon2_perm_B_4_0, e poseidon2_perm_B_4_1, e poseidon2_perm_B_4_2, e poseidon2_perm_B_4_3, e poseidon2_perm_B_50_0, e poseidon2_perm_B_50_1, e poseidon2_perm_B_50_2, e poseidon2_perm_B_50_3, e poseidon2_perm_B_51_0, e poseidon2_perm_B_51_1, e poseidon2_perm_B_51_2, e poseidon2_perm_B_51_3, e poseidon2_perm_B_52_0, e poseidon2_perm_B_52_1, e poseidon2_perm_B_52_2, e poseidon2_perm_B_52_3, e poseidon2_perm_B_53_0, e poseidon2_perm_B_53_1, e poseidon2_perm_B_53_2, e poseidon2_perm_B_53_3, e poseidon2_perm_B_54_0, e poseidon2_perm_B_54_1, e poseidon2_perm_B_54_2, e poseidon2_perm_B_54_3, e poseidon2_perm_B_55_0, e poseidon2_perm_B_55_1, e poseidon2_perm_B_55_2, e poseidon2_perm_B_55_3, e poseidon2_perm_B_56_0, e poseidon2_perm_B_56_1, e poseidon2_perm_B_56_2, e poseidon2_perm_B_56_3, e poseidon2_perm_B_57_0, e poseidon2_perm_B_57_1, e poseidon2_perm_B_57_2, e poseidon2_perm_B_57_3, e poseidon2_perm_B_58_0, e poseidon2_perm_B_58_1, e poseidon2_perm_B_58_2, e poseidon2_perm_B_58_3, e poseidon2_perm_B_59_0, e poseidon2_perm_B_59_1, e poseidon2_perm_B_59_2, e poseidon2_perm_B_59_3, e poseidon2_perm_B_5_0, e poseidon2_perm_B_5_1, e poseidon2_perm_B_5_2, e poseidon2_perm_B_5_3, e poseidon2_perm_B_6_0, e poseidon2_perm_B_6_1, e poseidon2_perm_B_6_2, e poseidon2_perm_B_6_3, e poseidon2_perm_B_7_0, e poseidon2_perm_B_7_1, e poseidon2_perm_B_7_2, e poseidon2_perm_B_7_3, e poseidon2_perm_B_8_0, e poseidon2_perm_B_8_1, e poseidon2_perm_B_8_2, e poseidon2_perm_B_8_3, e poseidon2_perm_B_9_0, e poseidon2_perm_B_9_1, e poseidon2_perm_B_9_2, e poseidon2_perm_B_9_3, e poseidon2_perm_EXT_LAYER_4, e poseidon2_perm_EXT_LAYER_5, e poseidon2_perm_EXT_LAYER_6, e poseidon2_perm_EXT_LAYER_7, e poseidon2_perm_T_0_4, e poseidon2_perm_T_0_5, e poseidon2_perm_T_0_6, e poseidon2_perm_T_0_7, e poseidon2_perm_T_1_4, e poseidon2_perm_T_1_5, e poseidon2_perm_T_1_6, e poseidon2_perm_T_1_7, e poseidon2_perm_T_2_4, e poseidon2_perm_T_2_5, e poseidon2_perm_T_2_6, e poseidon2_perm_T_2_7, e poseidon2_perm_T_3_4, e poseidon2_perm_T_3_5, e poseidon2_perm_T_3_6, e poseidon2_perm_T_3_7, e poseidon2_perm_T_60_4, e poseidon2_perm_T_60_5, e poseidon2_perm_T_60_6, e poseidon2_perm_T_60_7, e poseidon2_perm_T_61_4, e poseidon2_perm_T_61_5, e poseidon2_perm_T_61_6, e poseidon2_perm_T_61_7, e poseidon2_perm_T_62_4, e poseidon2_perm_T_62_5, e poseidon2_perm_T_62_6, e poseidon2_perm_T_62_7, e poseidon2_perm_T_63_4, e poseidon2_perm_T_63_5, e poseidon2_perm_T_63_6, e poseidon2_perm_T_63_7, e poseidon2_perm_a_0, e poseidon2_perm_a_1, e poseidon2_perm_a_2, e poseidon2_perm_a_3, e poseidon2_perm_b_0, e poseidon2_perm_b_1, e poseidon2_perm_b_2, e poseidon2_perm_b_3, e poseidon2_perm_sel, e public_data_read_leaf_not_exists, e public_data_read_low_leaf_hash, e public_data_read_low_leaf_index, e public_data_read_low_leaf_next_index, e public_data_read_low_leaf_next_slot, e public_data_read_low_leaf_slot, e public_data_read_low_leaf_value, e public_data_read_next_slot_inv, e public_data_read_next_slot_is_nonzero, e public_data_read_one, e public_data_read_root, e public_data_read_sel, e public_data_read_slot, e public_data_read_slot_low_leaf_slot_diff_inv, e public_data_read_tree_height, e public_data_read_value, e range_check_dyn_diff, e range_check_dyn_rng_chk_bits, e range_check_dyn_rng_chk_pow_2, e range_check_is_lte_u112, e range_check_is_lte_u128, e range_check_is_lte_u16, e range_check_is_lte_u32, e range_check_is_lte_u48, e range_check_is_lte_u64, e range_check_is_lte_u80, e range_check_is_lte_u96, e range_check_rng_chk_bits, e range_check_sel, e range_check_sel_r0_16_bit_rng_lookup, e range_check_sel_r1_16_bit_rng_lookup, e range_check_sel_r2_16_bit_rng_lookup, e range_check_sel_r3_16_bit_rng_lookup, e range_check_sel_r4_16_bit_rng_lookup, e range_check_sel_r5_16_bit_rng_lookup, e range_check_sel_r6_16_bit_rng_lookup, e range_check_u16_r0, e range_check_u16_r1, e range_check_u16_r2, e range_check_u16_r3, e range_check_u16_r4, e range_check_u16_r5, e range_check_u16_r6, e range_check_u16_r7, e range_check_value, e scalar_mul_bit, e scalar_mul_bit_idx, e scalar_mul_bit_radix, e scalar_mul_end, e scalar_mul_not_end, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_should_add, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_a_and_b, e sha256_a_and_b_xor_a_and_c, e sha256_a_and_c, e sha256_a_rotr_13, e sha256_a_rotr_2, e sha256_a_rotr_22, e sha256_a_rotr_2_xor_a_rotr_13, e sha256_and_sel, e sha256_b, e sha256_b_and_c, e sha256_c, e sha256_ch, e sha256_clk, e sha256_computed_w_lhs, e sha256_computed_w_rhs, e sha256_d, e sha256_e, e sha256_e_and_f, e sha256_e_rotr_11, e sha256_e_rotr_25, e sha256_e_rotr_6, e sha256_e_rotr_6_xor_e_rotr_11, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_init_a, e sha256_init_b, e sha256_init_c, e sha256_init_d, e sha256_init_e, e sha256_init_f, e sha256_init_g, e sha256_init_h, e sha256_input_offset, e sha256_is_input_round, e sha256_latch, e sha256_lhs_a_13, e sha256_lhs_a_2, e sha256_lhs_a_22, e sha256_lhs_e_11, e sha256_lhs_e_25, e sha256_lhs_e_6, e sha256_lhs_w_10, e sha256_lhs_w_17, e sha256_lhs_w_18, e sha256_lhs_w_19, e sha256_lhs_w_3, e sha256_lhs_w_7, e sha256_maj, e sha256_next_a_lhs, e sha256_next_a_rhs, e sha256_next_e_lhs, e sha256_next_e_rhs, e sha256_not_e, e sha256_not_e_and_g, e sha256_output_a_lhs, e sha256_output_a_rhs, e sha256_output_b_lhs, e sha256_output_b_rhs, e sha256_output_c_lhs, e sha256_output_c_rhs, e sha256_output_d_lhs, e sha256_output_d_rhs, e sha256_output_e_lhs, e sha256_output_e_rhs, e sha256_output_f_lhs, e sha256_output_f_rhs, e sha256_output_g_lhs, e sha256_output_g_rhs, e sha256_output_h_lhs, e sha256_output_h_rhs, e sha256_output_offset, e sha256_perform_round, e sha256_rhs_a_13, e sha256_rhs_a_2, e sha256_rhs_a_22, e sha256_rhs_e_11, e sha256_rhs_e_25, e sha256_rhs_e_6, e sha256_rhs_w_10, e sha256_rhs_w_17, e sha256_rhs_w_18, e sha256_rhs_w_19, e sha256_rhs_w_3, e sha256_rhs_w_7, e sha256_round_constant, e sha256_round_count, e sha256_rounds_remaining, e sha256_rounds_remaining_inv, e sha256_s_0, e sha256_s_1, e sha256_sel, e sha256_start, e sha256_state_offset, e sha256_w, e sha256_w_15_rotr_18, e sha256_w_15_rotr_7, e sha256_w_15_rotr_7_xor_w_15_rotr_18, e sha256_w_15_rshift_3, e sha256_w_2_rotr_17, e sha256_w_2_rotr_17_xor_w_2_rotr_19, e sha256_w_2_rotr_19, e sha256_w_2_rshift_10, e sha256_w_s_0, e sha256_w_s_1, e sha256_xor_sel, e to_radix_acc, e to_radix_acc_under_p, e to_radix_end, e to_radix_exponent, e to_radix_found, e to_radix_is_unsafe_limb, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_limb_p_diff, e to_radix_limb_radix_diff, e to_radix_not_end, e to_radix_not_padding_limb, e to_radix_p_limb, e to_radix_radix, e to_radix_rem_inverse, e to_radix_safe_limbs, e to_radix_safety_diff_inverse, e to_radix_sel, e to_radix_start, e to_radix_value, e update_check_address, e update_check_block_number, e update_check_block_number_bit_size, e update_check_block_number_is_lt_block_of_change, e update_check_block_of_change_subtraction, e update_check_current_class_id, e update_check_deployer_protocol_contract_address, e update_check_hash_not_zero, e update_check_original_class_id, e update_check_public_data_tree_root, e update_check_public_leaf_index_domain_separator, e update_check_sel, e update_check_shared_mutable_hash_slot, e update_check_shared_mutable_leaf_slot, e update_check_shared_mutable_slot, e update_check_update_block_of_change, e update_check_update_hash, e update_check_update_hash_inv, e update_check_update_hi_metadata, e update_check_update_hi_metadata_bit_size, e update_check_update_post_class_id_is_zero, e update_check_update_post_class_inv, e update_check_update_pre_class_id_is_zero, e update_check_update_pre_class_inv, e update_check_update_preimage_metadata, e update_check_update_preimage_post_class_id, e update_check_update_preimage_pre_class_id, e update_check_updated_class_ids_slot, e lookup_poseidon2_hash_poseidon2_perm_counts, e lookup_to_radix_limb_range_counts, e lookup_to_radix_limb_less_than_radix_range_counts, e lookup_to_radix_fetch_safe_limbs_counts, e lookup_to_radix_fetch_p_limb_counts, e lookup_to_radix_limb_p_diff_range_counts, e lookup_scalar_mul_to_radix_counts, e lookup_scalar_mul_double_counts, e lookup_scalar_mul_add_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_counts, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_counts, e lookup_address_derivation_partial_address_poseidon2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_0_counts, e lookup_address_derivation_public_keys_hash_poseidon2_1_counts, e lookup_address_derivation_public_keys_hash_poseidon2_2_counts, e lookup_address_derivation_public_keys_hash_poseidon2_3_counts, e lookup_address_derivation_public_keys_hash_poseidon2_4_counts, e lookup_address_derivation_preaddress_poseidon2_counts, e lookup_address_derivation_preaddress_scalar_mul_counts, e lookup_address_derivation_address_ecadd_counts, e lookup_bc_decomposition_bytes_are_bytes_counts, e lookup_bc_decomposition_abs_diff_is_u16_counts, e lookup_bc_hashing_get_packed_field_counts, e lookup_bc_hashing_iv_is_len_counts, e lookup_bc_hashing_poseidon2_hash_counts, e lookup_range_check_dyn_rng_chk_pow_2_counts, e lookup_range_check_dyn_diff_is_u16_counts, e lookup_range_check_r0_is_u16_counts, e lookup_range_check_r1_is_u16_counts, e lookup_range_check_r2_is_u16_counts, e lookup_range_check_r3_is_u16_counts, e lookup_range_check_r4_is_u16_counts, e lookup_range_check_r5_is_u16_counts, e lookup_range_check_r6_is_u16_counts, e lookup_range_check_r7_is_u16_counts, e lookup_merkle_check_merkle_poseidon2_read_counts, e lookup_merkle_check_merkle_poseidon2_write_counts, e lookup_ff_gt_a_lo_range_counts, e lookup_ff_gt_a_hi_range_counts, e lookup_public_data_read_low_leaf_poseidon2_0_counts, e lookup_public_data_read_low_leaf_poseidon2_1_counts, e lookup_public_data_read_low_leaf_membership_counts, e lookup_public_data_read_low_leaf_slot_validation_counts, e lookup_public_data_read_low_leaf_next_slot_validation_counts, e lookup_update_check_shared_mutable_slot_poseidon2_counts, e lookup_update_check_shared_mutable_leaf_slot_poseidon2_counts, e lookup_update_check_update_hash_public_data_read_counts, e lookup_update_check_update_hash_poseidon2_counts, e lookup_update_check_update_hi_metadata_range_counts, e lookup_update_check_update_lo_metadata_range_counts, e lookup_update_check_block_of_change_cmp_range_counts, e lookup_nullifier_check_low_leaf_poseidon2_counts, e lookup_nullifier_check_updated_low_leaf_poseidon2_counts, e lookup_nullifier_check_low_leaf_merkle_check_counts, e lookup_nullifier_check_low_leaf_nullifier_validation_counts, e lookup_nullifier_check_low_leaf_next_nullifier_validation_counts, e lookup_nullifier_check_new_leaf_poseidon2_counts, e lookup_nullifier_check_new_leaf_merkle_check_counts, e lookup_bc_retrieval_silo_deployment_nullifier_poseidon2_counts, e lookup_bc_retrieval_deployment_nullifier_read_counts, e lookup_bc_retrieval_address_derivation_counts, e lookup_bc_retrieval_update_check_counts, e lookup_bc_retrieval_class_id_derivation_counts, e lookup_bc_retrieval_bytecode_hash_is_correct_counts, e lookup_instr_fetching_pc_abs_diff_positive_counts, e lookup_instr_fetching_instr_abs_diff_positive_counts, e lookup_instr_fetching_tag_value_validation_counts, e lookup_instr_fetching_bytecode_size_from_bc_dec_counts, e lookup_instr_fetching_bytes_from_bc_dec_counts, e lookup_instr_fetching_wire_instruction_info_counts, e lookup_class_id_derivation_class_id_poseidon2_0_counts, e lookup_class_id_derivation_class_id_poseidon2_1_counts, e lookup_bitwise_integral_tag_length_counts, e lookup_bitwise_byte_operations_counts, e lookup_sha256_round_constant_counts #define AVM2_DERIVED_WITNESS_ENTITIES_E(e) e lookup_poseidon2_hash_poseidon2_perm_inv, e lookup_to_radix_limb_range_inv, e lookup_to_radix_limb_less_than_radix_range_inv, e lookup_to_radix_fetch_safe_limbs_inv, e lookup_to_radix_fetch_p_limb_inv, e lookup_to_radix_limb_p_diff_range_inv, e lookup_scalar_mul_to_radix_inv, e lookup_scalar_mul_double_inv, e lookup_scalar_mul_add_inv, e lookup_address_derivation_salted_initialization_hash_poseidon2_0_inv, e lookup_address_derivation_salted_initialization_hash_poseidon2_1_inv, e lookup_address_derivation_partial_address_poseidon2_inv, e lookup_address_derivation_public_keys_hash_poseidon2_0_inv, e lookup_address_derivation_public_keys_hash_poseidon2_1_inv, e lookup_address_derivation_public_keys_hash_poseidon2_2_inv, e lookup_address_derivation_public_keys_hash_poseidon2_3_inv, e lookup_address_derivation_public_keys_hash_poseidon2_4_inv, e lookup_address_derivation_preaddress_poseidon2_inv, e lookup_address_derivation_preaddress_scalar_mul_inv, e lookup_address_derivation_address_ecadd_inv, e lookup_bc_decomposition_bytes_are_bytes_inv, e lookup_bc_decomposition_abs_diff_is_u16_inv, e lookup_bc_hashing_get_packed_field_inv, e lookup_bc_hashing_iv_is_len_inv, e lookup_bc_hashing_poseidon2_hash_inv, e lookup_range_check_dyn_rng_chk_pow_2_inv, e lookup_range_check_dyn_diff_is_u16_inv, e lookup_range_check_r0_is_u16_inv, e lookup_range_check_r1_is_u16_inv, e lookup_range_check_r2_is_u16_inv, e lookup_range_check_r3_is_u16_inv, e lookup_range_check_r4_is_u16_inv, e lookup_range_check_r5_is_u16_inv, e lookup_range_check_r6_is_u16_inv, e lookup_range_check_r7_is_u16_inv, e lookup_merkle_check_merkle_poseidon2_read_inv, e lookup_merkle_check_merkle_poseidon2_write_inv, e lookup_ff_gt_a_lo_range_inv, e lookup_ff_gt_a_hi_range_inv, e lookup_public_data_read_low_leaf_poseidon2_0_inv, e lookup_public_data_read_low_leaf_poseidon2_1_inv, e lookup_public_data_read_low_leaf_membership_inv, e lookup_public_data_read_low_leaf_slot_validation_inv, e lookup_public_data_read_low_leaf_next_slot_validation_inv, e lookup_update_check_shared_mutable_slot_poseidon2_inv, e lookup_update_check_shared_mutable_leaf_slot_poseidon2_inv, e lookup_update_check_update_hash_public_data_read_inv, e lookup_update_check_update_hash_poseidon2_inv, e lookup_update_check_update_hi_metadata_range_inv, e lookup_update_check_update_lo_metadata_range_inv, e lookup_update_check_block_of_change_cmp_range_inv, e lookup_nullifier_check_low_leaf_poseidon2_inv, e lookup_nullifier_check_updated_low_leaf_poseidon2_inv, e lookup_nullifier_check_low_leaf_merkle_check_inv, e lookup_nullifier_check_low_leaf_nullifier_validation_inv, e lookup_nullifier_check_low_leaf_next_nullifier_validation_inv, e lookup_nullifier_check_new_leaf_poseidon2_inv, e lookup_nullifier_check_new_leaf_merkle_check_inv, e lookup_bc_retrieval_silo_deployment_nullifier_poseidon2_inv, e lookup_bc_retrieval_deployment_nullifier_read_inv, e lookup_bc_retrieval_address_derivation_inv, e lookup_bc_retrieval_update_check_inv, e lookup_bc_retrieval_class_id_derivation_inv, e lookup_bc_retrieval_bytecode_hash_is_correct_inv, e lookup_instr_fetching_pc_abs_diff_positive_inv, e lookup_instr_fetching_instr_abs_diff_positive_inv, e lookup_instr_fetching_tag_value_validation_inv, e lookup_instr_fetching_bytecode_size_from_bc_dec_inv, e lookup_instr_fetching_bytes_from_bc_dec_inv, e lookup_instr_fetching_wire_instruction_info_inv, e lookup_class_id_derivation_class_id_poseidon2_0_inv, e lookup_class_id_derivation_class_id_poseidon2_1_inv, e lookup_bitwise_integral_tag_length_inv, e lookup_bitwise_byte_operations_inv, e lookup_sha256_round_constant_inv #define AVM2_SHIFTED_ENTITIES_E(e) e bc_decomposition_bytes_shift, e bc_decomposition_bytes_pc_plus_1_shift, e bc_decomposition_bytes_pc_plus_10_shift, e bc_decomposition_bytes_pc_plus_11_shift, e bc_decomposition_bytes_pc_plus_12_shift, e bc_decomposition_bytes_pc_plus_13_shift, e bc_decomposition_bytes_pc_plus_14_shift, e bc_decomposition_bytes_pc_plus_15_shift, e bc_decomposition_bytes_pc_plus_16_shift, e bc_decomposition_bytes_pc_plus_17_shift, e bc_decomposition_bytes_pc_plus_18_shift, e bc_decomposition_bytes_pc_plus_19_shift, e bc_decomposition_bytes_pc_plus_2_shift, e bc_decomposition_bytes_pc_plus_20_shift, e bc_decomposition_bytes_pc_plus_21_shift, e bc_decomposition_bytes_pc_plus_22_shift, e bc_decomposition_bytes_pc_plus_23_shift, e bc_decomposition_bytes_pc_plus_24_shift, e bc_decomposition_bytes_pc_plus_25_shift, e bc_decomposition_bytes_pc_plus_26_shift, e bc_decomposition_bytes_pc_plus_27_shift, e bc_decomposition_bytes_pc_plus_28_shift, e bc_decomposition_bytes_pc_plus_29_shift, e bc_decomposition_bytes_pc_plus_3_shift, e bc_decomposition_bytes_pc_plus_30_shift, e bc_decomposition_bytes_pc_plus_31_shift, e bc_decomposition_bytes_pc_plus_32_shift, e bc_decomposition_bytes_pc_plus_33_shift, e bc_decomposition_bytes_pc_plus_34_shift, e bc_decomposition_bytes_pc_plus_35_shift, e bc_decomposition_bytes_pc_plus_4_shift, e bc_decomposition_bytes_pc_plus_5_shift, e bc_decomposition_bytes_pc_plus_6_shift, e bc_decomposition_bytes_pc_plus_7_shift, e bc_decomposition_bytes_pc_plus_8_shift, e bc_decomposition_bytes_pc_plus_9_shift, e bc_decomposition_bytes_remaining_shift, e bc_decomposition_id_shift, e bc_decomposition_pc_shift, e bc_decomposition_sel_shift, e bc_hashing_bytecode_id_shift, e bc_hashing_incremental_hash_shift, e bc_hashing_pc_index_shift, e bc_hashing_sel_shift, e bc_hashing_start_shift, e bitwise_acc_ia_shift, e bitwise_acc_ib_shift, e bitwise_acc_ic_shift, e bitwise_ctr_shift, e bitwise_op_id_shift, e execution_context_id_shift, e execution_contract_address_shift, e execution_is_static_shift, e execution_msg_sender_shift, e execution_next_context_id_shift, e execution_parent_calldata_offset_addr_shift, e execution_parent_calldata_size_addr_shift, e execution_parent_id_shift, e execution_pc_shift, e execution_sel_shift, e ff_gt_a_hi_shift, e ff_gt_a_lo_shift, e ff_gt_b_hi_shift, e ff_gt_b_lo_shift, e ff_gt_cmp_rng_ctr_shift, e ff_gt_p_sub_a_hi_shift, e ff_gt_p_sub_a_lo_shift, e ff_gt_p_sub_b_hi_shift, e ff_gt_p_sub_b_lo_shift, e ff_gt_sel_shift, e ff_gt_sel_gt_shift, e merkle_check_index_shift, e merkle_check_path_len_shift, e merkle_check_read_node_shift, e merkle_check_read_root_shift, e merkle_check_sel_shift, e merkle_check_start_shift, e merkle_check_write_shift, e merkle_check_write_node_shift, e merkle_check_write_root_shift, e poseidon2_hash_a_0_shift, e poseidon2_hash_a_1_shift, e poseidon2_hash_a_2_shift, e poseidon2_hash_a_3_shift, e poseidon2_hash_input_0_shift, e poseidon2_hash_input_1_shift, e poseidon2_hash_input_2_shift, e poseidon2_hash_num_perm_rounds_rem_shift, e poseidon2_hash_output_shift, e poseidon2_hash_sel_shift, e poseidon2_hash_start_shift, e scalar_mul_bit_idx_shift, e scalar_mul_point_inf_shift, e scalar_mul_point_x_shift, e scalar_mul_point_y_shift, e scalar_mul_res_inf_shift, e scalar_mul_res_x_shift, e scalar_mul_res_y_shift, e scalar_mul_scalar_shift, e scalar_mul_sel_shift, e scalar_mul_start_shift, e scalar_mul_temp_inf_shift, e scalar_mul_temp_x_shift, e scalar_mul_temp_y_shift, e sha256_a_shift, e sha256_b_shift, e sha256_c_shift, e sha256_d_shift, e sha256_e_shift, e sha256_f_shift, e sha256_g_shift, e sha256_h_shift, e sha256_helper_w0_shift, e sha256_helper_w1_shift, e sha256_helper_w10_shift, e sha256_helper_w11_shift, e sha256_helper_w12_shift, e sha256_helper_w13_shift, e sha256_helper_w14_shift, e sha256_helper_w15_shift, e sha256_helper_w2_shift, e sha256_helper_w3_shift, e sha256_helper_w4_shift, e sha256_helper_w5_shift, e sha256_helper_w6_shift, e sha256_helper_w7_shift, e sha256_helper_w8_shift, e sha256_helper_w9_shift, e sha256_rounds_remaining_shift, e sha256_sel_shift, e sha256_start_shift, e to_radix_acc_shift, e to_radix_acc_under_p_shift, e to_radix_exponent_shift, e to_radix_limb_shift, e to_radix_limb_eq_p_shift, e to_radix_limb_index_shift, e to_radix_limb_lt_p_shift, e to_radix_not_padding_limb_shift, e to_radix_radix_shift, e to_radix_safe_limbs_shift, e to_radix_sel_shift, e to_radix_start_shift, e to_radix_value_shift #define AVM2_TO_BE_SHIFTED_E(e) e bc_decomposition_bytes, e bc_decomposition_bytes_pc_plus_1, e bc_decomposition_bytes_pc_plus_10, e bc_decomposition_bytes_pc_plus_11, e bc_decomposition_bytes_pc_plus_12, e bc_decomposition_bytes_pc_plus_13, e bc_decomposition_bytes_pc_plus_14, e bc_decomposition_bytes_pc_plus_15, e bc_decomposition_bytes_pc_plus_16, e bc_decomposition_bytes_pc_plus_17, e bc_decomposition_bytes_pc_plus_18, e bc_decomposition_bytes_pc_plus_19, e bc_decomposition_bytes_pc_plus_2, e bc_decomposition_bytes_pc_plus_20, e bc_decomposition_bytes_pc_plus_21, e bc_decomposition_bytes_pc_plus_22, e bc_decomposition_bytes_pc_plus_23, e bc_decomposition_bytes_pc_plus_24, e bc_decomposition_bytes_pc_plus_25, e bc_decomposition_bytes_pc_plus_26, e bc_decomposition_bytes_pc_plus_27, e bc_decomposition_bytes_pc_plus_28, e bc_decomposition_bytes_pc_plus_29, e bc_decomposition_bytes_pc_plus_3, e bc_decomposition_bytes_pc_plus_30, e bc_decomposition_bytes_pc_plus_31, e bc_decomposition_bytes_pc_plus_32, e bc_decomposition_bytes_pc_plus_33, e bc_decomposition_bytes_pc_plus_34, e bc_decomposition_bytes_pc_plus_35, e bc_decomposition_bytes_pc_plus_4, e bc_decomposition_bytes_pc_plus_5, e bc_decomposition_bytes_pc_plus_6, e bc_decomposition_bytes_pc_plus_7, e bc_decomposition_bytes_pc_plus_8, e bc_decomposition_bytes_pc_plus_9, e bc_decomposition_bytes_remaining, e bc_decomposition_id, e bc_decomposition_pc, e bc_decomposition_sel, e bc_hashing_bytecode_id, e bc_hashing_incremental_hash, e bc_hashing_pc_index, e bc_hashing_sel, e bc_hashing_start, e bitwise_acc_ia, e bitwise_acc_ib, e bitwise_acc_ic, e bitwise_ctr, e bitwise_op_id, e execution_context_id, e execution_contract_address, e execution_is_static, e execution_msg_sender, e execution_next_context_id, e execution_parent_calldata_offset_addr, e execution_parent_calldata_size_addr, e execution_parent_id, e execution_pc, e execution_sel, e ff_gt_a_hi, e ff_gt_a_lo, e ff_gt_b_hi, e ff_gt_b_lo, e ff_gt_cmp_rng_ctr, e ff_gt_p_sub_a_hi, e ff_gt_p_sub_a_lo, e ff_gt_p_sub_b_hi, e ff_gt_p_sub_b_lo, e ff_gt_sel, e ff_gt_sel_gt, e merkle_check_index, e merkle_check_path_len, e merkle_check_read_node, e merkle_check_read_root, e merkle_check_sel, e merkle_check_start, e merkle_check_write, e merkle_check_write_node, e merkle_check_write_root, e poseidon2_hash_a_0, e poseidon2_hash_a_1, e poseidon2_hash_a_2, e poseidon2_hash_a_3, e poseidon2_hash_input_0, e poseidon2_hash_input_1, e poseidon2_hash_input_2, e poseidon2_hash_num_perm_rounds_rem, e poseidon2_hash_output, e poseidon2_hash_sel, e poseidon2_hash_start, e scalar_mul_bit_idx, e scalar_mul_point_inf, e scalar_mul_point_x, e scalar_mul_point_y, e scalar_mul_res_inf, e scalar_mul_res_x, e scalar_mul_res_y, e scalar_mul_scalar, e scalar_mul_sel, e scalar_mul_start, e scalar_mul_temp_inf, e scalar_mul_temp_x, e scalar_mul_temp_y, e sha256_a, e sha256_b, e sha256_c, e sha256_d, e sha256_e, e sha256_f, e sha256_g, e sha256_h, e sha256_helper_w0, e sha256_helper_w1, e sha256_helper_w10, e sha256_helper_w11, e sha256_helper_w12, e sha256_helper_w13, e sha256_helper_w14, e sha256_helper_w15, e sha256_helper_w2, e sha256_helper_w3, e sha256_helper_w4, e sha256_helper_w5, e sha256_helper_w6, e sha256_helper_w7, e sha256_helper_w8, e sha256_helper_w9, e sha256_rounds_remaining, e sha256_sel, e sha256_start, e to_radix_acc, e to_radix_acc_under_p, e to_radix_exponent, e to_radix_limb, e to_radix_limb_eq_p, e to_radix_limb_index, e to_radix_limb_lt_p, e to_radix_not_padding_limb, e to_radix_radix, e to_radix_safe_limbs, e to_radix_sel, e to_radix_start, e to_radix_value @@ -37,8 +37,8 @@ enum class ColumnAndShifts { SENTINEL_DO_NOT_USE, }; -constexpr auto NUM_COLUMNS_WITH_SHIFTS = 2291; -constexpr auto NUM_COLUMNS_WITHOUT_SHIFTS = 2147; +constexpr auto NUM_COLUMNS_WITH_SHIFTS = 2290; +constexpr auto NUM_COLUMNS_WITHOUT_SHIFTS = 2146; constexpr auto TO_BE_SHIFTED_COLUMNS_ARRAY = []() { return std::array{ AVM2_TO_BE_SHIFTED_COLUMNS }; }(); constexpr auto SHIFTED_COLUMNS_ARRAY = []() { return std::array{ AVM2_SHIFTED_COLUMNS }; }(); static_assert(TO_BE_SHIFTED_COLUMNS_ARRAY.size() == SHIFTED_COLUMNS_ARRAY.size()); diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp index e2f953d8055d..103c1108cd60 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/flavor_variables.hpp @@ -50,10 +50,10 @@ namespace bb::avm2 { struct AvmFlavorVariables { static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 70; - static constexpr size_t NUM_WITNESS_ENTITIES = 2077; + static constexpr size_t NUM_WITNESS_ENTITIES = 2076; static constexpr size_t NUM_SHIFTED_ENTITIES = 144; static constexpr size_t NUM_WIRES = NUM_WITNESS_ENTITIES + NUM_PRECOMPUTED_ENTITIES; - static constexpr size_t NUM_ALL_ENTITIES = 2291; + static constexpr size_t NUM_ALL_ENTITIES = 2290; // Need to be templated for recursive verifier template diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/instr_fetching.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/instr_fetching.hpp index 0b160fd280a6..4aa322a71d3b 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/instr_fetching.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/instr_fetching.hpp @@ -34,7 +34,7 @@ template class instr_fetchingImpl { const auto instr_fetching_PARSING_ERROR_EXCEPT_TAG_ERROR = in.get(C::instr_fetching_pc_out_of_range) + in.get(C::instr_fetching_opcode_out_of_range) + in.get(C::instr_fetching_instr_out_of_range); - const auto instr_fetching_SEL_OP_DC_18 = + const auto instr_fetching_SEL_OP_DC_17 = in.get(C::instr_fetching_sel_op_dc_2) + in.get(C::instr_fetching_sel_op_dc_6); { @@ -118,7 +118,7 @@ template class instr_fetchingImpl { (FF(1) - instr_fetching_PARSING_ERROR_EXCEPT_TAG_ERROR) * (in.get(C::instr_fetching_sel_op_dc_0) * (in.get(C::instr_fetching_bd1) * FF(256) + in.get(C::instr_fetching_bd2) * FF(1)) + - instr_fetching_SEL_OP_DC_18 * in.get(C::instr_fetching_bd1) * FF(1))); + instr_fetching_SEL_OP_DC_17 * in.get(C::instr_fetching_bd1) * FF(1))); tmp *= scaling_factor; std::get<10>(evals) += typename Accumulator::View(tmp); } @@ -164,6 +164,7 @@ template class instr_fetchingImpl { (in.get(C::instr_fetching_bd7) * FF(256) + in.get(C::instr_fetching_bd8) * FF(1)) + in.get(C::instr_fetching_sel_op_dc_4) * (in.get(C::instr_fetching_bd6) * FF(256) + in.get(C::instr_fetching_bd7) * FF(1)) + + in.get(C::instr_fetching_sel_op_dc_7) * in.get(C::instr_fetching_bd6) * FF(1) + in.get(C::instr_fetching_sel_op_dc_9) * (in.get(C::instr_fetching_bd5) * FF(uint256_t{ 0UL, 0UL, 0UL, 72057594037927936UL }) + in.get(C::instr_fetching_bd6) * FF(uint256_t{ 0UL, 0UL, 0UL, 281474976710656UL }) + @@ -222,8 +223,7 @@ template class instr_fetchingImpl { in.get(C::instr_fetching_bd7) * FF(256) + in.get(C::instr_fetching_bd8) * FF(1)) + in.get(C::instr_fetching_sel_op_dc_13) * (in.get(C::instr_fetching_bd5) * FF(256) + in.get(C::instr_fetching_bd6) * FF(1)) + - in.get(C::instr_fetching_sel_op_dc_14) * in.get(C::instr_fetching_bd4) * FF(1) + - in.get(C::instr_fetching_sel_op_dc_17) * in.get(C::instr_fetching_bd6) * FF(1))); + in.get(C::instr_fetching_sel_op_dc_14) * in.get(C::instr_fetching_bd4) * FF(1))); tmp *= scaling_factor; std::get<13>(evals) += typename Accumulator::View(tmp); } @@ -234,8 +234,7 @@ template class instr_fetchingImpl { (in.get(C::instr_fetching_sel_op_dc_0) * (in.get(C::instr_fetching_bd9) * FF(256) + in.get(C::instr_fetching_bd10) * FF(1)) + in.get(C::instr_fetching_sel_op_dc_5) * - (in.get(C::instr_fetching_bd8) * FF(256) + in.get(C::instr_fetching_bd9) * FF(1)) + - in.get(C::instr_fetching_sel_op_dc_7) * in.get(C::instr_fetching_bd8) * FF(1))); + (in.get(C::instr_fetching_bd8) * FF(256) + in.get(C::instr_fetching_bd9) * FF(1)))); tmp *= scaling_factor; std::get<14>(evals) += typename Accumulator::View(tmp); } diff --git a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_instr_fetching.hpp b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_instr_fetching.hpp index f75f09b05956..1fd575b4dcae 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_instr_fetching.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/generated/relations/lookups_instr_fetching.hpp @@ -196,7 +196,7 @@ using lookup_instr_fetching_bytes_from_bc_dec_relation = struct lookup_instr_fetching_wire_instruction_info_settings_ { static constexpr std::string_view NAME = "LOOKUP_INSTR_FETCHING_WIRE_INSTRUCTION_INFO"; static constexpr std::string_view RELATION_NAME = "instr_fetching"; - static constexpr size_t LOOKUP_TUPLE_SIZE = 24; + static constexpr size_t LOOKUP_TUPLE_SIZE = 23; static constexpr Column SRC_SELECTOR = Column::instr_fetching_sel_pc_in_range; static constexpr Column DST_SELECTOR = Column::precomputed_sel_range_8; static constexpr Column COUNTS = Column::lookup_instr_fetching_wire_instruction_info_counts; @@ -213,7 +213,7 @@ struct lookup_instr_fetching_wire_instruction_info_settings_ { ColumnAndShifts::instr_fetching_sel_op_dc_10, ColumnAndShifts::instr_fetching_sel_op_dc_11, ColumnAndShifts::instr_fetching_sel_op_dc_12, ColumnAndShifts::instr_fetching_sel_op_dc_13, ColumnAndShifts::instr_fetching_sel_op_dc_14, ColumnAndShifts::instr_fetching_sel_op_dc_15, - ColumnAndShifts::instr_fetching_sel_op_dc_16, ColumnAndShifts::instr_fetching_sel_op_dc_17 + ColumnAndShifts::instr_fetching_sel_op_dc_16 }; static constexpr std::array DST_COLUMNS = { ColumnAndShifts::precomputed_clk, ColumnAndShifts::precomputed_opcode_out_of_range, @@ -227,7 +227,7 @@ struct lookup_instr_fetching_wire_instruction_info_settings_ { ColumnAndShifts::precomputed_sel_op_dc_10, ColumnAndShifts::precomputed_sel_op_dc_11, ColumnAndShifts::precomputed_sel_op_dc_12, ColumnAndShifts::precomputed_sel_op_dc_13, ColumnAndShifts::precomputed_sel_op_dc_14, ColumnAndShifts::precomputed_sel_op_dc_15, - ColumnAndShifts::precomputed_sel_op_dc_16, ColumnAndShifts::precomputed_sel_op_dc_17 + ColumnAndShifts::precomputed_sel_op_dc_16 }; }; diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/events/execution_event.hpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/events/execution_event.hpp index ab3d0036a410..be46bc46d4a0 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/events/execution_event.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/events/execution_event.hpp @@ -25,8 +25,7 @@ struct ExecutionEvent { // Inputs and Outputs for a gadget/subtrace used when allocating registers in the execution trace. std::vector inputs; - // todo(ilyas): this is a vector because GETCONTRACTINSTANCE has 2 outputs, we should change this to 1 - std::vector output; + TaggedValue output; // Context Id for the next context. uint32_t next_context_id; diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/execution.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/execution.cpp index db2636f217f8..914a3d2d7377 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/execution.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/execution.cpp @@ -22,7 +22,7 @@ void Execution::add(ContextInterface& context, MemoryAddress a_addr, MemoryAddre memory.set(dst_addr, c); set_inputs({ a, b }); - set_outputs({ c }); + set_output(c); } // TODO: My dispatch system makes me have a uint8_t tag. Rethink. @@ -30,7 +30,7 @@ void Execution::set(ContextInterface& context, MemoryAddress dst_addr, uint8_t t { TaggedValue tagged_value = TaggedValue::from_tag(static_cast(tag), value); context.get_memory().set(dst_addr, tagged_value); - set_outputs({ tagged_value }); + set_output(tagged_value); } void Execution::mov(ContextInterface& context, MemoryAddress src_addr, MemoryAddress dst_addr) @@ -40,7 +40,7 @@ void Execution::mov(ContextInterface& context, MemoryAddress src_addr, MemoryAdd memory.set(dst_addr, v); set_inputs({ v }); - set_outputs({ v }); + set_output(v); } void Execution::call(ContextInterface& context, @@ -156,7 +156,7 @@ ExecutionResult Execution::execute_internal(ContextInterface& context) dispatch_opcode(opcode, context, resolved_operands); // TODO: we set the inputs and outputs here and into the execution event, but maybe there's a better way ex_event.inputs = get_inputs(); - ex_event.output = get_outputs(); + ex_event.output = get_output(); // Move on to the next pc. context.set_pc(context.get_next_pc()); diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/execution.hpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/execution.hpp index 3abfefc93e25..c754dfdfe1b0 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/execution.hpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/execution.hpp @@ -73,11 +73,11 @@ class Execution : public ExecutionInterface { void ret(ContextInterface& context, MemoryAddress ret_offset, MemoryAddress ret_size_offset); // TODO(#13683): This is leaking circuit implementation details. We should have a better way to do this. - // Setters for inputs and outputs for gadgets/subtraces. These are used for register allocation. + // Setters for inputs and output for gadgets/subtraces. These are used for register allocation. void set_inputs(std::vector inputs) { this->inputs = std::move(inputs); } - void set_outputs(std::vector outputs) { this->outputs = std::move(outputs); } + void set_output(TaggedValue output) { this->output = std::move(output); } const std::vector& get_inputs() const { return inputs; } - const std::vector& get_outputs() const { return outputs; } + const TaggedValue& get_output() const { return output; } private: void set_execution_result(ExecutionResult exec_result) { this->exec_result = exec_result; } @@ -104,7 +104,7 @@ class Execution : public ExecutionInterface { ExecutionResult exec_result; std::vector inputs; - std::vector outputs; + TaggedValue output; }; } // namespace bb::avm2::simulation diff --git a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/serialization.cpp b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/serialization.cpp index bd0115807752..108ada20ef08 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/serialization.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/simulation/lib/serialization.cpp @@ -139,7 +139,7 @@ const std::unordered_map> WireOpCode_WIRE_F { WireOpCode::L1TOL2MSGEXISTS, { OperandType::INDIRECT8, OperandType::UINT16, OperandType::UINT16, OperandType::UINT16 } }, { WireOpCode::GETCONTRACTINSTANCE, - { OperandType::INDIRECT8, OperandType::UINT16, OperandType::UINT16, OperandType::UINT16, OperandType::UINT8 } }, + { OperandType::INDIRECT8, OperandType::UINT16, OperandType::UINT16, OperandType::UINT8 } }, { WireOpCode::EMITUNENCRYPTEDLOG, { OperandType::INDIRECT8, diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/bytecode_trace.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/bytecode_trace.cpp index 7f9c5ea1eff7..77adf604f1ce 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/bytecode_trace.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/bytecode_trace.cpp @@ -354,7 +354,6 @@ void BytecodeTraceBuilder::process_instruction_fetching( { C::instr_fetching_sel_op_dc_14, op_dc_selectors.at(14) }, { C::instr_fetching_sel_op_dc_15, op_dc_selectors.at(15) }, { C::instr_fetching_sel_op_dc_16, op_dc_selectors.at(16) }, - { C::instr_fetching_sel_op_dc_17, op_dc_selectors.at(17) }, // Parsing errors { C::instr_fetching_pc_out_of_range, event.error == PC_OUT_OF_RANGE ? 1 : 0 }, diff --git a/barretenberg/cpp/src/barretenberg/vm2/tracegen/execution_trace.cpp b/barretenberg/cpp/src/barretenberg/vm2/tracegen/execution_trace.cpp index dd127846528b..d22ef4b7b2a5 100644 --- a/barretenberg/cpp/src/barretenberg/vm2/tracegen/execution_trace.cpp +++ b/barretenberg/cpp/src/barretenberg/vm2/tracegen/execution_trace.cpp @@ -51,13 +51,12 @@ void ExecutionTraceBuilder::process( std::array registers = {}; size_t input_counter = 0; - size_t output_counter = 0; auto register_info = REGISTER_INFO_MAP.at(ex_event.opcode); for (uint8_t i = 0; i < operand_columns; ++i) { if (register_info.is_active(i)) { if (register_info.is_write(i)) { // If this is a write operation, we need to get the value from the output. - registers[i] = ex_event.output[output_counter++]; + registers[i] = ex_event.output; } else { // If this is a read operation, we need to get the value from the input. registers[i] = ex_event.inputs[input_counter++]; diff --git a/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr b/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr index 543b5c955611..9e47896c3e6a 100644 --- a/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr +++ b/noir-projects/aztec-nr/aztec/src/oracle/get_contract_instance.nr @@ -22,40 +22,46 @@ pub fn get_contract_instance(address: AztecAddress) -> ContractInstance { instance } +struct GetContractInstanceResult { + exists: bool, + member: Field, +} + // These oracles each return a ContractInstance member // plus a boolean indicating whether the instance was found. #[oracle(avmOpcodeGetContractInstanceDeployer)] unconstrained fn get_contract_instance_deployer_oracle_avm( _address: AztecAddress, -) -> (Field, bool) {} +) -> [GetContractInstanceResult; 1] {} #[oracle(avmOpcodeGetContractInstanceClassId)] unconstrained fn get_contract_instance_class_id_oracle_avm( _address: AztecAddress, -) -> (Field, bool) {} +) -> [GetContractInstanceResult; 1] {} #[oracle(avmOpcodeGetContractInstanceInitializationHash)] unconstrained fn get_contract_instance_initialization_hash_oracle_avm( _address: AztecAddress, -) -> (Field, bool) {} +) -> [GetContractInstanceResult; 1] {} -pub unconstrained fn get_contract_instance_deployer_internal_avm( +unconstrained fn get_contract_instance_deployer_internal_avm( address: AztecAddress, -) -> (Field, bool) { +) -> [GetContractInstanceResult; 1] { get_contract_instance_deployer_oracle_avm(address) } -pub unconstrained fn get_contract_instance_class_id_internal_avm( +unconstrained fn get_contract_instance_class_id_internal_avm( address: AztecAddress, -) -> (Field, bool) { +) -> [GetContractInstanceResult; 1] { get_contract_instance_class_id_oracle_avm(address) } -pub unconstrained fn get_contract_instance_initialization_hash_internal_avm( +unconstrained fn get_contract_instance_initialization_hash_internal_avm( address: AztecAddress, -) -> (Field, bool) { +) -> [GetContractInstanceResult; 1] { get_contract_instance_initialization_hash_oracle_avm(address) } pub fn get_contract_instance_deployer_avm(address: AztecAddress) -> Option { // Safety: AVM opcodes are constrained by the AVM itself - let (member, exists) = unsafe { get_contract_instance_deployer_internal_avm(address) }; + let GetContractInstanceResult { exists, member } = + unsafe { get_contract_instance_deployer_internal_avm(address)[0] }; if exists { Option::some(AztecAddress::from_field(member)) } else { @@ -64,7 +70,8 @@ pub fn get_contract_instance_deployer_avm(address: AztecAddress) -> Option Option { // Safety: AVM opcodes are constrained by the AVM itself - let (member, exists) = unsafe { get_contract_instance_class_id_internal_avm(address) }; + let GetContractInstanceResult { exists, member } = + unsafe { get_contract_instance_class_id_internal_avm(address)[0] }; if exists { Option::some(ContractClassId::from_field(member)) } else { @@ -73,8 +80,8 @@ pub fn get_contract_instance_class_id_avm(address: AztecAddress) -> Option Option { // Safety: AVM opcodes are constrained by the AVM itself - let (member, exists) = - unsafe { get_contract_instance_initialization_hash_internal_avm(address) }; + let GetContractInstanceResult { exists, member } = + unsafe { get_contract_instance_initialization_hash_internal_avm(address)[0] }; if exists { Option::some(member) } else { diff --git a/yarn-project/simulator/src/public/avm/opcodes/contract.test.ts b/yarn-project/simulator/src/public/avm/opcodes/contract.test.ts index 5e613522e27b..ecb07beafe5e 100644 --- a/yarn-project/simulator/src/public/avm/opcodes/contract.test.ts +++ b/yarn-project/simulator/src/public/avm/opcodes/contract.test.ts @@ -37,14 +37,12 @@ describe('Contract opcodes', () => { 0x01, // indirect ...Buffer.from('1234', 'hex'), // addressOffset ...Buffer.from('a234', 'hex'), // dstOffset - ...Buffer.from('b234', 'hex'), // existsOffset 0x02, // memberEnum (immediate) ]); const inst = new GetContractInstance( /*indirect=*/ 0x01, /*addressOffset=*/ 0x1234, /*dstOffset=*/ 0xa234, - /*existsOffset=*/ 0xb234, /*memberEnum=*/ 0x02, ); @@ -61,27 +59,25 @@ describe('Contract opcodes', () => { const value = valueGetter(); persistableState.getContractInstance.mockResolvedValue(contractInstance); + const dstOffset = 1; + const existsOffset = dstOffset; + const memberValueOffset = dstOffset + 1; + context.machineState.memory.set(0, new Field(address.toField())); - await new GetContractInstance( - /*indirect=*/ 0, - /*addressOffset=*/ 0, - /*dstOffset=*/ 1, - /*existsOffset=*/ 2, - memberEnum, - ).execute(context); + await new GetContractInstance(/*indirect=*/ 0, /*addressOffset=*/ 0, dstOffset, memberEnum).execute(context); expect(persistableState.getContractInstance).toHaveBeenCalledTimes(1); expect(persistableState.getContractInstance).toHaveBeenCalledWith(address); - // value should be right - expect(context.machineState.memory.getTag(1)).toBe(TypeTag.FIELD); - const actual = context.machineState.memory.get(1); - expect(actual).toEqual(new Field(value)); - // exists should be true - expect(context.machineState.memory.getTag(2)).toBe(TypeTag.UINT1); - const exists = context.machineState.memory.get(2); + expect(context.machineState.memory.getTag(existsOffset)).toBe(TypeTag.UINT1); + const exists = context.machineState.memory.get(existsOffset); expect(exists).toEqual(new Uint1(1)); + + // member value should be right + expect(context.machineState.memory.getTag(memberValueOffset)).toBe(TypeTag.FIELD); + const actual = context.machineState.memory.get(memberValueOffset); + expect(actual).toEqual(new Field(value)); }); }); @@ -95,24 +91,22 @@ describe('Contract opcodes', () => { it(`'${ContractInstanceMember[memberEnum]}' should be 0 when contract does not exist `, async () => { persistableState.getContractInstance.mockResolvedValue(undefined); + const dstOffset = 1; + const existsOffset = dstOffset; + const memberValueOffset = dstOffset + 1; + context.machineState.memory.set(0, new Field(address.toField())); - await new GetContractInstance( - /*indirect=*/ 0, - /*addressOffset=*/ 0, - /*dstOffset=*/ 1, - /*existsOffset=*/ 2, - memberEnum, - ).execute(context); - - // value should be 0 - expect(context.machineState.memory.getTag(1)).toBe(TypeTag.FIELD); - const actual = context.machineState.memory.get(1); - expect(actual).toEqual(new Field(0)); + await new GetContractInstance(/*indirect=*/ 0, /*addressOffset=*/ 0, dstOffset, memberEnum).execute(context); // exists should be false - expect(context.machineState.memory.getTag(2)).toBe(TypeTag.UINT1); - const exists = context.machineState.memory.get(2); + expect(context.machineState.memory.getTag(existsOffset)).toBe(TypeTag.UINT1); + const exists = context.machineState.memory.get(existsOffset); expect(exists).toEqual(new Uint1(0)); + + // member value should be right + expect(context.machineState.memory.getTag(memberValueOffset)).toBe(TypeTag.FIELD); + const actual = context.machineState.memory.get(memberValueOffset); + expect(actual).toEqual(new Field(0)); }); }, ); @@ -123,7 +117,6 @@ describe('Contract opcodes', () => { /*indirect=*/ 0, /*addressOffset=*/ 0, /*dstOffset=*/ 1, - /*existsOffset=*/ 2, /*memberEnum=*/ invalidEnum, ); await expect(instruction.execute(context)).rejects.toThrow( diff --git a/yarn-project/simulator/src/public/avm/opcodes/contract.ts b/yarn-project/simulator/src/public/avm/opcodes/contract.ts index c3f06eaba047..a1858fe85c62 100644 --- a/yarn-project/simulator/src/public/avm/opcodes/contract.ts +++ b/yarn-project/simulator/src/public/avm/opcodes/contract.ts @@ -20,7 +20,6 @@ export class GetContractInstance extends Instruction { OperandType.UINT8, // indirect bits OperandType.UINT16, // addressOffset OperandType.UINT16, // dstOffset - OperandType.UINT16, // existsOfsset OperandType.UINT8, // member enum (immediate) ]; @@ -28,7 +27,6 @@ export class GetContractInstance extends Instruction { private indirect: number, private addressOffset: number, private dstOffset: number, - private existsOffset: number, private memberEnum: number, ) { super(); @@ -42,9 +40,9 @@ export class GetContractInstance extends Instruction { throw new InstructionExecutionError(`Invalid GETCONSTRACTINSTANCE member enum ${this.memberEnum}`); } - const operands = [this.addressOffset, this.dstOffset, this.existsOffset]; + const operands = [this.addressOffset, this.dstOffset]; const addressing = Addressing.fromWire(this.indirect, operands.length); - const [addressOffset, dstOffset, existsOffset] = addressing.resolve(operands, memory); + const [addressOffset, dstOffset] = addressing.resolve(operands, memory); memory.checkTag(TypeTag.FIELD, addressOffset); const address = memory.get(addressOffset).toAztecAddress(); @@ -66,7 +64,9 @@ export class GetContractInstance extends Instruction { } } + const existsOffset = dstOffset; + const memberValueOffset = dstOffset + 1; memory.set(existsOffset, new Uint1(exists ? 1 : 0)); - memory.set(dstOffset, memberValue); + memory.set(memberValueOffset, memberValue); } }