From 2b456a6def4cfe2051c26307d6d14b8d729bbfec Mon Sep 17 00:00:00 2001 From: Bobby Lat Date: Mon, 20 Jan 2025 14:40:00 +0800 Subject: [PATCH] fix: use valid bytes value as input to mimc op code in approval test --- tests/approvals/avm11.algo.ts | 6 +- .../out/avm11/AVM11Contract.approval.teal | 56 +- .../out/avm11/AVM11Contract.arc32.json | 2 +- .../out/avm11/AVM11Contract.arc56.json | 30 +- .../AVM11Contract.approval.0.ssa.ir | 27 +- .../out/avm11/AVM11SIG.ir/AVM11SIG.0.ssa.ir | 3 +- tests/approvals/out/avm11/AVM11SIG.teal | 6 +- tests/approvals/out/avm11/avm11.awst | 6 +- tests/approvals/out/avm11/avm11.awst.json | 584 ++++++++++-------- 9 files changed, 411 insertions(+), 309 deletions(-) diff --git a/tests/approvals/avm11.algo.ts b/tests/approvals/avm11.algo.ts index 764e3a50c..11d8ff4be 100644 --- a/tests/approvals/avm11.algo.ts +++ b/tests/approvals/avm11.algo.ts @@ -4,7 +4,8 @@ import { assert, Bytes, Contract, contract, Global, logicsig, LogicSig, MimcConf @logicsig({ name: 'AVM11SIG', avmVersion: 11 }) export class Avm11Sig extends LogicSig { program(): uint64 { - return op.mimc(MimcConfigurations.BN254Mp110, Bytes('')).length + const a = Bytes.fromHex('00000000000000000000000000000000000000000000000000000000499602d2') + return op.mimc(MimcConfigurations.BN254Mp110, a).length } } @@ -12,7 +13,8 @@ export class Avm11Sig extends LogicSig { export class Avm11Contract extends Contract { testNewOps() { // Ops - assert(op.mimc(MimcConfigurations.BLS12_381Mp111, Bytes())) + const x = Bytes.fromHex('00000000000000000000000000000000000000000000000000000000499602d2') + assert(op.mimc(MimcConfigurations.BLS12_381Mp111, x)) assert(op.onlineStake()) // AcctParams diff --git a/tests/approvals/out/avm11/AVM11Contract.approval.teal b/tests/approvals/out/avm11/AVM11Contract.approval.teal index db8e74873..3f8ca0ce8 100644 --- a/tests/approvals/out/avm11/AVM11Contract.approval.teal +++ b/tests/approvals/out/avm11/AVM11Contract.approval.teal @@ -6,7 +6,7 @@ main: intcblock 0 1 main_block@1: - // tests/approvals/avm11.algo.ts:11-12 + // tests/approvals/avm11.algo.ts:12-13 // @contract({ name: 'AVM11Contract', avmVersion: 11 }) // export class Avm11Contract extends Contract { txn NumAppArgs @@ -15,7 +15,7 @@ main_block@1: bz main_bare_routing@6 main_abi_routing@2: - // tests/approvals/avm11.algo.ts:11-12 + // tests/approvals/avm11.algo.ts:12-13 // @contract({ name: 'AVM11Contract', avmVersion: 11 }) // export class Avm11Contract extends Contract { txna ApplicationArgs 0 @@ -28,7 +28,7 @@ main_switch_case_default@4: main_switch_case_next@5: main_after_if_else@10: - // tests/approvals/avm11.algo.ts:11-12 + // tests/approvals/avm11.algo.ts:12-13 // @contract({ name: 'AVM11Contract', avmVersion: 11 }) // export class Avm11Contract extends Contract { intc_0 // 0 @@ -37,7 +37,7 @@ main_after_inlined_tests/approvals/avm11.algo.ts::Avm11Contract.__puya_arc4_rout return main_testNewOps_route@3: - // tests/approvals/avm11.algo.ts:13 + // tests/approvals/avm11.algo.ts:14 // testNewOps() { txn OnCompletion intc_0 // NoOp @@ -52,7 +52,7 @@ main_testNewOps_route@3: b main_after_inlined_tests/approvals/avm11.algo.ts::Avm11Contract.__puya_arc4_router__@11 main_bare_routing@6: - // tests/approvals/avm11.algo.ts:11-12 + // tests/approvals/avm11.algo.ts:12-13 // @contract({ name: 'AVM11Contract', avmVersion: 11 }) // export class Avm11Contract extends Contract { txn OnCompletion @@ -66,7 +66,7 @@ main_switch_case_next@9: b main_after_if_else@10 main___algots__.defaultCreate@7: - // tests/approvals/avm11.algo.ts:11-12 + // tests/approvals/avm11.algo.ts:12-13 // @contract({ name: 'AVM11Contract', avmVersion: 11 }) // export class Avm11Contract extends Contract { txn ApplicationID @@ -80,91 +80,93 @@ main___algots__.defaultCreate@7: // tests/approvals/avm11.algo.ts::Avm11Contract.testNewOps() -> void: testNewOps: - // tests/approvals/avm11.algo.ts:13 + // tests/approvals/avm11.algo.ts:14 // testNewOps() { proto 0 0 - // tests/approvals/avm11.algo.ts:15 - // assert(op.mimc(MimcConfigurations.BLS12_381Mp111, Bytes())) - pushbytes 0x + // tests/approvals/avm11.algo.ts:16 + // const x = Bytes.fromHex('00000000000000000000000000000000000000000000000000000000499602d2') + pushbytes 0x00000000000000000000000000000000000000000000000000000000499602d2 + // tests/approvals/avm11.algo.ts:17 + // assert(op.mimc(MimcConfigurations.BLS12_381Mp111, x)) mimc BLS12_381Mp111 len assert - // tests/approvals/avm11.algo.ts:16 + // tests/approvals/avm11.algo.ts:18 // assert(op.onlineStake()) online_stake assert - // tests/approvals/avm11.algo.ts:24 + // tests/approvals/avm11.algo.ts:26 // assert(op.Block.blkProposer(0) !== Global.zeroAddress, 'proposer') intc_0 // 0 block BlkProposer global ZeroAddress != assert // proposer - // tests/approvals/avm11.algo.ts:25 + // tests/approvals/avm11.algo.ts:27 // assert(op.Block.blkFeesCollected(0), 'fees collected') intc_0 // 0 block BlkFeesCollected assert // fees collected - // tests/approvals/avm11.algo.ts:26 + // tests/approvals/avm11.algo.ts:28 // assert(op.Block.blkBonus(0), 'bonus') intc_0 // 0 block BlkBonus assert // bonus - // tests/approvals/avm11.algo.ts:27 + // tests/approvals/avm11.algo.ts:29 // assert(op.Block.blkBranch(0), 'branch') intc_0 // 0 block BlkBranch len assert // branch - // tests/approvals/avm11.algo.ts:28 + // tests/approvals/avm11.algo.ts:30 // assert(op.Block.blkFeeSink(0) !== Global.zeroAddress, 'fee sink') intc_0 // 0 block BlkFeeSink global ZeroAddress != assert // fee sink - // tests/approvals/avm11.algo.ts:29 + // tests/approvals/avm11.algo.ts:31 // assert(op.Block.blkProtocol(0), 'protocol') intc_0 // 0 block BlkProtocol len assert // protocol - // tests/approvals/avm11.algo.ts:30 + // tests/approvals/avm11.algo.ts:32 // assert(op.Block.blkTxnCounter(0), 'txn counter') intc_0 // 0 block BlkTxnCounter assert // txn counter - // tests/approvals/avm11.algo.ts:31 + // tests/approvals/avm11.algo.ts:33 // assert(op.Block.blkProposerPayout(0), 'proposer payout') intc_0 // 0 block BlkProposerPayout assert // proposer payout - // tests/approvals/avm11.algo.ts:34 + // tests/approvals/avm11.algo.ts:36 // assert(op.Global.payoutsEnabled, 'payouts_enabled') global PayoutsEnabled assert // payouts_enabled - // tests/approvals/avm11.algo.ts:35 + // tests/approvals/avm11.algo.ts:37 // assert(op.Global.payoutsGoOnlineFee, 'payouts_go_online_fee') global PayoutsGoOnlineFee assert // payouts_go_online_fee - // tests/approvals/avm11.algo.ts:36 + // tests/approvals/avm11.algo.ts:38 // assert(op.Global.payoutsPercent, 'payouts_percent') global PayoutsPercent assert // payouts_percent - // tests/approvals/avm11.algo.ts:37 + // tests/approvals/avm11.algo.ts:39 // assert(op.Global.payoutsMinBalance, 'payouts_min_balance') global PayoutsMinBalance assert // payouts_min_balance - // tests/approvals/avm11.algo.ts:38 + // tests/approvals/avm11.algo.ts:40 // assert(op.Global.payoutsMaxBalance, 'payouts_max_balance') global PayoutsMaxBalance assert // payouts_max_balance - // tests/approvals/avm11.algo.ts:40 + // tests/approvals/avm11.algo.ts:42 // const [g, h] = op.VoterParams.voterBalance(0) intc_0 // 0 voter_params_get VoterBalance popn 2 - // tests/approvals/avm11.algo.ts:41 + // tests/approvals/avm11.algo.ts:43 // const [i, j] = op.VoterParams.voterIncentiveEligible(0) intc_0 // 0 voter_params_get VoterIncentiveEligible @@ -174,7 +176,7 @@ testNewOps: // tests/approvals/avm11.algo.ts::Avm11Contract.__algots__.defaultCreate() -> void: __algots__.defaultCreate: - // tests/approvals/avm11.algo.ts:11-12 + // tests/approvals/avm11.algo.ts:12-13 // @contract({ name: 'AVM11Contract', avmVersion: 11 }) // export class Avm11Contract extends Contract { proto 0 0 diff --git a/tests/approvals/out/avm11/AVM11Contract.arc32.json b/tests/approvals/out/avm11/AVM11Contract.arc32.json index d500e2071..4800ae0c7 100644 --- a/tests/approvals/out/avm11/AVM11Contract.arc32.json +++ b/tests/approvals/out/avm11/AVM11Contract.arc32.json @@ -7,7 +7,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMS0xMgogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMS0xMgogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1MjQ0OGEzMSAvLyBtZXRob2QgInRlc3ROZXdPcHMoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3ROZXdPcHNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjExLTEyCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdE5ld09wc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTMKICAgIC8vIHRlc3ROZXdPcHMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3ROZXdPcHMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjExLTEyCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMS0xMgogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QudGVzdE5ld09wcygpIC0+IHZvaWQ6CnRlc3ROZXdPcHM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMwogICAgLy8gdGVzdE5ld09wcygpIHsKICAgIHByb3RvIDAgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTUKICAgIC8vIGFzc2VydChvcC5taW1jKE1pbWNDb25maWd1cmF0aW9ucy5CTFMxMl8zODFNcDExMSwgQnl0ZXMoKSkpCiAgICBwdXNoYnl0ZXMgMHgKICAgIG1pbWMgQkxTMTJfMzgxTXAxMTEKICAgIGxlbgogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG9wLm9ubGluZVN0YWtlKCkpCiAgICBvbmxpbmVfc3Rha2UKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MjQKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtQcm9wb3NlcigwKSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzLCAncHJvcG9zZXInKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1Byb3Bvc2VyCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gcHJvcG9zZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI1CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrRmVlc0NvbGxlY3RlZCgwKSwgJ2ZlZXMgY29sbGVjdGVkJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtGZWVzQ29sbGVjdGVkCiAgICBhc3NlcnQgLy8gZmVlcyBjb2xsZWN0ZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI2CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrQm9udXMoMCksICdib251cycpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrQm9udXMKICAgIGFzc2VydCAvLyBib251cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MjcKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtCcmFuY2goMCksICdicmFuY2gnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0JyYW5jaAogICAgbGVuCiAgICBhc3NlcnQgLy8gYnJhbmNoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0ZlZVNpbmsoMCkgIT09IEdsb2JhbC56ZXJvQWRkcmVzcywgJ2ZlZSBzaW5rJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtGZWVTaW5rCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gZmVlIHNpbmsKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI5CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrUHJvdG9jb2woMCksICdwcm90b2NvbCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrUHJvdG9jb2wKICAgIGxlbgogICAgYXNzZXJ0IC8vIHByb3RvY29sCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozMAogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1R4bkNvdW50ZXIoMCksICd0eG4gY291bnRlcicpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrVHhuQ291bnRlcgogICAgYXNzZXJ0IC8vIHR4biBjb3VudGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozMQogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1Byb3Bvc2VyUGF5b3V0KDApLCAncHJvcG9zZXIgcGF5b3V0JykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtQcm9wb3NlclBheW91dAogICAgYXNzZXJ0IC8vIHByb3Bvc2VyIHBheW91dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzQKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c0VuYWJsZWQsICdwYXlvdXRzX2VuYWJsZWQnKQogICAgZ2xvYmFsIFBheW91dHNFbmFibGVkCiAgICBhc3NlcnQgLy8gcGF5b3V0c19lbmFibGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozNQogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzR29PbmxpbmVGZWUsICdwYXlvdXRzX2dvX29ubGluZV9mZWUnKQogICAgZ2xvYmFsIFBheW91dHNHb09ubGluZUZlZQogICAgYXNzZXJ0IC8vIHBheW91dHNfZ29fb25saW5lX2ZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzYKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c1BlcmNlbnQsICdwYXlvdXRzX3BlcmNlbnQnKQogICAgZ2xvYmFsIFBheW91dHNQZXJjZW50CiAgICBhc3NlcnQgLy8gcGF5b3V0c19wZXJjZW50CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozNwogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzTWluQmFsYW5jZSwgJ3BheW91dHNfbWluX2JhbGFuY2UnKQogICAgZ2xvYmFsIFBheW91dHNNaW5CYWxhbmNlCiAgICBhc3NlcnQgLy8gcGF5b3V0c19taW5fYmFsYW5jZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzgKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c01heEJhbGFuY2UsICdwYXlvdXRzX21heF9iYWxhbmNlJykKICAgIGdsb2JhbCBQYXlvdXRzTWF4QmFsYW5jZQogICAgYXNzZXJ0IC8vIHBheW91dHNfbWF4X2JhbGFuY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjQwCiAgICAvLyBjb25zdCBbZywgaF0gPSBvcC5Wb3RlclBhcmFtcy52b3RlckJhbGFuY2UoMCkKICAgIGludGNfMCAvLyAwCiAgICB2b3Rlcl9wYXJhbXNfZ2V0IFZvdGVyQmFsYW5jZQogICAgcG9wbiAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo0MQogICAgLy8gY29uc3QgW2ksIGpdID0gb3AuVm90ZXJQYXJhbXMudm90ZXJJbmNlbnRpdmVFbGlnaWJsZSgwKQogICAgaW50Y18wIC8vIDAKICAgIHZvdGVyX3BhcmFtc19nZXQgVm90ZXJJbmNlbnRpdmVFbGlnaWJsZQogICAgcG9wbiAyCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMS0xMgogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDAKICAgIHJldHN1Ygo=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1MjQ0OGEzMSAvLyBtZXRob2QgInRlc3ROZXdPcHMoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3ROZXdPcHNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdE5ld09wc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTQKICAgIC8vIHRlc3ROZXdPcHMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3ROZXdPcHMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QudGVzdE5ld09wcygpIC0+IHZvaWQ6CnRlc3ROZXdPcHM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxNAogICAgLy8gdGVzdE5ld09wcygpIHsKICAgIHByb3RvIDAgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTYKICAgIC8vIGNvbnN0IHggPSBCeXRlcy5mcm9tSGV4KCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5OTYwMmQyJykKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDk5NjAyZDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQob3AubWltYyhNaW1jQ29uZmlndXJhdGlvbnMuQkxTMTJfMzgxTXAxMTEsIHgpKQogICAgbWltYyBCTFMxMl8zODFNcDExMQogICAgbGVuCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQob3Aub25saW5lU3Rha2UoKSkKICAgIG9ubGluZV9zdGFrZQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyNgogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1Byb3Bvc2VyKDApICE9PSBHbG9iYWwuemVyb0FkZHJlc3MsICdwcm9wb3NlcicpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrUHJvcG9zZXIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBwcm9wb3NlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MjcKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtGZWVzQ29sbGVjdGVkKDApLCAnZmVlcyBjb2xsZWN0ZWQnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0ZlZXNDb2xsZWN0ZWQKICAgIGFzc2VydCAvLyBmZWVzIGNvbGxlY3RlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtCb251cygwKSwgJ2JvbnVzJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtCb251cwogICAgYXNzZXJ0IC8vIGJvbnVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0JyYW5jaCgwKSwgJ2JyYW5jaCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrQnJhbmNoCiAgICBsZW4KICAgIGFzc2VydCAvLyBicmFuY2gKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjMwCiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrRmVlU2luaygwKSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzLCAnZmVlIHNpbmsnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0ZlZVNpbmsKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBmZWUgc2luawogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzEKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtQcm90b2NvbCgwKSwgJ3Byb3RvY29sJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtQcm90b2NvbAogICAgbGVuCiAgICBhc3NlcnQgLy8gcHJvdG9jb2wKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjMyCiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrVHhuQ291bnRlcigwKSwgJ3R4biBjb3VudGVyJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtUeG5Db3VudGVyCiAgICBhc3NlcnQgLy8gdHhuIGNvdW50ZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjMzCiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrUHJvcG9zZXJQYXlvdXQoMCksICdwcm9wb3NlciBwYXlvdXQnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1Byb3Bvc2VyUGF5b3V0CiAgICBhc3NlcnQgLy8gcHJvcG9zZXIgcGF5b3V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozNgogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzRW5hYmxlZCwgJ3BheW91dHNfZW5hYmxlZCcpCiAgICBnbG9iYWwgUGF5b3V0c0VuYWJsZWQKICAgIGFzc2VydCAvLyBwYXlvdXRzX2VuYWJsZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM3CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNHb09ubGluZUZlZSwgJ3BheW91dHNfZ29fb25saW5lX2ZlZScpCiAgICBnbG9iYWwgUGF5b3V0c0dvT25saW5lRmVlCiAgICBhc3NlcnQgLy8gcGF5b3V0c19nb19vbmxpbmVfZmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozOAogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzUGVyY2VudCwgJ3BheW91dHNfcGVyY2VudCcpCiAgICBnbG9iYWwgUGF5b3V0c1BlcmNlbnQKICAgIGFzc2VydCAvLyBwYXlvdXRzX3BlcmNlbnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNNaW5CYWxhbmNlLCAncGF5b3V0c19taW5fYmFsYW5jZScpCiAgICBnbG9iYWwgUGF5b3V0c01pbkJhbGFuY2UKICAgIGFzc2VydCAvLyBwYXlvdXRzX21pbl9iYWxhbmNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo0MAogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzTWF4QmFsYW5jZSwgJ3BheW91dHNfbWF4X2JhbGFuY2UnKQogICAgZ2xvYmFsIFBheW91dHNNYXhCYWxhbmNlCiAgICBhc3NlcnQgLy8gcGF5b3V0c19tYXhfYmFsYW5jZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6NDIKICAgIC8vIGNvbnN0IFtnLCBoXSA9IG9wLlZvdGVyUGFyYW1zLnZvdGVyQmFsYW5jZSgwKQogICAgaW50Y18wIC8vIDAKICAgIHZvdGVyX3BhcmFtc19nZXQgVm90ZXJCYWxhbmNlCiAgICBwb3BuIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCBbaSwgal0gPSBvcC5Wb3RlclBhcmFtcy52b3RlckluY2VudGl2ZUVsaWdpYmxlKDApCiAgICBpbnRjXzAgLy8gMAogICAgdm90ZXJfcGFyYW1zX2dldCBWb3RlckluY2VudGl2ZUVsaWdpYmxlCiAgICBwb3BuIDIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMAogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "state": { diff --git a/tests/approvals/out/avm11/AVM11Contract.arc56.json b/tests/approvals/out/avm11/AVM11Contract.arc56.json index 86b6e2380..dc344e64d 100644 --- a/tests/approvals/out/avm11/AVM11Contract.arc56.json +++ b/tests/approvals/out/avm11/AVM11Contract.arc56.json @@ -63,13 +63,13 @@ }, { "pc": [ - 93 + 125 ], "errorMessage": "bonus" }, { "pc": [ - 98 + 130 ], "errorMessage": "branch" }, @@ -87,67 +87,67 @@ }, { "pc": [ - 105 + 137 ], "errorMessage": "fee sink" }, { "pc": [ - 89 + 121 ], "errorMessage": "fees collected" }, { "pc": [ - 121 + 153 ], "errorMessage": "payouts_enabled" }, { "pc": [ - 124 + 156 ], "errorMessage": "payouts_go_online_fee" }, { "pc": [ - 133 + 165 ], "errorMessage": "payouts_max_balance" }, { "pc": [ - 130 + 162 ], "errorMessage": "payouts_min_balance" }, { "pc": [ - 127 + 159 ], "errorMessage": "payouts_percent" }, { "pc": [ - 85 + 117 ], "errorMessage": "proposer" }, { "pc": [ - 118 + 150 ], "errorMessage": "proposer payout" }, { "pc": [ - 110 + 142 ], "errorMessage": "protocol" }, { "pc": [ - 114 + 146 ], "errorMessage": "txn counter" } @@ -160,11 +160,11 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMS0xMgogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMS0xMgogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1MjQ0OGEzMSAvLyBtZXRob2QgInRlc3ROZXdPcHMoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3ROZXdPcHNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjExLTEyCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdE5ld09wc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTMKICAgIC8vIHRlc3ROZXdPcHMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3ROZXdPcHMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjExLTEyCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMS0xMgogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QudGVzdE5ld09wcygpIC0+IHZvaWQ6CnRlc3ROZXdPcHM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMwogICAgLy8gdGVzdE5ld09wcygpIHsKICAgIHByb3RvIDAgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTUKICAgIC8vIGFzc2VydChvcC5taW1jKE1pbWNDb25maWd1cmF0aW9ucy5CTFMxMl8zODFNcDExMSwgQnl0ZXMoKSkpCiAgICBwdXNoYnl0ZXMgMHgKICAgIG1pbWMgQkxTMTJfMzgxTXAxMTEKICAgIGxlbgogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxNgogICAgLy8gYXNzZXJ0KG9wLm9ubGluZVN0YWtlKCkpCiAgICBvbmxpbmVfc3Rha2UKICAgIGFzc2VydAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MjQKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtQcm9wb3NlcigwKSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzLCAncHJvcG9zZXInKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1Byb3Bvc2VyCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gcHJvcG9zZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI1CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrRmVlc0NvbGxlY3RlZCgwKSwgJ2ZlZXMgY29sbGVjdGVkJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtGZWVzQ29sbGVjdGVkCiAgICBhc3NlcnQgLy8gZmVlcyBjb2xsZWN0ZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI2CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrQm9udXMoMCksICdib251cycpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrQm9udXMKICAgIGFzc2VydCAvLyBib251cwogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MjcKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtCcmFuY2goMCksICdicmFuY2gnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0JyYW5jaAogICAgbGVuCiAgICBhc3NlcnQgLy8gYnJhbmNoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyOAogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0ZlZVNpbmsoMCkgIT09IEdsb2JhbC56ZXJvQWRkcmVzcywgJ2ZlZSBzaW5rJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtGZWVTaW5rCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gZmVlIHNpbmsKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjI5CiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrUHJvdG9jb2woMCksICdwcm90b2NvbCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrUHJvdG9jb2wKICAgIGxlbgogICAgYXNzZXJ0IC8vIHByb3RvY29sCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozMAogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1R4bkNvdW50ZXIoMCksICd0eG4gY291bnRlcicpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrVHhuQ291bnRlcgogICAgYXNzZXJ0IC8vIHR4biBjb3VudGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozMQogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1Byb3Bvc2VyUGF5b3V0KDApLCAncHJvcG9zZXIgcGF5b3V0JykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtQcm9wb3NlclBheW91dAogICAgYXNzZXJ0IC8vIHByb3Bvc2VyIHBheW91dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzQKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c0VuYWJsZWQsICdwYXlvdXRzX2VuYWJsZWQnKQogICAgZ2xvYmFsIFBheW91dHNFbmFibGVkCiAgICBhc3NlcnQgLy8gcGF5b3V0c19lbmFibGVkCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozNQogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzR29PbmxpbmVGZWUsICdwYXlvdXRzX2dvX29ubGluZV9mZWUnKQogICAgZ2xvYmFsIFBheW91dHNHb09ubGluZUZlZQogICAgYXNzZXJ0IC8vIHBheW91dHNfZ29fb25saW5lX2ZlZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzYKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c1BlcmNlbnQsICdwYXlvdXRzX3BlcmNlbnQnKQogICAgZ2xvYmFsIFBheW91dHNQZXJjZW50CiAgICBhc3NlcnQgLy8gcGF5b3V0c19wZXJjZW50CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozNwogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzTWluQmFsYW5jZSwgJ3BheW91dHNfbWluX2JhbGFuY2UnKQogICAgZ2xvYmFsIFBheW91dHNNaW5CYWxhbmNlCiAgICBhc3NlcnQgLy8gcGF5b3V0c19taW5fYmFsYW5jZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzgKICAgIC8vIGFzc2VydChvcC5HbG9iYWwucGF5b3V0c01heEJhbGFuY2UsICdwYXlvdXRzX21heF9iYWxhbmNlJykKICAgIGdsb2JhbCBQYXlvdXRzTWF4QmFsYW5jZQogICAgYXNzZXJ0IC8vIHBheW91dHNfbWF4X2JhbGFuY2UKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjQwCiAgICAvLyBjb25zdCBbZywgaF0gPSBvcC5Wb3RlclBhcmFtcy52b3RlckJhbGFuY2UoMCkKICAgIGludGNfMCAvLyAwCiAgICB2b3Rlcl9wYXJhbXNfZ2V0IFZvdGVyQmFsYW5jZQogICAgcG9wbiAyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo0MQogICAgLy8gY29uc3QgW2ksIGpdID0gb3AuVm90ZXJQYXJhbXMudm90ZXJJbmNlbnRpdmVFbGlnaWJsZSgwKQogICAgaW50Y18wIC8vIDAKICAgIHZvdGVyX3BhcmFtc19nZXQgVm90ZXJJbmNlbnRpdmVFbGlnaWJsZQogICAgcG9wbiAyCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMS0xMgogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICBwcm90byAwIDAKICAgIHJldHN1Ygo=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgaW50Y18wIC8vIDAKICAgICE9CiAgICBieiBtYWluX2JhcmVfcm91dGluZ0A2CgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBwdXNoYnl0ZXMgMHg1MjQ0OGEzMSAvLyBtZXRob2QgInRlc3ROZXdPcHMoKXZvaWQiCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX3Rlc3ROZXdPcHNfcm91dGVAMwoKbWFpbl9zd2l0Y2hfY2FzZV9kZWZhdWx0QDQ6CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIGludGNfMCAvLyAwCgptYWluX2FmdGVyX2lubGluZWRfdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QuX19wdXlhX2FyYzRfcm91dGVyX19AMTE6CiAgICByZXR1cm4KCm1haW5fdGVzdE5ld09wc19yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTQKICAgIC8vIHRlc3ROZXdPcHMoKSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzAgLy8gTm9PcAogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzAgLy8gMAogICAgIT0KICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHRlc3ROZXdPcHMKICAgIGludGNfMSAvLyAxCiAgICBiIG1haW5fYWZ0ZXJfaW5saW5lZF90ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo6QXZtMTFDb250cmFjdC5fX3B1eWFfYXJjNF9yb3V0ZXJfX0AxMQoKbWFpbl9iYXJlX3JvdXRpbmdANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICBtYXRjaCBtYWluX19fYWxnb3RzX18uZGVmYXVsdENyZWF0ZUA3CgptYWluX3N3aXRjaF9jYXNlX2RlZmF1bHRAODoKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA5OgogICAgYiBtYWluX2FmdGVyX2lmX2Vsc2VAMTAKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxMi0xMwogICAgLy8gQGNvbnRyYWN0KHsgbmFtZTogJ0FWTTExQ29udHJhY3QnLCBhdm1WZXJzaW9uOiAxMSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIEF2bTExQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18wIC8vIDAKICAgID09CiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18xIC8vIDEKICAgIGIgbWFpbl9hZnRlcl9pbmxpbmVkX3Rlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fcHV5YV9hcmM0X3JvdXRlcl9fQDExCgoKLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6OkF2bTExQ29udHJhY3QudGVzdE5ld09wcygpIC0+IHZvaWQ6CnRlc3ROZXdPcHM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoxNAogICAgLy8gdGVzdE5ld09wcygpIHsKICAgIHByb3RvIDAgMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MTYKICAgIC8vIGNvbnN0IHggPSBCeXRlcy5mcm9tSGV4KCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5OTYwMmQyJykKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDk5NjAyZDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjE3CiAgICAvLyBhc3NlcnQob3AubWltYyhNaW1jQ29uZmlndXJhdGlvbnMuQkxTMTJfMzgxTXAxMTEsIHgpKQogICAgbWltYyBCTFMxMl8zODFNcDExMQogICAgbGVuCiAgICBhc3NlcnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjE4CiAgICAvLyBhc3NlcnQob3Aub25saW5lU3Rha2UoKSkKICAgIG9ubGluZV9zdGFrZQogICAgYXNzZXJ0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyNgogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa1Byb3Bvc2VyKDApICE9PSBHbG9iYWwuemVyb0FkZHJlc3MsICdwcm9wb3NlcicpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrUHJvcG9zZXIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBwcm9wb3NlcgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MjcKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtGZWVzQ29sbGVjdGVkKDApLCAnZmVlcyBjb2xsZWN0ZWQnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0ZlZXNDb2xsZWN0ZWQKICAgIGFzc2VydCAvLyBmZWVzIGNvbGxlY3RlZAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtCb251cygwKSwgJ2JvbnVzJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtCb251cwogICAgYXNzZXJ0IC8vIGJvbnVzCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czoyOQogICAgLy8gYXNzZXJ0KG9wLkJsb2NrLmJsa0JyYW5jaCgwKSwgJ2JyYW5jaCcpCiAgICBpbnRjXzAgLy8gMAogICAgYmxvY2sgQmxrQnJhbmNoCiAgICBsZW4KICAgIGFzc2VydCAvLyBicmFuY2gKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjMwCiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrRmVlU2luaygwKSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzLCAnZmVlIHNpbmsnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa0ZlZVNpbmsKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBmZWUgc2luawogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6MzEKICAgIC8vIGFzc2VydChvcC5CbG9jay5ibGtQcm90b2NvbCgwKSwgJ3Byb3RvY29sJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtQcm90b2NvbAogICAgbGVuCiAgICBhc3NlcnQgLy8gcHJvdG9jb2wKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjMyCiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrVHhuQ291bnRlcigwKSwgJ3R4biBjb3VudGVyJykKICAgIGludGNfMCAvLyAwCiAgICBibG9jayBCbGtUeG5Db3VudGVyCiAgICBhc3NlcnQgLy8gdHhuIGNvdW50ZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjMzCiAgICAvLyBhc3NlcnQob3AuQmxvY2suYmxrUHJvcG9zZXJQYXlvdXQoMCksICdwcm9wb3NlciBwYXlvdXQnKQogICAgaW50Y18wIC8vIDAKICAgIGJsb2NrIEJsa1Byb3Bvc2VyUGF5b3V0CiAgICBhc3NlcnQgLy8gcHJvcG9zZXIgcGF5b3V0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozNgogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzRW5hYmxlZCwgJ3BheW91dHNfZW5hYmxlZCcpCiAgICBnbG9iYWwgUGF5b3V0c0VuYWJsZWQKICAgIGFzc2VydCAvLyBwYXlvdXRzX2VuYWJsZWQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM3CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNHb09ubGluZUZlZSwgJ3BheW91dHNfZ29fb25saW5lX2ZlZScpCiAgICBnbG9iYWwgUGF5b3V0c0dvT25saW5lRmVlCiAgICBhc3NlcnQgLy8gcGF5b3V0c19nb19vbmxpbmVfZmVlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czozOAogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzUGVyY2VudCwgJ3BheW91dHNfcGVyY2VudCcpCiAgICBnbG9iYWwgUGF5b3V0c1BlcmNlbnQKICAgIGFzc2VydCAvLyBwYXlvdXRzX3BlcmNlbnQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjM5CiAgICAvLyBhc3NlcnQob3AuR2xvYmFsLnBheW91dHNNaW5CYWxhbmNlLCAncGF5b3V0c19taW5fYmFsYW5jZScpCiAgICBnbG9iYWwgUGF5b3V0c01pbkJhbGFuY2UKICAgIGFzc2VydCAvLyBwYXlvdXRzX21pbl9iYWxhbmNlCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvYXZtMTEuYWxnby50czo0MAogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5wYXlvdXRzTWF4QmFsYW5jZSwgJ3BheW91dHNfbWF4X2JhbGFuY2UnKQogICAgZ2xvYmFsIFBheW91dHNNYXhCYWxhbmNlCiAgICBhc3NlcnQgLy8gcGF5b3V0c19tYXhfYmFsYW5jZQogICAgLy8gdGVzdHMvYXBwcm92YWxzL2F2bTExLmFsZ28udHM6NDIKICAgIC8vIGNvbnN0IFtnLCBoXSA9IG9wLlZvdGVyUGFyYW1zLnZvdGVyQmFsYW5jZSgwKQogICAgaW50Y18wIC8vIDAKICAgIHZvdGVyX3BhcmFtc19nZXQgVm90ZXJCYWxhbmNlCiAgICBwb3BuIDIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjQzCiAgICAvLyBjb25zdCBbaSwgal0gPSBvcC5Wb3RlclBhcmFtcy52b3RlckluY2VudGl2ZUVsaWdpYmxlKDApCiAgICBpbnRjXzAgLy8gMAogICAgdm90ZXJfcGFyYW1zX2dldCBWb3RlckluY2VudGl2ZUVsaWdpYmxlCiAgICBwb3BuIDIKICAgIHJldHN1YgoKCi8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjpBdm0xMUNvbnRyYWN0Ll9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZSgpIC0+IHZvaWQ6Cl9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9hdm0xMS5hbGdvLnRzOjEyLTEzCiAgICAvLyBAY29udHJhY3QoeyBuYW1lOiAnQVZNMTFDb250cmFjdCcsIGF2bVZlcnNpb246IDExIH0pCiAgICAvLyBleHBvcnQgY2xhc3MgQXZtMTFDb250cmFjdCBleHRlbmRzIENvbnRyYWN0IHsKICAgIHByb3RvIDAgMAogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { - "approval": "CyACAAExGyITQQAhNhoAgARSRIoxTI4BAAIiQzEZIhJEMRgiE0SIABsjQv/uMRkiTI4BAANC/+IxGCISRIgAUSNC/9eKAACAAOYBFUR1RCLRAjIDE0Qi0QNEItEERCLRBRVEItEGMgMTRCLRBxVEItEIRCLRCUQyEkQyE0QyFEQyFUQyFkQidABGAiJ0AUYCiYoAAIk=", + "approval": "CyACAAExGyITQQAhNhoAgARSRIoxTI4BAAIiQzEZIhJEMRgiE0SIABsjQv/uMRkiTI4BAANC/+IxGCISRIgAcSNC/9eKAACAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJlgLS5gEVRHVEItECMgMTRCLRA0Qi0QREItEFFUQi0QYyAxNEItEHFUQi0QhEItEJRDISRDITRDIURDIVRDIWRCJ0AEYCInQBRgKJigAAiQ==", "clear": "C4EBQw==" }, "compilerInfo": { diff --git a/tests/approvals/out/avm11/AVM11Contract.ir/AVM11Contract.approval.0.ssa.ir b/tests/approvals/out/avm11/AVM11Contract.ir/AVM11Contract.approval.0.ssa.ir index 4081ff56a..fcf3fb2a8 100644 --- a/tests/approvals/out/avm11/AVM11Contract.ir/AVM11Contract.approval.0.ssa.ir +++ b/tests/approvals/out/avm11/AVM11Contract.ir/AVM11Contract.approval.0.ssa.ir @@ -4,14 +4,14 @@ main @algorandfoundation/algorand-typescript/arc4/index.d.ts::Contract.approvalP return tmp%0#0 subroutine tests/approvals/avm11.algo.ts::Avm11Contract.__puya_arc4_router__() -> bool: - block@0: // L11 + block@0: // L12 let tmp%0#0: uint64 = (txn NumAppArgs) let tmp%1#0: bool = (!= tmp%0#0 0u) goto tmp%1#0 ? block@1 : block@5 - block@1: // abi_routing_L11 + block@1: // abi_routing_L12 let tmp%2#0: bytes = (txna ApplicationArgs 0) switch tmp%2#0 {method "testNewOps()void" => block@2, * => block@3} - block@2: // testNewOps_route_L13 + block@2: // testNewOps_route_L14 let tmp%3#0: uint64 = (txn OnCompletion) let tmp%4#0: bool = (== tmp%3#0 NoOp) (assert tmp%4#0) // OnCompletion is not NoOp @@ -20,29 +20,30 @@ subroutine tests/approvals/avm11.algo.ts::Avm11Contract.__puya_arc4_router__() - (assert tmp%6#0) // can only call when not creating tests/approvals/avm11.algo.ts::Avm11Contract.testNewOps() return 1u - block@3: // switch_case_default_L11 + block@3: // switch_case_default_L12 goto block@4 - block@4: // switch_case_next_L11 + block@4: // switch_case_next_L12 goto block@9 - block@5: // bare_routing_L11 + block@5: // bare_routing_L12 let tmp%7#0: uint64 = (txn OnCompletion) switch tmp%7#0 {0u => block@6, * => block@7} - block@6: // __algots__.defaultCreate_L11 + block@6: // __algots__.defaultCreate_L12 let tmp%8#0: uint64 = (txn ApplicationID) let tmp%9#0: bool = (== tmp%8#0 0u) (assert tmp%9#0) // can only call when creating tests/approvals/avm11.algo.ts::Avm11Contract.__algots__.defaultCreate() return 1u - block@7: // switch_case_default_L11 + block@7: // switch_case_default_L12 goto block@8 - block@8: // switch_case_next_L11 + block@8: // switch_case_next_L12 goto block@9 - block@9: // after_if_else_L11 + block@9: // after_if_else_L12 return 0u subroutine tests/approvals/avm11.algo.ts::Avm11Contract.testNewOps() -> void: - block@0: // L13 - let tmp%0#0: bytes = ((mimc BLS12_381Mp111) 0x) + block@0: // L14 + let x#0: bytes = 0x00000000000000000000000000000000000000000000000000000000499602d2 + let tmp%0#0: bytes = ((mimc BLS12_381Mp111) x#0) let reinterpret_bool%0#0: bool = (len tmp%0#0) (assert reinterpret_bool%0#0) let reinterpret_bool%1#0: bool = online_stake @@ -100,5 +101,5 @@ subroutine tests/approvals/avm11.algo.ts::Avm11Contract.testNewOps() -> void: return subroutine tests/approvals/avm11.algo.ts::Avm11Contract.__algots__.defaultCreate() -> void: - block@0: // L11 + block@0: // L12 return \ No newline at end of file diff --git a/tests/approvals/out/avm11/AVM11SIG.ir/AVM11SIG.0.ssa.ir b/tests/approvals/out/avm11/AVM11SIG.ir/AVM11SIG.0.ssa.ir index bea852614..22975115f 100644 --- a/tests/approvals/out/avm11/AVM11SIG.ir/AVM11SIG.0.ssa.ir +++ b/tests/approvals/out/avm11/AVM11SIG.ir/AVM11SIG.0.ssa.ir @@ -1,5 +1,6 @@ main tests/approvals/avm11.algo.ts::program: block@0: // L6 - let tmp%0#0: bytes = ((mimc BN254Mp110) "") + let a#0: bytes = 0x00000000000000000000000000000000000000000000000000000000499602d2 + let tmp%0#0: bytes = ((mimc BN254Mp110) a#0) let tmp%1#0: uint64 = (len tmp%0#0) return tmp%1#0 \ No newline at end of file diff --git a/tests/approvals/out/avm11/AVM11SIG.teal b/tests/approvals/out/avm11/AVM11SIG.teal index 59957a7aa..2698da9fe 100644 --- a/tests/approvals/out/avm11/AVM11SIG.teal +++ b/tests/approvals/out/avm11/AVM11SIG.teal @@ -4,8 +4,10 @@ // tests/approvals/avm11.algo.ts::program() -> uint64: main: // tests/approvals/avm11.algo.ts:7 - // return op.mimc(MimcConfigurations.BN254Mp110, Bytes('')).length - pushbytes "" + // const a = Bytes.fromHex('00000000000000000000000000000000000000000000000000000000499602d2') + pushbytes 0x00000000000000000000000000000000000000000000000000000000499602d2 + // tests/approvals/avm11.algo.ts:8 + // return op.mimc(MimcConfigurations.BN254Mp110, a).length mimc BN254Mp110 len return diff --git a/tests/approvals/out/avm11/avm11.awst b/tests/approvals/out/avm11/avm11.awst index ca34e66d2..18f977cd5 100644 --- a/tests/approvals/out/avm11/avm11.awst +++ b/tests/approvals/out/avm11/avm11.awst @@ -1,6 +1,7 @@ logicsig tests/approvals/avm11.algo.ts::Avm11Sig { - return len(mimc("")) + a: bytes = 0x00000000000000000000000000000000000000000000000000000000499602d2 + return len(mimc(a)) } contract AVM11Contract { @@ -16,7 +17,8 @@ contract AVM11Contract testNewOps(): void { - assert(Boolean(len(mimc(0x)))) + x: bytes = 0x00000000000000000000000000000000000000000000000000000000499602d2 + assert(Boolean(len(mimc(x)))) assert(Boolean(online_stake())) [a, b]: readonlytuple[bool, bool] = acct_params_get(txn()) [c, d]: readonlytuple[uint64, bool] = acct_params_get(txn()) diff --git a/tests/approvals/out/avm11/avm11.awst.json b/tests/approvals/out/avm11/avm11.awst.json index 216084acc..81889135e 100644 --- a/tests/approvals/out/avm11/avm11.awst.json +++ b/tests/approvals/out/avm11/avm11.awst.json @@ -32,28 +32,75 @@ "source_location": { "file": "tests/approvals/avm11.algo.ts", "line": 6, - "end_line": 8, + "end_line": 9, "column": 20, "end_column": 3 }, "body": [ { - "_type": "ReturnStatement", + "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", "line": 7, "end_line": 7, - "column": 4, - "end_column": 67 + "column": 10, + "end_column": 95 + }, + "target": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/avm11.algo.ts", + "line": 7, + "end_line": 7, + "column": 10, + "end_column": 11 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "a" }, "value": { - "_type": "IntrinsicCall", + "_type": "BytesConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", "line": 7, "end_line": 7, - "column": 61, - "end_column": 67 + "column": 14, + "end_column": 95 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "00000000000000000000000000000000000NtOcA", + "encoding": "base16" + } + }, + { + "_type": "ReturnStatement", + "source_location": { + "file": "tests/approvals/avm11.algo.ts", + "line": 8, + "end_line": 8, + "column": 4, + "end_column": 59 + }, + "value": { + "_type": "IntrinsicCall", + "source_location": { + "file": "tests/approvals/avm11.algo.ts", + "line": 8, + "end_line": 8, + "column": 53, + "end_column": 59 }, "wtype": { "_type": "WType", @@ -69,10 +116,10 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 7, - "end_line": 7, + "line": 8, + "end_line": 8, "column": 11, - "end_column": 60 + "end_column": 52 }, "wtype": { "_type": "WType", @@ -87,13 +134,13 @@ ], "stack_args": [ { - "_type": "BytesConstant", + "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 7, - "end_line": 7, - "column": 56, - "end_column": 58 + "line": 8, + "end_line": 8, + "column": 50, + "end_column": 51 }, "wtype": { "_type": "WType", @@ -102,8 +149,7 @@ "ephemeral": false, "scalar_type": 1 }, - "value": "", - "encoding": "utf8" + "name": "a" } ] } @@ -130,8 +176,8 @@ "_type": "Contract", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 11, - "end_line": 12, + "line": 12, + "end_line": 13, "column": 0, "end_column": 45 }, @@ -292,8 +338,8 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 13, - "end_line": 13, + "line": 14, + "end_line": 14, "column": 2, "end_column": 14 }, @@ -309,29 +355,76 @@ "_type": "Block", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 13, - "end_line": 42, + "line": 14, + "end_line": 44, "column": 15, "end_column": 3 }, "body": [ + { + "_type": "AssignmentStatement", + "source_location": { + "file": "tests/approvals/avm11.algo.ts", + "line": 16, + "end_line": 16, + "column": 10, + "end_column": 95 + }, + "target": { + "_type": "VarExpression", + "source_location": { + "file": "tests/approvals/avm11.algo.ts", + "line": 16, + "end_line": 16, + "column": 10, + "end_column": 11 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "name": "x" + }, + "value": { + "_type": "BytesConstant", + "source_location": { + "file": "tests/approvals/avm11.algo.ts", + "line": 16, + "end_line": 16, + "column": 14, + "end_column": 95 + }, + "wtype": { + "_type": "WType", + "name": "bytes", + "immutable": true, + "ephemeral": false, + "scalar_type": 1 + }, + "value": "00000000000000000000000000000000000NtOcA", + "encoding": "base16" + } + }, { "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 15, - "end_line": 15, + "line": 17, + "end_line": 17, "column": 4, - "end_column": 63 + "end_column": 57 }, "expr": { "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 15, - "end_line": 15, + "line": 17, + "end_line": 17, "column": 4, - "end_column": 63 + "end_column": 57 }, "wtype": { "_type": "WType", @@ -344,10 +437,10 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 15, - "end_line": 15, + "line": 17, + "end_line": 17, "column": 4, - "end_column": 63 + "end_column": 57 }, "wtype": { "_type": "WType", @@ -360,10 +453,10 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 15, - "end_line": 15, + "line": 17, + "end_line": 17, "column": 4, - "end_column": 63 + "end_column": 57 }, "wtype": { "_type": "WType", @@ -379,10 +472,10 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 15, - "end_line": 15, + "line": 17, + "end_line": 17, "column": 11, - "end_column": 62 + "end_column": 56 }, "wtype": { "_type": "WType", @@ -397,13 +490,13 @@ ], "stack_args": [ { - "_type": "BytesConstant", + "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 15, - "end_line": 15, + "line": 17, + "end_line": 17, "column": 54, - "end_column": 61 + "end_column": 55 }, "wtype": { "_type": "WType", @@ -412,8 +505,7 @@ "ephemeral": false, "scalar_type": 1 }, - "value": "", - "encoding": "unknown" + "name": "x" } ] } @@ -427,8 +519,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 16, - "end_line": 16, + "line": 18, + "end_line": 18, "column": 4, "end_column": 28 }, @@ -436,8 +528,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 16, - "end_line": 16, + "line": 18, + "end_line": 18, "column": 4, "end_column": 28 }, @@ -452,8 +544,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 16, - "end_line": 16, + "line": 18, + "end_line": 18, "column": 4, "end_column": 28 }, @@ -468,8 +560,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 16, - "end_line": 16, + "line": 18, + "end_line": 18, "column": 11, "end_column": 27 }, @@ -492,8 +584,8 @@ "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 19, - "end_line": 19, + "line": 21, + "end_line": 21, "column": 10, "end_column": 66 }, @@ -501,8 +593,8 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 19, - "end_line": 19, + "line": 21, + "end_line": 21, "column": 10, "end_column": 66 }, @@ -534,8 +626,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 19, - "end_line": 19, + "line": 21, + "end_line": 21, "column": 11, "end_column": 12 }, @@ -552,8 +644,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 19, - "end_line": 19, + "line": 21, + "end_line": 21, "column": 14, "end_column": 15 }, @@ -572,8 +664,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 19, - "end_line": 19, + "line": 21, + "end_line": 21, "column": 19, "end_column": 66 }, @@ -609,8 +701,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 19, - "end_line": 19, + "line": 21, + "end_line": 21, "column": 59, "end_column": 65 }, @@ -634,8 +726,8 @@ "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 20, - "end_line": 20, + "line": 22, + "end_line": 22, "column": 10, "end_column": 61 }, @@ -643,8 +735,8 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 20, - "end_line": 20, + "line": 22, + "end_line": 22, "column": 10, "end_column": 61 }, @@ -676,8 +768,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 20, - "end_line": 20, + "line": 22, + "end_line": 22, "column": 11, "end_column": 12 }, @@ -694,8 +786,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 20, - "end_line": 20, + "line": 22, + "end_line": 22, "column": 14, "end_column": 15 }, @@ -714,8 +806,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 20, - "end_line": 20, + "line": 22, + "end_line": 22, "column": 19, "end_column": 61 }, @@ -751,8 +843,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 20, - "end_line": 20, + "line": 22, + "end_line": 22, "column": 54, "end_column": 60 }, @@ -776,8 +868,8 @@ "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 21, - "end_line": 21, + "line": 23, + "end_line": 23, "column": 10, "end_column": 61 }, @@ -785,8 +877,8 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 21, - "end_line": 21, + "line": 23, + "end_line": 23, "column": 10, "end_column": 61 }, @@ -818,8 +910,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 21, - "end_line": 21, + "line": 23, + "end_line": 23, "column": 11, "end_column": 12 }, @@ -836,8 +928,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 21, - "end_line": 21, + "line": 23, + "end_line": 23, "column": 14, "end_column": 15 }, @@ -856,8 +948,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 21, - "end_line": 21, + "line": 23, + "end_line": 23, "column": 19, "end_column": 61 }, @@ -893,8 +985,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 21, - "end_line": 21, + "line": 23, + "end_line": 23, "column": 54, "end_column": 60 }, @@ -918,8 +1010,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 24, - "end_line": 24, + "line": 26, + "end_line": 26, "column": 4, "end_column": 70 }, @@ -927,8 +1019,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 24, - "end_line": 24, + "line": 26, + "end_line": 26, "column": 4, "end_column": 70 }, @@ -943,8 +1035,8 @@ "_type": "BytesComparisonExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 24, - "end_line": 24, + "line": 26, + "end_line": 26, "column": 11, "end_column": 57 }, @@ -959,8 +1051,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 24, - "end_line": 24, + "line": 26, + "end_line": 26, "column": 11, "end_column": 34 }, @@ -980,8 +1072,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 24, - "end_line": 24, + "line": 26, + "end_line": 26, "column": 32, "end_column": 33 }, @@ -1002,8 +1094,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 24, - "end_line": 24, + "line": 26, + "end_line": 26, "column": 46, "end_column": 57 }, @@ -1028,8 +1120,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 25, - "end_line": 25, + "line": 27, + "end_line": 27, "column": 4, "end_column": 58 }, @@ -1037,8 +1129,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 25, - "end_line": 25, + "line": 27, + "end_line": 27, "column": 4, "end_column": 58 }, @@ -1053,8 +1145,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 25, - "end_line": 25, + "line": 27, + "end_line": 27, "column": 4, "end_column": 58 }, @@ -1069,8 +1161,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 25, - "end_line": 25, + "line": 27, + "end_line": 27, "column": 11, "end_column": 39 }, @@ -1090,8 +1182,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 25, - "end_line": 25, + "line": 27, + "end_line": 27, "column": 37, "end_column": 38 }, @@ -1115,8 +1207,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 26, - "end_line": 26, + "line": 28, + "end_line": 28, "column": 4, "end_column": 41 }, @@ -1124,8 +1216,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 26, - "end_line": 26, + "line": 28, + "end_line": 28, "column": 4, "end_column": 41 }, @@ -1140,8 +1232,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 26, - "end_line": 26, + "line": 28, + "end_line": 28, "column": 4, "end_column": 41 }, @@ -1156,8 +1248,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 26, - "end_line": 26, + "line": 28, + "end_line": 28, "column": 11, "end_column": 31 }, @@ -1177,8 +1269,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 26, - "end_line": 26, + "line": 28, + "end_line": 28, "column": 29, "end_column": 30 }, @@ -1202,8 +1294,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 27, - "end_line": 27, + "line": 29, + "end_line": 29, "column": 4, "end_column": 43 }, @@ -1211,8 +1303,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 27, - "end_line": 27, + "line": 29, + "end_line": 29, "column": 4, "end_column": 43 }, @@ -1227,8 +1319,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 27, - "end_line": 27, + "line": 29, + "end_line": 29, "column": 4, "end_column": 43 }, @@ -1243,8 +1335,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 27, - "end_line": 27, + "line": 29, + "end_line": 29, "column": 4, "end_column": 43 }, @@ -1262,8 +1354,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 27, - "end_line": 27, + "line": 29, + "end_line": 29, "column": 11, "end_column": 32 }, @@ -1283,8 +1375,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 27, - "end_line": 27, + "line": 29, + "end_line": 29, "column": 30, "end_column": 31 }, @@ -1310,8 +1402,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 28, - "end_line": 28, + "line": 30, + "end_line": 30, "column": 4, "end_column": 69 }, @@ -1319,8 +1411,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 28, - "end_line": 28, + "line": 30, + "end_line": 30, "column": 4, "end_column": 69 }, @@ -1335,8 +1427,8 @@ "_type": "BytesComparisonExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 28, - "end_line": 28, + "line": 30, + "end_line": 30, "column": 11, "end_column": 56 }, @@ -1351,8 +1443,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 28, - "end_line": 28, + "line": 30, + "end_line": 30, "column": 11, "end_column": 33 }, @@ -1372,8 +1464,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 28, - "end_line": 28, + "line": 30, + "end_line": 30, "column": 31, "end_column": 32 }, @@ -1394,8 +1486,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 28, - "end_line": 28, + "line": 30, + "end_line": 30, "column": 45, "end_column": 56 }, @@ -1420,8 +1512,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 29, - "end_line": 29, + "line": 31, + "end_line": 31, "column": 4, "end_column": 47 }, @@ -1429,8 +1521,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 29, - "end_line": 29, + "line": 31, + "end_line": 31, "column": 4, "end_column": 47 }, @@ -1445,8 +1537,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 29, - "end_line": 29, + "line": 31, + "end_line": 31, "column": 4, "end_column": 47 }, @@ -1461,8 +1553,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 29, - "end_line": 29, + "line": 31, + "end_line": 31, "column": 4, "end_column": 47 }, @@ -1480,8 +1572,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 29, - "end_line": 29, + "line": 31, + "end_line": 31, "column": 11, "end_column": 34 }, @@ -1501,8 +1593,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 29, - "end_line": 29, + "line": 31, + "end_line": 31, "column": 32, "end_column": 33 }, @@ -1528,8 +1620,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 30, - "end_line": 30, + "line": 32, + "end_line": 32, "column": 4, "end_column": 52 }, @@ -1537,8 +1629,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 30, - "end_line": 30, + "line": 32, + "end_line": 32, "column": 4, "end_column": 52 }, @@ -1553,8 +1645,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 30, - "end_line": 30, + "line": 32, + "end_line": 32, "column": 4, "end_column": 52 }, @@ -1569,8 +1661,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 30, - "end_line": 30, + "line": 32, + "end_line": 32, "column": 11, "end_column": 36 }, @@ -1590,8 +1682,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 30, - "end_line": 30, + "line": 32, + "end_line": 32, "column": 34, "end_column": 35 }, @@ -1615,8 +1707,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 31, - "end_line": 31, + "line": 33, + "end_line": 33, "column": 4, "end_column": 60 }, @@ -1624,8 +1716,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 31, - "end_line": 31, + "line": 33, + "end_line": 33, "column": 4, "end_column": 60 }, @@ -1640,8 +1732,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 31, - "end_line": 31, + "line": 33, + "end_line": 33, "column": 4, "end_column": 60 }, @@ -1656,8 +1748,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 31, - "end_line": 31, + "line": 33, + "end_line": 33, "column": 11, "end_column": 40 }, @@ -1677,8 +1769,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 31, - "end_line": 31, + "line": 33, + "end_line": 33, "column": 38, "end_column": 39 }, @@ -1702,8 +1794,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 34, - "end_line": 34, + "line": 36, + "end_line": 36, "column": 4, "end_column": 55 }, @@ -1711,8 +1803,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 34, - "end_line": 34, + "line": 36, + "end_line": 36, "column": 4, "end_column": 55 }, @@ -1727,8 +1819,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 34, - "end_line": 34, + "line": 36, + "end_line": 36, "column": 21, "end_column": 35 }, @@ -1752,8 +1844,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 35, - "end_line": 35, + "line": 37, + "end_line": 37, "column": 4, "end_column": 65 }, @@ -1761,8 +1853,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 35, - "end_line": 35, + "line": 37, + "end_line": 37, "column": 4, "end_column": 65 }, @@ -1777,8 +1869,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 35, - "end_line": 35, + "line": 37, + "end_line": 37, "column": 4, "end_column": 65 }, @@ -1793,8 +1885,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 35, - "end_line": 35, + "line": 37, + "end_line": 37, "column": 21, "end_column": 39 }, @@ -1819,8 +1911,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 36, - "end_line": 36, + "line": 38, + "end_line": 38, "column": 4, "end_column": 55 }, @@ -1828,8 +1920,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 36, - "end_line": 36, + "line": 38, + "end_line": 38, "column": 4, "end_column": 55 }, @@ -1844,8 +1936,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 36, - "end_line": 36, + "line": 38, + "end_line": 38, "column": 4, "end_column": 55 }, @@ -1860,8 +1952,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 36, - "end_line": 36, + "line": 38, + "end_line": 38, "column": 21, "end_column": 35 }, @@ -1886,8 +1978,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 37, - "end_line": 37, + "line": 39, + "end_line": 39, "column": 4, "end_column": 62 }, @@ -1895,8 +1987,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 37, - "end_line": 37, + "line": 39, + "end_line": 39, "column": 4, "end_column": 62 }, @@ -1911,8 +2003,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 37, - "end_line": 37, + "line": 39, + "end_line": 39, "column": 4, "end_column": 62 }, @@ -1927,8 +2019,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 37, - "end_line": 37, + "line": 39, + "end_line": 39, "column": 21, "end_column": 38 }, @@ -1953,8 +2045,8 @@ "_type": "ExpressionStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 38, - "end_line": 38, + "line": 40, + "end_line": 40, "column": 4, "end_column": 62 }, @@ -1962,8 +2054,8 @@ "_type": "AssertExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 38, - "end_line": 38, + "line": 40, + "end_line": 40, "column": 4, "end_column": 62 }, @@ -1978,8 +2070,8 @@ "_type": "ReinterpretCast", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 38, - "end_line": 38, + "line": 40, + "end_line": 40, "column": 4, "end_column": 62 }, @@ -1994,8 +2086,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 38, - "end_line": 38, + "line": 40, + "end_line": 40, "column": 21, "end_column": 38 }, @@ -2020,8 +2112,8 @@ "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 40, - "end_line": 40, + "line": 42, + "end_line": 42, "column": 10, "end_column": 49 }, @@ -2029,8 +2121,8 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 40, - "end_line": 40, + "line": 42, + "end_line": 42, "column": 10, "end_column": 49 }, @@ -2062,8 +2154,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 40, - "end_line": 40, + "line": 42, + "end_line": 42, "column": 11, "end_column": 12 }, @@ -2080,8 +2172,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 40, - "end_line": 40, + "line": 42, + "end_line": 42, "column": 14, "end_column": 15 }, @@ -2100,8 +2192,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 40, - "end_line": 40, + "line": 42, + "end_line": 42, "column": 19, "end_column": 49 }, @@ -2137,8 +2229,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 40, - "end_line": 40, + "line": 42, + "end_line": 42, "column": 47, "end_column": 48 }, @@ -2159,8 +2251,8 @@ "_type": "AssignmentStatement", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 41, - "end_line": 41, + "line": 43, + "end_line": 43, "column": 10, "end_column": 59 }, @@ -2168,8 +2260,8 @@ "_type": "TupleExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 41, - "end_line": 41, + "line": 43, + "end_line": 43, "column": 10, "end_column": 59 }, @@ -2201,8 +2293,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 41, - "end_line": 41, + "line": 43, + "end_line": 43, "column": 11, "end_column": 12 }, @@ -2219,8 +2311,8 @@ "_type": "VarExpression", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 41, - "end_line": 41, + "line": 43, + "end_line": 43, "column": 14, "end_column": 15 }, @@ -2239,8 +2331,8 @@ "_type": "IntrinsicCall", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 41, - "end_line": 41, + "line": 43, + "end_line": 43, "column": 19, "end_column": 59 }, @@ -2276,8 +2368,8 @@ "_type": "IntegerConstant", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 41, - "end_line": 41, + "line": 43, + "end_line": 43, "column": 57, "end_column": 58 }, @@ -2310,8 +2402,8 @@ "_type": "ARC4ABIMethodConfig", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 13, - "end_line": 13, + "line": 14, + "end_line": 14, "column": 2, "end_column": 14 }, @@ -2330,8 +2422,8 @@ "_type": "ContractMethod", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 11, - "end_line": 12, + "line": 12, + "end_line": 13, "column": 0, "end_column": 45 }, @@ -2347,8 +2439,8 @@ "_type": "Block", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 11, - "end_line": 12, + "line": 12, + "end_line": 13, "column": 0, "end_column": 45 }, @@ -2368,8 +2460,8 @@ "_type": "ARC4BareMethodConfig", "source_location": { "file": "tests/approvals/avm11.algo.ts", - "line": 11, - "end_line": 12, + "line": 12, + "end_line": 13, "column": 0, "end_column": 45 },