{ "name": "AlgoForAsaEscrow", "structs": {}, "methods": [ { "name": "create", "args": [ { "type": "uint64", "name": "asset" }, { "type": "uint64", "name": "asset_amount" }, { "type": "uint64", "name": "algo_amount" }, { "type": "address", "name": "taker" } ], "returns": { "type": "void" }, "actions": { "create": [ "NoOp" ], "call": [] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "deposit", "args": [ { "type": "pay", "name": "pay" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "accept", "args": [ { "type": "axfer", "name": "axfer" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "cancel", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "delete", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "DeleteApplication" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 4, "bytes": 2 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": { "maker": { "keyType": "AVMString", "valueType": "address", "key": "bWFrZXI=" }, "taker": { "keyType": "AVMString", "valueType": "address", "key": "dGFrZXI=" }, "asset": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "YXNzZXQ=" }, "asset_amount": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "YXNzZXRfYW1vdW50" }, "algo_amount": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "YWxnb19hbW91bnQ=" }, "status": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "c3RhdHVz" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 204 ], "errorMessage": "algo amount must be > 0" }, { "pc": [ 254 ], "errorMessage": "already funded" }, { "pc": [ 201 ], "errorMessage": "asset amount must be > 0" }, { "pc": [ 497 ], "errorMessage": "cancel the offer first" }, { "pc": [ 274, 412 ], "errorMessage": "check self.algo_amount exists" }, { "pc": [ 373 ], "errorMessage": "check self.asset exists" }, { "pc": [ 396 ], "errorMessage": "check self.asset_amount exists" }, { "pc": [ 243, 382, 438, 477 ], "errorMessage": "check self.maker exists" }, { "pc": [ 252, 313, 447, 483, 492 ], "errorMessage": "check self.status exists" }, { "pc": [ 337, 349 ], "errorMessage": "check self.taker exists" }, { "pc": [ 279 ], "errorMessage": "deposit ALGO + min balance" }, { "pc": [ 260 ], "errorMessage": "deposit must come from maker" }, { "pc": [ 321 ], "errorMessage": "group must be exactly 2 txns" }, { "pc": [ 198 ], "errorMessage": "invalid number of bytes for arc4.static_array" }, { "pc": [ 170, 179, 188 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 387 ], "errorMessage": "must pay maker" }, { "pc": [ 365 ], "errorMessage": "no clawback transfers" }, { "pc": [ 286, 405 ], "errorMessage": "no close-out" }, { "pc": [ 292, 327, 333 ], "errorMessage": "no rekey" }, { "pc": [ 351 ], "errorMessage": "not the designated buyer" }, { "pc": [ 450 ], "errorMessage": "nothing to cancel" }, { "pc": [ 316 ], "errorMessage": "offer not open" }, { "pc": [ 248, 443, 479 ], "errorMessage": "only maker" }, { "pc": [ 358 ], "errorMessage": "payer must be caller" }, { "pc": [ 309 ], "errorMessage": "transaction type is axfer" }, { "pc": [ 237 ], "errorMessage": "transaction type is pay" }, { "pc": [ 398 ], "errorMessage": "wrong amount" }, { "pc": [ 375 ], "errorMessage": "wrong asset" }, { "pc": [ 267 ], "errorMessage": "wrong receiver" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAwIDEgMiA4CiAgICBieXRlY2Jsb2NrICJzdGF0dXMiICJtYWtlciIgInRha2VyIiAiYWxnb19hbW91bnQiICJhc3NldCIgImFzc2V0X2Ftb3VudCIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjM2CiAgICAvLyBzZWxmLm1ha2VyID0gQWNjb3VudCgpCiAgICBieXRlY18xIC8vICJtYWtlciIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjM3CiAgICAvLyBzZWxmLnRha2VyID0gQWNjb3VudCgpCiAgICBieXRlY18yIC8vICJ0YWtlciIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjM4CiAgICAvLyBzZWxmLmFzc2V0ID0gQXNzZXQoKQogICAgYnl0ZWMgNCAvLyAiYXNzZXQiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjM5CiAgICAvLyBzZWxmLmFzc2V0X2Ftb3VudCA9IFVJbnQ2NCgwKQogICAgYnl0ZWMgNSAvLyAiYXNzZXRfYW1vdW50IgogICAgaW50Y18wIC8vIDAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo0MAogICAgLy8gc2VsZi5hbGdvX2Ftb3VudCA9IFVJbnQ2NCgwKQogICAgYnl0ZWNfMyAvLyAiYWxnb19hbW91bnQiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjQxCiAgICAvLyBzZWxmLnN0YXR1cyA9IFVJbnQ2NChDUkVBVEVEKQogICAgYnl0ZWNfMCAvLyAic3RhdHVzIgogICAgaW50Y18wIC8vIDAKICAgIGFwcF9nbG9iYWxfcHV0CgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjM0CiAgICAvLyBjbGFzcyBBbGdvRm9yQXNhRXNjcm93KEFSQzRDb250cmFjdCk6CiAgICBwdXNoYnl0ZXMgMHgyNDM3OGQzYyAvLyBtZXRob2QgImRlbGV0ZSgpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fZGVsZXRlX3JvdXRlQDQKCm1haW5fc3dpdGNoX2Nhc2VfbmV4dEA1OgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6MzQKICAgIC8vIGNsYXNzIEFsZ29Gb3JBc2FFc2Nyb3coQVJDNENvbnRyYWN0KToKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJ6IG1haW5fY3JlYXRlX05vT3BAMTEKICAgIHB1c2hieXRlc3MgMHgzNjI1ZTRlYiAweGRjYTcyYzJkIDB4MzFmMjZhOWIgLy8gbWV0aG9kICJkZXBvc2l0KHBheSl2b2lkIiwgbWV0aG9kICJhY2NlcHQoYXhmZXIpdm9pZCIsIG1ldGhvZCAiY2FuY2VsKCl2b2lkIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggZGVwb3NpdCBhY2NlcHQgY2FuY2VsCiAgICBlcnIKCm1haW5fY3JlYXRlX05vT3BAMTE6CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTozNAogICAgLy8gY2xhc3MgQWxnb0ZvckFzYUVzY3JvdyhBUkM0Q29udHJhY3QpOgogICAgcHVzaGJ5dGVzIDB4YjdhMzIzNGUgLy8gbWV0aG9kICJjcmVhdGUodWludDY0LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyl2b2lkIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggY3JlYXRlCiAgICBlcnIKCm1haW5fZGVsZXRlX3JvdXRlQDQ6CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weToxMDIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZChhbGxvd19hY3Rpb25zPVsiRGVsZXRlQXBwbGljYXRpb24iXSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgPT0KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAmJgogICAgYXNzZXJ0CiAgICBiIGRlbGV0ZQoKCi8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LkFsZ29Gb3JBc2FFc2Nyb3cuY3JlYXRlW3JvdXRpbmddKCkgLT4gdm9pZDoKY3JlYXRlOgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NDMKICAgIC8vIEBhcmM0LmFiaW1ldGhvZChjcmVhdGU9InJlcXVpcmUiKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuc3RhdGljX2FycmF5PGFyYzQudWludDgsIDMyPgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NDUKICAgIC8vIGFzc2VydCBhc3NldF9hbW91bnQgPiAwLCAiYXNzZXQgYW1vdW50IG11c3QgYmUgPiAwIgogICAgZGlnIDIKICAgIGFzc2VydCAvLyBhc3NldCBhbW91bnQgbXVzdCBiZSA+IDAKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjQ2CiAgICAvLyBhc3NlcnQgYWxnb19hbW91bnQgPiAwLCAiYWxnbyBhbW91bnQgbXVzdCBiZSA+IDAiCiAgICBkaWcgMQogICAgYXNzZXJ0IC8vIGFsZ28gYW1vdW50IG11c3QgYmUgPiAwCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo0NwogICAgLy8gc2VsZi5tYWtlciA9IFR4bi5zZW5kZXIKICAgIGJ5dGVjXzEgLy8gIm1ha2VyIgogICAgdHhuIFNlbmRlcgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjQ4CiAgICAvLyBzZWxmLmFzc2V0ID0gYXNzZXQKICAgIGJ5dGVjIDQgLy8gImFzc2V0IgogICAgdW5jb3ZlciA0CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NDkKICAgIC8vIHNlbGYuYXNzZXRfYW1vdW50ID0gYXNzZXRfYW1vdW50CiAgICBieXRlYyA1IC8vICJhc3NldF9hbW91bnQiCiAgICB1bmNvdmVyIDMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo1MAogICAgLy8gc2VsZi5hbGdvX2Ftb3VudCA9IGFsZ29fYW1vdW50CiAgICBieXRlY18zIC8vICJhbGdvX2Ftb3VudCIKICAgIHVuY292ZXIgMgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjUxCiAgICAvLyBzZWxmLnRha2VyID0gdGFrZXIKICAgIGJ5dGVjXzIgLy8gInRha2VyIgogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjQzCiAgICAvLyBAYXJjNC5hYmltZXRob2QoY3JlYXRlPSJyZXF1aXJlIikKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5BbGdvRm9yQXNhRXNjcm93LmRlcG9zaXRbcm91dGluZ10oKSAtPiB2b2lkOgpkZXBvc2l0OgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NTMKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMSAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gcGF5CiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgcGF5CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo1NQogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gc2VsZi5tYWtlciwgIm9ubHkgbWFrZXIiCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAibWFrZXIiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYubWFrZXIgZXhpc3RzCiAgICBzd2FwCiAgICBkaWcgMQogICAgPT0KICAgIGFzc2VydCAvLyBvbmx5IG1ha2VyCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo1NgogICAgLy8gYXNzZXJ0IHNlbGYuc3RhdHVzID09IENSRUFURUQsICJhbHJlYWR5IGZ1bmRlZCIKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJzdGF0dXMiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuc3RhdHVzIGV4aXN0cwogICAgIQogICAgYXNzZXJ0IC8vIGFscmVhZHkgZnVuZGVkCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo1NwogICAgLy8gYXNzZXJ0IHBheS5zZW5kZXIgPT0gc2VsZi5tYWtlciwgImRlcG9zaXQgbXVzdCBjb21lIGZyb20gbWFrZXIiCiAgICBkaWcgMQogICAgZ3R4bnMgU2VuZGVyCiAgICA9PQogICAgYXNzZXJ0IC8vIGRlcG9zaXQgbXVzdCBjb21lIGZyb20gbWFrZXIKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjU4CiAgICAvLyBhc3NlcnQgcGF5LnJlY2VpdmVyID09IEdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsICJ3cm9uZyByZWNlaXZlciIKICAgIGR1cAogICAgZ3R4bnMgUmVjZWl2ZXIKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIHdyb25nIHJlY2VpdmVyCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo1OQogICAgLy8gYXNzZXJ0IHBheS5hbW91bnQgPj0gc2VsZi5hbGdvX2Ftb3VudCArIEdsb2JhbC5taW5fYmFsYW5jZSwgImRlcG9zaXQgQUxHTyArIG1pbiBiYWxhbmNlIgogICAgZHVwCiAgICBndHhucyBBbW91bnQKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18zIC8vICJhbGdvX2Ftb3VudCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5hbGdvX2Ftb3VudCBleGlzdHMKICAgIGdsb2JhbCBNaW5CYWxhbmNlCiAgICArCiAgICA+PQogICAgYXNzZXJ0IC8vIGRlcG9zaXQgQUxHTyArIG1pbiBiYWxhbmNlCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo2MAogICAgLy8gYXNzZXJ0IHBheS5jbG9zZV9yZW1haW5kZXJfdG8gPT0gR2xvYmFsLnplcm9fYWRkcmVzcywgIm5vIGNsb3NlLW91dCIKICAgIGR1cAogICAgZ3R4bnMgQ2xvc2VSZW1haW5kZXJUbwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIG5vIGNsb3NlLW91dAogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NjEKICAgIC8vIGFzc2VydCBwYXkucmVrZXlfdG8gPT0gR2xvYmFsLnplcm9fYWRkcmVzcywgIm5vIHJla2V5IgogICAgZ3R4bnMgUmVrZXlUbwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIG5vIHJla2V5CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo2MgogICAgLy8gc2VsZi5zdGF0dXMgPSBVSW50NjQoRlVOREVEKQogICAgYnl0ZWNfMCAvLyAic3RhdHVzIgogICAgaW50Y18xIC8vIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo1MwogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cuQWxnb0ZvckFzYUVzY3Jvdy5hY2NlcHRbcm91dGluZ10oKSAtPiB2b2lkOgphY2NlcHQ6CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo2NAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGR1cG4gMgogICAgZ3R4bnMgVHlwZUVudW0KICAgIHB1c2hpbnQgNCAvLyBheGZlcgogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIGF4ZmVyCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo2NgogICAgLy8gYXNzZXJ0IHNlbGYuc3RhdHVzID09IEZVTkRFRCwgIm9mZmVyIG5vdCBvcGVuIgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gInN0YXR1cyIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5zdGF0dXMgZXhpc3RzCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBvZmZlciBub3Qgb3BlbgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NjctNjkKICAgIC8vICMgUHJvdGVjdCB0aGUgYnV5ZXIgZnJvbSBhIHNpZ25pbmcgcmVxdWVzdCB0aGF0IGJ1bmRsZXMgYW55dGhpbmcgZWxzZToKICAgIC8vICMgdGhlIGdyb3VwIG11c3QgYmUgZXhhY3RseSBbVVNEVCBwYXltZW50LCB0aGlzIGNhbGxdIGFuZCBuZWl0aGVyIG1heSByZWtleS4KICAgIC8vIGFzc2VydCBHbG9iYWwuZ3JvdXBfc2l6ZSA9PSAyLCAiZ3JvdXAgbXVzdCBiZSBleGFjdGx5IDIgdHhucyIKICAgIGdsb2JhbCBHcm91cFNpemUKICAgIGludGNfMiAvLyAyCiAgICA9PQogICAgYXNzZXJ0IC8vIGdyb3VwIG11c3QgYmUgZXhhY3RseSAyIHR4bnMKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjcwCiAgICAvLyBhc3NlcnQgVHhuLnJla2V5X3RvID09IEdsb2JhbC56ZXJvX2FkZHJlc3MsICJubyByZWtleSIKICAgIHR4biBSZWtleVRvCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICBhc3NlcnQgLy8gbm8gcmVrZXkKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjcxCiAgICAvLyBhc3NlcnQgYXhmZXIucmVrZXlfdG8gPT0gR2xvYmFsLnplcm9fYWRkcmVzcywgIm5vIHJla2V5IgogICAgZ3R4bnMgUmVrZXlUbwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIG5vIHJla2V5CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo3MgogICAgLy8gaWYgc2VsZi50YWtlciAhPSBHbG9iYWwuemVyb19hZGRyZXNzOgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzIgLy8gInRha2VyIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnRha2VyIGV4aXN0cwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYnogYWNjZXB0X2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NzMKICAgIC8vIGFzc2VydCBUeG4uc2VuZGVyID09IHNlbGYudGFrZXIsICJub3QgdGhlIGRlc2lnbmF0ZWQgYnV5ZXIiCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAidGFrZXIiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYudGFrZXIgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIG5vdCB0aGUgZGVzaWduYXRlZCBidXllcgoKYWNjZXB0X2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5Ojc0CiAgICAvLyBhc3NlcnQgYXhmZXIuc2VuZGVyID09IFR4bi5zZW5kZXIsICJwYXllciBtdXN0IGJlIGNhbGxlciIKICAgIGR1cAogICAgZ3R4bnMgU2VuZGVyCiAgICB0eG4gU2VuZGVyCiAgICA9PQogICAgYXNzZXJ0IC8vIHBheWVyIG11c3QgYmUgY2FsbGVyCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo3NQogICAgLy8gYXNzZXJ0IGF4ZmVyLmFzc2V0X3NlbmRlciA9PSBHbG9iYWwuemVyb19hZGRyZXNzLCAibm8gY2xhd2JhY2sgdHJhbnNmZXJzIgogICAgZHVwCiAgICBndHhucyBBc3NldFNlbmRlcgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIG5vIGNsYXdiYWNrIHRyYW5zZmVycwogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NzYKICAgIC8vIGFzc2VydCBheGZlci54ZmVyX2Fzc2V0ID09IHNlbGYuYXNzZXQsICJ3cm9uZyBhc3NldCIKICAgIGR1cAogICAgZ3R4bnMgWGZlckFzc2V0CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWMgNCAvLyAiYXNzZXQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXNzZXQgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIHdyb25nIGFzc2V0CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo3NwogICAgLy8gYXNzZXJ0IGF4ZmVyLmFzc2V0X3JlY2VpdmVyID09IHNlbGYubWFrZXIsICJtdXN0IHBheSBtYWtlciIKICAgIGR1cAogICAgZ3R4bnMgQXNzZXRSZWNlaXZlcgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIm1ha2VyIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLm1ha2VyIGV4aXN0cwogICAgc3dhcAogICAgZGlnIDEKICAgID09CiAgICBhc3NlcnQgLy8gbXVzdCBwYXkgbWFrZXIKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5Ojc4CiAgICAvLyBhc3NlcnQgYXhmZXIuYXNzZXRfYW1vdW50ID09IHNlbGYuYXNzZXRfYW1vdW50LCAid3JvbmcgYW1vdW50IgogICAgZGlnIDEKICAgIGd0eG5zIEFzc2V0QW1vdW50CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWMgNSAvLyAiYXNzZXRfYW1vdW50IgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFzc2V0X2Ftb3VudCBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gd3JvbmcgYW1vdW50CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo3OQogICAgLy8gYXNzZXJ0IGF4ZmVyLmFzc2V0X2Nsb3NlX3RvID09IEdsb2JhbC56ZXJvX2FkZHJlc3MsICJubyBjbG9zZS1vdXQiCiAgICBzd2FwCiAgICBndHhucyBBc3NldENsb3NlVG8KICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIGFzc2VydCAvLyBubyBjbG9zZS1vdXQKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjgxLTg3CiAgICAvLyAjIEFMR08gdG8gYnV5ZXI7IGxlZnRvdmVyIChtaW4gYmFsYW5jZSwgZXh0cmFzKSBiYWNrIHRvIG1ha2VyLgogICAgLy8gaXR4bi5QYXltZW50KAogICAgLy8gICAgIHJlY2VpdmVyPVR4bi5zZW5kZXIsCiAgICAvLyAgICAgYW1vdW50PXNlbGYuYWxnb19hbW91bnQsCiAgICAvLyAgICAgY2xvc2VfcmVtYWluZGVyX3RvPXNlbGYubWFrZXIsCiAgICAvLyAgICAgZmVlPTAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo4MwogICAgLy8gcmVjZWl2ZXI9VHhuLnNlbmRlciwKICAgIHR4biBTZW5kZXIKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5Ojg0CiAgICAvLyBhbW91bnQ9c2VsZi5hbGdvX2Ftb3VudCwKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18zIC8vICJhbGdvX2Ftb3VudCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5hbGdvX2Ftb3VudCBleGlzdHMKICAgIHVuY292ZXIgMgogICAgaXR4bl9maWVsZCBDbG9zZVJlbWFpbmRlclRvCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6ODEtODIKICAgIC8vICMgQUxHTyB0byBidXllcjsgbGVmdG92ZXIgKG1pbiBiYWxhbmNlLCBleHRyYXMpIGJhY2sgdG8gbWFrZXIuCiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICBpbnRjXzEgLy8gcGF5CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo4NgogICAgLy8gZmVlPTAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjgxLTg3CiAgICAvLyAjIEFMR08gdG8gYnV5ZXI7IGxlZnRvdmVyIChtaW4gYmFsYW5jZSwgZXh0cmFzKSBiYWNrIHRvIG1ha2VyLgogICAgLy8gaXR4bi5QYXltZW50KAogICAgLy8gICAgIHJlY2VpdmVyPVR4bi5zZW5kZXIsCiAgICAvLyAgICAgYW1vdW50PXNlbGYuYWxnb19hbW91bnQsCiAgICAvLyAgICAgY2xvc2VfcmVtYWluZGVyX3RvPXNlbGYubWFrZXIsCiAgICAvLyAgICAgZmVlPTAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6ODgKICAgIC8vIHNlbGYuc3RhdHVzID0gVUludDY0KENMT1NFRCkKICAgIGJ5dGVjXzAgLy8gInN0YXR1cyIKICAgIGludGNfMiAvLyAyCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6NjQKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LkFsZ29Gb3JBc2FFc2Nyb3cuY2FuY2VsW3JvdXRpbmddKCkgLT4gdm9pZDoKY2FuY2VsOgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6OTIKICAgIC8vIGFzc2VydCBUeG4uc2VuZGVyID09IHNlbGYubWFrZXIsICJvbmx5IG1ha2VyIgogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIm1ha2VyIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLm1ha2VyIGV4aXN0cwogICAgc3dhcAogICAgZGlnIDEKICAgID09CiAgICBhc3NlcnQgLy8gb25seSBtYWtlcgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6OTMKICAgIC8vIGFzc2VydCBzZWxmLnN0YXR1cyA9PSBGVU5ERUQsICJub3RoaW5nIHRvIGNhbmNlbCIKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJzdGF0dXMiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuc3RhdHVzIGV4aXN0cwogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gbm90aGluZyB0byBjYW5jZWwKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5Ojk0LTk5CiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9c2VsZi5tYWtlciwKICAgIC8vICAgICBhbW91bnQ9MCwKICAgIC8vICAgICBjbG9zZV9yZW1haW5kZXJfdG89c2VsZi5tYWtlciwKICAgIC8vICAgICBmZWU9MCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIGR1cAogICAgaXR4bl9maWVsZCBDbG9zZVJlbWFpbmRlclRvCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo5NgogICAgLy8gYW1vdW50PTAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5Ojk0CiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICBpbnRjXzEgLy8gcGF5CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weTo5OAogICAgLy8gZmVlPTAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5Ojk0LTk5CiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9c2VsZi5tYWtlciwKICAgIC8vICAgICBhbW91bnQ9MCwKICAgIC8vICAgICBjbG9zZV9yZW1haW5kZXJfdG89c2VsZi5tYWtlciwKICAgIC8vICAgICBmZWU9MCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICAvLyBhbGdvX2Zvcl91c2R0X2VzY3Jvdy5weToxMDAKICAgIC8vIHNlbGYuc3RhdHVzID0gVUludDY0KENMT1NFRCkKICAgIGJ5dGVjXzAgLy8gInN0YXR1cyIKICAgIGludGNfMiAvLyAyCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6OTAKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LkFsZ29Gb3JBc2FFc2Nyb3cuZGVsZXRlW3JvdXRpbmddKCkgLT4gdm9pZDoKZGVsZXRlOgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6MTA0CiAgICAvLyBhc3NlcnQgVHhuLnNlbmRlciA9PSBzZWxmLm1ha2VyLCAib25seSBtYWtlciIKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICJtYWtlciIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5tYWtlciBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gb25seSBtYWtlcgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6MTA1CiAgICAvLyBhc3NlcnQgc2VsZi5zdGF0dXMgPT0gQ0xPU0VEIG9yIHNlbGYuc3RhdHVzID09IENSRUFURUQsICJjYW5jZWwgdGhlIG9mZmVyIGZpcnN0IgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gInN0YXR1cyIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5zdGF0dXMgZXhpc3RzCiAgICBpbnRjXzIgLy8gMgogICAgPT0KICAgIGJueiBkZWxldGVfYm9vbF90cnVlQDMKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJzdGF0dXMiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuc3RhdHVzIGV4aXN0cwogICAgYm56IGRlbGV0ZV9ib29sX2ZhbHNlQDQKCmRlbGV0ZV9ib29sX3RydWVAMzoKICAgIGludGNfMSAvLyAxCgpkZWxldGVfYm9vbF9tZXJnZUA1OgogICAgLy8gYWxnb19mb3JfdXNkdF9lc2Nyb3cucHk6MTA1CiAgICAvLyBhc3NlcnQgc2VsZi5zdGF0dXMgPT0gQ0xPU0VEIG9yIHNlbGYuc3RhdHVzID09IENSRUFURUQsICJjYW5jZWwgdGhlIG9mZmVyIGZpcnN0IgogICAgYXNzZXJ0IC8vIGNhbmNlbCB0aGUgb2ZmZXIgZmlyc3QKICAgIC8vIGFsZ29fZm9yX3VzZHRfZXNjcm93LnB5OjEwMgogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGFsbG93X2FjdGlvbnM9WyJEZWxldGVBcHBsaWNhdGlvbiJdKQogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKZGVsZXRlX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGRlbGV0ZV9ib29sX21lcmdlQDUK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAAECCCYGBnN0YXR1cwVtYWtlcgV0YWtlcgthbGdvX2Ftb3VudAVhc3NldAxhc3NldF9hbW91bnQxGEAAFikyA2cqMgNnJwQiZycFImcrImcoImeABCQ3jTw2GgCOAQA0MRkURDEYQQAdggMENiXk6wTcpywtBDHyaps2GgCOAwBcAKIBKQCABLejI042GgCOAQANADEZgQUSMRgQREIBNTYaAUkVJRJEFzYaAkkVJRJEFzYaA0kVJRJEFzYaBEkVgSASREsCREsBRCkxAGcnBE8EZycFTwNnK08CZypMZyNDMRYjCUk4ECMSRDEAIillRExLARJEIihlRBRESwE4ABJESTgHMgoSREk4CCIrZUQyAQgPREk4CTIDEkQ4IDIDEkQoI2cjQzEWIwlHAjgQgQQSRCIoZUQjEkQyBCQSRDEgMgMSRDggMgMSRCIqZUQyAxNBAAgxACIqZUQSREk4ADEAEkRJOBMyAxJESTgRIicEZUQSREk4FCIpZURMSwESREsBOBIiJwVlRBJETDgVMgMSRLExACIrZURPArIJsgiyByOyECKyAbMoJGcjQzEAIillRExLARJEIihlRCMSRLFJsgkisgiyByOyECKyAbMoJGcjQzEAIillRBJEIihlRCQSQAAHIihlREAABCNEI0MiQv/5", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 1 } }, "events": [], "templateVariables": {} }