{ "name": "TestLocalMapTuple", "structs": { "Object7C2C03A9": [ { "name": "a", "type": "string" }, { "name": "b", "type": "uint64" } ] }, "methods": [ { "name": "optIn", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "OptIn" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "testMapOfTuples", "args": [ { "type": "string", "name": "a" }, { "type": "uint64", "name": "b" }, { "type": "bool", "name": "c" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "testMapOfObjects", "args": [ { "type": "string", "name": "a" }, { "type": "uint64", "name": "b" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "testTupleMap", "args": [ { "type": "string", "name": "a" }, { "type": "uint64", "name": "b" }, { "type": "bool", "name": "c" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "testObjectMap", "args": [ { "type": "string", "name": "a" }, { "type": "uint64", "name": "b" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 5, "bytes": 5 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": { "mapOfTuples": { "keyType": "AVMString", "valueType": "(string,uint64,bool)", "prefix": "bWFwT2ZUdXBsZXM=" }, "mapOfObjects": { "keyType": "AVMString", "valueType": "Object7C2C03A9", "prefix": "bWFwT2ZPYmplY3Rz" }, "tupleMap": { "keyType": "(string,uint64,bool)", "valueType": "AVMUint64", "prefix": "dHVwbGVNYXA=" }, "objectMap": { "keyType": "Object7C2C03A9", "valueType": "AVMUint64", "prefix": "b2JqZWN0TWFw" } }, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 193, 213, 225, 288, 308, 399, 475 ], "errorMessage": "check LocalState exists" }, { "pc": [ 128, 238, 320, 411 ], "errorMessage": "invalid array length header" }, { "pc": [ 155, 347 ], "errorMessage": "invalid number of bytes for arc4.bool" }, { "pc": [ 135, 245, 327, 418 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 146, 256, 338, 429 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 479 ], "errorMessage": "object value should match" }, { "pc": [ 302 ], "errorMessage": "object.a should match" }, { "pc": [ 312 ], "errorMessage": "object.b should match" }, { "pc": [ 403 ], "errorMessage": "tuple value should match" }, { "pc": [ 207 ], "errorMessage": "tuple[0] should match" }, { "pc": [ 219 ], "errorMessage": "tuple[1] should match" }, { "pc": [ 230 ], "errorMessage": "tuple[2] should match" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDIgOAogICAgYnl0ZWNibG9jayAibWFwT2ZUdXBsZXNrMSIgIm1hcE9mT2JqZWN0c2sxIiAweDAwMGIgMHgwMCAweDAwMGEKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo1Ni01NwogICAgLy8gQGNvbnRyYWN0KHsgc3RhdGVUb3RhbHM6IHsgbG9jYWxCeXRlczogNSwgbG9jYWxVaW50czogNSB9IH0pCiAgICAvLyBleHBvcnQgY2xhc3MgVGVzdExvY2FsTWFwVHVwbGUgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTMKICAgIHB1c2hieXRlcyAweDI5MzE0ZDk1IC8vIG1ldGhvZCAib3B0SW4oKXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX29wdEluX3JvdXRlQDMKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydAogICAgcHVzaGJ5dGVzcyAweGU4NTE5YzFhIDB4ZDQ1YWUwNmEgMHg1YmU0OTNmZiAweDlmMDBkMWJlIC8vIG1ldGhvZCAidGVzdE1hcE9mVHVwbGVzKHN0cmluZyx1aW50NjQsYm9vbCl2b2lkIiwgbWV0aG9kICJ0ZXN0TWFwT2ZPYmplY3RzKHN0cmluZyx1aW50NjQpdm9pZCIsIG1ldGhvZCAidGVzdFR1cGxlTWFwKHN0cmluZyx1aW50NjQsYm9vbCl2b2lkIiwgbWV0aG9kICJ0ZXN0T2JqZWN0TWFwKHN0cmluZyx1aW50NjQpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIHRlc3RNYXBPZlR1cGxlcyB0ZXN0TWFwT2ZPYmplY3RzIHRlc3RUdXBsZU1hcCB0ZXN0T2JqZWN0TWFwCiAgICBlcnIKCm1haW5fb3B0SW5fcm91dGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo2NAogICAgLy8gQGFiaW1ldGhvZCh7IGFsbG93QWN0aW9uczogJ09wdEluJyB9KQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE9wdEluCiAgICA9PQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICYmCiAgICByZXR1cm4KCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjU2LTU3CiAgICAvLyBAY29udHJhY3QoeyBzdGF0ZVRvdGFsczogeyBsb2NhbEJ5dGVzOiA1LCBsb2NhbFVpbnRzOiA1IH0gfSkKICAgIC8vIGV4cG9ydCBjbGFzcyBUZXN0TG9jYWxNYXBUdXBsZSBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICAmJgogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjpUZXN0TG9jYWxNYXBUdXBsZS50ZXN0TWFwT2ZUdXBsZXNbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0TWFwT2ZUdXBsZXM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NjcKICAgIC8vIHRlc3RNYXBPZlR1cGxlcyhhOiBzdHJpbmcsIGI6IHVpbnQ2NCwgYzogYm9vbGVhbikgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5ib29sCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NjgKICAgIC8vIHRoaXMubWFwT2ZUdXBsZXMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWUgPSBbYSwgYiwgY10KICAgIGRpZyAyCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBkaWcgMwogICAgY29uY2F0CiAgICBkaWcgMgogICAgaXRvYgogICAgYnl0ZWNfMiAvLyAweDAwMGIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMyAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZGlnIDQKICAgIHNldGJpdAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo1OAogICAgLy8gbWFwT2ZUdXBsZXMgPSBMb2NhbE1hcDxzdHJpbmcsIFtzdHJpbmcsIHVpbnQ2NCwgYm9vbGVhbl0+KCkKICAgIGJ5dGVjXzAgLy8gIm1hcE9mVHVwbGVzazEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NjgKICAgIC8vIHRoaXMubWFwT2ZUdXBsZXMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWUgPSBbYSwgYiwgY10KICAgIHVuY292ZXIgMgogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjY5CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZlR1cGxlcygnazEnLCBUeG4uc2VuZGVyKS52YWx1ZVswXSA9PT0gYSwgJ3R1cGxlWzBdIHNob3VsZCBtYXRjaCcpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjU4CiAgICAvLyBtYXBPZlR1cGxlcyA9IExvY2FsTWFwPHN0cmluZywgW3N0cmluZywgdWludDY0LCBib29sZWFuXT4oKQogICAgYnl0ZWNfMCAvLyAibWFwT2ZUdXBsZXNrMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo2OQogICAgLy8gYXNzZXJ0KHRoaXMubWFwT2ZUdXBsZXMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWVbMF0gPT09IGEsICd0dXBsZVswXSBzaG91bGQgbWF0Y2gnKQogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgIGxlbgogICAgc3Vic3RyaW5nMwogICAgZXh0cmFjdCAyIDAKICAgIHVuY292ZXIgMwogICAgPT0KICAgIGFzc2VydCAvLyB0dXBsZVswXSBzaG91bGQgbWF0Y2gKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3MAogICAgLy8gYXNzZXJ0KHRoaXMubWFwT2ZUdXBsZXMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWVbMV0gPT09IGIsICd0dXBsZVsxXSBzaG91bGQgbWF0Y2gnKQogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo1OAogICAgLy8gbWFwT2ZUdXBsZXMgPSBMb2NhbE1hcDxzdHJpbmcsIFtzdHJpbmcsIHVpbnQ2NCwgYm9vbGVhbl0+KCkKICAgIGJ5dGVjXzAgLy8gIm1hcE9mVHVwbGVzazEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NzAKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mVHVwbGVzKCdrMScsIFR4bi5zZW5kZXIpLnZhbHVlWzFdID09PSBiLCAndHVwbGVbMV0gc2hvdWxkIG1hdGNoJykKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgaW50Y18yIC8vIDIKICAgIGV4dHJhY3RfdWludDY0CiAgICB1bmNvdmVyIDIKICAgID09CiAgICBhc3NlcnQgLy8gdHVwbGVbMV0gc2hvdWxkIG1hdGNoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NzEKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mVHVwbGVzKCdrMScpKFR4bi5zZW5kZXIpLnZhbHVlWzJdID09PSBjLCAndHVwbGVbMl0gc2hvdWxkIG1hdGNoJykKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NTgKICAgIC8vIG1hcE9mVHVwbGVzID0gTG9jYWxNYXA8c3RyaW5nLCBbc3RyaW5nLCB1aW50NjQsIGJvb2xlYW5dPigpCiAgICBieXRlY18wIC8vICJtYXBPZlR1cGxlc2sxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjcxCiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZlR1cGxlcygnazEnKShUeG4uc2VuZGVyKS52YWx1ZVsyXSA9PT0gYywgJ3R1cGxlWzJdIHNob3VsZCBtYXRjaCcpCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIHB1c2hpbnQgODAKICAgIGdldGJpdAogICAgPT0KICAgIGFzc2VydCAvLyB0dXBsZVsyXSBzaG91bGQgbWF0Y2gKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo2NwogICAgLy8gdGVzdE1hcE9mVHVwbGVzKGE6IHN0cmluZywgYjogdWludDY0LCBjOiBib29sZWFuKSB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjpUZXN0TG9jYWxNYXBUdXBsZS50ZXN0TWFwT2ZPYmplY3RzW3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdE1hcE9mT2JqZWN0czoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3NAogICAgLy8gdGVzdE1hcE9mT2JqZWN0cyhhOiBzdHJpbmcsIGI6IHVpbnQ2NCkgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3NQogICAgLy8gdGhpcy5tYXBPZk9iamVjdHMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWUgPSB7IGEsIGIgfQogICAgZGlnIDEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBpdG9iCiAgICBieXRlYyA0IC8vIDB4MDAwYQogICAgc3dhcAogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHR4biBTZW5kZXIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo1OQogICAgLy8gbWFwT2ZPYmplY3RzID0gTG9jYWxNYXA8c3RyaW5nLCB7IGE6IHN0cmluZzsgYjogdWludDY0IH0+KCkKICAgIGJ5dGVjXzEgLy8gIm1hcE9mT2JqZWN0c2sxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjc1CiAgICAvLyB0aGlzLm1hcE9mT2JqZWN0cygnazEnLCBUeG4uc2VuZGVyKS52YWx1ZSA9IHsgYSwgYiB9CiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3NgogICAgLy8gYXNzZXJ0KHRoaXMubWFwT2ZPYmplY3RzKCdrMScpKFR4bi5zZW5kZXIpLnZhbHVlLmEgPT09IGEsICdvYmplY3QuYSBzaG91bGQgbWF0Y2gnKQogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo1OQogICAgLy8gbWFwT2ZPYmplY3RzID0gTG9jYWxNYXA8c3RyaW5nLCB7IGE6IHN0cmluZzsgYjogdWludDY0IH0+KCkKICAgIGJ5dGVjXzEgLy8gIm1hcE9mT2JqZWN0c2sxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjc2CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZk9iamVjdHMoJ2sxJykoVHhuLnNlbmRlcikudmFsdWUuYSA9PT0gYSwgJ29iamVjdC5hIHNob3VsZCBtYXRjaCcpCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgbGVuCiAgICBzdWJzdHJpbmczCiAgICBleHRyYWN0IDIgMAogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIG9iamVjdC5hIHNob3VsZCBtYXRjaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjc3CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZk9iamVjdHMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWUuYiA9PT0gYiwgJ29iamVjdC5iIHNob3VsZCBtYXRjaCcpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjU5CiAgICAvLyBtYXBPZk9iamVjdHMgPSBMb2NhbE1hcDxzdHJpbmcsIHsgYTogc3RyaW5nOyBiOiB1aW50NjQgfT4oKQogICAgYnl0ZWNfMSAvLyAibWFwT2ZPYmplY3RzazEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NzcKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mT2JqZWN0cygnazEnLCBUeG4uc2VuZGVyKS52YWx1ZS5iID09PSBiLCAnb2JqZWN0LmIgc2hvdWxkIG1hdGNoJykKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgaW50Y18yIC8vIDIKICAgIGV4dHJhY3RfdWludDY0CiAgICA9PQogICAgYXNzZXJ0IC8vIG9iamVjdC5iIHNob3VsZCBtYXRjaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjc0CiAgICAvLyB0ZXN0TWFwT2ZPYmplY3RzKGE6IHN0cmluZywgYjogdWludDY0KSB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjpUZXN0TG9jYWxNYXBUdXBsZS50ZXN0VHVwbGVNYXBbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0VHVwbGVNYXA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODAKICAgIC8vIHRlc3RUdXBsZU1hcChhOiBzdHJpbmcsIGI6IHVpbnQ2NCwgYzogYm9vbGVhbikgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5ib29sCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODEKICAgIC8vIHRoaXMudHVwbGVNYXAoW2EsIGIsIGNdKShUeG4uc2VuZGVyKS52YWx1ZSA9IDk5CiAgICBkaWcgMgogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAzCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgaXRvYgogICAgYnl0ZWNfMiAvLyAweDAwMGIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMyAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciA0CiAgICBzZXRiaXQKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NjEKICAgIC8vIHR1cGxlTWFwID0gTG9jYWxNYXA8W3N0cmluZywgdWludDY0LCBib29sZWFuXSwgdWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR1cGxlTWFwIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODEKICAgIC8vIHRoaXMudHVwbGVNYXAoW2EsIGIsIGNdKShUeG4uc2VuZGVyKS52YWx1ZSA9IDk5CiAgICB0eG4gU2VuZGVyCiAgICBkaWcgMQogICAgcHVzaGludCA5OQogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjgyCiAgICAvLyBhc3NlcnQodGhpcy50dXBsZU1hcChbYSwgYiwgY10sIFR4bi5zZW5kZXIpLnZhbHVlID09PSA5OSwgJ3R1cGxlIHZhbHVlIHNob3VsZCBtYXRjaCcpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIHB1c2hpbnQgOTkKICAgID09CiAgICBhc3NlcnQgLy8gdHVwbGUgdmFsdWUgc2hvdWxkIG1hdGNoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODAKICAgIC8vIHRlc3RUdXBsZU1hcChhOiBzdHJpbmcsIGI6IHVpbnQ2NCwgYzogYm9vbGVhbikgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo6VGVzdExvY2FsTWFwVHVwbGUudGVzdE9iamVjdE1hcFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RPYmplY3RNYXA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODUKICAgIC8vIHRlc3RPYmplY3RNYXAoYTogc3RyaW5nLCBiOiB1aW50NjQpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODYKICAgIC8vIHRoaXMub2JqZWN0TWFwKHsgYSwgYiB9LCBUeG4uc2VuZGVyKS52YWx1ZSA9IDk5CiAgICBkaWcgMQogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGl0b2IKICAgIGJ5dGVjIDQgLy8gMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjYyCiAgICAvLyBvYmplY3RNYXAgPSBMb2NhbE1hcDx7IGE6IHN0cmluZzsgYjogdWludDY0IH0sIHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJvYmplY3RNYXAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo4NgogICAgLy8gdGhpcy5vYmplY3RNYXAoeyBhLCBiIH0sIFR4bi5zZW5kZXIpLnZhbHVlID0gOTkKICAgIHR4biBTZW5kZXIKICAgIGRpZyAxCiAgICBwdXNoaW50IDk5CiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODcKICAgIC8vIGFzc2VydCh0aGlzLm9iamVjdE1hcCh7IGEsIGIgfSwgVHhuLnNlbmRlcikudmFsdWUgPT09IDk5LCAnb2JqZWN0IHZhbHVlIHNob3VsZCBtYXRjaCcpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIHB1c2hpbnQgOTkKICAgID09CiAgICBhc3NlcnQgLy8gb2JqZWN0IHZhbHVlIHNob3VsZCBtYXRjaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjg1CiAgICAvLyB0ZXN0T2JqZWN0TWFwKGE6IHN0cmluZywgYjogdWludDY0KSB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEKICAgIHJldHVybgo=" }, "byteCode": { "approval": "CyAEAAECCCYFDW1hcE9mVHVwbGVzazEObWFwT2ZPYmplY3RzazECAAsBAAIACjEbQQBAgAQpMU2VNhoAjgEAKzEZFEQxGESCBAToUZwaBNRa4GoEW+ST/wSfANG+NhoAjgQAEQB/ANEBLAAxGSMSMRgQQzEZFDEYFBBDNhoBSSJZJAhLARUSRFcCADYaAkkVJRJEFzYaA0kVIxJEIlNLAhUWVwYCSwNQSwIWKkxQKyJLBFRQTFAxAChPAmYxACIoY0RJIllLARVSVwIATwMSRDEAIihjRCRbTwISRDEAIihjRIFQUxJEI0M2GgFJIlkkCEsBFRJEVwIANhoCSRUlEkQXSwEVFlcGAksCUEsBFicETFBMUDEAKU8CZjEAIiljREkiWUsBFVJXAgBPAhJEMQAiKWNEJFsSRCNDNhoBSSJZJAhLARUSRFcCADYaAkkVJRJEFzYaA0kVIxJEIlNLAhUWVwYCTwNQTwIWKkxQKyJPBFRQTFCACHR1cGxlTWFwTFAxAEsBgWNmMQAiTwJjRIFjEkQjQzYaAUkiWSQISwEVEkRXAgA2GgJJFSUSRBdLARUWVwYCTwJQTBYnBExQTFCACW9iamVjdE1hcExQMQBLAYFjZjEAIk8CY0SBYxJEI0M=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }