{ "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": [ 173, 266, 327, 347, 426, 446, 458 ], "errorMessage": "check LocalState exists" }, { "pc": [ 110, 185, 278, 359 ], "errorMessage": "invalid array length header" }, { "pc": [ 212, 386 ], "errorMessage": "invalid number of bytes for arc4.bool" }, { "pc": [ 117, 192, 285, 366 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 128, 203, 296, 377 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 177 ], "errorMessage": "object value should match" }, { "pc": [ 341 ], "errorMessage": "object.a should match" }, { "pc": [ 351 ], "errorMessage": "object.b should match" }, { "pc": [ 270 ], "errorMessage": "tuple value should match" }, { "pc": [ 440 ], "errorMessage": "tuple[0] should match" }, { "pc": [ 452 ], "errorMessage": "tuple[1] should match" }, { "pc": [ 463 ], "errorMessage": "tuple[2] should match" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDIgOAogICAgYnl0ZWNibG9jayAibWFwT2ZUdXBsZXNrMSIgIm1hcE9mT2JqZWN0c2sxIiAweDAwMGEgMHgwMDBiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NTYtNTcKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGxvY2FsQnl0ZXM6IDUsIGxvY2FsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RMb2NhbE1hcFR1cGxlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEzCiAgICBwdXNoYnl0ZXMgMHgyOTMxNGQ5NSAvLyBtZXRob2QgIm9wdEluKCl2b2lkIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggbWFpbl9vcHRJbl9yb3V0ZUAzCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQKICAgIHB1c2hieXRlc3MgMHhlODUxOWMxYSAweGQ0NWFlMDZhIDB4NWJlNDkzZmYgMHg5ZjAwZDFiZSAvLyBtZXRob2QgInRlc3RNYXBPZlR1cGxlcyhzdHJpbmcsdWludDY0LGJvb2wpdm9pZCIsIG1ldGhvZCAidGVzdE1hcE9mT2JqZWN0cyhzdHJpbmcsdWludDY0KXZvaWQiLCBtZXRob2QgInRlc3RUdXBsZU1hcChzdHJpbmcsdWludDY0LGJvb2wpdm9pZCIsIG1ldGhvZCAidGVzdE9iamVjdE1hcChzdHJpbmcsdWludDY0KXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX3Rlc3RNYXBPZlR1cGxlc19yb3V0ZUA2IG1haW5fdGVzdE1hcE9mT2JqZWN0c19yb3V0ZUA3IG1haW5fdGVzdFR1cGxlTWFwX3JvdXRlQDggbWFpbl90ZXN0T2JqZWN0TWFwX3JvdXRlQDkKICAgIGVycgoKbWFpbl90ZXN0T2JqZWN0TWFwX3JvdXRlQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODUKICAgIC8vIHRlc3RPYmplY3RNYXAoYTogc3RyaW5nLCBiOiB1aW50NjQpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODYKICAgIC8vIHRoaXMub2JqZWN0TWFwKHsgYSwgYiB9LCBUeG4uc2VuZGVyKS52YWx1ZSA9IDk5CiAgICBkaWcgMQogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGl0b2IKICAgIGJ5dGVjXzIgLy8gMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjYyCiAgICAvLyBvYmplY3RNYXAgPSBMb2NhbE1hcDx7IGE6IHN0cmluZzsgYjogdWludDY0IH0sIHVpbnQ2ND4oKQogICAgcHVzaGJ5dGVzICJvYmplY3RNYXAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo4NgogICAgLy8gdGhpcy5vYmplY3RNYXAoeyBhLCBiIH0sIFR4bi5zZW5kZXIpLnZhbHVlID0gOTkKICAgIHR4biBTZW5kZXIKICAgIGRpZyAxCiAgICBwdXNoaW50IDk5CiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODcKICAgIC8vIGFzc2VydCh0aGlzLm9iamVjdE1hcCh7IGEsIGIgfSwgVHhuLnNlbmRlcikudmFsdWUgPT09IDk5LCAnb2JqZWN0IHZhbHVlIHNob3VsZCBtYXRjaCcpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIHB1c2hpbnQgOTkKICAgID09CiAgICBhc3NlcnQgLy8gb2JqZWN0IHZhbHVlIHNob3VsZCBtYXRjaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjg1CiAgICAvLyB0ZXN0T2JqZWN0TWFwKGE6IHN0cmluZywgYjogdWludDY0KSB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX3Rlc3RUdXBsZU1hcF9yb3V0ZUA4OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjgwCiAgICAvLyB0ZXN0VHVwbGVNYXAoYTogc3RyaW5nLCBiOiB1aW50NjQsIGM6IGJvb2xlYW4pIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuYm9vbAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjgxCiAgICAvLyB0aGlzLnR1cGxlTWFwKFthLCBiLCBjXSkoVHhuLnNlbmRlcikudmFsdWUgPSA5OQogICAgZGlnIDIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGl0b2IKICAgIGJ5dGVjXzMgLy8gMHgwMDBiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciA0CiAgICBzZXRiaXQKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NjEKICAgIC8vIHR1cGxlTWFwID0gTG9jYWxNYXA8W3N0cmluZywgdWludDY0LCBib29sZWFuXSwgdWludDY0PigpCiAgICBwdXNoYnl0ZXMgInR1cGxlTWFwIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODEKICAgIC8vIHRoaXMudHVwbGVNYXAoW2EsIGIsIGNdKShUeG4uc2VuZGVyKS52YWx1ZSA9IDk5CiAgICB0eG4gU2VuZGVyCiAgICBkaWcgMQogICAgcHVzaGludCA5OQogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjgyCiAgICAvLyBhc3NlcnQodGhpcy50dXBsZU1hcChbYSwgYiwgY10sIFR4bi5zZW5kZXIpLnZhbHVlID09PSA5OSwgJ3R1cGxlIHZhbHVlIHNob3VsZCBtYXRjaCcpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIHB1c2hpbnQgOTkKICAgID09CiAgICBhc3NlcnQgLy8gdHVwbGUgdmFsdWUgc2hvdWxkIG1hdGNoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6ODAKICAgIC8vIHRlc3RUdXBsZU1hcChhOiBzdHJpbmcsIGI6IHVpbnQ2NCwgYzogYm9vbGVhbikgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl90ZXN0TWFwT2ZPYmplY3RzX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NzQKICAgIC8vIHRlc3RNYXBPZk9iamVjdHMoYTogc3RyaW5nLCBiOiB1aW50NjQpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NzUKICAgIC8vIHRoaXMubWFwT2ZPYmplY3RzKCdrMScsIFR4bi5zZW5kZXIpLnZhbHVlID0geyBhLCBiIH0KICAgIGRpZyAxCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBkaWcgMgogICAgY29uY2F0CiAgICBkaWcgMQogICAgaXRvYgogICAgYnl0ZWNfMiAvLyAweDAwMGEKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NTkKICAgIC8vIG1hcE9mT2JqZWN0cyA9IExvY2FsTWFwPHN0cmluZywgeyBhOiBzdHJpbmc7IGI6IHVpbnQ2NCB9PigpCiAgICBieXRlY18xIC8vICJtYXBPZk9iamVjdHNrMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3NQogICAgLy8gdGhpcy5tYXBPZk9iamVjdHMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWUgPSB7IGEsIGIgfQogICAgdW5jb3ZlciAyCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NzYKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mT2JqZWN0cygnazEnKShUeG4uc2VuZGVyKS52YWx1ZS5hID09PSBhLCAnb2JqZWN0LmEgc2hvdWxkIG1hdGNoJykKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NTkKICAgIC8vIG1hcE9mT2JqZWN0cyA9IExvY2FsTWFwPHN0cmluZywgeyBhOiBzdHJpbmc7IGI6IHVpbnQ2NCB9PigpCiAgICBieXRlY18xIC8vICJtYXBPZk9iamVjdHNrMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3NgogICAgLy8gYXNzZXJ0KHRoaXMubWFwT2ZPYmplY3RzKCdrMScpKFR4bi5zZW5kZXIpLnZhbHVlLmEgPT09IGEsICdvYmplY3QuYSBzaG91bGQgbWF0Y2gnKQogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgIGxlbgogICAgc3Vic3RyaW5nMwogICAgZXh0cmFjdCAyIDAKICAgIHVuY292ZXIgMgogICAgPT0KICAgIGFzc2VydCAvLyBvYmplY3QuYSBzaG91bGQgbWF0Y2gKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3NwogICAgLy8gYXNzZXJ0KHRoaXMubWFwT2ZPYmplY3RzKCdrMScsIFR4bi5zZW5kZXIpLnZhbHVlLmIgPT09IGIsICdvYmplY3QuYiBzaG91bGQgbWF0Y2gnKQogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo1OQogICAgLy8gbWFwT2ZPYmplY3RzID0gTG9jYWxNYXA8c3RyaW5nLCB7IGE6IHN0cmluZzsgYjogdWludDY0IH0+KCkKICAgIGJ5dGVjXzEgLy8gIm1hcE9mT2JqZWN0c2sxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjc3CiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZk9iamVjdHMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWUuYiA9PT0gYiwgJ29iamVjdC5iIHNob3VsZCBtYXRjaCcpCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIGludGNfMiAvLyAyCiAgICBleHRyYWN0X3VpbnQ2NAogICAgPT0KICAgIGFzc2VydCAvLyBvYmplY3QuYiBzaG91bGQgbWF0Y2gKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3NAogICAgLy8gdGVzdE1hcE9mT2JqZWN0cyhhOiBzdHJpbmcsIGI6IHVpbnQ2NCkgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl90ZXN0TWFwT2ZUdXBsZXNfcm91dGVANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo2NwogICAgLy8gdGVzdE1hcE9mVHVwbGVzKGE6IHN0cmluZywgYjogdWludDY0LCBjOiBib29sZWFuKSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmJvb2wKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo2OAogICAgLy8gdGhpcy5tYXBPZlR1cGxlcygnazEnLCBUeG4uc2VuZGVyKS52YWx1ZSA9IFthLCBiLCBjXQogICAgZGlnIDIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGRpZyAzCiAgICBjb25jYXQKICAgIGRpZyAyCiAgICBpdG9iCiAgICBieXRlY18zIC8vIDB4MDAwYgogICAgc3dhcAogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGRpZyA0CiAgICBzZXRiaXQKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICB0eG4gU2VuZGVyCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NTgKICAgIC8vIG1hcE9mVHVwbGVzID0gTG9jYWxNYXA8c3RyaW5nLCBbc3RyaW5nLCB1aW50NjQsIGJvb2xlYW5dPigpCiAgICBieXRlY18wIC8vICJtYXBPZlR1cGxlc2sxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjY4CiAgICAvLyB0aGlzLm1hcE9mVHVwbGVzKCdrMScsIFR4bi5zZW5kZXIpLnZhbHVlID0gW2EsIGIsIGNdCiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo2OQogICAgLy8gYXNzZXJ0KHRoaXMubWFwT2ZUdXBsZXMoJ2sxJywgVHhuLnNlbmRlcikudmFsdWVbMF0gPT09IGEsICd0dXBsZVswXSBzaG91bGQgbWF0Y2gnKQogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo1OAogICAgLy8gbWFwT2ZUdXBsZXMgPSBMb2NhbE1hcDxzdHJpbmcsIFtzdHJpbmcsIHVpbnQ2NCwgYm9vbGVhbl0+KCkKICAgIGJ5dGVjXzAgLy8gIm1hcE9mVHVwbGVzazEiCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NjkKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mVHVwbGVzKCdrMScsIFR4bi5zZW5kZXIpLnZhbHVlWzBdID09PSBhLCAndHVwbGVbMF0gc2hvdWxkIG1hdGNoJykKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBMb2NhbFN0YXRlIGV4aXN0cwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAxCiAgICBsZW4KICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICB1bmNvdmVyIDMKICAgID09CiAgICBhc3NlcnQgLy8gdHVwbGVbMF0gc2hvdWxkIG1hdGNoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NzAKICAgIC8vIGFzc2VydCh0aGlzLm1hcE9mVHVwbGVzKCdrMScsIFR4bi5zZW5kZXIpLnZhbHVlWzFdID09PSBiLCAndHVwbGVbMV0gc2hvdWxkIG1hdGNoJykKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NTgKICAgIC8vIG1hcE9mVHVwbGVzID0gTG9jYWxNYXA8c3RyaW5nLCBbc3RyaW5nLCB1aW50NjQsIGJvb2xlYW5dPigpCiAgICBieXRlY18wIC8vICJtYXBPZlR1cGxlc2sxIgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjcwCiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZlR1cGxlcygnazEnLCBUeG4uc2VuZGVyKS52YWx1ZVsxXSA9PT0gYiwgJ3R1cGxlWzFdIHNob3VsZCBtYXRjaCcpCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgTG9jYWxTdGF0ZSBleGlzdHMKICAgIGludGNfMiAvLyAyCiAgICBleHRyYWN0X3VpbnQ2NAogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIHR1cGxlWzFdIHNob3VsZCBtYXRjaAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjcxCiAgICAvLyBhc3NlcnQodGhpcy5tYXBPZlR1cGxlcygnazEnKShUeG4uc2VuZGVyKS52YWx1ZVsyXSA9PT0gYywgJ3R1cGxlWzJdIHNob3VsZCBtYXRjaCcpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjU4CiAgICAvLyBtYXBPZlR1cGxlcyA9IExvY2FsTWFwPHN0cmluZywgW3N0cmluZywgdWludDY0LCBib29sZWFuXT4oKQogICAgYnl0ZWNfMCAvLyAibWFwT2ZUdXBsZXNrMSIKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9sb2NhbC1tYXAuYWxnby50czo3MQogICAgLy8gYXNzZXJ0KHRoaXMubWFwT2ZUdXBsZXMoJ2sxJykoVHhuLnNlbmRlcikudmFsdWVbMl0gPT09IGMsICd0dXBsZVsyXSBzaG91bGQgbWF0Y2gnKQogICAgYXBwX2xvY2FsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIExvY2FsU3RhdGUgZXhpc3RzCiAgICBwdXNoaW50IDgwCiAgICBnZXRiaXQKICAgID09CiAgICBhc3NlcnQgLy8gdHVwbGVbMl0gc2hvdWxkIG1hdGNoCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NjcKICAgIC8vIHRlc3RNYXBPZlR1cGxlcyhhOiBzdHJpbmcsIGI6IHVpbnQ2NCwgYzogYm9vbGVhbikgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9vcHRJbl9yb3V0ZUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2xvY2FsLW1hcC5hbGdvLnRzOjY0CiAgICAvLyBAYWJpbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiAnT3B0SW4nIH0pCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBpbnRjXzEgLy8gT3B0SW4KICAgID09CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgJiYKICAgIHJldHVybgoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTM6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvbG9jYWwtbWFwLmFsZ28udHM6NTYtNTcKICAgIC8vIEBjb250cmFjdCh7IHN0YXRlVG90YWxzOiB7IGxvY2FsQnl0ZXM6IDUsIGxvY2FsVWludHM6IDUgfSB9KQogICAgLy8gZXhwb3J0IGNsYXNzIFRlc3RMb2NhbE1hcFR1cGxlIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgICYmCiAgICByZXR1cm4K", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEKICAgIHJldHVybgo=" }, "byteCode": { "approval": "CyAEAAECCCYEDW1hcE9mVHVwbGVzazEObWFwT2ZPYmplY3RzazECAAoCAAsxG0EBqYAEKTFNlTYaAI4BAZQxGRREMRhEggQE6FGcGgTUWuBqBFvkk/8EnwDRvjYaAI4EAPoAqQBMAAEANhoBSSJZJAhLARUSRFcCADYaAkkVJRJEF0sBFRZXBgJPAlBMFipMUExQgAlvYmplY3RNYXBMUDEASwGBY2YxACJPAmNEgWMSRCNDNhoBSSJZJAhLARUSRFcCADYaAkkVJRJEFzYaA0kVIxJEIlNLAhUWVwYCTwNQTwIWK0xQgAEAIk8EVFBMUIAIdHVwbGVNYXBMUDEASwGBY2YxACJPAmNEgWMSRCNDNhoBSSJZJAhLARUSRFcCADYaAkkVJRJEF0sBFRZXBgJLAlBLARYqTFBMUDEAKU8CZjEAIiljREkiWUsBFVJXAgBPAhJEMQAiKWNEJFsSRCNDNhoBSSJZJAhLARUSRFcCADYaAkkVJRJEFzYaA0kVIxJEIlNLAhUWVwYCSwNQSwIWK0xQgAEAIksEVFBMUDEAKE8CZjEAIihjREkiWUsBFVJXAgBPAxJEMQAiKGNEJFtPAhJEMQAiKGNEgVBTEkQjQzEZIxIxGBBDMRkUMRgUEEM=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }